Files
ide/applications/electron-shell/preload.cjs
T

31 lines
1.7 KiB
JavaScript

const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('gitZoneIde', {
listHosts: () => ipcRenderer.invoke('gitzone:list-hosts'),
saveHost: (input) => ipcRenderer.invoke('gitzone:save-host', input),
connect: (input) => ipcRenderer.invoke('gitzone:connect', input),
addProject: (input) => ipcRenderer.invoke('gitzone:add-project', input),
openProject: (input) => ipcRenderer.invoke('gitzone:open-project', input),
openCode: {
health: (input) => ipcRenderer.invoke('gitzone:opencode-health', input),
sessions: (input) => ipcRenderer.invoke('gitzone:opencode-sessions', input),
createSession: (input) => ipcRenderer.invoke('gitzone:opencode-create-session', input),
messages: (input) => ipcRenderer.invoke('gitzone:opencode-messages', input),
prompt: (input) => ipcRenderer.invoke('gitzone:opencode-prompt', input),
abort: (input) => ipcRenderer.invoke('gitzone:opencode-abort', input),
respondToPermission: (input) => ipcRenderer.invoke('gitzone:opencode-respond-permission', input),
providers: (input) => ipcRenderer.invoke('gitzone:opencode-providers', input),
agents: (input) => ipcRenderer.invoke('gitzone:opencode-agents', input),
onEvent: (callback) => {
const listener = (_event, payload) => callback(payload);
ipcRenderer.on('gitzone:opencode-event', listener);
return () => ipcRenderer.removeListener('gitzone:opencode-event', listener);
},
},
onConnectProgress: (callback) => {
const listener = (_event, message) => callback(message);
ipcRenderer.on('gitzone:connect-progress', listener);
return () => ipcRenderer.removeListener('gitzone:connect-progress', listener);
},
});