mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-09-20 08:57:57 +00:00
- 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
28 lines
1.0 KiB
JavaScript
28 lines
1.0 KiB
JavaScript
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),
|
|
},
|
|
});
|