mod resolve;
pub use resolve::resolve_mcp_config;
pub use crate::cm_mcp::resolve::classify_mcp_connect_error;
use crate::cm_config::AgentConfig;
#[cfg(feature = "mcp")]
pub use crate::cm_mcp::{
McpClientSession, McpServerRuntimeStatus, McpServerSkipInfo, McpTurnHandle, McpTurnOpenResult,
McpTurnSessions, call_mcp_tool, clear_mcp_process_cache, connect_stdio_client,
connect_stdio_client_launch, is_mcp_proxy_tool, mcp_servers_runtime_status,
mcp_tool_openai_name, mcp_tools_as_openai, merge_tool_lists, parse_mcp_openai_tool_name,
probe_mcp_server, sanitize_mcp_json_schema, server, try_open_turn_handle,
};
#[cfg(not(feature = "mcp"))]
pub use crate::cm_mcp::{
McpClientSession, McpServerRuntimeStatus, McpServerSkipInfo, McpTurnHandle, McpTurnOpenResult,
McpTurnSessions, call_mcp_tool, clear_mcp_process_cache, connect_stdio_client,
connect_stdio_client_launch, is_mcp_proxy_tool, mcp_servers_runtime_status,
mcp_tools_as_openai, merge_tool_lists, parse_mcp_openai_tool_name, probe_mcp_server,
sanitize_mcp_json_schema, server, try_open_turn_handle,
};
pub async fn try_open_session_and_tools(cfg: &AgentConfig) -> McpTurnOpenResult {
let resolved = resolve_mcp_config(cfg);
try_open_turn_handle(&resolved).await
}