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