"""LSP (Language Server Protocol) integration package.

Provides the registry, runtime, tool adapter, server stub, protocol
client, transport, and lifecycle manager for managing language servers
within CleverAgents.

The :class:`LspRuntime` manages LSP server processes and provides
code intelligence (diagnostics, completions) to actors.  When no
runtime is supplied to :class:`LspToolAdapter`, tool handlers fall
back to raising :class:`LspNotAvailableError`.

Usage::

    from cleveragents.lsp import (
        LspRegistry,
        LspRuntime,
        LspServer,
        LspToolAdapter,
        LspServerConfig,
        LspCapability,
        LspClient,
        LspLifecycleManager,
        LspTransport,
        StdioTransport,
    )
"""

from cleveragents.lsp.client import LspClient
from cleveragents.lsp.discovery import LanguageDiscovery
from cleveragents.lsp.errors import (
    LspError,
    LspNotAvailableError,
    LspServerNotFoundError,
)
from cleveragents.lsp.lifecycle import LspLifecycleManager
from cleveragents.lsp.models import (
    LspBinding,
    LspCapability,
    LspServerConfig,
    LspTransport,
)
from cleveragents.lsp.registry import LspRegistry
from cleveragents.lsp.runtime import LspRuntime
from cleveragents.lsp.server import LspServer
from cleveragents.lsp.tool_adapter import LspToolAdapter
from cleveragents.lsp.transport import StdioTransport

__all__ = [
    "LanguageDiscovery",
    "LspBinding",
    "LspCapability",
    "LspClient",
    "LspError",
    "LspLifecycleManager",
    "LspNotAvailableError",
    "LspRegistry",
    "LspRuntime",
    "LspServer",
    "LspServerConfig",
    "LspServerNotFoundError",
    "LspToolAdapter",
    "LspTransport",
    "StdioTransport",
]
