use std::collections::HashMap; use serde::{Deserialize, Serialize}; use super::common::AgentStatus; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct TabCreateParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub cwd: Option, #[serde(default)] pub focus: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub label: Option, #[serde(default, skip_serializing_if = "HashMap::is_empty")] pub env: HashMap, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] pub struct TabListParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct TabRenameParams { pub tab_id: String, pub label: String, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct TabMoveParams { pub tab_id: String, pub insert_index: usize, } #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct TabInfo { pub tab_id: String, pub workspace_id: String, pub number: usize, pub label: String, pub focused: bool, pub pane_count: usize, pub agent_status: AgentStatus, }