vtcode_acp_client/
lib.rs

1use agent_client_protocol::AgentSideConnection;
2use std::sync::{Arc, OnceLock};
3
4static ACP_CLIENT: OnceLock<Arc<AgentSideConnection>> = OnceLock::new();
5
6/// Register the global ACP client connection.
7///
8/// Returns `Err` with the provided connection if one has already been
9/// registered. Callers may drop the returned connection or reuse it as
10/// needed.
11pub fn register_acp_client(
12    client: Arc<AgentSideConnection>,
13) -> Result<(), Arc<AgentSideConnection>> {
14    ACP_CLIENT.set(client)
15}
16
17/// Retrieve the registered ACP client connection, if available.
18pub fn acp_client() -> Option<Arc<AgentSideConnection>> {
19    ACP_CLIENT.get().cloned()
20}