import assert from "node:assert/strict"; import { readFile } from "node:fs/promises"; import test from "node:test"; test("Quick Pane polls snapshots, renders answers, and gates handoff", async () => { const source = await readFile( new URL("../ui/src/quick-pane/QuickPane.tsx", import.meta.url), "utf8", ); assert.match(source, /get_session_runtime_snapshot/); assert.match(source, /setInterval\(\(\) => void refresh\(\), 800\)/); assert.match(source, /\{displayedAnswer &&
\{displayedAnswer\}<\/pre>\}/);
  assert.match(source, /const canContinue = !!escalation \|\| \(!!runtime && !!error\)/);
  assert.match(source, /\{canContinue && \(/);
});

test("main Settings uses shared catalog selectors with provider derived from models", async () => {
  const [pane, app, catalog, persistence] = await Promise.all([
    readFile(
      new URL("../ui/src/quick-pane/QuickPane.tsx", import.meta.url),
      "utf8",
    ),
    readFile(new URL("../ui/src/App.tsx", import.meta.url), "utf8"),
    readFile(new URL("../ui/src/model-catalog.ts", import.meta.url), "utf8"),
    readFile(
      new URL("../ui/src/workspace/persistence.ts", import.meta.url),
      "utf8",
    ),
  ]);
  assert.match(catalog, /invoke<\{ models\?: Model\[\] \}>\("get_model_catalog"\)/);
  assert.match(app, /getModelCatalog\(\)/);
  assert.match(app, /Quick model[\s\S]*?