use super::Workspace;
use crate::agents::remote::Waiting;
#[cfg(doc)]
use crate::PreparedRun;
impl Workspace {
pub fn remote_conversation(&self, key: &str, agent: &str) -> Option<RemoteConversationState> {
let conversation = self.remote.keyed_conversation(key, agent)?;
Some(match conversation.outstanding {
None => RemoteConversationState::Open,
Some(outstanding) => match outstanding.waiting_for {
Waiting::Agent => RemoteConversationState::Working,
Waiting::Input => RemoteConversationState::InputRequired,
},
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum RemoteConversationState {
Open,
Working,
InputRequired,
}