export interface EvalInput { input: string; output: string; expected?: string; toolCalls?: Array<{ tool: string; input: unknown; output: unknown; }>; } export interface EvalScore { pass: boolean; reasoning: string; } export type JudgeFn = (prompt: string) => Promise<{ text: string; }>; export interface JudgeInput extends EvalInput { llm: JudgeFn; } export type CheckFn = (input: EvalInput) => EvalScore | Promise; export type JudgeHandlerFn = (input: JudgeInput) => EvalScore | Promise; export interface BuiltEval { readonly name: string; readonly description?: string; readonly evalType: 'check' | 'judge'; readonly modelId: string | null; readonly credentialName: string | null; readonly _run: (input: EvalInput) => Promise; } export interface EvalRunResult { input: string; output: string; expected?: string; scores: Record; } export interface EvalResults { runs: EvalRunResult[]; summary: Record; }