"""core/evolution/ — 自进化循环决策内核。

诊断、进化、门控、补丁的纯决策逻辑。
只依赖 Protocol 接口和标准库，可搬到无 adapters 的环境用假实现原样运行。
"""

from core.evolution.diagnose import run_diagnosis
from core.evolution.evolve import (
    edit_budget_at,
    evolve_single_skill,
    evolve_single_tool,
    evolve_system_prompt,
    resolve_skill_file,
)
from core.evolution.gate import compute_e_value, gate_decision, probation_verdict
from core.evolution.patch import (
    append_to_appendix,
    apply_patch_with_report,
    extract_appendix_notes,
    momentum_inner,
    replace_appendix_notes,
    replace_momentum,
)
from core.evolution.types import (
    CaseSample,
    DiagnosePrompts,
    DiagnosisResult,
    ErrorAttribution,
    EvolutionRecord,
    EvolutionResult,
    EvolvePrompts,
    GateParams,
    GateVerdict,
    PairResult,
    QuadrantClassification,
    QuestionMetrics,
    RejectedEdit,
    SkillCasePack,
    SkillStepAdherence,
    SpanMetrics,
    SystemCasePack,
    ToolCasePack,
)
from core.evolution.validate import classify_quadrants, compute_accuracy, pair_block

__all__ = [
    "CaseSample",
    "DiagnosePrompts",
    "DiagnosisResult",
    "ErrorAttribution",
    "EvolutionRecord",
    "EvolutionResult",
    "EvolvePrompts",
    "GateParams",
    "GateVerdict",
    "PairResult",
    "QuadrantClassification",
    "QuestionMetrics",
    "RejectedEdit",
    "SkillCasePack",
    "SkillStepAdherence",
    "SpanMetrics",
    "SystemCasePack",
    "ToolCasePack",
    "append_to_appendix",
    "apply_patch_with_report",
    "classify_quadrants",
    "compute_accuracy",
    "compute_e_value",
    "edit_budget_at",
    "evolve_single_skill",
    "evolve_single_tool",
    "evolve_system_prompt",
    "extract_appendix_notes",
    "gate_decision",
    "momentum_inner",
    "pair_block",
    "probation_verdict",
    "replace_appendix_notes",
    "replace_momentum",
    "resolve_skill_file",
    "run_diagnosis",
]
