#!/usr/bin/env node // Execute the built viewer against actual generated pages, without a runner API. import assert from "node:assert/strict"; import { createServer } from "node:http"; import { readFile, readdir, mkdir } from "node:fs/promises"; import { resolve, join, extname, sep } from "node:path"; import { chromium, expect } from "@playwright/test"; const arg = (name) => process.argv[process.argv.indexOf(name) + 1]; if (!process.argv.includes("--report-root")) throw new Error("--report-root is required"); const root = resolve(arg("--report-root")); const screenshots = process.argv.includes("--screenshots") ? resolve(arg("--screenshots")) : null; const samples = new Map(); for (const entry of await readdir(join(root, "attempts"), { withFileTypes: true, })) { if (!entry.isDirectory()) continue; const route = `attempts/${entry.name}/index.html`; const html = await readFile(join(root, route), "utf8"); const encoded = html.match( /