aboutsummaryrefslogtreecommitdiff
path: root/src/api/schema.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/schema.rs')
-rw-r--r--src/api/schema.rs360
1 files changed, 9 insertions, 351 deletions
diff --git a/src/api/schema.rs b/src/api/schema.rs
index ba2fd1e5..c0715758 100644
--- a/src/api/schema.rs
+++ b/src/api/schema.rs
@@ -2,6 +2,10 @@ use std::collections::HashMap;
use serde::{Deserialize, Serialize};
+pub mod panes;
+
+pub use panes::*;
+
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Request {
pub id: String,
@@ -70,6 +74,8 @@ pub enum Method {
PaneSplit(PaneSplitParams),
#[serde(rename = "pane.swap")]
PaneSwap(PaneSwapParams),
+ #[serde(rename = "pane.zoom")]
+ PaneZoom(PaneZoomParams),
#[serde(rename = "pane.layout")]
PaneLayout(PaneLayoutParams),
#[serde(rename = "pane.neighbor")]
@@ -274,118 +280,6 @@ pub struct AgentStartParams {
pub argv: Vec<String>,
}
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneSplitParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub workspace_id: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub target_pane_id: Option<String>,
- pub direction: SplitDirection,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub ratio: Option<f32>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub cwd: Option<String>,
- #[serde(default)]
- pub focus: bool,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(rename_all = "snake_case")]
-pub enum SplitDirection {
- Right,
- Down,
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(rename_all = "snake_case")]
-pub enum PaneDirection {
- Left,
- Right,
- Up,
- Down,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
-pub struct PaneSwapParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub pane_id: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub direction: Option<PaneDirection>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub source_pane_id: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub target_pane_id: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
-pub struct PaneLayoutParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub pane_id: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-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)]
-pub struct PaneEdgesParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub pane_id: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-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)]
-pub struct PaneResizeParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub pane_id: Option<String>,
- pub direction: PaneDirection,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub amount: Option<f32>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
-pub struct PaneListParams {
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub workspace_id: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-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)]
-pub struct PaneSendTextParams {
- pub pane_id: String,
- pub text: String,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneSendKeysParams {
- pub pane_id: String,
- pub keys: Vec<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneSendInputParams {
- pub pane_id: String,
- #[serde(default, skip_serializing_if = "String::is_empty")]
- pub text: String,
- #[serde(default, skip_serializing_if = "Vec::is_empty")]
- pub keys: Vec<String>,
-}
-
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct ServerLiveHandoffParams {
#[serde(default, skip_serializing_if = "Option::is_none")]
@@ -396,97 +290,6 @@ pub struct ServerLiveHandoffParams {
pub expected_version: Option<String>,
}
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReadParams {
- pub pane_id: String,
- pub source: ReadSource,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub lines: Option<u32>,
- #[serde(default)]
- pub format: ReadFormat,
- #[serde(default = "default_true")]
- pub strip_ansi: bool,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReportAgentParams {
- pub pane_id: String,
- pub source: String,
- pub agent: String,
- pub state: PaneAgentState,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub message: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub custom_status: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub seq: Option<u64>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent_session_id: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent_session_path: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReportAgentSessionParams {
- pub pane_id: String,
- pub source: String,
- pub agent: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub seq: Option<u64>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent_session_id: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent_session_path: Option<String>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReportMetadataParams {
- pub pane_id: String,
- pub source: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub applies_to_source: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub title: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub display_agent: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub custom_status: Option<String>,
- #[serde(default, skip_serializing_if = "HashMap::is_empty")]
- pub state_labels: HashMap<String, String>,
- #[serde(default)]
- pub clear_title: bool,
- #[serde(default)]
- pub clear_display_agent: bool,
- #[serde(default)]
- pub clear_custom_status: bool,
- #[serde(default)]
- pub clear_state_labels: bool,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub seq: Option<u64>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub ttl_ms: Option<u64>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneClearAgentAuthorityParams {
- pub pane_id: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub source: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub seq: Option<u64>,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReleaseAgentParams {
- pub pane_id: String,
- pub source: String,
- pub agent: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub seq: Option<u64>,
-}
-
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ReadSource {
@@ -793,6 +596,9 @@ pub enum ResponseResult {
PaneSwap {
swap: PaneSwapResult,
},
+ PaneZoom {
+ zoom: PaneZoomResult,
+ },
PaneLayout {
layout: PaneLayoutSnapshot,
},
@@ -924,142 +730,6 @@ pub struct AgentInfo {
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneInfo {
- pub pane_id: String,
- pub terminal_id: String,
- pub workspace_id: String,
- pub tab_id: String,
- pub focused: bool,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub cwd: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub foreground_cwd: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub label: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub title: Option<String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub display_agent: Option<String>,
- pub agent_status: AgentStatus,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub custom_status: Option<String>,
- #[serde(default, skip_serializing_if = "HashMap::is_empty")]
- pub state_labels: HashMap<String, String>,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub agent_session: Option<AgentSessionInfo>,
- pub revision: u64,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneSwapResult {
- pub changed: bool,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub reason: Option<PaneSwapReason>,
- pub source_pane_id: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub target_pane_id: Option<String>,
- pub focused_pane_id: String,
- pub layout: PaneLayoutSnapshot,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(rename_all = "snake_case")]
-pub enum PaneSwapReason {
- NoNeighbor,
- SamePane,
- NotFound,
- CrossTab,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneLayoutSnapshot {
- pub workspace_id: String,
- pub tab_id: String,
- pub zoomed: bool,
- pub area: PaneLayoutRect,
- pub focused_pane_id: String,
- pub panes: Vec<PaneLayoutPane>,
- pub splits: Vec<PaneLayoutSplit>,
-}
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneLayoutRect {
- pub x: u16,
- pub y: u16,
- pub width: u16,
- pub height: u16,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneLayoutPane {
- pub pane_id: String,
- pub focused: bool,
- pub rect: PaneLayoutRect,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneLayoutSplit {
- pub id: String,
- pub direction: SplitDirection,
- pub ratio: f32,
- pub rect: PaneLayoutRect,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneNeighborResult {
- pub pane_id: String,
- pub direction: PaneDirection,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub neighbor_pane_id: Option<String>,
- pub layout: PaneLayoutSnapshot,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneEdgesResult {
- pub pane_id: String,
- pub left: bool,
- pub right: bool,
- pub up: bool,
- pub down: bool,
- pub layout: PaneLayoutSnapshot,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneFocusDirectionResult {
- pub changed: bool,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub reason: Option<PaneFocusDirectionReason>,
- pub source_pane_id: String,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub focused_pane_id: Option<String>,
- pub layout: PaneLayoutSnapshot,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(rename_all = "snake_case")]
-pub enum PaneFocusDirectionReason {
- NoNeighbor,
-}
-
-#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
-pub struct PaneResizeResult {
- pub changed: bool,
- #[serde(default, skip_serializing_if = "Option::is_none")]
- pub reason: Option<PaneResizeReason>,
- pub pane_id: String,
- pub focused_pane_id: String,
- pub layout: PaneLayoutSnapshot,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-#[serde(rename_all = "snake_case")]
-pub enum PaneResizeReason {
- Unchanged,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct AgentSessionInfo {
pub source: String,
pub agent: String,
@@ -1068,18 +738,6 @@ pub struct AgentSessionInfo {
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
-pub struct PaneReadResult {
- pub pane_id: String,
- pub workspace_id: String,
- pub tab_id: String,
- pub source: ReadSource,
- pub format: ReadFormat,
- pub text: String,
- pub revision: u64,
- pub truncated: bool,
-}
-
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct IntegrationInstallResult {
pub messages: Vec<String>,
}