/** * The `/eval` TUI command: run a benchmark task inside the interactive session, so every * tool call and observation is visible live, then score it with the same harness the * batch runner uses. * * /eval list every installed harness's benchmarks, suites, tasks * /eval 24 run a task of this session's default benchmark * /eval webarena 24 run task 24 of a named benchmark * /eval androidworld ContactsAddContact * * All benchmark knowledge (environments, scoring, reports) stays in the eval harnesses; * this file only shells out to them. Each benchmark maps to a harness CLI and to the * DRIVER it needs — the session's driver is frozen at bootstrap, so a mismatch is an * honest "relaunch with PI_GUI_DRIVER=…", never a mid-session driver swap. * * Scoring goes through the prepare process's hold protocol (pge_core/protocol.py): * benchmarks like AndroidWorld judge from LIVE environment state, so the verdict must * come from the process that holds the environment. */ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import type { Profile } from "../../agent/session.ts"; export declare function registerEvalCommand(pi: ExtensionAPI, profile: Profile): void;