"""
Nexus — A protocol-native, topology-adaptive, durable multi-agent framework.

Core design principles:
  1. Minimal primitives, emergent complexity (Agent + Task + Handoff)
  2. Protocol-native: built on A2A (agent↔agent) and MCP (agent↔tool)
  3. Durable execution: checkpoint, recover, time-travel
  4. Adaptive topology: static graph / dynamic router / self-organizing
  5. Observable by default: tracing, metrics, token accounting
"""

from nexus.api import Team, run  # noqa: F401 — high-level API
from nexus.core.agent import Agent
from nexus.core.handoff import Handoff, HandoffMode
from nexus.core.message import Message, Role
from nexus.core.state import SharedState
from nexus.core.task import Task, TaskStatus
from nexus.types import AgentCapability, TaskConstraints

__version__ = "0.1.0"

__all__ = [
    # High-level API
    "Team",
    "run",
    # Core primitives
    "Agent",
    "Task",
    "TaskStatus",
    "Handoff",
    "HandoffMode",
    "SharedState",
    "Message",
    "Role",
    "AgentCapability",
    "TaskConstraints",
    "__version__",
]
