"""Core modules for Alive."""

from alive.core.composer import CompositionResult, Composer, StepResult, compose
from alive.core.evolve import (
    EvolutionResult,
    EvolutionSuggestion,
    analyze_skill,
    apply_evolution,
    check_and_suggest,
    rollback_skill,
)
from alive.core.planner import ExecutionPlan, PlanStep, display_plan, plan_request
from alive.core.replay import (
    BirthStory,
    BirthStoryRecorder,
    display_birth_story,
    load_birth_story,
    save_birth_story,
)
from alive.core.self_model import (
    GapRecord,
    RequestRecord,
    SelfModel,
    build_self_model,
    display_self_model,
    list_requests,
    record_gap,
    record_request,
)
from alive.core.skill_builder import SkillBuilder, build_skill
from alive.core.skill_registry import SkillInfo, SkillRegistry, get_registry
from alive.core.watch import SkillSuggestion, analyze_history, display_suggestions

__all__ = [
    "BirthStory",
    "BirthStoryRecorder",
    "CompositionResult",
    "Composer",
    "EvolutionResult",
    "EvolutionSuggestion",
    "ExecutionPlan",
    "GapRecord",
    "PlanStep",
    "RequestRecord",
    "SelfModel",
    "SkillBuilder",
    "SkillInfo",
    "SkillRegistry",
    "SkillSuggestion",
    "StepResult",
    "analyze_history",
    "analyze_skill",
    "apply_evolution",
    "build_self_model",
    "build_skill",
    "check_and_suggest",
    "compose",
    "display_birth_story",
    "display_plan",
    "display_self_model",
    "display_suggestions",
    "get_registry",
    "list_requests",
    "load_birth_story",
    "plan_request",
    "record_gap",
    "record_request",
    "rollback_skill",
    "save_birth_story",
]
