import{j as s,Y as od,O as vg,k as bg,u as rd,Z as Sg,c as Tg,l as xg,g as Ag,S as Dg,T as Ng,n as Eg,m as fd,o as Mg,p as zg,$ as dd,a0 as md,a1 as hd,a2 as Cg}from"./ui-vendor-CeCm8EER.js";import{d as jg,h as Og,r as D,u as gd,H as _g,i as Rg,j as td}from"./react-vendor-DEwriMA6.js";import{N as Ce,c as Qe,ai as pd,u as Tt,M as ft,aj as yd,ak as vd,I as jn,B as dt,D as is,l as cs,m as ss,n as os,o as Ug,al as Hg,am as Lg,an as qg,ao as Bg,ap as Gg,aq as wg,k as ld,w as Yg,t as ad,ar as nd,as as kg,at as Xg,au as Vg,av as Xt,aw as bd,ax as ps,ay as rs,a1 as Qg,a2 as Kg,a3 as Zg,a4 as Jg,az as Fg,aA as Pg,aB as Sd,aC as Wg,aD as Td,aE as $g,aF as xd,d as Ig,R as ep,V as tp,g as Mn,aG as lp,aH as ap,aI as np}from"./feature-graph-Ce9OX-bo.js";import{S as fs,a as ds,b as ms,c as hs,e as kt,D as up}from"./feature-documents-D0lvjDJ6.js";import{R as ip}from"./feature-retrieval-d11Pfb66.js";import{i as gs}from"./utils-vendor-BysuhMZA.js";import"./graph-vendor-B-X5JegA.js";import"./mermaid-vendor-GB05DkYd.js";import"./markdown-vendor-BiwnQtuo.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"]'))d(N);new MutationObserver(N=>{for(const j of N)if(j.type==="childList")for(const _ of j.addedNodes)_.tagName==="LINK"&&_.rel==="modulepreload"&&d(_)}).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 d(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 ud;function cp(){return ud||(ud=1,function(f){function y(A,L){var U=A.length;A.push(L);e:for(;0>>1,me=A[ae];if(0>>1;aeN(Dt,U))KN(Ze,Dt)?(A[ae]=Ze,A[K]=U,ae=K):(A[ae]=Dt,A[bl]=U,ae=bl);else if(KN(Ze,U))A[ae]=Ze,A[K]=U,ae=K;else break e}}return L}function N(A,L){var U=A.sortIndex-L.sortIndex;return U!==0?U:A.id-L.id}if(f.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var j=performance;f.unstable_now=function(){return j.now()}}else{var _=Date,F=_.now();f.unstable_now=function(){return _.now()-F}}var G=[],V=[],ce=1,se=null,Y=3,oe=!1,ee=!1,C=!1,Ke=typeof setTimeout=="function"?setTimeout:null,it=typeof clearTimeout=="function"?clearTimeout:null,Ne=typeof setImmediate<"u"?setImmediate:null;function xt(A){for(var L=x(V);L!==null;){if(L.callback===null)d(V);else if(L.startTime<=A)d(V),L.sortIndex=L.expirationTime,y(G,L);else break;L=x(V)}}function Qt(A){if(C=!1,xt(A),!ee)if(x(G)!==null)ee=!0,yl();else{var L=x(V);L!==null&&vl(Qt,L.startTime-A)}}var Q=!1,qe=-1,On=5,kl=-1;function R(){return!(f.unstable_now()-klA&&R());){var ae=se.callback;if(typeof ae=="function"){se.callback=null,Y=se.priorityLevel;var me=ae(se.expirationTime<=A);if(A=f.unstable_now(),typeof me=="function"){se.callback=me,xt(A),L=!0;break t}se===x(G)&&d(G),xt(A)}else d(G);se=x(G)}if(se!==null)L=!0;else{var Xl=x(V);Xl!==null&&vl(Qt,Xl.startTime-A),L=!1}}break e}finally{se=null,Y=U,oe=!1}L=void 0}}finally{L?At():Q=!1}}}var At;if(typeof Ne=="function")At=function(){Ne(P)};else if(typeof MessageChannel<"u"){var za=new MessageChannel,pl=za.port2;za.port1.onmessage=P,At=function(){pl.postMessage(null)}}else At=function(){Ke(P,0)};function yl(){Q||(Q=!0,At())}function vl(A,L){qe=Ke(function(){A(f.unstable_now())},L)}f.unstable_IdlePriority=5,f.unstable_ImmediatePriority=1,f.unstable_LowPriority=4,f.unstable_NormalPriority=3,f.unstable_Profiling=null,f.unstable_UserBlockingPriority=2,f.unstable_cancelCallback=function(A){A.callback=null},f.unstable_continueExecution=function(){ee||oe||(ee=!0,yl())},f.unstable_forceFrameRate=function(A){0>A||125ae?(A.sortIndex=U,y(V,A),x(G)===null&&A===x(V)&&(C?(it(qe),qe=-1):C=!0,vl(Qt,U-ae))):(A.sortIndex=me,y(G,A),ee||oe||(ee=!0,yl())),A},f.unstable_shouldYield=R,f.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 id;function sp(){return id||(id=1,ns.exports=cp()),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 cd;function op(){if(cd)return zn;cd=1;var f=sp(),y=jg(),x=Og();function d(e){var t="https://react.dev/errors/"+e;if(1)":-1n||o[a]!==m[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{yl=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?pl(l):""}function A(e){switch(e.tag){case 26:case 27:case 5:return pl(e.type);case 16:return pl("Lazy");case 13:return pl("Suspense");case 19:return pl("SuspenseList");case 0:case 15:return e=vl(e.type,!1),e;case 11:return e=vl(e.type.render,!1),e;case 1:return e=vl(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(d(188))}function Xl(e){var t=e.alternate;if(!t){if(t=U(e),t===null)throw Error(d(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(d(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(d(189))}}if(l.alternate!==a)throw Error(d(190))}if(l.tag!==3)throw Error(d(188));return l.stateNode.current===l?e:t}function bl(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=bl(e),t!==null)return t;e=e.sibling}return null}var Dt=Array.isArray,K=x.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ze={pending:!1,data:null,method:null,action:null},Zu=[],Vl=-1;function mt(e){return{current:e}}function Se(e){0>Vl||(e.current=Zu[Vl],Zu[Vl]=null,Vl--)}function ne(e,t){Vl++,Zu[Vl]=e.current,e.current=t}var ht=mt(null),Ca=mt(null),Kt=mt(null),_n=mt(null);function Rn(e,t){switch(ne(Kt,t),ne(Ca,e),ne(ht,null),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)&&(t=t.namespaceURI)?jf(t):0;break;default:if(e=e===8?t.parentNode:t,t=e.tagName,e=e.namespaceURI)e=jf(e),t=Of(e,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}Se(ht),ne(ht,t)}function Ql(){Se(ht),Se(Ca),Se(Kt)}function Ju(e){e.memoizedState!==null&&ne(_n,e);var t=ht.current,l=Of(t,e.type);t!==l&&(ne(Ca,e),ne(ht,l))}function Un(e){Ca.current===e&&(Se(ht),Se(Ca)),_n.current===e&&(Se(_n),xn._currentValue=Ze)}var Fu=Object.prototype.hasOwnProperty,Pu=f.unstable_scheduleCallback,Wu=f.unstable_cancelCallback,Pd=f.unstable_shouldYield,Wd=f.unstable_requestPaint,gt=f.unstable_now,$d=f.unstable_getCurrentPriorityLevel,ys=f.unstable_ImmediatePriority,vs=f.unstable_UserBlockingPriority,Hn=f.unstable_NormalPriority,Id=f.unstable_LowPriority,bs=f.unstable_IdlePriority,em=f.log,tm=f.unstable_setDisableYieldValue,ja=null,Be=null;function lm(e){if(Be&&typeof Be.onCommitFiberRoot=="function")try{Be.onCommitFiberRoot(ja,e,void 0,(e.current.flags&128)===128)}catch{}}function Zt(e){if(typeof em=="function"&&tm(e),Be&&typeof Be.setStrictMode=="function")try{Be.setStrictMode(ja,e)}catch{}}var Ge=Math.clz32?Math.clz32:um,am=Math.log,nm=Math.LN2;function um(e){return e>>>=0,e===0?32:31-(am(e)/nm|0)|0}var Ln=128,qn=4194304;function Sl(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=Sl(l):(u&=c,u!==0?a=Sl(u):e||(i=c&~i,i!==0&&(a=Sl(i))))):(c=l&~n,c!==0?a=Sl(c):u!==0?a=Sl(u):e||(i=l&~i,i!==0&&(a=Sl(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 im(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 Ss(){var e=Ln;return Ln<<=1,!(Ln&4194176)&&(Ln=128),e}function Ts(){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 cm(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,m=e.hiddenUpdates;for(l=i&~l;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),fm=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]*$"),Cs={},js={};function dm(e){return Fu.call(js,e)?!0:Fu.call(Cs,e)?!1:fm.test(e)?js[e]=!0:(Cs[e]=!0,!1)}function Gn(e,t,l){if(dm(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 Et(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 Je(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Os(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function mm(e){var t=Os(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=mm(e))}function _s(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var l=t.getValue(),a="";return e&&(a=Os(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 hm=/[\n"\\]/g;function Fe(e){return e.replace(hm,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=""+Je(t)):e.value!==""+Je(t)&&(e.value=""+Je(t)):i!=="submit"&&i!=="reset"||e.removeAttribute("value"),t!=null?li(e,i,Je(t)):l!=null?li(e,i,Je(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=""+Je(c):e.removeAttribute("name")}function Rs(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?""+Je(l):"",t=t!=null?""+Je(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 Pl(e,t,l,a){if(e=e.options,t){t={};for(var n=0;n=Ga),Ks=" ",Zs=!1;function Js(e,t){switch(e){case"keyup":return km.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fs(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ea=!1;function Vm(e,t){switch(e){case"compositionend":return Fs(t);case"keypress":return t.which!==32?null:(Zs=!0,Ks);case"textInput":return e=t.data,e===Ks&&Zs?null:e;default:return null}}function Qm(e,t){if(ea)return e==="compositionend"||!mi&&Js(e,t)?(e=ws(),Vn=si=Ft=null,ea=!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=ao(l)}}function uo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?uo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function io(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 Im(e,t){var l=io(t);t=e.focusedElem;var a=e.selectionRange;if(l!==t&&t&&t.ownerDocument&&uo(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=no(t,u);var i=no(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,ta=null,yi=null,Xa=null,vi=!1;function co(e,t,l){var a=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;vi||ta==null||ta!==kn(a)||(a=ta,"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,Mt=1<<32-Ge(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&&Ml(h,O),E;if(z===null){for(;OO?(De=z,z=null):De=z.sibling;var gl=p(h,z,J.value,S);if(gl===null){z===null&&(z=De);break}e&&z&&gl.alternate===null&&t(h,z),r=u(gl,r,O),B===null?E=gl:B.sibling=gl,B=gl,z=De}if(J.done)return l(h,z),Z&&Ml(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&&Ml(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(yg){return t(h,yg)}),Z&&Ml(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===Ne&&No(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=Bl(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 Ne:return E=g._init,g=E(g._payload),de(h,r,g,S)}if(Dt(g))return M(h,r,g,S);if(qe(g)){if(E=qe(g),typeof E!="function")throw Error(d(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 ca=null,E}catch(z){if(z===Za)throw z;var B=at(29,z,null,h.mode);return B.lanes=S,B.return=h,B}finally{}}}var Cl=Eo(!0),Mo=Eo(!1),sa=mt(null),nu=mt(0);function zo(e,t){e=Gt,ne(nu,e),ne(sa,t),Gt=e|t.baseLanes}function Ei(){ne(nu,Gt),ne(sa,sa.current)}function Mi(){Gt=nu.current,Se(sa),Se(nu)}var et=mt(null),yt=null;function Wt(e){var t=e.alternate;ne(ve,ve.current&1),ne(et,e),yt===null&&(t===null||sa.current!==null||t.memoizedState!==null)&&(yt=e)}function Co(e){if(e.tag===22){if(ne(ve,ve.current),ne(et,e),yt===null){var t=e.alternate;t!==null&&t.memoizedState!==null&&(yt=e)}}else $t()}function $t(){ne(ve,ve.current),ne(et,et.current)}function Ct(e){Se(et),yt===e&&(yt=null),Se(ve)}var ve=mt(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 nh=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()})}},uh=f.unstable_scheduleCallback,ih=f.unstable_NormalPriority,be={$$typeof:oe,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function zi(){return{controller:new nh,data:new Map,refCount:0}}function Wa(e){e.refCount--,e.refCount===0&&uh(ih,function(){e.controller.abort()})}var $a=null,Ci=0,oa=0,ra=null;function ch(e,t){if($a===null){var l=$a=[];Ci=0,oa=Hc(),ra={status:"pending",value:void 0,then:function(a){l.push(a)}}}return Ci++,t.then(jo,jo),t}function jo(){if(--Ci===0&&$a!==null){ra!==null&&(ra.status="fulfilled");var e=$a;$a=null,oa=0,ra=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(),m=R.S;if(m!==null&&m(c,o),o!==null&&typeof o=="object"&&typeof o.then=="function"){var b=sh(o,a);tn(e,t,b,Ve(e))}else tn(e,t,a,Ve(e))}catch(T){tn(e,t,{then:function(){},status:"rejected",reason:T},Ve())}finally{K.p=u,R.T=i}}function mh(){}function Vi(e,t,l,a){if(e.tag!==5)throw Error(d(476));var n=cr(e).queue;ir(e,n,t,Ze,l===null?mh:function(){return sr(e),l(a)})}function cr(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Ze,baseState:Ze,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jt,lastRenderedState:Ze},next:null};var l={};return t.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:jt,lastRenderedState:l},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function sr(e){var t=cr(e).next.queue;tn(e,t,{},Ve())}function Qi(){return Oe(xn)}function or(){return pe().memoizedState}function rr(){return pe().memoizedState}function hh(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var l=Ve();e=al(l);var a=nl(t,e,l);a!==null&&(Re(a,t,l),nn(a,t,l)),t={cache:zi()},e.payload=t;return}t=t.return}}function gh(e,t,l){var a=Ve();l={lane:a,revertLane:0,action:l,hasEagerState:!1,eagerState:null,next:null},hu(e)?dr(t,l):(l=Ti(e,t,l,a),l!==null&&(Re(l,e,a),mr(l,t,a)))}function fr(e,t,l){var a=Ve();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))dr(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,we(c,i))return Wn(e,t,n,0),te===null&&Pn(),!1}catch{}finally{}if(l=Ti(e,t,n,a),l!==null)return Re(l,e,a),mr(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(d(479))}else t=Ti(e,l,a,2),t!==null&&Re(t,e,2)}function hu(e){var t=e.alternate;return e===q||t!==null&&t===q}function dr(e,t){fa=cu=!0;var l=e.pending;l===null?t.next=t:(t.next=l.next,l.next=t),e.pending=t}function mr(e,t,l){if(l&4194176){var a=t.lanes;a&=e.pendingLanes,l|=a,t.lanes=l,As(e,l)}}var vt={readContext:Oe,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};vt.useCacheRefresh=he,vt.useMemoCache=he,vt.useHostTransitionStatus=he,vt.useFormState=he,vt.useActionState=he,vt.useOptimistic=he;var _l={readContext:Oe,use:ru,useCallback:function(e,t){return Le().memoizedState=[e,t===void 0?null:t],e},useContext:Oe,useEffect:$o,useImperativeHandle:function(e,t,l){l=l!=null?l.concat([e]):null,du(4194308,4,tr.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(Ol){Zt(!0);try{e()}finally{Zt(!1)}}return l.memoizedState=[a,t],a},useReducer:function(e,t,l){var a=Le();if(l!==void 0){var n=l(t);if(Ol){Zt(!0);try{l(t)}finally{Zt(!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=gh.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=fr.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=ir.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(d(407));l=l()}else{if(l=t(),te===null)throw Error(d(349));X&60||Lo(a,t,l)}n.memoizedState=l;var u={value:l,getSnapshot:t};return n.queue=u,$o(Bo.bind(null,a,u,e),[e]),a.flags|=2048,ma(9,qo.bind(null,a,u,l,t),{destroy:void 0},null),l},useId:function(){var e=Le(),t=te.identifierPrefix;if(Z){var l=zt,a=Mt;l=(a&~(1<<32-Ge(a)-1)).toString(32)+l,t=":"+t+"R"+l,l=su++,0 title"))),ze(u,a,l),u[je]=e,Te(u),a=u;break e;case"link":var i=Yf("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[je]=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(ze(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&&qt(t)}}return ue(t),t.flags&=-16777217,null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==a&&qt(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(d(166));if(e=Kt.current,Va(t)){if(e=t.stateNode,l=t.memoizedProps,a=null,n=_e,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}e[je]=t,e=!!(e.nodeValue===l||a!==null&&a.suppressHydrationWarning===!0||Cf(e.nodeValue,l)),e||zl(t)}else e=Ru(e).createTextNode(a),e[je]=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(d(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(d(317));n[je]=t}else Qa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;ue(t),n=!1}else st!==null&&(zc(st),st=null),n=!0;if(!n)return t.flags&256?(Ct(t),t):(Ct(t),null)}if(Ct(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 Ql(),e===null&&Gc(t.stateNode.containerInfo),ue(t),null;case 10:return Rt(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;)lf(l,e),l=l.sibling;return ne(ve,ve.current&1|2),t.child}e=e.sibling}n.tail!==null&>()>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*gt()-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=gt(),t.sibling=null,e=ve.current,ne(ve,a?e&1|2:e&1),t):(ue(t),null);case 22:case 23:return Ct(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(jl),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),t.memoizedState.cache!==l&&(t.flags|=2048),Rt(be),ue(t),null;case 25:return null}throw Error(d(156,t.tag))}function xh(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 Rt(be),Ql(),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(Ct(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(d(340));Qa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Se(ve),null;case 4:return Ql(),null;case 10:return Rt(t.type),null;case 22:case 23:return Ct(t),Mi(),e!==null&&Se(jl),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Rt(be),null;case 25:return null;default:return null}}function uf(e,t){switch(Ai(t),t.tag){case 3:Rt(be),Ql();break;case 26:case 27:case 5:Un(t);break;case 4:Ql();break;case 13:Ct(t);break;case 19:Se(ve);break;case 10:Rt(t.type);break;case 22:case 23:Ct(t),Mi(),e!==null&&Se(jl);break;case 24:Rt(be)}}var Ah={getCacheForType:function(e){var t=Oe(be),l=t.data.get(e);return l===void 0&&(l=e(),t.data.set(e,l)),l}},Dh=typeof WeakMap=="function"?WeakMap:Map,ie=0,te=null,w=null,X=0,le=0,Xe=null,Bt=!1,ya=!1,Tc=!1,Gt=0,fe=0,ol=0,Gl=0,xc=0,nt=0,va=0,mn=null,bt=null,Ac=!1,Dc=0,Au=1/0,Du=null,rl=null,Nu=!1,wl=null,hn=0,Nc=0,Ec=null,gn=0,Mc=null;function Ve(){if(ie&2&&X!==0)return X&-X;if(R.T!==null){var e=oa;return e!==0?e:Hc()}return Ns()}function cf(){nt===0&&(nt=!(X&536870912)||Z?Ss():536870912);var e=et.current;return e!==null&&(e.flags|=32),nt}function Re(e,t,l){(e===te&&le===2||e.cancelPendingCommit!==null)&&(ba(e,0),wt(e,X,nt,!1)),_a(e,l),(!(ie&2)||e!==te)&&(e===te&&(!(ie&2)&&(Gl|=l),fe===4&&wt(e,X,nt,!1)),St(e))}function sf(e,t,l){if(ie&6)throw Error(d(327));var a=!l&&(t&60)===0&&(t&e.expiredLanes)===0||Oa(e,t),n=a?Mh(e,t):Oc(e,t,!0),u=a;do{if(n===0){ya&&!a&&wt(e,t,0,!1);break}else if(n===6)wt(e,t,0,!Bt);else{if(l=e.current.alternate,u&&!Nh(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&&(ba(c,i).flags|=256),i=Oc(c,i,!1),i!==2){if(Tc&&!o){c.errorRecoveryDisabledLanes|=u,Gl|=u,n=4;break e}u=bt,bt=n,u!==null&&zc(u)}n=i}if(u=!1,n!==2)continue}}if(n===1){ba(e,0),wt(e,t,0,!0);break}e:{switch(a=e,n){case 0:case 1:throw Error(d(345));case 4:if((t&4194176)===t){wt(a,t,nt,!Bt);break e}break;case 2:bt=null;break;case 3:case 5:break;default:throw Error(d(329))}if(a.finishedWork=l,a.finishedLanes=t,(t&62914560)===t&&(u=Dc+300-gt(),10l?32:l,R.T=null,wl===null)var u=!1;else{l=Ec,Ec=null;var i=wl,c=hn;if(wl=null,hn=0,ie&6)throw Error(d(331));var o=ie;if(ie|=4,ef(i.current),Wr(i,i.current,c,l),ie=o,pn(0,!1),Be&&typeof Be.onPostCommitFiberRoot=="function")try{Be.onPostCommitFiberRoot(ja,i)}catch{}u=!0}return u}finally{K.p=n,R.T=a,yf(e,t)}}return!1}function vf(e,t,l){t=We(l,t),t=Fi(e.stateNode,t,2),e=nl(e,t,2),e!==null&&(_a(e,2),St(e))}function I(e,t,l){if(e.tag===3)vf(e,e,l);else for(;t!==null;){if(t.tag===3){vf(t,e,l);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(rl===null||!rl.has(a))){e=We(l,e),l=Sr(2),a=nl(t,l,2),a!==null&&(Tr(l,a,t,e),_a(a,2),St(a));break}}t=t.return}}function _c(e,t,l){var a=e.pingCache;if(a===null){a=e.pingCache=new Dh;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=jh.bind(null,e,t,l),t.then(e,e))}function jh(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>gt()-Dc?!(ie&2)&&ba(e,0):xc|=l,va===X&&(va=0)),St(e)}function bf(e,t){t===0&&(t=Ts()),e=Pt(e,t),e!==null&&(_a(e,t),St(e))}function Oh(e){var t=e.memoizedState,l=0;t!==null&&(l=t.retryLane),bf(e,l)}function _h(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(d(314))}a!==null&&a.delete(t),bf(e,l)}function Rh(e,t){return Pu(e,t)}var zu=null,xa=null,Rc=!1,Cu=!1,Uc=!1,Yl=0;function St(e){e!==xa&&e.next===null&&(xa===null?zu=xa=e:xa=xa.next=e),Cu=!0,Rc||(Rc=!0,Hh(Uh))}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-Ge(42|e)+1)-1,u&=n&~(i&~c),u=u&201326677?u&201326677|1:u?u|2:0}u!==0&&(l=!0,xf(a,u))}else u=X,u=Bn(a,a===te?u:0),!(u&3)||Oa(a,u)||(l=!0,xf(a,u));a=a.next}while(l);Uc=!1}}function Uh(){Cu=Rc=!1;var e=0;Yl!==0&&(Xh()&&(e=Yl),Yl=0);for(var t=gt(),l=null,a=zu;a!==null;){var n=a.next,u=Sf(a,t);u===0?(a.next=null,l===null?zu=n:l.next=n,n===null&&(xa=l)):(l=a,(e!==0||u&3)&&(Cu=!0)),a=n}pn(e)}function Sf(e,t){for(var l=e.suspendedLanes,a=e.pingedLanes,n=e.expirationTimes,u=e.pendingLanes&-62914561;0"u"?null:document;function qf(e,t,l){var a=Da;if(a&&typeof t=="string"&&t){var n=Fe(t);n='link[rel="'+e+'"][href="'+n+'"]',typeof l=="string"&&(n+='[crossorigin="'+l+'"]'),Lf.has(n)||(Lf.add(n),e={rel:e,crossOrigin:l,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),ze(t,"link",e),Te(t),a.head.appendChild(t)))}}function Wh(e){Yt.D(e),qf("dns-prefetch",e,null)}function $h(e,t){Yt.C(e,t),qf("preconnect",e,t)}function Ih(e,t,l){Yt.L(e,t,l);var a=Da;if(a&&e&&t){var n='link[rel="preload"][as="'+Fe(t)+'"]';t==="image"&&l&&l.imageSrcSet?(n+='[imagesrcset="'+Fe(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(n+='[imagesizes="'+Fe(l.imageSizes)+'"]')):n+='[href="'+Fe(e)+'"]';var u=n;switch(t){case"style":u=Na(e);break;case"script":u=Ea(e)}ut.has(u)||(e=P({rel:"preload",href:t==="image"&&l&&l.imageSrcSet?void 0:e,as:t},l),ut.set(u,e),a.querySelector(n)!==null||t==="style"&&a.querySelector(bn(u))||t==="script"&&a.querySelector(Sn(u))||(t=a.createElement("link"),ze(t,"link",e),Te(t),a.head.appendChild(t)))}}function eg(e,t){Yt.m(e,t);var l=Da;if(l&&e){var a=t&&typeof t.as=="string"?t.as:"script",n='link[rel="modulepreload"][as="'+Fe(a)+'"][href="'+Fe(e)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ea(e)}if(!ut.has(u)&&(e=P({rel:"modulepreload",href:e},t),ut.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"),ze(a,"link",e),Te(a),l.head.appendChild(a)}}}function tg(e,t,l){Yt.S(e,t,l);var a=Da;if(a&&e){var n=Jl(a).hoistableStyles,u=Na(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=ut.get(u))&&Jc(e,l);var o=i=a.createElement("link");Te(o),ze(o,"link",e),o._p=new Promise(function(m,b){o.onload=m,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 lg(e,t){Yt.X(e,t);var l=Da;if(l&&e){var a=Jl(l).hoistableScripts,n=Ea(e),u=a.get(n);u||(u=l.querySelector(Sn(n)),u||(e=P({src:e,async:!0},t),(t=ut.get(n))&&Fc(e,t),u=l.createElement("script"),Te(u),ze(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function ag(e,t){Yt.M(e,t);var l=Da;if(l&&e){var a=Jl(l).hoistableScripts,n=Ea(e),u=a.get(n);u||(u=l.querySelector(Sn(n)),u||(e=P({src:e,async:!0,type:"module"},t),(t=ut.get(n))&&Fc(e,t),u=l.createElement("script"),Te(u),ze(u,"link",e),l.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Bf(e,t,l,a){var n=(n=Kt.current)?Uu(n):null;if(!n)throw Error(d(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(t=Na(l.href),l=Jl(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=Na(l.href);var u=Jl(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),ut.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},ut.set(e,l),u||ng(n,e,l,i.state))),t&&a===null)throw Error(d(528,""));return i}if(t&&a!==null)throw Error(d(529,""));return null;case"script":return t=l.async,l=l.src,typeof l=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ea(l),l=Jl(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(d(444,e))}}function Na(e){return'href="'+Fe(e)+'"'}function bn(e){return'link[rel="stylesheet"]['+e+"]"}function Gf(e){return P({},e,{"data-precedence":e.precedence,precedence:null})}function ng(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}),ze(t,"link",l),Te(t),e.head.appendChild(t))}function Ea(e){return'[src="'+Fe(e)+'"]'}function Sn(e){return"script[async]"+e}function wf(e,t,l){if(t.count++,t.instance===null)switch(t.type){case"style":var a=e.querySelector('style[data-href~="'+Fe(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),ze(a,"style",n),Hu(a,l.precedence,e),t.instance=a;case"stylesheet":n=Na(l.href);var u=e.querySelector(bn(n));if(u)return t.state.loading|=4,t.instance=u,Te(u),u;a=Gf(l),(n=ut.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}),ze(u,"link",a),t.state.loading|=4,Hu(u,l.precedence,e),t.instance=u;case"script":return u=Ea(l.src),(n=e.querySelector(Sn(u)))?(t.instance=n,Te(n),n):(a=l,(n=ut.get(u))&&(a=P({},l),Fc(a,n)),e=e.ownerDocument||e,n=e.createElement("script"),Te(n),ze(n,"link",a),e.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(d(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 ug(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 Xf(e){return!(e.type==="stylesheet"&&!(e.state.loading&3))}var Tn=null;function ig(){}function cg(e,t,l){if(Tn===null)throw Error(d(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=Na(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=Gf(l),(n=ut.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}),ze(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 sg(){if(Tn===null)throw Error(d(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(f)}catch(y){console.error(y)}}return f(),as.exports=op(),as.exports}var fp=rp();const dp={visibleTabs:{},setTabVisibility:()=>{},isTabVisible:()=>!1},Ad=D.createContext(dp),mp=({children:f})=>{const y=Ce.use.currentTab(),[x,d]=D.useState(()=>({documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}));D.useEffect(()=>{d(j=>({...j,documents:!0,"knowledge-graph":!0,retrieval:!0,api:!0}))},[y]);const N=D.useMemo(()=>({visibleTabs:x,setTabVisibility:(j,_)=>{d(F=>({...F,[j]:_}))},isTabVisible:j=>!!x[j]}),[x]);return s.jsx(Ad.Provider,{value:N,children:f})};var Dd="AlertDialog",[hp,tv]=Tg(Dd,[od]),Vt=od(),Nd=f=>{const{__scopeAlertDialog:y,...x}=f,d=Vt(y);return s.jsx(Mg,{...d,...x,modal:!0})};Nd.displayName=Dd;var gp="AlertDialogTrigger",pp=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,N=Vt(x);return s.jsx(zg,{...N,...d,ref:y})});pp.displayName=gp;var yp="AlertDialogPortal",Ed=f=>{const{__scopeAlertDialog:y,...x}=f,d=Vt(y);return s.jsx(bg,{...d,...x})};Ed.displayName=yp;var vp="AlertDialogOverlay",Md=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,N=Vt(x);return s.jsx(vg,{...N,...d,ref:y})});Md.displayName=vp;var Ma="AlertDialogContent",[bp,Sp]=hp(Ma),zd=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,children:d,...N}=f,j=Vt(x),_=D.useRef(null),F=rd(y,_),G=D.useRef(null);return s.jsx(Sg,{contentName:Ma,titleName:Cd,docsSlug:"alert-dialog",children:s.jsx(bp,{scope:x,cancelRef:G,children:s.jsxs(xg,{role:"alertdialog",...j,...N,ref:F,onOpenAutoFocus:Ag(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(Dg,{children:d}),s.jsx(xp,{contentRef:_})]})})})});zd.displayName=Ma;var Cd="AlertDialogTitle",jd=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,N=Vt(x);return s.jsx(Ng,{...N,...d,ref:y})});jd.displayName=Cd;var Od="AlertDialogDescription",_d=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,N=Vt(x);return s.jsx(Eg,{...N,...d,ref:y})});_d.displayName=Od;var Tp="AlertDialogAction",Rd=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,N=Vt(x);return s.jsx(fd,{...N,...d,ref:y})});Rd.displayName=Tp;var Ud="AlertDialogCancel",Hd=D.forwardRef((f,y)=>{const{__scopeAlertDialog:x,...d}=f,{cancelRef:N}=Sp(Ud,x),j=Vt(x),_=rd(y,N);return s.jsx(fd,{...j,...d,ref:_})});Hd.displayName=Ud;var xp=({contentRef:f})=>{const y=`\`${Ma}\` requires a description for the component to be accessible for screen reader users. You can add a description to the \`${Ma}\` by passing a \`${Od}\` 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 \`${Ma}\`. 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 d;document.getElementById((d=f.current)==null?void 0:d.getAttribute("aria-describedby"))||console.warn(y)},[y,f]),null},Ap=Nd,Dp=Ed,Ld=Md,qd=zd,Bd=Rd,Gd=Hd,wd=jd,Yd=_d;const Np=Ap,Ep=Dp,kd=D.forwardRef(({className:f,...y},x)=>s.jsx(Ld,{className:Qe("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",f),...y,ref:x}));kd.displayName=Ld.displayName;const Xd=D.forwardRef(({className:f,...y},x)=>s.jsxs(Ep,{children:[s.jsx(kd,{}),s.jsx(qd,{ref:x,className:Qe("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",f),...y})]}));Xd.displayName=qd.displayName;const Vd=({className:f,...y})=>s.jsx("div",{className:Qe("flex flex-col space-y-2 text-center sm:text-left",f),...y});Vd.displayName="AlertDialogHeader";const Qd=D.forwardRef(({className:f,...y},x)=>s.jsx(wd,{ref:x,className:Qe("text-lg font-semibold",f),...y}));Qd.displayName=wd.displayName;const Kd=D.forwardRef(({className:f,...y},x)=>s.jsx(Yd,{ref:x,className:Qe("text-muted-foreground text-sm",f),...y}));Kd.displayName=Yd.displayName;const Mp=D.forwardRef(({className:f,...y},x)=>s.jsx(Bd,{ref:x,className:Qe(pd(),f),...y}));Mp.displayName=Bd.displayName;const zp=D.forwardRef(({className:f,...y},x)=>s.jsx(Gd,{ref:x,className:Qe(pd({variant:"outline"}),"mt-2 sm:mt-0",f),...y}));zp.displayName=Gd.displayName;const Cp=({open:f,onOpenChange:y})=>{const{t:x}=Tt(),d=Ce.use.apiKey(),[N,j]=D.useState(""),_=ft.use.message();D.useEffect(()=>{j(d||"")},[d,f]),D.useEffect(()=>{_&&(_.includes(yd)||_.includes(vd))&&y(!0)},[_,y]);const F=D.useCallback(()=>{Ce.setState({apiKey:N||null}),y(!1)},[N,y]),G=D.useCallback(V=>{j(V.target.value)},[j]);return s.jsx(Np,{open:f,onOpenChange:y,children:s.jsxs(Xd,{children:[s.jsxs(Vd,{children:[s.jsx(Qd,{children:x("apiKeyAlert.title")}),s.jsx(Kd,{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(dt,{onClick:F,variant:"outline",size:"sm",children:x("apiKeyAlert.save")})]}),_&&s.jsx("div",{className:"text-sm text-red-500",children:_})]})]})})},jp=({status:f})=>{const{t:y}=Tt();return f?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:f.working_directory}),s.jsxs("span",{children:[y("graphPanel.statusCard.inputDirectory"),":"]}),s.jsx("span",{className:"truncate",children:f.input_directory}),s.jsxs("span",{children:[y("graphPanel.statusCard.summarySettings"),":"]}),s.jsxs("span",{children:[f.configuration.summary_language," / LLM summary on ",f.configuration.force_llm_summary_on_merge.toString()," fragments"]}),s.jsxs("span",{children:[y("graphPanel.statusCard.threshold"),":"]}),s.jsxs("span",{children:["cosine ",f.configuration.cosine_threshold," / rerank_score ",f.configuration.min_rerank_score," / max_related ",f.configuration.related_chunk_number]}),s.jsxs("span",{children:[y("graphPanel.statusCard.maxParallelInsert"),":"]}),s.jsx("span",{children:f.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:f.configuration.llm_binding_host}),s.jsxs("span",{children:[y("graphPanel.statusCard.llmModel"),":"]}),s.jsxs("span",{children:[f.configuration.llm_binding,": ",f.configuration.llm_model," (#",f.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:f.configuration.embedding_binding_host}),s.jsxs("span",{children:[y("graphPanel.statusCard.embeddingModel"),":"]}),s.jsxs("span",{children:[f.configuration.embedding_binding,": ",f.configuration.embedding_model," (#",f.configuration.embedding_func_max_async," Async * ",f.configuration.embedding_batch_num," batches)"]})]})]}),f.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:f.configuration.rerank_binding_host||"-"}),s.jsxs("span",{children:[y("graphPanel.statusCard.rerankerModel"),":"]}),s.jsxs("span",{children:[f.configuration.rerank_binding||"-"," : ",f.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:f.configuration.kv_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.docStatusStorage"),":"]}),s.jsx("span",{children:f.configuration.doc_status_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.graphStorage"),":"]}),s.jsx("span",{children:f.configuration.graph_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.vectorStorage"),":"]}),s.jsx("span",{children:f.configuration.vector_storage}),s.jsxs("span",{children:[y("graphPanel.statusCard.workspace"),":"]}),s.jsx("span",{children:f.configuration.workspace||"-"}),s.jsxs("span",{children:[y("graphPanel.statusCard.maxGraphNodes"),":"]}),s.jsx("span",{children:f.configuration.max_graph_nodes||"-"}),f.keyed_locks&&s.jsxs(s.Fragment,{children:[s.jsxs("span",{children:[y("graphPanel.statusCard.lockStatus"),":"]}),s.jsxs("span",{children:["mp ",f.keyed_locks.current_status.pending_mp_cleanup,"/",f.keyed_locks.current_status.total_mp_locks," | async ",f.keyed_locks.current_status.pending_async_cleanup,"/",f.keyed_locks.current_status.total_async_locks,"(pid: ",f.keyed_locks.process_id,")"]})]})]})]})]}):s.jsx("div",{className:"text-foreground text-xs",children:y("graphPanel.statusCard.unavailable")})},Op=({open:f,onOpenChange:y,status:x})=>{const{t:d}=Tt();return s.jsx(is,{open:f,onOpenChange:y,children:s.jsxs(cs,{className:"sm:max-w-[700px]",children:[s.jsxs(ss,{children:[s.jsx(os,{children:d("graphPanel.statusDialog.title")}),s.jsx(Ug,{children:d("graphPanel.statusDialog.description")})]}),s.jsx(jp,{status:x})]})})},_p=()=>{const{t:f}=Tt(),y=ft.use.health(),x=ft.use.lastCheckTime(),d=ft.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:Qe("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:f(y?"graphPanel.statusIndicator.connected":"graphPanel.statusIndicator.disconnected")})]}),s.jsx(Op,{open:_,onOpenChange:F,status:d})]})};function Zd({className:f}){const[y,x]=D.useState(!1),{t:d}=Tt(),N=Ce.use.language(),j=Ce.use.setLanguage(),_=Ce.use.theme(),F=Ce.use.setTheme(),G=D.useCallback(ce=>{j(ce)},[j]),V=D.useCallback(ce=>{F(ce)},[F]);return s.jsxs(Hg,{open:y,onOpenChange:x,children:[s.jsx(Lg,{asChild:!0,children:s.jsx(dt,{variant:"ghost",size:"icon",className:Qe("h-9 w-9",f),children:s.jsx(qg,{className:"h-5 w-5"})})}),s.jsx(Bg,{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:d("settings.language")}),s.jsxs(fs,{value:N,onValueChange:G,children:[s.jsx(ds,{children:s.jsx(ms,{})}),s.jsxs(hs,{children:[s.jsx(kt,{value:"en",children:"English"}),s.jsx(kt,{value:"zh",children:"中文"}),s.jsx(kt,{value:"fr",children:"Français"}),s.jsx(kt,{value:"ar",children:"العربية"}),s.jsx(kt,{value:"zh_TW",children:"繁體中文"})]})]})]}),s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsx("label",{className:"text-sm font-medium",children:d("settings.theme")}),s.jsxs(fs,{value:_,onValueChange:V,children:[s.jsx(ds,{children:s.jsx(ms,{})}),s.jsxs(hs,{children:[s.jsx(kt,{value:"light",children:d("settings.light")}),s.jsx(kt,{value:"dark",children:d("settings.dark")}),s.jsx(kt,{value:"system",children:d("settings.system")})]})]})]})]})})]})}const Rp=Cg,Jd=D.forwardRef(({className:f,...y},x)=>s.jsx(dd,{ref:x,className:Qe("bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",f),...y}));Jd.displayName=dd.displayName;const Fd=D.forwardRef(({className:f,...y},x)=>s.jsx(md,{ref:x,className:Qe("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",f),...y}));Fd.displayName=md.displayName;const Cn=D.forwardRef(({className:f,...y},x)=>s.jsx(hd,{ref:x,className:Qe("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",f),forceMount:!0,...y}));Cn.displayName=hd.displayName;function Up(){const{t:f}=Tt(),y=Ce.use.workspace(),x=Ce.use.workspaceList(),d=Ce.use.setWorkspace(),N=Ce.use.setWorkspaceList(),[j,_]=D.useState(!1),[F,G]=D.useState(""),[V,ce]=D.useState(""),[se,Y]=D.useState(!1),[oe,ee]=D.useState(!1),[C,Ke]=D.useState(!1);D.useEffect(()=>{it()},[]);const it=async()=>{_(!0);try{const Q=await Gg();N(Q.map(qe=>qe.name)),!y&&Q.length>0&&d(Q[0].name)}catch(Q){console.error("Failed to fetch workspaces:",Q)}finally{_(!1)}},Ne=async()=>{if(V.trim()){Y(!0);try{await Vg(V.trim()),await it(),d(V.trim()),ce("")}catch(Q){console.error("Failed to create workspace:",Q),alert(`Failed to create workspace: ${Q}`)}finally{Y(!1)}}},xt=async()=>{if(y){ee(!0);try{await Xg(y),await it(),d(""),Ke(!1)}catch(Q){console.error("Failed to delete workspace:",Q),alert(`Failed to delete workspace: ${Q}`)}finally{ee(!1)}}},Qt=x.filter(Q=>Q.toLowerCase().includes(F.toLowerCase()));return s.jsxs("div",{className:"flex flex-row items-center gap-2",children:[s.jsxs(fs,{value:y||"",onValueChange:Q=>d(Q),children:[s.jsx(ds,{className:"w-48",children:s.jsx(ms,{placeholder:f(j?"workspace.loading":"workspace.select")})}),s.jsxs(hs,{children:[s.jsx("div",{className:"px-2 py-1 border-b",children:s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx(wg,{className:"size-4 text-muted-foreground"}),s.jsx(jn,{placeholder:f("workspace.search"),value:F,onChange:Q=>G(Q.target.value),className:"h-8 border-0 focus-visible:ring-0"})]})}),Qt.length===0?s.jsx("div",{className:"px-3 py-2 text-sm text-muted-foreground",children:f("workspace.noWorkspaces")}):Qt.map(Q=>s.jsx(kt,{value:Q,children:Q},Q))]})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[y&&s.jsxs(is,{open:C,onOpenChange:Ke,children:[s.jsx(ld,{asChild:!0,children:s.jsx(dt,{size:"icon",variant:"outline",className:"text-destructive",children:s.jsx(Yg,{className:"size-4"})})}),s.jsxs(cs,{children:[s.jsx(ss,{children:s.jsx(os,{children:f("workspace.deleteTitle")})}),s.jsxs("div",{className:"space-y-4",children:[s.jsx("p",{className:"text-sm",children:f("workspace.deleteConfirm",{workspace:y})}),s.jsx("p",{className:"text-sm text-muted-foreground",children:f("workspace.deleteWarning")})]}),s.jsxs(ad,{children:[s.jsx(nd,{asChild:!0,children:s.jsx(dt,{variant:"outline",children:f("common.cancel")})}),s.jsx(dt,{onClick:xt,disabled:oe,variant:"destructive",children:f(oe?"common.deleting":"common.delete")})]})]})]}),s.jsxs(is,{children:[s.jsx(ld,{asChild:!0,children:s.jsx(dt,{size:"icon",variant:"outline",children:s.jsx(kg,{className:"size-4"})})}),s.jsxs(cs,{children:[s.jsx(ss,{children:s.jsx(os,{children:f("workspace.createTitle")})}),s.jsxs("div",{className:"space-y-4",children:[s.jsx(jn,{placeholder:f("workspace.namePlaceholder"),value:V,onChange:Q=>ce(Q.target.value),onKeyDown:Q=>{Q.key==="Enter"&&Ne()}}),s.jsx("p",{className:"text-sm text-muted-foreground",children:f("workspace.createDescription")})]}),s.jsxs(ad,{children:[s.jsx(nd,{asChild:!0,children:s.jsx(dt,{variant:"outline",children:f("common.cancel")})}),s.jsx(dt,{onClick:Ne,disabled:!V.trim()||se,children:f(se?"common.creating":"common.create")})]})]})]})]})]})}function Ku({value:f,currentTab:y,children:x}){return s.jsx(Fd,{value:f,className:Qe("cursor-pointer px-2 py-1 transition-all",y===f?"!bg-emerald-400 !text-zinc-50":"hover:bg-background/60"),children:x})}function Hp(){const f=Ce.use.currentTab(),{t:y}=Tt();return s.jsx("div",{className:"flex h-8 self-center",children:s.jsxs(Jd,{className:"h-full gap-2",children:[s.jsx(Ku,{value:"documents",currentTab:f,children:y("header.documents")}),s.jsx(Ku,{value:"knowledge-graph",currentTab:f,children:y("header.knowledgeGraph")}),s.jsx(Ku,{value:"retrieval",currentTab:f,children:y("header.retrieval")}),s.jsx(Ku,{value:"api",currentTab:f,children:y("header.api")})]})})}function Lp(){const{t:f}=Tt(),{isGuestMode:y,coreVersion:x,apiVersion:d,username:N,webuiTitle:j,webuiDescription:_}=Xt(),F=x&&d?`${x}/${d}`:null,G=()=>{Sd.navigateToLogin()};return s.jsxs("header",{className:"border-border/40 bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-50 flex flex-col w-full border-b px-4 backdrop-blur",children:[s.jsxs("div",{className:"flex h-10 items-center justify-between",children:[s.jsxs("div",{className:"min-w-[200px] w-auto flex items-center",children:[s.jsxs("a",{href:bd,className:"flex items-center gap-2",children:[s.jsx(ps,{className:"size-4 text-emerald-400","aria-hidden":"true"}),s.jsx("span",{className:"font-bold md:inline-block",children:rs.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(Qg,{children:s.jsxs(Kg,{children:[s.jsx(Zg,{asChild:!0,children:s.jsx("span",{className:"font-medium text-sm cursor-default",children:j})}),_&&s.jsx(Jg,{side:"bottom",children:_})]})})]})]}),s.jsxs("div",{className:"flex h-10 flex-1 items-center justify-center",children:[s.jsx(Hp,{}),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:f("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(dt,{variant:"ghost",size:"icon",side:"bottom",tooltip:f("header.projectRepository"),children:s.jsx("a",{href:rs.github,target:"_blank",rel:"noopener noreferrer",children:s.jsx(Fg,{className:"size-4","aria-hidden":"true"})})}),s.jsx(Zd,{}),!y&&s.jsx(dt,{variant:"ghost",size:"icon",side:"bottom",tooltip:`${f("header.logout")} (${N})`,onClick:G,children:s.jsx(Pg,{className:"size-4","aria-hidden":"true"})})]})})]}),s.jsx("div",{className:"flex items-center gap-2 py-1 border-t border-border/40",children:s.jsx(Up,{})})]})}const qp=()=>{const f=D.useContext(Ad);if(!f)throw new Error("useTabVisibility must be used within a TabVisibilityProvider");return f};function Bp(){const{t:f}=Tt(),{isTabVisible:y}=qp(),x=y("api"),[d,N]=D.useState(!1);return D.useEffect(()=>{d||N(!0)},[d]),s.jsx("div",{className:`size-full ${x?"":"hidden"}`,children:d?s.jsx("iframe",{src:Wg+"/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:f("apiSite.loading")})]})})})}function Gp(){const f=ft.use.message(),y=Ce.use.enableHealthCheck(),x=Ce.use.currentTab(),[d,N]=D.useState(!1),[j,_]=D.useState(!0),F=D.useRef(!1),G=D.useRef(!1),V=D.useCallback(Y=>{N(Y),Y||ft.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 ft.getState().check()}catch(oe){console.error("Health check error:",oe)}};if(ft.getState().setHealthCheckFunction(Y),!y||d){ft.getState().clearHealthCheckTimer();return}return G.current||(G.current=!0),ft.getState().resetHealthCheckTimer(),()=>{ft.getState().clearHealthCheckTimer()}},[y,d]),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 xd();if(!C.auth_configured&&C.access_token)Xt.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 Ke=C.auth_mode==="disabled"||Xt.getState().isGuestMode;Xt.getState().login(ee,Ke,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=>Ce.getState().setCurrentTab(Y),[]);return D.useEffect(()=>{f&&(f.includes(yd)||f.includes(vd))&&N(!0)},[f]),s.jsx(Td,{children:s.jsx(mp,{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:bd,className:"flex items-center gap-2",children:[s.jsx(ps,{className:"size-4 text-emerald-400","aria-hidden":"true"}),s.jsx("span",{className:"font-bold md:inline-block",children:rs.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(Rp,{defaultValue:x,className:"!m-0 flex grow flex-col !p-0 overflow-hidden",onValueChange:se,children:[s.jsx(Lp,{}),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(up,{})}),s.jsx(Cn,{value:"knowledge-graph",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx($g,{})}),s.jsx(Cn,{value:"retrieval",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx(ip,{})}),s.jsx(Cn,{value:"api",className:"absolute top-0 right-0 bottom-0 left-0 overflow-hidden",children:s.jsx(Bp,{})})]})]}),y&&s.jsx(_p,{}),s.jsx(Cp,{open:d,onOpenChange:V})]})})})}const wp=()=>{const f=gd(),{login:y,isAuthenticated:x}=Xt(),{t:d}=Tt(),[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){f("/");return}const C=await xd();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),f("/");return}se(!1)}catch(C){console.error("Failed to check auth configuration:",C),se(!1)}}})(),()=>{}),[x,y,f]),ce)return null;const oe=async ee=>{if(ee.preventDefault(),!_||!G){Mn.error(d("login.errorEmptyFields"));return}try{j(!0);const C=await lp(_,G);localStorage.getItem("LIGHTRAG-PREVIOUS-USER")===_?console.log("Same user logging in, preserving chat history"):(console.log("Different user logging in, clearing chat history"),Ce.getState().setRetrievalHistory([])),localStorage.setItem("LIGHTRAG-PREVIOUS-USER",_);const Ne=C.auth_mode==="disabled";y(C.access_token,Ne,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"),Ne?Mn.info(C.message||d("login.authDisabled","Authentication is disabled. Using guest access.")):Mn.success(d("login.successMessage")),f("/")}catch(C){console.error("Login failed...",C),Mn.error(d("login.errorInvalidCredentials")),Xt.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(Zd,{className:"bg-white/30 dark:bg-gray-800/30 backdrop-blur-sm rounded-md"})}),s.jsxs(Ig,{className:"w-full max-w-[480px] shadow-lg mx-4",children:[s.jsx(ep,{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(ps,{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(tp,{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:d("login.username")}),s.jsx(jn,{id:"username-input",placeholder:d("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:d("login.password")}),s.jsx(jn,{id:"password-input",type:"password",placeholder:d("login.passwordPlaceholder"),value:G,onChange:ee=>V(ee.target.value),required:!0,className:"h-11 flex-1"})]}),s.jsx(dt,{type:"submit",className:"w-full h-11 text-base font-medium mt-2",disabled:N,children:d(N?"login.loggingIn":"login.loginButton")})]})})]})]})},Yp=()=>{const[f,y]=D.useState(!0),{isAuthenticated:x}=Xt(),d=gd();return D.useEffect(()=>{Sd.setNavigate(d)},[d]),D.useEffect(()=>((async()=>{try{const j=localStorage.getItem("LIGHTRAG-API-TOKEN");if(j&&x){y(!1);return}j||Xt.getState().logout()}catch(j){console.error("Auth initialization error:",j),x||Xt.getState().logout()}finally{y(!1)}})(),()=>{}),[x]),D.useEffect(()=>{!f&&!x&&window.location.hash.slice(1)!=="/login"&&(console.log("Not authenticated, redirecting to login"),d("/login"))},[f,x,d]),f?null:s.jsxs(Rg,{children:[s.jsx(td,{path:"/login",element:s.jsx(wp,{})}),s.jsx(td,{path:"/*",element:x?s.jsx(Gp,{}):null})]})},kp=()=>s.jsx(Td,{children:s.jsxs(_g,{children:[s.jsx(Yp,{}),s.jsx(ap,{position:"bottom-center",theme:"system",closeButton:!0,richColors:!0})]})}),Xp={language:"Language",theme:"Theme",light:"Light",dark:"Dark",system:"System"},Vp={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"}},Qp={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...",deleteTitle:"Delete Workspace",deleteConfirm:"Are you sure you want to delete workspace '{{workspace}}'?",deleteWarning:"This will permanently delete all data in this workspace and cannot be undone."},Kp={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"},Zp={cancel:"Cancel",save:"Save",saving:"Saving...",saveFailed:"Save failed",delete:"Delete",deleting:"Deleting..."},Jp={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}}`}}},Fp={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)"},Pp={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."}},Wp={loading:"Loading API Documentation..."},$p={title:"API Key is required",description:"Please enter your API key to access the service",placeholder:"Enter your API key",save:"Save"},Ip={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"},ey={settings:Xp,header:Vp,workspace:Qp,login:Kp,common:Zp,documentPanel:Jp,graphPanel:Fp,retrievePanel:Pp,apiSite:Wp,apiKeyAlert:$p,pagination:Ip},ty={language:"语言",theme:"主题",light:"浅色",dark:"深色",system:"系统"},ly={documents:"文档",knowledgeGraph:"知识图谱",retrieval:"检索",api:"API",projectRepository:"项目仓库",logout:"退出登录",themeToggle:{switchToLight:"切换到浅色主题",switchToDark:"切换到深色主题"}},ay={description:"请输入您的账号和密码登录系统",username:"用户名",usernamePlaceholder:"请输入用户名",password:"密码",passwordPlaceholder:"请输入密码",loginButton:"登录",loggingIn:"登录中...",successMessage:"登录成功",errorEmptyFields:"请输入您的用户名和密码",errorInvalidCredentials:"登录失败,请检查用户名和密码",authDisabled:"认证已禁用,使用无需登陆模式。",guestMode:"无需登陆"},ny={cancel:"取消",save:"保存",saving:"保存中...",saveFailed:"保存失败"},uy={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}}`}}},iy={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:"无数据(请重载图形数据)"},cy={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。"}},sy={loading:"正在加载 API 文档..."},oy={title:"需要 API Key",description:"请输入您的 API Key 以访问服务",placeholder:"请输入 API Key",save:"保存"},ry={showing:"显示第 {{start}} 到 {{end}} 条,共 {{total}} 条记录",page:"页",pageSize:"每页显示",firstPage:"首页",prevPage:"上一页",nextPage:"下一页",lastPage:"末页"},fy={settings:ty,header:ly,login:ay,common:ny,documentPanel:uy,graphPanel:iy,retrievePanel:cy,apiSite:sy,apiKeyAlert:oy,pagination:ry},dy={language:"Langue",theme:"Thème",light:"Clair",dark:"Sombre",system:"Système"},my={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"}},hy={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"},gy={cancel:"Annuler",save:"Sauvegarder",saving:"Sauvegarde en cours...",saveFailed:"Échec de la sauvegarde"},py={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}}`}}},yy={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)"},vy={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."}},by={loading:"Chargement de la documentation de l'API..."},Sy={title:"Clé API requise",description:"Veuillez entrer votre clé API pour accéder au service",placeholder:"Entrez votre clé API",save:"Sauvegarder"},Ty={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"},xy={settings:dy,header:my,login:hy,common:gy,documentPanel:py,graphPanel:yy,retrievePanel:vy,apiSite:by,apiKeyAlert:Sy,pagination:Ty},Ay={language:"اللغة",theme:"السمة",light:"فاتح",dark:"داكن",system:"النظام"},Dy={documents:"المستندات",knowledgeGraph:"شبكة المعرفة",retrieval:"الاسترجاع",api:"واجهة برمجة التطبيقات",projectRepository:"مستودع المشروع",logout:"تسجيل الخروج",themeToggle:{switchToLight:"التحويل إلى السمة الفاتحة",switchToDark:"التحويل إلى السمة الداكنة"}},Ny={description:"الرجاء إدخال حسابك وكلمة المرور لتسجيل الدخول إلى النظام",username:"اسم المستخدم",usernamePlaceholder:"الرجاء إدخال اسم المستخدم",password:"كلمة المرور",passwordPlaceholder:"الرجاء إدخال كلمة المرور",loginButton:"تسجيل الدخول",loggingIn:"جاري تسجيل الدخول...",successMessage:"تم تسجيل الدخول بنجاح",errorEmptyFields:"الرجاء إدخال اسم المستخدم وكلمة المرور",errorInvalidCredentials:"فشل تسجيل الدخول، يرجى التحقق من اسم المستخدم وكلمة المرور",authDisabled:"تم تعطيل المصادقة. استخدام وضع بدون تسجيل دخول.",guestMode:"وضع بدون تسجيل دخول"},Ey={cancel:"إلغاء",save:"حفظ",saving:"جارٍ الحفظ...",saveFailed:"فشل الحفظ"},My={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}}`}}},zy={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:"فارغ (حاول إعادة التحميل)"},Cy={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."}},jy={loading:"جارٍ تحميل وثائق واجهة برمجة التطبيقات..."},Oy={title:"مفتاح واجهة برمجة التطبيقات مطلوب",description:"الرجاء إدخال مفتاح واجهة برمجة التطبيقات للوصول إلى الخدمة",placeholder:"أدخل مفتاح واجهة برمجة التطبيقات",save:"حفظ"},_y={showing:"عرض {{start}} إلى {{end}} من أصل {{total}} إدخالات",page:"الصفحة",pageSize:"حجم الصفحة",firstPage:"الصفحة الأولى",prevPage:"الصفحة السابقة",nextPage:"الصفحة التالية",lastPage:"الصفحة الأخيرة"},Ry={settings:Ay,header:Dy,login:Ny,common:Ey,documentPanel:My,graphPanel:zy,retrievePanel:Cy,apiSite:jy,apiKeyAlert:Oy,pagination:_y},Uy={language:"語言",theme:"主題",light:"淺色",dark:"深色",system:"系統"},Hy={documents:"文件",knowledgeGraph:"知識圖譜",retrieval:"檢索",api:"API",projectRepository:"專案庫",logout:"登出",themeToggle:{switchToLight:"切換至淺色主題",switchToDark:"切換至深色主題"}},Ly={description:"請輸入您的帳號和密碼登入系統",username:"帳號",usernamePlaceholder:"請輸入帳號",password:"密碼",passwordPlaceholder:"請輸入密碼",loginButton:"登入",loggingIn:"登入中...",successMessage:"登入成功",errorEmptyFields:"請輸入您的帳號和密碼",errorInvalidCredentials:"登入失敗,請檢查帳號和密碼",authDisabled:"認證已停用,使用免登入模式",guestMode:"免登入"},qy={cancel:"取消",save:"儲存",saving:"儲存中...",saveFailed:"儲存失敗"},By={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}}`}}},Gy={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:"無數據(請重載圖形數據)"},wy={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:"整個查詢上下文的最大總令牌預算(實體+關係+文檔塊+系統提示)"}},Yy={loading:"正在載入 API 文件..."},ky={title:"需要 API key",description:"請輸入您的 API key 以存取服務",placeholder:"請輸入 API key",save:"儲存"},Xy={showing:"顯示第 {{start}} 到 {{end}} 筆,共 {{total}} 筆記錄",page:"頁",pageSize:"每頁顯示",firstPage:"第一頁",prevPage:"上一頁",nextPage:"下一頁",lastPage:"最後一頁"},Vy={settings:Uy,header:Hy,login:Ly,common:qy,documentPanel:By,graphPanel:Gy,retrievePanel:wy,apiSite:Yy,apiKeyAlert:ky,pagination:Xy},Qy=()=>{var f;try{const y=localStorage.getItem("settings-storage");if(y)return((f=JSON.parse(y).state)==null?void 0:f.language)||"en"}catch(y){console.error("Failed to get stored language:",y)}return"en"};gs.use(np).init({resources:{en:{translation:ey},zh:{translation:fy},fr:{translation:xy},ar:{translation:Ry},zh_TW:{translation:Vy}},lng:Qy(),fallbackLng:"en",interpolation:{escapeValue:!1},returnEmptyString:!1,returnNull:!1});Ce.subscribe(f=>{const y=f.language;gs.language!==y&&gs.changeLanguage(y)});fp.createRoot(document.getElementById("root")).render(s.jsx(D.StrictMode,{children:s.jsx(kp,{})}));