// Tight assistant test 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(); 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, navigating to Assistant"); await p.locator(".tab").filter({ hasText: /Assistant/i }).first().click(); await p.waitForTimeout(3500); const textarea = p.locator(".agent-composer textarea").first(); const textareaPresent = await textarea.count() > 0; console.log("textarea present:", textareaPresent); if (textareaPresent) { await textarea.fill("list processes"); await textarea.press("Enter"); await p.waitForTimeout(8000); // Try different selectors for the reply const turns = await p.evaluate(() => { const t = Array.from(document.querySelectorAll(".agent-turn, .agent-msg, [class*='turn'], [class*='msg']")); return t.map(el => ({ class: el.className.slice(0, 50), text: el.textContent?.slice(0, 200) })); }); console.log("turns:", JSON.stringify(turns, null, 2)); const sceneText = await p.evaluate(() => document.querySelector(".scene")?.innerText?.slice(-800)); console.log("scene tail:", sceneText); } await p.screenshot({ path: "/tmp/canvas-evidence/assistant-test.png" }); await b.close();