import logging

__author__ = "Globant"
__version__ = "0.1.0b1"

logger = logging.getLogger("pygeai_orchestration")
logger.addHandler(logging.NullHandler())

from pygeai_orchestration.core import (
    BaseAgent,
    AgentConfig,
    BaseOrchestrator,
    OrchestratorConfig,
    BasePattern,
    PatternConfig,
    PatternResult,
    PatternType,
    BaseTool,
    ToolConfig,
    ToolResult,
    ToolCategory,
    GEAIAgent,
    GEAIOrchestrator,
    Message,
    MessageRole,
    Conversation,
    Context,
    ContextManager,
    State,
    StateStatus,
    StateManager,
    Memory,
    MemoryEntry,
    MemoryStore,
    get_config,
    OrchestrationError,
    PatternExecutionError,
    PatternConfigurationError,
    AgentError,
    ToolExecutionError,
    StateError,
    ValidationError,
)

from pygeai_orchestration.patterns import (
    ReflectionPattern,
    ToolUsePattern,
    ReActPattern,
    PlanningPattern,
    PlanStep,
    MultiAgentPattern,
    AgentRole,
)

__all__ = [
    "__version__",
    "logger",
    "BaseAgent",
    "AgentConfig",
    "BaseOrchestrator",
    "OrchestratorConfig",
    "BasePattern",
    "PatternConfig",
    "PatternResult",
    "PatternType",
    "BaseTool",
    "ToolConfig",
    "ToolResult",
    "ToolCategory",
    "GEAIAgent",
    "GEAIOrchestrator",
    "Message",
    "MessageRole",
    "Conversation",
    "Context",
    "ContextManager",
    "State",
    "StateStatus",
    "StateManager",
    "Memory",
    "MemoryEntry",
    "MemoryStore",
    "get_config",
    "OrchestrationError",
    "PatternExecutionError",
    "PatternConfigurationError",
    "AgentError",
    "ToolExecutionError",
    "StateError",
    "ValidationError",
    "ReflectionPattern",
    "ToolUsePattern",
    "ReActPattern",
    "PlanningPattern",
    "PlanStep",
    "MultiAgentPattern",
    "AgentRole",
]
