// Just Studio import { chromium } from "playwright"; const b = await chromium.launch({ headless: true }); const ctx = await b.newContext({ viewport: { width: 1440, height: 900 } }); const p = await ctx.newPage(); const calls = []; p.on("response", (r) => { if (r.url().includes("/api/")) calls.push({ status: r.status(), method: r.request().method(), url: r.url().replace("https://canvas.flow-master.ai", "") }); }); await ctx.addInitScript(() => localStorage.setItem("fm.canvas.tour.seen", String(Date.now()))); await p.goto("https://canvas.flow-master.ai/", { waitUntil: "domcontentloaded" }); await p.waitForTimeout(2500); await p.locator(".persona-chip").filter({ hasText: /Mariana/ }).click(); await p.waitForSelector(".topbar", { timeout: 30000 }); await p.waitForTimeout(2000); console.log("on mission"); await p.locator(".tab").filter({ hasText: /Studio/i }).first().click(); await p.waitForTimeout(3000); const sceneText1 = await p.evaluate(() => document.querySelector(".scene")?.innerText?.slice(0, 600) || "?"); console.log("Studio scene:", sceneText1); const buttons = await p.locator("button").allTextContents(); console.log("buttons:", buttons.map(b => b.trim()).filter(Boolean).slice(0, 20)); await p.screenshot({ path: "/tmp/canvas-evidence/studio-state.png" }); await b.close();