# SPDX-FileCopyrightText: Copyright (C) 2026 provide.io llc
# SPDX-License-Identifier: Apache-2.0
# SPDX-Comment: Part of octowright.
#

"""Auto-generated by mcp-multi-playwright. Replays a recorded MCP session."""
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright


def _resolve_bundle_url(raw: str) -> str:
    if raw.startswith("bundle://"):
        relative = raw.removeprefix("bundle://")
        return (Path(__file__).resolve().parents[1] / relative).resolve().as_uri()
    return raw


async def main() -> None:
    async with async_playwright() as p:

        browser = await p.webkit.launch(headless=True)
        ctx = await browser.new_context(viewport={'width': 1920, 'height': 1080})
        page = await ctx.new_page()
        await page.goto(_resolve_bundle_url('bundle://seed/verify-stage.html?persona=vs-form&role=form&kind=webkit&slot=0'))
        browser = await p.webkit.launch(headless=True)
        ctx = await browser.new_context(viewport={'width': 1920, 'height': 1080})
        page = await ctx.new_page()
        await page.goto(_resolve_bundle_url('bundle://seed/verify-stage.html?persona=vs-counter&role=counter&kind=webkit&slot=1'))
        browser = await p.webkit.launch(headless=True)
        ctx = await browser.new_context(viewport={'width': 1920, 'height': 1080})
        page = await ctx.new_page()
        await page.goto(_resolve_bundle_url('bundle://seed/verify-stage.html?persona=vs-arithmetic&role=arithmetic&kind=webkit&slot=2'))
        await page.evaluate("document.body.innerHTML = '<input id=user><input id=pass type=password>'")
        try:
            await page.get_by_role('form', name='').fill('alice')
        except Exception:
            await page.fill('#user', 'alice')
        try:
            await page.get_by_role('form', name='').fill('hunter2')
        except Exception:
            await page.fill('#pass', 'hunter2')
        await page.evaluate("(() => { document.body.innerHTML = ''; const b = document.createElement('button'); b.id = 'btn'; b.textContent = 'click'; b.dataset.n = '0'; b.addEventListener('click', () => { b.dataset.n = String(parseInt(b.dataset.n) + 1); }); document.body.appendChild(b); })()")
        try:
            await page.get_by_role('counter', name='click').click()
        except Exception:
            await page.click('#btn')
        try:
            await page.get_by_role('counter', name='click').click()
        except Exception:
            await page.click('#btn')
        try:
            await page.get_by_role('counter', name='click').click()
        except Exception:
            await page.click('#btn')
        if browser is not None:
            await browser.close()
        else:
            await ctx.close()


if __name__ == "__main__":
    asyncio.run(main())
