//! Gateway HTTP handlers — thin transport shells for the gateway service.
//!
//! Each handler calls `service::gateway::*` for business logic and formats
//! the response. No inline business logic, no `reqwest`, no filesystem access.
//!
//! Submodules:
//! - [`jsonrpc`] — JSON-RPC 2.0 types and helpers
//! - [`mcp`] — MCP POST/GET handlers and gateway tool dispatch
//! - [`websocket`] — WebSocket handlers (CRDT-sync, event push)
//! - [`rest`] — REST API handlers (agents, projects, bot config, pipeline)

/// JSON-RPC 2.0 request/response types shared across gateway handlers.
pub(crate) mod jsonrpc;
mod mcp;
mod rest;
mod websocket;

pub use mcp::{gateway_mcp_get_handler, gateway_mcp_post_handler};
pub use rest::{
    gateway_add_project_handler, gateway_api_handler, gateway_assign_agent_handler,
    gateway_bot_config_get_handler, gateway_bot_config_page_handler,
    gateway_bot_config_save_handler, gateway_generate_token_handler, gateway_mode_handler,
    gateway_remove_project_handler,
};
pub use websocket::{
    gateway_crdt_sync_handler, gateway_event_push_handler, gateway_sled_uplink_handler,
};
