use crate::actions::verbs::Outcome;
use crate::board::Board;
use crate::nav::convs::ConvRow;
use crate::opslog::OpRow;
use crate::projects::join::JoinRow;
use crate::search::Found;
use crate::start::Prepared;
use super::codec::prepared_value;
mod agent;
mod balls;
mod board;
mod cleared;
mod decode;
mod encode;
mod queue;
pub(crate) mod rows;
mod search;
mod ws_row;
pub use cleared::cleared;
pub use decode::decode;
pub use encode::{encode, refusal};
pub use ws_row::{Workspaces, WsRow};
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Reply {
Outcome(Outcome),
Prepared(Prepared),
Fanned(Vec<Prepared>),
Retired {
discarded: bool,
},
Delivered(crate::fan::Delivery),
Started {
conversation: String,
},
Deleted,
Armed {
armed: bool,
},
Flagged,
Answered {
tool_use: String,
tool: String,
ruling: crate::control::judge::Ruling,
advanced: bool,
},
Floored {
standing: bool,
},
Nudged,
Acked,
TrailCleared,
Applied,
Marks {
branch: String,
},
Advertised,
Routed {
invocation: String,
capture: Option<crate::registry::mailbox::Capture>,
},
Invocations(Vec<crate::registry::mailbox::Invocation>),
Workspaces(Workspaces),
Conversations(Vec<ConvRow>),
Balls(Vec<JoinRow>),
WorkspaceBalls(Vec<crate::nav::BoundBall>),
Board(Board),
Attention(Vec<crate::boundary::answer::queue::QueueRow>),
Ops(Vec<OpRow>),
Help(Vec<crate::boundary::help::HelpRow>),
Search(Found),
WorkDiff {
attempts: Vec<crate::workdiff::Attempt>,
patch: Option<crate::files_view::Preview>,
},
Science(Vec<crate::science::Attempt>),
Transcript(crate::transcript::Transcript),
Follow(crate::git_tree::Stream),
Steps(crate::steps_view::StepsView),
Step(crate::steps_view::StepDetail),
Files {
view: crate::files_view::FilesView,
preview: Option<crate::files_view::Preview>,
},
Governing(crate::config_edit::branch::GoverningConfig),
Rail(crate::rail::Rail),
Inbox(Vec<crate::inboxview::InboxEntry>),
Agent(crate::boundary::answer::agent::AgentView),
Config {
text: String,
},
Providers(Vec<crate::config_edit::brazen::ProviderRowView>),
Lineages(Vec<crate::config_edit::branch::Lineage>),
Models(Vec<String>),
Clients(Vec<crate::registry::roster::ClientRow>),
}
#[cfg(test)]
pub(crate) mod tests;