Create the core co-browser manager with shared Playwright browser window, tab ownership, and multi-agent coordination.
Acceptance criteria:
- Create src/domains/browser/co-browser.js with CoBrowserManager class
- Shared Playwright BrowserContext per window (headless=false for user interaction)
- Tab ownership model: each tab locked to one agent
- Tab claiming/releasing with agent validation
- Navigation proxy: agent navigates tab via Playwright, user sees live page
- Screenshot capture for SSE viewport streaming
- Window state query (all tabs, owners, URLs, instructions)
- Emergency tab release on agent heartbeat failure
- Max tabs per window: configurable (default: 10)
Class interface:
- openWindow(agentId, windowName) → { windowId, tabId }
- addTab(windowId, agentId) → { tabId }
- claimTab(windowId, tabId, agentId) → success
- releaseTab(windowId, tabId, agentId) → success
- navigateTab(windowId, tabId, url) → { url, title }
- getScreenshot(windowId, tabId) → base64 image
- getState(windowId) → full state
- closeWindow(windowId, agentId) → success
Milestone: v2.8.0
Create the core co-browser manager with shared Playwright browser window, tab ownership, and multi-agent coordination.
Acceptance criteria:
Class interface:
Milestone: v2.8.0