1#![allow(
2 missing_docs,
3 dead_code,
4 unused_imports,
5 reason = "Intentional compatibility, platform, or test-only suppression."
6)]
7pub mod capabilities;
15pub(crate) mod client;
16pub(crate) mod client_v2;
17pub mod discovery;
18pub mod error;
19pub mod jsonrpc;
20pub mod messages;
21pub mod permissions;
22pub mod reports;
23pub mod session;
24pub mod tooling;
25mod tooling_provider;
26pub mod transport;
27pub mod workspace;
28mod zed;
29
30pub(crate) mod acp {
36 pub(crate) use agent_client_protocol::schema::ProtocolVersion;
37 pub(crate) use agent_client_protocol::schema::v1::*;
38}
39
40pub(crate) use capabilities::{
41 AgentCapabilities, AgentFeatures, AgentInfo as AgentInfoV2, AuthCredentials, AuthMethod, AuthRequirements,
42 AuthenticateParams, AuthenticateResult, ClientCapabilities, ClientInfo, FilesystemCapabilities, InitializeParams,
43 InitializeResult, PROTOCOL_VERSION, SUPPORTED_VERSIONS, TerminalCapabilities, ToolCapability, UiCapabilities,
44};
45pub(crate) use client_v2::{AcpClientV2, AcpClientV2Builder};
46pub(crate) use discovery::{AgentInfo, AgentRegistry};
47pub use error::{AcpError, AcpResult};
48pub(crate) use jsonrpc::{JSONRPC_VERSION, JsonRpcError, JsonRpcId, JsonRpcRequest, JsonRpcResponse};
49pub(crate) use session::{
50 AcpSession, ConversationTurn, PermissionOption, PromptContent, RequestPermissionParams, RequestPermissionResult,
51 SessionCancelParams, SessionLoadParams, SessionLoadResult, SessionNewParams, SessionNewResult, SessionPromptParams,
52 SessionPromptResult, SessionState, SessionUpdate, SessionUpdateNotification, ToolCallRecord, TurnStatus,
53};
54pub use transport::{StdioTransport, StdioTransportOptions};
55pub use zed::{StandardAcpAdapter, ZedAcpAdapter, lifecycle_schema_document};
56
57#[deprecated(since = "0.60.0", note = "Use AcpClientV2 for ACP protocol compliance")]
58pub(crate) use client::{AcpClient, AcpClientBuilder};
59#[deprecated(since = "0.60.0", note = "Use jsonrpc module types instead")]
60pub(crate) use messages::{AcpMessage, AcpRequest, AcpResponse};
61
62use std::sync::{Arc, OnceLock};
63
64static ACP_CONNECTION: OnceLock<Arc<zed::connection::ConnectionHandle>> = OnceLock::new();
71
72pub(crate) fn register_acp_connection(
77 connection: Arc<zed::connection::ConnectionHandle>,
78) -> Result<(), Arc<zed::connection::ConnectionHandle>> {
79 ACP_CONNECTION.set(connection)
80}
81
82pub fn acp_connection() -> Option<Arc<zed::connection::ConnectionHandle>> {
84 ACP_CONNECTION.get().cloned()
85}