"""Synaptopus: a multi-architecture artificial neural systems lab."""

from .analysis import SequenceAnalysis, analyze_sequence, first_order_conditional_entropy, shannon_entropy
from .artifacts import (
    ARTIFACT_SCHEMA_VERSION,
    ArtifactEnvelope,
    ArtifactManifest,
    ArtifactManifestEntry,
    make_artifact_envelope,
    save_artifact_json,
    save_manifest_json,
)
from .art1 import ART1Category, ART1Network, ART1Params, ART1Result
from .architectures import (
    AcceptancePolicy,
    Categorizer,
    Critic,
    Generator,
    PolicyDecision,
    StateTransition,
)
from .backprop import BackpropLayerState, BackpropNetwork, BackpropResult
from .demo_registry import available_demo_names, get_demo_definition
from .examples import (
    ParityPressureState,
    XorDemoState,
    build_parity_pressure_demo,
    build_xor_novelty_demo,
)
from .graph import (
    FunctionalNode,
    GraphEdgeSpec,
    GraphNode,
    GraphNodeResult,
    GraphNodeSpec,
    GraphSchema,
    GraphValue,
    categorizer_node,
    critic_node,
    generator_node,
    policy_node,
)
from .hopfield_build import (
    HopfieldGridShape,
    accumulate_sequence_transitions,
    apply_grid_inhibition,
    clear_diagonal,
    grid_index,
    zero_weight_matrix,
)
from .hopfield import HopfieldNetwork, HopfieldNetworkState, HopfieldParams, HopfieldRunResult
from .orchestration import CooperativeSystem, HybridStepMetadata
from .reporting import save_run_report_json, summarize_execution, summarize_sequence_run
from .runtime import (
    ExecutionRecord,
    StepTrace,
    merge_execution_records,
    run_until_acceptance,
    run_until_acceptance_count,
)
from .serialization import (
    SerializedExecutionRecord,
    SerializedStepTrace,
    deserialize_execution_record,
    deserialize_step_trace,
    save_execution_record_json,
    serialize_execution_record,
    serialize_step_trace,
    to_jsonable,
)
from .snapshots import (
    DemoSnapshot,
    create_demo_snapshot,
    load_demo_snapshot_json,
    restore_demo_snapshot,
    resume_demo_snapshot,
    save_demo_snapshot_json,
)
from .types import RunReport

__all__ = [
    "AcceptancePolicy",
    "ARTIFACT_SCHEMA_VERSION",
    "ART1Category",
    "ART1Network",
    "ART1Params",
    "ART1Result",
    "ArtifactEnvelope",
    "ArtifactManifest",
    "ArtifactManifestEntry",
    "BackpropLayerState",
    "BackpropNetwork",
    "BackpropResult",
    "Categorizer",
    "CooperativeSystem",
    "Critic",
    "DemoSnapshot",
    "ExecutionRecord",
    "FunctionalNode",
    "GraphEdgeSpec",
    "Generator",
    "GraphNode",
    "GraphNodeResult",
    "GraphNodeSpec",
    "GraphSchema",
    "GraphValue",
    "HybridStepMetadata",
    "HopfieldGridShape",
    "HopfieldNetwork",
    "HopfieldNetworkState",
    "HopfieldParams",
    "HopfieldRunResult",
    "PolicyDecision",
    "RunReport",
    "SequenceAnalysis",
    "StateTransition",
    "StepTrace",
    "ParityPressureState",
    "XorDemoState",
    "__version__",
    "analyze_sequence",
    "apply_grid_inhibition",
    "build_parity_pressure_demo",
    "build_xor_novelty_demo",
    "available_demo_names",
    "categorizer_node",
    "clear_diagonal",
    "create_demo_snapshot",
    "critic_node",
    "deserialize_execution_record",
    "deserialize_step_trace",
    "first_order_conditional_entropy",
    "generator_node",
    "get_demo_definition",
    "grid_index",
    "load_demo_snapshot_json",
    "make_artifact_envelope",
    "merge_execution_records",
    "policy_node",
    "restore_demo_snapshot",
    "run_until_acceptance",
    "run_until_acceptance_count",
    "save_artifact_json",
    "save_demo_snapshot_json",
    "save_run_report_json",
    "save_manifest_json",
    "save_execution_record_json",
    "serialize_execution_record",
    "serialize_step_trace",
    "shannon_entropy",
    "summarize_execution",
    "summarize_sequence_run",
    "SerializedExecutionRecord",
    "SerializedStepTrace",
    "to_jsonable",
    "resume_demo_snapshot",
    "zero_weight_matrix",
    "accumulate_sequence_transitions",
]

__version__ = "0.1.0"
