//! MCP (Model Context Protocol) adapter.
//!
//! - `types`: shared data types and the `McpTransport` trait.
//! - `adapter`: the `McpAdapter` `SkillAdapter` entry point.
//! - `transport`: stdio process and fixture client transports.
//! - `framing`: runx-owned Content-Length transport helpers.
//! - `server`: `serve_mcp_json_rpc` and host-result projections.
//! - `server_skill`: server-side skill and graph execution.
//! - `templates`: argument templating and tool-result stringification.
//! - `sandbox_metadata`: receipt-side sandbox metadata builders.

mod adapter;
mod framing;
#[cfg(feature = "mcp-http-server")]
mod http_server;
mod rmcp_content_length;
mod sandbox_metadata;
mod server;
mod server_skill;
mod templates;
mod transport;
mod types;

pub use adapter::McpAdapter;
#[cfg(feature = "mcp-http-server")]
pub use http_server::{
    DEFAULT_MCP_HTTP_LISTEN_ADDR, McpHttpServerSecurity, generate_mcp_http_bearer_token,
    serve_mcp_http_server, serve_mcp_http_server_blocking,
};
pub use server::{mcp_tool_result_from_host_result, serve_mcp_json_rpc};
pub use templates::{map_mcp_arguments, stringify_mcp_tool_result};
pub use transport::{FixtureMcpTransport, ProcessMcpTransport};
pub use types::{
    McpContent, McpHostRunResult, McpListToolsRequest, McpServerError, McpServerExecutionOptions,
    McpServerOptions, McpServerSkillExecution, McpServerTool, McpServerToolBehavior,
    McpToolCallRequest, McpToolDescriptor, McpToolResult, McpTransport, McpTransportError,
};
