Crate vtcode_acp_client

Crate vtcode_acp_client 

Source
Expand description

ACP (Agent Communication Protocol) client for inter-agent communication

This module provides:

  • V2 (Recommended): Full ACP protocol compliance with JSON-RPC 2.0
    • Session lifecycle (initialize, session/new, session/prompt)
    • Capability negotiation
    • SSE streaming for real-time updates
  • V1 (Legacy): HTTP-based communication with remote agents
    • Agent discovery (online and offline)
    • Request/response message handling

§Quick Start (V2)

use vtcode_acp_client::{AcpClientV2, ClientCapabilities};

let client = AcpClientV2::new("http://agent.example.com")?;

// Initialize connection and negotiate capabilities
let init_result = client.initialize().await?;

// Create a session
let session = client.session_new(Default::default()).await?;

// Send a prompt
let response = client.session_prompt(SessionPromptParams {
    session_id: session.session_id,
    content: vec![PromptContent::text("Hello!")],
    ..Default::default()
}).await?;

§Migration from V1

The V1 AcpClient is deprecated and will be removed in a future version. Migrate to AcpClientV2 for full ACP protocol compliance.

Re-exports§

pub use capabilities::AgentCapabilities;
pub use capabilities::AgentFeatures;
pub use capabilities::AgentInfo as AgentInfoV2;
pub use capabilities::AuthCredentials;
pub use capabilities::AuthenticateParams;
pub use capabilities::AuthenticateResult;
pub use capabilities::ClientCapabilities;
pub use capabilities::ClientInfo;
pub use capabilities::FilesystemCapabilities;
pub use capabilities::InitializeParams;
pub use capabilities::InitializeResult;
pub use capabilities::TerminalCapabilities;
pub use capabilities::ToolCapability;
pub use capabilities::UiCapabilities;
pub use capabilities::PROTOCOL_VERSION;
pub use capabilities::SUPPORTED_VERSIONS;
pub use client_v2::AcpClientV2;
pub use client_v2::AcpClientV2Builder;
pub use jsonrpc::JsonRpcError;
pub use jsonrpc::JsonRpcId;
pub use jsonrpc::JsonRpcRequest;
pub use jsonrpc::JsonRpcResponse;
pub use jsonrpc::JSONRPC_VERSION;
pub use session::AcpSession;
pub use session::ConversationTurn;
pub use session::PermissionOption;
pub use session::PromptContent;
pub use session::RequestPermissionParams;
pub use session::RequestPermissionResult;
pub use session::SessionCancelParams;
pub use session::SessionLoadParams;
pub use session::SessionLoadResult;
pub use session::SessionNewParams;
pub use session::SessionNewResult;
pub use session::SessionPromptParams;
pub use session::SessionPromptResult;
pub use session::SessionState;
pub use session::SessionUpdate;
pub use session::SessionUpdateNotification;
pub use session::ToolCallRecord;
pub use session::TurnStatus;
pub use client::AcpClient;
pub use client::AcpClientBuilder;
pub use discovery::AgentInfo;
pub use discovery::AgentRegistry;
pub use error::AcpError;
pub use error::AcpResult;
pub use messages::AcpMessage;
pub use messages::AcpRequest;
pub use messages::AcpResponse;

Modules§

capabilities
ACP capabilities and initialization types
client
HTTP-based ACP client for agent communication
client_v2
ACP Client V2 with full protocol compliance
discovery
Agent discovery and registry functionality
error
Error types for ACP operations
jsonrpc
JSON-RPC 2.0 types for ACP protocol compliance
messages
ACP message types and serialization
session
ACP session types and lifecycle management

Functions§

acp_connection
Retrieve the registered ACP connection, if available.
register_acp_connection
Register the global ACP connection from the host protocol.