"""
BGF Agents - Autonomous Data Factory Agents

Five-agent system for data factory management:
- MasterOrchestratorAgent: System health monitoring and ETL orchestration
- HealerAgent: Self-healing with circuit breakers and anomaly detection
- GovernorAgent: Data governance, quality, lineage, and metadata
- CollectorAgent: Multi-tier data collection (HTTP/JS/Firecrawl/Browser)
- AnalyticsAgent: Statistical analysis, trends, anomalies, reports

Usage:
    from bgf_agents import MasterOrchestratorAgent, HealerAgent, GovernorAgent
    from bgf_agents import CollectorAgent, AnalyticsAgent
    from bgf_agents import Config, get_config

    # Using local LLM (Docker Model Runner)
    agent = MasterOrchestratorAgent(
        provider='openai',
        model='ai/gpt-oss',
        base_url='http://localhost:12434/v1'
    )
    result = await agent.run('Check system health')

    # Using Anthropic API
    agent = MasterOrchestratorAgent(
        provider='anthropic',
        api_key='sk-ant-...'
    )

    # Data collection with automatic tier detection
    collector = CollectorAgent()
    result = await collector.smart_collect('https://example.com')

    # Statistical analysis
    analytics = AnalyticsAgent()
    result = analytics.analyze_statistics([1, 2, 3, 4, 5])

CLI:
    bgf-agents list              # List available agents and tools
    bgf-agents health            # Check system health
    bgf-agents run <agent>       # Run an agent
    bgf-agents config show       # Show configuration
"""

__version__ = "0.1.0"

from bgf_agents.orchestrator import MasterOrchestratorAgent
from bgf_agents.healer import HealerAgent
from bgf_agents.governor import GovernorAgent
from bgf_agents.scheduler import MultiAgentScheduler
from bgf_agents.config import Config, get_config, set_config, reload_config
from bgf_agents.agents import (
    CollectorAgent,
    CollectorTier,
    CollectionStatus,
    CollectionResult,
    AnalyticsAgent,
    AnalysisType,
    AnalysisResult,
    TrendDirection,
)
from bgf_agents.types import (
    AgentExecutionResult,
    AgentDecision,
    AgentPriority,
    HealthStatus,
    SystemHealth,
    ApprovalStatus,
    TriggerType,
    HUMAN_APPROVAL_REQUIRED,
)

__all__ = [
    # Core Agents
    "MasterOrchestratorAgent",
    "HealerAgent",
    "GovernorAgent",
    "MultiAgentScheduler",
    # Extended Agents
    "CollectorAgent",
    "AnalyticsAgent",
    # Configuration
    "Config",
    "get_config",
    "set_config",
    "reload_config",
    # Collector Types
    "CollectorTier",
    "CollectionStatus",
    "CollectionResult",
    # Analytics Types
    "AnalysisType",
    "AnalysisResult",
    "TrendDirection",
    # Core Types
    "AgentExecutionResult",
    "AgentDecision",
    "AgentPriority",
    "HealthStatus",
    "SystemHealth",
    "ApprovalStatus",
    "TriggerType",
    "HUMAN_APPROVAL_REQUIRED",
]
