use crate::notifications::{
AuthMethodsUpdatedParams, ContextClearedParams, GitDiffEventPayload, McpNotification, SubAgentProgressParams,
};
use agent_client_protocol::Responder;
use agent_client_protocol::schema::v2::{
CreateElicitationRequest, CreateElicitationResponse, UpdateSessionNotification,
};
pub enum AcpEvent {
SessionUpdate(Box<UpdateSessionNotification>),
ContextCleared(ContextClearedParams),
SubAgentProgress(SubAgentProgressParams),
AuthMethodsUpdated(AuthMethodsUpdatedParams),
McpNotification(McpNotification),
GitDiffEvent(GitDiffEventPayload),
ElicitationRequest { params: Box<CreateElicitationRequest>, responder: Responder<CreateElicitationResponse> },
ConnectionClosed,
}
impl From<UpdateSessionNotification> for AcpEvent {
fn from(notification: UpdateSessionNotification) -> Self {
Self::SessionUpdate(Box::new(notification))
}
}