"""
OpenMemo Memory Orchestrator

The Memory Control Plane — decides which memory to use, how much, and in what order.

PRD §19: "Not more memory — the RIGHT memory."

    from openmemo.memory_orchestrator import MemoryOrchestrator

    orchestrator = MemoryOrchestrator(db_path="openmemo.db", max_tokens=2000)

    result = orchestrator.build_prompt(
        task="Deploy my FastAPI backend using docker-compose",
        user_id="alice",
        session_id="session_123",
    )

    print(result["context"])     # full injected prompt
    print(result["task_type"])   # "deployment"
    print(result["mode"])        # "execution"
    print(result["token_usage"]) # e.g. 1450
    print(result["latency_ms"])  # e.g. 42.3
"""

from openmemo.memory_orchestrator.orchestrator import MemoryOrchestrator
from openmemo.memory_orchestrator.task_classifier import TaskClassifier, TASK_TYPES
from openmemo.memory_orchestrator.selector import MemorySelector, SelectionPlan
from openmemo.memory_orchestrator.ranker import MemoryRanker
from openmemo.memory_orchestrator.budget_allocator import BudgetAllocator
from openmemo.memory_orchestrator.prompt_builder import PromptBuilder

__all__ = [
    "MemoryOrchestrator",
    "TaskClassifier", "TASK_TYPES",
    "MemorySelector", "SelectionPlan",
    "MemoryRanker",
    "BudgetAllocator",
    "PromptBuilder",
]
