-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpreload.js
29 lines (28 loc) · 1.99 KB
/
preload.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const { contextBridge, ipcRenderer } = require('electron')
contextBridge.exposeInMainWorld('electronAPI', {
getApp: () => ipcRenderer.invoke('get-app'),
saveApp: (app) => ipcRenderer.invoke('save-app', app),
quitApp: () => ipcRenderer.invoke('quit-app'),
selectFolder: () => ipcRenderer.invoke('dialog:openDirectory'),
initAssistant: (assistantId) => ipcRenderer.invoke('init-assistant', assistantId),
getAssistants: () => ipcRenderer.invoke('get-assistants'),
duplicateAssistant: (assistantId) => ipcRenderer.invoke('duplicate-assistant', assistantId),
createAssistant: (assistant) => ipcRenderer.invoke('create-assistant', assistant),
updateAssistant: (newAssistant) => ipcRenderer.invoke('update-assistant', newAssistant),
deleteAssistant: (assistantId) => ipcRenderer.invoke('delete-assistant', assistantId),
getHistory: (historyId) => ipcRenderer.invoke('get-history', historyId),
deleteHistory: (historyId) => ipcRenderer.invoke('delete-history', historyId),
getHistories: (assistantId) => ipcRenderer.invoke('get-histories', assistantId),
clearHistories: (assistantId) => ipcRenderer.invoke('clear-histories', assistantId),
ask: (message, historyId, assistantId) => ipcRenderer.invoke('ask', message, historyId, assistantId),
onRespond: (callback) => ipcRenderer.on('respond', (_event, value) => callback(value)),
removeOnRespond: () => ipcRenderer.removeAllListeners('respond'),
abortResponse: () => ipcRenderer.invoke('abort-response'),
getModels: () => ipcRenderer.invoke('get-models'),
getOpenaiModels: (api_key) => ipcRenderer.invoke('get-openai-models', api_key),
addModel: (modelPath) => ipcRenderer.invoke('add-model', modelPath),
cancelDownload: () => ipcRenderer.invoke('cancel-download'),
downloadModel: (assistantId) => ipcRenderer.invoke('download-model', assistantId),
onDownloadProgress: (callback) => ipcRenderer.on('download-progress', (_event, value) => callback(value)),
removeOnDownloadProgress: () => ipcRenderer.removeAllListeners('download-progress'),
})