"""Core abstractions for the AI system."""

from .interfaces import (
    AgentComponent,
    AgentInput,
    AgentOutput,
    ModelSettings,
    ToolComponent,
)

# Core data structures
from .vs_core import Node, NodeMetadata, VSFile

# Configuration and tracking
from .config_loader import ConfigurationLoader
from .tracking import (
    TrackingManager,
    TrackingMixin,
    track_method,
    get_tracking_manager,
)

# Configuration schemas
from .config_schema import (
    AgentConfigSchema,
    ToolConfigSchema,
    ModelConfigSchema,
    PromptConfigSchema,
    ConfigFileSchema,
    MethodInputSchema,
    MethodOutputSchema,
    MethodCallRecordSchema,
    TrackingSessionSchema,
    EvaluationCriteriaSchema,
    EvaluationResultSchema,
)

__all__ = [
    # Core interfaces
    "AgentComponent",
    "AgentInput",
    "AgentOutput",
    "ModelSettings",
    "ToolComponent",
    # Core data structures
    "Node",
    "NodeMetadata",
    "VSFile",
    # Configuration
    "ConfigurationLoader",
    "AgentConfigSchema",
    "ToolConfigSchema",
    "ModelConfigSchema",
    "PromptConfigSchema",
    "ConfigFileSchema",
    # Tracking
    "TrackingManager",
    "TrackingMixin",
    "track_method",
    "get_tracking_manager",
    "MethodInputSchema",
    "MethodOutputSchema",
    "MethodCallRecordSchema",
    "TrackingSessionSchema",
    # Evaluation
    "EvaluationCriteriaSchema",
    "EvaluationResultSchema",
]
