"""RLM Neo-Cortex -- Living Memory Bloodstream Platform.

Package structure:
    contracts.py       -- Shared types, enums, dataclasses, Protocol interfaces
    gateway.py         -- Module 1: Memory Gateway (FastAPI service)
    entitlement.py     -- Module 2: Entitlement Ledger
    surprise.py        -- Module 3: Surprise Integration wrapper
    decay.py           -- Module 4: Ebbinghaus Decay Scheduler
    feedback.py        -- Module 5: Feedback Collection Pipeline
    partitioning.py    -- Module 6: Tenant Partitioning

Integration layer (wires RLM into SubAIVA instances):
    config.py          -- Environment-based configuration (all Elestio endpoints)
    middleware.py      -- Tenant ID extraction middleware (JWT or API key)
    app.py             -- FastAPI application (port 8100, mounts all routers)
    mcp_bridge.py      -- Bridge: MCP tool calls → RLM MemoryGateway pipeline

Run the integration server:
    uvicorn core.rlm.app:app --host 0.0.0.0 --port 8100
"""

from .contracts import (
    # Constants
    DEFAULT_DECAY_HALF_LIFE,
    EMBEDDING_DIM,
    MAX_CONTENT_LENGTH,
    REDIS_TTL_ENTITLEMENT,
    SURPRISE_THRESHOLD,
    # Enums
    CustomerTier,
    FeedbackSignal,
    MemoryTier,
    # Data classes
    EntitlementManifest,
    MemoryRecord,
    PreferencePair,
    # Protocols
    DecaySchedulerProtocol,
    EntitlementLedgerProtocol,
    FeedbackCollectorProtocol,
    MemoryGatewayProtocol,
    SurpriseIntegrationProtocol,
    TenantPartitionProtocol,
)

__all__ = [
    # Constants
    "EMBEDDING_DIM",
    "DEFAULT_DECAY_HALF_LIFE",
    "SURPRISE_THRESHOLD",
    "MAX_CONTENT_LENGTH",
    "REDIS_TTL_ENTITLEMENT",
    # Enums
    "MemoryTier",
    "CustomerTier",
    "FeedbackSignal",
    # Data classes
    "MemoryRecord",
    "EntitlementManifest",
    "PreferencePair",
    # Protocols
    "MemoryGatewayProtocol",
    "EntitlementLedgerProtocol",
    "SurpriseIntegrationProtocol",
    "DecaySchedulerProtocol",
    "FeedbackCollectorProtocol",
    "TenantPartitionProtocol",
]
