/** * Eval Base - Evaluation framework for agents * * Provides base evaluator classes and result types. */ /** * Evaluation criteria */ export interface EvalCriteria { name: string; description: string; weight: number; evaluator: (input: string, output: string, context?: any) => Promise | number; } /** * Evaluation result */ export interface EvalResult { id: string; timestamp: number; input: string; output: string; scores: Record; totalScore: number; passed: boolean; metadata?: Record; } /** * Evaluation summary */ export interface EvalSummary { totalRuns: number; passedRuns: number; failedRuns: number; passRate: number; avgScore: number; minScore: number; maxScore: number; scoresByCategory: Record; } /** * Evaluator configuration */ export interface EvaluatorConfig { /** Criteria to evaluate */ criteria?: EvalCriteria[]; /** Pass threshold (0-1) */ passThreshold?: number; /** Enable logging */ logging?: boolean; } /** * Evaluator - Base class for agent evaluation */ export declare class Evaluator { readonly id: string; private criteria; private passThreshold; private logging; private results; constructor(config?: EvaluatorConfig); /** * Add evaluation criteria */ addCriteria(criteria: EvalCriteria): void; /** * Remove criteria by name */ removeCriteria(name: string): boolean; /** * Evaluate an input/output pair */ evaluate(input: string, output: string, context?: any): Promise; /** * Get all results */ getResults(): EvalResult[]; /** * Get summary */ getSummary(): EvalSummary; /** * Clear results */ clear(): void; } /** * Built-in criteria: Relevance */ export declare function relevanceCriterion(weight?: number): EvalCriteria; /** * Built-in criteria: Length */ export declare function lengthCriterion(minLength: number, maxLength: number, weight?: number): EvalCriteria; /** * Built-in criteria: Contains keywords */ export declare function containsKeywordsCriterion(keywords: string[], weight?: number): EvalCriteria; /** * Built-in criteria: No harmful content */ export declare function noHarmfulContentCriterion(weight?: number): EvalCriteria; /** * Create an evaluator */ export declare function createEvaluator(config?: EvaluatorConfig): Evaluator; /** * Create evaluator with default criteria */ export declare function createDefaultEvaluator(passThreshold?: number): Evaluator; export default Evaluator;