preload.js
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('bellAPI', {
onBell: (cb) => ipcRenderer.on('bell', (e, data) => cb(data)),
onStatus: (cb) => ipcRenderer.on('status', (e, data) => cb(data)),
pollNow: () => ipcRenderer.invoke('poll-now'),
testBell: () => ipcRenderer.invoke('test-bell'),
getConfig: () => ipcRenderer.invoke('get-config'),
resetSeed: () => ipcRenderer.invoke('reset-seed'),
});