"""Pydantic models for Sibyl knowledge graph operations."""

from sibyl_core.models.agents import (
    AgentCheckpoint,
    AgentRecord,
    AgentSpawnSource,
    AgentStatus,
    AgentType,
    ApprovalRecord,
    ApprovalStatus,
    ApprovalType,
    QualityGateType,
    WorktreeRecord,
    WorktreeStatus,
)
from sibyl_core.models.entities import (
    ConfigFile,
    Entity,
    EntityType,
    Episode,
    KnowledgeSource,
    Language,
    Pattern,
    Relationship,
    RelationshipType,
    Rule,
    SlashCommand,
    Template,
    Tool,
    Topic,
)
from sibyl_core.models.projects import (
    SHARED_PROJECT_DESCRIPTION,
    SHARED_PROJECT_NAME,
    SHARED_PROJECT_SLUG,
    is_shared_project_slug,
)
from sibyl_core.models.responses import (
    EntityResponse,
    GraphStatsResponse,
    ListResponse,
    MutationResponse,
    SearchResult,
    SearchResultItem,
)
from sibyl_core.models.sources import (
    Community,
    CrawlStatus,
    Document,
    Source,
    SourceType,
)
from sibyl_core.models.tasks import (
    AuthorType,
    Epic,
    EpicStatus,
    ErrorPattern,
    Milestone,
    Note,
    Project,
    ProjectStatus,
    SimilarTaskInfo,
    Task,
    TaskComplexity,
    TaskEstimate,
    TaskKnowledgeSuggestion,
    TaskPriority,
    TaskStatus,
    Team,
    TimeEntry,
)
from sibyl_core.models.tools import (
    AddLearningInput,
    GetLanguageGuideInput,
    GetRelatedInput,
    GetTemplateInput,
    ListEntitiesInput,
    RecordDebuggingInput,
    SearchInput,
)

__all__ = [
    # Shared project constants
    "SHARED_PROJECT_DESCRIPTION",
    "SHARED_PROJECT_NAME",
    "SHARED_PROJECT_SLUG",
    # Tool inputs
    "AddLearningInput",
    # Agent Harness
    "AgentCheckpoint",
    "AgentRecord",
    "AgentSpawnSource",
    "AgentStatus",
    "AgentType",
    "ApprovalRecord",
    "ApprovalStatus",
    "ApprovalType",
    # Notes
    "AuthorType",
    # Documentation crawling
    "Community",
    # Base entities
    "ConfigFile",
    "CrawlStatus",
    "Document",
    "Entity",
    # Responses
    "EntityResponse",
    "EntityType",
    # Task management
    "Epic",
    "EpicStatus",
    "Episode",
    "ErrorPattern",
    "GetLanguageGuideInput",
    "GetRelatedInput",
    "GetTemplateInput",
    "GraphStatsResponse",
    "KnowledgeSource",
    "Language",
    "ListEntitiesInput",
    "ListResponse",
    "Milestone",
    "MutationResponse",
    "Note",
    "Pattern",
    "Project",
    "ProjectStatus",
    "QualityGateType",
    "RecordDebuggingInput",
    "Relationship",
    "RelationshipType",
    "Rule",
    "SearchInput",
    "SearchResult",
    "SearchResultItem",
    "SimilarTaskInfo",
    "SlashCommand",
    "Source",
    "SourceType",
    "Task",
    "TaskComplexity",
    "TaskEstimate",
    "TaskKnowledgeSuggestion",
    "TaskPriority",
    "TaskStatus",
    "Team",
    "Template",
    "TimeEntry",
    "Tool",
    "Topic",
    # Agent Harness (worktree)
    "WorktreeRecord",
    "WorktreeStatus",
    "is_shared_project_slug",
]
