hermes-web-ui 0.4.3 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/client/assets/Add-C5vmHXvi.js +1 -0
- package/dist/client/assets/{Button-vKfgky-Y.js → Button-BkFCVws1.js} +3 -3
- package/dist/client/assets/{ChannelsView-CHWtzAkF.js → ChannelsView-kmohhCQz.js} +1 -1
- package/dist/client/assets/ChatView-BqERLIKm.js +3 -0
- package/dist/client/assets/{ChatView-b0_L3ucp.css → ChatView-CjCcr65D.css} +1 -1
- package/dist/client/assets/{Close-Brba3ay5.js → Close-BQv4cWxW.js} +2 -2
- package/dist/client/assets/Dropdown-CalW5lgg.js +125 -0
- package/dist/client/assets/Empty-Crwpm9aR.js +24 -0
- package/dist/client/assets/FilesView-BIhdGj93.css +1 -0
- package/dist/client/assets/FilesView-DDqOER0C.js +279 -0
- package/dist/client/assets/{FormItem-kXuCeSKq.js → FormItem-rZXpOEwq.js} +3 -3
- package/dist/client/assets/GatewaysView-CBisX7sg.js +1 -0
- package/dist/client/assets/Input-CACQWEc-.js +234 -0
- package/dist/client/assets/{InputNumber-BXy4reTI.js → InputNumber-BtDJhuZ_.js} +2 -2
- package/dist/client/assets/JobsView-D2rkutWf.js +2 -0
- package/dist/client/assets/LoginView-fbo3JyWY.js +1 -0
- package/dist/client/assets/LogsView-D6S5uWNR.js +1 -0
- package/dist/client/assets/{MarkdownRenderer-B7t0ZEw0.js → MarkdownRenderer-4flsL0HK.js} +17 -17
- package/dist/client/assets/MemoryView-Ct-Xub44.js +7 -0
- package/dist/client/assets/{Modal-6Bv1v4kO.js → Modal-pv2obz6L.js} +4 -4
- package/dist/client/assets/{ModelsView-BStkMmEH.css → ModelsView-DoxebjaU.css} +1 -1
- package/dist/client/assets/ModelsView-NQaSxgAw.js +1 -0
- package/dist/client/assets/Popconfirm-BtGpKlX7.js +16 -0
- package/dist/client/assets/Popover-CrGHm4Ci.js +117 -0
- package/dist/client/assets/ProfilesView-BkxAC36G.js +1 -0
- package/dist/client/assets/Select-D9RT-keZ.js +317 -0
- package/dist/client/assets/SettingRow-Uz-cvlWh.js +1 -0
- package/dist/client/assets/SettingsView-ZqYSPWDq.js +352 -0
- package/dist/client/assets/SkillsView-CynAdT4a.js +1 -0
- package/dist/client/assets/{Spin-DKwUVt1F.js → Spin-Cl861IYY.js} +3 -3
- package/dist/client/assets/Suffix-lZvgRyRJ.js +90 -0
- package/dist/client/assets/{Switch-DG-3EwdR.js → Switch-Cgr6t0l5.js} +2 -2
- package/dist/client/assets/{Tag-BWD1u63m.js → Tag-DTjJYhIj.js} +2 -2
- package/dist/client/assets/{TerminalView-DTR8bNOy.js → TerminalView-B-24Rkd7.js} +6 -6
- package/dist/client/assets/Tooltip-BSRTJcks.js +1 -0
- package/dist/client/assets/Upload-GVPlkKwO.js +440 -0
- package/dist/client/assets/UsageView-MG6jNAat.js +1 -0
- package/dist/client/assets/{Warning-CCZES7el.js → Warning-C_N-vtES.js} +1 -1
- package/dist/client/assets/{_plugin-vue_export-helper-Bl_Pm_OI.js → _plugin-vue_export-helper-BQLp1Z61.js} +2 -2
- package/dist/client/assets/abap-Cj2ZJqTY.js +1 -0
- package/dist/client/assets/apex-DMOzUZZB.js +1 -0
- package/dist/client/assets/app-CawwM3Gr.js +1 -0
- package/dist/client/assets/app-DMdMpEzR.js +1 -0
- package/dist/client/assets/{auth-BPBv1nNQ.js → auth-Bkk8rJhI.js} +1 -1
- package/dist/client/assets/azcli-BJqyCQCD.js +1 -0
- package/dist/client/assets/bat-D9jfAgXL.js +1 -0
- package/dist/client/assets/bicep-IyCF8AHg.js +2 -0
- package/dist/client/assets/browser-C0KKMpa8.js +47 -0
- package/dist/client/assets/cameligo-DqphQ1Vf.js +1 -0
- package/dist/client/assets/chat-BdoAzXti.js +6 -0
- package/dist/client/assets/chunk-DECur_0Z.js +1 -0
- package/dist/client/assets/clipboard-D5ziXDzU.js +1 -0
- package/dist/client/assets/clojure-CqmBZ3SB.js +1 -0
- package/dist/client/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/client/assets/coffee-CD7nYioG.js +1 -0
- package/dist/client/assets/composables-gdfCfHJJ.js +1 -0
- package/dist/client/assets/cpp-CJjcH3OV.js +1 -0
- package/dist/client/assets/{create-5zWq3BEB.js → create-DgSD0xTd.js} +1 -1
- package/dist/client/assets/csharp-Bh3KEkzK.js +1 -0
- package/dist/client/assets/csp-Bwqlbr_S.js +1 -0
- package/dist/client/assets/css-CoIOcuFa.js +3 -0
- package/dist/client/assets/css.worker-DyDu5ynT.js +89 -0
- package/dist/client/assets/cssMode-DEq9g7fF.js +1 -0
- package/dist/client/assets/cypher-BI5xYxDU.js +1 -0
- package/dist/client/assets/dart-C48Nsypx.js +1 -0
- package/dist/client/assets/dockerfile-ueCsFBIO.js +1 -0
- package/dist/client/assets/ecl-bYObu0Am.js +1 -0
- package/dist/client/assets/editor-Br_kD0ds.css +1 -0
- package/dist/client/assets/editor.api2-Be2SWebq.js +872 -0
- package/dist/client/assets/editor.worker-Dpt_xPrs.js +26 -0
- package/dist/client/assets/elixir-C3hRLmcx.js +1 -0
- package/dist/client/assets/fade-in.cssr-D3Wt-ego.js +12 -0
- package/dist/client/assets/flow9-DFj18iNE.js +1 -0
- package/dist/client/assets/freemarker2-DL4Fzu5B.js +3 -0
- package/dist/client/assets/fsharp-AnzNBUww.js +1 -0
- package/dist/client/assets/go-tJ6Rmw6i.js +1 -0
- package/dist/client/assets/graphql-C0hIG8nm.js +1 -0
- package/dist/client/assets/handlebars-BHnMuvUj.js +1 -0
- package/dist/client/assets/hcl-BuyUNygY.js +1 -0
- package/dist/client/assets/html-GXFtBUzj.js +1 -0
- package/dist/client/assets/html.worker-IWNXhnIC.js +502 -0
- package/dist/client/assets/htmlMode-BcCXcf_0.js +1 -0
- package/dist/client/assets/index-8ao2g7sV.js +284 -0
- package/dist/client/assets/{index-BRXOdlZt.css → index-C9EadcMt.css} +1 -1
- package/dist/client/assets/ini-BeJtyijW.js +1 -0
- package/dist/client/assets/java-C2VAgfs1.js +1 -0
- package/dist/client/assets/javascript-U_9WP-aM.js +1 -0
- package/dist/client/assets/jobs-B5TmkmHx.js +1 -0
- package/dist/client/assets/jobs-ByeskmbT.js +1 -0
- package/dist/client/assets/json.worker-c4h5s80L.js +58 -0
- package/dist/client/assets/jsonMode-tONQS06s.js +7 -0
- package/dist/client/assets/julia-L5N2QjZH.js +1 -0
- package/dist/client/assets/kotlin-CoM2kw6K.js +1 -0
- package/dist/client/assets/less-zbg2EZtP.js +2 -0
- package/dist/client/assets/lexon-DYXVK96z.js +1 -0
- package/dist/client/assets/{light-DLz3o2il.js → light-0XEUqxc9.js} +1 -1
- package/dist/client/assets/{light-BNuYwJcs.js → light-5OhOi42N.js} +1 -1
- package/dist/client/assets/light-B2F950-4.js +1 -0
- package/dist/client/assets/{light-DcGe0-g1.js → light-CqEvxEaQ.js} +1 -1
- package/dist/client/assets/{light-DbUQYfY2.js → light-KCWDej_e.js} +1 -1
- package/dist/client/assets/{light-cIgLWDVk.js → light-Q_cJ87-J.js} +1 -1
- package/dist/client/assets/light-m-6OEHOE.js +1 -0
- package/dist/client/assets/liquid-B0bBAmrr.js +1 -0
- package/dist/client/assets/lspLanguageFeatures-CTVvD5p-.js +4 -0
- package/dist/client/assets/lua-BLOIBWLB.js +1 -0
- package/dist/client/assets/m3-cDvqo2bv.js +1 -0
- package/dist/client/assets/markdown-Dl_DNBM2.js +1 -0
- package/dist/client/assets/mdx-RopAvSlP.js +1 -0
- package/dist/client/assets/mips-BzzKjtTI.js +1 -0
- package/dist/client/assets/{models-EKNn3-zC.js → models-B81NGa-M.js} +1 -1
- package/dist/client/assets/monaco.contribution-BEuTYscZ.js +2 -0
- package/dist/client/assets/msdax-sEefJb9Q.js +1 -0
- package/dist/client/assets/mysql-DRV1IKn4.js +1 -0
- package/dist/client/assets/objective-c-DYtfYpNc.js +1 -0
- package/dist/client/assets/pascal-CpR5h_uZ.js +1 -0
- package/dist/client/assets/pascaligo-BI_Gz9Bp.js +1 -0
- package/dist/client/assets/perl-K9wCPr4J.js +1 -0
- package/dist/client/assets/pgsql-NrZG2xAf.js +1 -0
- package/dist/client/assets/php-DT0D5Htf.js +1 -0
- package/dist/client/assets/{pinia-C8BDM-Fc.js → pinia-Bf3FnMGw.js} +1 -1
- package/dist/client/assets/pla-COSVs9tJ.js +1 -0
- package/dist/client/assets/postiats-CpQICSCZ.js +1 -0
- package/dist/client/assets/powerquery-hpQUPY_r.js +1 -0
- package/dist/client/assets/powershell-CXKJShJs.js +1 -0
- package/dist/client/assets/preload-helper-rov5CBGT.js +1 -0
- package/dist/client/assets/profiles-CySy48VW.js +1 -0
- package/dist/client/assets/protobuf-VEer4AfK.js +2 -0
- package/dist/client/assets/pug-CCviz4wy.js +1 -0
- package/dist/client/assets/python-DPgAafol.js +1 -0
- package/dist/client/assets/qsharp-DTveMB6M.js +1 -0
- package/dist/client/assets/r-CnY31RFU.js +1 -0
- package/dist/client/assets/razor-BRbs1kR5.js +1 -0
- package/dist/client/assets/redis-1g6etttg.js +1 -0
- package/dist/client/assets/redshift-BQFehQo7.js +1 -0
- package/dist/client/assets/restructuredtext-CR8m-OPX.js +1 -0
- package/dist/client/assets/router-DSISOBmz.js +4 -0
- package/dist/client/assets/ruby-BljIZnPI.js +1 -0
- package/dist/client/assets/rust-C7icjueR.js +1 -0
- package/dist/client/assets/sb-Cl_sCxp1.js +1 -0
- package/dist/client/assets/scala-CT-TSn-3.js +1 -0
- package/dist/client/assets/scheme-BkJvX1f4.js +1 -0
- package/dist/client/assets/scss-B5N7uefM.js +3 -0
- package/dist/client/assets/{session-browser-prefs-BI-rZu2N.js → session-browser-prefs-LLoiG_YM.js} +1 -1
- package/dist/client/assets/{sessions-CJI89wYu.js → sessions-LymnKAC6.js} +1 -1
- package/dist/client/assets/shell-DGQq63Qg.js +1 -0
- package/dist/client/assets/{skills-DjdZmDZP.js → skills-5sEozVye.js} +1 -1
- package/dist/client/assets/solidity-BGsdM1K-.js +1 -0
- package/dist/client/assets/sophia-2vdPWHk_.js +1 -0
- package/dist/client/assets/sparql-BVtOOc6V.js +1 -0
- package/dist/client/assets/sql-ceGY-xNe.js +1 -0
- package/dist/client/assets/st-DupPN7oj.js +1 -0
- package/dist/client/assets/swift-BVzV3sGw.js +1 -0
- package/dist/client/assets/systemverilog-hp5X8uST.js +1 -0
- package/dist/client/assets/tcl-D56hFaYe.js +1 -0
- package/dist/client/assets/ts.worker-BwM5Ha3L.js +67719 -0
- package/dist/client/assets/tsMode-DGr7-1MY.js +11 -0
- package/dist/client/assets/twig-C2ivmPwo.js +1 -0
- package/dist/client/assets/typescript-yGuzzsRv.js +1 -0
- package/dist/client/assets/typespec-DxADZqov.js +1 -0
- package/dist/client/assets/{use-message-sSsrvqld.js → use-message-DOCgeMXd.js} +1 -1
- package/dist/client/assets/{useTheme-DgQIobZP.js → useTheme-Dm7n8Zfn.js} +1 -1
- package/dist/client/assets/vb-EBCrbQ4-.js +1 -0
- package/dist/client/assets/wgsl-9pwzQzLa.js +298 -0
- package/dist/client/assets/workers-LkP66fNk.js +1 -0
- package/dist/client/assets/xml-Dnyprwt6.js +1 -0
- package/dist/client/assets/yaml-BU-x4ie7.js +1 -0
- package/dist/client/index.html +36 -31
- package/dist/server/index.js +2201 -398
- package/dist/server/index.js.map +4 -4
- package/package.json +18 -4
- package/dist/client/assets/Add-DiTv65Se.js +0 -1
- package/dist/client/assets/ChatView--lvFbW3I.js +0 -127
- package/dist/client/assets/GatewaysView-DUPP1UyD.js +0 -1
- package/dist/client/assets/Input-BS71ZaoJ.js +0 -234
- package/dist/client/assets/JobsView-CXa1h0NF.js +0 -2
- package/dist/client/assets/LoginView-Cpod3SAL.js +0 -1
- package/dist/client/assets/LogsView-CgxeVMn-.js +0 -1
- package/dist/client/assets/MemoryView-BQjYVDJc.js +0 -7
- package/dist/client/assets/ModelsView-CVghPzgk.js +0 -1
- package/dist/client/assets/Popconfirm-Bpz_dC1j.js +0 -16
- package/dist/client/assets/Popover-CXrjClQw.js +0 -117
- package/dist/client/assets/ProfilesView-Brpyzl-Q.js +0 -440
- package/dist/client/assets/Select-Z20Mp4nQ.js +0 -340
- package/dist/client/assets/SettingRow-Cz749k-e.js +0 -1
- package/dist/client/assets/SettingsView-C3HbKb4w.js +0 -352
- package/dist/client/assets/SkillsView-qVZkbI37.js +0 -1
- package/dist/client/assets/Suffix-C1Mw6UwH.js +0 -90
- package/dist/client/assets/Tooltip-Dka1-DNs.js +0 -1
- package/dist/client/assets/UsageView-elTUQCED.js +0 -1
- package/dist/client/assets/app-BMD_VOYs.js +0 -1
- package/dist/client/assets/app-y8cD3FPg.js +0 -1
- package/dist/client/assets/browser-DlPqZ-4M.js +0 -47
- package/dist/client/assets/chat-3-o9JAHE.js +0 -6
- package/dist/client/assets/composables-CoSqDggz.js +0 -1
- package/dist/client/assets/fade-in.cssr-D0suZaLL.js +0 -12
- package/dist/client/assets/index-CeFFa_Wg.js +0 -284
- package/dist/client/assets/jobs-DMiCP2Li.js +0 -1
- package/dist/client/assets/profiles-1vZTTlBc.js +0 -1
- package/dist/client/assets/router-kR4kqS2l.js +0 -4
- /package/dist/client/assets/{_common-D_mHAddk.js → _common-DdtSL-nr.js} +0 -0
- /package/dist/client/assets/{logo-Cd-t_oGE.js → logo-D12u0f1i.js} +0 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import{$ as e,A as t,C as n,D as r,E as i,F as a,G as o,K as s,N as c,O as l,Q as u,R as d,T as f,U as p,W as m,X as h,Y as g,Z as _,b as v,c as y,ct as b,d as x,gt as S,h as C,it as w,j as T,k as E,l as D,mt as O,n as k,ot as A,p as j,pt as M,q as ee,rt as te,t as ne,w as N,y as P}from"./router-DSISOBmz.js";import{t as re}from"./pinia-Bf3FnMGw.js";import{n as ie,r as ae,t as F}from"./_plugin-vue_export-helper-BQLp1Z61.js";import"./logo-D12u0f1i.js";import{$ as oe,B as se,V as ce,X as le,_t as ue,a as de,at as I,c as fe,ct as L,d as pe,dt as R,f as me,it as he,n as z,nt as B,o as ge,pt as V,r as _e,rt as H,s as U,st as W,tt as ve,u as ye,ut as G,z as be}from"./browser-C0KKMpa8.js";import{F as xe,a as Se,c as K,i as Ce,l as we}from"./Popover-CrGHm4Ci.js";import{a as Te,i as Ee,n as De}from"./Suffix-lZvgRyRJ.js";import{l as Oe,r as ke}from"./fade-in.cssr-D3Wt-ego.js";import{a as Ae,c as je,d as Me,f as Ne,h as Pe,i as Fe,l as Ie,m as Le,n as Re,o as ze,p as Be,r as Ve,s as He,t as Ue,u as We}from"./Modal-pv2obz6L.js";import{t as Ge}from"./Close-BQv4cWxW.js";import{n as Ke,r as qe}from"./Empty-Crwpm9aR.js";import{a as Je,i as Ye,n as Xe,o as Ze,r as Qe,s as $e,t as et}from"./Select-D9RT-keZ.js";import{a as tt,i as nt,r as rt,t as it}from"./Button-BkFCVws1.js";import{n as at,t as ot}from"./Warning-C_N-vtES.js";import{n as st,r as ct}from"./light-5OhOi42N.js";import{n as lt,r as ut,t as dt}from"./Input-CACQWEc-.js";import{n as ft}from"./Tag-DTjJYhIj.js";import{a as pt,i as mt,t as ht}from"./light-CqEvxEaQ.js";import{a as gt,i as _t,r as vt,s as yt,t as bt}from"./light-B2F950-4.js";import{i as xt,n as St,r as Ct}from"./light-m-6OEHOE.js";import{n as wt,t as Tt}from"./light-Q_cJ87-J.js";import{n as Et,r as Dt,t as Ot}from"./use-message-DOCgeMXd.js";import{n as kt}from"./light-KCWDej_e.js";import{n as At,t as jt}from"./Spin-Cl861IYY.js";import{t as Mt}from"./_common-DdtSL-nr.js";import{t as Nt}from"./light-0XEUqxc9.js";import{t as Pt}from"./useTheme-Dm7n8Zfn.js";import{t as Ft}from"./app-DMdMpEzR.js";import{t as It}from"./profiles-CySy48VW.js";import{t as Lt}from"./chat-BdoAzXti.js";import{a as Rt,s as zt}from"./sessions-LymnKAC6.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Bt={login:{title:`Hermes Web UI`,description:`Enter your access token to continue. Find it in the server startup logs.`,placeholder:`Access token`,submit:`Login`,tokenRequired:`Please enter your access token`,invalidToken:`Invalid token`,connectionFailed:`Cannot connect to server`,passwordLogin:`Password`,tokenLogin:`Token`,usernamePlaceholder:`Username`,passwordPlaceholder:`Password`,credentialsRequired:`Please enter username and password`,invalidCredentials:`Invalid username or password`,passwordMismatch:`Passwords do not match`,passwordTooShort:`Password must be at least 6 characters`,setupSuccess:`Password login configured successfully`,passwordChanged:`Password changed successfully`,passwordRemoved:`Password login removed`,setupPassword:`Set Up Password Login`,changePassword:`Change Password`,changeUsername:`Change Username`,removePasswordLogin:`Remove`,username:`Username`,currentPassword:`Current Password`,newPassword:`New Password`,confirmPassword:`Confirm Password`,newUsername:`New Username`,usernameChanged:`Username changed successfully`,usernameTooShort:`Username must be at least 2 characters`,setupDescription:`Set up a username and password for convenient login. The access token will continue to work as a backup.`,removeConfirm:`Are you sure you want to remove password login? You will need to use the access token to log in.`,passwordLoginNotConfigured:`Password login is not configured`,passwordLoginConfigured:`Password login enabled ({username})`},common:{loading:`Loading...`,cancel:`Cancel`,delete:`Delete`,edit:`Edit`,save:`Save`,retry:`Retry`,saved:`Saved`,update:`Update`,create:`Create`,saveFailed:`Save failed`,ok:`OK`,copied:`Copied`,copy:`Copy`,noData:`No data`,fetch:`Fetch`,add:`Add`,enable:`Enable`,disable:`Disable`,configured:`Configured`,notConfigured:`Not configured`,confirm:`Confirm`,expand:`Expand`,collapse:`Collapse`,start:`Start`,stop:`Stop`},sidebar:{chat:`Chat`,search:`Search`,jobs:`Jobs`,models:`Models`,profiles:`Profiles`,skills:`Skills`,memory:`Memory`,logs:`Logs`,usage:`Usage`,channels:`Channels`,gateways:`Gateways`,terminal:`Terminal`,files:`Files`,groupConversation:`Conversation`,groupPlatform:`Platform`,groupAgent:`Agent`,groupSystem:`System`,groupMonitoring:`Monitoring`,groupTools:`Tools`,settings:`Settings`,connected:`Connected`,disconnected:`Disconnected`,collapse:`Collapse menu`,expand:`Expand menu`,updateTip:`Run "hermes-web-ui update" in terminal to update`,updateVersion:`Upgrade to v{version}`,updating:`Updating...`,updateSuccess:`Update complete, please restart the server`,updateFailed:`Update failed`,logout:`Sign Out`,changelog:`Changelog`,noChangelog:`No changelog available`},chat:{contextRemaining:`remaining`,emptyState:`Start a conversation with Hermes Agent`,inputPlaceholder:`Type a message... (Enter to send, Shift+Enter for new line)`,attachFiles:`Attach files`,stop:`Stop`,start:`Start`,stopGateway:`Stop Gateway`,send:`Send`,contextUsed:`Context used:`,sessions:`Sessions`,noSessions:`No sessions`,searchTitle:`Search Sessions`,searchSubtitle:`Search by title or message content`,searchHint:`Cmd/Ctrl+K`,searchPlaceholder:`Search sessions...`,searchEmpty:`Recent sessions`,searchRecent:`Recent session`,searchNoResults:`No sessions match your search`,searchNoSnippet:`No snippet available`,searchEnterHint:`Enter to open · Esc to close`,searchFailed:`Failed to search sessions`,newChat:`New Chat`,deleteSession:`Delete this session?`,sessionDeleted:`Session deleted`,rename:`Rename`,pin:`Pin`,unpin:`Unpin`,pinned:`Pinned`,chatMode:`Chat`,liveMode:`Live`,liveSessions:`Live Sessions`,recentBadge:`Recent`,linkedSessions:`{count} linked`,noVisibleMessages:`No human-visible messages.`,monitorRoleUser:`User`,monitorRoleAssistant:`Assistant`,copySessionId:`Copy Session ID`,renamed:`Renamed`,renameFailed:`Rename failed`,renameSession:`Rename Session`,enterNewTitle:`Enter new title`,other:`Other`,runFailed:`Run failed`,error:`Error`,tool:`Tool`,arguments:`Arguments`,result:`Result`,truncated:`... (truncated)`},jobs:{title:`Scheduled Jobs`,createJob:`Create Job`,editJob:`Edit Job`,noJobs:`No scheduled jobs yet. Create one to get started.`,name:`Name`,namePlaceholder:`Job name`,schedule:`Schedule (Cron Expression)`,schedulePlaceholder:`e.g. 0 9 * * *`,quickPresets:`Quick Presets`,selectPreset:`Select a preset...`,presetEveryMinute:`Every minute`,presetEvery5Min:`Every 5 minutes`,presetEveryHour:`Every hour`,presetEveryDay:`Every day at 00:00`,presetEveryDay9:`Every day at 09:00`,presetEveryMonday:`Every Monday at 09:00`,presetEveryMonth:`Every month 1st at 09:00`,prompt:`Prompt`,promptPlaceholder:`The prompt to execute`,deliverTarget:`Deliver Target`,origin:`Origin`,local:`Local`,repeatCount:`Repeat Count (optional)`,repeatPlaceholder:`Leave empty for infinite`,jobCreated:`Job created`,jobUpdated:`Job updated`,nameRequired:`Name is required`,scheduleRequired:`Schedule is required`,loadFailed:`Failed to load job`,jobPaused:`Job paused`,jobResumed:`Job resumed`,jobTriggered:`Job triggered`,jobDeleted:`Job deleted`,status:{running:`Running`,paused:`Paused`,disabled:`Disabled`,scheduled:`Scheduled`},info:{schedule:`Schedule`,lastRun:`Last Run`,nextRun:`Next Run`,deliver:`Deliver`,repeat:`Repeat`},action:{pause:`Pause`,pauseJob:`Pause job`,resume:`Resume`,resumeJob:`Resume job`,runNow:`Run Now`,triggerImmediately:`Trigger immediately`}},skills:{title:`Skills`,searchPlaceholder:`Search skills...`,noMatch:`No skills match your search`,noSkills:`No skills found`,backTo:`Back to`,attachedFiles:`Attached Files`,loadFailed:`Failed to load skill`,fileLoadFailed:`Failed to load file`,toggleFailed:`Failed to toggle skill`},memory:{title:`Memory`,refresh:`Refresh`,loadFailed:`Failed to load memory`,myNotes:`My Notes`,noNotes:`No notes yet.`,notesPlaceholder:`Write your notes...`,userProfile:`User Profile`,noProfile:`No profile yet.`,profilePlaceholder:`Write your profile...`,soul:`Soul`,noSoul:`No soul configuration yet.`,soulPlaceholder:`Write soul configuration...`},models:{title:`Models`,searchPlaceholder:`Search models...`,addProvider:`Add Provider`,providerType:`Provider Type`,preset:`Preset`,custom:`Custom`,selectProvider:`Select Provider`,chooseProvider:`Choose a provider...`,name:`Name`,autoGeneratedName:`Auto-generated from Base URL`,baseUrl:`Base URL`,baseUrlPlaceholder:`e.g. https://api.example.com/v1`,apiKey:`API Key`,apiKeyPlaceholder:`sk-...`,defaultModel:`Default Model`,selectOrInput:`Select or type a model name...`,selectModel:`Select a model...`,providerAdded:`Provider added`,providerDeleted:`Provider deleted`,deleteProvider:`Delete Provider`,deleteConfirm:`Are you sure you want to delete "{name}"?`,codexLoginTitle:`OpenAI Codex Login`,codexWaiting:`Enter this code at the authorization page to complete login:`,codexCopyCode:`Code copied`,codexOpenLink:`Open authorization page`,codexApproved:`Login successful`,codexExpired:`Authorization expired. Please try again.`,nousLoginTitle:`Nous Portal Login`,nousWaiting:`Enter this code at the authorization page to complete login:`,nousCopyCode:`Code copied`,nousOpenLink:`Open authorization page`,nousApproved:`Login successful`,nousDenied:`Authorization was denied. Please try again.`,nousExpired:`Authorization expired. Please try again.`,noProviders:`No providers found. Add a custom provider to get started.`,builtIn:`Built-in`,customType:`Custom`,provider:`Provider`,local:`Local ({host})`,selectProviderRequired:`Please select a provider`,baseUrlRequired:`Base URL is required`,apiKeyRequired:`API Key is required`,modelRequired:`Default Model is required`,enterBaseUrl:`Please enter Base URL first`,unexpectedFormat:`Unexpected response format`,foundModels:`Found {count} models`,fetchFailed:`Failed to fetch models`},gateways:{title:`Gateways`,running:`Running`,stopped:`Stopped`,started:`Started`,startFailed:`Failed to start gateway`,stopFailed:`Failed to stop gateway`},profiles:{title:`Profiles`,create:`Create Profile`,import:`Import`,export:`Export`,rename:`Rename`,delete:`Delete`,switchTo:`Switch to`,switchConfirm:`Switching to profile "{name}" will restart the gateway. Continue?`,switchSuccess:`Switched to profile "{name}"`,switchFailed:`Failed to switch profile. Gateway may need manual restart.`,createSuccess:`Profile "{name}" created`,createFailed:`Failed to create profile`,renameSuccess:`Profile renamed`,renameFailed:`Failed to rename profile`,deleteConfirm:`Are you sure you want to delete profile "{name}"?`,deleteSuccess:`Profile deleted`,deleteFailed:`Failed to delete profile`,exportSuccess:`Profile exported`,exportFailed:`Failed to export profile`,importSuccess:`Profile imported`,importFailed:`Failed to import profile`,importSelectFile:`Select archive file`,importInvalidFile:`Please select a valid archive (.tar.gz, .tgz, .gz, .zip)`,name:`Profile Name`,namePlaceholder:`English letters, numbers, hyphens only`,newName:`New Name`,newNamePlaceholder:`Enter new name`,cloneFromCurrent:`Clone from current profile`,archivePath:`Archive Path`,archivePathPlaceholder:`Server path to archive file`,importName:`Profile Name (optional)`,importNamePlaceholder:`Leave empty to use archive name`,active:`Active`,model:`Model`,gateway:`Gateway`,alias:`Alias`,provider:`Provider`,path:`Path`,skills:`Skills`,hasEnv:`Has .env`,hasSoulMd:`Has soul.md`,noProfiles:`No profiles found. Create one to get started.`},logs:{title:`Logs`,all:`All`,searchPlaceholder:`Search...`,refresh:`Refresh`,noEntries:`No log entries`},settings:{title:`Settings`,saved:`Saved`,saveFailed:`Save failed`,tabs:{display:`Display`,account:`Account`,agent:`Agent`,memory:`Memory`,session:`Session`,privacy:`Privacy`,apiServer:`API Server`,models:`Models`},models:{apiKey:`API Key`,apiKeyPlaceholder:`Enter API key`,save:`Save`,saved:`Saved`,saveFailed:`Save failed`,noProviders:`No providers configured`},display:{streaming:`Stream Responses`,streamingHint:`Show AI replies in real-time`,compact:`Compact Mode`,compactHint:`Reduce message spacing`,showReasoning:`Show Reasoning`,showReasoningHint:`Show model thinking process`,showCost:`Show Cost`,showCostHint:`Show token usage in replies`,inlineDiffs:`Inline Diffs`,inlineDiffsHint:`Show code changes inline`,bellOnComplete:`Completion Sound`,bellOnCompleteHint:`Play sound when AI finishes`,busyInputMode:`Busy Input Mode`,busyInputModeHint:`Allow input while AI is processing`,theme:`Theme`,themeHint:`Choose light, dark, or follow system preference`,themeLight:`Light`,themeDark:`Dark`,themeSystem:`System`},agent:{maxTurns:`Max Turns`,maxTurnsHint:`Maximum interaction rounds per conversation`,gatewayTimeout:`Gateway Timeout`,gatewayTimeoutHint:`Request timeout in seconds`,restartDrainTimeout:`Restart Drain Timeout`,restartDrainTimeoutHint:`Drain timeout before restart in seconds`,toolEnforcement:`Tool Enforcement`,toolEnforcementHint:`Control tool call execution mode`,auto:`Auto`,always:`Always`,never:`Never`},memory:{enabled:`Enable Memory`,enabledHint:`Allow AI to remember conversation context`,userProfile:`User Profile`,userProfileHint:`Allow AI to remember user preferences`,charLimit:`Memory Char Limit`,charLimitHint:`Max characters for MEMORY.md`,userCharLimit:`User Profile Char Limit`,userCharLimitHint:`Max characters for USER.md`},session:{mode:`Reset Mode`,modeHint:`Trigger condition for session reset`,modeBoth:`Idle + Scheduled`,modeIdle:`Idle Only`,modeHourly:`Scheduled Only`,idleMinutes:`Idle Timeout`,idleMinutesHint:`Wait time before auto-reset (minutes)`,atHour:`Scheduled Reset Time`,humanOnly:`Show human sessions only`,humanOnlyHint:`Hide sub-agent/session monitor noise by default`,liveMonitorHumanOnly:`Live monitor: show human sessions only`,liveMonitorHumanOnlyHint:`Hide sub-agent/session monitor noise in the Live monitor by default`,atHourHint:`Reset session at this hour daily`},privacy:{redactPii:`Redact PII`,redactPiiHint:`Auto-detect and hide sensitive info (passwords, keys, etc.)`},apiServer:{enable:`Enable`,enableHint:`Enable API server`,host:`Host`,hostHint:`Listen address`,port:`Port`,portHint:`Listen port`,key:`Key`,keyHint:`API access key`,cors:`CORS Origins`,corsHint:`Allowed cross-origin sources`}},platform:{requireMention:`Require {'@'}Mention`,requireMentionGroup:`Require {'@'}mention in groups to respond`,requireMentionChannel:`Require {'@'}mention in channels to respond`,requireMentionRoom:`Require {'@'}mention in rooms to respond`,reactions:`Reactions`,reactionsHint:`React to messages with emoji`,freeResponseChats:`Free Response Chats`,freeResponseChatsHint:`Chat IDs that respond without {'@'}mention (comma-separated)`,freeResponseChannels:`Free Response Channels`,freeResponseChannelsHint:`Channel IDs that respond without {'@'}mention (comma-separated)`,freeResponseRooms:`Free Response Rooms`,freeResponseRoomsHint:`Room IDs that respond without {'@'}mention (comma-separated)`,mentionPatterns:`Custom Mention Patterns`,mentionPatternsHint:`Additional trigger patterns`,autoThread:`Auto Thread`,autoThreadHint:`Auto-create reply threads after {'@'}mention`,autoThreadHintRoom:`Auto-create reply threads in rooms`,dmMentionThreads:`DM Mention Threads`,dmMentionThreadsHint:`Use thread replies for mentions in DMs`,allowBots:`Allow Bot Messages`,allowBotsHint:`Respond to messages from other bots`,allowedChannels:`Allowed Channels`,allowedChannelsHint:`Whitelist channel IDs (comma-separated)`,ignoredChannels:`Ignored Channels`,ignoredChannelsHint:`Channels where bot never responds (comma-separated)`,noThreadChannels:`No-Thread Channels`,noThreadChannelsHint:`Channels where bot responds without threads (comma-separated)`,botToken:`Bot Token`,botTokenHint:`Bot token from developer portal`,accessToken:`Access Token`,accessTokenHint:`Matrix access token`,homeserver:`Homeserver URL`,homeserverHint:`Matrix homeserver URL`,appId:`App ID`,appIdHint:`Feishu App ID`,appSecret:`App Secret`,appSecretHint:`Feishu App Secret`,clientId:`Client ID`,clientIdHint:`DingTalk Client ID`,clientSecret:`Client Secret`,clientSecretHint:`DingTalk Client Secret`,botId:`Bot ID`,botIdHint:`WeCom Bot ID`,wecomSecretHint:`WeCom Bot Secret`,waEnabled:`Enable WhatsApp`,waEnabledHint:`Enable WhatsApp via QR code pairing`,weixinToken:`Weixin Token`,weixinTokenHint:`From weixin CLI QR login (hermes weixin)`,accountId:`Account ID`,accountIdHint:`Weixin account ID`,qrLogin:`QR Login`,qrRelogin:`Re-login`,qrFetching:`Fetching QR code...`,qrScanHint:`Scan with WeChat to login`,qrScanedHint:`Scaned, please confirm on phone...`},language:{label:`Language`,zh:`中文`,en:`English`},terminal:{sessions:`Sessions`,newTab:`New Terminal`,closeSession:`Close this session?`,sessionExited:`Exited`,processExited:`Process exited with code {code}`},usage:{title:`Usage Statistics`,refresh:`Refresh`,totalTokens:`Total Tokens`,inputTokens:`Input`,outputTokens:`Output`,totalSessions:`Total Sessions`,avgPerDay:`~{n}/day avg`,estimatedCost:`Est. Cost`,cacheHitRate:`Cache Hit Rate`,modelBreakdown:`Model Breakdown`,dailyTrend:`Daily Usage (Last 30 Days)`,date:`Date`,tokens:`Tokens`,cache:`Cache`,sessions:`Sessions`,cost:`Cost`,noData:`No usage data`},files:{title:`Files`,tree:`Directory Tree`,list:`File List`,breadcrumbRoot:`Home`,newFile:`New File`,newFolder:`New Folder`,upload:`Upload`,refresh:`Refresh`,open:`Open`,edit:`Edit`,preview:`Preview`,download:`Download`,copyPath:`Copy Path`,rename:`Rename`,delete:`Delete`,name:`Name`,size:`Size`,modified:`Modified`,actions:`Actions`,emptyDir:`Empty directory`,loading:`Loading...`,confirmDelete:`Are you sure you want to delete "{name}"?`,confirmDeleteDir:`Are you sure you want to delete directory "{name}" and all its contents?`,deleteFailed:`Delete failed`,deleted:`Deleted`,renameTo:`Rename to`,newFileName:`File name`,newFolderName:`Folder name`,created:`Created`,createFailed:`Create failed`,renamed:`Renamed`,renameFailed:`Rename failed`,uploadSuccess:`Uploaded {count} file(s)`,uploadFailed:`Upload failed`,saveFailed:`Save failed`,saved:`Saved`,unsavedChanges:`You have unsaved changes. Discard?`,pathCopied:`Path copied`,fileTooLarge:`File too large (max 10MB)`,permissionDenied:`Cannot modify protected file`,notFound:`File or directory not found`,backendError:`File operation failed`,dragDropHint:`Drag files here to upload`,closeEditor:`Close Editor`,saveFile:`Save`},download:{downloading:`Downloading...`,downloadFailed:`Download failed`,fileNotFound:`File not found or deleted`,fileTooLarge:`File too large (exceeds limit)`,backendError:`File read failed, remote environment may be unavailable`,backendTimeout:`File read timed out`,unsupportedBackend:`Current terminal backend does not support file download`,invalidPath:`Invalid file path`,download:`Download`},changelog:{new_0_4_4_1:`Add file browser with multi-backend support (local/Docker/SSH/Singularity)`,new_0_4_4_2:`Add file download from chat message attachments`,new_0_4_4_3:`Add live badge on active chat sessions`,new_0_4_4_4:`Add StepFun and Nous Portal provider support`,new_0_4_4_5:`Fix special character search queries causing 500 error`,new_0_4_3_1:`Add username/password login alongside token authentication`,new_0_4_3_2:`Add account settings for managing credentials (setup, change password, change username)`,new_0_4_3_3:`Add logout button to sidebar`,new_0_4_3_4:`Add version changelog popup (click version number)`,new_0_4_2_1:`Add token usage tracking, context display, and dynamic context length`,new_0_4_2_2:`Add session search modal`,new_0_4_2_3:`Restore group chat system with Socket.IO and SQLite persistence`,new_0_4_2_4:`Add pinned sessions and live monitor in Chat page`,new_0_4_2_5:`Fix builtin provider detection and model matching`,new_0_4_1_1:`Fix auth bypass, SPA serving, and provider improvements`}},Vt={login:{title:`Hermes Web UI`,description:`输入访问令牌以继续。令牌在服务端启动日志中查看。`,placeholder:`访问令牌`,submit:`登录`,tokenRequired:`请输入访问令牌`,invalidToken:`令牌无效`,connectionFailed:`无法连接到服务器`,passwordLogin:`密码登录`,tokenLogin:`令牌登录`,usernamePlaceholder:`用户名`,passwordPlaceholder:`密码`,credentialsRequired:`请输入用户名和密码`,invalidCredentials:`用户名或密码错误`,passwordMismatch:`两次密码不一致`,passwordTooShort:`密码长度至少 6 个字符`,setupSuccess:`密码登录配置成功`,passwordChanged:`密码修改成功`,passwordRemoved:`密码登录已移除`,setupPassword:`设置密码登录`,changePassword:`修改密码`,changeUsername:`修改用户名`,removePasswordLogin:`移除`,username:`用户名`,currentPassword:`当前密码`,newPassword:`新密码`,confirmPassword:`确认密码`,newUsername:`新用户名`,usernameChanged:`用户名修改成功`,usernameTooShort:`用户名至少 2 个字符`,setupDescription:`设置用户名和密码以便快速登录。访问令牌仍可继续使用。`,removeConfirm:`确定要移除密码登录吗?移除后需要使用访问令牌登录。`,passwordLoginNotConfigured:`密码登录未配置`,passwordLoginConfigured:`密码登录已启用({username})`},common:{loading:`加载中...`,cancel:`取消`,delete:`删除`,retry:`重试`,edit:`编辑`,save:`保存`,saved:`已保存`,saveFailed:`保存失败`,ok:`确定`,copied:`已复制`,copy:`复制`,update:`更新`,create:`创建`,noData:`暂无数据`,fetch:`获取`,add:`添加`,enable:`启用`,disable:`禁用`,configured:`已配置`,notConfigured:`未配置`,confirm:`确定`,expand:`展开`,collapse:`收起`,start:`启动`,stop:`停止`},sidebar:{chat:`对话`,search:`搜索`,jobs:`任务`,models:`模型`,profiles:`用户`,skills:`技能`,memory:`记忆`,logs:`日志`,usage:`用量`,channels:`频道`,gateways:`网关`,terminal:`终端`,files:`文件`,groupConversation:`对话`,groupPlatform:`平台`,groupAgent:`代理`,groupSystem:`系统`,groupMonitoring:`监控`,groupTools:`工具`,settings:`设置`,connected:`已连接`,disconnected:`未连接`,collapse:`收起菜单`,expand:`展开菜单`,updateTip:`在终端运行 "hermes-web-ui update" 即可更新`,updateVersion:`升级版本 v{version}`,updating:`正在更新...`,updateSuccess:`更新完成,请重启服务`,updateFailed:`更新失败`,logout:`退出登录`,nodeVersionWarning:`检测到 Node.js v{version},请升级到23以上版本。`,changelog:`更新日志`,noChangelog:`暂无更新日志`},chat:{contextRemaining:`剩余`,emptyState:`开始与 Hermes Agent 对话`,inputPlaceholder:`输入消息... (Enter 发送,Shift+Enter 换行)`,attachFiles:`添加附件`,stop:`停止`,start:`启动`,stopGateway:`停止网关`,send:`发送`,contextUsed:`上下文已用:`,sessions:`会话`,noSessions:`暂无会话`,searchTitle:`搜索会话`,searchSubtitle:`按标题或消息内容搜索`,searchHint:`Cmd/Ctrl+K`,searchPlaceholder:`搜索会话...`,searchEmpty:`最近会话`,searchRecent:`最近会话`,searchNoResults:`没有匹配的会话`,searchNoSnippet:`没有可显示的摘要`,searchEnterHint:`Enter 打开 · Esc 关闭`,searchFailed:`搜索会话失败`,newChat:`新建对话`,deleteSession:`确定删除此会话?`,sessionDeleted:`会话已删除`,rename:`重命名`,pin:`置顶`,unpin:`取消置顶`,pinned:`已置顶`,chatMode:`聊天`,liveMode:`实时`,liveSessions:`实时会话`,recentBadge:`最近`,linkedSessions:`关联 {count} 个会话`,noVisibleMessages:`没有人类可见消息。`,monitorRoleUser:`用户`,monitorRoleAssistant:`助手`,copySessionId:`复制会话 ID`,renamed:`已重命名`,renameFailed:`重命名失败`,renameSession:`重命名会话`,enterNewTitle:`输入新标题`,other:`其他`,runFailed:`运行失败`,error:`错误`,tool:`工具`,arguments:`参数`,result:`结果`,truncated:`... (已截断)`},jobs:{title:`定时任务`,createJob:`创建任务`,editJob:`编辑任务`,noJobs:`暂无定时任务,创建一个开始吧。`,name:`名称`,namePlaceholder:`任务名称`,schedule:`调度表达式 (Cron)`,schedulePlaceholder:`例如 0 9 * * *`,quickPresets:`快速预设`,selectPreset:`选择预设...`,presetEveryMinute:`每分钟`,presetEvery5Min:`每 5 分钟`,presetEveryHour:`每小时`,presetEveryDay:`每天 00:00`,presetEveryDay9:`每天 09:00`,presetEveryMonday:`每周一 09:00`,presetEveryMonth:`每月 1 日 09:00`,prompt:`提示词`,promptPlaceholder:`要执行的内容`,deliverTarget:`投递目标`,origin:`来源`,local:`本地`,repeatCount:`重复次数(可选)`,repeatPlaceholder:`留空表示无限重复`,jobCreated:`任务已创建`,jobUpdated:`任务已更新`,nameRequired:`名称为必填项`,scheduleRequired:`调度表达式为必填项`,loadFailed:`加载任务失败`,jobPaused:`任务已暂停`,jobResumed:`任务已恢复`,jobTriggered:`任务已触发`,jobDeleted:`任务已删除`,status:{running:`运行中`,paused:`已暂停`,disabled:`已禁用`,scheduled:`已调度`},info:{schedule:`调度`,lastRun:`上次运行`,nextRun:`下次运行`,deliver:`投递`,repeat:`重复`},action:{pause:`暂停`,pauseJob:`暂停任务`,resume:`恢复`,resumeJob:`恢复任务`,runNow:`立即运行`,triggerImmediately:`立即触发`}},skills:{title:`技能`,searchPlaceholder:`搜索技能...`,noMatch:`没有匹配的技能`,noSkills:`暂无技能`,backTo:`返回`,attachedFiles:`附件文件`,loadFailed:`加载技能失败`,fileLoadFailed:`加载文件失败`,toggleFailed:`切换技能状态失败`},memory:{title:`记忆`,refresh:`刷新`,loadFailed:`加载记忆失败`,myNotes:`我的笔记`,noNotes:`暂无笔记。`,notesPlaceholder:`输入笔记内容...`,userProfile:`用户画像`,noProfile:`暂无画像。`,profilePlaceholder:`输入用户画像...`,soul:`灵魂`,noSoul:`暂无灵魂配置。`,soulPlaceholder:`输入灵魂配置...`},models:{title:`模型`,searchPlaceholder:`搜索模型...`,addProvider:`添加 Provider`,providerType:`Provider 类型`,preset:`预设`,custom:`自定义`,selectProvider:`选择 Provider`,chooseProvider:`选择一个 provider...`,name:`名称`,autoGeneratedName:`根据 Base URL 自动生成`,baseUrl:`Base URL`,baseUrlPlaceholder:`例如 https://api.example.com/v1`,apiKey:`API Key`,apiKeyPlaceholder:`sk-...`,defaultModel:`默认模型`,selectOrInput:`选择或输入模型名称...`,selectModel:`选择模型...`,providerAdded:`Provider 已添加`,providerDeleted:`Provider 已删除`,deleteProvider:`删除 Provider`,deleteConfirm:`确定删除 "{name}" 吗?`,codexLoginTitle:`OpenAI Codex 登录`,codexWaiting:`在授权页面输入以下代码完成登录:`,codexCopyCode:`代码已复制`,codexOpenLink:`打开授权页面`,codexApproved:`登录成功`,codexExpired:`授权已过期,请重试。`,nousLoginTitle:`Nous Portal 登录`,nousWaiting:`在授权页面输入此代码完成登录:`,nousCopyCode:`代码已复制`,nousOpenLink:`打开授权页面`,nousApproved:`登录成功`,nousDenied:`授权被拒绝,请重试。`,nousExpired:`授权已过期,请重试。`,noProviders:`暂无 Provider,添加一个开始吧。`,builtIn:`内置`,customType:`自定义`,provider:`Provider`,local:`本地 ({host})`,selectProviderRequired:`请选择 Provider`,baseUrlRequired:`Base URL 为必填项`,apiKeyRequired:`API Key 为必填项`,modelRequired:`默认模型为必填项`,enterBaseUrl:`请先输入 Base URL`,unexpectedFormat:`响应格式异常`,foundModels:`找到 {count} 个模型`,fetchFailed:`获取模型失败`},profiles:{title:`配置`,create:`创建配置`,import:`导入`,export:`导出`,rename:`重命名`,delete:`删除`,switchTo:`切换到`,switchConfirm:`切换到配置 "{name}" 将重启网关,是否继续?`,switchSuccess:`已切换到配置 "{name}"`,switchFailed:`切换配置失败,网关可能需要手动重启`,createSuccess:`配置 "{name}" 已创建`,createFailed:`创建配置失败`,renameSuccess:`配置已重命名`,renameFailed:`重命名配置失败`,deleteConfirm:`确定删除配置 "{name}" 吗?`,deleteSuccess:`配置已删除`,deleteFailed:`删除配置失败`,exportSuccess:`配置已导出`,exportFailed:`导出配置失败`,importSuccess:`配置已导入`,importFailed:`导入配置失败`,importSelectFile:`选择归档文件`,importInvalidFile:`请选择有效的归档文件 (.tar.gz, .tgz, .gz, .zip)`,name:`配置名称`,namePlaceholder:`仅限英文、数字、连字符`,newName:`新名称`,newNamePlaceholder:`输入新名称`,cloneFromCurrent:`从当前配置克隆`,archivePath:`归档路径`,archivePathPlaceholder:`归档文件的服务器路径`,importName:`配置名称(可选)`,importNamePlaceholder:`留空则使用归档名称`,active:`活跃`,model:`模型`,gateway:`网关`,alias:`别名`,provider:`Provider`,path:`路径`,skills:`技能`,hasEnv:`有 .env`,hasSoulMd:`有 soul.md`,noProfiles:`暂无配置,创建一个开始吧。`},logs:{title:`日志`,all:`全部`,searchPlaceholder:`搜索...`,refresh:`刷新`,noEntries:`暂无日志`},settings:{title:`设置`,saved:`已保存`,saveFailed:`保存失败`,tabs:{display:`显示`,account:`账户`,agent:`代理`,memory:`记忆`,session:`会话`,privacy:`隐私`,apiServer:`API 服务器`,models:`模型`},models:{apiKey:`API Key`,apiKeyPlaceholder:`输入 API Key`,save:`保存`,saved:`已保存`,saveFailed:`保存失败`,noProviders:`暂无已配置的模型`},display:{streaming:`流式响应`,streamingHint:`实时显示 AI 回复`,compact:`紧凑模式`,compactHint:`减少消息间距`,showReasoning:`显示推理过程`,showReasoningHint:`展示模型思考过程`,showCost:`显示费用`,showCostHint:`在回复中显示 token 使用量`,inlineDiffs:`内联差异`,inlineDiffsHint:`代码变更以内联方式显示`,bellOnComplete:`完成提示音`,bellOnCompleteHint:`AI 回复完成时播放提示音`,busyInputMode:`忙碌输入模式`,busyInputModeHint:`AI 处理中仍可输入`,theme:`主题`,themeHint:`选择浅色、暗色或跟随系统`,themeLight:`浅色`,themeDark:`暗色`,themeSystem:`跟随系统`},agent:{maxTurns:`最大轮次`,maxTurnsHint:`单次对话最大交互轮数`,gatewayTimeout:`网关超时`,gatewayTimeoutHint:`单次请求超时时间(秒)`,restartDrainTimeout:`重启排空超时`,restartDrainTimeoutHint:`重启前排空请求的超时时间(秒)`,toolEnforcement:`工具执行策略`,toolEnforcementHint:`控制工具调用的执行模式`,auto:`自动`,always:`始终`,never:`从不`},memory:{enabled:`启用记忆`,enabledHint:`允许 AI 记住对话上下文`,userProfile:`用户画像`,userProfileHint:`允许 AI 记住用户偏好信息`,charLimit:`记忆字符上限`,charLimitHint:`MEMORY.md 最大字符数`,userCharLimit:`用户画像字符上限`,userCharLimitHint:`USER.md 最大字符数`},session:{mode:`重置模式`,modeHint:`会话重置的触发条件`,modeBoth:`空闲 + 定时`,modeIdle:`仅空闲`,modeHourly:`仅定时`,idleMinutes:`空闲超时`,idleMinutesHint:`无操作后自动重置的等待时间(分钟)`,atHour:`定时重置时间`,humanOnly:`仅显示人类会话`,humanOnlyHint:`默认隐藏子代理和会话监看噪音`,liveMonitorHumanOnly:`实时监看:仅显示人类会话`,liveMonitorHumanOnlyHint:`在实时监看中默认隐藏子代理和会话监看噪音`,atHourHint:`每天在指定小时重置会话`},privacy:{redactPii:`脱敏 PII`,redactPiiHint:`自动检测并隐藏敏感信息(密码、密钥等)`},apiServer:{enable:`启用`,enableHint:`启用 API 服务器`,host:`主机`,hostHint:`监听地址`,port:`端口`,portHint:`监听端口`,key:`密钥`,keyHint:`API 访问密钥`,cors:`CORS 来源`,corsHint:`允许的跨域来源`}},platform:{requireMention:`需要 {'@'}提及`,requireMentionGroup:`群组中需要 {'@'}机器人 才会响应`,requireMentionChannel:`频道中需要 {'@'}机器人 才会响应`,requireMentionRoom:`房间中需要 {'@'}机器人 才会响应`,reactions:`表情回应`,reactionsHint:`对消息添加表情回应`,freeResponseChats:`自由响应聊天`,freeResponseChatsHint:`不需要 {'@'}提及即响应的聊天 ID(逗号分隔)`,freeResponseChannels:`自由响应频道`,freeResponseChannelsHint:`不需要 {'@'}提及即响应的频道 ID(逗号分隔)`,freeResponseRooms:`自由响应房间`,freeResponseRoomsHint:`不需要 {'@'}提及即响应的房间 ID(逗号分隔)`,mentionPatterns:`自定义提及模式`,mentionPatternsHint:`额外的触发模式列表`,autoThread:`自动创建线程`,autoThreadHint:`{'@'}提及 后自动创建回复线程`,autoThreadHintRoom:`在房间中自动创建回复线程`,dmMentionThreads:`DM 提及线程`,dmMentionThreadsHint:`在私聊中也使用线程回复提及`,allowBots:`允许机器人消息`,allowBotsHint:`响应其他机器人发送的消息`,allowedChannels:`允许的频道`,allowedChannelsHint:`白名单频道 ID(逗号分隔)`,ignoredChannels:`忽略的频道`,ignoredChannelsHint:`不响应的频道 ID(逗号分隔)`,noThreadChannels:`无线程频道`,noThreadChannelsHint:`不创建线程的频道 ID(逗号分隔)`,botToken:`Bot Token`,botTokenHint:`开发者门户获取的 Bot Token`,accessToken:`Access Token`,accessTokenHint:`Matrix Access Token`,homeserver:`Homeserver URL`,homeserverHint:`Matrix 服务器地址`,appId:`App ID`,appIdHint:`飞书 App ID`,appSecret:`App Secret`,appSecretHint:`飞书 App Secret`,clientId:`Client ID`,clientIdHint:`钉钉 Client ID`,clientSecret:`Client Secret`,clientSecretHint:`钉钉 Client Secret`,botId:`Bot ID`,botIdHint:`企业微信 Bot ID`,wecomSecretHint:`企业微信 Bot Secret`,waEnabled:`启用 WhatsApp`,waEnabledHint:`通过二维码配对启用 WhatsApp`,weixinToken:`微信 Token`,weixinTokenHint:`通过 weixin CLI 扫码登录获取 (hermes weixin)`,accountId:`Account ID`,accountIdHint:`微信 Account ID`,qrLogin:`扫码登录`,qrRelogin:`重新登录`,qrFetching:`正在获取二维码...`,qrScanHint:`使用微信扫描二维码登录`,qrScanedHint:`已扫描,请在手机上确认...`},gateways:{title:`网关`,running:`运行中`,stopped:`已停止`,started:`已启动`,startFailed:`启动失败`,stopFailed:`停止失败`},language:{label:`语言`,zh:`中文`,en:`English`},terminal:{sessions:`会话`,newTab:`新建终端`,closeSession:`关闭此会话?`,sessionExited:`已退出`,processExited:`进程已退出,代码 {code}`},usage:{title:`用量统计`,refresh:`刷新`,totalTokens:`总 Token 数`,inputTokens:`输入`,outputTokens:`输出`,totalSessions:`总会话数`,avgPerDay:`日均 ~{n}`,estimatedCost:`预估费用`,cacheHitRate:`缓存命中率`,modelBreakdown:`模型分布`,dailyTrend:`每日用量(近 30 天)`,date:`日期`,tokens:`Token`,cache:`缓存`,sessions:`会话`,cost:`费用`,noData:`暂无用量数据`},files:{title:`文件`,tree:`目录树`,list:`文件列表`,breadcrumbRoot:`根目录`,newFile:`新建文件`,newFolder:`新建文件夹`,upload:`上传`,refresh:`刷新`,open:`打开`,edit:`编辑`,preview:`预览`,download:`下载`,copyPath:`复制路径`,rename:`重命名`,delete:`删除`,name:`名称`,size:`大小`,modified:`修改时间`,actions:`操作`,emptyDir:`空目录`,loading:`加载中...`,confirmDelete:`确定要删除「{name}」吗?`,confirmDeleteDir:`确定要删除目录「{name}」及其所有内容吗?`,deleteFailed:`删除失败`,deleted:`已删除`,renameTo:`重命名为`,newFileName:`文件名`,newFolderName:`文件夹名`,created:`已创建`,createFailed:`创建失败`,renamed:`已重命名`,renameFailed:`重命名失败`,uploadSuccess:`已上传 {count} 个文件`,uploadFailed:`上传失败`,saveFailed:`保存失败`,saved:`已保存`,unsavedChanges:`有未保存的更改,是否丢弃?`,pathCopied:`路径已复制`,fileTooLarge:`文件过大(最大 10MB)`,permissionDenied:`无法修改受保护的文件`,notFound:`文件或目录不存在`,backendError:`文件操作失败`,dragDropHint:`拖拽文件到此处上传`,closeEditor:`关闭编辑器`,saveFile:`保存`},download:{downloading:`正在下载...`,downloadFailed:`下载失败`,fileNotFound:`文件不存在或已被删除`,fileTooLarge:`文件过大(超过限制)`,backendError:`文件读取失败,远程环境可能不可用`,backendTimeout:`文件读取超时`,unsupportedBackend:`当前 terminal backend 暂不支持文件下载`,invalidPath:`无效的文件路径`,download:`下载`},changelog:{new_0_4_4_1:`新增文件浏览器,支持多后端(本地/Docker/SSH/Singularity)`,new_0_4_4_2:`新增聊天消息附件文件下载`,new_0_4_4_3:`活跃会话显示实时状态标签`,new_0_4_4_4:`新增 StepFun 和 Nous Portal Provider 支持`,new_0_4_4_5:`修复特殊字符搜索导致 500 错误`,new_0_4_3_1:`新增用户名/密码登录,支持与令牌认证并存`,new_0_4_3_2:`新增账户设置:配置密码、修改密码、修改用户名`,new_0_4_3_3:`侧边栏新增退出登录按钮`,new_0_4_3_4:`点击版本号查看更新日志弹窗`,new_0_4_2_1:`新增 Token 用量追踪、上下文显示和动态上下文长度`,new_0_4_2_2:`新增会话搜索弹窗`,new_0_4_2_3:`恢复群聊系统(Socket.IO + SQLite 持久化)`,new_0_4_2_4:`Chat 页面新增固定会话和实时监控`,new_0_4_2_5:`修复内置 Provider 检测和模型匹配问题`,new_0_4_1_1:`修复认证绕过、SPA 静态文件服务和 Provider 改进`}},Ht={login:{title:`Hermes Web UI`,description:`アクセストークンを入力して続行してください。サーバーの起動ログで確認できます。`,placeholder:`アクセストークン`,submit:`ログイン`,tokenRequired:`アクセストークンを入力してください`,invalidToken:`無効なトークンです`,connectionFailed:`サーバーに接続できません`,passwordLogin:`パスワード`,tokenLogin:`トークン`,usernamePlaceholder:`ユーザー名`,passwordPlaceholder:`パスワード`,credentialsRequired:`ユーザー名とパスワードを入力してください`,invalidCredentials:`ユーザー名またはパスワードが正しくありません`,passwordMismatch:`パスワードが一致しません`,passwordTooShort:`パスワードは6文字以上必要です`,setupSuccess:`パスワードログインが設定されました`,passwordChanged:`パスワードが変更されました`,passwordRemoved:`パスワードログインが削除されました`,setupPassword:`パスワードログインを設定`,changePassword:`パスワードを変更`,changeUsername:`ユーザー名を変更`,removePasswordLogin:`削除`,username:`ユーザー名`,currentPassword:`現在のパスワード`,newPassword:`新しいパスワード`,confirmPassword:`パスワード確認`,newUsername:`新しいユーザー名`,usernameChanged:`ユーザー名が変更されました`,usernameTooShort:`ユーザー名は2文字以上必要です`,setupDescription:`ユーザー名とパスワードを設定して、簡単にログインできるようにします。アクセストークンは引き続きバックアップとして使用できます。`,removeConfirm:`パスワードログインを削除しますか?アクセストークンを使用してログインする必要があります。`,passwordLoginNotConfigured:`パスワードログイン未設定`,passwordLoginConfigured:`パスワードログイン有効({username})`},common:{loading:`読み込み中...`,cancel:`キャンセル`,retry:`再試行`,delete:`削除`,edit:`編集`,save:`保存`,saved:`保存しました`,update:`更新`,create:`作成`,saveFailed:`保存に失敗しました`,ok:`OK`,copied:`コピーしました`,copy:`コピー`,noData:`データがありません`,fetch:`取得`,add:`追加`,enable:`有効化`,disable:`無効化`,configured:`設定済み`,notConfigured:`未設定`,confirm:`確認`,expand:`展開`,collapse:`折りたたむ`},sidebar:{chat:`チャット`,jobs:`ジョブ`,models:`モデル`,profiles:`プロファイル`,skills:`スキル`,memory:`メモリ`,logs:`ログ`,usage:`使用量`,channels:`チャンネル`,terminal:`ターミナル`,settings:`設定`,connected:`接続済み`,disconnected:`未接続`,updateTip:`ターミナルで "hermes-web-ui update" を実行して更新してください`,updateVersion:`v{version} にアップグレード`,updating:`更新中...`,updateSuccess:`更新が完了しました。サーバーを再起動してください`,updateFailed:`更新に失敗しました`,logout:`ログアウト`,nodeVersionWarning:`Node.js v{version} が検出されました。全機能にはバージョン23+が必要です(SQLite、node-pty)。`,changelog:`更新履歴`,noChangelog:`更新履歴はありません`},chat:{contextRemaining:`残り`,emptyState:`Hermes Agent と会話を開始しましょう`,inputPlaceholder:`メッセージを入力... (Enter で送信、Shift+Enter で改行)`,attachFiles:`ファイルを添付`,stop:`停止`,send:`送信`,contextUsed:`コンテキスト使用量:`,sessions:`セッション`,noSessions:`セッションがありません`,newChat:`新しいチャット`,deleteSession:`このセッションを削除しますか?`,sessionDeleted:`セッションを削除しました`,rename:`名前変更`,pin:`ピン留め`,unpin:`ピン留め解除`,pinned:`ピン留め`,chatMode:`チャット`,liveMode:`ライブ`,liveSessions:`ライブセッション`,recentBadge:`最近`,linkedSessions:`{count} 件の関連`,noVisibleMessages:`人間向けに表示できるメッセージはありません。`,monitorRoleUser:`ユーザー`,monitorRoleAssistant:`アシスタント`,copySessionId:`セッション ID をコピー`,renamed:`名前を変更しました`,renameFailed:`名前の変更に失敗しました`,renameSession:`セッション名の変更`,enterNewTitle:`新しいタイトルを入力`,other:`その他`,runFailed:`実行に失敗しました`,error:`エラー`,tool:`ツール`,arguments:`引数`,result:`結果`,truncated:`... (省略)`},jobs:{title:`スケジュールジョブ`,createJob:`ジョブを作成`,editJob:`ジョブを編集`,noJobs:`スケジュールジョブがありません。作成して始めましょう。`,name:`名前`,namePlaceholder:`ジョブ名`,schedule:`スケジュール (Cron 式)`,schedulePlaceholder:`例: 0 9 * * *`,quickPresets:`クイックプリセット`,selectPreset:`プリセットを選択...`,presetEveryMinute:`毎分`,presetEvery5Min:`5分ごと`,presetEveryHour:`毎時`,presetEveryDay:`毎日 00:00`,presetEveryDay9:`毎日 09:00`,presetEveryMonday:`毎週月曜 09:00`,presetEveryMonth:`毎月1日 09:00`,prompt:`プロンプト`,promptPlaceholder:`実行するプロンプト`,deliverTarget:`配信先`,origin:`配信元`,local:`ローカル`,repeatCount:`繰り返し回数(任意)`,repeatPlaceholder:`空白の場合は無制限`,jobCreated:`ジョブを作成しました`,jobUpdated:`ジョブを更新しました`,nameRequired:`名前は必須です`,scheduleRequired:`スケジュールは必須です`,loadFailed:`ジョブの読み込みに失敗しました`,jobPaused:`ジョブを一時停止しました`,jobResumed:`ジョブを再開しました`,jobTriggered:`ジョブをトリガーしました`,jobDeleted:`ジョブを削除しました`,status:{running:`実行中`,paused:`一時停止`,disabled:`無効`,scheduled:`スケジュール済み`},info:{schedule:`スケジュール`,lastRun:`前回実行`,nextRun:`次回実行`,deliver:`配信`,repeat:`繰り返し`},action:{pause:`一時停止`,pauseJob:`ジョブを一時停止`,resume:`再開`,resumeJob:`ジョブを再開`,runNow:`今すぐ実行`,triggerImmediately:`すぐにトリガー`}},skills:{title:`スキル`,searchPlaceholder:`スキルを検索...`,noMatch:`検索に一致するスキルがありません`,noSkills:`スキルがありません`,backTo:`戻る`,attachedFiles:`添付ファイル`,loadFailed:`スキルの読み込みに失敗しました`,fileLoadFailed:`ファイルの読み込みに失敗しました`,toggleFailed:`スキルの切り替えに失敗しました`},memory:{title:`メモリ`,refresh:`更新`,loadFailed:`メモリの読み込みに失敗しました`,myNotes:`メモ`,noNotes:`メモはまだありません。`,notesPlaceholder:`メモを入力...`,userProfile:`ユーザープロファイル`,noProfile:`プロファイルはまだありません。`,profilePlaceholder:`プロファイルを入力...`,soul:`ソウル`,noSoul:`ソウル設定はまだありません。`,soulPlaceholder:`ソウル設定を入力...`},models:{title:`モデル`,addProvider:`プロバイダーを追加`,providerType:`プロバイダー種別`,preset:`プリセット`,custom:`カスタム`,selectProvider:`プロバイダーを選択`,chooseProvider:`プロバイダーを選択...`,name:`名前`,autoGeneratedName:`ベース URL から自動生成`,baseUrl:`ベース URL`,baseUrlPlaceholder:`例: https://api.example.com/v1`,apiKey:`API キー`,apiKeyPlaceholder:`sk-...`,defaultModel:`デフォルトモデル`,selectOrInput:`モデルを選択または入力...`,selectModel:`モデルを選択...`,providerAdded:`プロバイダーを追加しました`,providerDeleted:`プロバイダーを削除しました`,deleteProvider:`プロバイダーを削除`,deleteConfirm:`「{name}」を削除しますか?`,codexLoginTitle:`OpenAI Codex ログイン`,codexWaiting:`認証ページで以下のコードを入力してログインしてください:`,codexCopyCode:`コードをコピーしました`,codexOpenLink:`認証ページを開く`,codexApproved:`ログイン成功`,codexExpired:`認証の有効期限が切れました。もう一度お試しください。`,nousLoginTitle:`Nous Portal ログイン`,nousWaiting:`認証ページでこのコードを入力してください:`,nousCopyCode:`コードをコピーしました`,nousOpenLink:`認証ページを開く`,nousApproved:`ログイン成功`,nousDenied:`認証が拒否されました`,nousExpired:`認証の有効期限が切れました`,noProviders:`プロバイダーがありません。カスタムプロバイダーを追加して始めましょう。`,builtIn:`組み込み`,customType:`カスタム`,provider:`プロバイダー`,local:`ローカル ({host})`,selectProviderRequired:`プロバイダーを選択してください`,baseUrlRequired:`ベース URL は必須です`,apiKeyRequired:`API キーは必須です`,modelRequired:`デフォルトモデルは必須です`,enterBaseUrl:`ベース URL を先に入力してください`,unexpectedFormat:`予期しないレスポンス形式です`,foundModels:`{count} 個のモデルが見つかりました`,fetchFailed:`モデルの取得に失敗しました`},profiles:{title:`プロファイル`,create:`プロファイルを作成`,import:`インポート`,export:`エクスポート`,rename:`名前変更`,delete:`削除`,switchTo:`切り替え`,switchConfirm:`プロファイル「{name}」に切り替えるとゲートウェイが再起動されます。続行しますか?`,switchSuccess:`プロファイル「{name}」に切り替えました`,switchFailed:`プロファイルの切り替えに失敗しました。ゲートウェイの手動再起動が必要な場合があります。`,createSuccess:`プロファイル「{name}」を作成しました`,createFailed:`プロファイルの作成に失敗しました`,renameSuccess:`プロファイル名を変更しました`,renameFailed:`プロファイル名の変更に失敗しました`,deleteConfirm:`プロファイル「{name}」を削除しますか?`,deleteSuccess:`プロファイルを削除しました`,deleteFailed:`プロファイルの削除に失敗しました`,exportSuccess:`プロファイルをエクスポートしました`,exportFailed:`プロファイルのエクスポートに失敗しました`,importSuccess:`プロファイルをインポートしました`,importFailed:`プロファイルのインポートに失敗しました`,importSelectFile:`アーカイブファイルを選択`,importInvalidFile:`有効なアーカイブファイルを選択してください (.tar.gz, .tgz, .gz, .zip)`,name:`プロファイル名`,namePlaceholder:`英数字、ハイフンのみ`,newName:`新しい名前`,newNamePlaceholder:`新しい名前を入力`,cloneFromCurrent:`現在のプロファイルから複製`,archivePath:`アーカイブパス`,archivePathPlaceholder:`アーカイブファイルのサーバーパス`,importName:`プロファイル名(任意)`,importNamePlaceholder:`空白の場合はアーカイブ名を使用`,active:`アクティブ`,model:`モデル`,gateway:`ゲートウェイ`,alias:`エイリアス`,provider:`プロバイダー`,path:`パス`,skills:`スキル`,hasEnv:`.env あり`,hasSoulMd:`soul.md あり`,noProfiles:`プロファイルがありません。作成して始めましょう。`},logs:{title:`ログ`,all:`すべて`,searchPlaceholder:`検索...`,refresh:`更新`,noEntries:`ログエントリがありません`},settings:{title:`設定`,saved:`保存しました`,saveFailed:`保存に失敗しました`,tabs:{display:`表示`,account:`アカウント`,agent:`エージェント`,memory:`メモリ`,session:`セッション`,privacy:`プライバシー`,apiServer:`API サーバー`},display:{streaming:`ストリームレスポンス`,streamingHint:`AI の返信をリアルタイムで表示`,compact:`コンパクトモード`,compactHint:`メッセージの間隔を狭める`,showReasoning:`推論過程を表示`,showReasoningHint:`モデルの思考プロセスを表示`,showCost:`コストを表示`,showCostHint:`返信にトークン使用量を表示`,inlineDiffs:`インライン差分`,inlineDiffsHint:`コード変更をインラインで表示`,bellOnComplete:`完了通知音`,bellOnCompleteHint:`AI の応答完了時に通知音を再生`,busyInputMode:`処理中入力モード`,busyInputModeHint:`AI 処理中でも入力を許可`,theme:`テーマ`,themeHint:`ライト、ダーク、またはシステム設定に従う`,themeLight:`ライト`,themeDark:`ダーク`,themeSystem:`システム`},agent:{maxTurns:`最大ターン数`,maxTurnsHint:`1回の会話の最大インタラクション回数`,gatewayTimeout:`ゲートウェイタイムアウト`,gatewayTimeoutHint:`リクエストタイムアウト(秒)`,restartDrainTimeout:`再起動ドレインタイムアウト`,restartDrainTimeoutHint:`再起動前のドレインタイムアウト(秒)`,toolEnforcement:`ツール実行ポリシー`,toolEnforcementHint:`ツール呼び出しの実行モードを制御`,auto:`自動`,always:`常に`,never:`しない`},memory:{enabled:`メモリを有効化`,enabledHint:`AI に会話コンテキストを記憶させる`,userProfile:`ユーザープロファイル`,userProfileHint:`AI にユーザーの設定を記憶させる`,charLimit:`メモリ文字数上限`,charLimitHint:`MEMORY.md の最大文字数`,userCharLimit:`ユーザープロファイル文字数上限`,userCharLimitHint:`USER.md の最大文字数`},session:{mode:`リセットモード`,modeHint:`セッションリセットのトリガー条件`,modeBoth:`アイドル + スケジュール`,modeIdle:`アイドルのみ`,modeHourly:`スケジュールのみ`,idleMinutes:`アイドルタイムアウト`,idleMinutesHint:`自動リセットまでの待機時間(分)`,atHour:`スケジュールリセット時刻`,humanOnly:`人間のセッションのみ表示`,humanOnlyHint:`サブエージェントやセッション監視ノイズを既定で隠します`,liveMonitorHumanOnly:`ライブモニター: 人間のセッションのみ表示`,liveMonitorHumanOnlyHint:`ライブモニターでサブエージェントやセッション監視ノイズを既定で隠します`,atHourHint:`毎日指定時刻にセッションをリセット`},privacy:{redactPii:`個人情報のマスキング`,redactPiiHint:`機密情報を自動検出して隠す(パスワード、キーなど)`},apiServer:{enable:`有効化`,enableHint:`API サーバーを有効にする`,host:`ホスト`,hostHint:`リッスンアドレス`,port:`ポート`,portHint:`リッスンポート`,key:`キー`,keyHint:`API アクセスキー`,cors:`CORS 許可元`,corsHint:`許可するクロスオリジン`}},platform:{requireMention:`メンションが必要`,requireMentionGroup:`グループで応答するには {'@'}メンションが必要`,requireMentionChannel:`チャンネルで応答するには {'@'}メンションが必要`,requireMentionRoom:`ルームで応答するには {'@'}メンションが必要`,reactions:`リアクション`,reactionsHint:`メッセージに絵文字でリアクションする`,freeResponseChats:`自由応答チャット`,freeResponseChatsHint:`{'@'}メンションなしで応答するチャット ID(カンマ区切り)`,freeResponseChannels:`自由応答チャンネル`,freeResponseChannelsHint:`{'@'}メンションなしで応答するチャンネル ID(カンマ区切り)`,freeResponseRooms:`自由応答ルーム`,freeResponseRoomsHint:`{'@'}メンションなしで応答するルーム ID(カンマ区切り)`,mentionPatterns:`カスタムメンションパターン`,mentionPatternsHint:`追加のトリガーパターン`,autoThread:`自動スレッド`,autoThreadHint:`{'@'}メンション後に自動で返信スレッドを作成`,autoThreadHintRoom:`ルームで自動的に返信スレッドを作成`,dmMentionThreads:`DM メンションスレッド`,dmMentionThreadsHint:`DM 内のメンションにスレッド返信を使用`,allowBots:`ボットメッセージを許可`,allowBotsHint:`他のボットからのメッセージに応答する`,allowedChannels:`許可チャンネル`,allowedChannelsHint:`ホワイトリストのチャンネル ID(カンマ区切り)`,ignoredChannels:`除外チャンネル`,ignoredChannelsHint:`ボットが応答しないチャンネル ID(カンマ区切り)`,noThreadChannels:`スレッドなしチャンネル`,noThreadChannelsHint:`スレッドなしで応答するチャンネル ID(カンマ区切り)`,botToken:`ボットトークン`,botTokenHint:`開発者ポータルから取得したボットトークン`,accessToken:`アクセストークン`,accessTokenHint:`Matrix アクセストークン`,homeserver:`Homeserver URL`,homeserverHint:`Matrix ホームサーバー URL`,appId:`App ID`,appIdHint:`Feishu App ID`,appSecret:`App Secret`,appSecretHint:`Feishu App Secret`,clientId:`Client ID`,clientIdHint:`DingTalk Client ID`,clientSecret:`Client Secret`,clientSecretHint:`DingTalk Client Secret`,botId:`Bot ID`,botIdHint:`WeCom Bot ID`,wecomSecretHint:`WeCom Bot Secret`,waEnabled:`WhatsApp を有効化`,waEnabledHint:`QR コードペアリングで WhatsApp を有効にする`,weixinToken:`Weixin トークン`,weixinTokenHint:`weixin CLI の QR ログインから取得 (hermes weixin)`,accountId:`Account ID`,accountIdHint:`Weixin アカウント ID`,qrLogin:`QR ログイン`,qrRelogin:`再ログイン`,qrFetching:`QR コードを取得中...`,qrScanHint:`WeChat でスキャンしてログイン`,qrScanedHint:`スキャン済み、スマートフォンで確認してください...`},language:{label:`言語`,zh:`中文`,en:`English`,ja:`日本語`},terminal:{sessions:`セッション`,newTab:`新しいターミナル`,closeSession:`このセッションを閉じますか?`,sessionExited:`終了しました`,processExited:`プロセスが終了しました(コード {code})`},usage:{title:`使用統計`,refresh:`更新`,totalTokens:`総トークン数`,inputTokens:`入力`,outputTokens:`出力`,totalSessions:`総セッション数`,avgPerDay:`1日平均 ~{n}`,estimatedCost:`推定コスト`,cacheHitRate:`キャッシュヒット率`,modelBreakdown:`モデル別内訳`,dailyTrend:`日別使用量(過去30日間)`,date:`日付`,tokens:`トークン`,cache:`キャッシュ`,sessions:`セッション`,cost:`コスト`,noData:`使用データがありません`},changelog:{new_0_4_4_1:`ファイルブラウザを追加(local/Docker/SSH/Singularity対応)`,new_0_4_4_2:`チャットメッセージの添付ファイルダウンロードを追加`,new_0_4_4_3:`アクティブセッションにライブバッジを表示`,new_0_4_4_4:`StepFunとNous Portalプロバイダーに対応`,new_0_4_4_5:`特殊文字検索で500エラーになる問題を修正`,new_0_4_3_1:`トークン認証に加えてユーザー名/パスワードログインを追加`,new_0_4_3_2:`資格情報管理のためのアカウント設定を追加`,new_0_4_3_3:`サイドバーにログアウトボタンを追加`,new_0_4_3_4:`バージョン番号クリックで更新履歴ポップアップを追加`,new_0_4_2_1:`トークン使用量追跡と動的コンテキスト長を追加`,new_0_4_2_2:`セッション検索モーダルを追加`,new_0_4_2_3:`Socket.IOとSQLiteによるグループチャットシステムを復元`,new_0_4_2_4:`チャットページにピン留めセッションとライブモニターを追加`,new_0_4_2_5:`組み込みプロバイダー検出とモデルマッチングを修正`,new_0_4_1_1:`認証バイパスとSPAファイル配信を修正`}},Ut={login:{title:`Hermes Web UI`,description:`계속하려면 액세스 토큰을 입력하세요. 서버 시작 로그에서 확인할 수 있습니다.`,placeholder:`액세스 토큰`,submit:`로그인`,tokenRequired:`액세스 토큰을 입력해 주세요`,invalidToken:`유효하지 않은 토큰입니다`,connectionFailed:`서버에 연결할 수 없습니다`,passwordLogin:`비밀번호`,tokenLogin:`토큰`,usernamePlaceholder:`사용자 이름`,passwordPlaceholder:`비밀번호`,credentialsRequired:`사용자 이름과 비밀번호를 입력해 주세요`,invalidCredentials:`사용자 이름 또는 비밀번호가 올바르지 않습니다`,passwordMismatch:`비밀번호가 일치하지 않습니다`,passwordTooShort:`비밀번호는 6자 이상이어야 합니다`,setupSuccess:`비밀번호 로그인이 설정되었습니다`,passwordChanged:`비밀번호가 변경되었습니다`,passwordRemoved:`비밀번호 로그인이 제거되었습니다`,setupPassword:`비밀번호 로그인 설정`,changePassword:`비밀번호 변경`,changeUsername:`사용자 이름 변경`,removePasswordLogin:`제거`,username:`사용자 이름`,currentPassword:`현재 비밀번호`,newPassword:`새 비밀번호`,confirmPassword:`비밀번호 확인`,newUsername:`새 사용자 이름`,usernameChanged:`사용자 이름이 변경되었습니다`,usernameTooShort:`사용자 이름은 2자 이상이어야 합니다`,setupDescription:`사용자 이름과 비밀번호를 설정하여 편리하게 로그인하세요. 액세스 토큰은 백업으로 계속 사용할 수 있습니다.`,removeConfirm:`비밀번호 로그인을 제거하시겠습니까? 액세스 토큰을 사용하여 로그인해야 합니다.`,passwordLoginNotConfigured:`비밀번호 로그인 미설정`,passwordLoginConfigured:`비밀번호 로그인 활성화됨 ({username})`},common:{loading:`로딩 중...`,cancel:`취소`,retry:`재시도`,delete:`삭제`,edit:`편집`,save:`저장`,saved:`저장됨`,update:`업데이트`,create:`생성`,saveFailed:`저장 실패`,ok:`확인`,copied:`복사됨`,copy:`복사`,noData:`데이터 없음`,fetch:`가져오기`,add:`추가`,enable:`활성화`,disable:`비활성화`,configured:`구성됨`,notConfigured:`미구성`,confirm:`확인`,expand:`펼치기`,collapse:`접기`},sidebar:{chat:`채팅`,jobs:`예약 작업`,models:`모델`,profiles:`프로필`,skills:`스킬`,memory:`메모리`,logs:`로그`,usage:`사용량`,channels:`채널`,terminal:`터미널`,settings:`설정`,connected:`연결됨`,disconnected:`연결 끊김`,updateTip:`터미널에서 "hermes-web-ui update"를 실행하여 업데이트하세요`,updateVersion:`v{version}(으)로 업그레이드`,updating:`업데이트 중...`,updateSuccess:`업데이트 완료, 서버를 재시작해 주세요`,updateFailed:`업데이트 실패`,logout:`로그아웃`,nodeVersionWarning:`Node.js v{version}이(가) 감지되었습니다. 전체 기능에는 버전 23+가 필요합니다(SQLite, node-pty).`,changelog:`변경 이력`,noChangelog:`변경 이력이 없습니다`},chat:{contextRemaining:`남음`,emptyState:`Hermes Agent와 대화를 시작하세요`,inputPlaceholder:`메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄바꿈)`,attachFiles:`파일 첨부`,stop:`중지`,send:`전송`,contextUsed:`사용된 컨텍스트:`,sessions:`세션`,noSessions:`세션 없음`,newChat:`새 채팅`,deleteSession:`이 세션을 삭제하시겠습니까?`,sessionDeleted:`세션이 삭제되었습니다`,rename:`이름 변경`,pin:`고정`,unpin:`고정 해제`,pinned:`고정됨`,chatMode:`채팅`,liveMode:`라이브`,liveSessions:`라이브 세션`,recentBadge:`최근`,linkedSessions:`{count}개 연결됨`,noVisibleMessages:`사람이 볼 수 있는 메시지가 없습니다.`,monitorRoleUser:`사용자`,monitorRoleAssistant:`어시스턴트`,copySessionId:`세션 ID 복사`,renamed:`이름이 변경되었습니다`,renameFailed:`이름 변경 실패`,renameSession:`세션 이름 변경`,enterNewTitle:`새 제목을 입력하세요`,other:`기타`,runFailed:`실행 실패`,error:`오류`,tool:`도구`,arguments:`인수`,result:`결과`,truncated:`... (잘림)`},jobs:{title:`예약 작업`,createJob:`작업 생성`,editJob:`작업 편집`,noJobs:`예약된 작업이 없습니다. 새로 만들어 시작하세요.`,name:`이름`,namePlaceholder:`작업 이름`,schedule:`스케줄 (Cron 표현식)`,schedulePlaceholder:`예: 0 9 * * *`,quickPresets:`빠른 프리셋`,selectPreset:`프리셋 선택...`,presetEveryMinute:`매 분`,presetEvery5Min:`매 5분`,presetEveryHour:`매 시간`,presetEveryDay:`매일 00:00`,presetEveryDay9:`매일 09:00`,presetEveryMonday:`매주 월요일 09:00`,presetEveryMonth:`매월 1일 09:00`,prompt:`프롬프트`,promptPlaceholder:`실행할 프롬프트`,deliverTarget:`전송 대상`,origin:`출처`,local:`로컬`,repeatCount:`반복 횟수 (선택)`,repeatPlaceholder:`비워두면 무한 반복`,jobCreated:`작업이 생성되었습니다`,jobUpdated:`작업이 업데이트되었습니다`,nameRequired:`이름을 입력해 주세요`,scheduleRequired:`스케줄을 입력해 주세요`,loadFailed:`작업을 불러오지 못했습니다`,jobPaused:`작업이 일시 정지되었습니다`,jobResumed:`작업이 재개되었습니다`,jobTriggered:`작업이 실행되었습니다`,jobDeleted:`작업이 삭제되었습니다`,status:{running:`실행 중`,paused:`일시 정지`,disabled:`비활성화`,scheduled:`예약됨`},info:{schedule:`스케줄`,lastRun:`마지막 실행`,nextRun:`다음 실행`,deliver:`전송`,repeat:`반복`},action:{pause:`일시 정지`,pauseJob:`작업 일시 정지`,resume:`재개`,resumeJob:`작업 재개`,runNow:`즉시 실행`,triggerImmediately:`즉시 실행`}},skills:{title:`스킬`,searchPlaceholder:`스킬 검색...`,noMatch:`검색과 일치하는 스킬이 없습니다`,noSkills:`스킬을 찾을 수 없습니다`,backTo:`돌아가기`,attachedFiles:`첨부 파일`,loadFailed:`스킬을 불러오지 못했습니다`,fileLoadFailed:`파일을 불러오지 못했습니다`,toggleFailed:`스킬 상태를 전환하지 못했습니다`},memory:{title:`메모리`,refresh:`새로고침`,loadFailed:`메모리를 불러오지 못했습니다`,myNotes:`내 메모`,noNotes:`메모가 없습니다.`,notesPlaceholder:`메모를 작성하세요...`,userProfile:`사용자 프로필`,noProfile:`프로필이 없습니다.`,profilePlaceholder:`프로필을 작성하세요...`,soul:`소울`,noSoul:`소울 설정이 없습니다.`,soulPlaceholder:`소울 설정을 작성하세요...`},models:{title:`모델`,addProvider:`Provider 추가`,providerType:`Provider 유형`,preset:`프리셋`,custom:`사용자 지정`,selectProvider:`Provider 선택`,chooseProvider:`Provider를 선택하세요...`,name:`이름`,autoGeneratedName:`Base URL에서 자동 생성`,baseUrl:`Base URL`,baseUrlPlaceholder:`예: https://api.example.com/v1`,apiKey:`API Key`,apiKeyPlaceholder:`sk-...`,defaultModel:`기본 모델`,selectOrInput:`모델 선택 또는 직접 입력...`,selectModel:`모델 선택...`,providerAdded:`Provider가 추가되었습니다`,providerDeleted:`Provider가 삭제되었습니다`,deleteProvider:`Provider 삭제`,deleteConfirm:`"{name}"을(를) 삭제하시겠습니까?`,codexLoginTitle:`OpenAI Codex 로그인`,codexWaiting:`인증 페이지에서 아래 코드를 입력하여 로그인하세요:`,codexCopyCode:`코드가 복사되었습니다`,codexOpenLink:`인증 페이지 열기`,codexApproved:`로그인 성공`,codexExpired:`인증이 만료되었습니다. 다시 시도해주세요.`,nousLoginTitle:`Nous Portal 로그인`,nousWaiting:`인증 페이지에서 이 코드를 입력하세요:`,nousCopyCode:`코드 복사됨`,nousOpenLink:`인증 페이지 열기`,nousApproved:`로그인 성공`,nousDenied:`인증이 거부되었습니다`,nousExpired:`인증이 만료되었습니다`,noProviders:`Provider가 없습니다. 사용자 지정 Provider를 추가하여 시작하세요.`,builtIn:`내장`,customType:`사용자 지정`,provider:`Provider`,local:`로컬 ({host})`,selectProviderRequired:`Provider를 선택해 주세요`,baseUrlRequired:`Base URL을 입력해 주세요`,apiKeyRequired:`API Key를 입력해 주세요`,modelRequired:`기본 모델을 선택해 주세요`,enterBaseUrl:`먼저 Base URL을 입력해 주세요`,unexpectedFormat:`예상치 못한 응답 형식입니다`,foundModels:`{count}개의 모델을 찾았습니다`,fetchFailed:`모델을 가져오지 못했습니다`},profiles:{title:`프로필`,create:`프로필 생성`,import:`가져오기`,export:`내보내기`,rename:`이름 변경`,delete:`삭제`,switchTo:`전환`,switchConfirm:`프로필 "{name}"(으)로 전환하면 게이트웨이가 재시작됩니다. 계속하시겠습니까?`,switchSuccess:`프로필 "{name}"(으)로 전환되었습니다`,switchFailed:`프로필 전환 실패. 게이트웨이를 수동으로 재시작해야 할 수 있습니다.`,createSuccess:`프로필 "{name}"이(가) 생성되었습니다`,createFailed:`프로필 생성 실패`,renameSuccess:`프로필 이름이 변경되었습니다`,renameFailed:`프로필 이름 변경 실패`,deleteConfirm:`프로필 "{name}"을(를) 삭제하시겠습니까?`,deleteSuccess:`프로필이 삭제되었습니다`,deleteFailed:`프로필 삭제 실패`,exportSuccess:`프로필이 내보내기되었습니다`,exportFailed:`프로필 내보내기 실패`,importSuccess:`프로필이 가져오기되었습니다`,importFailed:`프로필 가져오기 실패`,importSelectFile:`아카이브 파일 선택`,importInvalidFile:`유효한 아카이브 파일을 선택해 주세요 (.tar.gz, .tgz, .gz, .zip)`,name:`프로필 이름`,namePlaceholder:`영문, 숫자, 하이픈만 사용 가능`,newName:`새 이름`,newNamePlaceholder:`새 이름을 입력하세요`,cloneFromCurrent:`현재 프로필에서 복제`,archivePath:`아카이브 경로`,archivePathPlaceholder:`아카이브 파일의 서버 경로`,importName:`프로필 이름 (선택)`,importNamePlaceholder:`비워두면 아카이브 이름을 사용합니다`,active:`활성`,model:`모델`,gateway:`게이트웨이`,alias:`별칭`,provider:`Provider`,path:`경로`,skills:`스킬`,hasEnv:`.env 있음`,hasSoulMd:`soul.md 있음`,noProfiles:`프로필이 없습니다. 새로 만들어 시작하세요.`},logs:{title:`로그`,all:`전체`,searchPlaceholder:`검색...`,refresh:`새로고침`,noEntries:`로그 항목 없음`},settings:{title:`설정`,saved:`저장됨`,saveFailed:`저장 실패`,tabs:{display:`표시`,account:`계정`,agent:`에이전트`,memory:`메모리`,session:`세션`,privacy:`개인정보`,apiServer:`API 서버`},display:{streaming:`스트리밍 응답`,streamingHint:`AI 응답을 실시간으로 표시`,compact:`컴팩트 모드`,compactHint:`메시지 간격 줄이기`,showReasoning:`추론 과정 표시`,showReasoningHint:`모델의 생각 과정 표시`,showCost:`비용 표시`,showCostHint:`응답에 토큰 사용량 표시`,inlineDiffs:`인라인 변경사항`,inlineDiffsHint:`코드 변경사항을 인라인으로 표시`,bellOnComplete:`완료 알림음`,bellOnCompleteHint:`AI 응답 완료 시 알림음 재생`,busyInputMode:`바쁨 입력 모드`,busyInputModeHint:`AI 처리 중에도 입력 허용`,theme:`테마`,themeHint:`라이트, 다크 또는 시스템 설정 따르기`,themeLight:`라이트`,themeDark:`다크`,themeSystem:`시스템`},agent:{maxTurns:`최대 턴 수`,maxTurnsHint:`대화당 최대 상호작용 라운드 수`,gatewayTimeout:`게이트웨이 시간초과`,gatewayTimeoutHint:`요청 시간초과 (초)`,restartDrainTimeout:`재시작 드레인 시간초과`,restartDrainTimeoutHint:`재시작 전 드레인 시간초과 (초)`,toolEnforcement:`도구 실행 정책`,toolEnforcementHint:`도구 호출 실행 모드 제어`,auto:`자동`,always:`항상`,never:`사용 안 함`},memory:{enabled:`메모리 활성화`,enabledHint:`AI가 대화 컨텍스트를 기억하도록 허용`,userProfile:`사용자 프로필`,userProfileHint:`AI가 사용자 선호를 기억하도록 허용`,charLimit:`메모리 문자 제한`,charLimitHint:`MEMORY.md 최대 문자 수`,userCharLimit:`사용자 프로필 문자 제한`,userCharLimitHint:`USER.md 최대 문자 수`},session:{mode:`초기화 모드`,modeHint:`세션 초기화 트리거 조건`,modeBoth:`유휴 + 예약`,modeIdle:`유휴만`,modeHourly:`예약만`,idleMinutes:`유휴 시간초과`,idleMinutesHint:`자동 초기화 대기 시간 (분)`,atHour:`예약 초기화 시간`,humanOnly:`사람 세션만 표시`,humanOnlyHint:`하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다`,liveMonitorHumanOnly:`라이브 모니터: 사람 세션만 표시`,liveMonitorHumanOnlyHint:`라이브 모니터에서 하위 에이전트 및 세션 모니터 노이즈를 기본으로 숨깁니다`,atHourHint:`매일 지정한 시간에 세션 초기화`},privacy:{redactPii:`개인정보 마스킹`,redactPiiHint:`민감 정보 자동 감지 및 숨김 (비밀번호, 키 등)`},apiServer:{enable:`활성화`,enableHint:`API 서버 활성화`,host:`호스트`,hostHint:`수신 주소`,port:`포트`,portHint:`수신 포트`,key:`키`,keyHint:`API 접근 키`,cors:`CORS 출처`,corsHint:`허용된 교차 출처`}},platform:{requireMention:`{'@'}멘션 필요`,requireMentionGroup:`그룹에서 {'@'}멘션 시에만 응답`,requireMentionChannel:`채널에서 {'@'}멘션 시에만 응답`,requireMentionRoom:`방에서 {'@'}멘션 시에만 응답`,reactions:`반응`,reactionsHint:`메시지에 이모지 반응`,freeResponseChats:`자유 응답 채팅`,freeResponseChatsHint:`{'@'}멘션 없이 응답할 채팅 ID (쉼표로 구분)`,freeResponseChannels:`자유 응답 채널`,freeResponseChannelsHint:`{'@'}멘션 없이 응답할 채널 ID (쉼표로 구분)`,freeResponseRooms:`자유 응답 방`,freeResponseRoomsHint:`{'@'}멘션 없이 응답할 방 ID (쉼표로 구분)`,mentionPatterns:`사용자 지정 멘션 패턴`,mentionPatternsHint:`추가 트리거 패턴`,autoThread:`자동 스레드`,autoThreadHint:`{'@'}멘션 후 자동으로 스레드 생성`,autoThreadHintRoom:`방에서 자동으로 스레드 생성`,dmMentionThreads:`DM 멘션 스레드`,dmMentionThreadsHint:`DM에서 멘션 시 스레드로 응답`,allowBots:`봇 메시지 허용`,allowBotsHint:`다른 봇의 메시지에 응답`,allowedChannels:`허용된 채널`,allowedChannelsHint:`채널 ID 허용 목록 (쉼표로 구분)`,ignoredChannels:`무시할 채널`,ignoredChannelsHint:`봇이 응답하지 않는 채널 ID (쉼표로 구분)`,noThreadChannels:`스레드 없는 채널`,noThreadChannelsHint:`스레드 없이 응답할 채널 ID (쉼표로 구분)`,botToken:`Bot Token`,botTokenHint:`개발자 포털에서 발급받은 Bot Token`,accessToken:`Access Token`,accessTokenHint:`Matrix Access Token`,homeserver:`Homeserver URL`,homeserverHint:`Matrix 홈서버 URL`,appId:`App ID`,appIdHint:`Feishu App ID`,appSecret:`App Secret`,appSecretHint:`Feishu App Secret`,clientId:`Client ID`,clientIdHint:`DingTalk Client ID`,clientSecret:`Client Secret`,clientSecretHint:`DingTalk Client Secret`,botId:`Bot ID`,botIdHint:`WeCom Bot ID`,wecomSecretHint:`WeCom Bot Secret`,waEnabled:`WhatsApp 활성화`,waEnabledHint:`QR 코드 페어링으로 WhatsApp 활성화`,weixinToken:`Weixin Token`,weixinTokenHint:`weixin CLI QR 로그인에서 가져오기 (hermes weixin)`,accountId:`Account ID`,accountIdHint:`Weixin Account ID`,qrLogin:`QR 로그인`,qrRelogin:`다시 로그인`,qrFetching:`QR 코드를 가져오는 중...`,qrScanHint:`WeChat으로 QR 코드를 스캔하여 로그인`,qrScanedHint:`스캔됨, 휴대폰에서 확인해 주세요...`},language:{label:`언어`,zh:`中文`,en:`English`,ko:`한국어`},terminal:{sessions:`세션`,newTab:`새 터미널`,closeSession:`이 세션을 닫으시겠습니까?`,sessionExited:`종료됨`,processExited:`프로세스가 종료되었습니다 (코드 {code})`},usage:{title:`사용량 통계`,refresh:`새로고침`,totalTokens:`총 토큰 수`,inputTokens:`입력`,outputTokens:`출력`,totalSessions:`총 세션 수`,avgPerDay:`일평균 ~{n}`,estimatedCost:`예상 비용`,cacheHitRate:`캐시 적중률`,modelBreakdown:`모델별 분포`,dailyTrend:`일별 사용량 (최근 30일)`,date:`날짜`,tokens:`토큰`,cache:`캐시`,sessions:`세션`,cost:`비용`,noData:`사용량 데이터 없음`},changelog:{new_0_4_4_1:`파일 브라우저 추가 (local/Docker/SSH/Singularity 지원)`,new_0_4_4_2:`채팅 메시지 첨부 파일 다운로드 추가`,new_0_4_4_3:`활성 세션에 라이브 배지 표시`,new_0_4_4_4:`StepFun 및 Nous Portal 프로바이더 지원 추가`,new_0_4_4_5:`특수문자 검색 시 500 에러 수정`,new_0_4_3_1:`토큰 인증과 함께 사용자 이름/비밀번호 로그인 추가`,new_0_4_3_2:`자격 증명 관리를 위한 계정 설정 추가`,new_0_4_3_3:`사이드바에 로그아웃 버튼 추가`,new_0_4_3_4:`버전 번호 클릭으로 변경 이력 팝업 추가`,new_0_4_2_1:`토큰 사용량 추적 및 동적 컨텍스트 길이 추가`,new_0_4_2_2:`세션 검색 모달 추가`,new_0_4_2_3:`Socket.IO 및 SQLite로 그룹 채팅 시스템 복원`,new_0_4_2_4:`채팅 페이지에 고정 세션 및 라이브 모니터 추가`,new_0_4_2_5:`내장 프로바이더 감지 및 모델 매칭 수정`,new_0_4_1_1:`인증 우회 및 SPA 파일 서비스 수정`}},Wt={login:{title:`Hermes Web UI`,description:`Entrez votre jeton d'acces pour continuer. Retrouvez-le dans les journaux de demarrage du serveur.`,placeholder:`Jeton d'acces`,submit:`Connexion`,tokenRequired:`Veuillez entrer votre jeton d'acces`,invalidToken:`Jeton invalide`,connectionFailed:`Impossible de se connecter au serveur`,passwordLogin:`Mot de passe`,tokenLogin:`Jeton`,usernamePlaceholder:`Nom d'utilisateur`,passwordPlaceholder:`Mot de passe`,credentialsRequired:`Veuillez entrer le nom d'utilisateur et le mot de passe`,invalidCredentials:`Nom d'utilisateur ou mot de passe incorrect`,passwordMismatch:`Les mots de passe ne correspondent pas`,passwordTooShort:`Le mot de passe doit contenir au moins 6 caracteres`,setupSuccess:`Login par mot de passe configure avec succes`,passwordChanged:`Mot de passe change avec succes`,passwordRemoved:`Login par mot de passe supprime`,setupPassword:`Configurer le login par mot de passe`,changePassword:`Changer le mot de passe`,changeUsername:`Changer le nom d'utilisateur`,removePasswordLogin:`Supprimer`,username:`Nom d'utilisateur`,currentPassword:`Mot de passe actuel`,newPassword:`Nouveau mot de passe`,confirmPassword:`Confirmer le mot de passe`,newUsername:`Nouveau nom d'utilisateur`,usernameChanged:`Nom d'utilisateur change avec succes`,usernameTooShort:`Le nom d'utilisateur doit contenir au moins 2 caracteres`,setupDescription:`Configurez un nom d'utilisateur et un mot de passe pour un login rapide. Le jeton d'acces reste disponible.`,removeConfirm:`Voulez-vous vraiment supprimer le login par mot de passe? Vous devrez utiliser le jeton d'acces.`,passwordLoginNotConfigured:`Login par mot de passe non configure`,passwordLoginConfigured:`Login par mot de passe active ({username})`},common:{loading:`Chargement...`,cancel:`Annuler`,retry:`Réessayer`,delete:`Supprimer`,edit:`Modifier`,save:`Enregistrer`,saved:`Enregistre`,update:`Mettre a jour`,create:`Creer`,saveFailed:`Echec de l'enregistrement`,ok:`OK`,copied:`Copie`,copy:`Copier`,noData:`Aucune donnee`,fetch:`Recuperer`,add:`Ajouter`,enable:`Activer`,disable:`Desactiver`,configured:`Configure`,notConfigured:`Non configure`,confirm:`Confirmer`,expand:`Developper`,collapse:`Reduire`},sidebar:{chat:`Discussion`,jobs:`Taches planifiees`,models:`Modeles`,profiles:`Profils`,skills:`Competences`,memory:`Memoire`,logs:`Journaux`,usage:`Utilisation`,channels:`Canaux`,terminal:`Terminal`,settings:`Parametres`,connected:`Connecte`,disconnected:`Deconnecte`,updateTip:`Executez "hermes-web-ui update" dans le terminal pour mettre a jour`,updateVersion:`Mettre a jour vers v{version}`,updating:`Mise a jour...`,updateSuccess:`Mise a jour terminee, veuillez redemarrer le serveur`,updateFailed:`Echec de la mise a jour`,logout:`Deconnexion`,nodeVersionWarning:`Node.js v{version} detecte. La version 23+ est requise pour toutes les fonctionnalites (SQLite, node-pty).`,changelog:`Journal des modifications`,noChangelog:`Aucun journal disponible`},chat:{contextRemaining:`restant`,emptyState:`Demarrer une conversation avec Hermes Agent`,inputPlaceholder:`Tapez un message... (Entree pour envoyer, Shift+Entree pour un saut de ligne)`,attachFiles:`Joindre des fichiers`,stop:`Arreter`,send:`Envoyer`,contextUsed:`Contexte utilise :`,sessions:`Sessions`,noSessions:`Aucune session`,newChat:`Nouvelle discussion`,deleteSession:`Supprimer cette session ?`,sessionDeleted:`Session supprimee`,rename:`Renommer`,pin:`Épingler`,unpin:`Désépingler`,pinned:`Épinglés`,chatMode:`Chat`,liveMode:`Direct`,liveSessions:`Sessions en direct`,recentBadge:`Récent`,linkedSessions:`{count} sessions liées`,noVisibleMessages:`Aucun message visible par l’humain.`,monitorRoleUser:`Utilisateur`,monitorRoleAssistant:`Assistant`,copySessionId:`Copier l'ID de session`,renamed:`Renomme`,renameFailed:`Echec du renommage`,renameSession:`Renommer la session`,enterNewTitle:`Entrez un nouveau titre`,other:`Autre`,runFailed:`Echec de l'execution`,error:`Erreur`,tool:`Outil`,arguments:`Arguments`,result:`Resultat`,truncated:`... (tronque)`},jobs:{title:`Taches planifiees`,createJob:`Creer une tache`,editJob:`Modifier la tache`,noJobs:`Aucune tache planifiee. Creez-en une pour commencer.`,name:`Nom`,namePlaceholder:`Nom de la tache`,schedule:`Planification (expression Cron)`,schedulePlaceholder:`ex. 0 9 * * *`,quickPresets:`Presets rapides`,selectPreset:`Selectionner un preset...`,presetEveryMinute:`Chaque minute`,presetEvery5Min:`Toutes les 5 minutes`,presetEveryHour:`Chaque heure`,presetEveryDay:`Tous les jours a 00:00`,presetEveryDay9:`Tous les jours a 09:00`,presetEveryMonday:`Chaque lundi a 09:00`,presetEveryMonth:`Le 1er de chaque mois a 09:00`,prompt:`Invite`,promptPlaceholder:`L'invite a executer`,deliverTarget:`Cible de livraison`,origin:`Origine`,local:`Local`,repeatCount:`Nombre de repetitions (facultatif)`,repeatPlaceholder:`Laisser vide pour infini`,jobCreated:`Tache creee`,jobUpdated:`Tache mise a jour`,nameRequired:`Le nom est requis`,scheduleRequired:`La planification est requise`,loadFailed:`Echec du chargement de la tache`,jobPaused:`Tache en pause`,jobResumed:`Tache reprise`,jobTriggered:`Tache declenchee`,jobDeleted:`Tache supprimee`,status:{running:`En cours`,paused:`En pause`,disabled:`Desactivee`,scheduled:`Planifiee`},info:{schedule:`Planification`,lastRun:`Derniere execution`,nextRun:`Prochaine execution`,deliver:`Livraison`,repeat:`Repetition`},action:{pause:`Pause`,pauseJob:`Mettre en pause`,resume:`Reprendre`,resumeJob:`Reprendre la tache`,runNow:`Executer maintenant`,triggerImmediately:`Declencher immediatement`}},skills:{title:`Competences`,searchPlaceholder:`Rechercher des competences...`,noMatch:`Aucune competence ne correspond a votre recherche`,noSkills:`Aucune competence trouvee`,backTo:`Retour a`,attachedFiles:`Fichiers joints`,loadFailed:`Echec du chargement de la competence`,fileLoadFailed:`Echec du chargement du fichier`,toggleFailed:`Echec de l'activation/desactivation de la competence`},memory:{title:`Memoire`,refresh:`Actualiser`,loadFailed:`Echec du chargement de la memoire`,myNotes:`Mes notes`,noNotes:`Aucune note pour l'instant.`,notesPlaceholder:`Ecrivez vos notes...`,userProfile:`Profil utilisateur`,noProfile:`Aucun profil pour l'instant.`,profilePlaceholder:`Ecrivez votre profil...`,soul:`Ame`,noSoul:`Aucune configuration d'ame pour l'instant.`,soulPlaceholder:`Ecrivez la configuration de l'ame...`},models:{title:`Modeles`,addProvider:`Ajouter un fournisseur`,providerType:`Type de fournisseur`,preset:`Preset`,custom:`Personnalise`,selectProvider:`Selectionner un fournisseur`,chooseProvider:`Choisir un fournisseur...`,name:`Nom`,autoGeneratedName:`Genere automatiquement a partir de l'URL de base`,baseUrl:`URL de base`,baseUrlPlaceholder:`ex. https://api.example.com/v1`,apiKey:`Cle API`,apiKeyPlaceholder:`sk-...`,defaultModel:`Modele par defaut`,selectOrInput:`Sélectionner ou saisir un modèle...`,selectModel:`Selectionner un modele...`,providerAdded:`Fournisseur ajoute`,providerDeleted:`Fournisseur supprime`,deleteProvider:`Supprimer le fournisseur`,deleteConfirm:`Etes-vous sur de vouloir supprimer "{name}" ?`,codexLoginTitle:`Connexion OpenAI Codex`,codexWaiting:`Entrez ce code sur la page d'autorisation pour vous connecter :`,codexCopyCode:`Code copié`,codexOpenLink:`Ouvrir la page d'autorisation`,codexApproved:`Connexion réussie`,codexExpired:`L'autorisation a expiré. Veuillez réessayer.`,nousLoginTitle:`Connexion Nous Portal`,nousWaiting:`Entrez ce code sur la page d'autorisation:`,nousCopyCode:`Code copié`,nousOpenLink:`Ouvrir la page d'autorisation`,nousApproved:`Connexion réussie`,nousDenied:`Autorisation refusée`,nousExpired:`Autorisation expirée`,noProviders:`Aucun fournisseur trouve. Ajoutez un fournisseur personnalise pour commencer.`,builtIn:`Integre`,customType:`Personnalise`,provider:`Fournisseur`,local:`Local ({host})`,selectProviderRequired:`Veuillez selectionner un fournisseur`,baseUrlRequired:`L'URL de base est requise`,apiKeyRequired:`La cle API est requise`,modelRequired:`Le modele par defaut est requis`,enterBaseUrl:`Veuillez d'abord entrer l'URL de base`,unexpectedFormat:`Format de reponse inattendu`,foundModels:`{count} modeles trouves`,fetchFailed:`Echec de la recuperation des modeles`},profiles:{title:`Profils`,create:`Creer un profil`,import:`Importer`,export:`Exporter`,rename:`Renommer`,delete:`Supprimer`,switchTo:`Passer a`,switchConfirm:`Le passage au profil "{name}" redemarrera la passerelle. Continuer ?`,switchSuccess:`Profil "{name}" actif`,switchFailed:`Echec du changement de profil. La passerelle peut necessiter un redemarrage manuel.`,createSuccess:`Profil "{name}" cree`,createFailed:`Echec de la creation du profil`,renameSuccess:`Profil renomme`,renameFailed:`Echec du renommage du profil`,deleteConfirm:`Etes-vous sur de vouloir supprimer le profil "{name}" ?`,deleteSuccess:`Profil supprime`,deleteFailed:`Echec de la suppression du profil`,exportSuccess:`Profil exporte`,exportFailed:`Echec de l'exportation du profil`,importSuccess:`Profil importe`,importFailed:`Echec de l'importation du profil`,importSelectFile:`Selectionner un fichier d'archive`,importInvalidFile:`Veuillez selectionner une archive valide (.tar.gz, .tgz, .gz, .zip)`,name:`Nom du profil`,namePlaceholder:`Lettres, chiffres et tirets uniquement`,newName:`Nouveau nom`,newNamePlaceholder:`Entrez un nouveau nom`,cloneFromCurrent:`Cloner depuis le profil actuel`,archivePath:`Chemin de l'archive`,archivePathPlaceholder:`Chemin serveur du fichier d'archive`,importName:`Nom du profil (facultatif)`,importNamePlaceholder:`Laisser vide pour utiliser le nom de l'archive`,active:`Actif`,model:`Modele`,gateway:`Passerelle`,alias:`Alias`,provider:`Fournisseur`,path:`Chemin`,skills:`Competences`,hasEnv:`A un .env`,hasSoulMd:`A un soul.md`,noProfiles:`Aucun profil trouve. Creez-en un pour commencer.`},logs:{title:`Journaux`,all:`Tout`,searchPlaceholder:`Rechercher...`,refresh:`Actualiser`,noEntries:`Aucune entree de journal`},settings:{title:`Parametres`,saved:`Enregistre`,saveFailed:`Echec de l'enregistrement`,tabs:{display:`Affichage`,account:`Compte`,agent:`Agent`,memory:`Memoire`,session:`Session`,privacy:`Confidentialite`,apiServer:`Serveur API`},display:{streaming:`Reponses en continu`,streamingHint:`Afficher les reponses de l'IA en temps reel`,compact:`Mode compact`,compactHint:`Reduire l'espacement des messages`,showReasoning:`Afficher le raisonnement`,showReasoningHint:`Afficher le processus de reflexion du modele`,showCost:`Afficher le cout`,showCostHint:`Afficher l'utilisation des jetons dans les reponses`,inlineDiffs:`Diffs en ligne`,inlineDiffsHint:`Afficher les changements de code en ligne`,bellOnComplete:`Son de fin`,bellOnCompleteHint:`Jouer un son lorsque l'IA a termine`,busyInputMode:`Mode saisie active`,busyInputModeHint:`Permettre la saisie pendant le traitement de l'IA`,theme:`Theme`,themeHint:`Choisir clair, sombre ou suivre les preferences du systeme`,themeLight:`Clair`,themeDark:`Sombre`,themeSystem:`Systeme`},agent:{maxTurns:`Tours maximum`,maxTurnsHint:`Nombre maximum de tours d'interaction par conversation`,gatewayTimeout:`Delai d'attente de la passerelle`,gatewayTimeoutHint:`Delai d'attente de la requete en secondes`,restartDrainTimeout:`Delai de vidange au redemarrage`,restartDrainTimeoutHint:`Delai de vidange avant redemarrage en secondes`,toolEnforcement:`Application des outils`,toolEnforcementHint:`Controler le mode d'execution des appels d'outils`,auto:`Automatique`,always:`Toujours`,never:`Jamais`},memory:{enabled:`Activer la memoire`,enabledHint:`Permettre a l'IA de memoriser le contexte de conversation`,userProfile:`Profil utilisateur`,userProfileHint:`Permettre a l'IA de memoriser les preferences utilisateur`,charLimit:`Limite de caracteres de la memoire`,charLimitHint:`Nombre maximum de caracteres pour MEMORY.md`,userCharLimit:`Limite de caracteres du profil utilisateur`,userCharLimitHint:`Nombre maximum de caracteres pour USER.md`},session:{mode:`Mode de reinitialisation`,modeHint:`Condition de declenchement de la reinitialisation de session`,modeBoth:`Inactivite + Planifie`,modeIdle:`Inactivite uniquement`,modeHourly:`Planifie uniquement`,idleMinutes:`Delai d'inactivite`,idleMinutesHint:`Temps d'attente avant reinitialisation automatique (minutes)`,atHour:`Heure de reinitialisation planifiee`,humanOnly:`Afficher uniquement les sessions humaines`,humanOnlyHint:`Masquer par défaut le bruit des sous-agents et du moniteur de session`,liveMonitorHumanOnly:`Moniteur live : n’afficher que les sessions humaines`,liveMonitorHumanOnlyHint:`Masquer par défaut le bruit des sous-agents et du moniteur de session dans le moniteur live`,atHourHint:`Reinitialiser la session a cette heure chaque jour`},privacy:{redactPii:`Masquer les DPI`,redactPiiHint:`Detecter et masquer automatiquement les informations sensibles (mots de passe, cles, etc.)`},apiServer:{enable:`Activer`,enableHint:`Activer le serveur API`,host:`Hote`,hostHint:`Adresse d'ecoute`,port:`Port`,portHint:`Port d'ecoute`,key:`Cle`,keyHint:`Cle d'acces API`,cors:`Origines CORS`,corsHint:`Sources cross-origin autorisees`}},platform:{requireMention:`Exiger une mention {'@'}`,requireMentionGroup:`Exiger une mention {'@'} dans les groupes pour repondre`,requireMentionChannel:`Exiger une mention {'@'} dans les canaux pour repondre`,requireMentionRoom:`Exiger une mention {'@'} dans les salles pour repondre`,reactions:`Reactions`,reactionsHint:`Reagir aux messages avec des emoji`,freeResponseChats:`Discussions en reponse libre`,freeResponseChatsHint:`ID de discussions repondant sans mention {'@'} (separes par des virgules)`,freeResponseChannels:`Canaux en reponse libre`,freeResponseChannelsHint:`ID de canaux repondant sans mention {'@'} (separes par des virgules)`,freeResponseRooms:`Salles en reponse libre`,freeResponseRoomsHint:`ID de salles repondant sans mention {'@'} (separes par des virgules)`,mentionPatterns:`Motifs de mention personnalises`,mentionPatternsHint:`Motifs de declenchement supplementaires`,autoThread:`Fil automatique`,autoThreadHint:`Creer automatiquement des fils de reponse apres une mention {'@'}`,autoThreadHintRoom:`Creer automatiquement des fils de reponse dans les salles`,dmMentionThreads:`Fils de mention en MP`,dmMentionThreadsHint:`Utiliser des fils de reponse pour les mentions en MP`,allowBots:`Autoriser les messages de bots`,allowBotsHint:`Repondre aux messages d'autres bots`,allowedChannels:`Canaux autorises`,allowedChannelsHint:`Liste blanche des ID de canaux (separes par des virgules)`,ignoredChannels:`Canaux ignores`,ignoredChannelsHint:`Canaux ou le bot ne repond jamais (separes par des virgules)`,noThreadChannels:`Canaux sans fil`,noThreadChannelsHint:`Canaux ou le bot repond sans fil (separes par des virgules)`,botToken:`Jeton de bot`,botTokenHint:`Jeton de bot depuis le portail developpeur`,accessToken:`Jeton d'acces`,accessTokenHint:`Jeton d'acces Matrix`,homeserver:`URL du serveur domestique`,homeserverHint:`URL du serveur domestique Matrix`,appId:`ID de l'application`,appIdHint:`ID de l'application Feishu`,appSecret:`Secret de l'application`,appSecretHint:`Secret de l'application Feishu`,clientId:`ID client`,clientIdHint:`ID client DingTalk`,clientSecret:`Secret client`,clientSecretHint:`Secret client DingTalk`,botId:`ID du bot`,botIdHint:`ID du bot WeCom`,wecomSecretHint:`Secret du bot WeCom`,waEnabled:`Activer WhatsApp`,waEnabledHint:`Activer WhatsApp via appairage par code QR`,weixinToken:`Jeton Weixin`,weixinTokenHint:`Depuis la connexion QR de la CLI weixin (hermes weixin)`,accountId:`ID de compte`,accountIdHint:`ID du compte Weixin`,qrLogin:`Connexion QR`,qrRelogin:`Reconnexion`,qrFetching:`Recuperation du code QR...`,qrScanHint:`Scannez avec WeChat pour vous connecter`,qrScanedHint:`Scanne, veuillez confirmer sur le telephone...`},language:{label:`Langue`,zh:`中文`,en:`English`,fr:`Francais`},terminal:{sessions:`Sessions`,newTab:`Nouveau terminal`,closeSession:`Fermer cette session ?`,sessionExited:`Terminee`,processExited:`Processus termine avec le code {code}`},usage:{title:`Statistiques d'utilisation`,refresh:`Actualiser`,totalTokens:`Total des jetons`,inputTokens:`Entree`,outputTokens:`Sortie`,totalSessions:`Total des sessions`,avgPerDay:`~{n}/jour en moy.`,estimatedCost:`Cout est.`,cacheHitRate:`Taux de succes du cache`,modelBreakdown:`Repartition par modele`,dailyTrend:`Utilisation quotidienne (30 derniers jours)`,date:`Date`,tokens:`Jetons`,cache:`Cache`,sessions:`Sessions`,cost:`Cout`,noData:`Aucune donnee d'utilisation`},changelog:{new_0_4_4_1:`Ajout du navigateur de fichiers avec support multi-backend (local/Docker/SSH/Singularity)`,new_0_4_4_2:`Ajout du telechargement de fichiers depuis les pieces jointes`,new_0_4_4_3:`Ajout du badge en direct sur les sessions actives`,new_0_4_4_4:`Ajout du support des fournisseurs StepFun et Nous Portal`,new_0_4_4_5:`Correction de l'erreur 500 lors de la recherche avec caracteres speciaux`,new_0_4_3_1:`Ajouter la connexion par nom d'utilisateur/mot de passe en plus du token`,new_0_4_3_2:`Ajouter les parametres de compte pour gerer les identifiants`,new_0_4_3_3:`Ajouter le bouton de deconnexion dans la barre laterale`,new_0_4_3_4:`Ajouter un popup de journal des modifications en cliquant sur le numero de version`,new_0_4_2_1:`Ajouter le suivi de l'utilisation des tokens et la longueur de contexte dynamique`,new_0_4_2_2:`Ajouter la modal de recherche de sessions`,new_0_4_2_3:`Restaurer le systeme de chat de groupe avec Socket.IO et SQLite`,new_0_4_2_4:`Ajouter les sessions epinglees et le moniteur en direct`,new_0_4_2_5:`Corriger la detection des fournisseurs integres et l'appariement des modeles`,new_0_4_1_1:`Corriger le contournement d'authentification et le service de fichiers SPA`}},Gt={login:{title:`Hermes Web UI`,description:`Introduce tu token de acceso para continuar. Encuentralo en los registros de inicio del servidor.`,placeholder:`Token de acceso`,submit:`Iniciar sesion`,tokenRequired:`Por favor, introduce tu token de acceso`,invalidToken:`Token invalido`,connectionFailed:`No se puede conectar al servidor`,passwordLogin:`Contrasena`,tokenLogin:`Token`,usernamePlaceholder:`Nombre de usuario`,passwordPlaceholder:`Contrasena`,credentialsRequired:`Por favor, introduzca nombre de usuario y contrasena`,invalidCredentials:`Nombre de usuario o contrasena incorrectos`,passwordMismatch:`Las contrasenas no coinciden`,passwordTooShort:`La contrasena debe tener al menos 6 caracteres`,setupSuccess:`Login con contrasena configurado correctamente`,passwordChanged:`Contrasena cambiada correctamente`,passwordRemoved:`Login con contrasena eliminado`,setupPassword:`Configurar login con contrasena`,changePassword:`Cambiar contrasena`,changeUsername:`Cambiar nombre de usuario`,removePasswordLogin:`Eliminar`,username:`Nombre de usuario`,currentPassword:`Contrasena actual`,newPassword:`Nueva contrasena`,confirmPassword:`Confirmar contrasena`,newUsername:`Nuevo nombre de usuario`,usernameChanged:`Nombre de usuario cambiado correctamente`,usernameTooShort:`El nombre de usuario debe tener al menos 2 caracteres`,setupDescription:`Configure un nombre de usuario y contrasena para un inicio de sesion rapido. El token de acceso seguira funcionando.`,removeConfirm:`Esta seguro de eliminar el login con contrasena? Necesitara usar el token de acceso.`,passwordLoginNotConfigured:`Login con contrasena no configurado`,passwordLoginConfigured:`Login con contrasena habilitado ({username})`},common:{loading:`Cargando...`,cancel:`Cancelar`,retry:`Reintentar`,delete:`Eliminar`,edit:`Editar`,save:`Guardar`,saved:`Guardado`,update:`Actualizar`,create:`Crear`,saveFailed:`Error al guardar`,ok:`OK`,copied:`Copiado`,copy:`Copiar`,noData:`Sin datos`,fetch:`Obtener`,add:`Anadir`,enable:`Activar`,disable:`Desactivar`,configured:`Configurado`,notConfigured:`No configurado`,confirm:`Confirmar`,expand:`Expandir`,collapse:`Contraer`},sidebar:{chat:`Chat`,jobs:`Tareas programadas`,models:`Modelos`,profiles:`Perfiles`,skills:`Habilidades`,memory:`Memoria`,logs:`Registros`,usage:`Uso`,channels:`Canales`,terminal:`Terminal`,settings:`Configuracion`,connected:`Conectado`,disconnected:`Desconectado`,updateTip:`Ejecuta "hermes-web-ui update" en la terminal para actualizar`,updateVersion:`Actualizar a v{version}`,updating:`Actualizando...`,updateSuccess:`Actualizacion completa, por favor reinicia el servidor`,updateFailed:`Error al actualizar`,logout:`Cerrar sesion`,nodeVersionWarning:`Node.js v{version} detectado. Se requiere la version 23+ para todas las funcionalidades (SQLite, node-pty).`,changelog:`Registro de cambios`,noChangelog:`No hay registro de cambios`},chat:{contextRemaining:`restante`,emptyState:`Inicia una conversacion con Hermes Agent`,inputPlaceholder:`Escribe un mensaje... (Enter para enviar, Shift+Enter para nueva linea)`,attachFiles:`Adjuntar archivos`,stop:`Detener`,send:`Enviar`,contextUsed:`Contexto utilizado:`,sessions:`Sesiones`,noSessions:`Sin sesiones`,newChat:`Nuevo chat`,deleteSession:`Eliminar esta sesion?`,sessionDeleted:`Sesion eliminada`,rename:`Renombrar`,pin:`Fijar`,unpin:`Desfijar`,pinned:`Fijados`,chatMode:`Chat`,liveMode:`En vivo`,liveSessions:`Sesiones en vivo`,recentBadge:`Reciente`,linkedSessions:`{count} vinculadas`,noVisibleMessages:`No hay mensajes visibles para humanos.`,monitorRoleUser:`Usuario`,monitorRoleAssistant:`Asistente`,copySessionId:`Copiar ID de sesión`,renamed:`Renombrada`,renameFailed:`Error al renombrar`,renameSession:`Renombrar sesion`,enterNewTitle:`Introduce un nuevo titulo`,other:`Otro`,runFailed:`Error en la ejecucion`,error:`Error`,tool:`Herramienta`,arguments:`Argumentos`,result:`Resultado`,truncated:`... (truncado)`},jobs:{title:`Tareas programadas`,createJob:`Crear tarea`,editJob:`Editar tarea`,noJobs:`No hay tareas programadas aun. Crea una para comenzar.`,name:`Nombre`,namePlaceholder:`Nombre de la tarea`,schedule:`Programacion (expresion Cron)`,schedulePlaceholder:`ej. 0 9 * * *`,quickPresets:`Presets rapidos`,selectPreset:`Seleccionar un preset...`,presetEveryMinute:`Cada minuto`,presetEvery5Min:`Cada 5 minutos`,presetEveryHour:`Cada hora`,presetEveryDay:`Todos los dias a las 00:00`,presetEveryDay9:`Todos los dias a las 09:00`,presetEveryMonday:`Cada lunes a las 09:00`,presetEveryMonth:`El dia 1 de cada mes a las 09:00`,prompt:`Prompt`,promptPlaceholder:`El prompt a ejecutar`,deliverTarget:`Destino de entrega`,origin:`Origen`,local:`Local`,repeatCount:`Repeticiones (opcional)`,repeatPlaceholder:`Dejar vacio para infinito`,jobCreated:`Tarea creada`,jobUpdated:`Tarea actualizada`,nameRequired:`El nombre es obligatorio`,scheduleRequired:`La programacion es obligatoria`,loadFailed:`Error al cargar la tarea`,jobPaused:`Tarea en pausa`,jobResumed:`Tarea reanudada`,jobTriggered:`Tarea ejecutada`,jobDeleted:`Tarea eliminada`,status:{running:`En ejecucion`,paused:`En pausa`,disabled:`Desactivada`,scheduled:`Programada`},info:{schedule:`Programacion`,lastRun:`Ultima ejecucion`,nextRun:`Proxima ejecucion`,deliver:`Entrega`,repeat:`Repeticion`},action:{pause:`Pausar`,pauseJob:`Pausar tarea`,resume:`Reanudar`,resumeJob:`Reanudar tarea`,runNow:`Ejecutar ahora`,triggerImmediately:`Ejecutar inmediatamente`}},skills:{title:`Habilidades`,searchPlaceholder:`Buscar habilidades...`,noMatch:`Ninguna habilidad coincide con tu busqueda`,noSkills:`No se encontraron habilidades`,backTo:`Volver a`,attachedFiles:`Archivos adjuntos`,loadFailed:`Error al cargar la habilidad`,fileLoadFailed:`Error al cargar el archivo`,toggleFailed:`Error al activar/desactivar la habilidad`},memory:{title:`Memoria`,refresh:`Actualizar`,loadFailed:`Error al cargar la memoria`,myNotes:`Mis notas`,noNotes:`Sin notas aun.`,notesPlaceholder:`Escribe tus notas...`,userProfile:`Perfil de usuario`,noProfile:`Sin perfil aun.`,profilePlaceholder:`Escribe tu perfil...`,soul:`Alma`,noSoul:`Sin configuracion de alma aun.`,soulPlaceholder:`Escribe la configuracion del alma...`},models:{title:`Modelos`,addProvider:`Anadir proveedor`,providerType:`Tipo de proveedor`,preset:`Preset`,custom:`Personalizado`,selectProvider:`Seleccionar proveedor`,chooseProvider:`Elige un proveedor...`,name:`Nombre`,autoGeneratedName:`Generado automaticamente desde la URL base`,baseUrl:`URL base`,baseUrlPlaceholder:`ej. https://api.example.com/v1`,apiKey:`Clave API`,apiKeyPlaceholder:`sk-...`,defaultModel:`Modelo predeterminado`,selectOrInput:`Seleccionar o ingresar un modelo...`,selectModel:`Seleccionar un modelo...`,providerAdded:`Proveedor anadido`,providerDeleted:`Proveedor eliminado`,deleteProvider:`Eliminar proveedor`,deleteConfirm:`Estas seguro de que quieres eliminar "{name}"?`,codexLoginTitle:`Inicio de sesión de OpenAI Codex`,codexWaiting:`Ingrese este código en la página de autorización para iniciar sesión:`,codexCopyCode:`Código copiado`,codexOpenLink:`Abrir página de autorización`,codexApproved:`Inicio de sesión exitoso`,codexExpired:`La autorización ha expirado. Por favor, inténtelo de nuevo.`,nousLoginTitle:`Inicio de sesión de Nous Portal`,nousWaiting:`Ingrese este código en la página de autorización:`,nousCopyCode:`Código copiado`,nousOpenLink:`Abrir página de autorización`,nousApproved:`Inicio de sesión exitoso`,nousDenied:`Autorización denegada`,nousExpired:`Autorización expirada`,noProviders:`No se encontraron proveedores. Anade un proveedor personalizado para comenzar.`,builtIn:`Integrado`,customType:`Personalizado`,provider:`Proveedor`,local:`Local ({host})`,selectProviderRequired:`Por favor, selecciona un proveedor`,baseUrlRequired:`La URL base es obligatoria`,apiKeyRequired:`La clave API es obligatoria`,modelRequired:`El modelo predeterminado es obligatorio`,enterBaseUrl:`Por favor, introduce primero la URL base`,unexpectedFormat:`Formato de respuesta inesperado`,foundModels:`{count} modelos encontrados`,fetchFailed:`Error al obtener los modelos`},profiles:{title:`Perfiles`,create:`Crear perfil`,import:`Importar`,export:`Exportar`,rename:`Renombrar`,delete:`Eliminar`,switchTo:`Cambiar a`,switchConfirm:`Cambiar al perfil "{name}" reiniciara la pasarela. Continuar?`,switchSuccess:`Se ha cambiado al perfil "{name}"`,switchFailed:`Error al cambiar de perfil. Es posible que la pasarela necesite un reinicio manual.`,createSuccess:`Perfil "{name}" creado`,createFailed:`Error al crear el perfil`,renameSuccess:`Perfil renombrado`,renameFailed:`Error al renombrar el perfil`,deleteConfirm:`Estas seguro de que quieres eliminar el perfil "{name}"?`,deleteSuccess:`Perfil eliminado`,deleteFailed:`Error al eliminar el perfil`,exportSuccess:`Perfil exportado`,exportFailed:`Error al exportar el perfil`,importSuccess:`Perfil importado`,importFailed:`Error al importar el perfil`,importSelectFile:`Seleccionar archivo de archivo`,importInvalidFile:`Por favor, selecciona un archivo valido (.tar.gz, .tgz, .gz, .zip)`,name:`Nombre del perfil`,namePlaceholder:`Solo letras, numeros y guiones`,newName:`Nuevo nombre`,newNamePlaceholder:`Introduce un nuevo nombre`,cloneFromCurrent:`Clonar desde el perfil actual`,archivePath:`Ruta del archivo`,archivePathPlaceholder:`Ruta del servidor al archivo de archivo`,importName:`Nombre del perfil (opcional)`,importNamePlaceholder:`Dejar vacio para usar el nombre del archivo`,active:`Activo`,model:`Modelo`,gateway:`Pasarela`,alias:`Alias`,provider:`Proveedor`,path:`Ruta`,skills:`Habilidades`,hasEnv:`Tiene .env`,hasSoulMd:`Tiene soul.md`,noProfiles:`No se encontraron perfiles. Crea uno para comenzar.`},logs:{title:`Registros`,all:`Todos`,searchPlaceholder:`Buscar...`,refresh:`Actualizar`,noEntries:`Sin entradas de registro`},settings:{title:`Configuracion`,saved:`Guardado`,saveFailed:`Error al guardar`,tabs:{display:`Pantalla`,account:`Cuenta`,agent:`Agente`,memory:`Memoria`,session:`Sesion`,privacy:`Privacidad`,apiServer:`Servidor API`},display:{streaming:`Respuestas en streaming`,streamingHint:`Mostrar respuestas de la IA en tiempo real`,compact:`Modo compacto`,compactHint:`Reducir el espaciado entre mensajes`,showReasoning:`Mostrar razonamiento`,showReasoningHint:`Mostrar el proceso de pensamiento del modelo`,showCost:`Mostrar costo`,showCostHint:`Mostrar uso de tokens en las respuestas`,inlineDiffs:`Diffs en linea`,inlineDiffsHint:`Mostrar cambios de codigo en linea`,bellOnComplete:`Sonido de finalizacion`,bellOnCompleteHint:`Reproducir un sonido cuando la IA termina`,busyInputMode:`Modo de entrada ocupada`,busyInputModeHint:`Permitir entrada mientras la IA procesa`,theme:`Tema`,themeHint:`Elige claro, oscuro o seguir la preferencia del sistema`,themeLight:`Claro`,themeDark:`Oscuro`,themeSystem:`Sistema`},agent:{maxTurns:`Turnos maximos`,maxTurnsHint:`Rondas maximas de interaccion por conversacion`,gatewayTimeout:`Tiempo de espera de la pasarela`,gatewayTimeoutHint:`Tiempo de espera de la peticion en segundos`,restartDrainTimeout:`Tiempo de drenado al reiniciar`,restartDrainTimeoutHint:`Tiempo de drenado antes de reiniciar en segundos`,toolEnforcement:`Aplicacion de herramientas`,toolEnforcementHint:`Controlar el modo de ejecucion de llamadas a herramientas`,auto:`Automatico`,always:`Siempre`,never:`Nunca`},memory:{enabled:`Activar memoria`,enabledHint:`Permitir que la IA recuerde el contexto de la conversacion`,userProfile:`Perfil de usuario`,userProfileHint:`Permitir que la IA recuerde las preferencias del usuario`,charLimit:`Limite de caracteres de memoria`,charLimitHint:`Maximo de caracteres para MEMORY.md`,userCharLimit:`Limite de caracteres del perfil de usuario`,userCharLimitHint:`Maximo de caracteres para USER.md`},session:{mode:`Modo de reinicio`,modeHint:`Condicion de activacion del reinicio de sesion`,modeBoth:`Inactividad + Programado`,modeIdle:`Solo inactividad`,modeHourly:`Solo programado`,idleMinutes:`Tiempo de inactividad`,idleMinutesHint:`Tiempo de espera antes del reinicio automatico (minutos)`,atHour:`Hora de reinicio programado`,humanOnly:`Mostrar solo sesiones humanas`,humanOnlyHint:`Oculta por defecto el ruido de subagentes y del monitor de sesiones`,liveMonitorHumanOnly:`Monitor en vivo: mostrar solo sesiones humanas`,liveMonitorHumanOnlyHint:`Oculta por defecto el ruido de subagentes y del monitor de sesiones en el monitor en vivo`,atHourHint:`Reiniciar sesion a esta hora todos los dias`},privacy:{redactPii:`Ocultar informacion personal`,redactPiiHint:`Detectar y ocultar automaticamente informacion sensible (contrasenas, claves, etc.)`},apiServer:{enable:`Activar`,enableHint:`Activar servidor API`,host:`Host`,hostHint:`Direccion de escucha`,port:`Puerto`,portHint:`Puerto de escucha`,key:`Clave`,keyHint:`Clave de acceso API`,cors:`Origenes CORS`,corsHint:`Fuentes cross-origin permitidas`}},platform:{requireMention:`Requerir mencion {'@'}`,requireMentionGroup:`Requerir mencion {'@'} en grupos para responder`,requireMentionChannel:`Requerir mencion {'@'} en canales para responder`,requireMentionRoom:`Requerir mencion {'@'} en salas para responder`,reactions:`Reacciones`,reactionsHint:`Reaccionar a mensajes con emoji`,freeResponseChats:`Chats de respuesta libre`,freeResponseChatsHint:`IDs de chats que responden sin mencion {'@'} (separados por comas)`,freeResponseChannels:`Canales de respuesta libre`,freeResponseChannelsHint:`IDs de canales que responden sin mencion {'@'} (separados por comas)`,freeResponseRooms:`Salas de respuesta libre`,freeResponseRoomsHint:`IDs de salas que responden sin mencion {'@'} (separados por comas)`,mentionPatterns:`Patrones de mencion personalizados`,mentionPatternsHint:`Patrones de activacion adicionales`,autoThread:`Hilo automatico`,autoThreadHint:`Crear automaticamente hilos de respuesta despues de mencion {'@'}`,autoThreadHintRoom:`Crear automaticamente hilos de respuesta en salas`,dmMentionThreads:`Hilos de mencion en MD`,dmMentionThreadsHint:`Usar hilos de respuesta para menciones en mensajes directos`,allowBots:`Permitir mensajes de bots`,allowBotsHint:`Responder a mensajes de otros bots`,allowedChannels:`Canales permitidos`,allowedChannelsHint:`Lista blanca de IDs de canales (separados por comas)`,ignoredChannels:`Canales ignorados`,ignoredChannelsHint:`Canales donde el bot nunca responde (separados por comas)`,noThreadChannels:`Canales sin hilo`,noThreadChannelsHint:`Canales donde el bot responde sin hilos (separados por comas)`,botToken:`Token del bot`,botTokenHint:`Token del bot del portal de desarrolladores`,accessToken:`Token de acceso`,accessTokenHint:`Token de acceso de Matrix`,homeserver:`URL del homeserver`,homeserverHint:`URL del homeserver de Matrix`,appId:`ID de aplicacion`,appIdHint:`ID de aplicacion de Feishu`,appSecret:`Secreto de aplicacion`,appSecretHint:`Secreto de aplicacion de Feishu`,clientId:`ID de cliente`,clientIdHint:`ID de cliente de DingTalk`,clientSecret:`Secreto de cliente`,clientSecretHint:`Secreto de cliente de DingTalk`,botId:`ID del bot`,botIdHint:`ID del bot de WeCom`,wecomSecretHint:`Secreto del bot de WeCom`,waEnabled:`Activar WhatsApp`,waEnabledHint:`Activar WhatsApp mediante emparejamiento por codigo QR`,weixinToken:`Token de Weixin`,weixinTokenHint:`Desde el inicio de sesion QR de la CLI de weixin (hermes weixin)`,accountId:`ID de cuenta`,accountIdHint:`ID de cuenta de Weixin`,qrLogin:`Inicio de sesion QR`,qrRelogin:`Volver a iniciar sesion`,qrFetching:`Obteniendo codigo QR...`,qrScanHint:`Escanea con WeChat para iniciar sesion`,qrScanedHint:`Escaneado, por favor confirma en el telefono...`},language:{label:`Idioma`,zh:`中文`,en:`English`,es:`Espanol`},terminal:{sessions:`Sesiones`,newTab:`Nueva terminal`,closeSession:`Cerrar esta sesion?`,sessionExited:`Finalizada`,processExited:`Proceso finalizado con codigo {code}`},usage:{title:`Estadisticas de uso`,refresh:`Actualizar`,totalTokens:`Total de tokens`,inputTokens:`Entrada`,outputTokens:`Salida`,totalSessions:`Total de sesiones`,avgPerDay:`~{n}/dia de promedio`,estimatedCost:`Costo est.`,cacheHitRate:`Tasa de acierto de cache`,modelBreakdown:`Desglose por modelo`,dailyTrend:`Uso diario (ultimos 30 dias)`,date:`Fecha`,tokens:`Tokens`,cache:`Cache`,sessions:`Sesiones`,cost:`Costo`,noData:`Sin datos de uso`},changelog:{new_0_4_4_1:`Agregar explorador de archivos con soporte multi-backend (local/Docker/SSH/Singularity)`,new_0_4_4_2:`Agregar descarga de archivos desde archivos adjuntos del chat`,new_0_4_4_3:`Agregar indicador en vivo en sesiones de chat activas`,new_0_4_4_4:`Agregar soporte para proveedores StepFun y Nous Portal`,new_0_4_4_5:`Corregir error 500 al buscar con caracteres especiales`,new_0_4_3_1:`Agregar inicio de sesion con usuario/contrasena junto a autenticacion por token`,new_0_4_3_2:`Agregar configuracion de cuenta para gestionar credenciales`,new_0_4_3_3:`Agregar boton de cerrar sesion en la barra lateral`,new_0_4_3_4:`Agregar popup de registro de cambios al hacer clic en el numero de version`,new_0_4_2_1:`Agregar seguimiento de uso de tokens y longitud de contexto dinamico`,new_0_4_2_2:`Agregar modal de busqueda de sesiones`,new_0_4_2_3:`Restaurar sistema de chat grupal con Socket.IO y SQLite`,new_0_4_2_4:`Agregar sesiones fijas y monitor en vivo en la pagina de chat`,new_0_4_2_5:`Corregir deteccion de proveedores integrados y coincidencia de modelos`,new_0_4_1_1:`Corregir bypass de autenticacion y servicio de archivos SPA`}},Kt={login:{title:`Hermes Web UI`,description:`Geben Sie Ihren Zugangs-Token ein, um fortzufahren. Finden Sie ihn in den Server-Startprotokollen.`,placeholder:`Zugangs-Token`,submit:`Anmelden`,tokenRequired:`Bitte geben Sie Ihren Zugangs-Token ein`,invalidToken:`Ungultiger Token`,connectionFailed:`Verbindung zum Server nicht moglich`,passwordLogin:`Passwort`,tokenLogin:`Token`,usernamePlaceholder:`Benutzername`,passwordPlaceholder:`Passwort`,credentialsRequired:`Bitte Benutzername und Passwort eingeben`,invalidCredentials:`Ungultiger Benutzername oder Passwort`,passwordMismatch:`Passworter stimmen nicht uberein`,passwordTooShort:`Passwort muss mindestens 6 Zeichen lang sein`,setupSuccess:`Passwort-Login erfolgreich konfiguriert`,passwordChanged:`Passwort erfolgreich geandert`,passwordRemoved:`Passwort-Login entfernt`,setupPassword:`Passwort-Login einrichten`,changePassword:`Passwort andern`,changeUsername:`Benutzername andern`,removePasswordLogin:`Entfernen`,username:`Benutzername`,currentPassword:`Aktuelles Passwort`,newPassword:`Neues Passwort`,confirmPassword:`Passwort bestatigen`,newUsername:`Neuer Benutzername`,usernameChanged:`Benutzername erfolgreich geandert`,usernameTooShort:`Benutzername muss mindestens 2 Zeichen lang sein`,setupDescription:`Richten Sie Benutzername und Passwort fur bequemes Login ein. Der Zugangs-Token bleibt als Backup verfugbar.`,removeConfirm:`Mochten Sie das Passwort-Login wirklich entfernen? Sie mussen dann den Zugangs-Token verwenden.`,passwordLoginNotConfigured:`Passwort-Login ist nicht konfiguriert`,passwordLoginConfigured:`Passwort-Login aktiviert ({username})`},common:{loading:`Laden...`,cancel:`Abbrechen`,retry:`Erneutern`,delete:`Loschen`,edit:`Bearbeiten`,save:`Speichern`,saved:`Gespeichert`,update:`Aktualisieren`,create:`Erstellen`,saveFailed:`Speichern fehlgeschlagen`,ok:`OK`,copied:`Kopiert`,copy:`Kopieren`,noData:`Keine Daten`,fetch:`Abrufen`,add:`Hinzufugen`,enable:`Aktivieren`,disable:`Deaktivieren`,configured:`Konfiguriert`,notConfigured:`Nicht konfiguriert`,confirm:`Bestatigen`,expand:`Aufklappen`,collapse:`Zuklappen`},sidebar:{chat:`Chat`,jobs:`Geplante Aufgaben`,models:`Modelle`,profiles:`Profile`,skills:`Fahigkeiten`,memory:`Gedachtnis`,logs:`Protokolle`,usage:`Nutzung`,channels:`Kanale`,terminal:`Terminal`,settings:`Einstellungen`,connected:`Verbunden`,disconnected:`Getrennt`,updateTip:`Fuhren Sie "hermes-web-ui update" im Terminal aus, um zu aktualisieren`,updateVersion:`Aktualisieren auf v{version}`,updating:`Aktualisierung...`,updateSuccess:`Aktualisierung abgeschlossen, bitte Server neu starten`,updateFailed:`Aktualisierung fehlgeschlagen`,logout:`Abmelden`,nodeVersionWarning:`Node.js v{version} erkannt. Version 23+ wird fur volle Funktionalitat benotigt (SQLite, node-pty).`,changelog:`Anderungsprotokoll`,noChangelog:`Kein Anderungsprotokoll verfugbar`},chat:{contextRemaining:`übrig`,emptyState:`Starten Sie eine Konversation mit Hermes Agent`,inputPlaceholder:`Nachricht eingeben... (Enter zum Senden, Shift+Enter fur neue Zeile)`,attachFiles:`Dateien anhangen`,stop:`Stopp`,send:`Senden`,contextUsed:`Kontext verwendet:`,sessions:`Sitzungen`,noSessions:`Keine Sitzungen`,newChat:`Neuer Chat`,deleteSession:`Diese Sitzung loschen?`,sessionDeleted:`Sitzung geloscht`,rename:`Umbenennen`,pin:`Anheften`,unpin:`Lösen`,pinned:`Angeheftet`,chatMode:`Chat`,liveMode:`Live`,liveSessions:`Live-Sitzungen`,recentBadge:`Kürzlich`,linkedSessions:`{count} verknüpft`,noVisibleMessages:`Keine für Menschen sichtbaren Nachrichten.`,monitorRoleUser:`Benutzer`,monitorRoleAssistant:`Assistent`,copySessionId:`Sitzungs-ID kopieren`,renamed:`Umbenannt`,renameFailed:`Umbenennung fehlgeschlagen`,renameSession:`Sitzung umbenennen`,enterNewTitle:`Neuen Titel eingeben`,other:`Sonstige`,runFailed:`Ausfuhrung fehlgeschlagen`,error:`Fehler`,tool:`Werkzeug`,arguments:`Argumente`,result:`Ergebnis`,truncated:`... (abgeschnitten)`},jobs:{title:`Geplante Aufgaben`,createJob:`Aufgabe erstellen`,editJob:`Aufgabe bearbeiten`,noJobs:`Noch keine geplanten Aufgaben. Erstellen Sie eine, um zu beginnen.`,name:`Name`,namePlaceholder:`Aufgabenname`,schedule:`Zeitplan (Cron-Ausdruck)`,schedulePlaceholder:`z. B. 0 9 * * *`,quickPresets:`Schnellvorgaben`,selectPreset:`Vorgabe auswahlen...`,presetEveryMinute:`Jede Minute`,presetEvery5Min:`Alle 5 Minuten`,presetEveryHour:`Jede Stunde`,presetEveryDay:`Jeden Tag um 00:00`,presetEveryDay9:`Jeden Tag um 09:00`,presetEveryMonday:`Jeden Montag um 09:00`,presetEveryMonth:`Am 1. jedes Monats um 09:00`,prompt:`Prompt`,promptPlaceholder:`Der auszufuhrende Prompt`,deliverTarget:`Zustellziel`,origin:`Herkunft`,local:`Lokal`,repeatCount:`Wiederholungsanzahl (optional)`,repeatPlaceholder:`Leer lassen fur unendlich`,jobCreated:`Aufgabe erstellt`,jobUpdated:`Aufgabe aktualisiert`,nameRequired:`Name ist erforderlich`,scheduleRequired:`Zeitplan ist erforderlich`,loadFailed:`Laden der Aufgabe fehlgeschlagen`,jobPaused:`Aufgabe pausiert`,jobResumed:`Aufgabe fortgesetzt`,jobTriggered:`Aufgabe ausgelost`,jobDeleted:`Aufgabe geloscht`,status:{running:`Lauft`,paused:`Pausiert`,disabled:`Deaktiviert`,scheduled:`Geplant`},info:{schedule:`Zeitplan`,lastRun:`Letzte Ausfuhrung`,nextRun:`Nachste Ausfuhrung`,deliver:`Zustellung`,repeat:`Wiederholung`},action:{pause:`Pausieren`,pauseJob:`Aufgabe pausieren`,resume:`Fortsetzen`,resumeJob:`Aufgabe fortsetzen`,runNow:`Jetzt ausfuhren`,triggerImmediately:`Sofort auslosen`}},skills:{title:`Fahigkeiten`,searchPlaceholder:`Fahigkeiten suchen...`,noMatch:`Keine Fahigkeiten entsprechen Ihrer Suche`,noSkills:`Keine Fahigkeiten gefunden`,backTo:`Zuruck zu`,attachedFiles:`Angehange Dateien`,loadFailed:`Laden der Fahigkeit fehlgeschlagen`,fileLoadFailed:`Laden der Datei fehlgeschlagen`,toggleFailed:`Aktivieren/Deaktivieren der Fahigkeit fehlgeschlagen`},memory:{title:`Gedachtnis`,refresh:`Aktualisieren`,loadFailed:`Laden des Gedachtnisses fehlgeschlagen`,myNotes:`Meine Notizen`,noNotes:`Noch keine Notizen.`,notesPlaceholder:`Notizen schreiben...`,userProfile:`Benutzerprofil`,noProfile:`Noch kein Profil.`,profilePlaceholder:`Profil schreiben...`,soul:`Seele`,noSoul:`Noch keine Seelenkonfiguration.`,soulPlaceholder:`Seelenkonfiguration schreiben...`},models:{title:`Modelle`,addProvider:`Anbieter hinzufugen`,providerType:`Anbietertyp`,preset:`Vorgabe`,custom:`Benutzerdefiniert`,selectProvider:`Anbieter auswahlen`,chooseProvider:`Anbieter wahlen...`,name:`Name`,autoGeneratedName:`Automatisch aus Basis-URL generiert`,baseUrl:`Basis-URL`,baseUrlPlaceholder:`z. B. https://api.example.com/v1`,apiKey:`API-Schlussel`,apiKeyPlaceholder:`sk-...`,defaultModel:`Standardmodell`,selectOrInput:`Modell auswählen oder eingeben...`,selectModel:`Modell auswahlen...`,providerAdded:`Anbieter hinzugefugt`,providerDeleted:`Anbieter geloscht`,deleteProvider:`Anbieter loschen`,deleteConfirm:`Mochten Sie "{name}" wirklich loschen?`,codexLoginTitle:`OpenAI Codex Anmeldung`,codexWaiting:`Geben Sie diesen Code auf der Autorisierungsseite ein, um sich anzumelden:`,codexCopyCode:`Code kopiert`,codexOpenLink:`Autorisierungsseite öffnen`,codexApproved:`Anmeldung erfolgreich`,codexExpired:`Die Autorisierung ist abgelaufen. Bitte versuchen Sie es erneut.`,nousLoginTitle:`Nous Portal Login`,nousWaiting:`Geben Sie diesen Code auf der Autorisierungsseite ein:`,nousCopyCode:`Code kopiert`,nousOpenLink:`Autorisierungsseite öffnen`,nousApproved:`Login erfolgreich`,nousDenied:`Autorisierung wurde abgelehnt`,nousExpired:`Autorisierung abgelaufen`,noProviders:`Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.`,builtIn:`Integriert`,customType:`Benutzerdefiniert`,provider:`Anbieter`,local:`Lokal ({host})`,selectProviderRequired:`Bitte wahlen Sie einen Anbieter`,baseUrlRequired:`Basis-URL ist erforderlich`,apiKeyRequired:`API-Schlussel ist erforderlich`,modelRequired:`Standardmodell ist erforderlich`,enterBaseUrl:`Bitte geben Sie zuerst die Basis-URL ein`,unexpectedFormat:`Unerwartetes Antwortformat`,foundModels:`{count} Modelle gefunden`,fetchFailed:`Abrufen der Modelle fehlgeschlagen`},profiles:{title:`Profile`,create:`Profil erstellen`,import:`Importieren`,export:`Exportieren`,rename:`Umbenennen`,delete:`Loschen`,switchTo:`Wechseln zu`,switchConfirm:`Das Wechseln zum Profil "{name}" startet das Gateway neu. Fortfahren?`,switchSuccess:`Zum Profil "{name}" gewechselt`,switchFailed:`Profilwechsel fehlgeschlagen. Moglicherweise muss das Gateway manuell neu gestartet werden.`,createSuccess:`Profil "{name}" erstellt`,createFailed:`Erstellen des Profils fehlgeschlagen`,renameSuccess:`Profil umbenannt`,renameFailed:`Umbenennung des Profils fehlgeschlagen`,deleteConfirm:`Mochten Sie das Profil "{name}" wirklich loschen?`,deleteSuccess:`Profil geloscht`,deleteFailed:`Loschen des Profils fehlgeschlagen`,exportSuccess:`Profil exportiert`,exportFailed:`Exportieren des Profils fehlgeschlagen`,importSuccess:`Profil importiert`,importFailed:`Importieren des Profils fehlgeschlagen`,importSelectFile:`Archivdatei auswahlen`,importInvalidFile:`Bitte wahlen Sie ein gultiges Archiv (.tar.gz, .tgz, .gz, .zip)`,name:`Profilname`,namePlaceholder:`Nur Buchstaben, Zahlen und Bindestriche`,newName:`Neuer Name`,newNamePlaceholder:`Neuen Namen eingeben`,cloneFromCurrent:`Aus aktuellem Profil klonen`,archivePath:`Archivpfad`,archivePathPlaceholder:`Serverpfad zur Archivdatei`,importName:`Profilname (optional)`,importNamePlaceholder:`Leer lassen, um den Archivnamen zu verwenden`,active:`Aktiv`,model:`Modell`,gateway:`Gateway`,alias:`Alias`,provider:`Anbieter`,path:`Pfad`,skills:`Fahigkeiten`,hasEnv:`Hat .env`,hasSoulMd:`Hat soul.md`,noProfiles:`Keine Profile gefunden. Erstellen Sie eines, um zu beginnen.`},logs:{title:`Protokolle`,all:`Alle`,searchPlaceholder:`Suchen...`,refresh:`Aktualisieren`,noEntries:`Keine Protokolleintrage`},settings:{title:`Einstellungen`,saved:`Gespeichert`,saveFailed:`Speichern fehlgeschlagen`,tabs:{display:`Anzeige`,account:`Konto`,agent:`Agent`,memory:`Gedachtnis`,session:`Sitzung`,privacy:`Datenschutz`,apiServer:`API-Server`},display:{streaming:`Streaming-Antworten`,streamingHint:`KI-Antworten in Echtzeit anzeigen`,compact:`Kompaktmodus`,compactHint:`Nachrichtenabstand reduzieren`,showReasoning:`Schlussfolgerung anzeigen`,showReasoningHint:`Denkprozess des Modells anzeigen`,showCost:`Kosten anzeigen`,showCostHint:`Token-Nutzung in Antworten anzeigen`,inlineDiffs:`Inline-Diffs`,inlineDiffsHint:`Codeanderungen inline anzeigen`,bellOnComplete:`Abschluss-Signalton`,bellOnCompleteHint:`Ton abspielen, wenn die KI fertig ist`,busyInputMode:`Eingabemodus bei Beschaftigung`,busyInputModeHint:`Eingabe erlauben, wahrend die KI verarbeitet`,theme:`Design`,themeHint:`Hell, Dunkel oder Systemeinstellung verwenden`,themeLight:`Hell`,themeDark:`Dunkel`,themeSystem:`System`},agent:{maxTurns:`Maximale Runden`,maxTurnsHint:`Maximale Interaktionsrunden pro Konversation`,gatewayTimeout:`Gateway-Timeout`,gatewayTimeoutHint:`Anfrage-Timeout in Sekunden`,restartDrainTimeout:`Neustart-Drain-Timeout`,restartDrainTimeoutHint:`Drain-Timeout vor Neustart in Sekunden`,toolEnforcement:`Werkzeuferzwingung`,toolEnforcementHint:`Ausfuhrungsmodus fur Werkzeugaufrufe steuern`,auto:`Automatisch`,always:`Immer`,never:`Nie`},memory:{enabled:`Gedachtnis aktivieren`,enabledHint:`KI erlauben, den Konversationskontext zu merken`,userProfile:`Benutzerprofil`,userProfileHint:`KI erlauben, Benutzereinstellungen zu merken`,charLimit:`Zeichenlimit fur Gedachtnis`,charLimitHint:`Maximale Zeichen fur MEMORY.md`,userCharLimit:`Zeichenlimit fur Benutzerprofil`,userCharLimitHint:`Maximale Zeichen fur USER.md`},session:{mode:`Zurucksetzungsmodus`,modeHint:`Ausloser fur Sitzungszurucksetzung`,modeBoth:`Inaktivitat + Geplant`,modeIdle:`Nur Inaktivitat`,modeHourly:`Nur Geplant`,idleMinutes:`Inaktivitats-Timeout`,idleMinutesHint:`Wartezeit vor automatischer Zurucksetzung (Minuten)`,atHour:`Geplante Zurucksetzungszeit`,humanOnly:`Nur menschliche Sitzungen anzeigen`,humanOnlyHint:`Unteragenten- und Sitzungsmonitor-Rauschen standardmäßig ausblenden`,liveMonitorHumanOnly:`Live-Monitor: nur menschliche Sitzungen anzeigen`,liveMonitorHumanOnlyHint:`Im Live-Monitor Unteragenten- und Sitzungsmonitor-Rauschen standardmäßig ausblenden`,atHourHint:`Sitzung taglich zu dieser Stunde zurucksetzen`},privacy:{redactPii:`Personliche Daten maskieren`,redactPiiHint:`Sensible Informationen automatisch erkennen und ausblenden (Passworter, Schlussel usw.)`},apiServer:{enable:`Aktivieren`,enableHint:`API-Server aktivieren`,host:`Host`,hostHint:`Listen-Adresse`,port:`Port`,portHint:`Listen-Port`,key:`Schlussel`,keyHint:`API-Zugangsschlussel`,cors:`CORS-Ursprunge`,corsHint:`Erlaubte Cross-Origin-Quellen`}},platform:{requireMention:`Erwahnung {'@'} erfordern`,requireMentionGroup:`Erwahnung {'@'} in Gruppen erfordern zum Antworten`,requireMentionChannel:`Erwahnung {'@'} in Kanalen erfordern zum Antworten`,requireMentionRoom:`Erwahnung {'@'} in Raumen erfordern zum Antworten`,reactions:`Reaktionen`,reactionsHint:`Auf Nachrichten mit Emoji reagieren`,freeResponseChats:`Frei antwortende Chats`,freeResponseChatsHint:`Chat-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)`,freeResponseChannels:`Frei antwortende Kanale`,freeResponseChannelsHint:`Kanal-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)`,freeResponseRooms:`Frei antwortende Raume`,freeResponseRoomsHint:`Raum-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)`,mentionPatterns:`Benutzerdefinierte Erwahnungsmuster`,mentionPatternsHint:`Zusatzliche Auslosermuster`,autoThread:`Auto-Thread`,autoThreadHint:`Automatisch Antwort-Threads nach {'@'}Erwahnung erstellen`,autoThreadHintRoom:`Automatisch Antwort-Threads in Raumen erstellen`,dmMentionThreads:`DM-Erwahnungs-Threads`,dmMentionThreadsHint:`Thread-Antworten fur Erwahnungen in DMs verwenden`,allowBots:`Bot-Nachrichten erlauben`,allowBotsHint:`Auf Nachrichten von anderen Bots antworten`,allowedChannels:`Erlaubte Kanale`,allowedChannelsHint:`Whitelist der Kanal-IDs (komma-getrennt)`,ignoredChannels:`Ignorierte Kanale`,ignoredChannelsHint:`Kanale, in denen der Bot nie antwortet (komma-getrennt)`,noThreadChannels:`Thread-lose Kanale`,noThreadChannelsHint:`Kanale, in denen der Bot ohne Threads antwortet (komma-getrennt)`,botToken:`Bot-Token`,botTokenHint:`Bot-Token vom Entwicklerportal`,accessToken:`Zugangs-Token`,accessTokenHint:`Matrix-Zugangs-Token`,homeserver:`Homeserver-URL`,homeserverHint:`Matrix-Homeserver-URL`,appId:`App-ID`,appIdHint:`Feishu App-ID`,appSecret:`App-Geheimnis`,appSecretHint:`Feishu App-Geheimnis`,clientId:`Client-ID`,clientIdHint:`DingTalk Client-ID`,clientSecret:`Client-Geheimnis`,clientSecretHint:`DingTalk Client-Geheimnis`,botId:`Bot-ID`,botIdHint:`WeCom Bot-ID`,wecomSecretHint:`WeCom Bot-Geheimnis`,waEnabled:`WhatsApp aktivieren`,waEnabledHint:`WhatsApp uber QR-Code-Kopplung aktivieren`,weixinToken:`Weixin-Token`,weixinTokenHint:`Von Weixin-CLI QR-Anmeldung (hermes weixin)`,accountId:`Konto-ID`,accountIdHint:`Weixin-Konto-ID`,qrLogin:`QR-Anmeldung`,qrRelogin:`Erneut anmelden`,qrFetching:`QR-Code wird abgerufen...`,qrScanHint:`Mit WeChat scannen zum Anmelden`,qrScanedHint:`Gescannt, bitte auf dem Gerat bestatigen...`},language:{label:`Sprache`,zh:`中文`,en:`English`,de:`Deutsch`},terminal:{sessions:`Sitzungen`,newTab:`Neues Terminal`,closeSession:`Diese Sitzung schliessen?`,sessionExited:`Beendet`,processExited:`Prozess beendet mit Code {code}`},usage:{title:`Nutzungsstatistiken`,refresh:`Aktualisieren`,totalTokens:`Gesamt-Tokens`,inputTokens:`Eingabe`,outputTokens:`Ausgabe`,totalSessions:`Gesamt-Sitzungen`,avgPerDay:`~{n}/Tag Durchschn.`,estimatedCost:`Gesch. Kosten`,cacheHitRate:`Cache-Trefferquote`,modelBreakdown:`Modellaufschluesselung`,dailyTrend:`Tagliche Nutzung (letzte 30 Tage)`,date:`Datum`,tokens:`Tokens`,cache:`Cache`,sessions:`Sitzungen`,cost:`Kosten`,noData:`Keine Nutzungsdaten`},changelog:{new_0_4_4_1:`Dateibrowser mit Multi-Backend-Unterstutzung hinzugefugt (local/Docker/SSH/Singularity)`,new_0_4_4_2:`Dateidownload aus Chat-Nachrichtenanhangen hinzugefugt`,new_0_4_4_3:`Live-Badge auf aktiven Chat-Sitzungen hinzugefugt`,new_0_4_4_4:`StepFun- und Nous-Portal-Provider-Unterstutzung hinzugefugt`,new_0_4_4_5:`Spezialzeichen-Suche verursacht 500-Fehler behoben`,new_0_4_3_1:`Benutzername/Passwort-Login neben Token-Authentifizierung hinzugefugt`,new_0_4_3_2:`Kontoeinstellungen fur Anmeldeinformationen hinzugefugt`,new_0_4_3_3:`Abmelden-Schaltflache in der Seitenleiste hinzugefugt`,new_0_4_3_4:`Anderungsprotokoll-Popup durch Klick auf Versionsnummer hinzugefugt`,new_0_4_2_1:`Token-Nutzungsverfolgung und dynamische Kontextlange hinzugefugt`,new_0_4_2_2:`Sitzungssuche-Modal hinzugefugt`,new_0_4_2_3:`Gruppenchat-System mit Socket.IO und SQLite wiederhergestellt`,new_0_4_2_4:`Angeheftete Sitzungen und Live-Monitor hinzugefugt`,new_0_4_2_5:`Eingebaute Provider-Erkennung und Modellabgleich behoben`,new_0_4_1_1:`Authentifizierungsumgehung und SPA-Bereitstellung behoben`}},qt={login:{title:`Hermes Web UI`,description:`Insira seu token de acesso para continuar. Encontre-o nos logs de inicializacao do servidor.`,placeholder:`Token de acesso`,submit:`Entrar`,tokenRequired:`Por favor, insira seu token de acesso`,invalidToken:`Token invalido`,connectionFailed:`Nao foi possivel conectar ao servidor`,passwordLogin:`Senha`,tokenLogin:`Token`,usernamePlaceholder:`Nome de usuario`,passwordPlaceholder:`Senha`,credentialsRequired:`Por favor, insira nome de usuario e senha`,invalidCredentials:`Nome de usuario ou senha incorretos`,passwordMismatch:`As senhas nao conferem`,passwordTooShort:`A senha deve ter pelo menos 6 caracteres`,setupSuccess:`Login por senha configurado com sucesso`,passwordChanged:`Senha alterada com sucesso`,passwordRemoved:`Login por senha removido`,setupPassword:`Configurar login por senha`,changePassword:`Alterar senha`,changeUsername:`Alterar nome de usuario`,removePasswordLogin:`Remover`,username:`Nome de usuario`,currentPassword:`Senha atual`,newPassword:`Nova senha`,confirmPassword:`Confirmar senha`,newUsername:`Novo nome de usuario`,usernameChanged:`Nome de usuario alterado com sucesso`,usernameTooShort:`O nome de usuario deve ter pelo menos 2 caracteres`,setupDescription:`Configure um nome de usuario e senha para login conveniente. O token de acesso continuara funcionando como backup.`,removeConfirm:`Tem certeza de que deseja remover o login por senha? Voce precisara usar o token de acesso.`,passwordLoginNotConfigured:`Login por senha nao configurado`,passwordLoginConfigured:`Login por senha habilitado ({username})`},common:{loading:`Carregando...`,cancel:`Cancelar`,retry:`Tentar novamente`,delete:`Excluir`,edit:`Editar`,save:`Salvar`,saved:`Salvo`,update:`Atualizar`,create:`Criar`,saveFailed:`Falha ao salvar`,ok:`OK`,copied:`Copiado`,copy:`Copiar`,noData:`Sem dados`,fetch:`Buscar`,add:`Adicionar`,enable:`Ativar`,disable:`Desativar`,configured:`Configurado`,notConfigured:`Nao configurado`,confirm:`Confirmar`,expand:`Expandir`,collapse:`Recolher`},sidebar:{chat:`Chat`,jobs:`Tarefas agendadas`,models:`Modelos`,profiles:`Perfis`,skills:`Habilidades`,memory:`Memoria`,logs:`Logs`,usage:`Uso`,channels:`Canais`,terminal:`Terminal`,settings:`Configuracoes`,connected:`Conectado`,disconnected:`Desconectado`,updateTip:`Execute "hermes-web-ui update" no terminal para atualizar`,updateVersion:`Atualizar para v{version}`,updating:`Atualizando...`,updateSuccess:`Atualizacao concluida, por favor reinicie o servidor`,updateFailed:`Falha na atualizacao`,logout:`Sair`,nodeVersionWarning:`Node.js v{version} detectado. A versao 23+ e necessaria para todas as funcionalidades (SQLite, node-pty).`,changelog:`Registro de alteracoes`,noChangelog:`Nenhum registro disponivel`},chat:{contextRemaining:`restante`,emptyState:`Inicie uma conversa com o Hermes Agent`,inputPlaceholder:`Digite uma mensagem... (Enter para enviar, Shift+Enter para nova linha)`,attachFiles:`Anexar arquivos`,stop:`Parar`,send:`Enviar`,contextUsed:`Contexto utilizado:`,sessions:`Sessoes`,noSessions:`Sem sessoes`,newChat:`Novo chat`,deleteSession:`Excluir esta sessao?`,sessionDeleted:`Sessao excluida`,rename:`Renomear`,pin:`Fixar`,unpin:`Desafixar`,pinned:`Fixadas`,chatMode:`Chat`,liveMode:`Ao vivo`,liveSessions:`Sessões ao vivo`,recentBadge:`Recente`,linkedSessions:`{count} vinculadas`,noVisibleMessages:`Nenhuma mensagem visível para humanos.`,monitorRoleUser:`Usuário`,monitorRoleAssistant:`Assistente`,copySessionId:`Copiar ID da sessão`,renamed:`Renomeado`,renameFailed:`Falha ao renomear`,renameSession:`Renomear sessao`,enterNewTitle:`Digite um novo titulo`,other:`Outro`,runFailed:`Falha na execucao`,error:`Erro`,tool:`Ferramenta`,arguments:`Argumentos`,result:`Resultado`,truncated:`... (truncado)`},jobs:{title:`Tarefas agendadas`,createJob:`Criar tarefa`,editJob:`Editar tarefa`,noJobs:`Nenhuma tarefa agendada ainda. Crie uma para comecar.`,name:`Nome`,namePlaceholder:`Nome da tarefa`,schedule:`Agendamento (expressao Cron)`,schedulePlaceholder:`ex. 0 9 * * *`,quickPresets:`Presets rapidos`,selectPreset:`Selecionar um preset...`,presetEveryMinute:`Cada minuto`,presetEvery5Min:`A cada 5 minutos`,presetEveryHour:`Cada hora`,presetEveryDay:`Todos os dias as 00:00`,presetEveryDay9:`Todos os dias as 09:00`,presetEveryMonday:`Toda segunda as 09:00`,presetEveryMonth:`Dia 1 de cada mes as 09:00`,prompt:`Prompt`,promptPlaceholder:`O prompt a executar`,deliverTarget:`Destino de entrega`,origin:`Origem`,local:`Local`,repeatCount:`Contagem de repeticoes (opcional)`,repeatPlaceholder:`Deixar vazio para infinito`,jobCreated:`Tarefa criada`,jobUpdated:`Tarefa atualizada`,nameRequired:`O nome e obrigatorio`,scheduleRequired:`O agendamento e obrigatorio`,loadFailed:`Falha ao carregar a tarefa`,jobPaused:`Tarefa pausada`,jobResumed:`Tarefa retomada`,jobTriggered:`Tarefa acionada`,jobDeleted:`Tarefa excluida`,status:{running:`Em execucao`,paused:`Pausada`,disabled:`Desativada`,scheduled:`Agendada`},info:{schedule:`Agendamento`,lastRun:`Ultima execucao`,nextRun:`Proxima execucao`,deliver:`Entrega`,repeat:`Repeticao`},action:{pause:`Pausar`,pauseJob:`Pausar tarefa`,resume:`Retomar`,resumeJob:`Retomar tarefa`,runNow:`Executar agora`,triggerImmediately:`Acionar imediatamente`}},skills:{title:`Habilidades`,searchPlaceholder:`Buscar habilidades...`,noMatch:`Nenhuma habilidade corresponde a sua busca`,noSkills:`Nenhuma habilidade encontrada`,backTo:`Voltar para`,attachedFiles:`Arquivos anexados`,loadFailed:`Falha ao carregar a habilidade`,fileLoadFailed:`Falha ao carregar o arquivo`,toggleFailed:`Falha ao ativar/desativar a habilidade`},memory:{title:`Memoria`,refresh:`Atualizar`,loadFailed:`Falha ao carregar a memoria`,myNotes:`Minhas notas`,noNotes:`Nenhuma nota ainda.`,notesPlaceholder:`Escreva suas notas...`,userProfile:`Perfil do usuario`,noProfile:`Nenhum perfil ainda.`,profilePlaceholder:`Escreva seu perfil...`,soul:`Alma`,noSoul:`Nenhuma configuracao de alma ainda.`,soulPlaceholder:`Escreva a configuracao da alma...`},models:{title:`Modelos`,addProvider:`Adicionar provedor`,providerType:`Tipo de provedor`,preset:`Preset`,custom:`Personalizado`,selectProvider:`Selecionar provedor`,chooseProvider:`Escolha um provedor...`,name:`Nome`,autoGeneratedName:`Gerado automaticamente pela URL base`,baseUrl:`URL base`,baseUrlPlaceholder:`ex. https://api.example.com/v1`,apiKey:`Chave API`,apiKeyPlaceholder:`sk-...`,defaultModel:`Modelo padrao`,selectOrInput:`Selecionar ou digitar um modelo...`,selectModel:`Selecionar um modelo...`,providerAdded:`Provedor adicionado`,providerDeleted:`Provedor excluido`,deleteProvider:`Excluir provedor`,deleteConfirm:`Tem certeza de que deseja excluir "{name}"?`,codexLoginTitle:`Login do OpenAI Codex`,codexWaiting:`Digite este código na página de autorização para fazer login:`,codexCopyCode:`Código copiado`,codexOpenLink:`Abrir página de autorização`,codexApproved:`Login bem-sucedido`,codexExpired:`A autorização expirou. Por favor, tente novamente.`,nousLoginTitle:`Login do Nous Portal`,nousWaiting:`Insira este código na página de autorização:`,nousCopyCode:`Código copiado`,nousOpenLink:`Abrir página de autorização`,nousApproved:`Login bem-sucedido`,nousDenied:`Autorização negada`,nousExpired:`Autorização expirada`,noProviders:`Nenhum provedor encontrado. Adicione um provedor personalizado para comecar.`,builtIn:`Integrado`,customType:`Personalizado`,provider:`Provedor`,local:`Local ({host})`,selectProviderRequired:`Por favor, selecione um provedor`,baseUrlRequired:`A URL base e obrigatoria`,apiKeyRequired:`A chave API e obrigatoria`,modelRequired:`O modelo padrao e obrigatorio`,enterBaseUrl:`Por favor, insira a URL base primeiro`,unexpectedFormat:`Formato de resposta inesperado`,foundModels:`{count} modelos encontrados`,fetchFailed:`Falha ao buscar os modelos`},profiles:{title:`Perfis`,create:`Criar perfil`,import:`Importar`,export:`Exportar`,rename:`Renomear`,delete:`Excluir`,switchTo:`Mudar para`,switchConfirm:`Mudar para o perfil "{name}" reiniciara o gateway. Continuar?`,switchSuccess:`Mudou para o perfil "{name}"`,switchFailed:`Falha ao mudar de perfil. O gateway pode precisar de reinicio manual.`,createSuccess:`Perfil "{name}" criado`,createFailed:`Falha ao criar o perfil`,renameSuccess:`Perfil renomeado`,renameFailed:`Falha ao renomear o perfil`,deleteConfirm:`Tem certeza de que deseja excluir o perfil "{name}"?`,deleteSuccess:`Perfil excluido`,deleteFailed:`Falha ao excluir o perfil`,exportSuccess:`Perfil exportado`,exportFailed:`Falha ao exportar o perfil`,importSuccess:`Perfil importado`,importFailed:`Falha ao importar o perfil`,importSelectFile:`Selecionar arquivo de arquivo`,importInvalidFile:`Por favor, selecione um arquivo valido (.tar.gz, .tgz, .gz, .zip)`,name:`Nome do perfil`,namePlaceholder:`Apenas letras, numeros e hifens`,newName:`Novo nome`,newNamePlaceholder:`Digite um novo nome`,cloneFromCurrent:`Clonar do perfil atual`,archivePath:`Caminho do arquivo`,archivePathPlaceholder:`Caminho do servidor para o arquivo`,importName:`Nome do perfil (opcional)`,importNamePlaceholder:`Deixe vazio para usar o nome do arquivo`,active:`Ativo`,model:`Modelo`,gateway:`Gateway`,alias:`Alias`,provider:`Provedor`,path:`Caminho`,skills:`Habilidades`,hasEnv:`Tem .env`,hasSoulMd:`Tem soul.md`,noProfiles:`Nenhum perfil encontrado. Crie um para comecar.`},logs:{title:`Logs`,all:`Todos`,searchPlaceholder:`Buscar...`,refresh:`Atualizar`,noEntries:`Nenhuma entrada de log`},settings:{title:`Configuracoes`,saved:`Salvo`,saveFailed:`Falha ao salvar`,tabs:{display:`Exibicao`,account:`Conta`,agent:`Agente`,memory:`Memoria`,session:`Sessao`,privacy:`Privacidade`,apiServer:`Servidor API`},display:{streaming:`Respostas em streaming`,streamingHint:`Mostrar respostas da IA em tempo real`,compact:`Modo compacto`,compactHint:`Reduzir espacamento entre mensagens`,showReasoning:`Mostrar raciocinio`,showReasoningHint:`Mostrar processo de pensamento do modelo`,showCost:`Mostrar custo`,showCostHint:`Mostrar uso de tokens nas respostas`,inlineDiffs:`Diffs em linha`,inlineDiffsHint:`Mostrar alteracoes de codigo em linha`,bellOnComplete:`Som de conclusao`,bellOnCompleteHint:`Tocar som quando a IA terminar`,busyInputMode:`Modo de entrada ocupada`,busyInputModeHint:`Permitir entrada enquanto a IA processa`,theme:`Tema`,themeHint:`Escolha claro, escuro ou seguir a preferencia do sistema`,themeLight:`Claro`,themeDark:`Escuro`,themeSystem:`Sistema`},agent:{maxTurns:`Maximo de turnos`,maxTurnsHint:`Maximo de rodadas de interacao por conversa`,gatewayTimeout:`Timeout do gateway`,gatewayTimeoutHint:`Timeout da requisicao em segundos`,restartDrainTimeout:`Timeout de drenagem ao reiniciar`,restartDrainTimeoutHint:`Timeout de drenagem antes de reiniciar em segundos`,toolEnforcement:`Obrigatoriedade de ferramentas`,toolEnforcementHint:`Controlar o modo de execucao de chamadas de ferramentas`,auto:`Automatico`,always:`Sempre`,never:`Nunca`},memory:{enabled:`Ativar memoria`,enabledHint:`Permitir que a IA lembre do contexto da conversa`,userProfile:`Perfil do usuario`,userProfileHint:`Permitir que a IA lembre das preferencias do usuario`,charLimit:`Limite de caracteres da memoria`,charLimitHint:`Maximo de caracteres para MEMORY.md`,userCharLimit:`Limite de caracteres do perfil do usuario`,userCharLimitHint:`Maximo de caracteres para USER.md`},session:{mode:`Modo de reinicializacao`,modeHint:`Condicao de acionamento para reinicializacao de sessao`,modeBoth:`Inatividade + Agendado`,modeIdle:`Somente inatividade`,modeHourly:`Somente agendado`,idleMinutes:`Timeout de inatividade`,idleMinutesHint:`Tempo de espera antes da reinicializacao automatica (minutos)`,atHour:`Horario de reinicializacao agendada`,humanOnly:`Mostrar apenas sessões humanas`,humanOnlyHint:`Oculta por padrão o ruído de subagentes e do monitor de sessões`,liveMonitorHumanOnly:`Monitor ao vivo: mostrar apenas sessões humanas`,liveMonitorHumanOnlyHint:`Oculta por padrão o ruído de subagentes e do monitor de sessões no monitor ao vivo`,atHourHint:`Reiniciar sessao neste horario diariamente`},privacy:{redactPii:`Ocultar dados pessoais`,redactPiiHint:`Detectar e ocultar automaticamente informacoes sensiveis (senhas, chaves, etc.)`},apiServer:{enable:`Ativar`,enableHint:`Ativar servidor API`,host:`Host`,hostHint:`Endereco de escuta`,port:`Porta`,portHint:`Porta de escuta`,key:`Chave`,keyHint:`Chave de acesso API`,cors:`Origens CORS`,corsHint:`Fontes cross-origin permitidas`}},platform:{requireMention:`Exigir mencao {'@'}`,requireMentionGroup:`Exigir mencao {'@'} em grupos para responder`,requireMentionChannel:`Exigir mencao {'@'} em canais para responder`,requireMentionRoom:`Exigir mencao {'@'} em salas para responder`,reactions:`Reacoes`,reactionsHint:`Reagir a mensagens com emoji`,freeResponseChats:`Chats de resposta livre`,freeResponseChatsHint:`IDs de chats que respondem sem mencao {'@'} (separados por virgula)`,freeResponseChannels:`Canais de resposta livre`,freeResponseChannelsHint:`IDs de canais que respondem sem mencao {'@'} (separados por virgula)`,freeResponseRooms:`Salas de resposta livre`,freeResponseRoomsHint:`IDs de salas que respondem sem mencao {'@'} (separados por virgula)`,mentionPatterns:`Padroes de mencao personalizados`,mentionPatternsHint:`Padroes de acionamento adicionais`,autoThread:`Thread automatica`,autoThreadHint:`Criar automaticamente threads de resposta apos mencao {'@'}`,autoThreadHintRoom:`Criar automaticamente threads de resposta em salas`,dmMentionThreads:`Threads de mencao em DM`,dmMentionThreadsHint:`Usar respostas em thread para mencoes em DMs`,allowBots:`Permitir mensagens de bots`,allowBotsHint:`Responder a mensagens de outros bots`,allowedChannels:`Canais permitidos`,allowedChannelsHint:`Lista branca de IDs de canais (separados por virgula)`,ignoredChannels:`Canais ignorados`,ignoredChannelsHint:`Canais onde o bot nunca responde (separados por virgula)`,noThreadChannels:`Canais sem thread`,noThreadChannelsHint:`Canais onde o bot responde sem threads (separados por virgula)`,botToken:`Token do bot`,botTokenHint:`Token do bot do portal do desenvolvedor`,accessToken:`Token de acesso`,accessTokenHint:`Token de acesso Matrix`,homeserver:`URL do homeserver`,homeserverHint:`URL do homeserver Matrix`,appId:`ID do aplicativo`,appIdHint:`ID do aplicativo Feishu`,appSecret:`Segredo do aplicativo`,appSecretHint:`Segredo do aplicativo Feishu`,clientId:`ID do cliente`,clientIdHint:`ID do cliente DingTalk`,clientSecret:`Segredo do cliente`,clientSecretHint:`Segredo do cliente DingTalk`,botId:`ID do bot`,botIdHint:`ID do bot WeCom`,wecomSecretHint:`Segredo do bot WeCom`,waEnabled:`Ativar WhatsApp`,waEnabledHint:`Ativar WhatsApp via pareamento por codigo QR`,weixinToken:`Token Weixin`,weixinTokenHint:`Do login QR da CLI weixin (hermes weixin)`,accountId:`ID da conta`,accountIdHint:`ID da conta Weixin`,qrLogin:`Login por QR`,qrRelogin:`Reconectar`,qrFetching:`Buscando codigo QR...`,qrScanHint:`Escaneie com WeChat para fazer login`,qrScanedHint:`Escaneado, por favor confirme no celular...`},language:{label:`Idioma`,zh:`中文`,en:`English`,pt:`Portugues`},terminal:{sessions:`Sessoes`,newTab:`Novo terminal`,closeSession:`Fechar esta sessao?`,sessionExited:`Encerrada`,processExited:`Processo encerrado com codigo {code}`},usage:{title:`Estatisticas de uso`,refresh:`Atualizar`,totalTokens:`Total de tokens`,inputTokens:`Entrada`,outputTokens:`Saida`,totalSessions:`Total de sessoes`,avgPerDay:`~{n}/dia em media`,estimatedCost:`Custo est.`,cacheHitRate:`Taxa de acerto de cache`,modelBreakdown:`Detalhamento por modelo`,dailyTrend:`Uso diario (ultimos 30 dias)`,date:`Data`,tokens:`Tokens`,cache:`Cache`,sessions:`Sessoes`,cost:`Custo`,noData:`Sem dados de uso`},changelog:{new_0_4_4_1:`Adicionar navegador de arquivos com suporte multi-backend (local/Docker/SSH/Singularity)`,new_0_4_4_2:`Adicionar download de arquivos dos anexos de chat`,new_0_4_4_3:`Adicionar indicador ao vivo nas sessoes de chat ativas`,new_0_4_4_4:`Adicionar suporte para provedores StepFun e Nous Portal`,new_0_4_4_5:`Corrigir erro 500 ao pesquisar com caracteres especiais`,new_0_4_3_1:`Adicionar login por usuario/senha junto com autenticacao por token`,new_0_4_3_2:`Adicionar configuracoes de conta para gerenciar credenciais`,new_0_4_3_3:`Adicionar botao de sair na barra lateral`,new_0_4_3_4:`Adicionar popup de registro de alteracoes ao clicar no numero da versao`,new_0_4_2_1:`Adicionar rastreamento de uso de tokens e comprimento de contexto dinamico`,new_0_4_2_2:`Adicionar modal de busca de sessoes`,new_0_4_2_3:`Restaurar sistema de chat em grupo com Socket.IO e SQLite`,new_0_4_2_4:`Adicionar sessoes fixas e monitor ao vivo na pagina de chat`,new_0_4_2_5:`Corrigir deteccao de provedores integrados e combinacao de modelos`,new_0_4_1_1:`Corrigir bypass de autenticacao e servico de arquivos SPA`}},Jt=localStorage.getItem(`hermes_locale`),Yt=navigator.language.slice(0,2),Xt=[`en`,`zh`,`ja`,`ko`,`fr`,`es`,`de`,`pt`];function Zt(e,t){return e&&Xt.includes(e)?e:Xt.includes(t)?t:`en`}var Qt=ie({legacy:!1,locale:Zt(Jt,Yt),fallbackLocale:`en`,messages:{en:Bt,zh:Vt,ja:Ht,ko:Ut,fr:Wt,es:Gt,de:Kt,pt:qt}}),q={neutralBase:`#000`,neutralInvertBase:`#fff`,neutralTextBase:`#fff`,neutralPopover:`rgb(72, 72, 78)`,neutralCard:`rgb(24, 24, 28)`,neutralModal:`rgb(44, 44, 50)`,neutralBody:`rgb(16, 16, 20)`,alpha1:`0.9`,alpha2:`0.82`,alpha3:`0.52`,alpha4:`0.38`,alpha5:`0.28`,alphaClose:`0.52`,alphaDisabled:`0.38`,alphaDisabledInput:`0.06`,alphaPending:`0.09`,alphaTablePending:`0.06`,alphaTableStriped:`0.05`,alphaPressed:`0.05`,alphaAvatar:`0.18`,alphaRail:`0.2`,alphaProgressRail:`0.12`,alphaBorder:`0.24`,alphaDivider:`0.09`,alphaInput:`0.1`,alphaAction:`0.06`,alphaTab:`0.04`,alphaScrollbar:`0.2`,alphaScrollbarHover:`0.3`,alphaCode:`0.12`,alphaTag:`0.2`,primaryHover:`#7fe7c4`,primaryDefault:`#63e2b7`,primaryActive:`#5acea7`,primarySuppl:`rgb(42, 148, 125)`,infoHover:`#8acbec`,infoDefault:`#70c0e8`,infoActive:`#66afd3`,infoSuppl:`rgb(56, 137, 197)`,errorHover:`#e98b8b`,errorDefault:`#e88080`,errorActive:`#e57272`,errorSuppl:`rgb(208, 58, 82)`,warningHover:`#f5d599`,warningDefault:`#f2c97d`,warningActive:`#e6c260`,warningSuppl:`rgb(240, 138, 0)`,successHover:`#7fe7c4`,successDefault:`#63e2b7`,successActive:`#5acea7`,successSuppl:`rgb(42, 148, 125)`},$t=he(q.neutralBase),en=he(q.neutralInvertBase),tn=`rgba(${en.slice(0,3).join(`, `)}, `;function J(e){return`${tn+String(e)})`}function nn(e){let t=Array.from(en);return t[3]=Number(e),H($t,t)}var Y=Object.assign(Object.assign({name:`common`},ye),{baseColor:q.neutralBase,primaryColor:q.primaryDefault,primaryColorHover:q.primaryHover,primaryColorPressed:q.primaryActive,primaryColorSuppl:q.primarySuppl,infoColor:q.infoDefault,infoColorHover:q.infoHover,infoColorPressed:q.infoActive,infoColorSuppl:q.infoSuppl,successColor:q.successDefault,successColorHover:q.successHover,successColorPressed:q.successActive,successColorSuppl:q.successSuppl,warningColor:q.warningDefault,warningColorHover:q.warningHover,warningColorPressed:q.warningActive,warningColorSuppl:q.warningSuppl,errorColor:q.errorDefault,errorColorHover:q.errorHover,errorColorPressed:q.errorActive,errorColorSuppl:q.errorSuppl,textColorBase:q.neutralTextBase,textColor1:J(q.alpha1),textColor2:J(q.alpha2),textColor3:J(q.alpha3),textColorDisabled:J(q.alpha4),placeholderColor:J(q.alpha4),placeholderColorDisabled:J(q.alpha5),iconColor:J(q.alpha4),iconColorDisabled:J(q.alpha5),iconColorHover:J(Number(q.alpha4)*1.25),iconColorPressed:J(Number(q.alpha4)*.8),opacity1:q.alpha1,opacity2:q.alpha2,opacity3:q.alpha3,opacity4:q.alpha4,opacity5:q.alpha5,dividerColor:J(q.alphaDivider),borderColor:J(q.alphaBorder),closeIconColorHover:J(Number(q.alphaClose)),closeIconColor:J(Number(q.alphaClose)),closeIconColorPressed:J(Number(q.alphaClose)),closeColorHover:`rgba(255, 255, 255, .12)`,closeColorPressed:`rgba(255, 255, 255, .08)`,clearColor:J(q.alpha4),clearColorHover:I(J(q.alpha4),{alpha:1.25}),clearColorPressed:I(J(q.alpha4),{alpha:.8}),scrollbarColor:J(q.alphaScrollbar),scrollbarColorHover:J(q.alphaScrollbarHover),scrollbarWidth:`5px`,scrollbarHeight:`5px`,scrollbarBorderRadius:`5px`,progressRailColor:J(q.alphaProgressRail),railColor:J(q.alphaRail),popoverColor:q.neutralPopover,tableColor:q.neutralCard,cardColor:q.neutralCard,modalColor:q.neutralModal,bodyColor:q.neutralBody,tagColor:nn(q.alphaTag),avatarColor:J(q.alphaAvatar),invertedColor:q.neutralBase,inputColor:J(q.alphaInput),codeColor:J(q.alphaCode),tabColor:J(q.alphaTab),actionColor:J(q.alphaAction),tableHeaderColor:J(q.alphaAction),hoverColor:J(q.alphaPending),tableColorHover:J(q.alphaTablePending),tableColorStriped:J(q.alphaTableStriped),pressedColor:J(q.alphaPressed),opacityDisabled:q.alphaDisabled,inputColorDisabled:J(q.alphaDisabledInput),buttonColor2:`rgba(255, 255, 255, .08)`,buttonColor2Hover:`rgba(255, 255, 255, .12)`,buttonColor2Pressed:`rgba(255, 255, 255, .08)`,boxShadow1:`0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12)`,boxShadow2:`0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10)`,boxShadow3:`0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)`}),X={name:`Scrollbar`,common:Y,self:Te},Z={name:`Empty`,common:Y,self:qe},rn={name:`InternalSelectMenu`,common:Y,peers:{Scrollbar:X,Empty:Z},self:$e},an={name:`Popover`,common:Y,peers:{Scrollbar:X},self:Se},on={name:`Tag`,common:Y,self(e){let{textColor2:t,primaryColorHover:n,primaryColorPressed:r,primaryColor:i,infoColor:a,successColor:o,warningColor:s,errorColor:c,baseColor:l,borderColor:u,tagColor:d,opacityDisabled:f,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,closeColorHover:g,closeColorPressed:_,borderRadiusSmall:v,fontSizeMini:y,fontSizeTiny:b,fontSizeSmall:x,fontSizeMedium:S,heightMini:C,heightTiny:w,heightSmall:T,heightMedium:E,buttonColor2Hover:D,buttonColor2Pressed:O,fontWeightStrong:k}=e;return Object.assign(Object.assign({},ft),{closeBorderRadius:v,heightTiny:C,heightSmall:w,heightMedium:T,heightLarge:E,borderRadius:v,opacityDisabled:f,fontSizeTiny:y,fontSizeSmall:b,fontSizeMedium:x,fontSizeLarge:S,fontWeightStrong:k,textColorCheckable:t,textColorHoverCheckable:t,textColorPressedCheckable:t,textColorChecked:l,colorCheckable:`#0000`,colorHoverCheckable:D,colorPressedCheckable:O,colorChecked:i,colorCheckedHover:n,colorCheckedPressed:r,border:`1px solid ${u}`,textColor:t,color:d,colorBordered:`#0000`,closeIconColor:p,closeIconColorHover:m,closeIconColorPressed:h,closeColorHover:g,closeColorPressed:_,borderPrimary:`1px solid ${B(i,{alpha:.3})}`,textColorPrimary:i,colorPrimary:B(i,{alpha:.16}),colorBorderedPrimary:`#0000`,closeIconColorPrimary:I(i,{lightness:.7}),closeIconColorHoverPrimary:I(i,{lightness:.7}),closeIconColorPressedPrimary:I(i,{lightness:.7}),closeColorHoverPrimary:B(i,{alpha:.16}),closeColorPressedPrimary:B(i,{alpha:.12}),borderInfo:`1px solid ${B(a,{alpha:.3})}`,textColorInfo:a,colorInfo:B(a,{alpha:.16}),colorBorderedInfo:`#0000`,closeIconColorInfo:I(a,{alpha:.7}),closeIconColorHoverInfo:I(a,{alpha:.7}),closeIconColorPressedInfo:I(a,{alpha:.7}),closeColorHoverInfo:B(a,{alpha:.16}),closeColorPressedInfo:B(a,{alpha:.12}),borderSuccess:`1px solid ${B(o,{alpha:.3})}`,textColorSuccess:o,colorSuccess:B(o,{alpha:.16}),colorBorderedSuccess:`#0000`,closeIconColorSuccess:I(o,{alpha:.7}),closeIconColorHoverSuccess:I(o,{alpha:.7}),closeIconColorPressedSuccess:I(o,{alpha:.7}),closeColorHoverSuccess:B(o,{alpha:.16}),closeColorPressedSuccess:B(o,{alpha:.12}),borderWarning:`1px solid ${B(s,{alpha:.3})}`,textColorWarning:s,colorWarning:B(s,{alpha:.16}),colorBorderedWarning:`#0000`,closeIconColorWarning:I(s,{alpha:.7}),closeIconColorHoverWarning:I(s,{alpha:.7}),closeIconColorPressedWarning:I(s,{alpha:.7}),closeColorHoverWarning:B(s,{alpha:.16}),closeColorPressedWarning:B(s,{alpha:.11}),borderError:`1px solid ${B(c,{alpha:.3})}`,textColorError:c,colorError:B(c,{alpha:.16}),colorBorderedError:`#0000`,closeIconColorError:I(c,{alpha:.7}),closeIconColorHoverError:I(c,{alpha:.7}),closeIconColorPressedError:I(c,{alpha:.7}),closeColorHoverError:B(c,{alpha:.16}),closeColorPressedError:B(c,{alpha:.12})})}},sn={name:`InternalSelection`,common:Y,peers:{Popover:an},self(e){let{borderRadius:t,textColor2:n,textColorDisabled:r,inputColor:i,inputColorDisabled:a,primaryColor:o,primaryColorHover:s,warningColor:c,warningColorHover:l,errorColor:u,errorColorHover:d,iconColor:f,iconColorDisabled:p,clearColor:m,clearColorHover:h,clearColorPressed:g,placeholderColor:_,placeholderColorDisabled:v,fontSizeTiny:y,fontSizeSmall:b,fontSizeMedium:x,fontSizeLarge:S,heightTiny:C,heightSmall:w,heightMedium:T,heightLarge:E,fontWeight:D}=e;return Object.assign(Object.assign({},Je),{fontWeight:D,fontSizeTiny:y,fontSizeSmall:b,fontSizeMedium:x,fontSizeLarge:S,heightTiny:C,heightSmall:w,heightMedium:T,heightLarge:E,borderRadius:t,textColor:n,textColorDisabled:r,placeholderColor:_,placeholderColorDisabled:v,color:i,colorDisabled:a,colorActive:B(o,{alpha:.1}),border:`1px solid #0000`,borderHover:`1px solid ${s}`,borderActive:`1px solid ${o}`,borderFocus:`1px solid ${s}`,boxShadowHover:`none`,boxShadowActive:`0 0 8px 0 ${B(o,{alpha:.4})}`,boxShadowFocus:`0 0 8px 0 ${B(o,{alpha:.4})}`,caretColor:o,arrowColor:f,arrowColorDisabled:p,loadingColor:o,borderWarning:`1px solid ${c}`,borderHoverWarning:`1px solid ${l}`,borderActiveWarning:`1px solid ${c}`,borderFocusWarning:`1px solid ${l}`,boxShadowHoverWarning:`none`,boxShadowActiveWarning:`0 0 8px 0 ${B(c,{alpha:.4})}`,boxShadowFocusWarning:`0 0 8px 0 ${B(c,{alpha:.4})}`,colorActiveWarning:B(c,{alpha:.1}),caretColorWarning:c,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${d}`,borderActiveError:`1px solid ${u}`,borderFocusError:`1px solid ${d}`,boxShadowHoverError:`none`,boxShadowActiveError:`0 0 8px 0 ${B(u,{alpha:.4})}`,boxShadowFocusError:`0 0 8px 0 ${B(u,{alpha:.4})}`,colorActiveError:B(u,{alpha:.1}),caretColorError:u,clearColor:m,clearColorHover:h,clearColorPressed:g})}},cn={iconMargin:`11px 8px 0 12px`,iconMarginRtl:`11px 12px 0 8px`,iconSize:`24px`,closeIconSize:`16px`,closeSize:`20px`,closeMargin:`13px 14px 0 0`,closeMarginRtl:`13px 0 0 14px`,padding:`13px`},ln={name:`Alert`,common:Y,self(e){let{lineHeight:t,borderRadius:n,fontWeightStrong:r,dividerColor:i,inputColor:a,textColor1:o,textColor2:s,closeColorHover:c,closeColorPressed:l,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,infoColorSuppl:p,successColorSuppl:m,warningColorSuppl:h,errorColorSuppl:g,fontSize:_}=e;return Object.assign(Object.assign({},cn),{fontSize:_,lineHeight:t,titleFontWeight:r,borderRadius:n,border:`1px solid ${i}`,color:a,titleTextColor:o,iconColor:s,contentTextColor:s,closeBorderRadius:n,closeColorHover:c,closeColorPressed:l,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderInfo:`1px solid ${B(p,{alpha:.35})}`,colorInfo:B(p,{alpha:.25}),titleTextColorInfo:o,iconColorInfo:p,contentTextColorInfo:s,closeColorHoverInfo:c,closeColorPressedInfo:l,closeIconColorInfo:u,closeIconColorHoverInfo:d,closeIconColorPressedInfo:f,borderSuccess:`1px solid ${B(m,{alpha:.35})}`,colorSuccess:B(m,{alpha:.25}),titleTextColorSuccess:o,iconColorSuccess:m,contentTextColorSuccess:s,closeColorHoverSuccess:c,closeColorPressedSuccess:l,closeIconColorSuccess:u,closeIconColorHoverSuccess:d,closeIconColorPressedSuccess:f,borderWarning:`1px solid ${B(h,{alpha:.35})}`,colorWarning:B(h,{alpha:.25}),titleTextColorWarning:o,iconColorWarning:h,contentTextColorWarning:s,closeColorHoverWarning:c,closeColorPressedWarning:l,closeIconColorWarning:u,closeIconColorHoverWarning:d,closeIconColorPressedWarning:f,borderError:`1px solid ${B(g,{alpha:.35})}`,colorError:B(g,{alpha:.25}),titleTextColorError:o,iconColorError:g,contentTextColorError:s,closeColorHoverError:c,closeColorPressedError:l,closeIconColorError:u,closeIconColorHoverError:d,closeIconColorPressedError:f})}},un={linkFontSize:`13px`,linkPadding:`0 0 0 16px`,railWidth:`4px`};function dn(e){let{borderRadius:t,railColor:n,primaryColor:r,primaryColorHover:i,primaryColorPressed:a,textColor2:o}=e;return Object.assign(Object.assign({},un),{borderRadius:t,railColor:n,railColorActive:r,linkColor:B(r,{alpha:.15}),linkTextColor:o,linkTextColorHover:i,linkTextColorPressed:a,linkTextColorActive:r})}var fn={name:`Anchor`,common:Y,self:dn};function pn(e){let{textColor2:t,textColor3:n,textColorDisabled:r,primaryColor:i,primaryColorHover:a,inputColor:o,inputColorDisabled:s,warningColor:c,warningColorHover:l,errorColor:u,errorColorHover:d,borderRadius:f,lineHeight:p,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:x,clearColor:S,clearColorHover:C,clearColorPressed:w,placeholderColor:T,placeholderColorDisabled:E,iconColor:D,iconColorDisabled:O,iconColorHover:k,iconColorPressed:A,fontWeight:j}=e;return Object.assign(Object.assign({},ut),{fontWeight:j,countTextColorDisabled:r,countTextColor:n,heightTiny:v,heightSmall:y,heightMedium:b,heightLarge:x,fontSizeTiny:m,fontSizeSmall:h,fontSizeMedium:g,fontSizeLarge:_,lineHeight:p,lineHeightTextarea:p,borderRadius:f,iconSize:`16px`,groupLabelColor:o,textColor:t,textColorDisabled:r,textDecorationColor:t,groupLabelTextColor:t,caretColor:i,placeholderColor:T,placeholderColorDisabled:E,color:o,colorDisabled:s,colorFocus:B(i,{alpha:.1}),groupLabelBorder:`1px solid #0000`,border:`1px solid #0000`,borderHover:`1px solid ${a}`,borderDisabled:`1px solid #0000`,borderFocus:`1px solid ${a}`,boxShadowFocus:`0 0 8px 0 ${B(i,{alpha:.3})}`,loadingColor:i,loadingColorWarning:c,borderWarning:`1px solid ${c}`,borderHoverWarning:`1px solid ${l}`,colorFocusWarning:B(c,{alpha:.1}),borderFocusWarning:`1px solid ${l}`,boxShadowFocusWarning:`0 0 8px 0 ${B(c,{alpha:.3})}`,caretColorWarning:c,loadingColorError:u,borderError:`1px solid ${u}`,borderHoverError:`1px solid ${d}`,colorFocusError:B(u,{alpha:.1}),borderFocusError:`1px solid ${d}`,boxShadowFocusError:`0 0 8px 0 ${B(u,{alpha:.3})}`,caretColorError:u,clearColor:S,clearColorHover:C,clearColorPressed:w,iconColor:D,iconColorDisabled:O,iconColorHover:k,iconColorPressed:A,suffixTextColor:t})}var Q=U({name:`Input`,common:Y,peers:{Scrollbar:X},self:pn});function mn(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}U({name:`AutoComplete`,common:z,peers:{InternalSelectMenu:Ze,Input:lt},self:mn});var hn={name:`AutoComplete`,common:Y,peers:{InternalSelectMenu:rn,Input:Q},self:mn};function gn(e){let{borderRadius:t,avatarColor:n,cardColor:r,fontSize:i,heightTiny:a,heightSmall:o,heightMedium:s,heightLarge:c,heightHuge:l,modalColor:u,popoverColor:d}=e;return{borderRadius:t,fontSize:i,border:`2px solid ${r}`,heightTiny:a,heightSmall:o,heightMedium:s,heightLarge:c,heightHuge:l,color:H(r,n),colorModal:H(u,n),colorPopover:H(d,n)}}var _n={name:`Avatar`,common:z,self:gn},vn={name:`Avatar`,common:Y,self:gn};function yn(){return{gap:`-12px`}}U({name:`AvatarGroup`,common:z,peers:{Avatar:_n},self:yn});var bn={name:`AvatarGroup`,common:Y,peers:{Avatar:vn},self:yn},xn={width:`44px`,height:`44px`,borderRadius:`22px`,iconSize:`26px`},Sn={name:`BackTop`,common:Y,self(e){let{popoverColor:t,textColor2:n,primaryColorHover:r,primaryColorPressed:i}=e;return Object.assign(Object.assign({},xn),{color:t,textColor:n,iconColor:n,iconColorHover:r,iconColorPressed:i,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`,boxShadowHover:`0 2px 12px 0px rgba(0, 0, 0, .18)`,boxShadowPressed:`0 2px 12px 0px rgba(0, 0, 0, .18)`})}},Cn={name:`Badge`,common:Y,self(e){let{errorColorSuppl:t,infoColorSuppl:n,successColorSuppl:r,warningColorSuppl:i,fontFamily:a}=e;return{color:t,colorInfo:n,colorSuccess:r,colorError:t,colorWarning:i,fontSize:`12px`,fontFamily:a}}},wn={name:`Breadcrumb`,common:Y,self:yt},$={name:`Button`,common:Y,self(e){let t=nt(e);return t.waveOpacity=`0.8`,t.colorOpacitySecondary=`0.16`,t.colorOpacitySecondaryHover=`0.2`,t.colorOpacitySecondaryPressed=`0.12`,t}},Tn={titleFontSize:`22px`};function En(e){let{borderRadius:t,fontSize:n,lineHeight:r,textColor2:i,textColor1:a,textColorDisabled:o,dividerColor:s,fontWeightStrong:c,primaryColor:l,baseColor:u,hoverColor:d,cardColor:f,modalColor:p,popoverColor:m}=e;return Object.assign(Object.assign({},Tn),{borderRadius:t,borderColor:H(f,s),borderColorModal:H(p,s),borderColorPopover:H(m,s),textColor:i,titleFontWeight:c,titleTextColor:a,dayTextColor:o,fontSize:n,lineHeight:r,dateColorCurrent:l,dateTextColorCurrent:u,cellColorHover:H(f,d),cellColorHoverModal:H(p,d),cellColorHoverPopover:H(m,d),cellColor:f,cellColorModal:p,cellColorPopover:m,barColor:l})}U({name:`Calendar`,common:z,peers:{Button:rt},self:En});var Dn={name:`Calendar`,common:Y,peers:{Button:$},self:En},On={name:`Card`,common:Y,self(e){let t=We(e),{cardColor:n,modalColor:r,popoverColor:i}=e;return t.colorEmbedded=n,t.colorEmbeddedModal=r,t.colorEmbeddedPopover=i,t}};function kn(){return{dotSize:`8px`,dotColor:`rgba(255, 255, 255, .3)`,dotColorActive:`rgba(255, 255, 255, 1)`,dotColorFocus:`rgba(255, 255, 255, .5)`,dotLineWidth:`16px`,dotLineWidthActive:`24px`,arrowColor:`#eee`}}var An={name:`Carousel`,common:Y,self:kn},jn={name:`Checkbox`,common:Y,self(e){let{cardColor:t}=e,n=gt(e);return n.color=`#0000`,n.checkMarkColor=t,n}};function Mn(e){let{borderRadius:t,boxShadow2:n,popoverColor:r,textColor2:i,textColor3:a,primaryColor:o,textColorDisabled:s,dividerColor:c,hoverColor:l,fontSizeMedium:u,heightMedium:d}=e;return{menuBorderRadius:t,menuColor:r,menuBoxShadow:n,menuDividerColor:c,menuHeight:`calc(var(--n-option-height) * 6.6)`,optionArrowColor:a,optionHeight:d,optionFontSize:u,optionColorHover:l,optionTextColor:i,optionTextColorActive:o,optionTextColorDisabled:s,optionCheckMarkColor:o,loadingColor:o,columnWidth:`180px`}}U({name:`Cascader`,common:z,peers:{InternalSelectMenu:Ze,InternalSelection:Ye,Scrollbar:Ee,Checkbox:_t,Empty:Ke},self:Mn});var Nn={name:`Cascader`,common:Y,peers:{InternalSelectMenu:rn,InternalSelection:sn,Scrollbar:X,Checkbox:jn,Empty:Ke},self:Mn},Pn={name:`Code`,common:Y,self(e){let{textColor2:t,fontSize:n,fontWeightStrong:r,textColor3:i}=e;return{textColor:t,fontSize:n,fontWeightStrong:r,"mono-3":`#5c6370`,"hue-1":`#56b6c2`,"hue-2":`#61aeee`,"hue-3":`#c678dd`,"hue-4":`#98c379`,"hue-5":`#e06c75`,"hue-5-2":`#be5046`,"hue-6":`#d19a66`,"hue-6-2":`#e6c07b`,lineNumberTextColor:i}}};function Fn(e){let{fontWeight:t,textColor1:n,textColor2:r,textColorDisabled:i,dividerColor:a,fontSize:o}=e;return{titleFontSize:o,titleFontWeight:t,dividerColor:a,titleTextColor:n,titleTextColorDisabled:i,fontSize:o,textColor:r,arrowColor:r,arrowColorDisabled:i,itemMargin:`16px 0 0 0`,titlePadding:`16px 0 0 0`}}var In={name:`Collapse`,common:Y,self:Fn};function Ln(e){let{cubicBezierEaseInOut:t}=e;return{bezier:t}}var Rn={name:`CollapseTransition`,common:Y,self:Ln};function zn(e){let{fontSize:t,boxShadow2:n,popoverColor:r,textColor2:i,borderRadius:a,borderColor:o,heightSmall:s,heightMedium:c,heightLarge:l,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,dividerColor:p}=e;return{panelFontSize:t,boxShadow:n,color:r,textColor:i,borderRadius:a,border:`1px solid ${o}`,heightSmall:s,heightMedium:c,heightLarge:l,fontSizeSmall:u,fontSizeMedium:d,fontSizeLarge:f,dividerColor:p}}U({name:`ColorPicker`,common:z,peers:{Input:lt,Button:rt},self:zn});var Bn={name:`ColorPicker`,common:Y,peers:{Input:Q,Button:$},self:zn},Vn=T({name:`ConfigProvider`,alias:[`App`],props:{abstract:Boolean,bordered:{type:Boolean,default:void 0},clsPrefix:String,locale:Object,dateLocale:Object,namespace:String,rtl:Array,tag:{type:String,default:`div`},hljs:Object,katex:Object,theme:Object,themeOverrides:Object,componentOptions:Object,icons:Object,breakpoints:Object,preflightStyleDisabled:Boolean,styleMountTarget:Object,inlineThemeDisabled:{type:Boolean,default:void 0},as:{type:String,validator:()=>(le(`config-provider`,"`as` is deprecated, please use `tag` instead."),!0),default:void 0}},setup(e){let t=a(ce,null),r=n(()=>{let{theme:n}=e;if(n===null)return;let r=t?.mergedThemeRef.value;return n===void 0?r:r===void 0?n:Object.assign({},r,n)}),i=n(()=>{let{themeOverrides:n}=e;if(n!==null){if(n===void 0)return t?.mergedThemeOverridesRef.value;{let e=t?.mergedThemeOverridesRef.value;return e===void 0?n:me({},e,n)}}}),o=ve(()=>{let{namespace:n}=e;return n===void 0?t?.mergedNamespaceRef.value:n}),c=ve(()=>{let{bordered:n}=e;return n===void 0?t?.mergedBorderedRef.value:n}),l=n(()=>{let{icons:n}=e;return n===void 0?t?.mergedIconsRef.value:n}),u=n(()=>{let{componentOptions:n}=e;return n===void 0?t?.mergedComponentPropsRef.value:n}),d=n(()=>{let{clsPrefix:n}=e;return n===void 0?t?t.mergedClsPrefixRef.value:`n`:n}),f=n(()=>{var n;let{rtl:r}=e;if(r===void 0)return t?.mergedRtlRef.value;let i={};for(let e of r)i[e.name]=w(e),(n=e.peers)==null||n.forEach(e=>{e.name in i||(i[e.name]=w(e))});return i}),p=n(()=>e.breakpoints||t?.mergedBreakpointsRef.value),m=e.inlineThemeDisabled||t?.inlineThemeDisabled,h=e.preflightStyleDisabled||t?.preflightStyleDisabled,g=e.styleMountTarget||t?.styleMountTarget;return s(ce,{mergedThemeHashRef:n(()=>{let{value:e}=r,{value:t}=i,n=t&&Object.keys(t).length!==0,a=e?.name;return a?n?`${a}-${ue(JSON.stringify(i.value))}`:a:n?ue(JSON.stringify(i.value)):``}),mergedBreakpointsRef:p,mergedRtlRef:f,mergedIconsRef:l,mergedComponentPropsRef:u,mergedBorderedRef:c,mergedNamespaceRef:o,mergedClsPrefixRef:d,mergedLocaleRef:n(()=>{let{locale:n}=e;if(n!==null)return n===void 0?t?.mergedLocaleRef.value:n}),mergedDateLocaleRef:n(()=>{let{dateLocale:n}=e;if(n!==null)return n===void 0?t?.mergedDateLocaleRef.value:n}),mergedHljsRef:n(()=>{let{hljs:n}=e;return n===void 0?t?.mergedHljsRef.value:n}),mergedKatexRef:n(()=>{let{katex:n}=e;return n===void 0?t?.mergedKatexRef.value:n}),mergedThemeRef:r,mergedThemeOverridesRef:i,inlineThemeDisabled:m||!1,preflightStyleDisabled:h||!1,styleMountTarget:g}),{mergedClsPrefix:d,mergedBordered:c,mergedNamespace:o,mergedTheme:r,mergedThemeOverrides:i}},render(){var e,t;return this.abstract?(t=this.$slots).default?.call(t):c(this.as||this.tag,{class:`${this.mergedClsPrefix||`n`}-config-provider`},(e=this.$slots).default?.call(e))}}),Hn={name:`Popselect`,common:Y,peers:{Popover:an,InternalSelectMenu:rn}};function Un(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}var Wn=U({name:`Popselect`,common:z,peers:{Popover:Ce,InternalSelectMenu:Ze},self:Un}),Gn={name:`Select`,common:Y,peers:{InternalSelection:sn,InternalSelectMenu:rn},self:Qe},Kn={itemPaddingSmall:`0 4px`,itemMarginSmall:`0 0 0 8px`,itemMarginSmallRtl:`0 8px 0 0`,itemPaddingMedium:`0 4px`,itemMarginMedium:`0 0 0 8px`,itemMarginMediumRtl:`0 8px 0 0`,itemPaddingLarge:`0 4px`,itemMarginLarge:`0 0 0 8px`,itemMarginLargeRtl:`0 8px 0 0`,buttonIconSizeSmall:`14px`,buttonIconSizeMedium:`16px`,buttonIconSizeLarge:`18px`,inputWidthSmall:`60px`,selectWidthSmall:`unset`,inputMarginSmall:`0 0 0 8px`,inputMarginSmallRtl:`0 8px 0 0`,selectMarginSmall:`0 0 0 8px`,prefixMarginSmall:`0 8px 0 0`,suffixMarginSmall:`0 0 0 8px`,inputWidthMedium:`60px`,selectWidthMedium:`unset`,inputMarginMedium:`0 0 0 8px`,inputMarginMediumRtl:`0 8px 0 0`,selectMarginMedium:`0 0 0 8px`,prefixMarginMedium:`0 8px 0 0`,suffixMarginMedium:`0 0 0 8px`,inputWidthLarge:`60px`,selectWidthLarge:`unset`,inputMarginLarge:`0 0 0 8px`,inputMarginLargeRtl:`0 8px 0 0`,selectMarginLarge:`0 0 0 8px`,prefixMarginLarge:`0 8px 0 0`,suffixMarginLarge:`0 0 0 8px`};function qn(e){let{textColor2:t,primaryColor:n,primaryColorHover:r,primaryColorPressed:i,inputColorDisabled:a,textColorDisabled:o,borderColor:s,borderRadius:c,fontSizeTiny:l,fontSizeSmall:u,fontSizeMedium:d,heightTiny:f,heightSmall:p,heightMedium:m}=e;return Object.assign(Object.assign({},Kn),{buttonColor:`#0000`,buttonColorHover:`#0000`,buttonColorPressed:`#0000`,buttonBorder:`1px solid ${s}`,buttonBorderHover:`1px solid ${s}`,buttonBorderPressed:`1px solid ${s}`,buttonIconColor:t,buttonIconColorHover:t,buttonIconColorPressed:t,itemTextColor:t,itemTextColorHover:r,itemTextColorPressed:i,itemTextColorActive:n,itemTextColorDisabled:o,itemColor:`#0000`,itemColorHover:`#0000`,itemColorPressed:`#0000`,itemColorActive:`#0000`,itemColorActiveHover:`#0000`,itemColorDisabled:a,itemBorder:`1px solid #0000`,itemBorderHover:`1px solid #0000`,itemBorderPressed:`1px solid #0000`,itemBorderActive:`1px solid ${n}`,itemBorderDisabled:`1px solid ${s}`,itemBorderRadius:c,itemSizeSmall:f,itemSizeMedium:p,itemSizeLarge:m,itemFontSizeSmall:l,itemFontSizeMedium:u,itemFontSizeLarge:d,jumperFontSizeSmall:l,jumperFontSizeMedium:u,jumperFontSizeLarge:d,jumperTextColor:t,jumperTextColorDisabled:o})}var Jn=U({name:`Pagination`,common:z,peers:{Select:Xe,Input:lt,Popselect:Wn},self:qn}),Yn={name:`Pagination`,common:Y,peers:{Select:Gn,Input:Q,Popselect:Hn},self(e){let{primaryColor:t,opacity3:n}=e,r=B(t,{alpha:Number(n)}),i=qn(e);return i.itemBorderActive=`1px solid ${r}`,i.itemBorderDisabled=`1px solid #0000`,i}},Xn={name:`Dropdown`,common:Y,peers:{Popover:an},self(e){let{primaryColorSuppl:t,primaryColor:n,popoverColor:r}=e,i=xt(e);return i.colorInverted=r,i.optionColorActive=B(n,{alpha:.15}),i.optionColorActiveInverted=t,i.optionColorHoverInverted=t,i}},Zn={name:`Tooltip`,common:Y,peers:{Popover:an},self(e){let{borderRadius:t,boxShadow2:n,popoverColor:r,textColor2:i}=e;return Object.assign(Object.assign({},wt),{borderRadius:t,boxShadow:n,color:r,textColor:i})}},Qn={name:`Ellipsis`,common:Y,peers:{Tooltip:Zn}},$n=U({name:`Ellipsis`,common:z,peers:{Tooltip:Tt}}),er={radioSizeSmall:`14px`,radioSizeMedium:`16px`,radioSizeLarge:`18px`,labelPadding:`0 8px`,labelFontWeight:`400`},tr={name:`Radio`,common:Y,self(e){let{borderColor:t,primaryColor:n,baseColor:r,textColorDisabled:i,inputColorDisabled:a,textColor2:o,opacityDisabled:s,borderRadius:c,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,heightSmall:f,heightMedium:p,heightLarge:m,lineHeight:h}=e;return Object.assign(Object.assign({},er),{labelLineHeight:h,buttonHeightSmall:f,buttonHeightMedium:p,buttonHeightLarge:m,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${n}`,boxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${B(n,{alpha:.3})}`,boxShadowHover:`inset 0 0 0 1px ${n}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:`#0000`,colorDisabled:a,colorActive:`#0000`,textColor:o,textColorDisabled:i,dotColorActive:n,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:n,buttonBorderColorHover:n,buttonColor:`#0000`,buttonColorActive:n,buttonTextColor:o,buttonTextColorActive:r,buttonTextColorHover:n,opacityDisabled:s,buttonBoxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${B(n,{alpha:.3})}`,buttonBoxShadowHover:`inset 0 0 0 1px ${n}`,buttonBoxShadow:`inset 0 0 0 1px #0000`,buttonBorderRadius:c})}};function nr(e){let{borderColor:t,primaryColor:n,baseColor:r,textColorDisabled:i,inputColorDisabled:a,textColor2:o,opacityDisabled:s,borderRadius:c,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,heightSmall:f,heightMedium:p,heightLarge:m,lineHeight:h}=e;return Object.assign(Object.assign({},er),{labelLineHeight:h,buttonHeightSmall:f,buttonHeightMedium:p,buttonHeightLarge:m,fontSizeSmall:l,fontSizeMedium:u,fontSizeLarge:d,boxShadow:`inset 0 0 0 1px ${t}`,boxShadowActive:`inset 0 0 0 1px ${n}`,boxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${B(n,{alpha:.2})}`,boxShadowHover:`inset 0 0 0 1px ${n}`,boxShadowDisabled:`inset 0 0 0 1px ${t}`,color:r,colorDisabled:a,colorActive:`#0000`,textColor:o,textColorDisabled:i,dotColorActive:n,dotColorDisabled:t,buttonBorderColor:t,buttonBorderColorActive:n,buttonBorderColorHover:t,buttonColor:r,buttonColorActive:r,buttonTextColor:o,buttonTextColorActive:n,buttonTextColorHover:n,opacityDisabled:s,buttonBoxShadowFocus:`inset 0 0 0 1px ${n}, 0 0 0 2px ${B(n,{alpha:.3})}`,buttonBoxShadowHover:`inset 0 0 0 1px #0000`,buttonBoxShadow:`inset 0 0 0 1px #0000`,buttonBorderRadius:c})}var rr={name:`Radio`,common:z,self:nr},ir={thPaddingSmall:`8px`,thPaddingMedium:`12px`,thPaddingLarge:`12px`,tdPaddingSmall:`8px`,tdPaddingMedium:`12px`,tdPaddingLarge:`12px`,sorterSize:`15px`,resizableContainerSize:`8px`,resizableSize:`2px`,filterSize:`15px`,paginationMargin:`12px 0 0 0`,emptyPadding:`48px 0`,actionPadding:`8px 12px`,actionButtonMargin:`0 8px 0 0`};function ar(e){let{cardColor:t,modalColor:n,popoverColor:r,textColor2:i,textColor1:a,tableHeaderColor:o,tableColorHover:s,iconColor:c,primaryColor:l,fontWeightStrong:u,borderRadius:d,lineHeight:f,fontSizeSmall:p,fontSizeMedium:m,fontSizeLarge:h,dividerColor:g,heightSmall:_,opacityDisabled:v,tableColorStriped:y}=e;return Object.assign(Object.assign({},ir),{actionDividerColor:g,lineHeight:f,borderRadius:d,fontSizeSmall:p,fontSizeMedium:m,fontSizeLarge:h,borderColor:H(t,g),tdColorHover:H(t,s),tdColorSorting:H(t,s),tdColorStriped:H(t,y),thColor:H(t,o),thColorHover:H(H(t,o),s),thColorSorting:H(H(t,o),s),tdColor:t,tdTextColor:i,thTextColor:a,thFontWeight:u,thButtonColorHover:s,thIconColor:c,thIconColorActive:l,borderColorModal:H(n,g),tdColorHoverModal:H(n,s),tdColorSortingModal:H(n,s),tdColorStripedModal:H(n,y),thColorModal:H(n,o),thColorHoverModal:H(H(n,o),s),thColorSortingModal:H(H(n,o),s),tdColorModal:n,borderColorPopover:H(r,g),tdColorHoverPopover:H(r,s),tdColorSortingPopover:H(r,s),tdColorStripedPopover:H(r,y),thColorPopover:H(r,o),thColorHoverPopover:H(H(r,o),s),thColorSortingPopover:H(H(r,o),s),tdColorPopover:r,boxShadowBefore:`inset -12px 0 8px -12px rgba(0, 0, 0, .18)`,boxShadowAfter:`inset 12px 0 8px -12px rgba(0, 0, 0, .18)`,loadingColor:l,loadingSize:_,opacityLoading:v})}U({name:`DataTable`,common:z,peers:{Button:rt,Checkbox:_t,Radio:rr,Pagination:Jn,Scrollbar:Ee,Empty:Ke,Popover:Ce,Ellipsis:$n,Dropdown:Ct},self:ar});var or={name:`DataTable`,common:Y,peers:{Button:$,Checkbox:jn,Radio:tr,Pagination:Yn,Scrollbar:X,Empty:Z,Popover:an,Ellipsis:Qn,Dropdown:Xn},self(e){let t=ar(e);return t.boxShadowAfter=`inset 12px 0 8px -12px rgba(0, 0, 0, .36)`,t.boxShadowBefore=`inset -12px 0 8px -12px rgba(0, 0, 0, .36)`,t}},sr={name:`Icon`,common:Y,self:St},cr={itemFontSize:`12px`,itemHeight:`36px`,itemWidth:`52px`,panelActionPadding:`8px 0`};function lr(e){let{popoverColor:t,textColor2:n,primaryColor:r,hoverColor:i,dividerColor:a,opacityDisabled:o,boxShadow2:s,borderRadius:c,iconColor:l,iconColorDisabled:u}=e;return Object.assign(Object.assign({},cr),{panelColor:t,panelBoxShadow:s,panelDividerColor:a,itemTextColor:n,itemTextColorActive:r,itemColorHover:i,itemOpacityDisabled:o,itemBorderRadius:c,borderRadius:c,iconColor:l,iconColorDisabled:u})}var ur=U({name:`TimePicker`,common:z,peers:{Scrollbar:Ee,Button:rt,Input:lt},self:lr}),dr={name:`TimePicker`,common:Y,peers:{Scrollbar:X,Button:$,Input:Q},self:lr},fr={itemSize:`24px`,itemCellWidth:`38px`,itemCellHeight:`32px`,scrollItemWidth:`80px`,scrollItemHeight:`40px`,panelExtraFooterPadding:`8px 12px`,panelActionPadding:`8px 12px`,calendarTitlePadding:`0`,calendarTitleHeight:`28px`,arrowSize:`14px`,panelHeaderPadding:`8px 12px`,calendarDaysHeight:`32px`,calendarTitleGridTempateColumns:`28px 28px 1fr 28px 28px`,calendarLeftPaddingDate:`6px 12px 4px 12px`,calendarLeftPaddingDatetime:`4px 12px`,calendarLeftPaddingDaterange:`6px 12px 4px 12px`,calendarLeftPaddingDatetimerange:`4px 12px`,calendarLeftPaddingMonth:`0`,calendarLeftPaddingYear:`0`,calendarLeftPaddingQuarter:`0`,calendarLeftPaddingMonthrange:`0`,calendarLeftPaddingQuarterrange:`0`,calendarLeftPaddingYearrange:`0`,calendarLeftPaddingWeek:`6px 12px 4px 12px`,calendarRightPaddingDate:`6px 12px 4px 12px`,calendarRightPaddingDatetime:`4px 12px`,calendarRightPaddingDaterange:`6px 12px 4px 12px`,calendarRightPaddingDatetimerange:`4px 12px`,calendarRightPaddingMonth:`0`,calendarRightPaddingYear:`0`,calendarRightPaddingQuarter:`0`,calendarRightPaddingMonthrange:`0`,calendarRightPaddingQuarterrange:`0`,calendarRightPaddingYearrange:`0`,calendarRightPaddingWeek:`0`};function pr(e){let{hoverColor:t,fontSize:n,textColor2:r,textColorDisabled:i,popoverColor:a,primaryColor:o,borderRadiusSmall:s,iconColor:c,iconColorDisabled:l,textColor1:u,dividerColor:d,boxShadow2:f,borderRadius:p,fontWeightStrong:m}=e;return Object.assign(Object.assign({},fr),{itemFontSize:n,calendarDaysFontSize:n,calendarTitleFontSize:n,itemTextColor:r,itemTextColorDisabled:i,itemTextColorActive:a,itemTextColorCurrent:o,itemColorIncluded:B(o,{alpha:.1}),itemColorHover:t,itemColorDisabled:t,itemColorActive:o,itemBorderRadius:s,panelColor:a,panelTextColor:r,arrowColor:c,calendarTitleTextColor:u,calendarTitleColorHover:t,calendarDaysTextColor:r,panelHeaderDividerColor:d,calendarDaysDividerColor:d,calendarDividerColor:d,panelActionDividerColor:d,panelBoxShadow:f,panelBorderRadius:p,calendarTitleFontWeight:m,scrollItemBorderRadius:p,iconColor:c,iconColorDisabled:l})}U({name:`DatePicker`,common:z,peers:{Input:lt,Button:rt,TimePicker:ur,Scrollbar:Ee},self:pr});var mr={name:`DatePicker`,common:Y,peers:{Input:Q,Button:$,TimePicker:dr,Scrollbar:X},self(e){let{popoverColor:t,hoverColor:n,primaryColor:r}=e,i=pr(e);return i.itemColorDisabled=H(t,n),i.itemColorIncluded=B(r,{alpha:.15}),i.itemColorHover=H(t,n),i}},hr={thPaddingBorderedSmall:`8px 12px`,thPaddingBorderedMedium:`12px 16px`,thPaddingBorderedLarge:`16px 24px`,thPaddingSmall:`0`,thPaddingMedium:`0`,thPaddingLarge:`0`,tdPaddingBorderedSmall:`8px 12px`,tdPaddingBorderedMedium:`12px 16px`,tdPaddingBorderedLarge:`16px 24px`,tdPaddingSmall:`0 0 8px 0`,tdPaddingMedium:`0 0 12px 0`,tdPaddingLarge:`0 0 16px 0`};function gr(e){let{tableHeaderColor:t,textColor2:n,textColor1:r,cardColor:i,modalColor:a,popoverColor:o,dividerColor:s,borderRadius:c,fontWeightStrong:l,lineHeight:u,fontSizeSmall:d,fontSizeMedium:f,fontSizeLarge:p}=e;return Object.assign(Object.assign({},hr),{lineHeight:u,fontSizeSmall:d,fontSizeMedium:f,fontSizeLarge:p,titleTextColor:r,thColor:H(i,t),thColorModal:H(a,t),thColorPopover:H(o,t),thTextColor:r,thFontWeight:l,tdTextColor:n,tdColor:i,tdColorModal:a,tdColorPopover:o,borderColor:H(i,s),borderColorModal:H(a,s),borderColorPopover:H(o,s),borderRadius:c})}var _r={name:`Descriptions`,common:Y,self:gr},vr={name:`Dialog`,common:Y,peers:{Button:$},self:ze},yr={name:`Modal`,common:Y,peers:{Scrollbar:X,Dialog:vr,Card:On},self:Re},br=Object.assign(Object.assign({},Ae),{onAfterEnter:Function,onAfterLeave:Function,transformOrigin:String,blockScroll:{type:Boolean,default:!0},closeOnEsc:{type:Boolean,default:!0},onEsc:Function,autoFocus:{type:Boolean,default:!0},internalStyle:[String,Object],maskClosable:{type:Boolean,default:!0},zIndex:Number,onPositiveClick:Function,onNegativeClick:Function,onClose:Function,onMaskClick:Function,draggable:[Boolean,Object]}),xr=T({name:`DialogEnvironment`,props:Object.assign(Object.assign({},br),{internalKey:{type:String,required:!0},to:[String,Object],onInternalAfterLeave:{type:Function,required:!0}}),setup(e){let t=b(!0);function n(){let{onInternalAfterLeave:t,internalKey:n,onAfterLeave:r}=e;t&&t(n),r&&r()}function r(t){let{onPositiveClick:n}=e;n?Promise.resolve(n(t)).then(e=>{e!==!1&&c()}):c()}function i(t){let{onNegativeClick:n}=e;n?Promise.resolve(n(t)).then(e=>{e!==!1&&c()}):c()}function a(){let{onClose:t}=e;t?Promise.resolve(t()).then(e=>{e!==!1&&c()}):c()}function o(t){let{onMaskClick:n,maskClosable:r}=e;n&&(n(t),r&&c())}function s(){let{onEsc:t}=e;t&&t()}function c(){t.value=!1}function l(e){t.value=e}return{show:t,hide:c,handleUpdateShow:l,handleAfterLeave:n,handleCloseClick:a,handleNegativeClick:i,handlePositiveClick:r,handleMaskClick:o,handleEsc:s}},render(){let{handlePositiveClick:e,handleUpdateShow:t,handleNegativeClick:n,handleCloseClick:r,handleAfterLeave:i,handleMaskClick:a,handleEsc:o,to:s,zIndex:l,maskClosable:u,show:d}=this;return c(Ue,{show:d,onUpdateShow:t,onMaskClick:a,onEsc:o,to:s,zIndex:l,maskClosable:u,onAfterEnter:this.onAfterEnter,onAfterLeave:i,closeOnEsc:this.closeOnEsc,blockScroll:this.blockScroll,autoFocus:this.autoFocus,transformOrigin:this.transformOrigin,draggable:this.draggable,internalAppear:!0,internalDialog:!0},{default:({draggableClass:t})=>c(Ve,Object.assign({},we(this.$props,Fe),{titleClass:O([this.titleClass,t]),style:this.internalStyle,onClose:r,onNegativeClick:n,onPositiveClick:e}))})}}),Sr=T({name:`DialogProvider`,props:{injectionKey:String,to:[String,Object]},setup(){let e=b([]),t={};function n(n={}){let r=xe(),i=A(Object.assign(Object.assign({},n),{key:r,destroy:()=>{var e;(e=t[`n-dialog-${r}`])==null||e.hide()}}));return e.value.push(i),i}let r=[`info`,`success`,`warning`,`error`].map(e=>t=>n(Object.assign(Object.assign({},t),{type:e})));function i(t){let{value:n}=e;n.splice(n.findIndex(e=>e.key===t),1)}function a(){Object.values(t).forEach(e=>{e?.hide()})}let o={create:n,destroyAll:a,info:r[0],success:r[1],warning:r[2],error:r[3]};return s(He,o),s(je,{clickedRef:Le(64),clickedPositionRef:Pe()}),s(Ie,e),Object.assign(Object.assign({},o),{dialogList:e,dialogInstRefs:t,handleAfterLeave:i})},render(){var e;return c(P,null,[this.dialogList.map(e=>c(xr,ct(e,[`destroy`,`style`],{internalStyle:e.style,to:this.to,ref:t=>{t===null?delete this.dialogInstRefs[`n-dialog-${e.key}`]:this.dialogInstRefs[`n-dialog-${e.key}`]=t},internalKey:e.key,onInternalAfterLeave:this.handleAfterLeave}))),(e=this.$slots).default?.call(e)])}}),Cr={name:`LoadingBar`,common:Y,self(e){let{primaryColor:t}=e;return{colorError:`red`,colorLoading:t,height:`2px`}}},wr={margin:`0 0 8px 0`,padding:`10px 20px`,maxWidth:`720px`,minWidth:`420px`,iconMargin:`0 10px 0 0`,closeMargin:`0 0 0 10px`,closeSize:`20px`,closeIconSize:`16px`,iconSize:`20px`,fontSize:`14px`};function Tr(e){let{textColor2:t,closeIconColor:n,closeIconColorHover:r,closeIconColorPressed:i,infoColor:a,successColor:o,errorColor:s,warningColor:c,popoverColor:l,boxShadow2:u,primaryColor:d,lineHeight:f,borderRadius:p,closeColorHover:m,closeColorPressed:h}=e;return Object.assign(Object.assign({},wr),{closeBorderRadius:p,textColor:t,textColorInfo:t,textColorSuccess:t,textColorError:t,textColorWarning:t,textColorLoading:t,color:l,colorInfo:l,colorSuccess:l,colorError:l,colorWarning:l,colorLoading:l,boxShadow:u,boxShadowInfo:u,boxShadowSuccess:u,boxShadowError:u,boxShadowWarning:u,boxShadowLoading:u,iconColor:t,iconColorInfo:a,iconColorSuccess:o,iconColorWarning:c,iconColorError:s,iconColorLoading:d,closeColorHover:m,closeColorPressed:h,closeIconColor:n,closeIconColorHover:r,closeIconColorPressed:i,closeColorHoverInfo:m,closeColorPressedInfo:h,closeIconColorInfo:n,closeIconColorHoverInfo:r,closeIconColorPressedInfo:i,closeColorHoverSuccess:m,closeColorPressedSuccess:h,closeIconColorSuccess:n,closeIconColorHoverSuccess:r,closeIconColorPressedSuccess:i,closeColorHoverError:m,closeColorPressedError:h,closeIconColorError:n,closeIconColorHoverError:r,closeIconColorPressedError:i,closeColorHoverWarning:m,closeColorPressedWarning:h,closeIconColorWarning:n,closeIconColorHoverWarning:r,closeIconColorPressedWarning:i,closeColorHoverLoading:m,closeColorPressedLoading:h,closeIconColorLoading:n,closeIconColorHoverLoading:r,closeIconColorPressedLoading:i,loadingColor:d,lineHeight:f,borderRadius:p,border:`0`})}var Er={name:`Message`,common:z,self:Tr},Dr={name:`Message`,common:Y,self:Tr},Or={icon:Function,type:{type:String,default:`info`},content:[String,Number,Function],showIcon:{type:Boolean,default:!0},closable:Boolean,keepAliveOnHover:Boolean,spinProps:Object,onClose:Function,onMouseenter:Function,onMouseleave:Function},kr=W([L(`message-wrapper`,`
|
|
2
|
+
margin: var(--n-margin);
|
|
3
|
+
z-index: 0;
|
|
4
|
+
transform-origin: top center;
|
|
5
|
+
display: flex;
|
|
6
|
+
`,[pt({overflow:`visible`,originalTransition:`transform .3s var(--n-bezier)`,enterToProps:{transform:`scale(1)`},leaveToProps:{transform:`scale(0.85)`}})]),L(`message`,`
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
transition:
|
|
11
|
+
color .3s var(--n-bezier),
|
|
12
|
+
box-shadow .3s var(--n-bezier),
|
|
13
|
+
background-color .3s var(--n-bezier),
|
|
14
|
+
opacity .3s var(--n-bezier),
|
|
15
|
+
transform .3s var(--n-bezier),
|
|
16
|
+
margin-bottom .3s var(--n-bezier);
|
|
17
|
+
padding: var(--n-padding);
|
|
18
|
+
border-radius: var(--n-border-radius);
|
|
19
|
+
border: var(--n-border);
|
|
20
|
+
flex-wrap: nowrap;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
max-width: var(--n-max-width);
|
|
23
|
+
color: var(--n-text-color);
|
|
24
|
+
background-color: var(--n-color);
|
|
25
|
+
box-shadow: var(--n-box-shadow);
|
|
26
|
+
`,[G(`content`,`
|
|
27
|
+
display: inline-block;
|
|
28
|
+
line-height: var(--n-line-height);
|
|
29
|
+
font-size: var(--n-font-size);
|
|
30
|
+
`),G(`icon`,`
|
|
31
|
+
position: relative;
|
|
32
|
+
margin: var(--n-icon-margin);
|
|
33
|
+
height: var(--n-icon-size);
|
|
34
|
+
width: var(--n-icon-size);
|
|
35
|
+
font-size: var(--n-icon-size);
|
|
36
|
+
flex-shrink: 0;
|
|
37
|
+
`,[[`default`,`info`,`success`,`warning`,`error`,`loading`].map(e=>R(`${e}-type`,[W(`> *`,`
|
|
38
|
+
color: var(--n-icon-color-${e});
|
|
39
|
+
transition: color .3s var(--n-bezier);
|
|
40
|
+
`)])),W(`> *`,`
|
|
41
|
+
position: absolute;
|
|
42
|
+
left: 0;
|
|
43
|
+
top: 0;
|
|
44
|
+
right: 0;
|
|
45
|
+
bottom: 0;
|
|
46
|
+
`,[de()])]),G(`close`,`
|
|
47
|
+
margin: var(--n-close-margin);
|
|
48
|
+
transition:
|
|
49
|
+
background-color .3s var(--n-bezier),
|
|
50
|
+
color .3s var(--n-bezier);
|
|
51
|
+
flex-shrink: 0;
|
|
52
|
+
`,[W(`&:hover`,`
|
|
53
|
+
color: var(--n-close-icon-color-hover);
|
|
54
|
+
`),W(`&:active`,`
|
|
55
|
+
color: var(--n-close-icon-color-pressed);
|
|
56
|
+
`)])]),L(`message-container`,`
|
|
57
|
+
z-index: 6000;
|
|
58
|
+
position: fixed;
|
|
59
|
+
height: 0;
|
|
60
|
+
overflow: visible;
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
align-items: center;
|
|
64
|
+
`,[R(`top`,`
|
|
65
|
+
top: 12px;
|
|
66
|
+
left: 0;
|
|
67
|
+
right: 0;
|
|
68
|
+
`),R(`top-left`,`
|
|
69
|
+
top: 12px;
|
|
70
|
+
left: 12px;
|
|
71
|
+
right: 0;
|
|
72
|
+
align-items: flex-start;
|
|
73
|
+
`),R(`top-right`,`
|
|
74
|
+
top: 12px;
|
|
75
|
+
left: 0;
|
|
76
|
+
right: 12px;
|
|
77
|
+
align-items: flex-end;
|
|
78
|
+
`),R(`bottom`,`
|
|
79
|
+
bottom: 4px;
|
|
80
|
+
left: 0;
|
|
81
|
+
right: 0;
|
|
82
|
+
justify-content: flex-end;
|
|
83
|
+
`),R(`bottom-left`,`
|
|
84
|
+
bottom: 4px;
|
|
85
|
+
left: 12px;
|
|
86
|
+
right: 0;
|
|
87
|
+
justify-content: flex-end;
|
|
88
|
+
align-items: flex-start;
|
|
89
|
+
`),R(`bottom-right`,`
|
|
90
|
+
bottom: 4px;
|
|
91
|
+
left: 0;
|
|
92
|
+
right: 12px;
|
|
93
|
+
justify-content: flex-end;
|
|
94
|
+
align-items: flex-end;
|
|
95
|
+
`)])]),Ar={info:()=>c(Ne,null),success:()=>c(Me,null),warning:()=>c(ot,null),error:()=>c(Be,null),default:()=>null},jr=T({name:`Message`,props:Object.assign(Object.assign({},Or),{render:Function}),setup(e){let{inlineThemeDisabled:t,mergedRtlRef:r}=se(e),{props:i,mergedClsPrefixRef:o}=a(Dt),s=pe(`Message`,r,o),c=fe(`Message`,`-message`,kr,Er,i,o),l=n(()=>{let{type:t}=e,{common:{cubicBezierEaseInOut:n},self:{padding:r,margin:i,maxWidth:a,iconMargin:o,closeMargin:s,closeSize:l,iconSize:u,fontSize:d,lineHeight:f,borderRadius:p,border:m,iconColorInfo:h,iconColorSuccess:g,iconColorWarning:_,iconColorError:v,iconColorLoading:y,closeIconSize:b,closeBorderRadius:x,[V(`textColor`,t)]:S,[V(`boxShadow`,t)]:C,[V(`color`,t)]:w,[V(`closeColorHover`,t)]:T,[V(`closeColorPressed`,t)]:E,[V(`closeIconColor`,t)]:D,[V(`closeIconColorPressed`,t)]:O,[V(`closeIconColorHover`,t)]:k}}=c.value;return{"--n-bezier":n,"--n-margin":i,"--n-padding":r,"--n-max-width":a,"--n-font-size":d,"--n-icon-margin":o,"--n-icon-size":u,"--n-close-icon-size":b,"--n-close-border-radius":x,"--n-close-size":l,"--n-close-margin":s,"--n-text-color":S,"--n-color":w,"--n-box-shadow":C,"--n-icon-color-info":h,"--n-icon-color-success":g,"--n-icon-color-warning":_,"--n-icon-color-error":v,"--n-icon-color-loading":y,"--n-close-color-hover":T,"--n-close-color-pressed":E,"--n-close-icon-color":D,"--n-close-icon-color-pressed":O,"--n-close-icon-color-hover":k,"--n-line-height":f,"--n-border-radius":p,"--n-border":m}}),u=t?be(`message`,n(()=>e.type[0]),l,{}):void 0;return{mergedClsPrefix:o,rtlEnabled:s,messageProviderProps:i,handleClose(){var t;(t=e.onClose)==null||t.call(e)},cssVars:t?void 0:l,themeClass:u?.themeClass,onRender:u?.onRender,placement:i.placement}},render(){let{render:e,type:t,closable:n,content:r,mergedClsPrefix:i,cssVars:a,themeClass:o,onRender:s,icon:l,handleClose:u,showIcon:d}=this;s?.();let f;return c(`div`,{class:[`${i}-message-wrapper`,o],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:[{alignItems:this.placement.startsWith(`top`)?`flex-start`:`flex-end`},a]},e?e(this.$props):c(`div`,{class:[`${i}-message ${i}-message--${t}-type`,this.rtlEnabled&&`${i}-message--rtl`]},(f=Mr(l,t,i,this.spinProps))&&d?c(`div`,{class:`${i}-message__icon ${i}-message__icon--${t}-type`},c(ge,null,{default:()=>f})):null,c(`div`,{class:`${i}-message__content`},K(r)),n?c(Ge,{clsPrefix:i,class:`${i}-message__close`,onClick:u,absolute:!0}):null))}});function Mr(e,t,n,r){if(typeof e==`function`)return e();{let e=t===`loading`?c(_e,Object.assign({clsPrefix:n,strokeWidth:24,scale:.85},r)):Ar[t]();return e?c(ke,{clsPrefix:n,key:t},{default:()=>e}):null}}var Nr=T({name:`MessageEnvironment`,props:Object.assign(Object.assign({},Or),{duration:{type:Number,default:3e3},onAfterLeave:Function,onLeave:Function,internalKey:{type:String,required:!0},onInternalAfterLeave:Function,onHide:Function,onAfterHide:Function}),setup(e){let t=null,n=b(!0);p(()=>{r()});function r(){let{duration:n}=e;n&&(t=window.setTimeout(o,n))}function i(e){e.currentTarget===e.target&&t!==null&&(window.clearTimeout(t),t=null)}function a(e){e.currentTarget===e.target&&r()}function o(){let{onHide:r}=e;n.value=!1,t&&=(window.clearTimeout(t),null),r&&r()}function s(){let{onClose:t}=e;t&&t(),o()}function c(){let{onAfterLeave:t,onInternalAfterLeave:n,onAfterHide:r,internalKey:i}=e;t&&t(),n&&n(i),r&&r()}function l(){o()}return{show:n,hide:o,handleClose:s,handleAfterLeave:c,handleMouseleave:a,handleMouseenter:i,deactivate:l}},render(){return c(tt,{appear:!0,onAfterLeave:this.handleAfterLeave,onLeave:this.onLeave},{default:()=>[this.show?c(jr,{content:this.content,type:this.type,icon:this.icon,showIcon:this.showIcon,closable:this.closable,spinProps:this.spinProps,onClose:this.handleClose,onMouseenter:this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.keepAliveOnHover?this.handleMouseleave:void 0}):null]})}}),Pr=T({name:`MessageProvider`,props:Object.assign(Object.assign({},fe.props),{to:[String,Object],duration:{type:Number,default:3e3},keepAliveOnHover:Boolean,max:Number,placement:{type:String,default:`top`},closable:Boolean,containerClass:String,containerStyle:[String,Object]}),setup(e){let{mergedClsPrefixRef:t}=se(e),n=b([]),r=b({}),i={create(e,t){return a(e,Object.assign({type:`default`},t))},info(e,t){return a(e,Object.assign(Object.assign({},t),{type:`info`}))},success(e,t){return a(e,Object.assign(Object.assign({},t),{type:`success`}))},warning(e,t){return a(e,Object.assign(Object.assign({},t),{type:`warning`}))},error(e,t){return a(e,Object.assign(Object.assign({},t),{type:`error`}))},loading(e,t){return a(e,Object.assign(Object.assign({},t),{type:`loading`}))},destroyAll:c};s(Dt,{props:e,mergedClsPrefixRef:t}),s(Et,i);function a(t,i){let a=xe(),o=A(Object.assign(Object.assign({},i),{content:t,key:a,destroy:()=>{var e;(e=r.value[a])==null||e.hide()}})),{max:s}=e;return s&&n.value.length>=s&&n.value.shift(),n.value.push(o),o}function o(e){n.value.splice(n.value.findIndex(t=>t.key===e),1),delete r.value[e]}function c(){Object.values(r.value).forEach(e=>{e.hide()})}return Object.assign({mergedClsPrefix:t,messageRefs:r,messageList:n,handleAfterLeave:o},i)},render(){var e;return c(P,null,(e=this.$slots).default?.call(e),this.messageList.length?c(v,{to:this.to??`body`},c(`div`,{class:[`${this.mergedClsPrefix}-message-container`,`${this.mergedClsPrefix}-message-container--${this.placement}`,this.containerClass],key:`message-container`,style:this.containerStyle},this.messageList.map(e=>c(Nr,Object.assign({ref:t=>{t&&(this.messageRefs[e.key]=t)},internalKey:e.key,onInternalAfterLeave:this.handleAfterLeave},ct(e,[`destroy`],void 0),{duration:e.duration===void 0?this.duration:e.duration,keepAliveOnHover:e.keepAliveOnHover===void 0?this.keepAliveOnHover:e.keepAliveOnHover,closable:e.closable===void 0?this.closable:e.closable}))))):null)}}),Fr={closeMargin:`16px 12px`,closeSize:`20px`,closeIconSize:`16px`,width:`365px`,padding:`16px`,titleFontSize:`16px`,metaFontSize:`12px`,descriptionFontSize:`12px`};function Ir(e){let{textColor2:t,successColor:n,infoColor:r,warningColor:i,errorColor:a,popoverColor:o,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeColorHover:u,closeColorPressed:d,textColor1:f,textColor3:p,borderRadius:m,fontWeightStrong:h,boxShadow2:g,lineHeight:_,fontSize:v}=e;return Object.assign(Object.assign({},Fr),{borderRadius:m,lineHeight:_,fontSize:v,headerFontWeight:h,iconColor:t,iconColorSuccess:n,iconColorInfo:r,iconColorWarning:i,iconColorError:a,color:o,textColor:t,closeIconColor:s,closeIconColorHover:c,closeIconColorPressed:l,closeBorderRadius:m,closeColorHover:u,closeColorPressed:d,headerTextColor:f,descriptionTextColor:p,actionTextColor:t,boxShadow:g})}var Lr=U({name:`Notification`,common:z,peers:{Scrollbar:Ee},self:Ir}),Rr={name:`Notification`,common:Y,peers:{Scrollbar:X},self:Ir},zr=oe(`n-notification-provider`),Br=T({name:`NotificationContainer`,props:{scrollable:{type:Boolean,required:!0},placement:{type:String,required:!0}},setup(){let{mergedThemeRef:e,mergedClsPrefixRef:t,wipTransitionCountRef:n}=a(zr),r=b(null);return _(()=>{var e,t;n.value>0?(e=r?.value)==null||e.classList.add(`transitioning`):(t=r?.value)==null||t.classList.remove(`transitioning`)}),{selfRef:r,mergedTheme:e,mergedClsPrefix:t,transitioning:n}},render(){let{$slots:e,scrollable:t,mergedClsPrefix:n,mergedTheme:r,placement:i}=this;return c(`div`,{ref:`selfRef`,class:[`${n}-notification-container`,t&&`${n}-notification-container--scrollable`,`${n}-notification-container--${i}`]},t?c(De,{theme:r.peers.Scrollbar,themeOverrides:r.peerOverrides.Scrollbar,contentStyle:{overflow:`hidden`}},e):e)}}),Vr={info:()=>c(Ne,null),success:()=>c(Me,null),warning:()=>c(ot,null),error:()=>c(Be,null),default:()=>null},Hr={closable:{type:Boolean,default:!0},type:{type:String,default:`default`},avatar:Function,title:[String,Function],description:[String,Function],content:[String,Function],meta:[String,Function],action:[String,Function],onClose:{type:Function,required:!0},keepAliveOnHover:Boolean,onMouseenter:Function,onMouseleave:Function},Ur=at(Hr),Wr=T({name:`Notification`,props:Hr,setup(e){let{mergedClsPrefixRef:t,mergedThemeRef:r,props:i}=a(zr),{inlineThemeDisabled:o,mergedRtlRef:s}=se(),c=pe(`Notification`,s,t),l=n(()=>{let{type:t}=e,{self:{color:n,textColor:i,closeIconColor:a,closeIconColorHover:o,closeIconColorPressed:s,headerTextColor:c,descriptionTextColor:l,actionTextColor:u,borderRadius:d,headerFontWeight:f,boxShadow:p,lineHeight:m,fontSize:h,closeMargin:g,closeSize:_,width:v,padding:y,closeIconSize:b,closeBorderRadius:x,closeColorHover:S,closeColorPressed:C,titleFontSize:w,metaFontSize:T,descriptionFontSize:E,[V(`iconColor`,t)]:D},common:{cubicBezierEaseOut:O,cubicBezierEaseIn:k,cubicBezierEaseInOut:A}}=r.value,{left:j,right:M,top:ee,bottom:te}=Oe(y);return{"--n-color":n,"--n-font-size":h,"--n-text-color":i,"--n-description-text-color":l,"--n-action-text-color":u,"--n-title-text-color":c,"--n-title-font-weight":f,"--n-bezier":A,"--n-bezier-ease-out":O,"--n-bezier-ease-in":k,"--n-border-radius":d,"--n-box-shadow":p,"--n-close-border-radius":x,"--n-close-color-hover":S,"--n-close-color-pressed":C,"--n-close-icon-color":a,"--n-close-icon-color-hover":o,"--n-close-icon-color-pressed":s,"--n-line-height":m,"--n-icon-color":D,"--n-close-margin":g,"--n-close-size":_,"--n-close-icon-size":b,"--n-width":v,"--n-padding-left":j,"--n-padding-right":M,"--n-padding-top":ee,"--n-padding-bottom":te,"--n-title-font-size":w,"--n-meta-font-size":T,"--n-description-font-size":E}}),u=o?be(`notification`,n(()=>e.type[0]),l,i):void 0;return{mergedClsPrefix:t,showAvatar:n(()=>e.avatar||e.type!==`default`),handleCloseClick(){e.onClose()},rtlEnabled:c,cssVars:o?void 0:l,themeClass:u?.themeClass,onRender:u?.onRender}},render(){var e;let{mergedClsPrefix:t}=this;return(e=this.onRender)==null||e.call(this),c(`div`,{class:[`${t}-notification-wrapper`,this.themeClass],onMouseenter:this.onMouseenter,onMouseleave:this.onMouseleave,style:this.cssVars},c(`div`,{class:[`${t}-notification`,this.rtlEnabled&&`${t}-notification--rtl`,this.themeClass,{[`${t}-notification--closable`]:this.closable,[`${t}-notification--show-avatar`]:this.showAvatar}],style:this.cssVars},this.showAvatar?c(`div`,{class:`${t}-notification__avatar`},this.avatar?K(this.avatar):this.type===`default`?null:c(ke,{clsPrefix:t},{default:()=>Vr[this.type]()})):null,this.closable?c(Ge,{clsPrefix:t,class:`${t}-notification__close`,onClick:this.handleCloseClick}):null,c(`div`,{ref:`bodyRef`,class:`${t}-notification-main`},this.title?c(`div`,{class:`${t}-notification-main__header`},K(this.title)):null,this.description?c(`div`,{class:`${t}-notification-main__description`},K(this.description)):null,this.content?c(`pre`,{class:`${t}-notification-main__content`},K(this.content)):null,this.meta||this.action?c(`div`,{class:`${t}-notification-main-footer`},this.meta?c(`div`,{class:`${t}-notification-main-footer__meta`},K(this.meta)):null,this.action?c(`div`,{class:`${t}-notification-main-footer__action`},K(this.action)):null):null)))}}),Gr=Object.assign(Object.assign({},Hr),{duration:Number,onClose:Function,onLeave:Function,onAfterEnter:Function,onAfterLeave:Function,onHide:Function,onAfterShow:Function,onAfterHide:Function}),Kr=T({name:`NotificationEnvironment`,props:Object.assign(Object.assign({},Gr),{internalKey:{type:String,required:!0},onInternalAfterLeave:{type:Function,required:!0}}),setup(e){let{wipTransitionCountRef:t}=a(zr),n=b(!0),r=null;function i(){n.value=!1,r&&window.clearTimeout(r)}function o(e){t.value++,d(()=>{e.style.height=`${e.offsetHeight}px`,e.style.maxHeight=`0`,e.style.transition=`none`,e.offsetHeight,e.style.transition=``,e.style.maxHeight=e.style.height})}function s(n){t.value--,n.style.height=``,n.style.maxHeight=``;let{onAfterEnter:r,onAfterShow:i}=e;r&&r(),i&&i()}function c(e){t.value++,e.style.maxHeight=`${e.offsetHeight}px`,e.style.height=`${e.offsetHeight}px`,e.offsetHeight}function l(t){let{onHide:n}=e;n&&n(),t.style.maxHeight=`0`,t.offsetHeight}function u(){t.value--;let{onAfterLeave:n,onInternalAfterLeave:r,onAfterHide:i,internalKey:a}=e;n&&n(),r(a),i&&i()}function f(){let{duration:t}=e;t&&(r=window.setTimeout(i,t))}function m(e){e.currentTarget===e.target&&r!==null&&(window.clearTimeout(r),r=null)}function h(e){e.currentTarget===e.target&&f()}function g(){let{onClose:t}=e;t?Promise.resolve(t()).then(e=>{e!==!1&&i()}):i()}return p(()=>{e.duration&&(r=window.setTimeout(i,e.duration))}),{show:n,hide:i,handleClose:g,handleAfterLeave:u,handleLeave:l,handleBeforeLeave:c,handleAfterEnter:s,handleBeforeEnter:o,handleMouseenter:m,handleMouseleave:h}},render(){return c(x,{name:`notification-transition`,appear:!0,onBeforeEnter:this.handleBeforeEnter,onAfterEnter:this.handleAfterEnter,onBeforeLeave:this.handleBeforeLeave,onLeave:this.handleLeave,onAfterLeave:this.handleAfterLeave},{default:()=>this.show?c(Wr,Object.assign({},we(this.$props,Ur),{onClose:this.handleClose,onMouseenter:this.duration&&this.keepAliveOnHover?this.handleMouseenter:void 0,onMouseleave:this.duration&&this.keepAliveOnHover?this.handleMouseleave:void 0})):null})}}),qr=W([L(`notification-container`,`
|
|
96
|
+
z-index: 4000;
|
|
97
|
+
position: fixed;
|
|
98
|
+
overflow: visible;
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: column;
|
|
101
|
+
align-items: flex-end;
|
|
102
|
+
`,[W(`>`,[L(`scrollbar`,`
|
|
103
|
+
width: initial;
|
|
104
|
+
overflow: visible;
|
|
105
|
+
height: -moz-fit-content !important;
|
|
106
|
+
height: fit-content !important;
|
|
107
|
+
max-height: 100vh !important;
|
|
108
|
+
`,[W(`>`,[L(`scrollbar-container`,`
|
|
109
|
+
height: -moz-fit-content !important;
|
|
110
|
+
height: fit-content !important;
|
|
111
|
+
max-height: 100vh !important;
|
|
112
|
+
`,[L(`scrollbar-content`,`
|
|
113
|
+
padding-top: 12px;
|
|
114
|
+
padding-bottom: 33px;
|
|
115
|
+
`)])])])]),R(`top, top-right, top-left`,`
|
|
116
|
+
top: 12px;
|
|
117
|
+
`,[W(`&.transitioning >`,[L(`scrollbar`,[W(`>`,[L(`scrollbar-container`,`
|
|
118
|
+
min-height: 100vh !important;
|
|
119
|
+
`)])])])]),R(`bottom, bottom-right, bottom-left`,`
|
|
120
|
+
bottom: 12px;
|
|
121
|
+
`,[W(`>`,[L(`scrollbar`,[W(`>`,[L(`scrollbar-container`,[L(`scrollbar-content`,`
|
|
122
|
+
padding-bottom: 12px;
|
|
123
|
+
`)])])])]),L(`notification-wrapper`,`
|
|
124
|
+
display: flex;
|
|
125
|
+
align-items: flex-end;
|
|
126
|
+
margin-bottom: 0;
|
|
127
|
+
margin-top: 12px;
|
|
128
|
+
`)]),R(`top, bottom`,`
|
|
129
|
+
left: 50%;
|
|
130
|
+
transform: translateX(-50%);
|
|
131
|
+
`,[L(`notification-wrapper`,[W(`&.notification-transition-enter-from, &.notification-transition-leave-to`,`
|
|
132
|
+
transform: scale(0.85);
|
|
133
|
+
`),W(`&.notification-transition-leave-from, &.notification-transition-enter-to`,`
|
|
134
|
+
transform: scale(1);
|
|
135
|
+
`)])]),R(`top`,[L(`notification-wrapper`,`
|
|
136
|
+
transform-origin: top center;
|
|
137
|
+
`)]),R(`bottom`,[L(`notification-wrapper`,`
|
|
138
|
+
transform-origin: bottom center;
|
|
139
|
+
`)]),R(`top-right, bottom-right`,[L(`notification`,`
|
|
140
|
+
margin-left: 28px;
|
|
141
|
+
margin-right: 16px;
|
|
142
|
+
`)]),R(`top-left, bottom-left`,[L(`notification`,`
|
|
143
|
+
margin-left: 16px;
|
|
144
|
+
margin-right: 28px;
|
|
145
|
+
`)]),R(`top-right`,`
|
|
146
|
+
right: 0;
|
|
147
|
+
`,[Jr(`top-right`)]),R(`top-left`,`
|
|
148
|
+
left: 0;
|
|
149
|
+
`,[Jr(`top-left`)]),R(`bottom-right`,`
|
|
150
|
+
right: 0;
|
|
151
|
+
`,[Jr(`bottom-right`)]),R(`bottom-left`,`
|
|
152
|
+
left: 0;
|
|
153
|
+
`,[Jr(`bottom-left`)]),R(`scrollable`,[R(`top-right`,`
|
|
154
|
+
top: 0;
|
|
155
|
+
`),R(`top-left`,`
|
|
156
|
+
top: 0;
|
|
157
|
+
`),R(`bottom-right`,`
|
|
158
|
+
bottom: 0;
|
|
159
|
+
`),R(`bottom-left`,`
|
|
160
|
+
bottom: 0;
|
|
161
|
+
`)]),L(`notification-wrapper`,`
|
|
162
|
+
margin-bottom: 12px;
|
|
163
|
+
`,[W(`&.notification-transition-enter-from, &.notification-transition-leave-to`,`
|
|
164
|
+
opacity: 0;
|
|
165
|
+
margin-top: 0 !important;
|
|
166
|
+
margin-bottom: 0 !important;
|
|
167
|
+
`),W(`&.notification-transition-leave-from, &.notification-transition-enter-to`,`
|
|
168
|
+
opacity: 1;
|
|
169
|
+
`),W(`&.notification-transition-leave-active`,`
|
|
170
|
+
transition:
|
|
171
|
+
background-color .3s var(--n-bezier),
|
|
172
|
+
color .3s var(--n-bezier),
|
|
173
|
+
opacity .3s var(--n-bezier),
|
|
174
|
+
transform .3s var(--n-bezier-ease-in),
|
|
175
|
+
max-height .3s var(--n-bezier),
|
|
176
|
+
margin-top .3s linear,
|
|
177
|
+
margin-bottom .3s linear,
|
|
178
|
+
box-shadow .3s var(--n-bezier);
|
|
179
|
+
`),W(`&.notification-transition-enter-active`,`
|
|
180
|
+
transition:
|
|
181
|
+
background-color .3s var(--n-bezier),
|
|
182
|
+
color .3s var(--n-bezier),
|
|
183
|
+
opacity .3s var(--n-bezier),
|
|
184
|
+
transform .3s var(--n-bezier-ease-out),
|
|
185
|
+
max-height .3s var(--n-bezier),
|
|
186
|
+
margin-top .3s linear,
|
|
187
|
+
margin-bottom .3s linear,
|
|
188
|
+
box-shadow .3s var(--n-bezier);
|
|
189
|
+
`)]),L(`notification`,`
|
|
190
|
+
background-color: var(--n-color);
|
|
191
|
+
color: var(--n-text-color);
|
|
192
|
+
transition:
|
|
193
|
+
background-color .3s var(--n-bezier),
|
|
194
|
+
color .3s var(--n-bezier),
|
|
195
|
+
opacity .3s var(--n-bezier),
|
|
196
|
+
box-shadow .3s var(--n-bezier);
|
|
197
|
+
font-family: inherit;
|
|
198
|
+
font-size: var(--n-font-size);
|
|
199
|
+
font-weight: 400;
|
|
200
|
+
position: relative;
|
|
201
|
+
display: flex;
|
|
202
|
+
overflow: hidden;
|
|
203
|
+
flex-shrink: 0;
|
|
204
|
+
padding-left: var(--n-padding-left);
|
|
205
|
+
padding-right: var(--n-padding-right);
|
|
206
|
+
width: var(--n-width);
|
|
207
|
+
max-width: calc(100vw - 16px - 16px);
|
|
208
|
+
border-radius: var(--n-border-radius);
|
|
209
|
+
box-shadow: var(--n-box-shadow);
|
|
210
|
+
box-sizing: border-box;
|
|
211
|
+
opacity: 1;
|
|
212
|
+
`,[G(`avatar`,[L(`icon`,`
|
|
213
|
+
color: var(--n-icon-color);
|
|
214
|
+
`),L(`base-icon`,`
|
|
215
|
+
color: var(--n-icon-color);
|
|
216
|
+
`)]),R(`show-avatar`,[L(`notification-main`,`
|
|
217
|
+
margin-left: 40px;
|
|
218
|
+
width: calc(100% - 40px);
|
|
219
|
+
`)]),R(`closable`,[L(`notification-main`,[W(`> *:first-child`,`
|
|
220
|
+
padding-right: 20px;
|
|
221
|
+
`)]),G(`close`,`
|
|
222
|
+
position: absolute;
|
|
223
|
+
top: 0;
|
|
224
|
+
right: 0;
|
|
225
|
+
margin: var(--n-close-margin);
|
|
226
|
+
transition:
|
|
227
|
+
background-color .3s var(--n-bezier),
|
|
228
|
+
color .3s var(--n-bezier);
|
|
229
|
+
`)]),G(`avatar`,`
|
|
230
|
+
position: absolute;
|
|
231
|
+
top: var(--n-padding-top);
|
|
232
|
+
left: var(--n-padding-left);
|
|
233
|
+
width: 28px;
|
|
234
|
+
height: 28px;
|
|
235
|
+
font-size: 28px;
|
|
236
|
+
display: flex;
|
|
237
|
+
align-items: center;
|
|
238
|
+
justify-content: center;
|
|
239
|
+
`,[L(`icon`,`transition: color .3s var(--n-bezier);`)]),L(`notification-main`,`
|
|
240
|
+
padding-top: var(--n-padding-top);
|
|
241
|
+
padding-bottom: var(--n-padding-bottom);
|
|
242
|
+
box-sizing: border-box;
|
|
243
|
+
display: flex;
|
|
244
|
+
flex-direction: column;
|
|
245
|
+
margin-left: 8px;
|
|
246
|
+
width: calc(100% - 8px);
|
|
247
|
+
`,[L(`notification-main-footer`,`
|
|
248
|
+
display: flex;
|
|
249
|
+
align-items: center;
|
|
250
|
+
justify-content: space-between;
|
|
251
|
+
margin-top: 12px;
|
|
252
|
+
`,[G(`meta`,`
|
|
253
|
+
font-size: var(--n-meta-font-size);
|
|
254
|
+
transition: color .3s var(--n-bezier-ease-out);
|
|
255
|
+
color: var(--n-description-text-color);
|
|
256
|
+
`),G(`action`,`
|
|
257
|
+
cursor: pointer;
|
|
258
|
+
transition: color .3s var(--n-bezier-ease-out);
|
|
259
|
+
color: var(--n-action-text-color);
|
|
260
|
+
`)]),G(`header`,`
|
|
261
|
+
font-weight: var(--n-title-font-weight);
|
|
262
|
+
font-size: var(--n-title-font-size);
|
|
263
|
+
transition: color .3s var(--n-bezier-ease-out);
|
|
264
|
+
color: var(--n-title-text-color);
|
|
265
|
+
`),G(`description`,`
|
|
266
|
+
margin-top: 8px;
|
|
267
|
+
font-size: var(--n-description-font-size);
|
|
268
|
+
white-space: pre-wrap;
|
|
269
|
+
word-wrap: break-word;
|
|
270
|
+
transition: color .3s var(--n-bezier-ease-out);
|
|
271
|
+
color: var(--n-description-text-color);
|
|
272
|
+
`),G(`content`,`
|
|
273
|
+
line-height: var(--n-line-height);
|
|
274
|
+
margin: 12px 0 0 0;
|
|
275
|
+
font-family: inherit;
|
|
276
|
+
white-space: pre-wrap;
|
|
277
|
+
word-wrap: break-word;
|
|
278
|
+
transition: color .3s var(--n-bezier-ease-out);
|
|
279
|
+
color: var(--n-text-color);
|
|
280
|
+
`,[W(`&:first-child`,`margin: 0;`)])])])])]);function Jr(e){return L(`notification-wrapper`,[W(`&.notification-transition-enter-from, &.notification-transition-leave-to`,`
|
|
281
|
+
transform: translate(${e.split(`-`)[1]===`left`?`calc(-100%)`:`calc(100%)`}, 0);
|
|
282
|
+
`),W(`&.notification-transition-leave-from, &.notification-transition-enter-to`,`
|
|
283
|
+
transform: translate(0, 0);
|
|
284
|
+
`)])}var Yr=oe(`n-notification-api`),Xr=T({name:`NotificationProvider`,props:Object.assign(Object.assign({},fe.props),{containerClass:String,containerStyle:[String,Object],to:[String,Object],scrollable:{type:Boolean,default:!0},max:Number,placement:{type:String,default:`top-right`},keepAliveOnHover:Boolean}),setup(e){let{mergedClsPrefixRef:t}=se(e),n=b([]),r={},i=new Set;function a(t){let a=xe(),o=()=>{i.add(a),r[a]&&r[a].hide()},s=A(Object.assign(Object.assign({},t),{key:a,destroy:o,hide:o,deactivate:o})),{max:c}=e;if(c&&n.value.length-i.size>=c){let e=!1,t=0;for(let a of n.value){if(!i.has(a.key)){r[a.key]&&(a.destroy(),e=!0);break}t++}e||n.value.splice(t,1)}return n.value.push(s),s}let o=[`info`,`success`,`warning`,`error`].map(e=>t=>a(Object.assign(Object.assign({},t),{type:e})));function c(e){i.delete(e),n.value.splice(n.value.findIndex(t=>t.key===e),1)}let l=fe(`Notification`,`-notification`,qr,Lr,e,t),u={create:a,info:o[0],success:o[1],warning:o[2],error:o[3],open:f,destroyAll:p},d=b(0);s(Yr,u),s(zr,{props:e,mergedClsPrefixRef:t,mergedThemeRef:l,wipTransitionCountRef:d});function f(e){return a(e)}function p(){Object.values(n.value).forEach(e=>{e.hide()})}return Object.assign({mergedClsPrefix:t,notificationList:n,notificationRefs:r,handleAfterLeave:c},u)},render(){var e;let{placement:t}=this;return c(P,null,(e=this.$slots).default?.call(e),this.notificationList.length?c(v,{to:this.to??`body`},c(Br,{class:this.containerClass,style:this.containerStyle,scrollable:this.scrollable&&t!==`top`&&t!==`bottom`,placement:t},{default:()=>this.notificationList.map(e=>c(Kr,Object.assign({ref:t=>{let n=e.key;t===null?delete this.notificationRefs[n]:this.notificationRefs[n]=t}},ct(e,[`destroy`,`hide`,`deactivate`]),{internalKey:e.key,onInternalAfterLeave:this.handleAfterLeave,keepAliveOnHover:e.keepAliveOnHover===void 0?this.keepAliveOnHover:e.keepAliveOnHover})))})):null)}});function Zr(e){let{textColor1:t,dividerColor:n,fontWeightStrong:r}=e;return{textColor:t,color:n,fontWeight:r}}var Qr={name:`Divider`,common:Y,self:Zr};function $r(e){let{modalColor:t,textColor1:n,textColor2:r,boxShadow3:i,lineHeight:a,fontWeightStrong:o,dividerColor:s,closeColorHover:c,closeColorPressed:l,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,borderRadius:p,primaryColorHover:m}=e;return{bodyPadding:`16px 24px`,borderRadius:p,headerPadding:`16px 24px`,footerPadding:`16px 24px`,color:t,textColor:r,titleTextColor:n,titleFontSize:`18px`,titleFontWeight:o,boxShadow:i,lineHeight:a,headerBorderBottom:`1px solid ${s}`,footerBorderTop:`1px solid ${s}`,closeIconColor:u,closeIconColorHover:d,closeIconColorPressed:f,closeSize:`22px`,closeIconSize:`18px`,closeColorHover:c,closeColorPressed:l,closeBorderRadius:p,resizableTriggerColorHover:m}}U({name:`Drawer`,common:z,peers:{Scrollbar:Ee},self:$r});var ei={name:`Drawer`,common:Y,peers:{Scrollbar:X},self:$r},ti={actionMargin:`0 0 0 20px`,actionMarginRtl:`0 20px 0 0`},ni={name:`DynamicInput`,common:Y,peers:{Input:Q,Button:$},self(){return ti}},ri={name:`Space`,self(){return vt}},ii={name:`DynamicTags`,common:Y,peers:{Input:Q,Button:$,Tag:on,Space:ri},self(){return{inputWidth:`64px`}}},ai={name:`Element`,common:Y},oi={gapSmall:`4px 8px`,gapMedium:`8px 12px`,gapLarge:`12px 16px`},si={name:`Flex`,self(){return oi}},ci={name:`ButtonGroup`,common:Y},li={name:`Form`,common:Y,self:kt},ui={name:`GradientText`,common:Y,self(e){let{primaryColor:t,successColor:n,warningColor:r,errorColor:i,infoColor:a,primaryColorSuppl:o,successColorSuppl:s,warningColorSuppl:c,errorColorSuppl:l,infoColorSuppl:u,fontWeightStrong:d}=e;return{fontWeight:d,rotate:`252deg`,colorStartPrimary:t,colorEndPrimary:o,colorStartInfo:a,colorEndInfo:u,colorStartWarning:r,colorEndWarning:c,colorStartError:i,colorEndError:l,colorStartSuccess:n,colorEndSuccess:s}}},di={name:`InputNumber`,common:Y,peers:{Button:$,Input:Q},self(e){let{textColorDisabled:t}=e;return{iconColorDisabled:t}}};function fi(){return{inputWidthSmall:`24px`,inputWidthMedium:`30px`,inputWidthLarge:`36px`,gapSmall:`8px`,gapMedium:`8px`,gapLarge:`8px`}}U({name:`InputOtp`,common:z,peers:{Input:lt},self:fi});var pi={name:`InputOtp`,common:Y,peers:{Input:Q},self:fi},mi={name:`Layout`,common:Y,peers:{Scrollbar:X},self(e){let{textColor2:t,bodyColor:n,popoverColor:r,cardColor:i,dividerColor:a,scrollbarColor:o,scrollbarColorHover:s}=e;return{textColor:t,textColorInverted:t,color:n,colorEmbedded:n,headerColor:i,headerColorInverted:i,footerColor:i,footerColorInverted:i,headerBorderColor:a,headerBorderColorInverted:a,footerBorderColor:a,footerBorderColorInverted:a,siderBorderColor:a,siderBorderColorInverted:a,siderColor:i,siderColorInverted:i,siderToggleButtonBorder:`1px solid transparent`,siderToggleButtonColor:r,siderToggleButtonIconColor:t,siderToggleButtonIconColorInverted:t,siderToggleBarColor:H(n,o),siderToggleBarColorHover:H(n,s),__invertScrollbar:`false`}}},hi={name:`Row`,common:Y};function gi(e){let{textColor2:t,cardColor:n,modalColor:r,popoverColor:i,dividerColor:a,borderRadius:o,fontSize:s,hoverColor:c}=e;return{textColor:t,color:n,colorHover:c,colorModal:r,colorHoverModal:H(r,c),colorPopover:i,colorHoverPopover:H(i,c),borderColor:a,borderColorModal:H(r,a),borderColorPopover:H(i,a),borderRadius:o,fontSize:s}}var _i={name:`List`,common:Y,self:gi},vi={name:`Log`,common:Y,peers:{Scrollbar:X,Code:Pn},self(e){let{textColor2:t,inputColor:n,fontSize:r,primaryColor:i}=e;return{loaderFontSize:r,loaderTextColor:t,loaderColor:n,loaderBorder:`1px solid #0000`,loadingColor:i}}},yi={name:`Mention`,common:Y,peers:{InternalSelectMenu:rn,Input:Q},self(e){let{boxShadow2:t}=e;return{menuBoxShadow:t}}};function bi(e,t,n,r){return{itemColorHoverInverted:`#0000`,itemColorActiveInverted:t,itemColorActiveHoverInverted:t,itemColorActiveCollapsedInverted:t,itemTextColorInverted:e,itemTextColorHoverInverted:n,itemTextColorChildActiveInverted:n,itemTextColorChildActiveHoverInverted:n,itemTextColorActiveInverted:n,itemTextColorActiveHoverInverted:n,itemTextColorHorizontalInverted:e,itemTextColorHoverHorizontalInverted:n,itemTextColorChildActiveHorizontalInverted:n,itemTextColorChildActiveHoverHorizontalInverted:n,itemTextColorActiveHorizontalInverted:n,itemTextColorActiveHoverHorizontalInverted:n,itemIconColorInverted:e,itemIconColorHoverInverted:n,itemIconColorActiveInverted:n,itemIconColorActiveHoverInverted:n,itemIconColorChildActiveInverted:n,itemIconColorChildActiveHoverInverted:n,itemIconColorCollapsedInverted:e,itemIconColorHorizontalInverted:e,itemIconColorHoverHorizontalInverted:n,itemIconColorActiveHorizontalInverted:n,itemIconColorActiveHoverHorizontalInverted:n,itemIconColorChildActiveHorizontalInverted:n,itemIconColorChildActiveHoverHorizontalInverted:n,arrowColorInverted:e,arrowColorHoverInverted:n,arrowColorActiveInverted:n,arrowColorActiveHoverInverted:n,arrowColorChildActiveInverted:n,arrowColorChildActiveHoverInverted:n,groupTextColorInverted:r}}function xi(e){let{borderRadius:t,textColor3:n,primaryColor:r,textColor2:i,textColor1:a,fontSize:o,dividerColor:s,hoverColor:c,primaryColorHover:l}=e;return Object.assign({borderRadius:t,color:`#0000`,groupTextColor:n,itemColorHover:c,itemColorActive:B(r,{alpha:.1}),itemColorActiveHover:B(r,{alpha:.1}),itemColorActiveCollapsed:B(r,{alpha:.1}),itemTextColor:i,itemTextColorHover:i,itemTextColorActive:r,itemTextColorActiveHover:r,itemTextColorChildActive:r,itemTextColorChildActiveHover:r,itemTextColorHorizontal:i,itemTextColorHoverHorizontal:l,itemTextColorActiveHorizontal:r,itemTextColorActiveHoverHorizontal:r,itemTextColorChildActiveHorizontal:r,itemTextColorChildActiveHoverHorizontal:r,itemIconColor:a,itemIconColorHover:a,itemIconColorActive:r,itemIconColorActiveHover:r,itemIconColorChildActive:r,itemIconColorChildActiveHover:r,itemIconColorCollapsed:a,itemIconColorHorizontal:a,itemIconColorHoverHorizontal:l,itemIconColorActiveHorizontal:r,itemIconColorActiveHoverHorizontal:r,itemIconColorChildActiveHorizontal:r,itemIconColorChildActiveHoverHorizontal:r,itemHeight:`42px`,arrowColor:i,arrowColorHover:i,arrowColorActive:r,arrowColorActiveHover:r,arrowColorChildActive:r,arrowColorChildActiveHover:r,colorInverted:`#0000`,borderColorHorizontal:`#0000`,fontSize:o,dividerColor:s},bi(`#BBB`,r,`#FFF`,`#AAA`))}U({name:`Menu`,common:z,peers:{Tooltip:Tt,Dropdown:Ct},self:xi});var Si={name:`Menu`,common:Y,peers:{Tooltip:Zn,Dropdown:Xn},self(e){let{primaryColor:t,primaryColorSuppl:n}=e,r=xi(e);return r.itemColorActive=B(t,{alpha:.15}),r.itemColorActiveHover=B(t,{alpha:.15}),r.itemColorActiveCollapsed=B(t,{alpha:.15}),r.itemColorActiveInverted=n,r.itemColorActiveHoverInverted=n,r.itemColorActiveCollapsedInverted=n,r}},Ci={titleFontSize:`18px`,backSize:`22px`};function wi(e){let{textColor1:t,textColor2:n,textColor3:r,fontSize:i,fontWeightStrong:a,primaryColorHover:o,primaryColorPressed:s}=e;return Object.assign(Object.assign({},Ci),{titleFontWeight:a,fontSize:i,titleTextColor:t,backColor:n,backColorHover:o,backColorPressed:s,subtitleTextColor:r})}U({name:`PageHeader`,common:z,self:wi});var Ti={name:`PageHeader`,common:Y,self:wi},Ei={name:`Popconfirm`,common:Y,peers:{Button:$,Popover:an},self:st},Di={name:`Progress`,common:Y,self(e){let t=mt(e);return t.textColorLineInner=`rgb(0, 0, 0)`,t.lineBgProcessing=`linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)`,t}},Oi={name:`Rate`,common:Y,self(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#CCAA33`,itemSize:`20px`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}},ki={titleFontSizeSmall:`26px`,titleFontSizeMedium:`32px`,titleFontSizeLarge:`40px`,titleFontSizeHuge:`48px`,fontSizeSmall:`14px`,fontSizeMedium:`14px`,fontSizeLarge:`15px`,fontSizeHuge:`16px`,iconSizeSmall:`64px`,iconSizeMedium:`80px`,iconSizeLarge:`100px`,iconSizeHuge:`125px`,iconColor418:void 0,iconColor404:void 0,iconColor403:void 0,iconColor500:void 0};function Ai(e){let{textColor2:t,textColor1:n,errorColor:r,successColor:i,infoColor:a,warningColor:o,lineHeight:s,fontWeightStrong:c}=e;return Object.assign(Object.assign({},ki),{lineHeight:s,titleFontWeight:c,titleTextColor:n,textColor:t,iconColorError:r,iconColorSuccess:i,iconColorInfo:a,iconColorWarning:o})}var ji={name:`Result`,common:Y,self:Ai},Mi={railHeight:`4px`,railWidthVertical:`4px`,handleSize:`18px`,dotHeight:`8px`,dotWidth:`8px`,dotBorderRadius:`4px`},Ni={name:`Slider`,common:Y,self(e){let{railColor:t,modalColor:n,primaryColorSuppl:r,popoverColor:i,textColor2:a,cardColor:o,borderRadius:s,fontSize:c,opacityDisabled:l}=e;return Object.assign(Object.assign({},Mi),{fontSize:c,markFontSize:c,railColor:t,railColorHover:t,fillColor:r,fillColorHover:r,opacityDisabled:l,handleColor:`#FFF`,dotColor:o,dotColorModal:n,dotColorPopover:i,handleBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowHover:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowActive:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,handleBoxShadowFocus:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,indicatorColor:i,indicatorBoxShadow:`0 2px 8px 0 rgba(0, 0, 0, 0.12)`,indicatorTextColor:a,indicatorBorderRadius:s,dotBorder:`2px solid ${t}`,dotBorderActive:`2px solid ${r}`,dotBoxShadow:``})}},Pi={name:`Spin`,common:Y,self:At};function Fi(e){let{textColor2:t,textColor3:n,fontSize:r,fontWeight:i}=e;return{labelFontSize:r,labelFontWeight:i,valueFontWeight:i,valueFontSize:`24px`,labelTextColor:n,valuePrefixTextColor:t,valueSuffixTextColor:t,valueTextColor:t}}var Ii={name:`Statistic`,common:Y,self:Fi},Li={stepHeaderFontSizeSmall:`14px`,stepHeaderFontSizeMedium:`16px`,indicatorIndexFontSizeSmall:`14px`,indicatorIndexFontSizeMedium:`16px`,indicatorSizeSmall:`22px`,indicatorSizeMedium:`28px`,indicatorIconSizeSmall:`14px`,indicatorIconSizeMedium:`18px`};function Ri(e){let{fontWeightStrong:t,baseColor:n,textColorDisabled:r,primaryColor:i,errorColor:a,textColor1:o,textColor2:s}=e;return Object.assign(Object.assign({},Li),{stepHeaderFontWeight:t,indicatorTextColorProcess:n,indicatorTextColorWait:r,indicatorTextColorFinish:i,indicatorTextColorError:a,indicatorBorderColorProcess:i,indicatorBorderColorWait:r,indicatorBorderColorFinish:i,indicatorBorderColorError:a,indicatorColorProcess:i,indicatorColorWait:`#0000`,indicatorColorFinish:`#0000`,indicatorColorError:`#0000`,splitorColorProcess:r,splitorColorWait:r,splitorColorFinish:i,splitorColorError:r,headerTextColorProcess:o,headerTextColorWait:r,headerTextColorFinish:r,headerTextColorError:a,descriptionTextColorProcess:s,descriptionTextColorWait:r,descriptionTextColorFinish:r,descriptionTextColorError:a})}var zi={name:`Steps`,common:Y,self:Ri},Bi={name:`Switch`,common:Y,self(e){let{primaryColorSuppl:t,opacityDisabled:n,borderRadius:r,primaryColor:i,textColor2:a,baseColor:o}=e;return Object.assign(Object.assign({},Mt),{iconColor:o,textColor:a,loadingColor:t,opacityDisabled:n,railColor:`rgba(255, 255, 255, .20)`,railColorActive:t,buttonBoxShadow:`0px 2px 4px 0 rgba(0, 0, 0, 0.4)`,buttonColor:`#FFF`,railBorderRadiusSmall:r,railBorderRadiusMedium:r,railBorderRadiusLarge:r,buttonBorderRadiusSmall:r,buttonBorderRadiusMedium:r,buttonBorderRadiusLarge:r,boxShadowFocus:`0 0 8px 0 ${B(i,{alpha:.3})}`})}},Vi={thPaddingSmall:`6px`,thPaddingMedium:`12px`,thPaddingLarge:`12px`,tdPaddingSmall:`6px`,tdPaddingMedium:`12px`,tdPaddingLarge:`12px`};function Hi(e){let{dividerColor:t,cardColor:n,modalColor:r,popoverColor:i,tableHeaderColor:a,tableColorStriped:o,textColor1:s,textColor2:c,borderRadius:l,fontWeightStrong:u,lineHeight:d,fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m}=e;return Object.assign(Object.assign({},Vi),{fontSizeSmall:f,fontSizeMedium:p,fontSizeLarge:m,lineHeight:d,borderRadius:l,borderColor:H(n,t),borderColorModal:H(r,t),borderColorPopover:H(i,t),tdColor:n,tdColorModal:r,tdColorPopover:i,tdColorStriped:H(n,o),tdColorStripedModal:H(r,o),tdColorStripedPopover:H(i,o),thColor:H(n,a),thColorModal:H(r,a),thColorPopover:H(i,a),thTextColor:s,tdTextColor:c,thFontWeight:u})}var Ui={name:`Table`,common:Y,self:Hi},Wi={name:`Tabs`,common:Y,self(e){let t=Nt(e),{inputColor:n}=e;return t.colorSegment=n,t.tabColorSegment=n,t}};function Gi(e){let{textColor1:t,textColor2:n,fontWeightStrong:r,fontSize:i}=e;return{fontSize:i,titleTextColor:t,textColor:n,titleFontWeight:r}}var Ki={name:`Thing`,common:Y,self:Gi},qi={titleMarginMedium:`0 0 6px 0`,titleMarginLarge:`-2px 0 6px 0`,titleFontSizeMedium:`14px`,titleFontSizeLarge:`16px`,iconSizeMedium:`14px`,iconSizeLarge:`14px`},Ji={name:`Timeline`,common:Y,self(e){let{textColor3:t,infoColorSuppl:n,errorColorSuppl:r,successColorSuppl:i,warningColorSuppl:a,textColor1:o,textColor2:s,railColor:c,fontWeightStrong:l,fontSize:u}=e;return Object.assign(Object.assign({},qi),{contentFontSize:u,titleFontWeight:l,circleBorder:`2px solid ${t}`,circleBorderInfo:`2px solid ${n}`,circleBorderError:`2px solid ${r}`,circleBorderSuccess:`2px solid ${i}`,circleBorderWarning:`2px solid ${a}`,iconColor:t,iconColorInfo:n,iconColorError:r,iconColorSuccess:i,iconColorWarning:a,titleTextColor:o,contentTextColor:s,metaTextColor:t,lineColor:c})}},Yi={extraFontSizeSmall:`12px`,extraFontSizeMedium:`12px`,extraFontSizeLarge:`14px`,titleFontSizeSmall:`14px`,titleFontSizeMedium:`16px`,titleFontSizeLarge:`16px`,closeSize:`20px`,closeIconSize:`16px`,headerHeightSmall:`44px`,headerHeightMedium:`44px`,headerHeightLarge:`50px`},Xi={name:`Transfer`,common:Y,peers:{Checkbox:jn,Scrollbar:X,Input:Q,Empty:Z,Button:$},self(e){let{fontWeight:t,fontSizeLarge:n,fontSizeMedium:r,fontSizeSmall:i,heightLarge:a,heightMedium:o,borderRadius:s,inputColor:c,tableHeaderColor:l,textColor1:u,textColorDisabled:d,textColor2:f,textColor3:p,hoverColor:m,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y,dividerColor:b}=e;return Object.assign(Object.assign({},Yi),{itemHeightSmall:o,itemHeightMedium:o,itemHeightLarge:a,fontSizeSmall:i,fontSizeMedium:r,fontSizeLarge:n,borderRadius:s,dividerColor:b,borderColor:`#0000`,listColor:c,headerColor:l,titleTextColor:u,titleTextColorDisabled:d,extraTextColor:p,extraTextColorDisabled:d,itemTextColor:f,itemTextColorDisabled:d,itemColorPending:m,titleFontWeight:t,closeColorHover:h,closeColorPressed:g,closeIconColor:_,closeIconColorHover:v,closeIconColorPressed:y})}},Zi={name:`Tree`,common:Y,peers:{Checkbox:jn,Scrollbar:X,Empty:Z},self(e){let{primaryColor:t}=e,n=bt(e);return n.nodeColorActive=B(t,{alpha:.15}),n}},Qi={name:`TreeSelect`,common:Y,peers:{Tree:Zi,Empty:Z,InternalSelection:sn}},$i={headerFontSize1:`30px`,headerFontSize2:`22px`,headerFontSize3:`18px`,headerFontSize4:`16px`,headerFontSize5:`16px`,headerFontSize6:`16px`,headerMargin1:`28px 0 20px 0`,headerMargin2:`28px 0 20px 0`,headerMargin3:`28px 0 20px 0`,headerMargin4:`28px 0 18px 0`,headerMargin5:`28px 0 18px 0`,headerMargin6:`28px 0 18px 0`,headerPrefixWidth1:`16px`,headerPrefixWidth2:`16px`,headerPrefixWidth3:`12px`,headerPrefixWidth4:`12px`,headerPrefixWidth5:`12px`,headerPrefixWidth6:`12px`,headerBarWidth1:`4px`,headerBarWidth2:`4px`,headerBarWidth3:`3px`,headerBarWidth4:`3px`,headerBarWidth5:`3px`,headerBarWidth6:`3px`,pMargin:`16px 0 16px 0`,liMargin:`.25em 0 0 0`,olPadding:`0 0 0 2em`,ulPadding:`0 0 0 2em`};function ea(e){let{primaryColor:t,textColor2:n,borderColor:r,lineHeight:i,fontSize:a,borderRadiusSmall:o,dividerColor:s,fontWeightStrong:c,textColor1:l,textColor3:u,infoColor:d,warningColor:f,errorColor:p,successColor:m,codeColor:h}=e;return Object.assign(Object.assign({},$i),{aTextColor:t,blockquoteTextColor:n,blockquotePrefixColor:r,blockquoteLineHeight:i,blockquoteFontSize:a,codeBorderRadius:o,liTextColor:n,liLineHeight:i,liFontSize:a,hrColor:s,headerFontWeight:c,headerTextColor:l,pTextColor:n,pTextColor1Depth:l,pTextColor2Depth:n,pTextColor3Depth:u,pLineHeight:i,pFontSize:a,headerBarColor:t,headerBarColorPrimary:t,headerBarColorInfo:d,headerBarColorError:p,headerBarColorWarning:f,headerBarColorSuccess:m,textColor:n,textColor1Depth:l,textColor2Depth:n,textColor3Depth:u,textColorPrimary:t,textColorInfo:d,textColorSuccess:m,textColorWarning:f,textColorError:p,codeTextColor:n,codeColor:h,codeBorder:`1px solid #0000`})}var ta={name:`Typography`,common:Y,self:ea},na={name:`Upload`,common:Y,peers:{Button:$,Progress:Di},self(e){let{errorColor:t}=e,n=ht(e);return n.itemColorHoverError=B(t,{alpha:.09}),n}},ra={name:`Watermark`,common:Y,self(e){let{fontFamily:t}=e;return{fontFamily:t}}},ia={name:`FloatButton`,common:Y,self(e){let{popoverColor:t,textColor2:n,buttonColor2Hover:r,buttonColor2Pressed:i,primaryColor:a,primaryColorHover:o,primaryColorPressed:s,baseColor:c,borderRadius:l}=e;return{color:t,textColor:n,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`,boxShadowHover:`0 2px 12px 0px rgba(0, 0, 0, .18)`,boxShadowPressed:`0 2px 12px 0px rgba(0, 0, 0, .18)`,colorHover:r,colorPressed:i,colorPrimary:a,colorPrimaryHover:o,colorPrimaryPressed:s,textColorPrimary:c,borderRadiusSquare:l}}};function aa(e){let{borderRadius:t,fontSizeMini:n,fontSizeTiny:r,fontSizeSmall:i,fontWeight:a,textColor2:o,cardColor:s,buttonColor2Hover:c}=e;return{activeColors:[`#9be9a8`,`#40c463`,`#30a14e`,`#216e39`],borderRadius:t,borderColor:s,textColor:o,mininumColor:c,fontWeight:a,loadingColorStart:`rgba(0, 0, 0, 0.06)`,loadingColorEnd:`rgba(0, 0, 0, 0.12)`,rectSizeSmall:`10px`,rectSizeMedium:`11px`,rectSizeLarge:`12px`,borderRadiusSmall:`2px`,borderRadiusMedium:`2px`,borderRadiusLarge:`2px`,xGapSmall:`2px`,xGapMedium:`3px`,xGapLarge:`3px`,yGapSmall:`2px`,yGapMedium:`3px`,yGapLarge:`3px`,fontSizeSmall:r,fontSizeMedium:n,fontSizeLarge:i}}U({name:`Heatmap`,common:z,self:aa});var oa={name:`Heatmap`,common:Y,self(e){let t=aa(e);return Object.assign(Object.assign({},t),{activeColors:[`#0d4429`,`#006d32`,`#26a641`,`#39d353`],mininumColor:`rgba(255, 255, 255, 0.1)`,loadingColorStart:`rgba(255, 255, 255, 0.12)`,loadingColorEnd:`rgba(255, 255, 255, 0.18)`})}};function sa(e){let{primaryColor:t,baseColor:n}=e;return{color:t,iconColor:n}}var ca={name:`IconWrapper`,common:Y,self:sa},la={name:`Image`,common:Y,peers:{Tooltip:Zn},self:e=>{let{textColor2:t}=e;return{toolbarIconColor:t,toolbarColor:`rgba(0, 0, 0, .35)`,toolbarBoxShadow:`none`,toolbarBorderRadius:`24px`}}},ua={extraFontSize:`12px`,width:`440px`},da={name:`Transfer`,common:Y,peers:{Checkbox:jn,Scrollbar:X,Input:Q,Empty:Z,Button:$},self(e){let{iconColorDisabled:t,iconColor:n,fontWeight:r,fontSizeLarge:i,fontSizeMedium:a,fontSizeSmall:o,heightLarge:s,heightMedium:c,heightSmall:l,borderRadius:u,inputColor:d,tableHeaderColor:f,textColor1:p,textColorDisabled:m,textColor2:h,hoverColor:g}=e;return Object.assign(Object.assign({},ua),{itemHeightSmall:l,itemHeightMedium:c,itemHeightLarge:s,fontSizeSmall:o,fontSizeMedium:a,fontSizeLarge:i,borderRadius:u,borderColor:`#0000`,listColor:d,headerColor:f,titleTextColor:p,titleTextColorDisabled:m,extraTextColor:h,filterDividerColor:`#0000`,itemTextColor:h,itemTextColorDisabled:m,itemColorPending:g,titleFontWeight:r,iconColor:n,iconColorDisabled:t})}};function fa(){return{}}var pa={name:`dark`,common:Y,Alert:ln,Anchor:fn,AutoComplete:hn,Avatar:vn,AvatarGroup:bn,BackTop:Sn,Badge:Cn,Breadcrumb:wn,Button:$,ButtonGroup:ci,Calendar:Dn,Card:On,Carousel:An,Cascader:Nn,Checkbox:jn,Code:Pn,Collapse:In,CollapseTransition:Rn,ColorPicker:Bn,DataTable:or,DatePicker:mr,Descriptions:_r,Dialog:vr,Divider:Qr,Drawer:ei,Dropdown:Xn,DynamicInput:ni,DynamicTags:ii,Element:ai,Empty:Z,Ellipsis:Qn,Equation:{name:`Equation`,common:Y,self:()=>({})},Flex:si,Form:li,GradientText:ui,Heatmap:oa,Icon:sr,IconWrapper:ca,Image:la,Input:Q,InputNumber:di,InputOtp:pi,LegacyTransfer:da,Layout:mi,List:_i,LoadingBar:Cr,Log:vi,Menu:Si,Mention:yi,Message:Dr,Modal:yr,Notification:Rr,PageHeader:Ti,Pagination:Yn,Popconfirm:Ei,Popover:an,Popselect:Hn,Progress:Di,QrCode:{name:`QrCode`,common:Y,self:e=>({borderRadius:e.borderRadius})},Radio:tr,Rate:Oi,Result:ji,Row:hi,Scrollbar:X,Select:Gn,Skeleton:{name:`Skeleton`,common:Y,self(e){let{heightSmall:t,heightMedium:n,heightLarge:r,borderRadius:i}=e;return{color:`rgba(255, 255, 255, 0.12)`,colorEnd:`rgba(255, 255, 255, 0.18)`,borderRadius:i,heightSmall:t,heightMedium:n,heightLarge:r}}},Slider:Ni,Space:ri,Spin:Pi,Statistic:Ii,Steps:zi,Switch:Bi,Table:Ui,Tabs:Wi,Tag:on,Thing:Ki,TimePicker:dr,Timeline:Ji,Tooltip:Zn,Transfer:Xi,Tree:Zi,TreeSelect:Qi,Typography:ta,Upload:na,Watermark:ra,Split:{name:`Split`,common:Y},FloatButton:ia,FloatButtonGroup:{name:`FloatButtonGroup`,common:Y,self(e){let{popoverColor:t,dividerColor:n,borderRadius:r}=e;return{color:t,buttonBorderColor:n,borderRadiusSquare:r,boxShadow:`0 2px 8px 0px rgba(0, 0, 0, .12)`}}},Marquee:{name:`Marquee`,common:Y,self:fa}},ma={common:{primaryColor:`#333333`,primaryColorHover:`#1a1a1a`,primaryColorPressed:`#000000`,primaryColorSuppl:`#333333`,bodyColor:`#fafafa`,cardColor:`#ffffff`,modalColor:`#ffffff`,popoverColor:`#ffffff`,tableColor:`#ffffff`,inputColor:`#ffffff`,actionColor:`#f0f0f0`,textColorBase:`#1a1a1a`,textColor1:`#1a1a1a`,textColor2:`#666666`,textColor3:`#999999`,dividerColor:`#e0e0e0`,borderColor:`#e0e0e0`,hoverColor:`rgba(0, 0, 0, 0.04)`,borderRadius:`8px`,borderRadiusSmall:`6px`,fontSize:`14px`,fontSizeMedium:`14px`,heightMedium:`36px`,fontFamily:`Inter, system-ui, -apple-system, sans-serif`,fontFamilyMono:`JetBrains Mono, Fira Code, Consolas, monospace`},Layout:{color:`#fafafa`,siderColor:`#f5f5f5`,headerColor:`#fafafa`},Menu:{itemTextColorActive:`#1a1a1a`,itemTextColorActiveHover:`#1a1a1a`,itemTextColorChildActive:`#1a1a1a`,itemIconColorActive:`#1a1a1a`,itemIconColorActiveHover:`#000000`,itemColorActive:`rgba(0, 0, 0, 0.06)`,itemColorActiveHover:`rgba(0, 0, 0, 0.1)`,arrowColorActive:`#1a1a1a`},Button:{textColorPrimary:`#ffffff`,colorPrimary:`#333333`,colorHoverPrimary:`#1a1a1a`,colorPressedPrimary:`#000000`},Input:{color:`#ffffff`,colorFocus:`#ffffff`,border:`1px solid #e0e0e0`,borderHover:`1px solid #999999`,borderFocus:`1px solid #333333`,placeholderColor:`#999999`,caretColor:`#1a1a1a`},Card:{color:`#ffffff`,borderColor:`#e0e0e0`},Modal:{color:`#ffffff`},Tag:{borderRadius:`6px`}},ha={common:{primaryColor:`#e0e0e0`,primaryColorHover:`#f5f5f5`,primaryColorPressed:`#ffffff`,primaryColorSuppl:`#e0e0e0`,bodyColor:`#1a1a1a`,cardColor:`#2a2a2a`,modalColor:`#2a2a2a`,popoverColor:`#2a2a2a`,tableColor:`#2a2a2a`,inputColor:`#2a2a2a`,actionColor:`#252525`,textColorBase:`#e0e0e0`,textColor1:`#e0e0e0`,textColor2:`#a0a0a0`,textColor3:`#666666`,dividerColor:`#3a3a3a`,borderColor:`#3a3a3a`,hoverColor:`rgba(255, 255, 255, 0.06)`,borderRadius:`8px`,borderRadiusSmall:`6px`,fontSize:`14px`,fontSizeMedium:`14px`,heightMedium:`36px`,fontFamily:`Inter, system-ui, -apple-system, sans-serif`,fontFamilyMono:`JetBrains Mono, Fira Code, Consolas, monospace`},Layout:{color:`#1a1a1a`,siderColor:`#202020`,headerColor:`#1a1a1a`},Menu:{itemTextColorActive:`#e0e0e0`,itemTextColorActiveHover:`#e0e0e0`,itemTextColorChildActive:`#e0e0e0`,itemIconColorActive:`#e0e0e0`,itemIconColorActiveHover:`#ffffff`,itemColorActive:`rgba(255, 255, 255, 0.08)`,itemColorActiveHover:`rgba(255, 255, 255, 0.12)`,arrowColorActive:`#e0e0e0`},Button:{textColorPrimary:`#1a1a1a`,colorPrimary:`#e0e0e0`,colorHoverPrimary:`#f5f5f5`,colorPressedPrimary:`#ffffff`},Input:{color:`#2a2a2a`,colorFocus:`#2a2a2a`,border:`1px solid #3a3a3a`,borderHover:`1px solid #666666`,borderFocus:`1px solid #e0e0e0`,placeholderColor:`#666666`,caretColor:`#e0e0e0`},Card:{color:`#2a2a2a`,borderColor:`#3a3a3a`},Modal:{color:`#2a2a2a`},Tag:{borderRadius:`6px`},Switch:{railColor:`#3a3a3a`,railColorActive:`#66bb6a`,loadingColor:`#e0e0e0`,opacityDisabled:.4}};function ga(e){return e?ha:ma}var _a={class:`model-selector`},va={class:`model-label`},ya=[`title`],ba={class:`model-list`},xa=[`onClick`],Sa={class:`model-group-label`},Ca={class:`model-group-count`},wa={class:`model-group-items`},Ta=[`onClick`],Ea={class:`model-item-name`},Da={key:0,class:`model-check`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Oa={key:0,class:`model-empty`},ka=F(T({__name:`ModelSelector`,setup(a){let{t:s}=ae(),c=Ft(),l=b(!1),d=b(``),f=b({}),p=n(()=>{let e=d.value.toLowerCase().trim();return e?c.modelGroups.map(t=>({...t,models:t.models.filter(t=>t.toLowerCase().includes(e))})).filter(t=>t.models.length>0||t.label.toLowerCase().includes(e)):c.modelGroups});function m(e){f.value[e]=!f.value[e]}function h(e){return!!f.value[e]}function g(e,t){c.switchModel(e,t),l.value=!1,d.value=``}function _(){f.value={},d.value=``,l.value=!0}return(n,a)=>(o(),r(`div`,_a,[N(`div`,va,S(M(s)(`models.title`)),1),N(`button`,{class:`model-trigger`,onClick:_},[N(`span`,{class:`model-name`,title:M(c).selectedModel},S(M(c).selectedModel||`—`),9,ya),a[2]||=N(`svg`,{class:`model-arrow`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`polyline`,{points:`6 9 12 15 18 9`})],-1)]),t(M(Ue),{show:l.value,"onUpdate:show":a[1]||=e=>l.value=e,preset:`card`,title:M(s)(`models.title`),style:{width:`min(480px, calc(100vw - 32px))`},"mask-closable":!0},{default:u(()=>[t(M(dt),{value:d.value,"onUpdate:value":a[0]||=e=>d.value=e,placeholder:M(s)(`models.searchPlaceholder`),clearable:``,size:`small`,class:`model-search`},null,8,[`value`,`placeholder`]),N(`div`,ba,[(o(!0),r(P,null,ee(p.value,t=>(o(),r(`div`,{key:t.provider,class:`model-group`},[N(`div`,{class:`model-group-header`,onClick:e=>m(t.provider)},[(o(),r(`svg`,{class:O([`model-group-arrow`,{collapsed:h(t.provider)}]),width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...a[3]||=[N(`polyline`,{points:`6 9 12 15 18 9`},null,-1)]],2)),N(`span`,Sa,S(t.label),1),N(`span`,Ca,S(t.models.length),1)],8,xa),e(N(`div`,wa,[(o(!0),r(P,null,ee(t.models,e=>(o(),r(`div`,{key:e,class:O([`model-item`,{active:e===M(c).selectedModel&&t.provider===M(c).selectedProvider}]),onClick:n=>g(e,t.provider)},[N(`span`,Ea,S(e),1),e===M(c).selectedModel&&t.provider===M(c).selectedProvider?(o(),r(`svg`,Da,[...a[4]||=[N(`polyline`,{points:`20 6 9 17 4 12`},null,-1)]])):i(``,!0)],10,Ta))),128))],512),[[C,!h(t.provider)]])]))),128)),p.value.length===0?(o(),r(`div`,Oa,S(d.value?`No results`:`No models`),1)):i(``,!0)])]),_:1},8,[`show`,`title`])]))}}),[[`__scopeId`,`data-v-96c86be9`]]),Aa={class:`profile-selector`},ja={class:`selector-label`},Ma=F(T({__name:`ProfileSelector`,setup(e){let{t:i}=ae(),a=Ot(),s=It(),c=n(()=>s.profiles.map(e=>({label:e.name,value:e.name}))),l=n(()=>s.activeProfile?.name??``);function u(e){typeof e==`string`&&e!==l.value&&s.switchProfile(e).then(t=>{t&&(a.success(i(`profiles.switchSuccess`,{name:e})),window.location.reload())})}return p(()=>{s.profiles.length===0&&s.fetchProfiles()}),(e,n)=>(o(),r(`div`,Aa,[N(`div`,ja,S(M(i)(`sidebar.profiles`)),1),t(M(et),{value:l.value,options:c.value,loading:M(s).switching,size:`small`,"onUpdate:value":u},null,8,[`value`,`options`,`loading`])]))}}),[[`__scopeId`,`data-v-64eabb47`]]),Na=T({__name:`LanguageSwitch`,setup(e){let{locale:t}=ae(),n=[{label:`中文`,value:`zh`},{label:`English`,value:`en`},{label:`日本語`,value:`ja`},{label:`한국어`,value:`ko`},{label:`Français`,value:`fr`},{label:`Español`,value:`es`},{label:`Deutsch`,value:`de`},{label:`Português`,value:`pt`}];function r(e){t.value=e,localStorage.setItem(`hermes_locale`,e)}return(e,i)=>(o(),f(M(et),{value:M(t),options:n,size:`tiny`,"consistent-menu-width":!1,class:`input-sm`,"onUpdate:value":r},null,8,[`value`]))}}),Pa=[`title`],Fa={key:0,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},Ia={key:1,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},La=F(T({__name:`ThemeSwitch`,setup(e){let{isDark:t,toggleTheme:n}=Pt();return(e,i)=>(o(),r(`button`,{class:`theme-switch`,title:M(t)?`Light mode`:`Dark mode`,onClick:i[0]||=(...e)=>M(n)&&M(n)(...e)},[M(t)?(o(),r(`svg`,Fa,[...i[1]||=[l(`<circle cx="12" cy="12" r="5" data-v-c304cee6></circle><line x1="12" y1="1" x2="12" y2="3" data-v-c304cee6></line><line x1="12" y1="21" x2="12" y2="23" data-v-c304cee6></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-c304cee6></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-c304cee6></line><line x1="1" y1="12" x2="3" y2="12" data-v-c304cee6></line><line x1="21" y1="12" x2="23" y2="12" data-v-c304cee6></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-c304cee6></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-c304cee6></line>`,9)]])):(o(),r(`svg`,Ia,[...i[2]||=[N(`path`,{d:`M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z`},null,-1)]]))],8,Pa))}}),[[`__scopeId`,`data-v-c304cee6`]]),Ra=b(!1);function za(){function e(){Ra.value=!0}function t(){Ra.value=!1}return{sessionSearchOpen:Ra,openSessionSearch:e,closeSessionSearch:t}}var Ba=`/assets/dance-light-424rxYpN.mp4`,Va=`/assets/dance-dark-BBm98kyn.mp4`,Ha=[{version:`0.4.4`,date:`2026-04-23`,changes:[`changelog.new_0_4_4_1`,`changelog.new_0_4_4_2`,`changelog.new_0_4_4_3`,`changelog.new_0_4_4_4`,`changelog.new_0_4_4_5`]},{version:`0.4.3`,date:`2026-04-22`,changes:[`changelog.new_0_4_3_1`,`changelog.new_0_4_3_2`,`changelog.new_0_4_3_3`,`changelog.new_0_4_3_4`]},{version:`0.4.2`,date:`2026-03-20`,changes:[`changelog.new_0_4_2_1`,`changelog.new_0_4_2_2`,`changelog.new_0_4_2_3`,`changelog.new_0_4_2_4`,`changelog.new_0_4_2_5`]},{version:`0.4.1`,date:`2026-04-21`,changes:[`changelog.new_0_4_1_1`]}],Ua=[`src`],Wa={class:`sidebar-nav`},Ga={class:`nav-group`},Ka={class:`nav-group`},qa={class:`nav-group`},Ja={class:`nav-group`},Ya={class:`sidebar-footer`},Xa={class:`status-row`},Za={class:`status-text`},Qa={class:`version-info`},$a={class:`changelog-list`},eo={class:`changelog-version-header`},to={class:`changelog-version-tag`},no={class:`changelog-date`},ro={class:`changelog-changes`},io=`/logo.png`,ao=F(T({__name:`AppSidebar`,setup(a){let{t:s}=ae(),{isDark:c}=Pt(),d=Ot(),p=y(),m=D(),h=Ft(),{openSessionSearch:g}=za(),_=n(()=>p.name),v=A({});function x(e){v[e]=!v[e]}function w(e){return!!v[e]}function T(e){m.push({name:e})}async function j(){await h.doUpdate()?d.success(s(`sidebar.updateSuccess`),{duration:5e3}):d.error(s(`sidebar.updateFailed`))}function te(){k(),m.replace({name:`login`})}let ne=b(!1);function re(){ne.value=!0}return(n,a)=>(o(),r(`aside`,{class:O([`sidebar`,{open:M(h).sidebarOpen}])},[N(`div`,{class:`sidebar-logo`,onClick:a[0]||=e=>M(m).push(`/hermes/chat`)},[N(`img`,{src:io,alt:`Hermes`,class:`logo-img`}),a[20]||=N(`span`,{class:`logo-text`},`Hermes`,-1),N(`video`,{class:`logo-dance`,src:M(c)?M(Va):M(Ba),autoplay:``,loop:``,muted:``,playsinline:``},null,8,Ua)]),N(`nav`,Wa,[N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.chat`}]),onClick:a[1]||=e=>T(`hermes.chat`)},[a[21]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z`})],-1),N(`span`,null,S(M(s)(`sidebar.chat`)),1)],2),N(`button`,{class:`nav-item`,onClick:a[2]||=(...e)=>M(g)&&M(g)(...e)},[a[22]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`circle`,{cx:`11`,cy:`11`,r:`7`}),N(`path`,{d:`m20 20-3.5-3.5`})],-1),N(`span`,null,S(M(s)(`sidebar.search`)),1)]),N(`div`,Ga,[N(`div`,{class:`nav-group-label`,onClick:a[3]||=e=>x(`agent`)},[N(`span`,null,S(M(s)(`sidebar.groupAgent`)),1),(o(),r(`svg`,{class:O([`nav-group-arrow`,{collapsed:w(`agent`)}]),width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...a[23]||=[N(`polyline`,{points:`6 9 12 15 18 9`},null,-1)]],2))]),e(N(`div`,null,[N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.jobs`}]),onClick:a[4]||=e=>T(`hermes.jobs`)},[a[24]||=l(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-v-6da5fe66><rect x="3" y="4" width="18" height="18" rx="2" ry="2" data-v-6da5fe66></rect><line x1="16" y1="2" x2="16" y2="6" data-v-6da5fe66></line><line x1="8" y1="2" x2="8" y2="6" data-v-6da5fe66></line><line x1="3" y1="10" x2="21" y2="10" data-v-6da5fe66></line></svg>`,1),N(`span`,null,S(M(s)(`sidebar.jobs`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.channels`}]),onClick:a[5]||=e=>T(`hermes.channels`)},[a[25]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z`})],-1),N(`span`,null,S(M(s)(`sidebar.channels`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.skills`}]),onClick:a[6]||=e=>T(`hermes.skills`)},[a[26]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`polygon`,{points:`12 2 2 7 12 12 22 7 12 2`}),N(`polyline`,{points:`2 17 12 22 22 17`}),N(`polyline`,{points:`2 12 12 17 22 12`})],-1),N(`span`,null,S(M(s)(`sidebar.skills`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.memory`}]),onClick:a[7]||=e=>T(`hermes.memory`)},[a[27]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M9 18h6`}),N(`path`,{d:`M10 22h4`}),N(`path`,{d:`M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z`})],-1),N(`span`,null,S(M(s)(`sidebar.memory`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.models`}]),onClick:a[8]||=e=>T(`hermes.models`)},[a[28]||=l(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-v-6da5fe66><circle cx="12" cy="12" r="3" data-v-6da5fe66></circle><path d="M12 1v4" data-v-6da5fe66></path><path d="M12 19v4" data-v-6da5fe66></path><path d="M1 12h4" data-v-6da5fe66></path><path d="M19 12h4" data-v-6da5fe66></path><path d="M4.22 4.22l2.83 2.83" data-v-6da5fe66></path><path d="M16.95 16.95l2.83 2.83" data-v-6da5fe66></path><path d="M4.22 19.78l2.83-2.83" data-v-6da5fe66></path><path d="M16.95 7.05l2.83-2.83" data-v-6da5fe66></path></svg>`,1),N(`span`,null,S(M(s)(`sidebar.models`)),1)],2)],512),[[C,!w(`agent`)]])]),N(`div`,Ka,[N(`div`,{class:`nav-group-label`,onClick:a[9]||=e=>x(`monitoring`)},[N(`span`,null,S(M(s)(`sidebar.groupMonitoring`)),1),(o(),r(`svg`,{class:O([`nav-group-arrow`,{collapsed:w(`monitoring`)}]),width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...a[29]||=[N(`polyline`,{points:`6 9 12 15 18 9`},null,-1)]],2))]),e(N(`div`,null,[N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.logs`}]),onClick:a[10]||=e=>T(`hermes.logs`)},[a[30]||=l(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-v-6da5fe66><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" data-v-6da5fe66></path><polyline points="14 2 14 8 20 8" data-v-6da5fe66></polyline><line x1="16" y1="13" x2="8" y2="13" data-v-6da5fe66></line><line x1="16" y1="17" x2="8" y2="17" data-v-6da5fe66></line><polyline points="10 9 9 9 8 9" data-v-6da5fe66></polyline></svg>`,1),N(`span`,null,S(M(s)(`sidebar.logs`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.usage`}]),onClick:a[11]||=e=>T(`hermes.usage`)},[a[31]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`rect`,{x:`3`,y:`12`,width:`4`,height:`9`,rx:`1`}),N(`rect`,{x:`10`,y:`7`,width:`4`,height:`14`,rx:`1`}),N(`rect`,{x:`17`,y:`3`,width:`4`,height:`18`,rx:`1`})],-1),N(`span`,null,S(M(s)(`sidebar.usage`)),1)],2)],512),[[C,!w(`monitoring`)]])]),N(`div`,qa,[N(`div`,{class:`nav-group-label`,onClick:a[12]||=e=>x(`tools`)},[N(`span`,null,S(M(s)(`sidebar.groupTools`)),1),(o(),r(`svg`,{class:O([`nav-group-arrow`,{collapsed:w(`tools`)}]),width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...a[32]||=[N(`polyline`,{points:`6 9 12 15 18 9`},null,-1)]],2))]),e(N(`div`,null,[N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.terminal`}]),onClick:a[13]||=e=>T(`hermes.terminal`)},[a[33]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`polyline`,{points:`4 17 10 11 4 5`}),N(`line`,{x1:`12`,y1:`19`,x2:`20`,y2:`19`})],-1),N(`span`,null,S(M(s)(`sidebar.terminal`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.files`}]),onClick:a[14]||=e=>T(`hermes.files`)},[a[34]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z`})],-1),N(`span`,null,S(M(s)(`sidebar.files`)),1)],2)],512),[[C,!w(`tools`)]])]),N(`div`,Ja,[N(`div`,{class:`nav-group-label`,onClick:a[15]||=e=>x(`system`)},[N(`span`,null,S(M(s)(`sidebar.groupSystem`)),1),(o(),r(`svg`,{class:O([`nav-group-arrow`,{collapsed:w(`system`)}]),width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[...a[35]||=[N(`polyline`,{points:`6 9 12 15 18 9`},null,-1)]],2))]),e(N(`div`,null,[N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.gateways`}]),onClick:a[16]||=e=>T(`hermes.gateways`)},[a[36]||=l(`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-v-6da5fe66><rect x="2" y="2" width="20" height="8" rx="2" ry="2" data-v-6da5fe66></rect><rect x="2" y="14" width="20" height="8" rx="2" ry="2" data-v-6da5fe66></rect><line x1="6" y1="6" x2="6.01" y2="6" data-v-6da5fe66></line><line x1="6" y1="18" x2="6.01" y2="18" data-v-6da5fe66></line></svg>`,1),N(`span`,null,S(M(s)(`sidebar.gateways`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.profiles`}]),onClick:a[17]||=e=>T(`hermes.profiles`)},[a[37]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2`}),N(`circle`,{cx:`12`,cy:`7`,r:`4`})],-1),N(`span`,null,S(M(s)(`sidebar.profiles`)),1)],2),N(`button`,{class:O([`nav-item`,{active:_.value===`hermes.settings`}]),onClick:a[18]||=e=>T(`hermes.settings`)},[a[38]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`circle`,{cx:`12`,cy:`12`,r:`3`}),N(`path`,{d:`M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z`})],-1),N(`span`,null,S(M(s)(`sidebar.settings`)),1)],2)],512),[[C,!w(`system`)]])])]),t(Ma),t(ka),N(`div`,Ya,[N(`button`,{class:`nav-item logout-item`,onClick:te},[a[39]||=N(`svg`,{width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},[N(`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`}),N(`polyline`,{points:`16 17 21 12 16 7`}),N(`line`,{x1:`21`,y1:`12`,x2:`9`,y2:`12`})],-1),N(`span`,null,S(M(s)(`sidebar.logout`)),1)]),N(`div`,Xa,[N(`div`,{class:O([`status-indicator`,{connected:M(h).connected,disconnected:!M(h).connected}])},[a[40]||=N(`span`,{class:`status-dot`},null,-1),N(`span`,Za,S(M(h).connected?M(s)(`sidebar.connected`):M(s)(`sidebar.disconnected`)),1)],2),t(Na)]),N(`div`,Qa,[a[41]||=N(`a`,{class:`github-link`,href:`https://github.com/EKKOLearnAI/hermes-web-ui`,target:`_blank`,rel:`noopener noreferrer`,title:`GitHub`},[N(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`},[N(`path`,{d:`M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z`})])],-1),N(`span`,{class:`version-text`,onClick:re},`Hermes Web UI v`+S(M(h).serverVersion||`0.1.0`),1),t(La)]),M(h).updateAvailable?(o(),f(M(it),{key:0,type:`primary`,size:`tiny`,block:``,class:`update-btn`,loading:M(h).updating,onClick:j},{default:u(()=>[E(S(M(h).updating?M(s)(`sidebar.updating`):M(s)(`sidebar.updateVersion`,{version:M(h).latestVersion})),1)]),_:1},8,[`loading`])):i(``,!0)]),t(M(Ue),{show:ne.value,"onUpdate:show":a[19]||=e=>ne.value=e,preset:`dialog`,title:M(s)(`sidebar.changelog`),style:{width:`520px`}},{default:u(()=>[N(`div`,$a,[(o(!0),r(P,null,ee(M(Ha),e=>(o(),r(`div`,{key:e.version,class:`changelog-version-block`},[N(`div`,eo,[N(`span`,to,`v`+S(e.version),1),N(`span`,no,S(e.date),1)]),N(`ul`,ro,[(o(!0),r(P,null,ee(e.changes,(e,t)=>(o(),r(`li`,{key:t},S(M(s)(e)),1))),128))])]))),128))])]),_:1},8,[`show`,`title`])],2))}}),[[`__scopeId`,`data-v-6da5fe66`]]);function oo(){let e=D(),t=Lt(),{sessionSearchOpen:n,openSessionSearch:r,closeSessionSearch:i}=za();function a(a){let o=a.ctrlKey||a.metaKey;if(o&&a.key===`n`){a.preventDefault(),t.newChat();return}if(o&&a.key===`j`){a.preventDefault(),e.push({name:`hermes.jobs`});return}if(o&&a.key.toLowerCase()===`k`){if(e.currentRoute.value.name===`login`)return;a.preventDefault(),r();return}if(a.key===`Escape`){if(n.value){a.preventDefault(),i();return}let e=document.querySelector(`.n-modal-mask`);e&&e.querySelector(`.n-base-close`)?.click()}}p(()=>{window.addEventListener(`keydown`,a)}),m(()=>{window.removeEventListener(`keydown`,a)})}var so={class:`session-search-modal`},co={class:`search-header`},lo={class:`search-title`},uo={class:`search-hint`},fo={class:`search-body`},po={key:0,class:`search-empty`},mo={key:1,class:`result-list`},ho=[`onClick`,`onMouseenter`],go={class:`result-main`},_o={class:`result-title-row`},vo={class:`result-title`},yo={class:`result-source`},bo={class:`result-snippet`},xo={class:`result-meta`},So={class:`result-time`},Co={key:0,class:`result-match`},wo={class:`search-footer`},To=F(T({__name:`SessionSearchModal`,setup(e){let{t:a}=ae(),s=Ot(),c=D(),l=Lt(),{sessionSearchOpen:g}=za(),_=b(``),v=b(!1),y=b([]),x=b([]),C=b(0),w=b(null),T=null,k=0,A=n(()=>_.value.trim().length>0),j=n(()=>A.value?x.value:y.value.map(e=>({...e,matched_message_id:null,snippet:e.preview||``,rank:0})));function ne(e){return{api_server:`API Server`,cli:`CLI`,telegram:`Telegram`,discord:`Discord`,slack:`Slack`,matrix:`Matrix`,whatsapp:`WhatsApp`,signal:`Signal`,cron:`Cron`,weixin:`WeChat`}[e]||e}function re(e){return e?new Date(e*1e3).toLocaleString([],{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}):``}function ie(e){return e.title?.trim()||(e.preview?.trim()?e.preview.trim():e.id)}async function F(){let e=++k;v.value=!0;try{let t=await Rt(void 0,8);if(e!==k)return;y.value=t,x.value=[],C.value=0}catch(t){if(e!==k)return;s.error(t instanceof Error?t.message:a(`chat.searchFailed`))}finally{e===k&&(v.value=!1)}}async function oe(e){let t=++k;v.value=!0;try{let n=e.trim()?await zt(e.trim(),void 0,10):[];if(t!==k)return;x.value=n,C.value=0}catch(e){if(t!==k)return;s.error(e instanceof Error?e.message:a(`chat.searchFailed`))}finally{t===k&&(v.value=!1)}}async function se(){l.sessions.length===0&&await l.loadSessions()}async function ce(e){let t=e.matched_message_id==null?null:String(e.matched_message_id);g.value=!1,await se(),await l.switchSession(e.id,t),c.currentRoute.value.name!==`hermes.chat`&&await c.push({name:`hermes.chat`})}function le(){g.value=!1}function ue(e){let t=j.value;t.length!==0&&(C.value=(C.value+e+t.length)%t.length)}async function de(e){if(g.value){if(e.key===`ArrowDown`){e.preventDefault(),ue(1);return}if(e.key===`ArrowUp`){e.preventDefault(),ue(-1);return}if(e.key===`Enter`){e.preventDefault();let t=j.value[C.value];t&&await ce(t);return}e.key===`Escape`&&(e.preventDefault(),le())}}return h(()=>g.value,async e=>{if(!e){_.value=``,x.value=[],y.value=[],C.value=0;return}_.value=``,x.value=[],C.value=0,await F(),await d(),w.value?.focus?.()}),h(_,e=>{T&&=(clearTimeout(T),null),T=setTimeout(()=>{g.value&&oe(e)},160)}),h(j,()=>{C.value>=j.value.length&&(C.value=0)}),p(()=>{window.addEventListener(`keydown`,de)}),m(()=>{window.removeEventListener(`keydown`,de),T&&clearTimeout(T)}),(e,n)=>(o(),f(M(Ue),{show:M(g),"onUpdate:show":n[1]||=e=>te(g)?g.value=e:null,preset:`card`,title:M(a)(`chat.searchTitle`),style:{width:`min(760px, calc(100vw - 24px))`},"mask-closable":!0,"auto-focus":!1},{default:u(()=>[N(`div`,so,[N(`div`,co,[N(`div`,lo,S(M(a)(`chat.searchSubtitle`)),1),N(`div`,uo,S(M(a)(`chat.searchHint`)),1)]),t(M(dt),{ref_key:`inputRef`,ref:w,value:_.value,"onUpdate:value":n[0]||=e=>_.value=e,placeholder:M(a)(`chat.searchPlaceholder`),clearable:``,size:`large`},null,8,[`value`,`placeholder`]),N(`div`,fo,[t(M(jt),{show:v.value},{default:u(()=>[j.value.length===0?(o(),r(`div`,po,S(A.value?M(a)(`chat.searchNoResults`):M(a)(`chat.searchEmpty`)),1)):(o(),r(`div`,mo,[(o(!0),r(P,null,ee(j.value,(e,t)=>(o(),r(`button`,{key:e.id,class:O([`result-item`,{active:t===C.value}]),onClick:t=>ce(e),onMouseenter:e=>C.value=t},[N(`div`,go,[N(`div`,_o,[N(`span`,vo,S(ie(e)),1),N(`span`,yo,S(ne(e.source)),1)]),N(`div`,bo,S(A.value?e.snippet||M(a)(`chat.searchNoSnippet`):e.preview||M(a)(`chat.searchRecent`)),1)]),N(`div`,xo,[N(`span`,So,S(re(e.last_active||e.started_at)),1),A.value&&e.matched_message_id!=null?(o(),r(`span`,Co,` #`+S(e.matched_message_id),1)):i(``,!0)])],42,ho))),128))]))]),_:1},8,[`show`])]),N(`div`,wo,[N(`span`,null,S(M(a)(`chat.searchEnterHint`)),1),t(M(it),{quaternary:``,size:`small`,onClick:le},{default:u(()=>[E(S(M(a)(`common.cancel`)),1)]),_:1})])])]),_:1},8,[`show`,`title`]))}}),[[`__scopeId`,`data-v-7eb14c37`]]),Eo={key:0,class:`node-warning-bar`},Do={class:`app-main`},Oo=F(T({__name:`App`,setup(e){let{isDark:a}=Pt(),{t:s}=ae(),c=Ft(),l=y(),d=D(),_=b(!1),v=n(()=>ga(a.value)),x=n(()=>a.value?pa:null),C=n(()=>l.name===`login`),w=n(()=>{let e=c.nodeVersion,t=parseInt(e.split(`.`)[0],10);return!isNaN(t)&&t<23});return h(()=>l.path,()=>{c.closeSidebar()}),d.isReady().then(()=>{_.value=!0}),p(()=>{C.value||(c.loadModels(),c.startHealthPolling())}),m(()=>{c.stopHealthPolling()}),oo(),(e,n)=>{let a=g(`router-view`);return o(),f(M(Vn),{theme:x.value,"theme-overrides":v.value},{default:u(()=>[t(M(Pr),null,{default:u(()=>[t(M(Sr),null,{default:u(()=>[t(M(Xr),null,{default:u(()=>[w.value&&_.value?(o(),r(`div`,Eo,S(M(s)(`sidebar.nodeVersionWarning`,{version:M(c).nodeVersion})),1)):i(``,!0),_.value?(o(),r(`div`,{key:1,class:O([`app-layout`,{"no-sidebar":C.value}])},[C.value?i(``,!0):(o(),r(`button`,{key:0,class:`hamburger-btn`,onClick:n[0]||=(...e)=>M(c).toggleSidebar&&M(c).toggleSidebar(...e)},[...n[2]||=[N(`img`,{src:`/logo.png`,alt:`Menu`,style:{width:`24px`,height:`24px`}},null,-1)]])),!C.value&&M(c).sidebarOpen?(o(),r(`div`,{key:1,class:`mobile-backdrop`,onClick:n[1]||=(...e)=>M(c).closeSidebar&&M(c).closeSidebar(...e)})):i(``,!0),C.value?i(``,!0):(o(),f(ao,{key:2})),N(`main`,Do,[t(a)])],2)):i(``,!0),t(To)]),_:1})]),_:1})]),_:1})]),_:1},8,[`theme`,`theme-overrides`])}}}),[[`__scopeId`,`data-v-f6454513`]]),ko=localStorage.getItem(`hermes_theme`)||`system`,Ao=window.matchMedia(`(prefers-color-scheme: dark)`).matches;(ko===`dark`||ko===`system`&&Ao)&&document.documentElement.classList.add(`dark`);var jo=new URLSearchParams(window.location.search),Mo=window.location.hash.split(`?`)[1],No=jo.get(`token`)||(Mo?new URLSearchParams(Mo).get(`token`):null);No&&(window.__LOGIN_TOKEN__=No);var Po=j(Oo);Po.use(re()),Po.use(Qt),Po.use(ne),Po.mount(`#app`);
|