const preparePage = async (chromium, { tabIndex = Number(process.env.TAB_INDEX), endpoint = process.env.CDP_ENDPOINT || 'http://127.0.0.1:9222' } = {}) => { const browser = await chromium.connectOverCDP(endpoint); const context = browser.contexts()[0]; if (!context) { throw new Error('No browser context available'); } await context.addInitScript(() => { Object.defineProperty(navigator, 'webdriver', { get: () => undefined }); }); const idx = Number.isFinite(tabIndex) && tabIndex >= 0 ? Math.floor(tabIndex) : 0; let pages = await context.pages(); while (pages.length <= idx) { await context.newPage(); pages = await context.pages(); } const page = pages[idx]; await page.bringToFront(); return { browser, context, page }; }; const safeDisconnectBrowser = async (browser) => { if (!browser) return; try { if (typeof browser.disconnect === 'function') { await browser.disconnect(); } else { await browser.close(); } } catch {} }; module.exports = { preparePage, safeDisconnectBrowser, };