"""
Infospace analysis package.

Provides tooling for extracting structured metadata from entity markdown
files and analysing infospace collections.
"""

from .models import EntityMeta
from .entity_parser import parse_entity_file, parse_entity_directory
from .schema import (
    ECONOMIC_ENTITY_SCHEMA,
    EntitySchema,
    EnumConstraint,
    SectionRequirement,
    SectionRule,
)
from .validator import (
    BatchComplianceResult,
    ComplianceDiagnostic,
    ComplianceResult,
    validate_entities,
    validate_entity,
)
from .evaluation import (
    EntityEvaluation,
    EvaluationSnapshot,
    MetricChange,
    MetricValue,
    ScoreChange,
    ScoreEntry,
    SnapshotDiff,
)
from .evaluation_io import (
    append_to_history,
    diff_snapshots,
    read_entity_evaluation,
    read_history,
    read_snapshot,
    write_entity_evaluation,
    write_snapshot,
)
from .config import (
    DisciplineBinding,
    InfospaceConfig,
    PipelineConfig,
    PipelineStage,
    SchemaRegistry,
    TopicConfig,
    ViabilityThreshold,
    find_infospace_config,
    load_infospace_config,
    save_infospace_config,
)
from .state import (
    InfospaceState,
    ViabilityResult,
    build_state,
)

__all__ = [
    "EntityMeta",
    "parse_entity_file",
    "parse_entity_directory",
    # Schema
    "ECONOMIC_ENTITY_SCHEMA",
    "EntitySchema",
    "EnumConstraint",
    "SectionRequirement",
    "SectionRule",
    # Validator
    "BatchComplianceResult",
    "ComplianceDiagnostic",
    "ComplianceResult",
    "validate_entities",
    "validate_entity",
    # Evaluation models
    "EntityEvaluation",
    "EvaluationSnapshot",
    "MetricChange",
    "MetricValue",
    "ScoreChange",
    "ScoreEntry",
    "SnapshotDiff",
    # Evaluation I/O
    "append_to_history",
    "diff_snapshots",
    "read_entity_evaluation",
    "read_history",
    "read_snapshot",
    "write_entity_evaluation",
    "write_snapshot",
    # Config
    "DisciplineBinding",
    "InfospaceConfig",
    "PipelineConfig",
    "PipelineStage",
    "SchemaRegistry",
    "TopicConfig",
    "ViabilityThreshold",
    "find_infospace_config",
    "load_infospace_config",
    "save_infospace_config",
    # State
    "InfospaceState",
    "ViabilityResult",
    "build_state",
]
