/** * Shared, entrypoint-agnostic construction of the concrete `runCheck` * dependencies (engine adapters, judge client, node fs). Both the CLI (M11) * and the MCP server (M15) consume this so the fiddly judge-resolution dance * lives in exactly one place. It lives in `core/` so `mcp/` never has to * import `cli/` (hard rule #1). * * It returns everything EXCEPT `confirm` and `onProgress` - the two * entrypoint-specific pieces (a TTY prompt vs. non-interactive; a spinner vs. * MCP progress notifications). The caller attaches those. */ import { CostGuard } from '../costs.js'; import type { Fetcher } from '../fetcher/index.js'; import type { EngineId } from '../types.js'; import type { RunCheckDeps } from './check.js'; export interface BuildCheckDepsInput { env: Record; fetcher: Fetcher; engines?: EngineId[]; availableEngines: EngineId[]; judgeModel?: string; guard?: CostGuard; now?: () => string; } export interface BuiltCheckDeps { deps: Omit; judgeNotice?: string; /** * Set when the resolved judge has a MEASURED quality problem. Entrypoints * must surface it: it warns that this run's competitor list may be invented * (rule #6). Kept separate from {@link judgeNotice}, which only explains * which judge was picked and is silent on quality. */ judgeQualityWarning?: string; } export declare function buildCheckDeps(input: BuildCheckDepsInput): Promise;