solo-api 0.10.2

Solo: MCP and HTTP transports
Documentation
// SPDX-License-Identifier: Apache-2.0

//! Solo transports: MCP server (rmcp) and HTTP/JSON (axum).
//!
//! - MCP stdio: [`mcp::SoloMcpServer`] + [`mcp::serve_stdio`].
//! - HTTP/JSON: [`http::SoloHttpState`] + [`http::serve_http`].
//! - Auth (v0.8.0 P3): [`auth::AuthConfig`] + [`auth::AuthenticatedPrincipal`].
//! - LLM (v0.9.0 P2): [`llm::SamplingLlmClient`] backed by the connected
//!   MCP client's `sampling/createMessage` capability.

pub mod auth;
pub mod http;
pub mod llm;
pub mod mcp;
// v0.10.2 P1: transport-agnostic JSON-RPC dispatcher shared by the new
// HTTP `/mcp` route and (eventually) the stdio loop. See
// `docs/dev-log/0129-v0.10.2-mcp-over-http-impl.md` for the refactor.
pub mod mcp_dispatch;

#[cfg(any(test, feature = "test-support"))]
pub mod test_support;

pub use auth::{AuthConfig, AuthError, AuthenticatedPrincipal};
pub use http::{SoloHttpState, openapi_spec, serve_http};
pub use llm::{SamplingClient, SamplingError, SamplingLlmClient, build_sampling_steward};
pub use mcp::{
    ENV_MCP_PRINCIPAL_TOKEN, SoloMcpServer, resolve_mcp_principal, serve_stdio, tool_names,
};
pub use mcp_dispatch::{
    JsonRpcErrorBody, JsonRpcErrorResponse, JsonRpcRequest, JsonRpcResponse, JsonRpcSuccess,
    McpDispatcher,
};