hololake-system-architecture/product-source/hololake-desktop/electron/preload.ts

45 lines
1.7 KiB
TypeScript
Raw Normal View History

/**
* HoloLake Desktop · Preload
*
*
* 访 Node.js API
*/
import { contextBridge, ipcRenderer } from 'electron';
// 暴露给渲染进程的安全 API
contextBridge.exposeInMainWorld('hololake', {
// 应用信息
platform: process.platform,
version: '0.7.1',
// 数据目录
getDataPath: () => ipcRenderer.invoke('get-data-path'),
knowledge: {
importFolder: () => ipcRenderer.invoke('knowledge:import-folder'),
},
agent: {
getConfig: () => ipcRenderer.invoke('agent:get-config'),
saveConfig: (config: { baseUrl: string; model: string; apiKey?: string }) =>
ipcRenderer.invoke('agent:save-config', config),
testConfig: () => ipcRenderer.invoke('agent:test-config'),
},
server: {
list: () => ipcRenderer.invoke('server:list'),
connect: (nodeId: string) => ipcRenderer.invoke('server:connect', nodeId),
domainRegistry: () => ipcRenderer.invoke('server:domain-registry'),
session: (nodeId?: string) => ipcRenderer.invoke('server:session', nodeId),
login: (input: { nodeId: string; username: string; password: string }) =>
ipcRenderer.invoke('server:login', input),
logout: () => ipcRenderer.invoke('server:logout'),
repositories: () => ipcRenderer.invoke('server:repositories'),
createRepository: (input: { name: string; description?: string }) =>
ipcRenderer.invoke('server:create-repository', input),
gitRemote: (fullName: string) => ipcRenderer.invoke('server:git-remote', fullName),
},
// Forgejo 通过本地知识库 API 管理;此桥只保留非敏感应用信息。
});