from __future__ import annotations as _annotations

from ._version import __version__
from .agent_source import (
    AgentFactory,
    AgentSource,
    FactoryAgentSource,
    StaticAgentSource,
)
from .agent_types import RuntimeAgent
from .approval_store import (
    ApprovalPolicy,
    ApprovalPolicyStore,
    PermissionOptionSet,
    SessionMetadataApprovalPolicyStore,
)
from .approvals import (
    ApprovalBridge,
    NativeApprovalBridge,
    ProjectionAwareApprovalBridge,
    supports_projection_aware_approval_bridge,
)
from .bridges import (
    AnthropicCompactionBridge,
    BufferedCapabilityBridge,
    CapabilityBridge,
    EventEmissionMode,
    ExternalHookEventBridge,
    HarnessCodeModeBridge,
    HarnessFileSystemBridge,
    HarnessShellBridge,
    HistoryProcessorBridge,
    HistoryProcessorCallable,
    HistoryProcessorContextual,
    HistoryProcessorPlain,
    HistoryProcessorWithContextAsync,
    HistoryProcessorWithContextSync,
    HookBridge,
    ImageGenerationBridge,
    IncludeToolReturnSchemasBridge,
    McpBridge,
    McpCapabilityBridge,
    McpServerDefinition,
    McpToolDefinition,
    OpenAICompactionBridge,
    PlanGenerationType,
    PrefixToolsBridge,
    PrepareOutputToolsBridge,
    PrepareOutputToolsMode,
    PrepareToolsBridge,
    PrepareToolsMode,
    SessionMcpBridge,
    SetToolMetadataBridge,
    ThinkingBridge,
    ThreadExecutorBridge,
    ToolsetBridge,
    WebFetchBridge,
    WebSearchBridge,
)
from .builders import AgentBridgeBuilder, AgentBridgeContributions
from .client import (
    ACP_MODEL_PROFILE,
    AcpHostBridge,
    AcpModel,
    AcpPromptRenderer,
    AcpProvider,
    AcpUpdateRecord,
)
from .config import AdapterConfig
from .factory import create_acp_model
from .hook_projection import HookEvent, HookProjectionMap
from .host import (
    ClientFilesystemBackend,
    ClientHostContext,
    ClientTerminalBackend,
    FilesystemBackend,
    HostAccessDisposition,
    HostAccessPolicy,
    HostCommandEvaluation,
    HostPathEvaluation,
    HostRisk,
    TerminalBackend,
)
from .models import AdapterModel
from .permission_presentation import (
    DefaultPermissionToolCallBuilder,
    PermissionRequestContext,
    PermissionToolCallBuilder,
)
from .projection import (
    BuiltinToolProjectionMap,
    CompositeProjectionMap,
    FileSystemProjectionMap,
    HarnessCodeModeProjectionMap,
    HarnessFileSystemProjectionMap,
    HarnessShellProjectionMap,
    ProjectionAwareToolClassifier,
    ProjectionMap,
    WebToolProjectionMap,
    compose_projection_maps,
)
from .projection_helpers import (
    DEFAULT_TEXT_TRUNCATION_MARKER,
    caution_for_command,
    caution_for_path,
    format_code_block,
    format_diff_preview,
    format_terminal_status,
    single_line_summary,
    truncate_lines,
    truncate_text,
)
from .prompt_capabilities import AdapterPromptCapabilities
from .providers import (
    ApprovalStateProvider,
    ConfigOption,
    ConfigOptionsProvider,
    ModelSelectionState,
    ModeState,
    NativePlanPersistenceProvider,
    PlanProvider,
    PromptModelOverrideProvider,
    SessionModelsProvider,
    SessionModesProvider,
)
from .runtime.hook_introspection import RegisteredHookInfo, list_agent_hooks
from .runtime.server import create_acp_agent, run_acp
from .session.state import AcpSessionContext, JsonValue
from .session.store import FileSessionStore, MemorySessionStore, SessionStore
from .slash import (
    SlashCommandHandler,
    SlashCommandProvider,
    SlashCommandRequest,
    SlashCommandResult,
    StaticSlashCommand,
    StaticSlashCommandProvider,
)
from .testing import (
    BlackBoxHarness,
    RecordingACPClient,
    UpdateRecord,
    agent_message_texts,
)
from .types import (
    AcpAgent,
    AgentPromptBlock,
    AudioContentBlock,
    BlobResourceContents,
    EmbeddedResourceContentBlock,
    HttpMcpServer,
    ImageContentBlock,
    McpServerStdio,
    PlanEntry,
    ResourceContentBlock,
    SseMcpServer,
    TextContentBlock,
    TextResourceContents,
)

__all__ = (
    "ACP_MODEL_PROFILE",
    "DEFAULT_TEXT_TRUNCATION_MARKER",
    "AcpAgent",
    "AcpHostBridge",
    "AcpModel",
    "AcpPromptRenderer",
    "AcpProvider",
    "AcpSessionContext",
    "AcpUpdateRecord",
    "AdapterConfig",
    "AdapterModel",
    "AdapterPromptCapabilities",
    "AgentBridgeBuilder",
    "AgentBridgeContributions",
    "AgentFactory",
    "AgentPromptBlock",
    "AgentSource",
    "AnthropicCompactionBridge",
    "ApprovalBridge",
    "ApprovalPolicy",
    "ApprovalPolicyStore",
    "ApprovalStateProvider",
    "AudioContentBlock",
    "BlackBoxHarness",
    "BlobResourceContents",
    "BufferedCapabilityBridge",
    "BuiltinToolProjectionMap",
    "CapabilityBridge",
    "ClientFilesystemBackend",
    "ClientHostContext",
    "ClientTerminalBackend",
    "CompositeProjectionMap",
    "ConfigOption",
    "ConfigOptionsProvider",
    "DefaultPermissionToolCallBuilder",
    "EmbeddedResourceContentBlock",
    "EventEmissionMode",
    "ExternalHookEventBridge",
    "FactoryAgentSource",
    "FileSessionStore",
    "FileSystemProjectionMap",
    "FilesystemBackend",
    "HarnessCodeModeBridge",
    "HarnessCodeModeProjectionMap",
    "HarnessFileSystemBridge",
    "HarnessFileSystemProjectionMap",
    "HarnessShellBridge",
    "HarnessShellProjectionMap",
    "HistoryProcessorBridge",
    "HistoryProcessorCallable",
    "HistoryProcessorContextual",
    "HistoryProcessorPlain",
    "HistoryProcessorWithContextAsync",
    "HistoryProcessorWithContextSync",
    "HookBridge",
    "HookEvent",
    "HookProjectionMap",
    "HostAccessDisposition",
    "HostAccessPolicy",
    "HostCommandEvaluation",
    "HostPathEvaluation",
    "HostRisk",
    "HttpMcpServer",
    "ImageContentBlock",
    "ImageGenerationBridge",
    "IncludeToolReturnSchemasBridge",
    "JsonValue",
    "McpBridge",
    "McpCapabilityBridge",
    "McpServerDefinition",
    "McpServerStdio",
    "McpToolDefinition",
    "MemorySessionStore",
    "ModeState",
    "ModelSelectionState",
    "NativeApprovalBridge",
    "NativePlanPersistenceProvider",
    "OpenAICompactionBridge",
    "PermissionOptionSet",
    "PermissionRequestContext",
    "PermissionToolCallBuilder",
    "PlanEntry",
    "PlanGenerationType",
    "PlanProvider",
    "PrefixToolsBridge",
    "PrepareOutputToolsBridge",
    "PrepareOutputToolsMode",
    "PrepareToolsBridge",
    "PrepareToolsMode",
    "ProjectionAwareApprovalBridge",
    "ProjectionAwareToolClassifier",
    "ProjectionMap",
    "PromptModelOverrideProvider",
    "RecordingACPClient",
    "RegisteredHookInfo",
    "ResourceContentBlock",
    "RuntimeAgent",
    "SessionMetadataApprovalPolicyStore",
    "SessionModelsProvider",
    "SessionModesProvider",
    "SessionStore",
    "SetToolMetadataBridge",
    "SessionMcpBridge",
    "SlashCommandHandler",
    "SlashCommandProvider",
    "SlashCommandRequest",
    "SlashCommandResult",
    "SseMcpServer",
    "StaticAgentSource",
    "StaticSlashCommand",
    "StaticSlashCommandProvider",
    "TerminalBackend",
    "TextContentBlock",
    "TextResourceContents",
    "ThinkingBridge",
    "ThreadExecutorBridge",
    "ToolsetBridge",
    "UpdateRecord",
    "WebFetchBridge",
    "WebSearchBridge",
    "WebToolProjectionMap",
    "__version__",
    "agent_message_texts",
    "caution_for_command",
    "caution_for_path",
    "compose_projection_maps",
    "create_acp_agent",
    "create_acp_model",
    "format_code_block",
    "format_diff_preview",
    "format_terminal_status",
    "list_agent_hooks",
    "run_acp",
    "single_line_summary",
    "supports_projection_aware_approval_bridge",
    "truncate_lines",
    "truncate_text",
)
