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

30 lines
1.6 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),
agent: {
sessions: (input) => ipcRenderer.invoke('gitzone:agent:sessions', input),
createSession: (input) => ipcRenderer.invoke('gitzone:agent:create-session', input),
messages: (input) => ipcRenderer.invoke('gitzone:agent:messages', input),
sessionStatus: (input) => ipcRenderer.invoke('gitzone:agent:session-status', input),
children: (input) => ipcRenderer.invoke('gitzone:agent:children', input),
prompt: (input) => ipcRenderer.invoke('gitzone:agent:prompt', input),
abort: (input) => ipcRenderer.invoke('gitzone:agent:abort', input),
respondToPermission: (input) => ipcRenderer.invoke('gitzone:agent:respond-permission', input),
onEvent: (callback) => {
const listener = (_event, payload) => callback(payload);
ipcRenderer.on('gitzone:agent:event', listener);
return () => ipcRenderer.removeListener('gitzone:agent:event', listener);
},
},
onConnectProgress: (callback) => {
const listener = (_event, message) => callback(message);
ipcRenderer.on('gitzone:connect-progress', listener);
return () => ipcRenderer.removeListener('gitzone:connect-progress', listener);
},
});