-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreload.js
More file actions
55 lines (49 loc) · 3.04 KB
/
preload.js
File metadata and controls
55 lines (49 loc) · 3.04 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('electronAPI', {
// Settings & App Info
getGeminiApiKey: () => ipcRenderer.invoke('get-gemini-api-key'),
setGeminiApiKey: (key) => ipcRenderer.invoke('set-gemini-api-key', key),
getChatgptApiKey: () => ipcRenderer.invoke('get-chatgpt-api-key'),
setChatgptApiKey: (key) => ipcRenderer.invoke('set-chatgpt-api-key', key),
getAppVersion: () => ipcRenderer.invoke('get-app-version'),
getAiProvider: () => ipcRenderer.invoke('get-ai-provider'),
setAiProvider: (provider) => ipcRenderer.invoke('set-ai-provider', provider),
getOllamaConfig: () => ipcRenderer.invoke('get-ollama-config'),
setOllamaConfig: (config) => ipcRenderer.invoke('set-ollama-config', config),
getOllamaModels: (url) => ipcRenderer.invoke('get-ollama-models', url),
// New Project/File System API
openProject: () => ipcRenderer.invoke('open-project'),
readProjectTree: (projectRoot) => ipcRenderer.invoke('read-project-tree', projectRoot),
readFile: (projectRoot, relativePath) => ipcRenderer.invoke('read-file', projectRoot, relativePath),
writeFile: (payload) => ipcRenderer.invoke('write-file', payload),
deleteNode: (projectRoot, relativePath) => ipcRenderer.invoke('delete-node', projectRoot, relativePath),
renameNode: (projectRoot, oldRelativePath, newRelativePath) => ipcRenderer.invoke('rename-node', projectRoot, oldRelativePath, newRelativePath),
createFile: (projectRoot, relativePath) => ipcRenderer.invoke('create-file', projectRoot, relativePath),
createFolder: (projectRoot, relativePath) => ipcRenderer.invoke('create-folder', projectRoot, relativePath),
uploadFile: (projectRoot) => ipcRenderer.invoke('upload-file', projectRoot),
onProjectUpdate: (callback) => {
const listener = () => callback();
ipcRenderer.on('project-updated', listener);
return () => ipcRenderer.removeListener('project-updated', listener);
},
openInTerminal: (projectRoot) => ipcRenderer.invoke('open-in-terminal', projectRoot),
// Chat History Management
readChatHistory: (projectRoot) => ipcRenderer.invoke('read-chat-history', projectRoot),
writeChatHistory: (projectRoot, history) => ipcRenderer.invoke('write-chat-history', projectRoot, history),
// AI Service Invocation
invokeOllama: (payload) => ipcRenderer.invoke('invoke-ollama', payload),
// Updater APIs
getAllowPrerelease: () => ipcRenderer.invoke('get-allow-prerelease'),
setAllowPrerelease: (value) => ipcRenderer.invoke('set-allow-prerelease', value),
checkForUpdates: () => ipcRenderer.send('check-for-updates'),
startUpdateDownload: () => ipcRenderer.send('start-update-download'),
quitAndInstall: () => ipcRenderer.send('quit-and-install'),
onUpdateStatus: (callback) => {
const listener = (event, data) => callback(data);
ipcRenderer.on('update-status', listener);
return () => ipcRenderer.removeListener('update-status', listener);
},
openLogFile: () => ipcRenderer.send('open-log-file'),
// Feedback API
sendFeedback: (payload) => ipcRenderer.invoke('send-feedback', payload),
});