GEPA
Reflective mutation over execution feedback, with Pareto-frontier candidate selection.
"""GEPA scaffold — one module per component.
population.py -> GepaCandidatePool (unbounded pool + Pareto envelope + acceptance)
selection_policy.py -> ParetoCandidateSelector (dominance pruning + frequency sampling)
prompt_builder.py -> GepaReflectionPromptBuilder (the reflection template over ASI feedback)
proposer.py -> GepaReflectiveMutationProposer (one reflection call -> a full replacement)
evaluator.py -> GepaEvaluator (task-supplied)
memory.py -> GepaMemory (none)
scaffold.py -> GepaScaffold (the orchestrator that composes the six)
"""
from .evaluator import GepaEvaluator
from .memory import GepaMemory
from .population import GepaCandidatePool
from .prompt_builder import GepaReflectionPromptBuilder
from .proposer import GepaReflectiveMutationProposer, ReflectiveRewrite
from .scaffold import GepaScaffold
from .selection_policy import ParetoCandidateSelector
__all__ = [
"GepaScaffold",
"GepaCandidatePool", "ParetoCandidateSelector", "GepaReflectionPromptBuilder",
"GepaReflectiveMutationProposer", "ReflectiveRewrite", "GepaEvaluator", "GepaMemory",
]