/** * Task derivation for `openlore prove` (Spec 25 Q2). * * The benchmark's win shows up on orientation questions about an unfamiliar * codebase. We auto-derive such questions from the user's own call graph, with * an oracle taken from the graph itself (so correctness is verifiable without a * human). Pure + deterministic so it unit-tests without a repo. */ /** Minimal call-graph fact per function — adapted from the EdgeStore by the CLI. */ export interface GraphFact { name: string; filePath: string; callerNames: string[]; calleeNames: string[]; isEntryPoint: boolean; } export interface ProveTask { id: string; prompt: string; /** Answer is correct if it contains AT LEAST ONE of these (case-insensitive). */ mustIncludeAny: string[]; /** Short note on what structural fact this probes. */ probes: string; } /** True iff the agent's answer contains at least one oracle substring. */ export declare function scoreAnswer(task: ProveTask, answer: string): boolean; /** * Derive up to `max` orientation tasks from graph facts. Deterministic: facts * are sorted by a stable key before selection so the same graph yields the same * tasks. Tasks use forgiving, structurally-grounded oracles (a file path, or any * one of many valid callers/callees) so a correct answer is reliably recognized — * an earlier "which function has the most callers?" task was too ambiguous (the * agent named a plausible-but-different function) and is gone. Returns [] when * the graph is too sparse to form an oracle-able task. */ export declare function deriveTasks(facts: GraphFact[], max?: number): ProveTask[]; //# sourceMappingURL=tasks.d.ts.map