use std::collections::HashMap; use serde::{Deserialize, Serialize}; use super::common::{AgentStatus, ReadFormat, ReadSource, SplitDirection}; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentReadParams { pub target: String, pub source: ReadSource, #[serde(default, skip_serializing_if = "Option::is_none")] pub lines: Option, #[serde(default)] pub format: ReadFormat, #[serde(default = "super::common::default_true")] pub strip_ansi: bool, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentSendParams { pub target: String, pub text: String, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentRenameParams { pub target: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentStartParams { pub name: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub cwd: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub tab_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub split: Option, #[serde(default)] pub focus: bool, pub argv: Vec, #[serde(default, skip_serializing_if = "HashMap::is_empty")] pub env: HashMap, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentInfo { pub terminal_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub agent: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub title: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub display_agent: Option, pub agent_status: AgentStatus, #[serde(default, skip_serializing_if = "super::is_false")] pub screen_detection_skipped: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub custom_status: Option, #[serde(default, skip_serializing_if = "HashMap::is_empty")] pub state_labels: HashMap, #[serde(default, skip_serializing_if = "Option::is_none")] pub agent_session: Option, pub workspace_id: String, pub tab_id: String, pub pane_id: String, pub focused: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub cwd: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub foreground_cwd: Option, pub revision: u64, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct AgentSessionInfo { pub source: String, pub agent: String, pub kind: crate::agent_resume::AgentSessionRefKind, pub value: String, }