import assert from 'node:assert/strict' import { app, BrowserWindow } from 'electron' import { browserHostView, closeAgentBrowser, createAgentBrowser, publishBrowserHostOpened, setBrowserBounds, setBrowserHostEventSink } from '../src/main/browser-host' async function main(): Promise { await app.whenReady() const owner = new BrowserWindow({ show: false, width: 1335, height: 916 }) const events: Array<{ type: string; id: string; sessionId?: string }> = [] setBrowserHostEventSink(event => events.push({ type: event.type, id: event.view.id, sessionId: event.view.sessionId })) const sessionId = 'browser-agent-regression' const agent = createAgentBrowser(owner, sessionId) await agent.contents.loadURL('data:text/html,Agent Browser

ready

') assert.equal(browserHostView(owner, agent.id, sessionId).visible, false) setBrowserBounds(owner, agent.id, { x: 20, y: 20, width: 800, height: 600 }, sessionId) assert.equal(browserHostView(owner, agent.id, sessionId).visible, true) publishBrowserHostOpened(owner, agent.id, sessionId) assert.deepEqual(events, [{ type: 'opened', id: agent.id, sessionId }]) closeAgentBrowser(owner, agent.id, sessionId) setBrowserHostEventSink(undefined) owner.destroy() console.log('Agent browser host lifecycle regression checks passed.') app.quit() } void main().catch(error => { console.error(error) app.exit(1) })