Skip to main content

wisp/surfaces/
input.rs

1use crate::command::GitReviewCommand;
2use crate::settings::overlay::SettingsChange;
3use acp_utils::notifications::WorkspaceMoveTarget;
4use agent_client_protocol::schema::v2::SessionId;
5use std::path::PathBuf;
6
7/// What a surface asks of the app. Every overlay, route and pane reports
8/// through this one enum, so the app acts on each request in one place.
9#[derive(Debug)]
10pub enum UiOutput {
11    Close,
12    ConfigChange(SettingsChange),
13    AuthenticateServer(String),
14    AuthenticateProvider(String),
15    ResumeSession { session_id: SessionId, cwd: PathBuf },
16    PreviewSession(String),
17    MoveWorkspace(WorkspaceMoveTarget),
18    ArtifactReviewed(String),
19    SubmitReview(String),
20    GitReview(GitReviewCommand),
21}
22
23pub(crate) fn one<T>(action: Option<T>) -> Vec<T> {
24    action.into_iter().collect()
25}