mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-09-21 01:17:59 +00:00
feat(gui): Electron desktop with embedded core, tray, autostart, win/linux packaging
- cmd/gui: Electron shell (Clash-Verge style) embedding the full WebUI 1:1 - embedded llmsproxy core (luajit) with auto-generated profile - key stored in keys[] (non-seed) so no replace-the-key warning - gw_key cookie injection: web UI works without login - side-rail toggles for autostart / silent start - system tray with status + controls, silent start (--silent) - win cross-build (mingw luajit exe + dll) / deb / AppImage via electron-builder - Makefile: build / gui / gui-dist / gui-deb / gui-win targets - README: desktop GUI section - lua(adapter): opencode normalizes non-whitelisted roles to system
This commit is contained in:
27
cmd/gui/preload.js
Normal file
27
cmd/gui/preload.js
Normal file
@ -0,0 +1,27 @@
|
||||
const { contextBridge, ipcRenderer } = require("electron");
|
||||
|
||||
contextBridge.exposeInMainWorld("modelrouter", {
|
||||
win: {
|
||||
minimize: () => ipcRenderer.invoke("window:minimize"),
|
||||
toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"),
|
||||
close: () => ipcRenderer.invoke("window:close"),
|
||||
isMaximized: () => ipcRenderer.invoke("window:isMaximized"),
|
||||
},
|
||||
core: {
|
||||
state: () => ipcRenderer.invoke("core:state"),
|
||||
start: () => ipcRenderer.invoke("core:start"),
|
||||
stop: () => ipcRenderer.invoke("core:stop"),
|
||||
restart: () => ipcRenderer.invoke("core:restart"),
|
||||
probe: () => ipcRenderer.invoke("core:probe"),
|
||||
key: () => ipcRenderer.invoke("core:key"),
|
||||
onState: (cb) => ipcRenderer.on("core:state", (_e, d) => cb(d)),
|
||||
},
|
||||
settings: {
|
||||
get: () => ipcRenderer.invoke("settings:get"),
|
||||
set: (patch) => ipcRenderer.invoke("settings:set", patch),
|
||||
logFile: () => ipcRenderer.invoke("settings:logFile"),
|
||||
},
|
||||
shell: {
|
||||
openPath: (p) => ipcRenderer.invoke("shell:openPath", p),
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user