import type { AgentConfig } from "../types/config.js"; import type { RunResult } from "../types/output.js"; export interface JudgeCallOptions { /** Scenario key for the judge run (e.g., "__env_eval__"). */ scenarioKey: string; /** Human-readable name for the judge run. */ scenarioName: string; /** * Candidate judge agents in precedence order. When omitted, the judge runs * as the same agent that produced the transcript (the agent scores itself). * Otherwise see {@link resolveJudgeAgent} for selection rules. */ judging?: AgentConfig[]; } /** * Pick the judge agent for a run from a precedence-ordered list. * * Prefers the first entry whose adapter name differs from the run's own * agent so a fresh perspective evaluates the work. If every entry matches * the run's own agent (e.g. a single-agent benchmark), the first entry is * still used — the configuration represents an intent to use a * specific judge, even if it happens to coincide with the run's agent. */ export declare function resolveJudgeAgent(runResult: RunResult, judging: AgentConfig[] | undefined): AgentConfig; /** * Build a human-readable identifier for a judge agent: `|` when * a model is pinned, otherwise just ``. Mirrors the runtime agent name * format produced by `normalizeAgents` in the runner so logs and report text * line up. */ export declare function formatJudgeLabel(judging: AgentConfig): string; /** * Call an LLM judge using either a configured judge agent (when `options.judging` * is set) or the same adapter as the test run. * * Uses the agent's original workspace when available so the judge can * independently verify the agent's actual work (files created, endpoints * deployed, etc.). Falls back to a disposable temp directory only when * no workspace is set (e.g. programmatic API usage without the runner). */ export declare function callJudge(runResult: RunResult, prompt: string, options: JudgeCallOptions): Promise; //# sourceMappingURL=judge.d.ts.map