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, ContextUsageParams, ElicitationParams, ElicitationResponse,
9    McpNotification, PromptSearchResponse, SessionPreviewResponse, SubAgentProgressParams, WorkspaceListResponse,
10    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    ContextUsage(ContextUsageParams),
18    SubAgentProgress(SubAgentProgressParams),
19    AuthMethodsUpdated(AuthMethodsUpdatedParams),
20    McpNotification(McpNotification),
21    ElicitationRequest { params: ElicitationParams, responder: Responder<ElicitationResponse> },
22    PromptDone(StopReason),
23    PromptError(Error),
24    AuthenticateComplete { method_id: String },
25    AuthenticateFailed { method_id: String, error: String },
26    SessionsListed { sessions: Vec<SessionInfo> },
27    SessionLoaded { session_id: SessionId, config_options: Vec<SessionConfigOption> },
28    NewSessionCreated { session_id: SessionId, config_options: Vec<SessionConfigOption> },
29    PromptSearchResults(PromptSearchResponse),
30    PromptSearchFailed { query: String, error: String },
31    SessionPreviewLoaded(SessionPreviewResponse),
32    SessionPreviewFailed { session_id: String, error: String },
33    WorkspacesListed(WorkspaceListResponse),
34    WorkspaceListFailed { error: String },
35    WorkspaceMoved(WorkspaceMoveResponse),
36    WorkspaceMoveFailed { error: String },
37    ConnectionClosed,
38}