import { expect, type Page } from "@playwright/test"; import { buildHostWorkspaceRoute } from "@/utils/host-routes"; import { createTempGitRepo } from "./workspace"; import { connectSeedClient, type SeedDaemonClient } from "./seed-client"; import { gotoAppShell } from "./app"; import { connectWorkspaceSetupClient } from "./workspace-setup"; import { selectWorkspaceInSidebar } from "./sidebar"; import { getServerId } from "./server-id"; import { waitForTabBar } from "./launcher"; function composerInput(page: Page) { return page.getByRole("textbox", { name: "Message agent..." }).first(); } export function composerLocator(page: Page) { return composerInput(page); } export async function expectComposerVisible( page: Page, options?: { timeout?: number }, ): Promise { await expect(composerInput(page)).toBeVisible({ timeout: options?.timeout ?? 15_000 }); } export async function expectComposerDisabled(page: Page): Promise { // React Native TextInput with editable={false} renders as