UNPKG

gepa-ts

Version:

TypeScript implementation of GEPA (Gradient-free Evolution of Prompts and Agents) - Complete port with 100% feature parity

38 lines 1.94 kB
import { ComponentMap, RolloutOutput } from '../types/index.js'; export interface ProgramTrace { i: number; newProgramIdx?: number; [key: string]: any; } export declare class GEPAState { i: number; totalNumEvals: number; numFullDsEvals: number; programs: ComponentMap[]; programParents: number[][]; programFullScoresValSet: number[]; programSubScoresValSet: number[][]; programOutputsValSet: RolloutOutput[][]; paretoFrontValset: number[]; programAtParetoFrontValset: Set<number>[]; fullProgramTrace: ProgramTrace[]; trackBestOutputs: boolean; bestOutputsValset?: Array<Array<[number, RolloutOutput]>>; constructor(trackBestOutputs?: boolean); addProgram(program: ComponentMap, parentProgramIdx: number[], valsetScore: number, valsetOutputs: RolloutOutput[], valsetSubscores: number[], numMetricCallsByDiscovery: number): [number, number]; updateStateWithNewProgram(parentProgramIdx: number[], newProgram: ComponentMap, valsetScore: number, valsetOutputs: RolloutOutput[], valsetSubscores: number[], runDir: string | null, numMetricCallsByDiscoveryOfNewProgram: number): [number, number]; /** * Get all programs that are on the Pareto front for at least one validation instance. * This is used by merge proposer to select candidates. */ getParetoFrontPrograms(): ComponentMap[]; /** * Check if a program dominates another on any validation instance */ isDominated(candidateIdx: number, byIdx: number): boolean; isConsistent(): boolean; save(runDir: string | null): void; static load(runDir: string): GEPAState; } export declare function initializeGEPAState(runDir: string | null, seedCandidate: ComponentMap, valsetEvaluator: (prog: ComponentMap) => Promise<[RolloutOutput[], number[]]> | [RolloutOutput[], number[]], trackBestOutputs?: boolean): GEPAState | Promise<GEPAState>; //# sourceMappingURL=state.d.ts.map