hermes-web-ui 0.3.6 → 0.3.8
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 +21 -2
- package/bin/hermes-web-ui.mjs +15 -1
- package/dist/client/assets/{Add-CKf6ViXR.js → Add-s316k4Av.js} +1 -1
- package/dist/client/assets/{Button-CrrCCorI.js → Button-BkA_RI8a.js} +1 -1
- package/dist/client/assets/{ChannelsView-D4I7hhZO.js → ChannelsView-DPmPn8DW.js} +1 -1
- package/dist/client/assets/ChatView-DEtziOPB.js +127 -0
- package/dist/client/assets/{ChatView-Vfi_jEpI.css → ChatView-DI3XN8vz.css} +1 -1
- package/dist/client/assets/{Close-C9xwy-pW.js → Close-CrLD0IXG.js} +1 -1
- package/dist/client/assets/{FormItem-BgJdrTW0.js → FormItem-CQLdFrl9.js} +1 -1
- package/dist/client/assets/{GatewaysView-Cib2JydO.js → GatewaysView-CC1Y0tZZ.js} +1 -1
- package/dist/client/assets/{Input-ChENEW-Z.js → Input-nXKlujwJ.js} +1 -1
- package/dist/client/assets/{InputNumber-Xd6HWSdp.js → InputNumber-DLZwwIyX.js} +1 -1
- package/dist/client/assets/{JobsView-SnToCbDd.js → JobsView-BC0bBrJO.js} +2 -2
- package/dist/client/assets/{LoginView-BZdmMnsf.js → LoginView-PqpFR9bV.js} +1 -1
- package/dist/client/assets/{LogsView-DblvOJIg.js → LogsView-DtR88N0b.js} +1 -1
- package/dist/client/assets/{MarkdownRenderer-DJLVk7ei.js → MarkdownRenderer-BSLfTurm.js} +1 -1
- package/dist/client/assets/{MemoryView-exXvRwCc.js → MemoryView-CJRWnePL.js} +1 -1
- package/dist/client/assets/{Modal-B2zvXTrk.js → Modal-Bp9RK8LZ.js} +1 -1
- package/dist/client/assets/ModelsView-7Obe34Cz.js +1 -0
- package/dist/client/assets/{ModelsView-jbgZP3YF.css → ModelsView-VM-oMq5M.css} +1 -1
- package/dist/client/assets/{Popconfirm-BoZc0kKk.js → Popconfirm-DTdUi7r_.js} +1 -1
- package/dist/client/assets/{Popover-Cu52vG3D.js → Popover-_M3o0B7L.js} +1 -1
- package/dist/client/assets/{ProfilesView-D0FY7Jwe.js → ProfilesView-1_GmRx-S.js} +1 -1
- package/dist/client/assets/{Select-BHc7u-Yf.js → Select-aHPR3urY.js} +2 -2
- package/dist/client/assets/{SettingRow-i-UXlco7.js → SettingRow-DKasLuS5.js} +1 -1
- package/dist/client/assets/{SettingsView-Dhr2wzAB.css → SettingsView-C3sd8K0e.css} +1 -1
- package/dist/client/assets/SettingsView-DZCA7_CM.js +352 -0
- package/dist/client/assets/{SkillsView-B5QBaAzi.js → SkillsView-Dk7O05cK.js} +1 -1
- package/dist/client/assets/{Spin-DsNCRPk9.js → Spin-Bt_9cTiO.js} +1 -1
- package/dist/client/assets/{Suffix-3xK0KZGt.js → Suffix-XaH8SDbR.js} +1 -1
- package/dist/client/assets/{Switch-Bf63XXgA.js → Switch-D1_psmjT.js} +1 -1
- package/dist/client/assets/{Tag-Dmbj68Ki.js → Tag-3FaOhoJN.js} +1 -1
- package/dist/client/assets/{TerminalView-DrJHZ0qI.js → TerminalView-DNU7oQxK.js} +1 -1
- package/dist/client/assets/{Tooltip-CRbZNhG0.js → Tooltip-YHrHWGPa.js} +1 -1
- package/dist/client/assets/{UsageView-DQ43JasX.js → UsageView-COCrOiiV.js} +1 -1
- package/dist/client/assets/{Warning-kBbRMAif.js → Warning-B6CM9aBl.js} +1 -1
- package/dist/client/assets/{_plugin-vue_export-helper-CnosYBkx.js → _plugin-vue_export-helper-BGG8ORDx.js} +1 -1
- package/dist/client/assets/app-B7ktf7Fh.js +1 -0
- package/dist/client/assets/app-BPvTl2-V.js +1 -0
- package/dist/client/assets/{browser-Djp4tkp3.js → browser-f5W8abIG.js} +1 -1
- package/dist/client/assets/chat-6q6pkzEW.js +6 -0
- package/dist/client/assets/composables-xV7dhNpf.js +1 -0
- package/dist/client/assets/{fade-in.cssr-CIVyTG6A.js → fade-in.cssr-ifHK7yH1.js} +1 -1
- package/dist/client/assets/index-CSCYx7ux.js +284 -0
- package/dist/client/assets/{jobs-CcVaCGMJ.js → jobs-DObWfhbO.js} +1 -1
- package/dist/client/assets/{light-D9G2GshF.js → light-CxjyoF0s.js} +1 -1
- package/dist/client/assets/{light-KCEDTUGE.js → light-D1yfed_s.js} +1 -1
- package/dist/client/assets/{light-BPqyaxve.js → light-DWy-mwyK.js} +1 -1
- package/dist/client/assets/{light-CSp9-LhE.js → light-D_3MwJj1.js} +1 -1
- package/dist/client/assets/{light-BF6E9z0k.js → light-DgLcPjgU.js} +1 -1
- package/dist/client/assets/{light-BJ96fCLC.js → light-TGFKT-UB.js} +1 -1
- package/dist/client/assets/models-DQ4CT-vv.js +1 -0
- package/dist/client/assets/{pinia-iHE5_ZXa.js → pinia-DcAkZ8vx.js} +1 -1
- package/dist/client/assets/{profiles-CJCR84uQ.js → profiles-DzkigJwq.js} +1 -1
- package/dist/client/assets/{router-C-NNJUuf.js → router-D8sJ39Io.js} +2 -2
- package/dist/client/assets/{sessions-C4bnNvzS.js → sessions-Dg8n9PBo.js} +1 -1
- package/dist/client/assets/{skills-B4slZfeZ.js → skills-BehzdECn.js} +1 -1
- package/dist/client/assets/{use-message-BIpqgDet.js → use-message-DBz2JSTt.js} +1 -1
- package/dist/client/assets/{useTheme-B78N9tyz.js → useTheme-UdVT814n.js} +1 -1
- package/dist/client/index.html +27 -27
- package/dist/server/index.js +8 -3
- package/dist/server/routes/hermes/filesystem.js +231 -199
- package/dist/server/routes/hermes/group-chat.d.ts +2 -0
- package/dist/server/routes/hermes/group-chat.js +135 -0
- package/dist/server/routes/hermes/logs.js +50 -11
- package/dist/server/routes/hermes/proxy-handler.js +16 -6
- package/dist/server/routes/upload.js +41 -11
- package/dist/server/services/group-chat/coordinator.d.ts +14 -0
- package/dist/server/services/group-chat/coordinator.js +230 -0
- package/dist/server/services/group-chat/index.d.ts +5 -0
- package/dist/server/services/group-chat/index.js +115 -0
- package/dist/server/services/group-chat/rooms-db.d.ts +56 -0
- package/dist/server/services/group-chat/rooms-db.js +199 -0
- package/dist/server/services/hermes/gateway-manager.d.ts +2 -0
- package/dist/server/services/hermes/gateway-manager.js +15 -0
- package/dist/server/services/hermes/hermes-profile.d.ts +6 -0
- package/dist/server/services/hermes/hermes-profile.js +12 -0
- package/dist/server/shared/providers.js +1 -13
- package/package.json +1 -1
- package/dist/client/assets/ChatView-DxyBUK57.js +0 -127
- package/dist/client/assets/ModelsView-DGs47Cj4.js +0 -1
- package/dist/client/assets/SettingsView-BW6ctYG5.js +0 -352
- package/dist/client/assets/app-BT9yU6N6.js +0 -1
- package/dist/client/assets/app-CjNVVG5x.js +0 -1
- package/dist/client/assets/chat-DlC9S9DK.js +0 -6
- package/dist/client/assets/composables-DCA4Yga5.js +0 -1
- package/dist/client/assets/index-D12ukDT7.js +0 -284
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./router-
|
|
1
|
+
import{o as e}from"./router-D8sJ39Io.js";async function t(t,n){let r=new URLSearchParams;t&&r.set(`source`,t),n&&r.set(`limit`,String(n));let i=r.toString();return(await e(`/api/hermes/sessions${i?`?${i}`:``}`)).sessions}async function n(t){try{return(await e(`/api/hermes/sessions/${t}`)).session}catch{return null}}async function r(t){try{return await e(`/api/hermes/sessions/${t}`,{method:`DELETE`}),!0}catch{return!1}}async function i(t,n){try{return await e(`/api/hermes/sessions/${t}/rename`,{method:`POST`,body:JSON.stringify({title:n})}),!0}catch{return!1}}export{i,n,t as r,r as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e}from"./router-
|
|
1
|
+
import{o as e}from"./router-D8sJ39Io.js";async function t(){return(await e(`/api/hermes/skills`)).categories}async function n(t){return(await e(`/api/hermes/skills/${t}`)).content}async function r(t,n){return(await e(`/api/hermes/skills/${t}/${n}/files`)).files}async function i(){return e(`/api/hermes/memory`)}async function a(t,n){await e(`/api/hermes/memory`,{method:`POST`,body:JSON.stringify({section:t,content:n})})}async function o(t,n){await e(`/api/hermes/skills/toggle`,{method:`PUT`,body:JSON.stringify({name:t,enabled:n})})}export{a,t as i,n,o,r,i as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e}from"./router-
|
|
1
|
+
import{F as e}from"./router-D8sJ39Io.js";import{$ as t,Y as n}from"./browser-f5W8abIG.js";var r=t(`n-message-api`),i=t(`n-message-provider`);function a(){let t=e(r,null);return t===null&&n(`use-message`,"No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A."),t}export{r as n,i as r,a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as e,ct as t}from"./router-
|
|
1
|
+
import{X as e,ct as t}from"./router-D8sJ39Io.js";var n=`hermes_theme`,r=t(localStorage.getItem(n)||`system`),i=t(!1);function a(e){i.value=e,document.documentElement.classList.toggle(`dark`,e)}function o(e){return e===`system`?window.matchMedia(`(prefers-color-scheme: dark)`).matches:e===`dark`}a(o(r.value)),window.matchMedia(`(prefers-color-scheme: dark)`).addEventListener(`change`,()=>{r.value===`system`&&a(o(`system`))}),e(r,e=>{localStorage.setItem(n,e),a(o(e))});function s(){function e(e){r.value=e}function t(){r.value=i.value?`light`:`dark`}return{mode:r,isDark:i,setMode:e,toggleTheme:t}}export{s as t};
|
package/dist/client/index.html
CHANGED
|
@@ -6,36 +6,36 @@
|
|
|
6
6
|
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
8
8
|
<title>Hermes</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/assets/router-
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/browser-
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/fade-in.cssr-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/Suffix-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/Close-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/Popover-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/Button-
|
|
18
|
-
<link rel="modulepreload" crossorigin href="/assets/Tag-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-CSCYx7ux.js"></script>
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/router-D8sJ39Io.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/_plugin-vue_export-helper-BGG8ORDx.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/browser-f5W8abIG.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/fade-in.cssr-ifHK7yH1.js">
|
|
14
|
+
<link rel="modulepreload" crossorigin href="/assets/Suffix-XaH8SDbR.js">
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/Close-CrLD0IXG.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/Popover-_M3o0B7L.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/Button-BkA_RI8a.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/Tag-3FaOhoJN.js">
|
|
19
19
|
<link rel="modulepreload" crossorigin href="/assets/create-5zWq3BEB.js">
|
|
20
|
-
<link rel="modulepreload" crossorigin href="/assets/Select-
|
|
21
|
-
<link rel="modulepreload" crossorigin href="/assets/Warning-
|
|
22
|
-
<link rel="modulepreload" crossorigin href="/assets/Modal-
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/Input-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/Select-aHPR3urY.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/Warning-B6CM9aBl.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/Modal-Bp9RK8LZ.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/Input-nXKlujwJ.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/light-D1yfed_s.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/omit-1BRB6K75.js">
|
|
26
|
-
<link rel="modulepreload" crossorigin href="/assets/pinia-
|
|
27
|
-
<link rel="modulepreload" crossorigin href="/assets/profiles-
|
|
28
|
-
<link rel="modulepreload" crossorigin href="/assets/sessions-
|
|
29
|
-
<link rel="modulepreload" crossorigin href="/assets/app-
|
|
30
|
-
<link rel="modulepreload" crossorigin href="/assets/chat-
|
|
31
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/use-message-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
34
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
26
|
+
<link rel="modulepreload" crossorigin href="/assets/pinia-DcAkZ8vx.js">
|
|
27
|
+
<link rel="modulepreload" crossorigin href="/assets/profiles-DzkigJwq.js">
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/assets/sessions-Dg8n9PBo.js">
|
|
29
|
+
<link rel="modulepreload" crossorigin href="/assets/app-B7ktf7Fh.js">
|
|
30
|
+
<link rel="modulepreload" crossorigin href="/assets/chat-6q6pkzEW.js">
|
|
31
|
+
<link rel="modulepreload" crossorigin href="/assets/light-TGFKT-UB.js">
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/use-message-DBz2JSTt.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="/assets/light-DWy-mwyK.js">
|
|
34
|
+
<link rel="modulepreload" crossorigin href="/assets/light-CxjyoF0s.js">
|
|
35
35
|
<link rel="modulepreload" crossorigin href="/assets/_common-Yp55QE79.js">
|
|
36
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
37
|
-
<link rel="modulepreload" crossorigin href="/assets/light-
|
|
38
|
-
<link rel="modulepreload" crossorigin href="/assets/useTheme-
|
|
36
|
+
<link rel="modulepreload" crossorigin href="/assets/light-D_3MwJj1.js">
|
|
37
|
+
<link rel="modulepreload" crossorigin href="/assets/light-DgLcPjgU.js">
|
|
38
|
+
<link rel="modulepreload" crossorigin href="/assets/useTheme-UdVT814n.js">
|
|
39
39
|
<link rel="modulepreload" crossorigin href="/assets/logo-Cd-t_oGE.js">
|
|
40
40
|
<link rel="stylesheet" crossorigin href="/assets/index-BEcRccNA.css">
|
|
41
41
|
</head>
|
package/dist/server/index.js
CHANGED
|
@@ -72,6 +72,7 @@ async function checkLatestVersion() {
|
|
|
72
72
|
try {
|
|
73
73
|
const res = await fetch('https://registry.npmjs.org/hermes-web-ui/latest', {
|
|
74
74
|
signal: AbortSignal.timeout(5000),
|
|
75
|
+
headers: { 'Cache-Control': 'no-cache' },
|
|
75
76
|
});
|
|
76
77
|
if (res.ok) {
|
|
77
78
|
const data = await res.json();
|
|
@@ -111,9 +112,11 @@ async function bootstrap() {
|
|
|
111
112
|
app.use(async (ctx, next) => {
|
|
112
113
|
if (ctx.path === '/api/hermes/update' && ctx.method === 'POST') {
|
|
113
114
|
const isWin = process.platform === 'win32';
|
|
115
|
+
// Run npm install directly — calling `hermes-web-ui update` would kill this
|
|
116
|
+
// process (stopDaemon) before the response can be sent to the client.
|
|
114
117
|
const cmd = isWin
|
|
115
|
-
? 'cmd /c hermes-web-ui
|
|
116
|
-
: 'hermes-web-ui
|
|
118
|
+
? 'cmd /c npm install -g hermes-web-ui@latest'
|
|
119
|
+
: 'npm install -g hermes-web-ui@latest';
|
|
117
120
|
try {
|
|
118
121
|
const { execSync } = await Promise.resolve().then(() => __importStar(require('child_process')));
|
|
119
122
|
const output = execSync(cmd, {
|
|
@@ -122,6 +125,8 @@ async function bootstrap() {
|
|
|
122
125
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
123
126
|
});
|
|
124
127
|
ctx.body = { success: true, message: output.trim() };
|
|
128
|
+
// Restart the server after response is sent
|
|
129
|
+
setTimeout(() => process.exit(0), 1000);
|
|
125
130
|
}
|
|
126
131
|
catch (err) {
|
|
127
132
|
ctx.status = 500;
|
|
@@ -186,7 +191,7 @@ async function bootstrap() {
|
|
|
186
191
|
bindShutdown();
|
|
187
192
|
// Check for updates every 4 hours
|
|
188
193
|
checkLatestVersion();
|
|
189
|
-
setInterval(checkLatestVersion,
|
|
194
|
+
setInterval(checkLatestVersion, 60 * 60 * 1000);
|
|
190
195
|
}
|
|
191
196
|
// ============================
|
|
192
197
|
// ✅ 统一关闭逻辑(核心)
|