"""Extension layer — provider interfaces and contracts.

All providers are defined as @runtime_checkable Protocol classes
for static type checking and runtime isinstance compatibility.

Contracts:
    AgentTransport       - A2A ready transport
    AgentProtocolProvider - A2A protocol adapter factory
    ToolProtocolProvider - MCP / tool protocol adapter
    IdentityProvider     - Local/OIDC/DID identity
    CredentialProvider   - scoped/JIT credentials
    ExecutionProvider    - local/container/microVM execution
    RetrievalProvider    - vector/keyword/graph/GraphRAG/hybrid
    ProvenanceProvider   - metadata/C2PA/watermark/labels
    EventBusProvider     - NATS/Redis Streams/other event bus
"""

from __future__ import annotations

from cyberbrain26.extension_layer.agent_transport import AgentProtocolProvider, AgentTransport
from cyberbrain26.extension_layer.credential_provider import CredentialProvider
from cyberbrain26.extension_layer.event_bus_provider import EventBusProvider
from cyberbrain26.extension_layer.execution_provider import ExecutionProvider
from cyberbrain26.extension_layer.identity_provider import IdentityProvider
from cyberbrain26.extension_layer.provenance_provider import ProvenanceProvider
from cyberbrain26.extension_layer.retrieval_provider import RetrievalProvider
from cyberbrain26.extension_layer.tool_protocol import ToolContext, ToolProtocolProvider

__all__ = [
    "AgentProtocolProvider",
    "AgentTransport",
    "CredentialProvider",
    "EventBusProvider",
    "ExecutionProvider",
    "IdentityProvider",
    "ProvenanceProvider",
    "RetrievalProvider",
    "ToolContext",
    "ToolProtocolProvider",
]
