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); }, });