diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-29 22:27:19 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-29 22:27:19 +0300 |
| commit | 25aeaa46f6c807be686b710c5c3aa656969f07e5 (patch) | |
| tree | 8b9b4d4abce5951c2d87ee22c38eacb544eff81a /src/api/schema/panes.rs | |
| parent | 9150ed6268874d1f2a314b1ddbf531b66df1e105 (diff) | |
feat: generate socket protocol schema
Diffstat (limited to 'src/api/schema/panes.rs')
| -rw-r--r-- | src/api/schema/panes.rs | 104 |
1 files changed, 53 insertions, 51 deletions
diff --git a/src/api/schema/panes.rs b/src/api/schema/panes.rs index 55241131..ef45a7ca 100644 --- a/src/api/schema/panes.rs +++ b/src/api/schema/panes.rs @@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize}; use super::agents::AgentSessionInfo; use super::common::{AgentStatus, PaneAgentState, ReadFormat, ReadSource, SplitDirection}; -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneSplitParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option<String>, @@ -22,7 +22,7 @@ pub struct PaneSplitParams { pub env: HashMap<String, String>, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneDirection { Left, @@ -31,7 +31,7 @@ pub enum PaneDirection { Down, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneSwapParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, @@ -43,7 +43,7 @@ pub struct PaneSwapParams { pub target_pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneMoveParams { pub pane_id: String, pub destination: PaneMoveDestination, @@ -51,7 +51,7 @@ pub struct PaneMoveParams { pub focus: bool, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(tag = "type", rename_all = "snake_case")] pub enum PaneMoveDestination { Tab { @@ -76,7 +76,7 @@ pub enum PaneMoveDestination { }, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneZoomParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, @@ -84,7 +84,9 @@ pub struct PaneZoomParams { pub mode: PaneZoomMode, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive( + Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default, +)] #[serde(rename_all = "snake_case")] pub enum PaneZoomMode { #[default] @@ -93,19 +95,19 @@ pub enum PaneZoomMode { Off, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneLayoutParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneProcessInfoParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct LayoutExportParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub tab_id: Option<String>, @@ -113,7 +115,7 @@ pub struct LayoutExportParams { pub pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct LayoutApplyParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option<String>, @@ -126,7 +128,7 @@ pub struct LayoutApplyParams { pub root: LayoutNode, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct LayoutSetSplitRatioParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub tab_id: Option<String>, @@ -136,7 +138,7 @@ pub struct LayoutSetSplitRatioParams { pub ratio: f32, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct LayoutDescription { pub workspace_id: String, pub tab_id: String, @@ -145,7 +147,7 @@ pub struct LayoutDescription { pub root: LayoutNode, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(tag = "type", rename_all = "snake_case")] pub enum LayoutNode { Pane { @@ -160,7 +162,7 @@ pub enum LayoutNode { }, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct LayoutPane { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, @@ -174,27 +176,27 @@ pub struct LayoutPane { pub env: HashMap<String, String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneNeighborParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, pub direction: PaneDirection, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneEdgesParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneFocusDirectionParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, pub direction: PaneDirection, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneResizeParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option<String>, @@ -203,38 +205,38 @@ pub struct PaneResizeParams { pub amount: Option<f32>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneListParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema, Default)] pub struct PaneCurrentParams { #[serde(default, skip_serializing_if = "Option::is_none")] pub caller_pane_id: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneRenameParams { pub pane_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub label: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneSendTextParams { pub pane_id: String, pub text: String, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneSendKeysParams { pub pane_id: String, pub keys: Vec<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneSendInputParams { pub pane_id: String, #[serde(default, skip_serializing_if = "String::is_empty")] @@ -243,7 +245,7 @@ pub struct PaneSendInputParams { pub keys: Vec<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReadParams { pub pane_id: String, pub source: ReadSource, @@ -255,7 +257,7 @@ pub struct PaneReadParams { pub strip_ansi: bool, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReportAgentParams { pub pane_id: String, pub source: String, @@ -273,7 +275,7 @@ pub struct PaneReportAgentParams { pub agent_session_path: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReportAgentSessionParams { pub pane_id: String, pub source: String, @@ -288,7 +290,7 @@ pub struct PaneReportAgentSessionParams { pub session_start_source: Option<String>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReportMetadataParams { pub pane_id: String, pub source: String, @@ -318,7 +320,7 @@ pub struct PaneReportMetadataParams { pub ttl_ms: Option<u64>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneClearAgentAuthorityParams { pub pane_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -327,7 +329,7 @@ pub struct PaneClearAgentAuthorityParams { pub seq: Option<u64>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReleaseAgentParams { pub pane_id: String, pub source: String, @@ -336,7 +338,7 @@ pub struct PaneReleaseAgentParams { pub seq: Option<u64>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneInfo { pub pane_id: String, pub terminal_id: String, @@ -365,7 +367,7 @@ pub struct PaneInfo { pub revision: u64, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneProcessInfo { pub pane_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -378,7 +380,7 @@ pub struct PaneProcessInfo { pub foreground_processes: Vec<PaneProcessInfoProcess>, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneProcessInfoProcess { pub pid: u32, pub name: String, @@ -392,7 +394,7 @@ pub struct PaneProcessInfoProcess { pub cwd: Option<String>, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneSwapResult { pub changed: bool, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -404,7 +406,7 @@ pub struct PaneSwapResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneSwapReason { NoNeighbor, @@ -413,7 +415,7 @@ pub enum PaneSwapReason { CrossTab, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneMoveResult { pub changed: bool, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -436,14 +438,14 @@ pub struct PaneMoveResult { pub focused_pane_id: String, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneMoveReason { SameTab, ZoomedTab, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneZoomResult { pub changed: bool, pub zoom_changed: bool, @@ -456,7 +458,7 @@ pub struct PaneZoomResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneZoomReason { SinglePane, @@ -464,7 +466,7 @@ pub enum PaneZoomReason { AlreadyUnzoomed, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneLayoutSnapshot { pub workspace_id: String, pub tab_id: String, @@ -475,7 +477,7 @@ pub struct PaneLayoutSnapshot { pub splits: Vec<PaneLayoutSplit>, } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneLayoutRect { pub x: u16, pub y: u16, @@ -483,14 +485,14 @@ pub struct PaneLayoutRect { pub height: u16, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneLayoutPane { pub pane_id: String, pub focused: bool, pub rect: PaneLayoutRect, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneLayoutSplit { pub id: String, pub direction: SplitDirection, @@ -498,7 +500,7 @@ pub struct PaneLayoutSplit { pub rect: PaneLayoutRect, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneNeighborResult { pub pane_id: String, pub direction: PaneDirection, @@ -507,7 +509,7 @@ pub struct PaneNeighborResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneEdgesResult { pub pane_id: String, pub left: bool, @@ -517,7 +519,7 @@ pub struct PaneEdgesResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneFocusDirectionResult { pub changed: bool, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -528,13 +530,13 @@ pub struct PaneFocusDirectionResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneFocusDirectionReason { NoNeighbor, } -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneResizeResult { pub changed: bool, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -544,13 +546,13 @@ pub struct PaneResizeResult { pub layout: PaneLayoutSnapshot, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] #[serde(rename_all = "snake_case")] pub enum PaneResizeReason { Unchanged, } -#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct PaneReadResult { pub pane_id: String, pub workspace_id: String, |
