pub async fn run(
config: Config,
model_name: String,
agent_handle: AgentHandle,
runtime_factory: AgentRuntimeFactory,
working_dir: PathBuf,
session_to_continue: Option<Session>,
mcp_registry: Option<Arc<McpRegistry>>,
mcp_connect_rx: Option<UnboundedReceiver<McpConnectEvent>>,
lsp_connect_rx: Option<UnboundedReceiver<LspConnectEvent>>,
telemetry: Arc<Telemetry>,
) -> Result<()>