1#![recursion_limit = "256"]
4
5pub mod auth;
14pub mod http;
15pub mod llm;
16pub mod mcp;
17pub mod mcp_dispatch;
21pub mod mcp_session;
28pub mod mcp_progress;
35pub mod mcp_notify;
42
43#[cfg(any(test, feature = "test-support"))]
44pub mod test_support;
45
46pub use auth::{AuthConfig, AuthError, AuthenticatedPrincipal};
47pub use http::{SoloHttpState, openapi_spec, serve_http};
48pub use llm::{SamplingClient, SamplingError, SamplingLlmClient, build_sampling_steward};
49pub use mcp::{
50 ENV_MCP_PRINCIPAL_TOKEN, SoloMcpServer, resolve_mcp_principal, serve_stdio, tool_names,
51};
52pub use mcp_dispatch::{
53 JsonRpcErrorBody, JsonRpcErrorResponse, JsonRpcRequest, JsonRpcResponse, JsonRpcSuccess,
54 McpDispatcher,
55};
56pub use mcp_notify::{
57 MCP_NOTIFICATION_DATA_CONSOLIDATION_UPDATED, MCP_NOTIFICATION_DATA_DOCUMENTS_UPDATED,
58 MCP_NOTIFICATION_DATA_GRAPH_UPDATED, MCP_NOTIFICATION_DATA_MEMORIES_UPDATED,
59 MCP_NOTIFICATION_DATA_MEMORY_UPDATED, MCP_NOTIFICATION_DATA_TENANT_UPDATED,
60 MCP_NOTIFICATION_MESSAGE_LEVEL, MCP_NOTIFICATION_MESSAGE_LOGGER,
61 MCP_NOTIFICATION_MESSAGE_METHOD, map_invalidate_to_message, spawn_invalidate_bridge,
62};
63pub use mcp_progress::{
64 MCP_NOTIFICATION_PROGRESS_METHOD, MCP_REMEMBER_BATCH_PROGRESS_EMIT_EVERY,
65 MCP_REMEMBER_BATCH_PROGRESS_ITEM_THRESHOLD, MCP_SEARCH_DOCS_PROGRESS_TOP_K_THRESHOLD,
66 ProgressReporter, ProgressToken, report_if_some,
67};
68pub use mcp_session::{
69 MCP_LAST_EVENT_ID_HEADER, MCP_SESSION_ABSOLUTE_TTL_MS, MCP_SESSION_EVENT_BUFFER_CAPACITY,
70 MCP_SESSION_EXPIRED_ERROR, MCP_SESSION_ID_HEADER, MCP_SESSION_INACTIVITY_TTL_MS,
71 MCP_SESSION_SWEEP_INTERVAL_SECS, MCP_STREAM_EVENT_HEARTBEAT_NAME, MCP_STREAM_EVENT_INIT_NAME,
72 MCP_STREAM_EVENT_LAGGED_NAME, MCP_STREAM_EVENT_MESSAGE_NAME, MCP_STREAM_EVENT_PROGRESS_NAME,
73 McpEventKind, McpStreamEvent, SessionId, SessionState, SessionStore, mcp_session_middleware,
74 set_session_id_header,
75};