// Exposes a small, fixed API to the window. The window never gets direct access to Node or the file system. const { contextBridge, ipcRenderer } = require('electron'); contextBridge.exposeInMainWorld('devseis', { plan: () => ipcRenderer.invoke('audit:plan'), library: () => ipcRenderer.invoke('audit:library'), modelVersion: () => ipcRenderer.invoke('model:version'), settingsFolder: () => ipcRenderer.invoke('settings:open'), runAudit: (elevated, fix = null) => ipcRenderer.invoke('audit:run', { elevated, fix }), fixHistory: () => ipcRenderer.invoke('fix:history'), openFixSettings: checkId => ipcRenderer.invoke('fix:settings', checkId), onProgress: callback => { const listener = (event, item) => callback(item); ipcRenderer.on('audit:progress', listener); return () => ipcRenderer.removeListener('audit:progress', listener); }, saveReport: options => ipcRenderer.invoke('report:save', options), showInFolder: filePath => ipcRenderer.invoke('report:show', filePath), openChat: evidenceText => ipcRenderer.invoke('chat:open', evidenceText), });