Skip to main content

acp_utils/client/
event.rs

1use acp::Error;
2use acp::Responder;
3use acp::schema::{SessionUpdate, StopReason};
4use agent_client_protocol as acp;
5use agent_client_protocol::schema::{SessionConfigOption, SessionId, SessionInfo};
6
7use crate::notifications::{
8    AuthMethodsUpdatedParams, ContextClearedParams, ContextCompactionParams, ContextUsageParams, ElicitationParams,
9    ElicitationResponse, McpNotification, PromptSearchResponse, SessionPreviewResponse, SubAgentProgressParams,
10    WorkspaceListResponse, WorkspaceMoveResponse,
11};
12
13/// Events forwarded from the ACP connection to the main event loop.
14pub enum AcpEvent {
15    SessionUpdate { session_id: SessionId, update: Box<SessionUpdate> },
16    ContextCleared(ContextClearedParams),
17    ContextCompaction(ContextCompactionParams),
18    ContextUsage(ContextUsageParams),
19    SubAgentProgress(SubAgentProgressParams),
20    AuthMethodsUpdated(AuthMethodsUpdatedParams),
21    McpNotification(McpNotification),
22    ElicitationRequest { params: ElicitationParams, responder: Responder<ElicitationResponse> },
23    PromptDone(StopReason),
24    PromptError(Error),
25    AuthenticateComplete { method_id: String },
26    AuthenticateFailed { method_id: String, error: String },
27    ConfigOptionUpdateFailed { error: String },
28    SessionsListed { sessions: Vec<SessionInfo> },
29    SessionLoaded { session_id: SessionId, config_options: Vec<SessionConfigOption> },
30    NewSessionCreated { session_id: SessionId, config_options: Vec<SessionConfigOption> },
31    PromptSearchResults(PromptSearchResponse),
32    PromptSearchFailed { query: String, error: String },
33    SessionPreviewLoaded(SessionPreviewResponse),
34    SessionPreviewFailed { session_id: String, error: String },
35    WorkspacesListed(WorkspaceListResponse),
36    WorkspaceListFailed { error: String },
37    WorkspaceMoved(WorkspaceMoveResponse),
38    WorkspaceMoveFailed { error: String },
39    ConnectionClosed,
40}