"""Evaluation framework for AgentByte."""

from .base import BaseEvalJudge, BaseEvalRunner, BaseEvalTarget
from .checks import (
    CheckResult,
    EvalCheck,
    EvalItemReport,
    EvalNotPassedError,
    EvalReport,
    LocalEvaluator,
    evaluator,
    keyword_check,
    threshold_gate,
    tool_call_args_match,
    tool_call_args_match_check,
    tool_calls_present,
    tool_calls_present_check,
)
from .comparison import compare_configurations
from .eval_dataset import (
    EvalDatasetRecord,
    RAGEvalContext,
    SQLEvalContext,
    save_eval_dataset,
    tasks_from_eval_dataset,
)
from .judges import (
    CompositeJudge,
    ContainsJudge,
    ExactMatchJudge,
    FuzzyMatchJudge,
    LLMEvalJudge,
    PairwiseJudge,
)
from .pairwise import PairwiseRunner, compare_pairwise
from .runner import EvalRunner
from .targets import AgentEvalTarget, ModelEvalTarget, OrchestratorEvalTarget
from .types import (
    AnswerStrategy,
    EvalResult,
    EvalScore,
    EvalTask,
    EvalTrajectory,
    ExpectedToolCall,
    PairwiseResult,
)

__all__ = [
    "AnswerStrategy",
    "ExpectedToolCall",
    "EvalTask",
    "EvalTrajectory",
    "EvalScore",
    "EvalResult",
    "BaseEvalTarget",
    "BaseEvalJudge",
    "BaseEvalRunner",
    "ExactMatchJudge",
    "ContainsJudge",
    "FuzzyMatchJudge",
    "LLMEvalJudge",
    "CompositeJudge",
    "ModelEvalTarget",
    "AgentEvalTarget",
    "OrchestratorEvalTarget",
    "EvalRunner",
    "compare_configurations",
    "EvalDatasetRecord",
    "RAGEvalContext",
    "SQLEvalContext",
    "save_eval_dataset",
    "tasks_from_eval_dataset",
    "PairwiseResult",
    "PairwiseJudge",
    "PairwiseRunner",
    "compare_pairwise",
    "CheckResult",
    "EvalCheck",
    "tool_calls_present",
    "tool_calls_present_check",
    "tool_call_args_match",
    "tool_call_args_match_check",
    "keyword_check",
    "evaluator",
    "LocalEvaluator",
    "threshold_gate",
    "EvalItemReport",
    "EvalReport",
    "EvalNotPassedError",
]
