import type { Locator, Page } from "@playwright/test" import { test, expect } from "../fixtures" import { openSidebar, resolveSlug, sessionIDFromUrl, setWorkspacesEnabled, waitSession, waitSessionIdle, waitSlug, } from "../actions" import { promptAgentSelector, promptModelSelector, promptSelector, promptVariantSelector, workspaceItemSelector, workspaceNewSessionSelector, } from "../selectors" import { createSdk, sessionPath } from "../utils" type Footer = { agent: string model: string variant: string } type Probe = { dir?: string sessionID?: string model?: { providerID: string; modelID: string } } const escape = (value: string) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&") const text = async (locator: Locator) => ((await locator.textContent()) ?? "").trim() const modelKey = (state: Probe | null) => (state?.model ? `${state.model.providerID}:${state.model.modelID}` : null) async function probe(page: Page): Promise { return page.evaluate(() => { const win = window as Window & { __opencode_e2e?: { model?: { current?: Probe } } } return win.__opencode_e2e?.model?.current ?? null }) } async function read(page: Page): Promise