#!/bin/sh
set -eu
mkdir -p /browser/profile /tmp/.X11-unix
playwright-mcp --version >/dev/null
request='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"a2y-doctor","version":"1"}}}'
response="$(printf '%s\n' "$request" | timeout 30 playwright-mcp \
  --browser chromium --headless --no-sandbox --isolated)"
printf '%s\n' "$response" | grep -q '"id":1'
if ! xdpyinfo -display "${DISPLAY:-:99}" >/dev/null 2>&1; then
  Xvfb "${DISPLAY:-:99}" -screen 0 1440x900x24 -nolisten tcp >/tmp/xvfb-check.log 2>&1 &
  i=0
  until xdpyinfo -display "${DISPLAY:-:99}" >/dev/null 2>&1; do
    i=$((i + 1))
    [ "$i" -lt 50 ] || { cat /tmp/xvfb-check.log >&2; exit 1; }
    sleep 0.1
  done
fi
test -w /browser/profile
node <<'JS'
let api;
try { api = require('/usr/local/lib/node_modules/@playwright/mcp/node_modules/playwright'); }
catch (_) { api = require('/usr/local/lib/node_modules/playwright'); }
(async () => {
  const browser = await api.chromium.launch({headless: false, args: ['--no-sandbox']});
  await browser.close();
})().catch(error => { console.error(error); process.exit(1); });
JS
