"""Fischer AgentKit - Unified Agent Framework"""

from agentkit.core.base import BaseAgent
from agentkit.core.config_driven import AgentConfig, ConfigDrivenAgent
from agentkit.core.protocol import (
    AgentCapability,
    AgentStatus,
    HandoffMessage,
    TaskMessage,
    TaskProgress,
    TaskResult,
    TaskStatus,
)
from agentkit.core.react import ReActEngine, ReActResult, ReActStep
from agentkit.llm.gateway import LLMGateway
from agentkit.llm.protocol import LLMProvider, LLMRequest, LLMResponse, TokenUsage, ToolCall
from agentkit.skills.base import Skill, SkillConfig, IntentConfig, QualityGateConfig
from agentkit.skills.registry import SkillRegistry
from agentkit.router.intent import IntentRouter, RoutingResult
from agentkit.quality.gate import QualityGate, QualityResult, QualityCheck
from agentkit.quality.output import OutputStandardizer, StandardOutput, OutputMetadata

__version__ = "0.1.0"

__all__ = [
    # Core
    "BaseAgent",
    "AgentConfig",
    "ConfigDrivenAgent",
    # Protocol
    "AgentCapability",
    "AgentStatus",
    "HandoffMessage",
    "TaskMessage",
    "TaskProgress",
    "TaskResult",
    "TaskStatus",
    # ReAct
    "ReActEngine",
    "ReActResult",
    "ReActStep",
    # LLM
    "LLMGateway",
    "LLMProvider",
    "LLMRequest",
    "LLMResponse",
    "TokenUsage",
    "ToolCall",
    # Skills
    "Skill",
    "SkillConfig",
    "IntentConfig",
    "QualityGateConfig",
    "SkillRegistry",
    # Router
    "IntentRouter",
    "RoutingResult",
    # Quality
    "QualityGate",
    "QualityResult",
    "QualityCheck",
    "OutputStandardizer",
    "StandardOutput",
    "OutputMetadata",
]
