234 lines
8.0 KiB
Rust
234 lines
8.0 KiB
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
pub mod agents;
|
|
pub mod common;
|
|
pub mod events;
|
|
pub mod integrations;
|
|
pub mod panes;
|
|
pub mod plugins;
|
|
pub mod response;
|
|
pub mod server;
|
|
pub mod session;
|
|
pub mod tabs;
|
|
pub mod workspaces;
|
|
pub mod worktrees;
|
|
|
|
pub use agents::*;
|
|
pub use common::*;
|
|
pub use events::*;
|
|
pub use integrations::*;
|
|
pub use panes::*;
|
|
pub use plugins::*;
|
|
pub use response::*;
|
|
pub use server::*;
|
|
pub use session::*;
|
|
pub use tabs::*;
|
|
pub use workspaces::*;
|
|
pub use worktrees::*;
|
|
|
|
fn is_false(value: &bool) -> bool {
|
|
!*value
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)]
|
|
pub struct Request {
|
|
pub id: String,
|
|
#[serde(flatten)]
|
|
pub method: Method,
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, schemars::JsonSchema)]
|
|
#[serde(tag = "method", content = "params")]
|
|
// Request enums are short-lived wire values; keeping variants direct preserves
|
|
// the simple serde shape and avoids boxing churn across every caller.
|
|
#[allow(clippy::large_enum_variant)]
|
|
pub enum Method {
|
|
#[serde(rename = "ping")]
|
|
Ping(PingParams),
|
|
#[serde(rename = "server.stop")]
|
|
ServerStop(EmptyParams),
|
|
#[serde(rename = "server.live_handoff")]
|
|
ServerLiveHandoff(ServerLiveHandoffParams),
|
|
#[serde(rename = "server.reload_config")]
|
|
ServerReloadConfig(EmptyParams),
|
|
#[serde(rename = "server.agent_manifests")]
|
|
ServerAgentManifests(EmptyParams),
|
|
#[serde(rename = "server.reload_agent_manifests")]
|
|
ServerReloadAgentManifests(EmptyParams),
|
|
#[serde(rename = "notification.show")]
|
|
NotificationShow(NotificationShowParams),
|
|
#[serde(rename = "client.window_title.set")]
|
|
ClientWindowTitleSet(ClientWindowTitleSetParams),
|
|
#[serde(rename = "client.window_title.clear")]
|
|
ClientWindowTitleClear(EmptyParams),
|
|
#[serde(rename = "session.snapshot")]
|
|
SessionSnapshot(EmptyParams),
|
|
#[serde(rename = "workspace.create")]
|
|
WorkspaceCreate(WorkspaceCreateParams),
|
|
#[serde(rename = "workspace.list")]
|
|
WorkspaceList(EmptyParams),
|
|
#[serde(rename = "workspace.get")]
|
|
WorkspaceGet(WorkspaceTarget),
|
|
#[serde(rename = "workspace.focus")]
|
|
WorkspaceFocus(WorkspaceTarget),
|
|
#[serde(rename = "workspace.rename")]
|
|
WorkspaceRename(WorkspaceRenameParams),
|
|
#[serde(rename = "workspace.move")]
|
|
WorkspaceMove(WorkspaceMoveParams),
|
|
#[serde(rename = "workspace.report_metadata")]
|
|
WorkspaceReportMetadata(WorkspaceReportMetadataParams),
|
|
#[serde(rename = "workspace.close")]
|
|
WorkspaceClose(WorkspaceTarget),
|
|
#[serde(rename = "worktree.list")]
|
|
WorktreeList(WorktreeListParams),
|
|
#[serde(rename = "worktree.create")]
|
|
WorktreeCreate(WorktreeCreateParams),
|
|
#[serde(rename = "worktree.open")]
|
|
WorktreeOpen(WorktreeOpenParams),
|
|
#[serde(rename = "worktree.remove")]
|
|
WorktreeRemove(WorktreeRemoveParams),
|
|
#[serde(rename = "tab.create")]
|
|
TabCreate(TabCreateParams),
|
|
#[serde(rename = "tab.list")]
|
|
TabList(TabListParams),
|
|
#[serde(rename = "tab.get")]
|
|
TabGet(TabTarget),
|
|
#[serde(rename = "tab.focus")]
|
|
TabFocus(TabTarget),
|
|
#[serde(rename = "tab.rename")]
|
|
TabRename(TabRenameParams),
|
|
#[serde(rename = "tab.move")]
|
|
TabMove(TabMoveParams),
|
|
#[serde(rename = "tab.close")]
|
|
TabClose(TabTarget),
|
|
#[serde(rename = "agent.list")]
|
|
AgentList(EmptyParams),
|
|
#[serde(rename = "agent.get")]
|
|
AgentGet(AgentTarget),
|
|
#[serde(rename = "agent.read")]
|
|
AgentRead(AgentReadParams),
|
|
#[serde(rename = "agent.explain")]
|
|
AgentExplain(AgentTarget),
|
|
#[serde(rename = "agent.send")]
|
|
AgentSend(AgentSendParams),
|
|
#[serde(rename = "agent.rename")]
|
|
AgentRename(AgentRenameParams),
|
|
#[serde(rename = "agent.focus")]
|
|
AgentFocus(AgentTarget),
|
|
#[serde(rename = "agent.start")]
|
|
AgentStart(AgentStartParams),
|
|
#[serde(rename = "agent.prompt")]
|
|
AgentPrompt(AgentPromptParams),
|
|
#[serde(rename = "pane.split")]
|
|
PaneSplit(PaneSplitParams),
|
|
#[serde(rename = "pane.swap")]
|
|
PaneSwap(PaneSwapParams),
|
|
#[serde(rename = "pane.move")]
|
|
PaneMove(PaneMoveParams),
|
|
#[serde(rename = "pane.zoom")]
|
|
PaneZoom(PaneZoomParams),
|
|
#[serde(rename = "pane.layout")]
|
|
PaneLayout(PaneLayoutParams),
|
|
#[serde(rename = "pane.process_info")]
|
|
PaneProcessInfo(PaneProcessInfoParams),
|
|
#[serde(rename = "layout.export")]
|
|
LayoutExport(LayoutExportParams),
|
|
#[serde(rename = "layout.apply")]
|
|
LayoutApply(LayoutApplyParams),
|
|
#[serde(rename = "layout.set_split_ratio")]
|
|
LayoutSetSplitRatio(LayoutSetSplitRatioParams),
|
|
#[serde(rename = "pane.neighbor")]
|
|
PaneNeighbor(PaneNeighborParams),
|
|
#[serde(rename = "pane.edges")]
|
|
PaneEdges(PaneEdgesParams),
|
|
#[serde(rename = "pane.focus_direction")]
|
|
PaneFocusDirection(PaneFocusDirectionParams),
|
|
#[serde(rename = "pane.resize")]
|
|
PaneResize(PaneResizeParams),
|
|
#[serde(rename = "pane.list")]
|
|
PaneList(PaneListParams),
|
|
#[serde(rename = "pane.current")]
|
|
PaneCurrent(PaneCurrentParams),
|
|
#[serde(rename = "pane.get")]
|
|
PaneGet(PaneTarget),
|
|
#[serde(rename = "pane.focus")]
|
|
PaneFocus(PaneTarget),
|
|
#[serde(rename = "pane.rename")]
|
|
PaneRename(PaneRenameParams),
|
|
#[serde(rename = "pane.send_text")]
|
|
PaneSendText(PaneSendTextParams),
|
|
#[serde(rename = "pane.send_keys")]
|
|
PaneSendKeys(PaneSendKeysParams),
|
|
#[serde(rename = "pane.send_input")]
|
|
PaneSendInput(PaneSendInputParams),
|
|
#[serde(rename = "pane.read")]
|
|
PaneRead(PaneReadParams),
|
|
#[serde(rename = "pane.graphics.set")]
|
|
PaneGraphicsSet(PaneGraphicsSetParams),
|
|
#[serde(rename = "pane.graphics.clear")]
|
|
PaneGraphicsClear(PaneGraphicsClearParams),
|
|
#[serde(rename = "pane.graphics.info")]
|
|
PaneGraphicsInfo(PaneTarget),
|
|
#[serde(rename = "pane.graphics.stream")]
|
|
#[schemars(skip)]
|
|
PaneGraphicsStream(PaneGraphicsStreamParams),
|
|
#[serde(skip)]
|
|
#[schemars(skip)]
|
|
PaneGraphicsStreamSet(PaneGraphicsSetParams),
|
|
#[serde(skip)]
|
|
#[schemars(skip)]
|
|
PaneGraphicsStreamOpen(PaneGraphicsStreamParams),
|
|
#[serde(skip)]
|
|
#[schemars(skip)]
|
|
PaneGraphicsStreamClose(PaneGraphicsStreamParams),
|
|
#[serde(rename = "pane.report_agent")]
|
|
PaneReportAgent(PaneReportAgentParams),
|
|
#[serde(rename = "pane.report_agent_session")]
|
|
PaneReportAgentSession(PaneReportAgentSessionParams),
|
|
#[serde(rename = "pane.report_metadata")]
|
|
PaneReportMetadata(PaneReportMetadataParams),
|
|
#[serde(rename = "pane.clear_agent_authority")]
|
|
PaneClearAgentAuthority(PaneClearAgentAuthorityParams),
|
|
#[serde(rename = "pane.release_agent")]
|
|
PaneReleaseAgent(PaneReleaseAgentParams),
|
|
#[serde(rename = "pane.close")]
|
|
PaneClose(PaneTarget),
|
|
#[serde(rename = "popup.close")]
|
|
PopupClose(EmptyParams),
|
|
#[serde(rename = "events.subscribe")]
|
|
EventsSubscribe(EventsSubscribeParams),
|
|
#[serde(rename = "events.wait")]
|
|
EventsWait(EventsWaitParams),
|
|
#[serde(rename = "pane.wait_for_output")]
|
|
PaneWaitForOutput(PaneWaitForOutputParams),
|
|
#[serde(rename = "integration.install")]
|
|
IntegrationInstall(IntegrationInstallParams),
|
|
#[serde(rename = "integration.uninstall")]
|
|
IntegrationUninstall(IntegrationUninstallParams),
|
|
#[serde(rename = "plugin.link")]
|
|
PluginLink(PluginLinkParams),
|
|
#[serde(rename = "plugin.list")]
|
|
PluginList(PluginListParams),
|
|
#[serde(rename = "plugin.unlink")]
|
|
PluginUnlink(PluginUnlinkParams),
|
|
#[serde(rename = "plugin.enable")]
|
|
PluginEnable(PluginSetEnabledParams),
|
|
#[serde(rename = "plugin.disable")]
|
|
PluginDisable(PluginSetEnabledParams),
|
|
#[serde(rename = "plugin.action.list")]
|
|
PluginActionList(PluginActionListParams),
|
|
#[serde(rename = "plugin.action.invoke")]
|
|
PluginActionInvoke(PluginActionInvokeParams),
|
|
#[serde(rename = "plugin.log.list")]
|
|
PluginLogList(PluginLogListParams),
|
|
#[serde(rename = "plugin.pane.open")]
|
|
PluginPaneOpen(PluginPaneOpenParams),
|
|
#[serde(rename = "plugin.pane.focus")]
|
|
PluginPaneFocus(PluginPaneFocusParams),
|
|
#[serde(rename = "plugin.pane.close")]
|
|
PluginPaneClose(PluginPaneCloseParams),
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests;
|