From 513ffb13dcebd9df154a1689e3fd36e746ef3806 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Tue, 6 Oct 2026 18:07:39 -0700 Subject: [PATCH 1/5] test: the dock column keeps an agent chat role Red: set-column-dock and move-tab-to-column drop role, identify does not advertise dock-column-role-v1, the registry record drops it, and the app never sends it back. Co-Authored-By: Claude Opus 5.5 --- .../DockColumnMappingTests.swift | 14 ++++ .../CmuxNextDaemonTests/EncodingTests.swift | 12 ++++ .../src/server/dock_columns_tests.rs | 70 +++++++++++++++++++ .../resource_store/viewport.rs | 21 ++++++ 4 files changed, 117 insertions(+) diff --git a/Packages/macOS/CmuxNext/Tests/CmuxNextBridgeTests/DockColumnMappingTests.swift b/Packages/macOS/CmuxNext/Tests/CmuxNextBridgeTests/DockColumnMappingTests.swift index c09ab5c399a4..d9b7e1913e35 100644 --- a/Packages/macOS/CmuxNext/Tests/CmuxNextBridgeTests/DockColumnMappingTests.swift +++ b/Packages/macOS/CmuxNext/Tests/CmuxNextBridgeTests/DockColumnMappingTests.swift @@ -34,6 +34,20 @@ struct DockColumnMappingTests { #expect(dock == DockSnapshot(edge: .right, mode: .docked)) } + /// `dock-column-role-v1`: the agent chat role survives the trip through + /// the layout model and back to the daemon; an unknown role is dropped. + @Test func theAgentChatRoleSurvivesTheLayout() throws { + func role(_ json: String) throws -> String? { + let dock = try #require(try column(#"{"id":9,"width":0.3,"layout":{"type":"leaf","pane":4},"dock":"# + json + "}").dock) + let request = SetColumnDockRequest(pane: 4, dock: LayoutMapping.snapshot(LayoutMapping.dock(dock))) + let sent = try JSONSerialization.jsonObject(with: JSONEncoder().encode(request)) as? [String: Any] + return sent?["role"] as? String + } + #expect(try role(#"{"edge":"left","mode":"docked","role":"agent_chat"}"#) == "agent_chat") + #expect(try role(#"{"edge":"left","mode":"docked","role":"notes"}"#) == nil) + #expect(try role(#"{"edge":"left","mode":"docked"}"#) == nil) + } + @Test func roundTripsThroughTheLayout() { for edge in DockEdge.allCases { for mode in DockMode.allCases { diff --git a/Packages/macOS/CmuxNext/Tests/CmuxNextDaemonTests/EncodingTests.swift b/Packages/macOS/CmuxNext/Tests/CmuxNextDaemonTests/EncodingTests.swift index 7f95dc2b59bb..2004d47ae87a 100644 --- a/Packages/macOS/CmuxNext/Tests/CmuxNextDaemonTests/EncodingTests.swift +++ b/Packages/macOS/CmuxNext/Tests/CmuxNextDaemonTests/EncodingTests.swift @@ -125,6 +125,18 @@ import Testing #expect(unpin["sticky"] == nil) } + /// `dock-column-role-v1`: an agent chat dock read from the daemon is sent + /// back with its role; a dock without one sends none. + @Test func dockRequestsCarryTheDockRole() throws { + let chat = try JSONDecoder().decode(DockSnapshot.self, from: Data(#"{"edge":"left","mode":"docked","role":"agent_chat"}"#.utf8)) + #expect(try object(SetColumnDockRequest(pane: 4, dock: chat))["role"] == .string("agent_chat")) + let move = try object(MoveTabToColumnRequest(surface: 3, target: .pane(7), dock: chat)) + #expect(move["dock"]?["role"] == .string("agent_chat")) + let plain = DockSnapshot(edge: .left, mode: .docked) + #expect(try object(SetColumnDockRequest(pane: 4, dock: plain))["role"] == nil) + #expect(try object(MoveTabToColumnRequest(surface: 3, target: .pane(7), dock: plain))["dock"]?["role"] == nil) + } + @Test func tabDragCommandsCarryTransaction() throws { let split = try object(MoveTabToSplitRequest(surface: 3, pane: 4, edge: .left, transaction: "tx")) #expect(split["cmd"] == .string("move-tab-to-split")) diff --git a/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs b/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs index 19f7a80dfe70..d4b29e51d31b 100644 --- a/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs +++ b/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs @@ -702,3 +702,73 @@ fn move_tab_to_column_refuses_a_pin_when_the_closing_source_column_scrolled() { assert_eq!(wire.screen()["layout"], before["layout"]); assert_eq!(wire.dock(), vec![dock("right", "docked"), None]); } + +#[test] +fn dock_column_role_capability_is_advertised() { + let mut wire = Wire::new(); + let identify = wire.ok(json!({"cmd": "identify"})); + let capabilities = identify["capabilities"].as_array().unwrap(); + assert!(capabilities.contains(&json!("dock-column-role-v1"))); +} + +/// `dock-column-role-v1`: the agent chat role is kept with the pin, sent in +/// the same `dock` field, replaced by a pin without one and dropped with it. +#[test] +fn dock_column_role_is_kept_with_the_pin_and_dropped_with_it() { + let (mut wire, panes) = Wire::with_columns(2); + let data = wire.ok(json!({ + "cmd": "set-column-dock", + "pane": panes[0], + "dock": true, + "edge": "left", + "role": "agent_chat", + })); + let chat = json!({"edge": "left", "mode": "docked", "role": "agent_chat"}); + assert_eq!(data["dock"], chat); + assert_eq!(wire.dock(), vec![Some(chat.clone()), None]); + + wire.set_dock(panes[0], "left", "docked"); + assert_eq!(wire.dock(), vec![dock("left", "docked"), None], "a pin without a role clears it"); + + wire.ok(json!({ + "cmd": "set-column-dock", + "pane": panes[0], + "dock": true, + "edge": "left", + "role": "agent_chat", + })); + wire.ok(json!({"cmd": "set-column-dock", "pane": panes[0], "dock": false})); + assert_eq!(wire.dock(), vec![None, None]); + let undone = wire.ok(json!({"cmd": "undo-layout", "pane": panes[0]})); + assert_eq!(undone["undone"], true, "{undone}"); + assert_eq!(wire.dock(), vec![Some(chat), None], "undo restores the role with the pin"); +} + +#[test] +fn dock_column_rejects_an_unknown_role() { + let (mut wire, panes) = Wire::with_columns(2); + let response = wire.send(json!({ + "cmd": "set-column-dock", + "pane": panes[0], + "dock": true, + "role": "sidebar", + })); + assert_eq!(response["ok"], false, "{response}"); + assert_eq!(response["error_code"], "invalid-argument"); + assert_eq!(wire.dock(), vec![None, None]); +} + +#[test] +fn move_tab_to_column_pins_the_new_column_with_its_role() { + let (mut wire, panes) = Wire::with_columns(1); + let chat = wire.mux.new_tab(Some(panes[0]), None, Some((38, 22))).unwrap(); + wire.ok(json!({ + "cmd": "move-tab-to-column", + "surface": chat.id, + "pane": panes[0], + "dock": {"edge": "left", "mode": "docked", "role": "agent_chat"}, + })); + let columns = wire.columns(); + assert_eq!(columns.len(), 2); + assert_eq!(columns[1]["dock"], json!({"edge": "left", "mode": "docked", "role": "agent_chat"})); +} diff --git a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs index 06222a52a518..f68a55908f38 100644 --- a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs +++ b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs @@ -212,4 +212,25 @@ mod dock_key_tests { let loaded: RegistryViewport = serde_json::from_str(&sticky_named).unwrap(); assert_eq!(loaded, viewport); } + + /// `dock-column-role-v1`: the role is stored in the dock record, so the + /// agent chat column comes back after a restart. A record without it (an + /// older build's) has none, and a role this build does not know reads as + /// none instead of making the screen unreadable. + #[test] + fn a_registry_viewport_keeps_the_dock_role() { + let mut record = serde_json::to_value(viewport()).unwrap(); + let dock = &record["columns"][0]["dock"]; + assert!(dock.get("role").is_none(), "no role while unset: {record}"); + record["columns"][0]["dock"]["role"] = serde_json::json!("agent_chat"); + let loaded: RegistryViewport = serde_json::from_value(record.clone()).unwrap(); + let written = serde_json::to_value(&loaded).unwrap(); + assert_eq!(written["columns"][0]["dock"]["role"], "agent_chat", "{written}"); + + record["columns"][0]["dock"]["role"] = serde_json::json!("notes"); + let loaded: RegistryViewport = serde_json::from_value(record).unwrap(); + let written = serde_json::to_value(&loaded).unwrap(); + let plain = serde_json::json!({"edge": "left", "mode": "docked"}); + assert_eq!(written["columns"][0]["dock"], plain); + } } From 48d096c2915ef12e924e1f402eda5e05da8d29b5 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Tue, 6 Oct 2026 18:07:58 -0700 Subject: [PATCH 2/5] feat: dock columns keep an agent chat role (dock-column-role-v1) cmux-tui: ColumnDock gains an optional role (agent_chat), set with the pin by set-column-dock and move-tab-to-column, journaled and restored with it, dropped with it, and read as no role when unknown. identify advertises dock-column-role-v1. Spec and generated bindings updated. cmux next: DockSnapshot, the dock requests and the layout's DockColumn carry the role; no behavior uses it yet. Co-Authored-By: Claude Opus 5.5 --- .../CmuxNextBridge/LayoutMapping.swift | 6 +- .../Connection/DaemonEndpoint.swift | 5 +- .../Layout/SetColumnDockRequest.swift | 3 + .../Requests/TabMove/MoveTabToLayout.swift | 3 +- .../CmuxNextDaemon/Tree/DockSnapshot.swift | 11 ++- .../CmuxNextLayout/Model/DockColumn.swift | 11 ++- cmux-tui/bindings/cpp/.cmux-sdk-manifest.json | 10 +-- .../cpp/include/cmux/raw/generated/models.hpp | 4 +- .../cpp/src/raw/generated/protocol.cpp | 35 +++++++- .../bindings/go/raw/.cmux-sdk-manifest.json | 20 ++--- .../bindings/go/raw/generated_commands.go | 32 ++++++- cmux-tui/bindings/go/raw/generated_events.go | 2 +- .../bindings/go/raw/generated_metadata.go | 6 +- .../go/raw/generated_presence_test.go | 84 ++++++++++++++++++- cmux-tui/bindings/go/raw/generated_types.go | 38 +++++++-- .../src/com/cmux/raw/.cmux-sdk-manifest.json | 16 ++-- .../java/src/com/cmux/raw/ColumnPin.java | 17 +++- .../java/src/com/cmux/raw/Commands.java | 2 +- .../java/src/com/cmux/raw/Protocol.java | 2 +- .../com/cmux/raw/SetColumnDockRequest.java | 17 +++- .../raw/_generated/.cmux-sdk-manifest.json | 18 ++-- .../python/cmux/raw/_generated/_schema.py | 2 +- .../python/cmux/raw/_generated/client.py | 4 +- .../python/cmux/raw/_generated/metadata.py | 3 +- .../python/cmux/raw/_generated/models.py | 2 + .../src/generated/.cmux-sdk-manifest.json | 16 ++-- .../bindings/rust/src/generated/commands.rs | 8 +- .../bindings/rust/src/generated/events.rs | 2 +- .../bindings/rust/src/generated/metadata.rs | 4 +- cmux-tui/bindings/rust/src/generated/mod.rs | 2 +- cmux-tui/bindings/rust/src/generated/types.rs | 4 +- .../src/raw/generated/.cmux-sdk-manifest.json | 18 ++-- .../typescript/src/raw/generated/commands.ts | 3 +- .../typescript/src/raw/generated/events.ts | 2 +- .../typescript/src/raw/generated/index.ts | 2 +- .../typescript/src/raw/generated/metadata.ts | 35 +++++++- .../typescript/src/raw/generated/types.ts | 3 +- .../src/raw/generated/.cmux-sdk-manifest.json | 6 +- .../zig/src/raw/generated/protocol.zig | 7 +- cmux-tui/crates/cmux-tui-core/src/lib.rs | 2 +- cmux-tui/crates/cmux-tui-core/src/model.rs | 2 +- .../cmux-tui-core/src/model/layout_columns.rs | 53 +++++++++++- .../cmux-tui-core/src/mux/dock_columns.rs | 25 ++++-- .../mux/resource_topology/column_update.rs | 2 +- .../src/mux/tests/column_update.rs | 2 +- .../src/mux/tests/dock_columns.rs | 16 ++-- cmux-tui/crates/cmux-tui-core/src/server.rs | 19 ++++- .../cmux-tui-core/src/server/capabilities.rs | 1 + .../resource_store/screen_rows.rs | 2 +- .../resource_store/viewport.rs | 2 +- cmux-tui/spec/commands.md | 11 +-- cmux-tui/spec/sdk-schema.json | 24 +++++- plans/cmux-next/daemon-capabilities.json | 1 + plans/cmux-next/dock-column.md | 6 ++ 54 files changed, 500 insertions(+), 133 deletions(-) diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextBridge/LayoutMapping.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextBridge/LayoutMapping.swift index fb3f19ecb7fc..9868babde931 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextBridge/LayoutMapping.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextBridge/LayoutMapping.swift @@ -78,7 +78,8 @@ public struct LayoutMapping { case .top: .top case .bottom: .bottom } - return DockColumn(edge: edge, mode: snapshot.mode == .overlay ? .overlay : .docked) + return DockColumn(edge: edge, mode: snapshot.mode == .overlay ? .overlay : .docked, + role: snapshot.role.map { _ in .agentChat }) } /// The layout's dock as the daemon's value. Top and bottom need a daemon @@ -91,7 +92,8 @@ public struct LayoutMapping { case .top: .top case .bottom: .bottom } - return DockSnapshot(edge: edge, mode: dock.mode == .overlay ? .overlay : .docked) + return DockSnapshot(edge: edge, mode: dock.mode == .overlay ? .overlay : .docked, + role: dock.role.map { _ in .agentChat }) } /// Converts one daemon layout node. Nil when nothing in it can be shown. diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Connection/DaemonEndpoint.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Connection/DaemonEndpoint.swift index e08f6fa61820..cb3fc2aa326d 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Connection/DaemonEndpoint.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Connection/DaemonEndpoint.swift @@ -126,6 +126,9 @@ public struct DaemonCapabilities: Sendable { /// accept edges `top` and `bottom`, sent back as `columns[].dock` /// (plans/cmux-next/layout-model.md). public let edgeDocks = "edge-docks-v1" + /// `dock.role` (`agent_chat`) on `set-column-dock`, `move-tab-to-column` + /// and `columns[].dock`: the agent chat column. + public let dockColumnRole = "dock-column-role-v1" /// Rows: `new-row`, `set-row-heights` and `columns[].rows` /// (plans/cmux-next/rows.md). Without it no row op is sent. public let rows = "rows-v1" @@ -225,7 +228,7 @@ public struct DaemonCapabilities: Sendable { terminalReap, terminalReaperActive, batchClose, closeReason, browserHostProvider, frontendBrowserActivate, loopbackForward, screenMetadata, screenGroups, profiles, terminalPendingSequence, personalTerminals, browserProfiles, notificationSource, terminalShellArgs, terminalFrontendShellIntegration, launchSnapshot, bookmarks, workspacePin, notificationMarkUnread, - terminalCommandJournal, dockColumns, edgeDocks, rows, tabColumnRespawn, endTerminalsKeepLayout, stateResources, + terminalCommandJournal, dockColumns, edgeDocks, dockColumnRole, rows, tabColumnRespawn, endTerminalsKeepLayout, stateResources, sessionIdentity, localConversations, tabSplitRespawn, frontendBrowserHistory, attachIdentity, creationReceipts, creationAttemptKeys, terminalColorOverrides, workspaceKind, workspaceAgentFolder, conversationTabs, agentSessionTabs, pageTabs, conversationSearch, cloudConversations, localAttachments, diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/Layout/SetColumnDockRequest.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/Layout/SetColumnDockRequest.swift index f70b9dcd7027..0342f75302b0 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/Layout/SetColumnDockRequest.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/Layout/SetColumnDockRequest.swift @@ -3,6 +3,7 @@ import Foundation /// Pins the column holding `pane` to a viewport edge, or unpins it /// (`dock-columns-v1`). One docked column per edge: the daemon unpins a /// column already on that edge, and refuses to leave no column scrolling. +/// `role` needs `dock-column-role-v1`; an older daemon ignores it. public struct SetColumnDockRequest: DaemonRequest { public typealias Response = EmptyResponse public static let command = "set-column-dock" @@ -10,12 +11,14 @@ public struct SetColumnDockRequest: DaemonRequest { public var dock: Bool public var edge: String? public var mode: String? + public var role: String? public var transaction: UInt64? public init(pane: PaneID, dock: DockSnapshot?, transaction: UInt64? = nil) { self.pane = pane self.dock = dock != nil self.edge = dock?.edge.rawValue self.mode = dock?.mode.rawValue + self.role = dock?.role?.rawValue self.transaction = transaction } } diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/TabMove/MoveTabToLayout.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/TabMove/MoveTabToLayout.swift index 0285745461d4..49da71eac6af 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/TabMove/MoveTabToLayout.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Requests/TabMove/MoveTabToLayout.swift @@ -49,7 +49,7 @@ public struct MoveTabToColumnRequest: DaemonRequest { } enum CodingKeys: String, CodingKey { case surface, pane, screen, afterColumn, width, dock, transaction } - enum PinKeys: String, CodingKey { case edge, mode } + enum PinKeys: String, CodingKey { case edge, mode, role } public func encode(to encoder: any Encoder) throws { var c = encoder.container(keyedBy: CodingKeys.self) try c.encode(surface, forKey: .surface) @@ -63,6 +63,7 @@ public struct MoveTabToColumnRequest: DaemonRequest { var pin = c.nestedContainer(keyedBy: PinKeys.self, forKey: .dock) try pin.encode(dock.edge.rawValue, forKey: .edge) try pin.encode(dock.mode.rawValue, forKey: .mode) + try pin.encodeIfPresent(dock.role?.rawValue, forKey: .role) } try c.encodeIfPresent(transaction, forKey: .transaction) } diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Tree/DockSnapshot.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Tree/DockSnapshot.swift index 106c9449da08..33b32f333ca5 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Tree/DockSnapshot.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextDaemon/Tree/DockSnapshot.swift @@ -9,21 +9,26 @@ public struct DockSnapshot: Sendable, Hashable, Decodable { public var isBand: Bool { self == .top || self == .bottom } } public enum Mode: String, Sendable, Hashable, Decodable { case docked, overlay } + /// What the column is for (`dock-column-role-v1`): the agent chat column. + public enum Role: String, Sendable, Hashable, Decodable { case agentChat = "agent_chat" } public var edge: Edge public var mode: Mode + public var role: Role? - public init(edge: Edge, mode: Mode) { + public init(edge: Edge, mode: Mode, role: Role? = nil) { self.edge = edge self.mode = mode + self.role = role } - enum CodingKeys: String, CodingKey { case edge, mode } + enum CodingKeys: String, CodingKey { case edge, mode, role } /// Unknown values from a newer daemon fall back to the defaults - /// (right, docked) rather than dropping the screen. + /// (right, docked, no role) rather than dropping the screen. public init(from decoder: any Decoder) throws { let c = try decoder.container(keyedBy: CodingKeys.self) edge = (try? c.decodeIfPresent(String.self, forKey: .edge)).flatMap { $0.flatMap(Edge.init(rawValue:)) } ?? .right mode = (try? c.decodeIfPresent(String.self, forKey: .mode)).flatMap { $0.flatMap(Mode.init(rawValue:)) } ?? .docked + role = (try? c.decodeIfPresent(String.self, forKey: .role)).flatMap { $0.flatMap(Role.init(rawValue:)) } } } diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift index cfc9e4f67bbb..b7f6e3543ebb 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift @@ -22,14 +22,23 @@ public nonisolated enum DockMode: String, Hashable, Sendable, CaseIterable { public var toggled: DockMode { self == .docked ? .overlay : .docked } } +/// What a docked column is for (daemon `dock.role`, `dock-column-role-v1`). +public nonisolated enum DockRole: String, Hashable, Sendable { + /// The agent chat column: new terminals and browsers open beside it, + /// never in it (lawrence-call-1006 D). + case agentChat +} + /// A column pinned to one edge of the viewport. Daemon `columns[].dock` /// (`dock-columns-v1`); at most one per edge per screen. public nonisolated struct DockColumn: Hashable, Sendable { public var edge: DockEdge public var mode: DockMode + public var role: DockRole? - public init(edge: DockEdge = .right, mode: DockMode = .docked) { + public init(edge: DockEdge = .right, mode: DockMode = .docked, role: DockRole? = nil) { self.edge = edge self.mode = mode + self.role = role } } diff --git a/cmux-tui/bindings/cpp/.cmux-sdk-manifest.json b/cmux-tui/bindings/cpp/.cmux-sdk-manifest.json index 1c0cae2fd82b..4085825ea680 100644 --- a/cmux-tui/bindings/cpp/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/cpp/.cmux-sdk-manifest.json @@ -12,17 +12,17 @@ }, { "path": "include/cmux/raw/generated/models.hpp", - "sha256": "f514fa49104c35047212190692b5b82b1ad83475358bc12d1c46c01e4421a569", - "size": 251143 + "sha256": "b4a8a4182ee1f473dbbf7397dedf0df23c781c94a070c8e6c71fc116aa218bc3", + "size": 251205 }, { "path": "src/raw/generated/protocol.cpp", - "sha256": "0862a595ca0b981162a2a8b34fdad9fc052a11cbf6644d741bab03d47a89fb36", - "size": 1601396 + "sha256": "34db0a6c078d5e523d8d396d6dec557f0756e0b91d7ff2aa7f2d4119774c5545", + "size": 1602758 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "cpp", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/cpp/include/cmux/raw/generated/models.hpp b/cmux-tui/bindings/cpp/include/cmux/raw/generated/models.hpp index 3936d2d1e90f..7ef27cb0f37e 100644 --- a/cmux-tui/bindings/cpp/include/cmux/raw/generated/models.hpp +++ b/cmux-tui/bindings/cpp/include/cmux/raw/generated/models.hpp @@ -14,7 +14,7 @@ namespace cmux::raw { inline constexpr std::uint32_t kMuxProtocolVersion = 12U; -inline constexpr std::string_view kProtocolIrSha256 = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e"; +inline constexpr std::string_view kProtocolIrSha256 = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa"; struct ActivitySnapshot; struct ActivitySubscribeResult; @@ -1493,6 +1493,7 @@ struct ColorsChangedEvent { struct ColumnPin { std::string edge{}; std::string mode{}; + Field role{}; friend bool operator==(const ColumnPin&, const ColumnPin&) = default; }; @@ -3961,6 +3962,7 @@ struct SetColumnDockRequest { Field edge{}; Field mode{}; Id pane{}; + Field role{}; Field transaction{}; friend bool operator==(const SetColumnDockRequest&, const SetColumnDockRequest&) = default; }; diff --git a/cmux-tui/bindings/cpp/src/raw/generated/protocol.cpp b/cmux-tui/bindings/cpp/src/raw/generated/protocol.cpp index 359864f195f9..79b12a6b69f9 100644 --- a/cmux-tui/bindings/cpp/src/raw/generated/protocol.cpp +++ b/cmux-tui/bindings/cpp/src/raw/generated/protocol.cpp @@ -1570,6 +1570,11 @@ Result Codec::encode(const ColumnPin& value) { auto encoded_mode = encode_value(value.mode); if (!encoded_mode) return std::move(encoded_mode).error(); object.emplace("mode", std::move(encoded_mode).value()); + if (!value.role.is_absent()) { + auto encoded = encode_value(value.role); + if (!encoded) return std::move(encoded).error(); + object.emplace("role", std::move(encoded).value()); + } return Json(std::move(object)); } @@ -1595,6 +1600,16 @@ Result Codec::decode(const Json& value) { if (!decoded) return std::move(decoded).error(); result.mode = std::move(decoded).value(); } + const Json* field_role = value.find("role"); + if (field_role) { + if (field_role->is_null()) { + result.role = Field::null(); + } else { + auto decoded = decode_value(*field_role); + if (!decoded) return std::move(decoded).error(); + result.role = Field(std::move(decoded).value()); + } + } return result; } @@ -23715,6 +23730,11 @@ Result Codec::encode(const SetColumnDockRequest& val auto encoded_pane = encode_value(value.pane); if (!encoded_pane) return std::move(encoded_pane).error(); object.emplace("pane", std::move(encoded_pane).value()); + if (!value.role.is_absent()) { + auto encoded = encode_value(value.role); + if (!encoded) return std::move(encoded).error(); + object.emplace("role", std::move(encoded).value()); + } if (!value.transaction.is_absent()) { auto encoded = encode_value(value.transaction); if (!encoded) return std::move(encoded).error(); @@ -23765,6 +23785,16 @@ Result Codec::decode(const Json& val if (!decoded) return std::move(decoded).error(); result.pane = std::move(decoded).value(); } + const Json* field_role = value.find("role"); + if (field_role) { + if (field_role->is_null()) { + result.role = Field::null(); + } else { + auto decoded = decode_value(*field_role); + if (!decoded) return std::move(decoded).error(); + result.role = Field(std::move(decoded).value()); + } + } const Json* field_transaction = value.find("transaction"); if (field_transaction) { if (field_transaction->is_null()) { @@ -33694,6 +33724,9 @@ constexpr std::array kCommand175FieldRequirements{{ {"display_name", 12U, "shared-sizing-v1"}, {"user_id", 12U, "shared-sizing-v1"}, }}; +constexpr std::array kCommand177FieldRequirements{{ + {"role", 12U, "dock-column-role-v1"}, +}}; constexpr std::array kCommand178FieldRequirements{{ {"complete", 9U, ""}, {"cursor", 9U, ""}, @@ -33909,7 +33942,7 @@ constexpr std::array kCommands{{ {"set-cell-pixels", "frontend", 6U, "", false, "", "", std::span{}}, {"set-client-info", "control", 6U, "", false, "", "", std::span(kCommand175FieldRequirements)}, {"set-client-sizing", "control", 10U, "", false, "", "", std::span{}}, - {"set-column-dock", "control", 12U, "dock-columns-v1", false, "", "", std::span{}}, + {"set-column-dock", "control", 12U, "dock-columns-v1", false, "", "", std::span(kCommand177FieldRequirements)}, {"set-default-colors", "control", 5U, "", false, "", "", std::span(kCommand178FieldRequirements)}, {"set-frontend-browser-history", "control", 12U, "frontend-browser-history-v1", false, "", "", std::span{}}, {"set-personal-terminal", "control", 12U, "personal-terminals-v1", false, "", "", std::span{}}, diff --git a/cmux-tui/bindings/go/raw/.cmux-sdk-manifest.json b/cmux-tui/bindings/go/raw/.cmux-sdk-manifest.json index de891c984f9e..df8b44b2538e 100644 --- a/cmux-tui/bindings/go/raw/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/go/raw/.cmux-sdk-manifest.json @@ -2,32 +2,32 @@ "files": [ { "path": "generated_commands.go", - "sha256": "1bdf9de9f34f2a9f9599bcea8f33c6d32c3f1bce7536e100314b5fab02a10d09", - "size": 984796 + "sha256": "18186b00e438be63bb60df2313785acae29357d6fa28c2967184a57af5dd49f0", + "size": 985726 }, { "path": "generated_events.go", - "sha256": "0e69213b93ca925a527fabc3eea3527119958bdc51113ceea76c40a9600d6a9c", + "sha256": "434136603b90320fcb8857efc1a0fec316134aacebc5921b6ef2d8cbd0445f84", "size": 157538 }, { "path": "generated_metadata.go", - "sha256": "f48f56fc4798ec01e792ecc87a0ca0e46aa229926e368c0b0d7439958afc196f", - "size": 99289 + "sha256": "0aa221ad2a096b1da23f660fd61976cb18563bd0deaa8b2b7ba38ac448fee909", + "size": 99360 }, { "path": "generated_presence_test.go", - "sha256": "35838c20ba8da8a1d0e1d7015949a22a7f3ec31ab09b938d1c7c6b73a76f9fb9", - "size": 2093083 + "sha256": "44dc8592b34c50a406e74a3184cdc51e4a86753a2070109a9d29560c18c690e2", + "size": 2095950 }, { "path": "generated_types.go", - "sha256": "4279b9e019c489768b66467981a99ff92cf9d8fc2cda4a2dddd65cd65d4e8ebb", - "size": 441807 + "sha256": "5e519622bb02e725ebca47f0c30a918c2583e887d11595b03153c617f72cde27", + "size": 442592 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "go", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/go/raw/generated_commands.go b/cmux-tui/bindings/go/raw/generated_commands.go index e7def7986125..b22a478c0d9d 100644 --- a/cmux-tui/bindings/go/raw/generated_commands.go +++ b/cmux-tui/bindings/go/raw/generated_commands.go @@ -1,5 +1,5 @@ // Code generated by cmux-tui SDK codegen. DO NOT EDIT. -// Mux protocol 12; IR SHA-256 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// Mux protocol 12; IR SHA-256 df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. package raw @@ -21058,6 +21058,7 @@ type SetColumnDockRequest struct { Edge Presence[string] `json:"-"` Mode Presence[string] `json:"-"` Pane ID `json:"pane"` + Role Presence[string] `json:"-"` Transaction Presence[uint64] `json:"-"` } @@ -21095,6 +21096,18 @@ func (value SetColumnDockRequest) MarshalJSON() ([]byte, error) { } object["mode"] = encodedField } + if value.Role.IsAbsent() { + delete(object, "role") + } else if value.Role.IsNull() { + object["role"] = json.RawMessage("null") + } else { + fieldValue, _ := value.Role.Get() + encodedField, err := json.Marshal(fieldValue) + if err != nil { + return nil, fmt.Errorf("encode SetColumnDockRequest.Role: %w", err) + } + object["role"] = encodedField + } if value.Transaction.IsAbsent() { delete(object, "transaction") } else if value.Transaction.IsNull() { @@ -21119,6 +21132,7 @@ func (value *SetColumnDockRequest) UnmarshalJSON(data []byte) error { Edge Presence[string] `json:"edge"` Mode Presence[string] `json:"mode"` Pane *ID `json:"pane"` + Role Presence[string] `json:"role"` Transaction Presence[uint64] `json:"transaction"` } if err := json.Unmarshal(data, &fields); err != nil { @@ -21136,6 +21150,7 @@ func (value *SetColumnDockRequest) UnmarshalJSON(data []byte) error { return fmt.Errorf("decode SetColumnDockRequest: required field pane is missing or null") } decoded.Pane = *fields.Pane + decoded.Role = fields.Role decoded.Transaction = fields.Transaction *value = SetColumnDockRequest(decoded) return nil @@ -21146,6 +21161,7 @@ type SetColumnDockResult = JSONValue type SetColumnDockOptions struct { Edge Presence[string] `json:"-"` Mode Presence[string] `json:"-"` + Role Presence[string] `json:"-"` Transaction Presence[uint64] `json:"-"` } @@ -21183,6 +21199,18 @@ func (value SetColumnDockOptions) MarshalJSON() ([]byte, error) { } object["mode"] = encodedField } + if value.Role.IsAbsent() { + delete(object, "role") + } else if value.Role.IsNull() { + object["role"] = json.RawMessage("null") + } else { + fieldValue, _ := value.Role.Get() + encodedField, err := json.Marshal(fieldValue) + if err != nil { + return nil, fmt.Errorf("encode SetColumnDockOptions.Role: %w", err) + } + object["role"] = encodedField + } if value.Transaction.IsAbsent() { delete(object, "transaction") } else if value.Transaction.IsNull() { @@ -21205,6 +21233,7 @@ func (value *SetColumnDockOptions) UnmarshalJSON(data []byte) error { var fields struct { Edge Presence[string] `json:"edge"` Mode Presence[string] `json:"mode"` + Role Presence[string] `json:"role"` Transaction Presence[uint64] `json:"transaction"` } if err := json.Unmarshal(data, &fields); err != nil { @@ -21214,6 +21243,7 @@ func (value *SetColumnDockOptions) UnmarshalJSON(data []byte) error { var decoded wire decoded.Edge = fields.Edge decoded.Mode = fields.Mode + decoded.Role = fields.Role decoded.Transaction = fields.Transaction *value = SetColumnDockOptions(decoded) return nil diff --git a/cmux-tui/bindings/go/raw/generated_events.go b/cmux-tui/bindings/go/raw/generated_events.go index c2b3acb44010..508615a96620 100644 --- a/cmux-tui/bindings/go/raw/generated_events.go +++ b/cmux-tui/bindings/go/raw/generated_events.go @@ -1,5 +1,5 @@ // Code generated by cmux-tui SDK codegen. DO NOT EDIT. -// Mux protocol 12; IR SHA-256 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// Mux protocol 12; IR SHA-256 df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. package raw diff --git a/cmux-tui/bindings/go/raw/generated_metadata.go b/cmux-tui/bindings/go/raw/generated_metadata.go index e2d0688398ec..655aa5d01ef2 100644 --- a/cmux-tui/bindings/go/raw/generated_metadata.go +++ b/cmux-tui/bindings/go/raw/generated_metadata.go @@ -1,12 +1,12 @@ // Code generated by cmux-tui SDK codegen. DO NOT EDIT. -// Mux protocol 12; IR SHA-256 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// Mux protocol 12; IR SHA-256 df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. package raw const ( SDKSchemaVersion = 2 MuxProtocolVersion = 12 - SDKIRSHA256 = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e" + SDKIRSHA256 = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa" ) type Authority string @@ -239,7 +239,7 @@ var commandMetadata = map[string]CommandMetadata{ "set-cell-pixels": {Name: "set-cell-pixels", GoMethod: "SetCellPixels", Authority: AuthorityFrontend, Since: 6, Capability: "", Stream: "", FieldSince: nil, FieldCapabilities: nil}, "set-client-info": {Name: "set-client-info", GoMethod: "SetClientInfo", Authority: AuthorityControl, Since: 6, Capability: "", Stream: "", FieldSince: map[string]uint32{"device_id": 12, "device_kind": 12, "device_name": 12, "display_name": 12, "user_id": 12}, FieldCapabilities: map[string]string{"device_id": "shared-sizing-v1", "device_kind": "shared-sizing-v1", "device_name": "shared-sizing-v1", "display_name": "shared-sizing-v1", "user_id": "shared-sizing-v1"}}, "set-client-sizing": {Name: "set-client-sizing", GoMethod: "SetClientSizing", Authority: AuthorityControl, Since: 10, Capability: "", Stream: "", FieldSince: nil, FieldCapabilities: nil}, - "set-column-dock": {Name: "set-column-dock", GoMethod: "SetColumnDock", Authority: AuthorityControl, Since: 12, Capability: "dock-columns-v1", Stream: "", FieldSince: nil, FieldCapabilities: nil}, + "set-column-dock": {Name: "set-column-dock", GoMethod: "SetColumnDock", Authority: AuthorityControl, Since: 12, Capability: "dock-columns-v1", Stream: "", FieldSince: map[string]uint32{"role": 12}, FieldCapabilities: map[string]string{"role": "dock-column-role-v1"}}, "set-default-colors": {Name: "set-default-colors", GoMethod: "SetDefaultColors", Authority: AuthorityControl, Since: 5, Capability: "", Stream: "", FieldSince: map[string]uint32{"complete": 9, "cursor": 9, "cursor_blink": 9, "cursor_style": 9, "palette": 9, "selection_bg": 9, "selection_fg": 9}, FieldCapabilities: nil}, "set-frontend-browser-history": {Name: "set-frontend-browser-history", GoMethod: "SetFrontendBrowserHistory", Authority: AuthorityControl, Since: 12, Capability: "frontend-browser-history-v1", Stream: "", FieldSince: nil, FieldCapabilities: nil}, "set-personal-terminal": {Name: "set-personal-terminal", GoMethod: "SetPersonalTerminal", Authority: AuthorityControl, Since: 12, Capability: "personal-terminals-v1", Stream: "", FieldSince: nil, FieldCapabilities: nil}, diff --git a/cmux-tui/bindings/go/raw/generated_presence_test.go b/cmux-tui/bindings/go/raw/generated_presence_test.go index d55f223280a7..ec141fdc577b 100644 --- a/cmux-tui/bindings/go/raw/generated_presence_test.go +++ b/cmux-tui/bindings/go/raw/generated_presence_test.go @@ -1,5 +1,5 @@ // Code generated by cmux-tui SDK codegen. DO NOT EDIT. -// Mux protocol 12; IR SHA-256 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// Mux protocol 12; IR SHA-256 df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. package raw @@ -607,6 +607,32 @@ func TestGeneratedSchemaPresenceRoundTrips(t *testing.T) { } assertGeneratedFieldJSON(t, presentValue, "terminal_incarnation", true, "\"value\"") }) + t.Run("ColumnPin.Role", func(t *testing.T) { + var missing ColumnPin + if err := json.Unmarshal([]byte("{\"edge\":\"value\",\"mode\":\"value\"}"), &missing); err != nil { + t.Fatal(err) + } + if !missing.Role.IsAbsent() { + t.Fatal("Role did not preserve absence") + } + assertGeneratedFieldJSON(t, missing, "role", false, "") + var nullValue ColumnPin + if err := json.Unmarshal([]byte("{\"edge\":\"value\",\"mode\":\"value\",\"role\":null}"), &nullValue); err != nil { + t.Fatal(err) + } + if !nullValue.Role.IsNull() { + t.Fatal("Role did not preserve null") + } + assertGeneratedFieldJSON(t, nullValue, "role", true, "null") + var presentValue ColumnPin + if err := json.Unmarshal([]byte("{\"edge\":\"value\",\"mode\":\"value\",\"role\":\"value\"}"), &presentValue); err != nil { + t.Fatal(err) + } + if _, ok := presentValue.Role.Get(); !ok { + t.Fatal("Role did not preserve a value") + } + assertGeneratedFieldJSON(t, presentValue, "role", true, "\"value\"") + }) t.Run("ConversationChange.Conversation", func(t *testing.T) { var missing ConversationChange if err := json.Unmarshal([]byte("{\"kind\":\"value\"}"), &missing); err != nil { @@ -24459,6 +24485,32 @@ func TestGeneratedSchemaPresenceRoundTrips(t *testing.T) { } assertGeneratedFieldJSON(t, presentValue, "mode", true, "\"value\"") }) + t.Run("SetColumnDockRequest.Role", func(t *testing.T) { + var missing SetColumnDockRequest + if err := json.Unmarshal([]byte("{\"dock\":true,\"pane\":1}"), &missing); err != nil { + t.Fatal(err) + } + if !missing.Role.IsAbsent() { + t.Fatal("Role did not preserve absence") + } + assertGeneratedFieldJSON(t, missing, "role", false, "") + var nullValue SetColumnDockRequest + if err := json.Unmarshal([]byte("{\"dock\":true,\"pane\":1,\"role\":null}"), &nullValue); err != nil { + t.Fatal(err) + } + if !nullValue.Role.IsNull() { + t.Fatal("Role did not preserve null") + } + assertGeneratedFieldJSON(t, nullValue, "role", true, "null") + var presentValue SetColumnDockRequest + if err := json.Unmarshal([]byte("{\"dock\":true,\"pane\":1,\"role\":\"value\"}"), &presentValue); err != nil { + t.Fatal(err) + } + if _, ok := presentValue.Role.Get(); !ok { + t.Fatal("Role did not preserve a value") + } + assertGeneratedFieldJSON(t, presentValue, "role", true, "\"value\"") + }) t.Run("SetColumnDockRequest.Transaction", func(t *testing.T) { var missing SetColumnDockRequest if err := json.Unmarshal([]byte("{\"dock\":true,\"pane\":1}"), &missing); err != nil { @@ -24537,6 +24589,32 @@ func TestGeneratedSchemaPresenceRoundTrips(t *testing.T) { } assertGeneratedFieldJSON(t, presentValue, "mode", true, "\"value\"") }) + t.Run("SetColumnDockOptions.Role", func(t *testing.T) { + var missing SetColumnDockOptions + if err := json.Unmarshal([]byte("{}"), &missing); err != nil { + t.Fatal(err) + } + if !missing.Role.IsAbsent() { + t.Fatal("Role did not preserve absence") + } + assertGeneratedFieldJSON(t, missing, "role", false, "") + var nullValue SetColumnDockOptions + if err := json.Unmarshal([]byte("{\"role\":null}"), &nullValue); err != nil { + t.Fatal(err) + } + if !nullValue.Role.IsNull() { + t.Fatal("Role did not preserve null") + } + assertGeneratedFieldJSON(t, nullValue, "role", true, "null") + var presentValue SetColumnDockOptions + if err := json.Unmarshal([]byte("{\"role\":\"value\"}"), &presentValue); err != nil { + t.Fatal(err) + } + if _, ok := presentValue.Role.Get(); !ok { + t.Fatal("Role did not preserve a value") + } + assertGeneratedFieldJSON(t, presentValue, "role", true, "\"value\"") + }) t.Run("SetColumnDockOptions.Transaction", func(t *testing.T) { var missing SetColumnDockOptions if err := json.Unmarshal([]byte("{}"), &missing); err != nil { @@ -46922,8 +47000,8 @@ func TestGeneratedConstrainedFieldsRejectUnknownValuesOnMarshal(t *testing.T) { } const ( - generatedFieldShapeCount = 1278 - generatedOptionalNullableFieldCount = 953 + generatedFieldShapeCount = 1281 + generatedOptionalNullableFieldCount = 956 generatedRequiredNullableFieldCount = 117 generatedOptionalNonnullableFieldCount = 208 generatedRequiredFieldCount = 1161 diff --git a/cmux-tui/bindings/go/raw/generated_types.go b/cmux-tui/bindings/go/raw/generated_types.go index e7f72853a463..d9853519c379 100644 --- a/cmux-tui/bindings/go/raw/generated_types.go +++ b/cmux-tui/bindings/go/raw/generated_types.go @@ -1,5 +1,5 @@ // Code generated by cmux-tui SDK codegen. DO NOT EDIT. -// Mux protocol 12; IR SHA-256 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// Mux protocol 12; IR SHA-256 df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. package raw @@ -1661,8 +1661,34 @@ func (value *CloseTerminalResult) UnmarshalJSON(data []byte) error { type ColorHex = string type ColumnPin struct { - Edge string `json:"edge"` - Mode string `json:"mode"` + Edge string `json:"edge"` + Mode string `json:"mode"` + Role Presence[string] `json:"-"` +} + +func (value ColumnPin) MarshalJSON() ([]byte, error) { + type wire ColumnPin + encoded, err := json.Marshal(wire(value)) + if err != nil { + return nil, err + } + var object map[string]json.RawMessage + if err := json.Unmarshal(encoded, &object); err != nil { + return nil, err + } + if value.Role.IsAbsent() { + delete(object, "role") + } else if value.Role.IsNull() { + object["role"] = json.RawMessage("null") + } else { + fieldValue, _ := value.Role.Get() + encodedField, err := json.Marshal(fieldValue) + if err != nil { + return nil, fmt.Errorf("encode ColumnPin.Role: %w", err) + } + object["role"] = encodedField + } + return json.Marshal(object) } func (value *ColumnPin) UnmarshalJSON(data []byte) error { @@ -1670,8 +1696,9 @@ func (value *ColumnPin) UnmarshalJSON(data []byte) error { return fmt.Errorf("decode ColumnPin: expected object") } var fields struct { - Edge *string `json:"edge"` - Mode *string `json:"mode"` + Edge *string `json:"edge"` + Mode *string `json:"mode"` + Role Presence[string] `json:"role"` } if err := json.Unmarshal(data, &fields); err != nil { return fmt.Errorf("decode ColumnPin: %w", err) @@ -1686,6 +1713,7 @@ func (value *ColumnPin) UnmarshalJSON(data []byte) error { return fmt.Errorf("decode ColumnPin: required field mode is missing or null") } decoded.Mode = *fields.Mode + decoded.Role = fields.Role *value = ColumnPin(decoded) return nil } diff --git a/cmux-tui/bindings/java/src/com/cmux/raw/.cmux-sdk-manifest.json b/cmux-tui/bindings/java/src/com/cmux/raw/.cmux-sdk-manifest.json index ef90edb2cb35..faf64cfe3dd4 100644 --- a/cmux-tui/bindings/java/src/com/cmux/raw/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/java/src/com/cmux/raw/.cmux-sdk-manifest.json @@ -497,8 +497,8 @@ }, { "path": "ColumnPin.java", - "sha256": "9ce4adf9084766e8453bac3e5ab74f4edc865972090446f8413b6cb3afe2036d", - "size": 2433 + "sha256": "0f51dd9469d96aafbee6b410b85f75254beb13eda57444816a2073c278f92a55", + "size": 3014 }, { "path": "CommandMetadata.java", @@ -507,8 +507,8 @@ }, { "path": "Commands.java", - "sha256": "8c6af0086202220427743a453a4c9e34db3cd2d3337264f720f1fb046c19c722", - "size": 62391 + "sha256": "34194f1ece6969af2fbbb6045b5c5475d04fc6a97484a975552b4b6ffe58b07b", + "size": 62467 }, { "path": "ConfigReloadRequestedEvent.java", @@ -1597,7 +1597,7 @@ }, { "path": "Protocol.java", - "sha256": "aca2af5afc0731218eea717d8ca5614fe3ac6a6e624fc8c6e26b60f7eacf760f", + "sha256": "b136d0aad215657652cff7aacec8bd55bc50e9589009a5972b315dd8950b43ee", "size": 5749 }, { @@ -2017,8 +2017,8 @@ }, { "path": "SetColumnDockRequest.java", - "sha256": "8110d72b99f26ad724f9487deb0e1d69f7ac882265ba21a8dfdc3eeff0a0d960", - "size": 4515 + "sha256": "9ccd370543485c061c6cb412dc67d4e4613938ec715dcf0d33f39e333d24d4fc", + "size": 5107 }, { "path": "SetDefaultColorsRequest.java", @@ -2772,7 +2772,7 @@ } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "java", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/java/src/com/cmux/raw/ColumnPin.java b/cmux-tui/bindings/java/src/com/cmux/raw/ColumnPin.java index 9189bc2ec52e..9d09adb38742 100644 --- a/cmux-tui/bindings/java/src/com/cmux/raw/ColumnPin.java +++ b/cmux-tui/bindings/java/src/com/cmux/raw/ColumnPin.java @@ -13,18 +13,21 @@ public final class ColumnPin implements WireValue { private final String edge; private final String mode; + private final Field role; private ColumnPin(Builder builder) { if (!builder.edgeSet) throw new IllegalArgumentException("edge is required"); this.edge = Wire.nonNull(builder.edge, "edge"); if (!builder.modeSet) throw new IllegalArgumentException("mode is required"); this.mode = Wire.nonNull(builder.mode, "mode"); + this.role = builder.role; } public static Builder builder() { return new Builder(); } public String edge() { return edge; } public String mode() { return mode; } + public Field role() { return role; } public static ColumnPin fromWire(Object value) { Map object = Wire.object(value, "ColumnPin"); @@ -33,6 +36,10 @@ public static ColumnPin fromWire(Object value) { builder.edge(Wire.string(rawEdge, "ColumnPin.edge")); Object rawMode = Wire.required(object, "mode"); builder.mode(Wire.string(rawMode, "ColumnPin.mode")); + Object rawRole = Wire.optional(object, "role"); + if (!Wire.isMissing(rawRole)) { + builder.role(rawRole == null ? null : Wire.string(rawRole, "ColumnPin.role")); + } return builder.build(); } @@ -41,17 +48,18 @@ public Map toWire() { LinkedHashMap object = new LinkedHashMap<>(); Wire.put(object, "edge", edge); Wire.put(object, "mode", mode); + Wire.put(object, "role", role); return Collections.unmodifiableMap(object); } @Override public boolean equals(Object other) { if (!(other instanceof ColumnPin that)) return false; - return Objects.equals(edge, that.edge) && Objects.equals(mode, that.mode); + return Objects.equals(edge, that.edge) && Objects.equals(mode, that.mode) && Objects.equals(role, that.role); } @Override - public int hashCode() { return Objects.hash(edge, mode); } + public int hashCode() { return Objects.hash(edge, mode, role); } @Override public String toString() { return "ColumnPin" + toWire(); } @@ -61,6 +69,7 @@ public static final class Builder { private boolean edgeSet; private String mode; private boolean modeSet; + private Field role = Field.omitted(); public Builder edge(String value) { this.edge = value; @@ -72,6 +81,10 @@ public Builder mode(String value) { this.modeSet = true; return this; } + public Builder role(String value) { + this.role = Field.ofNullable(value); + return this; + } public ColumnPin build() { return new ColumnPin(this); } } } diff --git a/cmux-tui/bindings/java/src/com/cmux/raw/Commands.java b/cmux-tui/bindings/java/src/com/cmux/raw/Commands.java index ffc6ba225d11..bb4df22bcfe2 100644 --- a/cmux-tui/bindings/java/src/com/cmux/raw/Commands.java +++ b/cmux-tui/bindings/java/src/com/cmux/raw/Commands.java @@ -187,7 +187,7 @@ private Commands() {} public static final CommandMetadata SET_CELL_PIXELS = new CommandMetadata("set-cell-pixels", Authority.FRONTEND, 6, null, StreamKind.NONE, Map.of(), Map.of()); public static final CommandMetadata SET_CLIENT_INFO = new CommandMetadata("set-client-info", Authority.CONTROL, 6, null, StreamKind.NONE, Map.ofEntries(Map.entry("device_id", 12L), Map.entry("device_kind", 12L), Map.entry("device_name", 12L), Map.entry("display_name", 12L), Map.entry("user_id", 12L)), Map.ofEntries(Map.entry("device_id", "shared-sizing-v1"), Map.entry("device_kind", "shared-sizing-v1"), Map.entry("device_name", "shared-sizing-v1"), Map.entry("display_name", "shared-sizing-v1"), Map.entry("user_id", "shared-sizing-v1"))); public static final CommandMetadata SET_CLIENT_SIZING = new CommandMetadata("set-client-sizing", Authority.CONTROL, 10, null, StreamKind.NONE, Map.of(), Map.of()); - public static final CommandMetadata SET_COLUMN_DOCK = new CommandMetadata("set-column-dock", Authority.CONTROL, 12, "dock-columns-v1", StreamKind.NONE, Map.of(), Map.of()); + public static final CommandMetadata SET_COLUMN_DOCK = new CommandMetadata("set-column-dock", Authority.CONTROL, 12, "dock-columns-v1", StreamKind.NONE, Map.ofEntries(Map.entry("role", 12L)), Map.ofEntries(Map.entry("role", "dock-column-role-v1"))); public static final CommandMetadata SET_DEFAULT_COLORS = new CommandMetadata("set-default-colors", Authority.CONTROL, 5, null, StreamKind.NONE, Map.ofEntries(Map.entry("complete", 9L), Map.entry("cursor", 9L), Map.entry("cursor_blink", 9L), Map.entry("cursor_style", 9L), Map.entry("palette", 9L), Map.entry("selection_bg", 9L), Map.entry("selection_fg", 9L)), Map.of()); public static final CommandMetadata SET_FRONTEND_BROWSER_HISTORY = new CommandMetadata("set-frontend-browser-history", Authority.CONTROL, 12, "frontend-browser-history-v1", StreamKind.NONE, Map.of(), Map.of()); public static final CommandMetadata SET_PERSONAL_TERMINAL = new CommandMetadata("set-personal-terminal", Authority.CONTROL, 12, "personal-terminals-v1", StreamKind.NONE, Map.of(), Map.of()); diff --git a/cmux-tui/bindings/java/src/com/cmux/raw/Protocol.java b/cmux-tui/bindings/java/src/com/cmux/raw/Protocol.java index 761d0dfd9159..be0748504887 100644 --- a/cmux-tui/bindings/java/src/com/cmux/raw/Protocol.java +++ b/cmux-tui/bindings/java/src/com/cmux/raw/Protocol.java @@ -9,7 +9,7 @@ public final class Protocol { public static final String SDK_VERSION = "1.0.0"; public static final int VERSION = 12; public static final int SCHEMA_VERSION = 2; - public static final String IR_SHA256 = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e"; + public static final String IR_SHA256 = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa"; private Protocol() {} public static ProtocolEvent decodeEvent(Object value) { diff --git a/cmux-tui/bindings/java/src/com/cmux/raw/SetColumnDockRequest.java b/cmux-tui/bindings/java/src/com/cmux/raw/SetColumnDockRequest.java index 6406502b6082..9856d8e8a325 100644 --- a/cmux-tui/bindings/java/src/com/cmux/raw/SetColumnDockRequest.java +++ b/cmux-tui/bindings/java/src/com/cmux/raw/SetColumnDockRequest.java @@ -16,6 +16,7 @@ public final class SetColumnDockRequest implements WireValue { private final Field edge; private final Field mode; private final UInt64 pane; + private final Field role; private final Field transaction; private SetColumnDockRequest(Builder builder) { @@ -25,6 +26,7 @@ private SetColumnDockRequest(Builder builder) { this.mode = builder.mode; if (!builder.paneSet) throw new IllegalArgumentException("pane is required"); this.pane = Wire.nonNull(builder.pane, "pane"); + this.role = builder.role; this.transaction = builder.transaction; } @@ -34,6 +36,7 @@ private SetColumnDockRequest(Builder builder) { public Field edge() { return edge; } public Field mode() { return mode; } public UInt64 pane() { return pane; } + public Field role() { return role; } public Field transaction() { return transaction; } public static SetColumnDockRequest fromWire(Object value) { @@ -51,6 +54,10 @@ public static SetColumnDockRequest fromWire(Object value) { } Object rawPane = Wire.required(object, "pane"); builder.pane(Wire.uint64(rawPane, "SetColumnDockRequest.pane")); + Object rawRole = Wire.optional(object, "role"); + if (!Wire.isMissing(rawRole)) { + builder.role(rawRole == null ? null : Wire.string(rawRole, "SetColumnDockRequest.role")); + } Object rawTransaction = Wire.optional(object, "transaction"); if (!Wire.isMissing(rawTransaction)) { builder.transaction(rawTransaction == null ? null : Wire.uint64(rawTransaction, "SetColumnDockRequest.transaction")); @@ -65,6 +72,7 @@ public Map toWire() { Wire.put(object, "edge", edge); Wire.put(object, "mode", mode); Wire.put(object, "pane", pane); + Wire.put(object, "role", role); Wire.put(object, "transaction", transaction); return Collections.unmodifiableMap(object); } @@ -72,11 +80,11 @@ public Map toWire() { @Override public boolean equals(Object other) { if (!(other instanceof SetColumnDockRequest that)) return false; - return Objects.equals(dock, that.dock) && Objects.equals(edge, that.edge) && Objects.equals(mode, that.mode) && Objects.equals(pane, that.pane) && Objects.equals(transaction, that.transaction); + return Objects.equals(dock, that.dock) && Objects.equals(edge, that.edge) && Objects.equals(mode, that.mode) && Objects.equals(pane, that.pane) && Objects.equals(role, that.role) && Objects.equals(transaction, that.transaction); } @Override - public int hashCode() { return Objects.hash(dock, edge, mode, pane, transaction); } + public int hashCode() { return Objects.hash(dock, edge, mode, pane, role, transaction); } @Override public String toString() { return "SetColumnDockRequest" + toWire(); } @@ -88,6 +96,7 @@ public static final class Builder { private Field mode = Field.omitted(); private UInt64 pane; private boolean paneSet; + private Field role = Field.omitted(); private Field transaction = Field.omitted(); public Builder dock(boolean value) { @@ -108,6 +117,10 @@ public Builder pane(UInt64 value) { this.paneSet = true; return this; } + public Builder role(String value) { + this.role = Field.ofNullable(value); + return this; + } public Builder transaction(UInt64 value) { this.transaction = Field.ofNullable(value); return this; diff --git a/cmux-tui/bindings/python/cmux/raw/_generated/.cmux-sdk-manifest.json b/cmux-tui/bindings/python/cmux/raw/_generated/.cmux-sdk-manifest.json index 771aaafee85d..8cabaf364295 100644 --- a/cmux-tui/bindings/python/cmux/raw/_generated/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/python/cmux/raw/_generated/.cmux-sdk-manifest.json @@ -7,13 +7,13 @@ }, { "path": "_schema.py", - "sha256": "fbc0af14cf5a9587877ec59ee0753b499e4252bb72f0afbf0d9bf09ccd26f275", - "size": 326046 + "sha256": "26176e5ec59d4747082c3beaca49807802ba0c140ec092a4d241a3c7c337dfed", + "size": 326410 }, { "path": "client.py", - "sha256": "0b700c98c18f7d73bf4af712156877d70d1ad2d70b4501d7ac651488a66f9729", - "size": 96118 + "sha256": "02ad25fdd9ff6892500089d23ff08dbebfdb3fe4c75ecad035001610e754a09f", + "size": 96176 }, { "path": "codec.py", @@ -22,17 +22,17 @@ }, { "path": "metadata.py", - "sha256": "0c0e763c5dfcc918de10d0efaef8ef38ac565fc5820d0ff67853a383f9ef25b6", - "size": 107030 + "sha256": "27fcd9a59297aaf90e6b01ba22386329967c5f391145c14a55fc5ce1b3c01ce0", + "size": 107099 }, { "path": "models.py", - "sha256": "03cac853355215717fd2fb7208c27be8aa2827669b32483b616923a1d0deec79", - "size": 174985 + "sha256": "4460a16ccea4fdb049f61c91902c886fac13520a85743b363c5d421ec40f2e4d", + "size": 175115 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "python", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/python/cmux/raw/_generated/_schema.py b/cmux-tui/bindings/python/cmux/raw/_generated/_schema.py index d252e646d6e3..843c766ab3b9 100644 --- a/cmux-tui/bindings/python/cmux/raw/_generated/_schema.py +++ b/cmux-tui/bindings/python/cmux/raw/_generated/_schema.py @@ -5,4 +5,4 @@ import json -SCHEMA = json.loads('{"$schema":"./sdk-schema.schema.json","commands":{"ack-tab-notifications":{"authority":"control","capability":"notification-ack-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"add-screens-to-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"add-tabs-to-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"apply-layout":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["layout must contain at least one leaf or stack member.","cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ApplyLayoutResult"},"since":6,"stream":null},"attach-surface":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["cols and rows must be supplied together.","Browser surfaces reject mode:render.","expected_generation and expected_terminal_id must be supplied together and match the current daemon and terminal.","snapshot \\"ghostsnp\\" with the host\'s snapshot_version starts the byte stream with a snapshot event instead of vt-state; another version gets the byte replay. viewer_backlog_bytes (default 8388608 = 8 MiB, set per attach, no daemon setting; clamped to 65536..8388608) bounds the viewer\'s backlog; overflow resyncs by snapshot."],"fields":{"cols":{"capability":"attach-initial-size","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"expected_generation":{"capability":"attach-identity-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_terminal_id":{"capability":"attach-identity-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mode":{"default":"bytes","nullable":true,"presence":"optional","since":7,"type":{"kind":"enum","values":["bytes","render"]}},"rows":{"capability":"attach-initial-size","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"snapshot":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"snapshot_images":{"capability":"terminal-snapshot-images-v1","default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"snapshot_local_history":{"capability":"terminal-snapshot-local-history-v1","default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"snapshot_version":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"viewer_backlog_bytes":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":{"event_names":["browser-state","colors-changed","detached","frame","notification","output","overflow","render-delta","render-state","resized","scroll-changed","vt-state"],"kind":"attach","mode_field":"mode","modes":{"browser":["browser-state","frame","notification","scroll-changed","overflow","detached"],"bytes":["vt-state","output","resized","colors-changed","scroll-changed","notification","overflow","detached"],"render":["render-state","render-delta","scroll-changed","overflow","detached"]},"ordering":"Initial state precedes the command response. Later surface events preserve order. A resized replay replaces the previous byte mirror; overflow ends that surface stream.","terminal_event":"detached"}},"bind-conversation-tab-session":{"authority":"control","capability":"agent-session-tabs-v1","constraints":["Compare-and-swap: applies when the tab\'s current session equals expected_session (null: none). When the tab already has session the result is replayed:true and nothing commits; another current session fails with conversation_tab.session_conflict naming it; a tab without an agent session source is a bad request. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"expected_session":{"description":"The tab\'s current session, or null for a tab without one; the bind applies only when it matches.","nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"session":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationTabRecord"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"stream":null},"browser-activate":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-back":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-forward":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-frame-presented":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Acknowledges the exact rendered browser frame for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-host-provider":{"authority":"local-admin","capability":"browser-host-provider-v1","constraints":["Only the verified local app connection (client-hello role main plus a proof) gets a result; every other caller gets error_code origin.forbidden.","The secret is never journaled, logged or put in an event."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserHostProviderResult"},"since":12,"stream":null},"browser-insert-text":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-key":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up"]}},"modifiers":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"windows_virtual_key_code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-key-press":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","One request preserves the atomic press sequence through the bounded input queue."],"request":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"modifiers":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"windows_virtual_key_code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-mouse":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; coordinates are CSS pixels.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"button":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"click_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"frame_seq":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up","move"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-mouse-guarded":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Browser surfaces only; coordinates are CSS pixels.","The frame sequence must be the exact presented token for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"button":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"click_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up","move"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-navigate":{"authority":"frontend","capability":null,"constraints":["Queue acknowledgement only; observe browser-state for outcome.","Navigation is latest-wins."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-reload":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-wheel":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; values are CSS pixels.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"delta_y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"frame_seq":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-wheel-guarded":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Browser surfaces only; values are CSS pixels.","The frame sequence must be the exact presented token for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"delta_y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"clear-history":{"authority":"control","capability":"clear-history-v1","constraints":["PTY surfaces only.","Failed responses classify error_delivery as known-not-delivered or ambiguous."],"request":{"additional_properties":false,"fields":{"fallback_key":{"capability":"clear-history-key-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"TerminalKeyInput"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"clear-window-title":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"client-focus":{"authority":"control","capability":"client-focus-v1","constraints":[],"request":{"additional_properties":false,"fields":{"client_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"close-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-provider-managed-workspace":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Call only after the external provider durably accepts the close."],"request":{"additional_properties":false,"constraints":["workspace and key must identify the same live provider-managed workspace."],"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProviderWorkspaceMutationResult"},"since":9,"stream":null},"close-screen":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"end_terminals":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"close-surface":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"closed":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminals":{"description":"With end_terminals: the member terminals the close ended.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"TabGroupEndedTerminal"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"close-tabs":{"authority":"control","capability":"batch-close-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"constraints":["surfaces holds 1 to 4096 live tab placements.","origin and mutation_id are either both present or both absent.","expected_generation and expected_revision are rejected."],"fields":{"end_terminals":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"reason":{"capability":"close-reason-v1","default":null,"description":"The close is not recorded in the closed history (session_end).","nullable":true,"presence":"optional","type":{"kind":"ref","name":"CloseReason"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"close-terminal":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"CloseTerminalResult"},"since":9,"stream":null},"close-workspace":{"authority":"control","capability":null,"constraints":["Provider-managed workspaces reject this ordinary mutation."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"cloud-conversation-history":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. limit is 1-200. Calls the cloud. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"before_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-op":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. One cloud op tagged by kind, forwarded with the client\'s idempotency key and origin; unsupported kinds are refused with reason unsupported_op. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"op":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"origin":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-snapshot":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. tail is 1-50. Calls the cloud. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"tail":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-subscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Shares one upstream socket per conversation; at most 64. Replies {conversation, state, reason?, account?} with the shared socket\'s current state, then emits that state as cloud-subscription-state. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-unsubscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Ends this connection\'s interest; the socket closes 60 s after the last subscriber. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-list":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. limit is 1-200. Calls the cloud; errors carry error_code, reason and retryable. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"include_archived":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"limit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-subscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Shares one upstream inbox socket among local clients. Replies {state, reason?, account?} with the shared socket\'s current state, then emits that state as cloud-subscription-state. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-unsubscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Ends this connection\'s inbox interest. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-clear":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Drops the lease. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-set":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Leases the app\'s cmux Cloud session to the daemon (memory only; never echoed). api_base_url is an https origin (http only for loopback). See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"access_token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"api_base_url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_version":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expires_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-status":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Returns state signed_out, active or expired; never the token. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"conversation-agent-token":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections bound to the local user only. Mints a new token; the old one stops working. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-attachment-read":{"authority":"local-admin","capability":"local-attachments-v1","constraints":["Trusted local connections only. variant original (default), poster or preview; length at most 4 MiB. The hash must be referenced by a message of the conversation or uploaded there by the caller. Rejects: attachment_rejected (unknown_attachment, no_poster, no_preview). See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"length":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"variant":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"data":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"eof":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"conversation-attachment-upload":{"authority":"local-admin","capability":"local-attachments-v1","constraints":["Trusted local connections only; the caller\'s principal must be a participant of conversation. op begin(conversation, sha256, byte_count, mime_type, name, width?, height?, duration_ms?, poster?|preview?) | chunk(upload, piece, offset, data base64 <= 4 MiB decoded) | commit(upload) | cancel(upload). Cloud attachment allow list and limits (100 MB per file). Rejects: attachment_rejected. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"byte_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"conversation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"data":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"duration_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"height":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"mime_type":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"op":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"piece":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"poster":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"preview":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"sha256":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"upload":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"needs":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"received":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"stored":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"poster":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}},"preview":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}}},"kind":"object"}},"upload":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-bind":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Binds the connection to an agent participant for its lifetime. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-create":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. A replay of the same idempotency key and request returns the created conversation with replayed:true. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"participants":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"conversation-history":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. limit is 1-500. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"before_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationMessage"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-import":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local user connections only (an agent-bound connection is refused; the remote relay does not admit it). Appends history from another store once: authors, times and ids are kept, the owner assigns seqs and one rev, skips a message whose author and client_msg_id (or id) it holds, and refuses times that go backward, pass the newest message it holds, or lie in the future. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationImportMessage"},"kind":"array"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"imported":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"uint64"},"kind":"array"}},"skipped":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"conversation-list":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. See spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversations":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationSummary"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-op":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Rejects use error_code conversation_rejected with the reason as the error text. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"op":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"change":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationChange"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-search":{"authority":"local-admin","capability":"conversation-search-v1","constraints":["Trusted local connections only. query is trimmed, 1-200 characters, no control characters; limit is 1-100 (rejects: conversation_rejected with reason invalid_query or invalid_limit). See spec/commands.md."],"request":{"additional_properties":false,"fields":{"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"query":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"hits":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationSearchHit"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-snapshot":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. tail is 1-500. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"tail":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationMessage"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-typing":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Ephemeral: never stored. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"on":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"copy":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"mode":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["screen","selection","scrollback"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"CopyResult"},"since":6,"stream":null},"create-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"favicon_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"create-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"default_session_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"defaults":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"follows":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-surface-with-receipt":{"authority":"control","capability":"creation-receipts-v1","constraints":["Repeating one origin and receipt with identical fields returns the original creation result.","A new idempotency_key is valid only when durable creation resolution instructs retry_new_idempotency_key."],"request":{"additional_properties":false,"constraints":["operation is one of new-tab, run-command, new-browser-tab, new-workspace, new-screen, new-pane, new-pane-right, split-right, or split-down.","Each operation admits only its documented selector and option fields.","idempotency_key names one execution attempt and defaults to receipt.","cols and rows must be supplied together."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"capability":"creation-attempt-keys-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"operation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"receipt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"selector_fallbacks":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"ResourceSelectors"},"kind":"array","max_items":7}},"selectors":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ResourceSelectors"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":10,"stream":null},"create-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"create-terminal":{"authority":"control","capability":"workspace-registry-v1","constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1)."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; when both are supplied they must identify the same workspace.","argv and command are mutually exclusive and must be nonempty when supplied.","cols and rows must be supplied together.","origin and mutation_id are either both present or both absent.","terminal_id may be supplied only when origin and mutation_id are both present."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"command":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"constraints":[{"format":"32-character lowercase UUIDv4 hex without dashes","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalPlacement"},"since":7,"stream":null},"create-workspace":{"authority":"control","capability":"workspace-registry-v1","constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent.","At most 4096 live workspaces may exist; tombstoned keys cannot be reused."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"key":{"constraints":[{"format":"lowercase canonical UUID"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":7,"stream":null},"create-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"deleted":{"description":"The deleted node\'s id first, then its descendants.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"delete-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"move_to":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-saved-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-saved-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"deleted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"delete-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"detach-attached-view":{"authority":"frontend","capability":"view-attachment-detach-v1","constraints":["The command closes only the named view stream and releases its size contribution.","A retired lease returns outcome:superseded."],"request":{"additional_properties":false,"fields":{"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewOutcomeResult"},"since":10,"stream":null},"detach-client":{"authority":"control","capability":null,"constraints":["A participant that is the own view of a client with sizing-view-detach-v1 detaches that view only; the client stays connected."],"request":{"additional_properties":false,"fields":{"by":{"capability":"shared-sizing-v1","constraints":["Defaults to the requester\'s identity."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizeDetachActor"}},"client":{"constraints":["uint64 client id, or a participant id; a relay sub-view id detaches only that view."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"DetachClientTarget"}},"surface":{"capability":"shared-sizing-v1","constraints":["Resolves a participant id on this terminal only; participant ids are per terminal."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"export-layout":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ExportLayoutResult"},"since":6,"stream":null},"focus-direction":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"FocusDirectionResult"},"since":6,"stream":null},"focus-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"forget-session":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"force":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"get-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["Provider endpoints and targets are disclosed only over a trusted local transport; bearer credentials are accepted only during registration and are never returned.","Automation must select a target by stable tab id instead of treating CDP discovery as topology authority."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderSnapshot"},"since":10,"stream":null},"get-cell-pixels":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"GetCellPixelsResult"},"since":6,"stream":null},"get-frontend-browser-history":{"authority":"control","capability":"frontend-browser-history-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"get-frontend-projection":{"authority":"control","capability":null,"constraints":["Each identifier is nonempty, contains no control character, and is at most 128 bytes."],"request":{"additional_properties":false,"fields":{"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"FrontendProjection"},"since":7,"stream":null},"get-size-state":{"authority":"control","capability":"shared-sizing-v1","constraints":[],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"GetSizeStateResult"},"since":12,"stream":null},"identify":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"IdentifyResult"},"since":5,"stream":null},"ids":{"authority":"control","capability":null,"constraints":["Short ids are snapshot-local labels; command parameters accept numeric ids only."],"request":{"additional_properties":false,"fields":{"kind":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"enum","values":["workspace","screen","pane","surface"]}}},"kind":"object"},"result":{"kind":"ref","name":"IdsResult"},"since":6,"stream":null},"import-bookmarks":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"nodes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BookmarkImportNode"},"kind":"array"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"source_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"count":{"description":"Nodes in the request, descendants included.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"root_ids":{"description":"Top-level nodes written; in replace mode the kept folder first.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"import-session-organization":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"groups":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"JsonValue"},"kind":"array"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspaces":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"JsonValue"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"journal-frontend-event":{"authority":"control","capability":"frontend-journal-v1","constraints":["The server derives producer identity from the authenticated control client."],"request":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"FrontendJournalEvent"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"committed":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"since":10,"stream":null},"list-agents":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"state":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"AgentState"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ListAgentsResult"},"since":6,"stream":null},"list-bookmarks":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"bookmarks":{"description":"The whole tree in depth-first pre-order: the bar tree, then the other tree.","nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Bookmark"},"kind":"array"}},"bookmarks_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"list-clients":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"items":{"kind":"ref","name":"ClientInfo"},"kind":"array"},"since":6,"stream":null},"list-notifications":{"authority":"control","capability":"notification-ack-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"limit":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-personal":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-saved-screen-groups":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-saved-tab-groups":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":true,"fields":{"saved_groups":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SavedTabGroupRecord"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"list-tab-groups":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":true,"fields":{"groups":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabGroupRun"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"list-terminals":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ListTerminalsResult"},"since":9,"stream":null},"list-workspace-groups":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-workspaces":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"Tree"},"since":5,"stream":null},"machine-listening-tcp":{"authority":"control","capability":"machine-listening-tcp-v1","constraints":["Routine Cloud port inventory uses this command over the authenticated private cmux-tui link."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"MachineListeningTcpResult"},"since":12,"stream":null},"machine-usage":{"authority":"control","capability":"machine-usage-v1","constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"MachineUsageResult"},"since":12,"stream":null},"mark-workspaces-provider-managed":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Authority must match the value provisioned before this mux generation accepted control clients."],"request":{"additional_properties":false,"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"mint-terminal-renderer":{"authority":"frontend","capability":null,"constraints":["Only terminal-host-backed PTYs can mint one-use renderer credentials."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ttl_ms":{"constraints":[{"maximum":60000,"minimum":1}],"default":30000,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"MintTerminalRendererResult"},"since":9,"stream":null},"mint-terminal-renderer-by-terminal":{"authority":"frontend","capability":null,"constraints":["The terminal resource ID is resolved atomically to the live terminal-host-backed PTY before minting a one-use renderer credential."],"request":{"additional_properties":false,"fields":{"terminal":{"constraints":[{"pattern":"^term_[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"ttl_ms":{"constraints":[{"maximum":60000,"minimum":1}],"default":30000,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"MintTerminalRendererResult"},"since":11,"stream":null},"move-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"move-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-screen":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab":{"authority":"control","capability":null,"constraints":["An out-of-range index clamps to the destination end."],"request":{"additional_properties":false,"fields":{"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"tab-drag-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"move-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneRef"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-column":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"after_column":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneRef"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-new-workspace":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-split":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneRef"}},"ratio":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-to-column":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"after_column":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"dock":{"capability":"dock-columns-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"ColumnPin"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"respawn":{"capability":"tab-column-respawn-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SplitRespawn"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-new-workspace":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"capability":"tab-workspace-name-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-split":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ratio":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"respawn":{"capability":"tab-split-respawn-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SplitRespawn"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-workspace":{"authority":"control","capability":"tab-workspace-move-v1","constraints":["Moves the existing tab to the selected workspace or atomically creates a workspace when workspace is omitted."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"tab-drag-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"move-terminal":{"authority":"control","capability":null,"constraints":["A move to the current workspace still commits a terminal revision with changed:false."],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"MoveTerminalResult"},"since":9,"stream":null},"move-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"move-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-workspace-to-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"new-browser-tab":{"authority":"control","capability":null,"constraints":["Bootstrap and navigation failures are asynchronous browser-state outcomes."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-conversation-tab":{"authority":"control","capability":"conversation-tabs-v1","constraints":["Send conversation and owner (owner is local or cloud; conversation is a conv_ id), agent_session (agent-session-tabs-v1: host install:, optional session and harness), or page (page-tabs-v1: 1 to 64 lowercase letters, digits or \'-\', \'_\', \'.\'): exactly one source. pane and workspace are exclusive (workspace: its active pane, or its first pane when empty). origin and mutation_id are sent together; a retry with the same pair returns the first tab with replayed:true, the same pair with another source or target fails with idempotency.conflict, and a retry after that tab closed fails with error_code frontend_browser_key_closed. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"agent_session":{"capability":"agent-session-tabs-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"AgentSessionSource"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"conversation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"page":{"capability":"page-tabs-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"transaction":{"capability":"conversation-tab-transaction-v1","default":null,"description":"Client transaction id (1 to 128 printable ASCII), echoed on the created tab\'s tab-added delta and in the result.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"content_resource_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationTabRecord"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab_resource_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"transaction":{"description":"The request\'s transaction, when it sent one.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"new-frontend-browser-tab":{"authority":"control","capability":"frontend-browser-tabs-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"activate":{"default":true,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"engine":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"favicon_url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"new-pane":{"authority":"control","capability":null,"constraints":["terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":9,"stream":null},"new-pane-right":{"authority":"control","capability":"viewport-splits-v1","constraints":["terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1).","kind \\"browser\\" requires a non-empty url and creates a browser pane at that url; url without kind \\"browser\\", an unknown kind, and cwd, env, keep, terminal_id or shell_args with kind \\"browser\\" are rejected and nothing is created (pane-browser-kind-v1)."],"request":{"additional_properties":false,"constraints":["Omitted width defaults to two thirds.","cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"kind":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"PaneKind"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"url":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"width":{"constraints":[{"maximum":1.0,"minimum":0.1}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":9,"stream":null},"new-row":{"authority":"control","capability":"rows-v1","constraints":["Opens a new row of height_permille below the row of pane in that pane\'s column, holding one new pane with one new terminal. On a split screen the screen\'s tree first becomes the only row of one column.","transaction (1-128 printable ASCII) is echoed in the result and in the screen-changed delta of the commit.","See spec/commands.md for the result object and error codes."],"request":{"additional_properties":false,"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"height_permille":{"constraints":[{"maximum":1000,"minimum":100}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"keep":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NewRowResult"},"since":12,"stream":null},"new-screen":{"authority":"control","capability":null,"constraints":["screen_name, color, icon, pinned, index, and group need capability screen-metadata-v1 (group: screen-groups-v1); the result then also carries screen.","env, terminal_id, and shell_args need capability screen-terminal-env-v1: the new screen\'s terminal takes them as on new-pane, and the result then also carries terminal_id."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"screen-terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pinned":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"screen_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"shell_args":{"capability":"screen-terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"screen-terminal-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-tab":{"authority":"control","capability":null,"constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1).","terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"note-size-activity":{"authority":"control","capability":"shared-sizing-v1","constraints":["Requires client capability shared-sizing-v1.","Only explicit input or focus is activity, never hover or visibility."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"constraints":["Relay sub-view of this connection; omitted marks the caller\'s own view."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NoteSizeActivityResult"},"since":12,"stream":null},"notify":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"body":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"level":{"default":"info","nullable":true,"presence":"optional","type":{"kind":"ref","name":"NotificationLevel"}},"source":{"capability":"notification-source-v1","default":"cli","nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"title":{"constraints":[{"min_length":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NotifyResult"},"since":6,"stream":null},"pairing-response":{"authority":"local-admin","capability":null,"constraints":["The request id must identify a live, unexpired pairing challenge."],"request":{"additional_properties":false,"fields":{"approve":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":7,"stream":null},"pane-neighbor":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"PaneNeighborResult"},"since":6,"stream":null},"paste-image":{"authority":"control","capability":"terminal-image-paste-v1","constraints":["Requires terminal-image-paste-v1 and a current connection-owned attachment lease for the exact public terminal. Begin(mime,size), chunk(offset,data), commit, cancel. No caller-supplied paths. 20 MiB per image; 48 KiB chunks; generated temporary files expire after 600 seconds."],"request":{"additional_properties":false,"fields":{"data":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"lease":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"op":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"size":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"upload_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"pin-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"ping":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"PingResult"},"since":6,"stream":null},"process-info":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProcessInfoResult"},"since":6,"stream":null},"put-frontend-projection":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent.","Serialized projection must be at most 1048576 bytes."],"fields":{"expected_generation":{"default":null,"description":"Accepted by the current decoder but ignored for projection writes.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_projection_revision":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"description":"Accepted by the current decoder but ignored for projection writes.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"projection":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"schema_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"FrontendProjection"},"since":7,"stream":null},"put-session":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"capabilities":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"follow_with":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"machine_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transport":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"read-screen":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReadScreenResult"},"since":5,"stream":null},"read-scrollback":{"authority":"control","capability":null,"constraints":["PTY surfaces only; row indexes are snapshot-relative and not durable."],"request":{"additional_properties":false,"fields":{"count":{"constraints":[{"maximum":65535,"minimum":0}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReadScrollbackResult"},"since":7,"stream":null},"reattach-view":{"authority":"control","capability":"sizing-view-detach-v1","constraints":["Only a view detached by detach-client can be reattached."],"request":{"additional_properties":false,"fields":{"counts":{"constraints":["false reattaches as a viewer; omitted keeps the counts choice."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReattachViewResult"},"since":12,"stream":null},"register-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["The lease is scoped to the trusted local control connection and is released on disconnect.","The endpoint must be an explicit loopback ws URL with no credentials or fragment.","Bearer authentication is optional and sends the token only in the CDP WebSocket upgrade Authorization header.","Each registration replaces that connection\'s complete target set; target ids are never journaled."],"request":{"additional_properties":false,"fields":{"authentication":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"BrowserProviderAuthentication"}},"bearer_token":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"endpoint":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"provider_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"targets":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BrowserProviderTarget"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderSnapshot"},"since":10,"stream":null},"release-attached-view-size":{"authority":"frontend","capability":"view-attachment-lease-v1","constraints":["The attach stream remains live for cached rendering."],"request":{"additional_properties":false,"fields":{"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewOutcomeResult"},"since":10,"stream":null},"release-surface-size":{"authority":"control","capability":null,"constraints":["An absent lease is a successful no-op."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":7,"stream":null},"reload-config":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":false,"fields":{"path":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"reloaded":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"since":6,"stream":null},"remove-screens-from-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"remove-tabs-from-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"groups":{"description":"Ids of the groups the tabs left.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"rename-pane":{"authority":"control","capability":null,"constraints":["An empty name clears the pane name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-provider-managed-workspace":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Call only after the external provider durably accepts the rename."],"request":{"additional_properties":false,"constraints":["workspace and key must identify the same live provider-managed workspace."],"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProviderWorkspaceMutationResult"},"since":9,"stream":null},"rename-screen":{"authority":"control","capability":null,"constraints":["An empty name clears the screen name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-surface":{"authority":"control","capability":null,"constraints":["An empty name clears the surface name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-workspace":{"authority":"control","capability":null,"constraints":["Provider-managed workspaces reject this ordinary mutation."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"reopen-saved-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"reopen-saved-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneRef"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"report-agent":{"authority":"control","capability":null,"constraints":["A stored hook report outranks later socket reports until another hook report or surface close."],"request":{"additional_properties":false,"fields":{"session":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentReportSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReportAgentResult"},"since":6,"stream":null},"report-focus":{"authority":"control","capability":"client-focus-v1","constraints":[],"request":{"additional_properties":false,"fields":{"client_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"resize-attached-view":{"authority":"frontend","capability":"view-attachment-lease-v1","constraints":["The lease must belong to this connection and surface.","A retired lease returns outcome:superseded without changing replacement views.","With view instead of lease, creates or updates a relay sub-view of this connection."],"request":{"additional_properties":false,"fields":{"cols":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"identity":{"capability":"shared-sizing-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizingIdentity"}},"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name, 1-128 printable characters; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewResizeResult"},"since":10,"stream":null},"resize-surface":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"cols":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ResizeSurfaceResult"},"since":5,"stream":null},"resolve-terminal":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"ResolveTerminalResult"},"since":9,"stream":null},"run":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["Exactly one of argv and command must be supplied.","pane and new_workspace:true are mutually exclusive.","key is valid only with new_workspace:true.","cols and rows affect sizing only when both are present."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"command":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"key":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"RunResult"},"since":6,"stream":null},"save-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"save-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"scroll-surface":{"authority":"control","capability":null,"constraints":["PTY surfaces only; negative values scroll up."],"request":{"additional_properties":false,"fields":{"delta":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-screen":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-tab":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"send":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both are present, UTF-8 text bytes precede decoded bytes."],"fields":{"bytes":{"constraints":[{"encoding":"standard base64"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Base64"}},"paste":{"default":false,"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"send-key":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"keys":{"constraints":[{"syntax":"lowercase modifier+key chords"}],"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"server-stats":{"authority":"local-admin","capability":"server-stats-v1","constraints":["Owner-only diagnostics; never journaled and safe to poll."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ServerStatsResult"},"since":12,"stream":null},"set-cell-pixels":{"authority":"frontend","capability":null,"constraints":["Accepted browser resizes complete asynchronously."],"request":{"additional_properties":false,"fields":{"height_px":{"constraints":[{"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"width_px":{"constraints":[{"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SetCellPixelsResult"},"since":6,"stream":null},"set-client-info":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"capabilities":{"constraints":["Advertises additive client capabilities for this connection."],"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"device_id":{"capability":"shared-sizing-v1","constraints":["Stable per-install device id; tells two devices of one user apart."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"device_kind":{"capability":"shared-sizing-v1","constraints":["mac, iphone, ipad, tui, browser; anything else is unknown; defaults to kind."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"device_name":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"display_name":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity; defaults to name."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"kind":{"constraints":["Control characters become spaces; at most 64 Unicode characters are retained."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"constraints":["Control characters become spaces; at most 64 Unicode characters are retained."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity asserted by the client; not verified."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"set-client-sizing":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["exclusive:true requires client and enabled:true.","Omitting client is valid only with enabled:true and restores all clients for the surface."],"fields":{"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"exclusive":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"set-column-dock":{"authority":"control","capability":"dock-columns-v1","constraints":["edge is \\"left\\" or \\"right\\" (default \\"right\\"); mode is \\"docked\\" or \\"overlay\\" (default \\"docked\\").","See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"dock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"edge":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mode":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-default-colors":{"authority":"control","capability":null,"constraints":["Color strings are exactly #rrggbb.","With complete:true, absent optional values reset to built-in defaults."],"request":{"additional_properties":false,"fields":{"bg":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"complete":{"default":false,"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"cursor":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"CursorStyle"}},"fg":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"palette":{"constraints":["Decimal string keys are palette indexes 0 through 255."],"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"set-frontend-browser-history":{"authority":"control","capability":"frontend-browser-history-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"constraints":["history is a JSON object or null; null clears the stored history.","Serialized history must be at most 65536 bytes."],"fields":{"history":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-personal-terminal":{"authority":"control","capability":"personal-terminals-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-personal-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-profile-follows":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-ratio":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"set-row-heights":{"authority":"control","capability":"rows-v1","constraints":["heights names every row of column exactly once; a stale row set, a height outside 100..1000, or fit with a sum other than 1000 is refused and changes nothing.","transaction is echoed in the result and, as a decimal string, in the screen-changed delta.","See spec/commands.md for the result object and error codes."],"request":{"additional_properties":false,"fields":{"column":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"fit":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"heights":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RowHeight"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-screen-metadata":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-screen-pinned":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pinned":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-size-counts":{"authority":"control","capability":"shared-sizing-v1","constraints":["At most one of client, lease, view or participant; none targets the caller\'s own view."],"request":{"additional_properties":false,"fields":{"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"counts":{"constraints":["null clears the override."],"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"participant":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetSizeCountsResult"},"since":12,"stream":null},"set-size-policy":{"authority":"control","capability":"shared-sizing-v1","constraints":["Exactly one of surface or workspace."],"request":{"additional_properties":false,"fields":{"policy":{"constraints":["null or omitted clears the override or workspace default."],"nullable":true,"presence":"optional","type":{"kind":"ref","name":"SizePolicy"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SetSizePolicyResult"},"since":12,"stream":null},"set-split-ratio":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"split":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"layout-undo-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":8,"stream":null},"set-tab-pinned":{"authority":"control","capability":"tab-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pinned":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-terminal-command-history":{"authority":"local-admin","capability":"terminal-command-journal-v1","constraints":["Off by default and after a daemon restart.","When on, finished OSC 133 shell commands are journaled as sensitive shell.command.finished records."],"request":{"additional_properties":false,"fields":{"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalCommandHistoryResult"},"since":12,"stream":null},"set-terminal-idle-policy":{"authority":"control","capability":"terminal-idle-close-v1","constraints":["The policy is stored durably with the terminal and survives owner restarts.","The owner closes the terminal, as close-terminal does, once it has had no attached view for idle_close_seconds; unattached time restarts at every attach and after an owner restart."],"request":{"additional_properties":false,"constraints":["Exactly one of surface or terminal_id is present.","A missing or null idle_close_seconds clears the policy, so the terminal is never closed for idleness."],"fields":{"idle_close_seconds":{"constraints":[{"maximum":315360000,"minimum":1}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetTerminalIdlePolicyResult"},"since":12,"stream":null},"set-terminal-keep":{"authority":"control","capability":"terminal-reap-v1","constraints":["The keep flag is stored durably with the terminal and survives owner restarts.","A terminal that is not kept is ended, as close-terminal does, once it has had no tab placement for the owner\'s reap grace period (default 30 seconds); a placement restored within the period cancels it."],"request":{"additional_properties":false,"constraints":["Exactly one of surface or terminal_id is present."],"fields":{"keep":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetTerminalKeepResult"},"since":12,"stream":null},"set-viewport-pane-width":{"authority":"control","capability":"viewport-column-resize-v1","constraints":["width must be finite."],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"layout-undo-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"width":{"constraints":[{"maximum":1.0,"minimum":0.1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"set-window-title":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"title":{"constraints":["C0 controls are sanitized before OSC output."],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"set-workspace-metadata":{"authority":"control","capability":"workspace-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"marked_unread":{"capability":"notification-mark-unread-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pinned":{"capability":"workspace-pin-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"shutdown-daemon":{"authority":"local-admin","capability":null,"constraints":["pid and generation must match the latest identify result.","force bypasses native-browser ownership only; the identity fence and trusted-local authority still apply.","Clients must require daemon-handoff-force-v1 before sending force:true.","end_terminals:true ends every terminal and removes its tabs before the handoff; without it terminal hosts stay alive for the next owner. Clients must require terminal-reap-v1 before sending end_terminals:true.","keep_layout:true (with end_terminals:true) ends every terminal but keeps the tabs of placed terminals, so the next owner shows the same screens, splits and tabs, each dead until a frontend starts a new shell in it; keep_layout without end_terminals is refused. Clients must require end-terminals-keep-layout-v1 before sending keep_layout:true.","The daemon exits only after the success response is queued."],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"force":{"capability":"daemon-handoff-force-v1","default":false,"nullable":false,"presence":"optional","since":10,"type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"keep_layout":{"capability":"end-terminals-keep-layout-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"ShutdownDaemonResult"},"since":9,"stream":null},"sidebar-plugin":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"relaunch":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SidebarPluginResult"},"since":6,"stream":null},"snapshot-request":{"authority":"frontend","capability":"terminal-snapshot-v1","constraints":["Requires a snapshot attach (attach-surface with snapshot ghostsnp) of the same surface on this connection, else not_attached.","A request while a snapshot is pending collapses into it; at most one requested snapshot per viewer per 500 ms.","Raw v12 form of the terminal channel message snapshot_request (sync-and-transport.md).","reason, when present, is digest_mismatch, gap, generation_mismatch or attach; request_id is at most 128 bytes; otherwise invalid."],"request":{"additional_properties":false,"fields":{"have":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"SnapshotRequestHave"}},"reason":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"request_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SnapshotRequestResult"},"since":12,"stream":null},"split":{"authority":"control","capability":null,"constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1).","terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1).","kind \\"browser\\" requires a non-empty url and creates a browser pane at that url; url without kind \\"browser\\", an unknown kind, and cwd, env, keep, terminal_id or shell_args with kind \\"browser\\" are rejected and nothing is created (pane-browser-kind-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"kind":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"PaneKind"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"url":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"subscribe":{"authority":"frontend","capability":null,"constraints":["subscribe sends no initial tree snapshot.","surface filtering occurs before the bounded mailbox."],"request":{"additional_properties":false,"fields":{"surface":{"capability":"surface-subscribe-filter","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"Id"}},"tree_events":{"default":"coarse","nullable":true,"presence":"optional","since":7,"type":{"kind":"enum","values":["coarse","deltas"]}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":{"event_names":["agent-changed","bell","client-attached","client-changed","client-detached","client-list-invalidated","config-reload-requested","empty","frontend-projection-changed","layout-changed","notification","overflow","pairing-requested","pairing-resolved","pane-added","pane-closed","screen-added","screen-closed","screen-renamed","scroll-changed","status","surface-exited","surface-output","surface-resize-failed","surface-resized","tab-added","tab-closed","tab-renamed","terminal-registry-changed","title-changed","tree-changed","window-title-requested","workspace-added","workspace-closed","workspace-moved","workspace-renamed"],"kind":"subscribe","mode_field":"tree_events","modes":{"coarse":["tree-changed"],"deltas":["workspace-added","workspace-closed","workspace-renamed","workspace-moved","screen-added","screen-closed","screen-renamed","pane-added","pane-closed","tab-added","tab-closed","tab-renamed","tree-changed"]},"ordering":"Response and event objects may interleave. Events preserve enqueue order per subscription. Delta workspace revisions are serialized in durable commit order; overflow ends the stream and requires resubscribe plus snapshot.","terminal_event":null}},"subscribe-activity":{"authority":"local-admin","capability":"vm-activity-v1","constraints":["Trusted local (Unix socket) connections only. The Cloud VM agent uses it to report activity for the idle pause (plans/cmux-next/cloud-automation.md 27).","At most 16 subscribers."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ActivitySubscribeResult"},"since":12,"stream":{"event_names":["activity-changed"],"kind":"subscribe","ordering":"Registration response with the current snapshot, then activity-changed after each change, at most one per second (leading edge plus one trailing event); no replay. Closing the connection ends the subscription.","terminal_event":null}},"swap-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["Exactly one of dir and target must be supplied."],"fields":{"dir":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"target":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"terminal-clipboard-reply":{"authority":"frontend","capability":"terminal-clipboard-read-v1","constraints":["Private frontend OSC 52 clipboard-read broker; deny by default, no resource or journal mutation. Only the verified cmux app\'s frontend connection (client kind frontend, origin user) may subscribe or reply; every other caller gets origin.forbidden. A request ID is an unguessable, single-use answer capability for the connection that received it. Clipboard text is never logged."],"request":{"additional_properties":false,"fields":{"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"text":{"constraints":["Absent or null refuses the read. Text over 1 MiB (UTF-8 bytes) is refused."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalClipboardReplyResult"},"since":12,"stream":null},"terminal-clipboard-subscribe":{"authority":"frontend","capability":"terminal-clipboard-read-v1","constraints":["Private frontend OSC 52 clipboard-read broker; deny by default, no resource or journal mutation. Only the verified cmux app\'s frontend connection (client kind frontend, origin user) may subscribe or reply; every other caller gets origin.forbidden. A request ID is an unguessable, single-use answer capability for the connection that received it. Clipboard text is never logged."],"request":{"additional_properties":false,"fields":{"terminal_ids":{"constraints":["At most 256 terminal public ids; each must be a valid term_ id. A new subscription replaces the connection\'s previous set."],"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalClipboardSubscribeResult"},"since":12,"stream":{"event_names":["terminal-clipboard-read","terminal-clipboard-read-cancelled"],"kind":"subscribe","ordering":"Registration response followed by targeted read requests and their cancellations; no replay. Closing the connection refuses its open reads.","terminal_event":null}},"terminal-events":{"authority":"control","capability":null,"constraints":["Consumers apply only contiguous revisions for one registry_id and generation."],"request":{"additional_properties":false,"fields":{"after_revision":{"default":0,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalEventsResult"},"since":9,"stream":null},"terminal-history":{"authority":"control","capability":"terminal-snapshot-v1","constraints":["max_bytes defaults to 1048576 and must be 1..=8388608; at least one page is returned when any exists.","A before marker of another marker_epoch or one that left scrollback is range_evicted.","marker_epoch is required: the epoch of the caller\'s markers (from the snapshot event\'s marker_epoch or an earlier reply)."],"request":{"additional_properties":false,"fields":{"before":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max_bytes":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalHistoryPagesResult"},"since":12,"stream":null},"terminal-read-range":{"authority":"control","capability":"terminal-snapshot-v1","constraints":["format is text (default; unwrapped lines joined with newline) or vt.","Rows that left scrollback, or markers of another marker_epoch, answer range_evicted.","max_bytes defaults to 1048576 and must be 1..=8388608; a longer range is cut at a character boundary and answers truncated: true.","marker_epoch is required: the epoch of the caller\'s markers (from the snapshot event\'s marker_epoch or an earlier reply)."],"request":{"additional_properties":false,"fields":{"format":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"from":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RowMarkerPoint"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max_bytes":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"to":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RowMarkerPoint"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalReadRangeResult"},"since":12,"stream":null},"terminal-resources":{"authority":"control","capability":"terminal-resources-v1","constraints":["Omitted or null surfaces means every PTY surface.","Read on request; the daemon keeps no sampler, cache, or timer."],"request":{"additional_properties":false,"fields":{"surfaces":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalResourcesResult"},"since":12,"stream":null},"undo-layout":{"authority":"control","capability":"layout-undo-v1","constraints":["Clients must reject incomplete or contradictory result variants."],"request":{"additional_properties":false,"constraints":["confirm_close requires the exact preview revision."],"fields":{"confirm_close":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"revision":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"LayoutUndoResult"},"since":9,"stream":null},"ungroup-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"ungroup-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"unpin-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"unregister-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["Only the calling connection\'s provider lease is removed."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderUnregisterResult"},"since":10,"stream":null},"unsave-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"unsave-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"unsaved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"update-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"favicon_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"last_used_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"update-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-frontend-browser-tab":{"authority":"control","capability":"frontend-browser-tabs-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"favicon_url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"default_session_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"defaults":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"update-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"url-open":{"authority":"local-admin","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlOpenResult"},"since":12,"stream":null},"url-open-claim":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlClaimResult"},"since":12,"stream":null},"url-open-result":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"opened":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlAcknowledgeResult"},"since":12,"stream":null},"url-open-subscribe":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"terminal_ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlSubscribeResult"},"since":12,"stream":{"event_names":["url-open"],"kind":"subscribe","ordering":"Registration response followed by targeted requests; no replay. Closing the connection rejects its pending requests.","terminal_event":null}},"vt-state":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"VtStateResult"},"since":5,"stream":null},"wait-for":{"authority":"control","capability":null,"constraints":["Blocks subsequent requests on this connection; SDKs should use a dedicated connection."],"request":{"additional_properties":false,"fields":{"pattern":{"constraints":[{"syntax":"Rust regex"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"timeout_ms":{"description":"Zero performs one immediate check.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"WaitForResult"},"since":6,"stream":null},"zoom-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"mode":{"default":"toggle","nullable":true,"presence":"optional","type":{"kind":"enum","values":["toggle","on","off"]}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ZoomPaneResult"},"since":6,"stream":null}},"events":{"activity-changed":{"capability":"vm-activity-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"activity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ActivitySnapshot"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"activity-changed"}}},"kind":"object"},"since":12,"streams":["control"]},"agent-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"agent":{"description":"Adapter identity when the producer knows it; absent from protocol-11 event senders and null when no adapter was identified.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"agent-changed"}},"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":11,"streams":["subscribe"]},"bell":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"bell"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"bookmarks-changed":{"capability":"bookmarks-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"bookmarks_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"bookmarks-changed"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"browser-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"browser-state"}},"frame":{"description":"The initial browser-state includes the latest frame when one exists; later state updates omit it.","nullable":true,"presence":"optional","type":{"kind":"ref","name":"BrowserFrame"}},"frames_stalled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"status":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["starting","live","failed"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["attach-browser"]},"client-attached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-attached"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"transport":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["unix","ws"]}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-changed"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-detached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-detached"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-list-invalidated":{"capability":null,"emission":"serialized-never-emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-list-invalidated"}}},"kind":"object"},"since":9,"streams":["subscribe"]},"cloud-conversation-changed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"change":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-conversation-changed"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-conversation-resynced":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-conversation-resynced"}},"messages":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"summary":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-inbox-changed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"entries":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-inbox-changed"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-inbox-reset":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-inbox-reset"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-session-needed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-session-needed"}},"expires_at":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"reason":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-subscription-state":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-subscription-state"}},"reason":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"colors-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"CursorStyle"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"colors-changed"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"overrides":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"TerminalColorOverrides"}},"palette":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"surface":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["attach-byte"]},"config-reload-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"config-reload-requested"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"conversation-changed":{"capability":"local-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"change":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"conversation-changed"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"conversation-typing":{"capability":"local-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"conversation-typing"}},"on":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"daemon-shutdown":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"daemon-shutdown"}}},"kind":"object"},"since":12,"streams":["control"]},"detached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"by":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizeDetachActor"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"detached"}},"reason":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"DetachReason"}},"scope":{"constraints":["\\"view\\" when only the client\'s own view was detached; the connection stays."],"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["attach-byte","attach-render","attach-browser"]},"empty":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"empty"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"frame":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"frame"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"since":6,"streams":["attach-browser"]},"frontend-projection-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"frontend-projection-changed"}},"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"projection_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"graphics-status":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["kitty-image-budget-worker-start-failed carries error.","kitty-image-budget-update-failed carries retry_exhausted and summary.","cell-pixel-update-retries-exhausted carries attempts, remaining, cell_width, and cell_height."],"fields":{"attempts":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cell_height":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cell_width":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"graphics-status"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["kitty-image-budget-worker-start-failed","kitty-image-budget-update-failed","cell-pixel-update-retries-exhausted"]}},"remaining":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"retry_exhausted":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"summary":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":10,"streams":["subscribe"]},"layout-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"layout-changed"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"machine-usage-changed":{"capability":"machine-usage-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"machine-usage-changed"}},"usage":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"MachineUsage"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"notification":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"body":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"notification"}},"level":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"NotificationLevel"}},"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"source":{"capability":"notification-source-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe","attach-byte","attach-browser"]},"output":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"colors":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"TerminalColors"}},"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"output"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["attach-byte"]},"overflow":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["scope and surface are either both present for attach overflow or both absent for subscribe overflow."],"fields":{"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"overflow"}},"scope":{"nullable":false,"presence":"optional","type":{"kind":"literal","value":"surface"}},"surface":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe","attach-byte","attach-render","attach-browser"]},"pairing-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pairing-requested"}},"expires_in":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"peer":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"pairing-resolved":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pairing-resolved"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"pane-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Pane"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pane-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"pane-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Pane"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pane-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"personal-changed":{"capability":"profiles-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"personal-changed"}},"personal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"render-delta":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["size is present if and only if the surface resized; every resize has full:true."],"fields":{"cursor":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderCursor"}},"default_bg":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"default_fg":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"render-delta"}},"full":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"graphics":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderGraphicsDelta"}},"history_epoch":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"scrollback_rows":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"size":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Size"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["attach-render"]},"render-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cursor":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderCursor"}},"default_bg":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"default_fg":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"render-state"}},"graphics":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderGraphics"}},"history_epoch":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"scrollback_rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"size":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Size"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["attach-render"]},"resized":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["At least one of replay and data is present; replay is canonical from protocol 7."],"fields":{"colors":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"TerminalColors"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"description":"Protocol 6 compatibility field.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"resized"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"replay":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"Base64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["attach-byte"]},"screen-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"screen-changed":{"capability":"screen-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-changed"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"screen-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"screen-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-renamed"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"scroll-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"at_bottom":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"scroll-changed"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["subscribe","attach-byte","attach-render","attach-browser"]},"size-state":{"capability":"shared-sizing-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"size-state"}},"self_participant":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe","attach-byte","attach-render"]},"status":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"status"}},"message":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-exited":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-exited"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-output":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-output"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-resize-failed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-resize-failed"}},"reservation_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"retry_after_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"surface-resized":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-resized"}},"reservation_id":{"nullable":true,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"tab-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"tab-changed":{"capability":"tab-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-changed"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"tab-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"tab-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-renamed"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"terminal-clipboard-read":{"capability":"terminal-clipboard-read-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-clipboard-read"}},"host":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardHost"}},"location":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardLocation"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"terminal-clipboard-read-cancelled":{"capability":"terminal-clipboard-read-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-clipboard-read-cancelled"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"terminal-reaped":{"capability":"terminal-reap-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-reaped"}},"grace_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"terminal-registry-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-registry-changed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"refetch":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-events-or-list-terminals"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":9,"streams":["subscribe"]},"title-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"title-changed"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"tree-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tree-changed"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"url-open":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"url-open"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"vt-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"colors":{"nullable":false,"presence":"optional","since":6,"type":{"kind":"ref","name":"TerminalColors"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"vt-state"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["attach-byte"]},"window-title-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"window-title-requested"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"workspace-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-added"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-changed":{"capability":"workspace-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-changed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"workspace-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-closed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-moved":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-moved"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-renamed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]}},"ir_sha256":"574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e","profiles":{"control":{"description":"Base authenticated session-control commands available to ordinary SDK clients.","inherits":[]},"frontend":{"description":"Rendering, input, presentation, subscribe, and attach commands.","inherits":["control"]},"local-admin":{"description":"Trusted local administration commands.","inherits":["control"],"transport":"Unix-classified transport, including direct Unix and the current stdio relay"},"provider-authority":{"description":"Provider-owned workspace mutation commands.","inherits":["control"],"requires_authority":true}},"protocol":{"id_type":"uint64","javascript_id_policy":"All protocol identifiers are uint64 JSON numbers. JavaScript and TypeScript SDKs must decode them losslessly as bigint (or validated decimal strings at their public boundary), and must not expose IEEE-754 number ids. Pairing request ids, revisions, timestamps, frame sequences, and reservation ids follow the same rule.","name":"cmux-tui-mux","version":12},"schema_version":2,"types":{"ActivitySnapshot":{"additional_properties":false,"constraints":["attached_clients counts attached connections whose set-client-info kind is tui, web, mac or frontend (a person\'s client); automation connections never count.","live_agents counts agents whose state is working or blocked.","last_user_input_at_ms is the wall-clock time of the newest keyboard, paste or mouse input from an attached client; null until the first.","last_agent_action_at_ms is the wall-clock time of the newest agent hook commit or agent state report; null until the first.","Times and counts only: no content and no surface ids."],"fields":{"attached_clients":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"last_agent_action_at_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"last_user_input_at_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"live_agents":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ActivitySubscribeResult":{"additional_properties":false,"fields":{"activity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ActivitySnapshot"}}},"kind":"object"},"AgentRecord":{"additional_properties":false,"fields":{"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"AgentReportSource":{"kind":"enum","values":["socket","hook"]},"AgentSessionSource":{"additional_properties":false,"fields":{"harness":{"default":null,"description":"The agent kind the chat was started with.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"host":{"description":"install: and the stable install id of the machine whose acpmux runs the session.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"host_name":{"default":null,"description":"Display name of the host machine: 1 to 255 bytes, no control characters.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session":{"default":null,"description":"The acpmux session id; null for a new chat until bind-conversation-tab-session.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"AgentSource":{"kind":"enum","values":["plugin","detected","socket","hook"]},"AgentState":{"kind":"enum","values":["working","blocked","idle","done","unknown"]},"AppliedPane":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ApplyLayoutResult":{"additional_properties":false,"fields":{"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"AppliedPane"},"kind":"array"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"AttachedViewOutcomeResult":{"additional_properties":false,"fields":{"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}}},"kind":"object"},"AttachedViewResizeResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}},"participant":{"capability":"shared-sizing-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"reservation_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"Base64":{"kind":"alias","target":{"kind":"scalar","name":"string"}},"Bookmark":{"additional_properties":true,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"favicon_key":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"id":{"description":"`bm_` and 32 lowercase hex digits.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"description":"Dense 0-based position among the node\'s siblings.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"description":"Known values: url, folder. Other values are future kinds.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"last_used_ms":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"parent":{"description":"`bar`, `other`, or a folder\'s id.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source_key":{"description":"Folders only.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"description":"url nodes.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BookmarkChangeResult":{"additional_properties":true,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Bookmark"}},"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"BookmarkImportNode":{"additional_properties":false,"fields":{"children":{"description":"A folder\'s nodes.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"BookmarkImportNode"},"kind":"array"}},"created_ms":{"description":"Defaults to now.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"description":"url or folder.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"description":"Required for a url node; refused for a folder.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserFrame":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"BrowserHostProviderResult":{"additional_properties":false,"fields":{"host_pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"listener_pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"secret":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"socket":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserProviderAuthentication":{"kind":"enum","values":["none","bearer"]},"BrowserProviderSnapshot":{"additional_properties":false,"constraints":["available is true exactly when provider_id, endpoint, authentication, and clients are present.","Provider bearer tokens are accepted only during registration and are never returned."],"fields":{"authentication":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"BrowserProviderAuthentication"}},"available":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"clients":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"endpoint":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"provider_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"targets":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BrowserProviderTarget"},"kind":"array"}}},"kind":"object"},"BrowserProviderTarget":{"additional_properties":false,"fields":{"tab_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"target_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserProviderUnregisterResult":{"additional_properties":false,"fields":{"removed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"CellPixelFailure":{"additional_properties":false,"fields":{"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"CellPixelResize":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"reservation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"CellPixelSurface":{"additional_properties":false,"fields":{"height_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"width_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"ClientInfo":{"additional_properties":false,"fields":{"attached":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"connected_seconds":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"self":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"sizes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ClientSize"},"kind":"array"}},"transport":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ClientTransport"}}},"kind":"object"},"ClientSize":{"additional_properties":false,"fields":{"cols":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"size_participating":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ClientTransport":{"kind":"enum","values":["local","unix","ws"]},"CloseReason":{"kind":"enum","values":["session_end"]},"CloseTerminalResult":{"additional_properties":false,"fields":{"already_closed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"closed":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ColorHex":{"kind":"alias","target":{"kind":"scalar","name":"string"}},"ColumnPin":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mode":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationChange":{"additional_properties":true,"fields":{"conversation":{"description":"kind conversation.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationSummary"}},"kind":{"description":"Known values: message and message-updated (message), read-cursor (participant, seq), conversation (conversation). A change of another kind keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"message":{"description":"kind message or message-updated.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationMessage"}},"participant":{"description":"kind read-cursor.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"seq":{"description":"kind read-cursor.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ConversationImportMessage":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_msg_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parts":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationPart"},"kind":"array"}}},"kind":"object"},"ConversationMessage":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_msg_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"edited_at":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"parts":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationPart"},"kind":"array"}},"reactions":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationReaction"},"kind":"array"}},"reply_to":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationPartRef"}},"retracted_at":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ConversationPart":{"additional_properties":true,"fields":{"host":{"description":"type work.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"preview":{"description":"type work: the reply preview (a string). type attachment (local-attachments-v1): an image\'s preview object {hash, mime_type, byte_count}.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"runs":{"description":"type text.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"ConversationTextRun"},"kind":"array"}},"session":{"description":"type work.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"status":{"description":"type work. Known values: running, done, failed, waiting.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"text":{"description":"type text.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"type":{"description":"Known values: text (text, runs), work (session, host, status, preview) and, with local-attachments-v1, attachment (hash, name, mime_type, byte_count, width, height, duration_ms, poster, preview; see spec/commands.md). A part of another type keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationPartRef":{"additional_properties":false,"fields":{"message_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"part_index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ConversationParticipant":{"additional_properties":false,"fields":{"acp_session":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"agent_class":{"description":"Known values: mux, agent. Other values are future classes.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"description":"Known values: human, agent. Other values are future kinds.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationReaction":{"additional_properties":false,"fields":{"at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationReactionKind"}},"part_index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ConversationReactionKind":{"additional_properties":true,"fields":{"emoji":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tapback":{"description":"Known values: love, like, dislike, laugh, emphasize, question.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationSearchHit":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"message_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"snippet":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationSummary":{"additional_properties":false,"fields":{"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"last_message":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationMessage"}},"last_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"owner":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"participants":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationParticipant"},"kind":"array"}},"read_cursors":{"nullable":false,"presence":"required","type":{"kind":"map","values":{"kind":"scalar","name":"uint64"}}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"updated_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationTabRecord":{"additional_properties":false,"fields":{"agent_session":{"capability":"agent-session-tabs-v1","description":"Agent session source (agent-session-tabs-v1); exclusive with the other sources.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"AgentSessionSource"}},"conversation":{"description":"Conversation source: a conv_ id, with owner.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"description":"Conversation source: local or cloud.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"page":{"capability":"page-tabs-v1","description":"Page source (page-tabs-v1): the id of one of the app\'s own pages; exclusive with the other sources.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationTextRun":{"additional_properties":false,"fields":{"length":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"link":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mention":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"CopyResult":{"additional_properties":false,"fields":{"mode":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["screen","selection","scrollback"]}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"CursorStyle":{"kind":"enum","values":["block","underline","bar"]},"DeadPane":{"additional_properties":false,"fields":{"dead":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"DeclarativeLayout":{"kind":"tagged_union","tag":"type","variants":{"leaf":{"additional_properties":false,"fields":{"command":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"leaf"}}},"kind":"object"},"split":{"additional_properties":false,"fields":{"a":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"b":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"split"}}},"kind":"object"},"stack":{"additional_properties":false,"fields":{"expanded":{"constraints":["Must identify a member of panes."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array","min_items":1}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"stack"}}},"kind":"object"}}},"DetachClientTarget":{"kind":"opaque_json","reason":"A uint64 client id or a shared-sizing participant id string."},"DetachReason":{"kind":"enum","values":["network","disconnected-by","host-shutdown","superseded"]},"EmptyResult":{"additional_properties":false,"fields":{},"kind":"object"},"ExportLayoutResult":{"additional_properties":false,"fields":{"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ExportedPane"},"kind":"array"}}},"kind":"object"},"ExportedPane":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"FocusDirectionResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"FrontendFocusTarget":{"kind":"enum","values":["pane","machine_rail","workspace_rail","tabs_rail","projection_rail"]},"FrontendJournalEvent":{"kind":"tagged_union","tag":"kind","variants":{"focus":{"additional_properties":false,"fields":{"content_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"focus"}},"pane_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tab_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"target":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"FrontendFocusTarget"}},"workspace_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"resize":{"additional_properties":false,"fields":{"cell_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"cell_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"resize"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"viewport":{"additional_properties":false,"fields":{"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"viewport"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"settled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"target":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"}}},"FrontendProjection":{"additional_properties":false,"fields":{"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"projection":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"projection_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"replayed":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"schema_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"GetCellPixelsResult":{"additional_properties":false,"fields":{"height_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelSurface"},"kind":"array"}},"width_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"GetSizeStateResult":{"additional_properties":false,"fields":{"self_participant":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"GuestUrlAcknowledgeResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlClaimResult":{"additional_properties":false,"fields":{"claimed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlOpenResult":{"additional_properties":false,"fields":{"opened":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlSubscribeResult":{"additional_properties":false,"fields":{"url_open_ready":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"Id":{"kind":"alias","target":{"kind":"scalar","name":"uint64"}},"IdMapping":{"additional_properties":false,"fields":{"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["workspace","screen","pane","surface"]}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"IdentifyResult":{"additional_properties":false,"fields":{"app":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cmux-tui"}},"build_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"capabilities":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"daemon_handoff":{"nullable":false,"presence":"required","since":9,"type":{"kind":"literal","value":1}},"generation":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"string"}},"ghostty_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"launch_snapshot_path":{"capability":"launch-snapshot-v1","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"lifecycle_ready":{"default":true,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"machine_name":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"protocol":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"registry_id":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"string"}},"session":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","since":9,"type":{"kind":"scalar","name":"uint64"}},"version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_revision":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"IdsResult":{"additional_properties":false,"fields":{"ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"IdMapping"},"kind":"array"}}},"kind":"object"},"JsonValue":{"kind":"opaque_json","reason":"The wire field intentionally carries a frontend-authored or runtime-authored arbitrary JSON document."},"KittyGraphicsState":{"additional_properties":false,"fields":{"alternate_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"alternate_replay_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"inflight_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"placements":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"primary_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"primary_replay_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"replay_cursor_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"KittyImageAlias":{"additional_properties":false,"fields":{"image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_number":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"Layout":{"kind":"tagged_union","tag":"type","variants":{"leaf":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"leaf"}}},"kind":"object"},"split":{"additional_properties":false,"fields":{"a":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"b":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"ratio":{"constraints":[{"maximum":0.95,"minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"split":{"description":"Stable for the lifetime of this split node.","nullable":false,"presence":"optional","since":8,"type":{"kind":"ref","name":"Id"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"split"}}},"kind":"object"},"stack":{"additional_properties":false,"fields":{"expanded":{"constraints":["Must identify a member of panes."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array","min_items":1}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"stack"}}},"kind":"object"}}},"LayoutUndoConfirmationRequired":{"additional_properties":false,"fields":{"closes_panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"confirmation_required":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"undone":{"nullable":false,"presence":"required","type":{"kind":"literal","value":false}}},"kind":"object"},"LayoutUndoResult":{"kind":"untagged_union","variants":[{"kind":"ref","name":"LayoutUndoUndone"},{"kind":"ref","name":"LayoutUndoConfirmationRequired"}]},"LayoutUndoUndone":{"additional_properties":false,"fields":{"confirmation_required":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"literal","value":false}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"undone":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"ListAgentsResult":{"additional_properties":false,"fields":{"agents":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"AgentRecord"},"kind":"array"}}},"kind":"object"},"ListTerminalsResult":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminals":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalRecord"},"kind":"array"}}},"kind":"object"},"LivePane":{"additional_properties":false,"fields":{"active_tab":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"focused_at":{"default":0,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"tabs":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Tab"},"kind":"array"}}},"kind":"object"},"MachineListeningTcpResult":{"additional_properties":false,"constraints":["The daemon runs only a fixed socket-listing command; callers cannot supply command text.","The output is limited to 524288 bytes."],"fields":{"stdout":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"MachineUsage":{"additional_properties":false,"constraints":["period_days is the trailing window length in days.","api_equivalent_usd is the list-price equivalent of the machine\'s model traffic in that window."],"fields":{"api_equivalent_usd":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"as_of":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"period_days":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"total_tokens":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"vm_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"MachineUsageResult":{"additional_properties":false,"constraints":["usage is null when the daemon has no readout (not a Cloud VM, endpoint unavailable, or usage not ready)."],"fields":{"usage":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"MachineUsage"}}},"kind":"object"},"MintTerminalRendererResult":{"additional_properties":false,"fields":{"endpoint":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"incarnation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"protocol_version":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"uint16"}},"rights":{"constraints":[{"current_value":7}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"supports_viewer_size_priority":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"ttl_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"MoveTerminalResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NewRowResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transaction":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NoteSizeActivityResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NotificationLevel":{"kind":"enum","values":["info","warning","error"]},"NotificationMarker":{"additional_properties":false,"fields":{"level":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"NotificationLevel"}},"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"source":{"capability":"notification-source-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"unread":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"NotificationSource":{"kind":"enum","values":["cli","terminal","agent","daemon"]},"NotifyResult":{"additional_properties":false,"fields":{"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"Pane":{"kind":"untagged_union","variants":[{"kind":"ref","name":"LivePane"},{"kind":"ref","name":"DeadPane"}]},"PaneDirection":{"kind":"enum","values":["left","right","up","down"]},"PaneKind":{"kind":"enum","values":["pty","browser"]},"PaneNeighborResult":{"additional_properties":false,"fields":{"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"PaneRef":{"kind":"opaque_json","reason":"A pane named by its numeric id or its public pane_ id."},"PingResult":{"additional_properties":false,"fields":{"build_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"ghostty_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"ok":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"protocol":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ProcessInfoResult":{"additional_properties":false,"fields":{"command":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"cwd":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"foreground_cwd":{"description":"Working directory of the process group that owns the PTY, read at request time. Null when the lookup fails; absent from daemons that predate the field. Clients treat absence as null.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"foreground_executable":{"description":"Executable path or name of the PTY foreground process-group leader, read at request time. Null when the lookup fails; absent from daemons that predate the field. Clients treat absence as null.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"pid":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ProviderWorkspaceMutationResult":{"additional_properties":false,"fields":{"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ReadScreenResult":{"additional_properties":false,"fields":{"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ReadScrollbackResult":{"additional_properties":false,"fields":{"epoch":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"total":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ReattachViewResult":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"RenderCursor":{"additional_properties":false,"fields":{"blink":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"style":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"CursorStyle"}},"visible":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"x":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"y":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"RenderGraphicFormat":{"kind":"enum","values":["rgb","rgba"]},"RenderGraphicImage":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"format":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderGraphicFormat"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"RenderGraphicPlacement":{"additional_properties":false,"fields":{"anchor_col":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"anchor_row":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"columns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"grid_cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"grid_rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"ordinal":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"pixel_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"pixel_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"placement_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_x":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_y":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"viewport_col":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"viewport_row":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"viewport_visible":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"x_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"y_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"z":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}}},"kind":"object"},"RenderGraphics":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicImage"},"kind":"array"}},"placements":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderGraphicPlacement"},"kind":"array"}},"removed_image_ids":{"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"uint32"},"kind":"array"}}},"kind":"object"},"RenderGraphicsDelta":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicImage"},"kind":"array"}},"placements":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicPlacement"},"kind":"array"}},"removed_image_ids":{"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"uint32"},"kind":"array"}}},"kind":"object"},"RenderRow":{"additional_properties":false,"fields":{"row":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"runs":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRun"},"kind":"array"}}},"kind":"object"},"RenderRun":{"additional_properties":false,"fields":{"attrs":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"underline":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderUnderline"}},"width_hint":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"RenderUnderline":{"kind":"enum","values":["single","double","curly","dotted","dashed"]},"ReportAgentResult":{"additional_properties":false,"fields":{"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentReportSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ResizeSurfaceResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"reservation_id":{"nullable":true,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ResolveTerminalResult":{"additional_properties":false,"fields":{"exit":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalExit"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"launch_spec":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ResourceSelectors":{"additional_properties":false,"fields":{"agent":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"browser":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"frontend_projection":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"machine":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"notification":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pairing_request":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"sidebar_view":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"split":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"stream":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tab":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"RowHeight":{"additional_properties":false,"fields":{"height":{"constraints":[{"maximum":1000,"minimum":100}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"row":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"RowMarkerPoint":{"additional_properties":false,"constraints":["row_marker is a host row marker of the primary screen (terminal-history page markers)."],"fields":{"col":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"row_marker":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"RunResult":{"additional_properties":false,"fields":{"already_exited":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"boolean"}},"exit":{"nullable":true,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalExit"}},"lifecycle":{"nullable":false,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"SavedTabGroupMember":{"additional_properties":true,"fields":{"cwd":{"description":"kind terminal.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"engine":{"description":"kind browser. Known values: webkit, cef.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"kind":{"description":"Known values: terminal (terminal_id, cwd, title) and browser (url, engine, profile_id, title). A member of another kind keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile_id":{"description":"kind browser.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"description":"kind terminal.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"description":"kind browser.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SavedTabGroupRecord":{"additional_properties":true,"fields":{"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"members":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SavedTabGroupMember"},"kind":"array"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"room":{"description":"The room whose bar shows the saved group (`default` for groups saved by these commands).","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"Screen":{"additional_properties":false,"fields":{"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"active_pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Pane"},"kind":"array"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"zoomed_pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ServerStatsConnections":{"additional_properties":false,"constraints":["refused counts sockets dropped at limit; for hook producers each one is a lost event."],"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"peak":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"refused":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsHistogram":{"additional_properties":false,"constraints":["Percentiles are log-linear bucket upper bounds and overestimate the true sample by at most 25%.","Latency histograms are in microseconds; batch_size counts events."],"fields":{"count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mean":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p50":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p90":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p99":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsJournalWriter":{"additional_properties":false,"constraints":["commit_us excludes lock wait; commit_lock_wait_us is the writer waiting for the registry lock.","terminal_queued and durable_queued are live lane depths."],"fields":{"batch_size":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"batches":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"commit_failures":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"commit_lock_wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"commit_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"deadline_expiries":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"durable_events":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"durable_queued":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"phase":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsWriterPhase"}},"phase_for_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"receipt_wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"terminal_events":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal_queued":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsLockHolder":{"additional_properties":false,"constraints":["site is the file:line that acquired the registry lock."],"fields":{"held_for_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"site":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsLockSite":{"additional_properties":false,"constraints":[],"fields":{"acquisitions":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_max_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_total_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"site":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsLockStall":{"additional_properties":false,"constraints":["blocker is the site holding the lock when the waiter\'s wait began, or null when it was free."],"fields":{"blocker":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"waited_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"waiter":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsRegistryLock":{"additional_properties":false,"constraints":["contended_acquisitions counts waits of at least 1 ms; stalls counts waits of at least 100 ms.","top_sites is ordered by hold_total_us descending and holds at most eight entries."],"fields":{"contended_acquisitions":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"holder":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsLockHolder"}},"last_stall":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsLockStall"}},"stalls":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"top_sites":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ServerStatsLockSite"},"kind":"array"}},"wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}}},"kind":"object"},"ServerStatsResult":{"additional_properties":false,"constraints":["schema is 1.","journal_writer is null for ephemeral sessions without a durable journal.","Counters accumulate since daemon start; reading them never touches SQLite or the journal."],"fields":{"connections":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsConnections"}},"journal_writer":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsJournalWriter"}},"registry_lock":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsRegistryLock"}},"schema":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"uptime_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsWriterPhase":{"kind":"enum","values":["idle","waiting_lock","committing"]},"SetCellPixelsResult":{"additional_properties":false,"fields":{"failures":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelFailure"},"kind":"array"}},"resizes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelResize"},"kind":"array"}}},"kind":"object"},"SetSizeCountsResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}},"participant":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SetSizePolicyResult":{"additional_properties":false,"fields":{"state":{"constraints":["Present for a surface policy."],"nullable":false,"presence":"optional","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"SetTerminalIdlePolicyResult":{"additional_properties":false,"fields":{"idle_close_seconds":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SetTerminalKeepResult":{"additional_properties":false,"fields":{"keep":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ShutdownDaemonResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"ended_terminals":{"capability":"terminal-reap-v1","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"uint64"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"SidebarPluginResult":{"additional_properties":false,"fields":{"error":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"retry_after_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"Size":{"additional_properties":false,"fields":{"cols":{"constraints":[{"maximum":10000,"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"constraints":[{"maximum":10000,"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SizeDetachActor":{"additional_properties":false,"fields":{"device_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SizeDeviceKind":{"kind":"enum","values":["mac","iphone","ipad","tui","browser","unknown"]},"SizeMode":{"kind":"enum","values":["latest","smallest","largest","priority","fixed"]},"SizeParticipant":{"additional_properties":false,"fields":{"counts":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"counts_override":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"device_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"device_kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeDeviceKind"}},"device_name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"display_name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"priority_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"user_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"via":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"viewport":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Size"}}},"kind":"object"},"SizePolicy":{"additional_properties":false,"fields":{"fixed":{"constraints":["Grid used by mode fixed; clamped to at least 2 x 1."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Size"}},"mode":{"default":"latest","nullable":false,"presence":"optional","type":{"kind":"ref","name":"SizeMode"}},"priority":{"constraints":["Priority keys `/`, highest first."],"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"SizeReason":{"kind":"enum","values":["latest","smallest","largest","priority","fixed","held","priority-fallback"]},"SizeState":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"owners":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"participants":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SizeParticipant"},"kind":"array"}},"policy":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizePolicy"}},"reason":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeReason"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SizingIdentity":{"additional_properties":false,"fields":{"device_id":{"constraints":["Stable per-install device id; tells two devices of one user apart."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"device_kind":{"constraints":["mac, iphone, ipad, tui, browser; anything else is unknown."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"device_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"constraints":["Asserted by the client; the daemon does not verify it."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SnapshotRequestHave":{"additional_properties":false,"constraints":["The snapshot state the viewer holds; a snapshot_version other than the host\'s is unsupported_version."],"fields":{"generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"snapshot_version":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SnapshotRequestResult":{"additional_properties":false,"constraints":["accepted: the viewer\'s next attach event is a READY snapshot. collapsed: a snapshot is already pending and answers this request. snapshot_throttled: the viewer got a snapshot less than 500 ms ago; retry after retry_after_ms. Every status echoes request_id."],"fields":{"reason":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"request_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"retry_after_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"status":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["accepted","collapsed","snapshot_throttled"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"SplitDirection":{"kind":"enum","values":["right","down"]},"SplitRespawn":{"additional_properties":false,"fields":{"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"engine":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"shell_args":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SurfaceResult":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"Tab":{"additional_properties":false,"fields":{"browser_error":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"browser_frames_stalled":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"boolean"}},"browser_source":{"nullable":true,"presence":"required","type":{"kind":"enum","values":["external","launched"]}},"browser_status":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"enum","values":["starting","live","failed"]}},"dead":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["pty","browser","conversation"]}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"notification":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"NotificationMarker"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"size":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Size"}},"supports_clear_history_key_fallback":{"capability":"clear-history-key-v1","nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_resource_id":{"constraints":[{"pattern":"^term_[0-9a-f]{32}$"}],"nullable":true,"presence":"optional","since":10,"type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupEndedTerminal":{"additional_properties":true,"fields":{"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupOutcome":{"additional_properties":true,"fields":{"group":{"description":"Null when the command left no group.","nullable":true,"presence":"required","type":{"kind":"ref","name":"TabGroupRecord"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surfaces":{"description":"Members in strip order.","nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"workspace":{"description":"The workspace of the group\'s pane.","nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TabGroupRecord":{"additional_properties":true,"fields":{"collapsed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"description":"May be empty: the group shows only its color.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"saved_id":{"description":"The linked saved group.","nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupRun":{"additional_properties":true,"fields":{"collapsed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Id"}},"saved_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"start":{"description":"Strip index of the first member.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"TabRef":{"kind":"opaque_json","reason":"A tab named by its numeric surface id or its public tab_ id."},"TerminalClipboardHost":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardHostKind"}},"name":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalClipboardHostKind":{"kind":"enum","values":["local","remote","cloud"]},"TerminalClipboardLocation":{"kind":"enum","values":["standard","selection","primary"]},"TerminalClipboardReplyResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"granted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalClipboardSubscribeResult":{"additional_properties":false,"fields":{"clipboard_read_ready":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalColorOverrides":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"TerminalColors":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"CursorStyle"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"overrides":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"TerminalColorOverrides"}},"palette":{"constraints":["Decimal string keys are palette indexes 0 through 255."],"nullable":false,"presence":"optional","since":7,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"TerminalCommandHistoryResult":{"additional_properties":false,"fields":{"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalEventsResult":{"additional_properties":false,"fields":{"events":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalRegistryEvent"},"kind":"array"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"TerminalExit":{"additional_properties":false,"fields":{"exited_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalExitOutcome"}}},"kind":"object"},"TerminalExitOutcome":{"kind":"tagged_union","tag":"kind","variants":{"exit":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"exit"}}},"kind":"object"},"signal":{"additional_properties":false,"fields":{"core_dumped":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"signal"}},"signal":{"constraints":[{"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}}},"kind":"object"},"unknown":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"unknown"}},"reason":{"constraints":[{"min_length":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}}},"TerminalHistoryPage":{"additional_properties":false,"constraints":["data is one base64 GHOSTSNP PAGE record (header, payload, CRC32C); marker is the page\'s first row."],"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"marker":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"TerminalHistoryPagesResult":{"additional_properties":false,"constraints":["Pages are newest first; pass next_before as before for older pages until done."],"fields":{"done":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"next_before":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalHistoryPage"},"kind":"array"}},"snapshot_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TerminalKey":{"kind":"enum","values":["unidentified","backquote","backslash","bracket-left","bracket-right","comma","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","equal","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","minus","period","quote","semicolon","slash","backspace","enter","space","tab","delete","end","home","insert","page-down","page-up","arrow-down","arrow-left","arrow-right","arrow-up","numpad0","numpad1","numpad2","numpad3","numpad4","numpad5","numpad6","numpad7","numpad8","numpad9","numpad-add","numpad-backspace","numpad-comma","numpad-decimal","numpad-divide","numpad-enter","numpad-equal","numpad-multiply","numpad-subtract","numpad-up","numpad-down","numpad-right","numpad-left","numpad-begin","numpad-home","numpad-end","numpad-insert","numpad-delete","numpad-page-up","numpad-page-down","escape","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","f13","f14","f15","f16","f17","f18","f19","f20"]},"TerminalKeyAction":{"kind":"enum","values":["press","release","repeat"]},"TerminalKeyInput":{"additional_properties":false,"constraints":["consumed_mods must be a subset of mods.","unshifted_codepoint, shifted_codepoint, and base_layout_codepoint contain exactly one Unicode scalar when present.","utf8 contains no control characters.","macos_option_as_alt may be false only when Alt is active and consumed."],"fields":{"action":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"TerminalKeyAction"}},"base_layout_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"composing":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"consumed_mods":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalModifiers"}},"key":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalKey"}},"macos_option_as_alt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"mods":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalModifiers"}},"shifted_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"unshifted_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"utf8":{"constraints":[{"max_length":4096}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalLifecycle":{"kind":"enum","values":["launching","adopting","running","exited","tombstoned"]},"TerminalModifiers":{"additional_properties":false,"fields":{"alt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"caps_lock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"control":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"num_lock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"shift":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"super":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalPlacement":{"additional_properties":false,"fields":{"already_exited":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"boolean"}},"exit":{"nullable":true,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalExit"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TerminalReadRangeResult":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"truncated":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalRecord":{"additional_properties":false,"fields":{"exit":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalExit"}},"launch_spec":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"terminal_id":{"constraints":[{"format":"UUIDv4 hex without dashes","pattern":"^[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalRegistryEvent":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"result":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalResourceHost":{"additional_properties":false,"fields":{"cpu_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"memory_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"TerminalResourceProcess":{"additional_properties":false,"constraints":["cpu_ns is cumulative user plus system CPU time since the process started.","memory_bytes is the physical footprint on macOS and the resident set size on Linux."],"fields":{"cpu_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"memory_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"ppid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"TerminalResources":{"additional_properties":false,"constraints":["processes lists the shell first, then every descendant breadth-first, each pid once, at most 512.","truncated is true when the tree had more than 512 processes.","host is null for a PTY the daemon owns itself."],"fields":{"host":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalResourceHost"}},"pid":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"processes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalResourceProcess"},"kind":"array"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"truncated":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalResourcesResult":{"additional_properties":false,"constraints":["sampled_at_ns is a monotonic clock in nanoseconds (macOS CLOCK_UPTIME_RAW, Linux CLOCK_MONOTONIC), comparable only between replies of one daemon host.","missing lists requested surfaces that do not exist or are not PTY surfaces."],"fields":{"missing":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"sampled_at_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminals":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalResources"},"kind":"array"}}},"kind":"object"},"Tree":{"additional_properties":false,"fields":{"generation":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"pane_revision":{"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"registry_id":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"workspace_revision":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"workspaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Workspace"},"kind":"array"}}},"kind":"object"},"ViewAttachmentOutcome":{"kind":"enum","values":["applied","passive","superseded"]},"VtStateResult":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"constraints":[{"encoding":"standard base64"}],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"WaitForResult":{"additional_properties":false,"fields":{"elapsed_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"matched":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"Workspace":{"additional_properties":false,"fields":{"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"key":{"capability":"workspace-registry-v1","constraints":[{"format":"lowercase canonical UUID"}],"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Screen"},"kind":"array"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"WorkspaceMutationResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ZoomPaneResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"zoomed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"zoomed_pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"}}}') +SCHEMA = json.loads('{"$schema":"./sdk-schema.schema.json","commands":{"ack-tab-notifications":{"authority":"control","capability":"notification-ack-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"add-screens-to-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"add-tabs-to-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"apply-layout":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["layout must contain at least one leaf or stack member.","cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ApplyLayoutResult"},"since":6,"stream":null},"attach-surface":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["cols and rows must be supplied together.","Browser surfaces reject mode:render.","expected_generation and expected_terminal_id must be supplied together and match the current daemon and terminal.","snapshot \\"ghostsnp\\" with the host\'s snapshot_version starts the byte stream with a snapshot event instead of vt-state; another version gets the byte replay. viewer_backlog_bytes (default 8388608 = 8 MiB, set per attach, no daemon setting; clamped to 65536..8388608) bounds the viewer\'s backlog; overflow resyncs by snapshot."],"fields":{"cols":{"capability":"attach-initial-size","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"expected_generation":{"capability":"attach-identity-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_terminal_id":{"capability":"attach-identity-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mode":{"default":"bytes","nullable":true,"presence":"optional","since":7,"type":{"kind":"enum","values":["bytes","render"]}},"rows":{"capability":"attach-initial-size","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"snapshot":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"snapshot_images":{"capability":"terminal-snapshot-images-v1","default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"snapshot_local_history":{"capability":"terminal-snapshot-local-history-v1","default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"snapshot_version":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"viewer_backlog_bytes":{"capability":"terminal-snapshot-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":{"event_names":["browser-state","colors-changed","detached","frame","notification","output","overflow","render-delta","render-state","resized","scroll-changed","vt-state"],"kind":"attach","mode_field":"mode","modes":{"browser":["browser-state","frame","notification","scroll-changed","overflow","detached"],"bytes":["vt-state","output","resized","colors-changed","scroll-changed","notification","overflow","detached"],"render":["render-state","render-delta","scroll-changed","overflow","detached"]},"ordering":"Initial state precedes the command response. Later surface events preserve order. A resized replay replaces the previous byte mirror; overflow ends that surface stream.","terminal_event":"detached"}},"bind-conversation-tab-session":{"authority":"control","capability":"agent-session-tabs-v1","constraints":["Compare-and-swap: applies when the tab\'s current session equals expected_session (null: none). When the tab already has session the result is replayed:true and nothing commits; another current session fails with conversation_tab.session_conflict naming it; a tab without an agent session source is a bad request. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"expected_session":{"description":"The tab\'s current session, or null for a tab without one; the bind applies only when it matches.","nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"session":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationTabRecord"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"stream":null},"browser-activate":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-back":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-forward":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-frame-presented":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Acknowledges the exact rendered browser frame for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-host-provider":{"authority":"local-admin","capability":"browser-host-provider-v1","constraints":["Only the verified local app connection (client-hello role main plus a proof) gets a result; every other caller gets error_code origin.forbidden.","The secret is never journaled, logged or put in an event."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserHostProviderResult"},"since":12,"stream":null},"browser-insert-text":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-key":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up"]}},"modifiers":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"windows_virtual_key_code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-key-press":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only.","One request preserves the atomic press sequence through the bounded input queue."],"request":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"modifiers":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"windows_virtual_key_code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-mouse":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; coordinates are CSS pixels.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"button":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"click_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"frame_seq":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up","move"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-mouse-guarded":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Browser surfaces only; coordinates are CSS pixels.","The frame sequence must be the exact presented token for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"button":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"click_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["down","up","move"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"browser-navigate":{"authority":"frontend","capability":null,"constraints":["Queue acknowledgement only; observe browser-state for outcome.","Navigation is latest-wins."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-reload":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; queue acknowledgement is not page-load success."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-wheel":{"authority":"frontend","capability":null,"constraints":["Browser surfaces only; values are CSS pixels.","The bounded disposable input queue drops newest input when full."],"request":{"additional_properties":false,"fields":{"delta_y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"frame_seq":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"browser-wheel-guarded":{"authority":"frontend","capability":"browser-pointer-frame-guard-v1","constraints":["Browser surfaces only; values are CSS pixels.","The frame sequence must be the exact presented token for this connection.","Requires browser-pointer-frame-guard-v1."],"request":{"additional_properties":false,"fields":{"delta_y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"frame_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"x_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"y_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"clear-history":{"authority":"control","capability":"clear-history-v1","constraints":["PTY surfaces only.","Failed responses classify error_delivery as known-not-delivered or ambiguous."],"request":{"additional_properties":false,"fields":{"fallback_key":{"capability":"clear-history-key-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"TerminalKeyInput"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"clear-window-title":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"client-focus":{"authority":"control","capability":"client-focus-v1","constraints":[],"request":{"additional_properties":false,"fields":{"client_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"close-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-provider-managed-workspace":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Call only after the external provider durably accepts the close."],"request":{"additional_properties":false,"constraints":["workspace and key must identify the same live provider-managed workspace."],"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProviderWorkspaceMutationResult"},"since":9,"stream":null},"close-screen":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"end_terminals":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"close-surface":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"close-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"closed":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminals":{"description":"With end_terminals: the member terminals the close ended.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"TabGroupEndedTerminal"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"close-tabs":{"authority":"control","capability":"batch-close-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"constraints":["surfaces holds 1 to 4096 live tab placements.","origin and mutation_id are either both present or both absent.","expected_generation and expected_revision are rejected."],"fields":{"end_terminals":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"reason":{"capability":"close-reason-v1","default":null,"description":"The close is not recorded in the closed history (session_end).","nullable":true,"presence":"optional","type":{"kind":"ref","name":"CloseReason"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"close-terminal":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"CloseTerminalResult"},"since":9,"stream":null},"close-workspace":{"authority":"control","capability":null,"constraints":["Provider-managed workspaces reject this ordinary mutation."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"end_terminals":{"capability":"batch-close-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"cloud-conversation-history":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. limit is 1-200. Calls the cloud. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"before_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-op":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. One cloud op tagged by kind, forwarded with the client\'s idempotency key and origin; unsupported kinds are refused with reason unsupported_op. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"op":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"origin":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-snapshot":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. tail is 1-50. Calls the cloud. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"tail":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-subscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Shares one upstream socket per conversation; at most 64. Replies {conversation, state, reason?, account?} with the shared socket\'s current state, then emits that state as cloud-subscription-state. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-conversation-unsubscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Ends this connection\'s interest; the socket closes 60 s after the last subscriber. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-list":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. limit is 1-200. Calls the cloud; errors carry error_code, reason and retryable. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"include_archived":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"limit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-subscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Shares one upstream inbox socket among local clients. Replies {state, reason?, account?} with the shared socket\'s current state, then emits that state as cloud-subscription-state. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-inbox-unsubscribe":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Ends this connection\'s inbox interest. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-clear":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Drops the lease. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-set":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Leases the app\'s cmux Cloud session to the daemon (memory only; never echoed). api_base_url is an https origin (http only for loopback). See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{"access_token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"api_base_url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_version":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expires_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"cloud-session-status":{"authority":"local-admin","capability":"cloud-conversations-v1","constraints":["Trusted local connections only. Returns state signed_out, active or expired; never the token. See plans/cmux-next/home-cloud-proxy.md and spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"conversation-agent-token":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections bound to the local user only. Mints a new token; the old one stops working. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-attachment-read":{"authority":"local-admin","capability":"local-attachments-v1","constraints":["Trusted local connections only. variant original (default), poster or preview; length at most 4 MiB. The hash must be referenced by a message of the conversation or uploaded there by the caller. Rejects: attachment_rejected (unknown_attachment, no_poster, no_preview). See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"length":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"variant":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"data":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"eof":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"conversation-attachment-upload":{"authority":"local-admin","capability":"local-attachments-v1","constraints":["Trusted local connections only; the caller\'s principal must be a participant of conversation. op begin(conversation, sha256, byte_count, mime_type, name, width?, height?, duration_ms?, poster?|preview?) | chunk(upload, piece, offset, data base64 <= 4 MiB decoded) | commit(upload) | cancel(upload). Cloud attachment allow list and limits (100 MB per file). Rejects: attachment_rejected. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"byte_count":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"conversation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"data":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"duration_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"height":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"mime_type":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"op":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"piece":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"poster":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"preview":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"sha256":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"upload":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"needs":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"received":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"stored":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"poster":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}},"preview":{"default":null,"nullable":true,"presence":"optional","type":{"additional_properties":false,"fields":{"byte_count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hash":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime_type":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}}},"kind":"object"}},"upload":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-bind":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Binds the connection to an agent participant for its lifetime. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-create":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. A replay of the same idempotency key and request returns the created conversation with replayed:true. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"participants":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"conversation-history":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. limit is 1-500. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"before_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationMessage"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-import":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local user connections only (an agent-bound connection is refused; the remote relay does not admit it). Appends history from another store once: authors, times and ids are kept, the owner assigns seqs and one rev, skips a message whose author and client_msg_id (or id) it holds, and refuses times that go backward, pass the newest message it holds, or lie in the future. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationImportMessage"},"kind":"array"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"imported":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"uint64"},"kind":"array"}},"skipped":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"conversation-list":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. See spec/commands.md."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversations":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationSummary"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-op":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Rejects use error_code conversation_rejected with the reason as the error text. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"op":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"change":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationChange"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"conversation-search":{"authority":"local-admin","capability":"conversation-search-v1","constraints":["Trusted local connections only. query is trimmed, 1-200 characters, no control characters; limit is 1-100 (rejects: conversation_rejected with reason invalid_query or invalid_limit). See spec/commands.md."],"request":{"additional_properties":false,"fields":{"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"query":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"hits":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationSearchHit"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-snapshot":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. tail is 1-500. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"tail":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationSummary"}},"messages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationMessage"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"conversation-typing":{"authority":"local-admin","capability":"local-conversations-v1","constraints":["Trusted local connections only. Ephemeral: never stored. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"actor":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"on":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"copy":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"mode":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["screen","selection","scrollback"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"CopyResult"},"since":6,"stream":null},"create-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"favicon_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"create-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"default_session_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"defaults":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"follows":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"create-surface-with-receipt":{"authority":"control","capability":"creation-receipts-v1","constraints":["Repeating one origin and receipt with identical fields returns the original creation result.","A new idempotency_key is valid only when durable creation resolution instructs retry_new_idempotency_key."],"request":{"additional_properties":false,"constraints":["operation is one of new-tab, run-command, new-browser-tab, new-workspace, new-screen, new-pane, new-pane-right, split-right, or split-down.","Each operation admits only its documented selector and option fields.","idempotency_key names one execution attempt and defaults to receipt.","cols and rows must be supplied together."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"capability":"creation-attempt-keys-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"operation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"receipt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"selector_fallbacks":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"ResourceSelectors"},"kind":"array","max_items":7}},"selectors":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ResourceSelectors"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":10,"stream":null},"create-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"create-terminal":{"authority":"control","capability":"workspace-registry-v1","constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1)."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; when both are supplied they must identify the same workspace.","argv and command are mutually exclusive and must be nonempty when supplied.","cols and rows must be supplied together.","origin and mutation_id are either both present or both absent.","terminal_id may be supplied only when origin and mutation_id are both present."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"command":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"constraints":[{"format":"32-character lowercase UUIDv4 hex without dashes","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalPlacement"},"since":7,"stream":null},"create-workspace":{"authority":"control","capability":"workspace-registry-v1","constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent.","At most 4096 live workspaces may exist; tombstoned keys cannot be reused."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"key":{"constraints":[{"format":"lowercase canonical UUID"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":7,"stream":null},"create-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"deleted":{"description":"The deleted node\'s id first, then its descendants.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"delete-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"move_to":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-saved-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"delete-saved-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"deleted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"delete-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"detach-attached-view":{"authority":"frontend","capability":"view-attachment-detach-v1","constraints":["The command closes only the named view stream and releases its size contribution.","A retired lease returns outcome:superseded."],"request":{"additional_properties":false,"fields":{"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewOutcomeResult"},"since":10,"stream":null},"detach-client":{"authority":"control","capability":null,"constraints":["A participant that is the own view of a client with sizing-view-detach-v1 detaches that view only; the client stays connected."],"request":{"additional_properties":false,"fields":{"by":{"capability":"shared-sizing-v1","constraints":["Defaults to the requester\'s identity."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizeDetachActor"}},"client":{"constraints":["uint64 client id, or a participant id; a relay sub-view id detaches only that view."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"DetachClientTarget"}},"surface":{"capability":"shared-sizing-v1","constraints":["Resolves a participant id on this terminal only; participant ids are per terminal."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"export-layout":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ExportLayoutResult"},"since":6,"stream":null},"focus-direction":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"FocusDirectionResult"},"since":6,"stream":null},"focus-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"forget-session":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"force":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"get-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["Provider endpoints and targets are disclosed only over a trusted local transport; bearer credentials are accepted only during registration and are never returned.","Automation must select a target by stable tab id instead of treating CDP discovery as topology authority."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderSnapshot"},"since":10,"stream":null},"get-cell-pixels":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"GetCellPixelsResult"},"since":6,"stream":null},"get-frontend-browser-history":{"authority":"control","capability":"frontend-browser-history-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"get-frontend-projection":{"authority":"control","capability":null,"constraints":["Each identifier is nonempty, contains no control character, and is at most 128 bytes."],"request":{"additional_properties":false,"fields":{"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"FrontendProjection"},"since":7,"stream":null},"get-size-state":{"authority":"control","capability":"shared-sizing-v1","constraints":[],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"GetSizeStateResult"},"since":12,"stream":null},"identify":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"IdentifyResult"},"since":5,"stream":null},"ids":{"authority":"control","capability":null,"constraints":["Short ids are snapshot-local labels; command parameters accept numeric ids only."],"request":{"additional_properties":false,"fields":{"kind":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"enum","values":["workspace","screen","pane","surface"]}}},"kind":"object"},"result":{"kind":"ref","name":"IdsResult"},"since":6,"stream":null},"import-bookmarks":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"nodes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BookmarkImportNode"},"kind":"array"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"source_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"count":{"description":"Nodes in the request, descendants included.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"root_ids":{"description":"Top-level nodes written; in replace mode the kept folder first.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"import-session-organization":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"groups":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"JsonValue"},"kind":"array"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspaces":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"JsonValue"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"journal-frontend-event":{"authority":"control","capability":"frontend-journal-v1","constraints":["The server derives producer identity from the authenticated control client."],"request":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"FrontendJournalEvent"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"committed":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"since":10,"stream":null},"list-agents":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"state":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"AgentState"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ListAgentsResult"},"since":6,"stream":null},"list-bookmarks":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"bookmarks":{"description":"The whole tree in depth-first pre-order: the bar tree, then the other tree.","nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Bookmark"},"kind":"array"}},"bookmarks_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"stream":null},"list-clients":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"items":{"kind":"ref","name":"ClientInfo"},"kind":"array"},"since":6,"stream":null},"list-notifications":{"authority":"control","capability":"notification-ack-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"limit":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-personal":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-saved-screen-groups":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-saved-tab-groups":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":true,"fields":{"saved_groups":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SavedTabGroupRecord"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"list-tab-groups":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":true,"fields":{"groups":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabGroupRun"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"list-terminals":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ListTerminalsResult"},"since":9,"stream":null},"list-workspace-groups":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"list-workspaces":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"Tree"},"since":5,"stream":null},"machine-listening-tcp":{"authority":"control","capability":"machine-listening-tcp-v1","constraints":["Routine Cloud port inventory uses this command over the authenticated private cmux-tui link."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"MachineListeningTcpResult"},"since":12,"stream":null},"machine-usage":{"authority":"control","capability":"machine-usage-v1","constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"MachineUsageResult"},"since":12,"stream":null},"mark-workspaces-provider-managed":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Authority must match the value provisioned before this mux generation accepted control clients."],"request":{"additional_properties":false,"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"mint-terminal-renderer":{"authority":"frontend","capability":null,"constraints":["Only terminal-host-backed PTYs can mint one-use renderer credentials."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ttl_ms":{"constraints":[{"maximum":60000,"minimum":1}],"default":30000,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"MintTerminalRendererResult"},"since":9,"stream":null},"mint-terminal-renderer-by-terminal":{"authority":"frontend","capability":null,"constraints":["The terminal resource ID is resolved atomically to the live terminal-host-backed PTY before minting a one-use renderer credential."],"request":{"additional_properties":false,"fields":{"terminal":{"constraints":[{"pattern":"^term_[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"ttl_ms":{"constraints":[{"maximum":60000,"minimum":1}],"default":30000,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"MintTerminalRendererResult"},"since":11,"stream":null},"move-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parent":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"move-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-screen":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab":{"authority":"control","capability":null,"constraints":["An out-of-range index clamps to the destination end."],"request":{"additional_properties":false,"fields":{"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"tab-drag-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"move-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneRef"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-column":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"after_column":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneRef"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-new-workspace":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-group-to-split":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneRef"}},"ratio":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"move-tab-to-column":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"after_column":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"dock":{"capability":"dock-columns-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"ColumnPin"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"respawn":{"capability":"tab-column-respawn-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SplitRespawn"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"width":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-new-workspace":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"name":{"capability":"tab-workspace-name-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-split":{"authority":"control","capability":"tab-drag-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ratio":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}},"respawn":{"capability":"tab-split-respawn-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SplitRespawn"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-tab-to-workspace":{"authority":"control","capability":"tab-workspace-move-v1","constraints":["Moves the existing tab to the selected workspace or atomically creates a workspace when workspace is omitted."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"tab-drag-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"move-terminal":{"authority":"control","capability":null,"constraints":["A move to the current workspace still commits a terminal revision with changed:false."],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"MoveTerminalResult"},"since":9,"stream":null},"move-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"move-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"move-workspace-to-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"new-browser-tab":{"authority":"control","capability":null,"constraints":["Bootstrap and navigation failures are asynchronous browser-state outcomes."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-conversation-tab":{"authority":"control","capability":"conversation-tabs-v1","constraints":["Send conversation and owner (owner is local or cloud; conversation is a conv_ id), agent_session (agent-session-tabs-v1: host install:, optional session and harness), or page (page-tabs-v1: 1 to 64 lowercase letters, digits or \'-\', \'_\', \'.\'): exactly one source. pane and workspace are exclusive (workspace: its active pane, or its first pane when empty). origin and mutation_id are sent together; a retry with the same pair returns the first tab with replayed:true, the same pair with another source or target fails with idempotency.conflict, and a retry after that tab closed fails with error_code frontend_browser_key_closed. See spec/commands.md."],"request":{"additional_properties":false,"fields":{"agent_session":{"capability":"agent-session-tabs-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"AgentSessionSource"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"conversation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"page":{"capability":"page-tabs-v1","default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"transaction":{"capability":"conversation-tab-transaction-v1","default":null,"description":"Client transaction id (1 to 128 printable ASCII), echoed on the created tab\'s tab-added delta and in the result.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"content_resource_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationTabRecord"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab_resource_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"transaction":{"description":"The request\'s transaction, when it sent one.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"new-frontend-browser-tab":{"authority":"control","capability":"frontend-browser-tabs-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"activate":{"default":true,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"engine":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"favicon_url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"idempotency_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"new-pane":{"authority":"control","capability":null,"constraints":["terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":9,"stream":null},"new-pane-right":{"authority":"control","capability":"viewport-splits-v1","constraints":["terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1).","kind \\"browser\\" requires a non-empty url and creates a browser pane at that url; url without kind \\"browser\\", an unknown kind, and cwd, env, keep, terminal_id or shell_args with kind \\"browser\\" are rejected and nothing is created (pane-browser-kind-v1)."],"request":{"additional_properties":false,"constraints":["Omitted width defaults to two thirds.","cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-placement-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"kind":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"PaneKind"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"url":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"width":{"constraints":[{"maximum":1.0,"minimum":0.1}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":9,"stream":null},"new-row":{"authority":"control","capability":"rows-v1","constraints":["Opens a new row of height_permille below the row of pane in that pane\'s column, holding one new pane with one new terminal. On a split screen the screen\'s tree first becomes the only row of one column.","transaction (1-128 printable ASCII) is echoed in the result and in the screen-changed delta of the commit.","See spec/commands.md for the result object and error codes."],"request":{"additional_properties":false,"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"height_permille":{"constraints":[{"maximum":1000,"minimum":100}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"keep":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NewRowResult"},"since":12,"stream":null},"new-screen":{"authority":"control","capability":null,"constraints":["screen_name, color, icon, pinned, index, and group need capability screen-metadata-v1 (group: screen-groups-v1); the result then also carries screen.","env, terminal_id, and shell_args need capability screen-terminal-env-v1: the new screen\'s terminal takes them as on new-pane, and the result then also carries terminal_id."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"screen-terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pinned":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"screen_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"shell_args":{"capability":"screen-terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"screen-terminal-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-tab":{"authority":"control","capability":null,"constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1).","terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"new-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"note-size-activity":{"authority":"control","capability":"shared-sizing-v1","constraints":["Requires client capability shared-sizing-v1.","Only explicit input or focus is activity, never hover or visibility."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"constraints":["Relay sub-view of this connection; omitted marks the caller\'s own view."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NoteSizeActivityResult"},"since":12,"stream":null},"notify":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"body":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"level":{"default":"info","nullable":true,"presence":"optional","type":{"kind":"ref","name":"NotificationLevel"}},"source":{"capability":"notification-source-v1","default":"cli","nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"title":{"constraints":[{"min_length":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"NotifyResult"},"since":6,"stream":null},"pairing-response":{"authority":"local-admin","capability":null,"constraints":["The request id must identify a live, unexpired pairing challenge."],"request":{"additional_properties":false,"fields":{"approve":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":7,"stream":null},"pane-neighbor":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"PaneNeighborResult"},"since":6,"stream":null},"paste-image":{"authority":"control","capability":"terminal-image-paste-v1","constraints":["Requires terminal-image-paste-v1 and a current connection-owned attachment lease for the exact public terminal. Begin(mime,size), chunk(offset,data), commit, cancel. No caller-supplied paths. 20 MiB per image; 48 KiB chunks; generated temporary files expire after 600 seconds."],"request":{"additional_properties":false,"fields":{"data":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"lease":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mime":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"op":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"size":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"upload_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"pin-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"ping":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"PingResult"},"since":6,"stream":null},"process-info":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProcessInfoResult"},"since":6,"stream":null},"put-frontend-projection":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent.","Serialized projection must be at most 1048576 bytes."],"fields":{"expected_generation":{"default":null,"description":"Accepted by the current decoder but ignored for projection writes.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_projection_revision":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"description":"Accepted by the current decoder but ignored for projection writes.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"projection":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"schema_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"FrontendProjection"},"since":7,"stream":null},"put-session":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"capabilities":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"follow_with":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"machine_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transport":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"read-screen":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReadScreenResult"},"since":5,"stream":null},"read-scrollback":{"authority":"control","capability":null,"constraints":["PTY surfaces only; row indexes are snapshot-relative and not durable."],"request":{"additional_properties":false,"fields":{"count":{"constraints":[{"maximum":65535,"minimum":0}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReadScrollbackResult"},"since":7,"stream":null},"reattach-view":{"authority":"control","capability":"sizing-view-detach-v1","constraints":["Only a view detached by detach-client can be reattached."],"request":{"additional_properties":false,"fields":{"counts":{"constraints":["false reattaches as a viewer; omitted keeps the counts choice."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReattachViewResult"},"since":12,"stream":null},"register-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["The lease is scoped to the trusted local control connection and is released on disconnect.","The endpoint must be an explicit loopback ws URL with no credentials or fragment.","Bearer authentication is optional and sends the token only in the CDP WebSocket upgrade Authorization header.","Each registration replaces that connection\'s complete target set; target ids are never journaled."],"request":{"additional_properties":false,"fields":{"authentication":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"BrowserProviderAuthentication"}},"bearer_token":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"endpoint":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"provider_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"targets":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BrowserProviderTarget"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderSnapshot"},"since":10,"stream":null},"release-attached-view-size":{"authority":"frontend","capability":"view-attachment-lease-v1","constraints":["The attach stream remains live for cached rendering."],"request":{"additional_properties":false,"fields":{"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewOutcomeResult"},"since":10,"stream":null},"release-surface-size":{"authority":"control","capability":null,"constraints":["An absent lease is a successful no-op."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":7,"stream":null},"reload-config":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"additional_properties":false,"fields":{"path":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"reloaded":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"since":6,"stream":null},"remove-screens-from-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"remove-tabs-from-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"surfaces":{"aliases":["tabs"],"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TabRef"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"groups":{"description":"Ids of the groups the tabs left.","nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"rename-pane":{"authority":"control","capability":null,"constraints":["An empty name clears the pane name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-provider-managed-workspace":{"authority":"provider-authority","capability":"provider-managed-workspace-authority-v2","constraints":["Call only after the external provider durably accepts the rename."],"request":{"additional_properties":false,"constraints":["workspace and key must identify the same live provider-managed workspace."],"fields":{"authority":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ProviderWorkspaceMutationResult"},"since":9,"stream":null},"rename-screen":{"authority":"control","capability":null,"constraints":["An empty name clears the screen name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-surface":{"authority":"control","capability":null,"constraints":["An empty name clears the surface name."],"request":{"additional_properties":false,"fields":{"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"rename-workspace":{"authority":"control","capability":null,"constraints":["Provider-managed workspaces reject this ordinary mutation."],"request":{"additional_properties":false,"constraints":["At least one of workspace and key must be supplied; both must identify the same workspace when supplied.","origin and mutation_id are either both present or both absent."],"fields":{"expected_generation":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"key":{"capability":"workspace-registry-v1","default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"name":{"constraints":[{"max_utf8_bytes":1024}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"WorkspaceMutationResult"},"since":5,"stream":null},"reopen-saved-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"reopen-saved-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"PaneRef"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"report-agent":{"authority":"control","capability":null,"constraints":["A stored hook report outranks later socket reports until another hook report or surface close."],"request":{"additional_properties":false,"fields":{"session":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentReportSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ReportAgentResult"},"since":6,"stream":null},"report-focus":{"authority":"control","capability":"client-focus-v1","constraints":[],"request":{"additional_properties":false,"fields":{"client_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"tab":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":12,"stream":null},"resize-attached-view":{"authority":"frontend","capability":"view-attachment-lease-v1","constraints":["The lease must belong to this connection and surface.","A retired lease returns outcome:superseded without changing replacement views.","With view instead of lease, creates or updates a relay sub-view of this connection."],"request":{"additional_properties":false,"fields":{"cols":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"identity":{"capability":"shared-sizing-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizingIdentity"}},"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"rows":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"capability":"shared-sizing-v1","constraints":["Relay sub-view name, 1-128 printable characters; exactly one of lease or view."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"AttachedViewResizeResult"},"since":10,"stream":null},"resize-surface":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"cols":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"constraints":[{"clamped_maximum":10000,"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ResizeSurfaceResult"},"since":5,"stream":null},"resolve-terminal":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"ResolveTerminalResult"},"since":9,"stream":null},"run":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["Exactly one of argv and command must be supplied.","pane and new_workspace:true are mutually exclusive.","key is valid only with new_workspace:true.","cols and rows affect sizing only when both are present."],"fields":{"argv":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"command":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"key":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"new_workspace":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"RunResult"},"since":6,"stream":null},"save-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"save-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"saved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"stream":null},"scroll-surface":{"authority":"control","capability":null,"constraints":["PTY surfaces only; negative values scroll up."],"request":{"additional_properties":false,"fields":{"delta":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-screen":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-tab":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"select-workspace":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both index and delta are supplied, index wins."],"fields":{"delta":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"int64"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"send":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["When both are present, UTF-8 text bytes precede decoded bytes."],"fields":{"bytes":{"constraints":[{"encoding":"standard base64"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Base64"}},"paste":{"default":false,"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"send-key":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"keys":{"constraints":[{"syntax":"lowercase modifier+key chords"}],"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"server-stats":{"authority":"local-admin","capability":"server-stats-v1","constraints":["Owner-only diagnostics; never journaled and safe to poll."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ServerStatsResult"},"since":12,"stream":null},"set-cell-pixels":{"authority":"frontend","capability":null,"constraints":["Accepted browser resizes complete asynchronously."],"request":{"additional_properties":false,"fields":{"height_px":{"constraints":[{"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"width_px":{"constraints":[{"clamped_minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SetCellPixelsResult"},"since":6,"stream":null},"set-client-info":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"capabilities":{"constraints":["Advertises additive client capabilities for this connection."],"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"device_id":{"capability":"shared-sizing-v1","constraints":["Stable per-install device id; tells two devices of one user apart."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"device_kind":{"capability":"shared-sizing-v1","constraints":["mac, iphone, ipad, tui, browser; anything else is unknown; defaults to kind."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"device_name":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"display_name":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity; defaults to name."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"kind":{"constraints":["Control characters become spaces; at most 64 Unicode characters are retained."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"constraints":["Control characters become spaces; at most 64 Unicode characters are retained."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"capability":"shared-sizing-v1","constraints":["Shared sizing identity asserted by the client; not verified."],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"set-client-sizing":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["exclusive:true requires client and enabled:true.","Omitting client is valid only with enabled:true and restores all clients for the surface."],"fields":{"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"exclusive":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":10,"stream":null},"set-column-dock":{"authority":"control","capability":"dock-columns-v1","constraints":["edge is \\"left\\" or \\"right\\" (default \\"right\\"); mode is \\"docked\\" or \\"overlay\\" (default \\"docked\\"). role is \\"agent_chat\\" with dock-column-role-v1 (default none).","See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"dock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"edge":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mode":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"role":{"capability":"dock-column-role-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-default-colors":{"authority":"control","capability":null,"constraints":["Color strings are exactly #rrggbb.","With complete:true, absent optional values reset to built-in defaults."],"request":{"additional_properties":false,"fields":{"bg":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"complete":{"default":false,"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"cursor":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"CursorStyle"}},"fg":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"palette":{"constraints":["Decimal string keys are palette indexes 0 through 255."],"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"set-frontend-browser-history":{"authority":"control","capability":"frontend-browser-history-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"constraints":["history is a JSON object or null; null clears the stored history.","Serialized history must be at most 65536 bytes."],"fields":{"history":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-personal-terminal":{"authority":"control","capability":"personal-terminals-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-personal-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-profile-follows":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-ratio":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":null},"set-row-heights":{"authority":"control","capability":"rows-v1","constraints":["heights names every row of column exactly once; a stale row set, a height outside 100..1000, or fit with a sum other than 1000 is refused and changes nothing.","transaction is echoed in the result and, as a decimal string, in the screen-changed delta.","See spec/commands.md for the result object and error codes."],"request":{"additional_properties":false,"fields":{"column":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"fit":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"heights":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RowHeight"},"kind":"array"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-screen-metadata":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-screen-pinned":{"authority":"control","capability":"screen-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pinned":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-size-counts":{"authority":"control","capability":"shared-sizing-v1","constraints":["At most one of client, lease, view or participant; none targets the caller\'s own view."],"request":{"additional_properties":false,"fields":{"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"counts":{"constraints":["null clears the override."],"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"lease":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"participant":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetSizeCountsResult"},"since":12,"stream":null},"set-size-policy":{"authority":"control","capability":"shared-sizing-v1","constraints":["Exactly one of surface or workspace."],"request":{"additional_properties":false,"fields":{"policy":{"constraints":["null or omitted clears the override or workspace default."],"nullable":true,"presence":"optional","type":{"kind":"ref","name":"SizePolicy"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SetSizePolicyResult"},"since":12,"stream":null},"set-split-ratio":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"split":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"layout-undo-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":8,"stream":null},"set-tab-pinned":{"authority":"control","capability":"tab-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"pinned":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"set-terminal-command-history":{"authority":"local-admin","capability":"terminal-command-journal-v1","constraints":["Off by default and after a daemon restart.","When on, finished OSC 133 shell commands are journaled as sensitive shell.command.finished records."],"request":{"additional_properties":false,"fields":{"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalCommandHistoryResult"},"since":12,"stream":null},"set-terminal-idle-policy":{"authority":"control","capability":"terminal-idle-close-v1","constraints":["The policy is stored durably with the terminal and survives owner restarts.","The owner closes the terminal, as close-terminal does, once it has had no attached view for idle_close_seconds; unattached time restarts at every attach and after an owner restart."],"request":{"additional_properties":false,"constraints":["Exactly one of surface or terminal_id is present.","A missing or null idle_close_seconds clears the policy, so the terminal is never closed for idleness."],"fields":{"idle_close_seconds":{"constraints":[{"maximum":315360000,"minimum":1}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetTerminalIdlePolicyResult"},"since":12,"stream":null},"set-terminal-keep":{"authority":"control","capability":"terminal-reap-v1","constraints":["The keep flag is stored durably with the terminal and survives owner restarts.","A terminal that is not kept is ended, as close-terminal does, once it has had no tab placement for the owner\'s reap grace period (default 30 seconds); a placement restored within the period cancels it."],"request":{"additional_properties":false,"constraints":["Exactly one of surface or terminal_id is present."],"fields":{"keep":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"surface":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}},"terminal_id":{"constraints":[{"format":"terminal host id (UUIDv4 hex without dashes) or public term_ resource id","pattern":"^(term_)?[0-9a-f]{32}$"}],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SetTerminalKeepResult"},"since":12,"stream":null},"set-viewport-pane-width":{"authority":"control","capability":"viewport-column-resize-v1","constraints":["width must be finite."],"request":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"capability":"layout-undo-v1","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"width":{"constraints":[{"maximum":1.0,"minimum":0.1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":9,"stream":null},"set-window-title":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"title":{"constraints":["C0 controls are sanitized before OSC output."],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"set-workspace-metadata":{"authority":"control","capability":"workspace-metadata-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"expected_revision":{"aliases":["expected_terminal_revision"],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"marked_unread":{"capability":"notification-mark-unread-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pinned":{"capability":"workspace-pin-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"shutdown-daemon":{"authority":"local-admin","capability":null,"constraints":["pid and generation must match the latest identify result.","force bypasses native-browser ownership only; the identity fence and trusted-local authority still apply.","Clients must require daemon-handoff-force-v1 before sending force:true.","end_terminals:true ends every terminal and removes its tabs before the handoff; without it terminal hosts stay alive for the next owner. Clients must require terminal-reap-v1 before sending end_terminals:true.","keep_layout:true (with end_terminals:true) ends every terminal but keeps the tabs of placed terminals, so the next owner shows the same screens, splits and tabs, each dead until a frontend starts a new shell in it; keep_layout without end_terminals is refused. Clients must require end-terminals-keep-layout-v1 before sending keep_layout:true.","The daemon exits only after the success response is queued."],"request":{"additional_properties":false,"fields":{"end_terminals":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"force":{"capability":"daemon-handoff-force-v1","default":false,"nullable":false,"presence":"optional","since":10,"type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"keep_layout":{"capability":"end-terminals-keep-layout-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"result":{"kind":"ref","name":"ShutdownDaemonResult"},"since":9,"stream":null},"sidebar-plugin":{"authority":"frontend","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"relaunch":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"result":{"kind":"ref","name":"SidebarPluginResult"},"since":6,"stream":null},"snapshot-request":{"authority":"frontend","capability":"terminal-snapshot-v1","constraints":["Requires a snapshot attach (attach-surface with snapshot ghostsnp) of the same surface on this connection, else not_attached.","A request while a snapshot is pending collapses into it; at most one requested snapshot per viewer per 500 ms.","Raw v12 form of the terminal channel message snapshot_request (sync-and-transport.md).","reason, when present, is digest_mismatch, gap, generation_mismatch or attach; request_id is at most 128 bytes; otherwise invalid."],"request":{"additional_properties":false,"fields":{"have":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"SnapshotRequestHave"}},"reason":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"request_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"SnapshotRequestResult"},"since":12,"stream":null},"split":{"authority":"control","capability":null,"constraints":["keep:true marks the new terminal kept, so the owner does not end it when it has no tab placement (terminal-reap-v1).","terminal_id names the new terminal\'s host id so a caller can put it in env before the child starts; a malformed or existing id is rejected and nothing is created (terminal-placement-env-v1).","kind \\"browser\\" requires a non-empty url and creates a browser pane at that url; url without kind \\"browser\\", an unknown kind, and cwd, env, keep, terminal_id or shell_args with kind \\"browser\\" are rejected and nothing is created (pane-browser-kind-v1)."],"request":{"additional_properties":false,"constraints":["cols and rows affect sizing only when both are present."],"fields":{"cols":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cwd":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"env":{"capability":"terminal-env-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"keep":{"capability":"terminal-reap-v1","default":false,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"kind":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"ref","name":"PaneKind"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"rows":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"shell_args":{"capability":"terminal-shell-args-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"capability":"terminal-placement-env-v1","constraints":[{"format":"terminal host id (UUIDv4 hex without dashes)","pattern":"^[0-9a-f]{12}4[0-9a-f]{3}[89ab][0-9a-f]{15}$"}],"default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"url":{"capability":"pane-browser-kind-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"SurfaceResult"},"since":5,"stream":null},"subscribe":{"authority":"frontend","capability":null,"constraints":["subscribe sends no initial tree snapshot.","surface filtering occurs before the bounded mailbox."],"request":{"additional_properties":false,"fields":{"surface":{"capability":"surface-subscribe-filter","default":null,"nullable":true,"presence":"optional","since":9,"type":{"kind":"ref","name":"Id"}},"tree_events":{"default":"coarse","nullable":true,"presence":"optional","since":7,"type":{"kind":"enum","values":["coarse","deltas"]}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":5,"stream":{"event_names":["agent-changed","bell","client-attached","client-changed","client-detached","client-list-invalidated","config-reload-requested","empty","frontend-projection-changed","layout-changed","notification","overflow","pairing-requested","pairing-resolved","pane-added","pane-closed","screen-added","screen-closed","screen-renamed","scroll-changed","status","surface-exited","surface-output","surface-resize-failed","surface-resized","tab-added","tab-closed","tab-renamed","terminal-registry-changed","title-changed","tree-changed","window-title-requested","workspace-added","workspace-closed","workspace-moved","workspace-renamed"],"kind":"subscribe","mode_field":"tree_events","modes":{"coarse":["tree-changed"],"deltas":["workspace-added","workspace-closed","workspace-renamed","workspace-moved","screen-added","screen-closed","screen-renamed","pane-added","pane-closed","tab-added","tab-closed","tab-renamed","tree-changed"]},"ordering":"Response and event objects may interleave. Events preserve enqueue order per subscription. Delta workspace revisions are serialized in durable commit order; overflow ends the stream and requires resubscribe plus snapshot.","terminal_event":null}},"subscribe-activity":{"authority":"local-admin","capability":"vm-activity-v1","constraints":["Trusted local (Unix socket) connections only. The Cloud VM agent uses it to report activity for the idle pause (plans/cmux-next/cloud-automation.md 27).","At most 16 subscribers."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"ActivitySubscribeResult"},"since":12,"stream":{"event_names":["activity-changed"],"kind":"subscribe","ordering":"Registration response with the current snapshot, then activity-changed after each change, at most one per second (leading edge plus one trailing event); no replay. Closing the connection ends the subscription.","terminal_event":null}},"swap-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"constraints":["Exactly one of dir and target must be supplied."],"fields":{"dir":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"PaneDirection"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"target":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"EmptyResult"},"since":6,"stream":null},"terminal-clipboard-reply":{"authority":"frontend","capability":"terminal-clipboard-read-v1","constraints":["Private frontend OSC 52 clipboard-read broker; deny by default, no resource or journal mutation. Only the verified cmux app\'s frontend connection (client kind frontend, origin user) may subscribe or reply; every other caller gets origin.forbidden. A request ID is an unguessable, single-use answer capability for the connection that received it. Clipboard text is never logged."],"request":{"additional_properties":false,"fields":{"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"text":{"constraints":["Absent or null refuses the read. Text over 1 MiB (UTF-8 bytes) is refused."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalClipboardReplyResult"},"since":12,"stream":null},"terminal-clipboard-subscribe":{"authority":"frontend","capability":"terminal-clipboard-read-v1","constraints":["Private frontend OSC 52 clipboard-read broker; deny by default, no resource or journal mutation. Only the verified cmux app\'s frontend connection (client kind frontend, origin user) may subscribe or reply; every other caller gets origin.forbidden. A request ID is an unguessable, single-use answer capability for the connection that received it. Clipboard text is never logged."],"request":{"additional_properties":false,"fields":{"terminal_ids":{"constraints":["At most 256 terminal public ids; each must be a valid term_ id. A new subscription replaces the connection\'s previous set."],"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalClipboardSubscribeResult"},"since":12,"stream":{"event_names":["terminal-clipboard-read","terminal-clipboard-read-cancelled"],"kind":"subscribe","ordering":"Registration response followed by targeted read requests and their cancellations; no replay. Closing the connection refuses its open reads.","terminal_event":null}},"terminal-events":{"authority":"control","capability":null,"constraints":["Consumers apply only contiguous revisions for one registry_id and generation."],"request":{"additional_properties":false,"fields":{"after_revision":{"default":0,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalEventsResult"},"since":9,"stream":null},"terminal-history":{"authority":"control","capability":"terminal-snapshot-v1","constraints":["max_bytes defaults to 1048576 and must be 1..=8388608; at least one page is returned when any exists.","A before marker of another marker_epoch or one that left scrollback is range_evicted.","marker_epoch is required: the epoch of the caller\'s markers (from the snapshot event\'s marker_epoch or an earlier reply)."],"request":{"additional_properties":false,"fields":{"before":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max_bytes":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalHistoryPagesResult"},"since":12,"stream":null},"terminal-read-range":{"authority":"control","capability":"terminal-snapshot-v1","constraints":["format is text (default; unwrapped lines joined with newline) or vt.","Rows that left scrollback, or markers of another marker_epoch, answer range_evicted.","max_bytes defaults to 1048576 and must be 1..=8388608; a longer range is cut at a character boundary and answers truncated: true.","marker_epoch is required: the epoch of the caller\'s markers (from the snapshot event\'s marker_epoch or an earlier reply)."],"request":{"additional_properties":false,"fields":{"format":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"from":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RowMarkerPoint"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max_bytes":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"to":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RowMarkerPoint"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalReadRangeResult"},"since":12,"stream":null},"terminal-resources":{"authority":"control","capability":"terminal-resources-v1","constraints":["Omitted or null surfaces means every PTY surface.","Read on request; the daemon keeps no sampler, cache, or timer."],"request":{"additional_properties":false,"fields":{"surfaces":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"TerminalResourcesResult"},"since":12,"stream":null},"undo-layout":{"authority":"control","capability":"layout-undo-v1","constraints":["Clients must reject incomplete or contradictory result variants."],"request":{"additional_properties":false,"constraints":["confirm_close requires the exact preview revision."],"fields":{"confirm_close":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"revision":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"LayoutUndoResult"},"since":9,"stream":null},"ungroup-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"ungroup-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"since":12,"stream":null},"unpin-workspace":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"session_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"unregister-browser-provider":{"authority":"local-admin","capability":"browser-provider-v1","constraints":["Only the calling connection\'s provider lease is removed."],"request":{"additional_properties":false,"fields":{},"kind":"object"},"result":{"kind":"ref","name":"BrowserProviderUnregisterResult"},"since":10,"stream":null},"unsave-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"unsave-tab-group":{"authority":"control","capability":"saved-tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"additional_properties":true,"fields":{"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"unsaved":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"since":12,"stream":null},"update-bookmark":{"authority":"control","capability":"bookmarks-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"favicon_key":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"last_used_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"BookmarkChangeResult"},"since":12,"stream":null},"update-browser-profile":{"authority":"control","capability":"browser-profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-frontend-browser-tab":{"authority":"control","capability":"frontend-browser-tabs-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"favicon_url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-personal-group":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-profile":{"authority":"control","capability":"profiles-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"browser_profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"default_session_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"defaults":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"icon":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"profile":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"theme":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-screen-group":{"authority":"control","capability":"screen-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"update-tab-group":{"authority":"control","capability":"tab-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"TabGroupOutcome"},"since":12,"stream":null},"update-workspace-group":{"authority":"control","capability":"workspace-groups-v1","constraints":["See spec/commands.md for the result object."],"request":{"additional_properties":false,"fields":{"collapsed":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"color":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"group":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"JsonValue"},"since":12,"stream":null},"url-open":{"authority":"local-admin","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlOpenResult"},"since":12,"stream":null},"url-open-claim":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlClaimResult"},"since":12,"stream":null},"url-open-result":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"opened":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlAcknowledgeResult"},"since":12,"stream":null},"url-open-subscribe":{"authority":"frontend","capability":null,"constraints":["Private frontend URL delivery; no resource or journal mutation. HTTP(S) only, exact projected terminal identity, 16 pending requests maximum, five-second expiry. A request ID is an ephemeral acknowledgement capability."],"request":{"additional_properties":false,"fields":{"terminal_ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"result":{"kind":"ref","name":"GuestUrlSubscribeResult"},"since":12,"stream":{"event_names":["url-open"],"kind":"subscribe","ordering":"Registration response followed by targeted requests; no replay. Closing the connection rejects its pending requests.","terminal_event":null}},"vt-state":{"authority":"control","capability":null,"constraints":["PTY surfaces only."],"request":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"VtStateResult"},"since":5,"stream":null},"wait-for":{"authority":"control","capability":null,"constraints":["Blocks subsequent requests on this connection; SDKs should use a dedicated connection."],"request":{"additional_properties":false,"fields":{"pattern":{"constraints":[{"syntax":"Rust regex"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"timeout_ms":{"description":"Zero performs one immediate check.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"result":{"kind":"ref","name":"WaitForResult"},"since":6,"stream":null},"zoom-pane":{"authority":"control","capability":null,"constraints":[],"request":{"additional_properties":false,"fields":{"mode":{"default":"toggle","nullable":true,"presence":"optional","type":{"kind":"enum","values":["toggle","on","off"]}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"result":{"kind":"ref","name":"ZoomPaneResult"},"since":6,"stream":null}},"events":{"activity-changed":{"capability":"vm-activity-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"activity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ActivitySnapshot"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"activity-changed"}}},"kind":"object"},"since":12,"streams":["control"]},"agent-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"agent":{"description":"Adapter identity when the producer knows it; absent from protocol-11 event senders and null when no adapter was identified.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"agent-changed"}},"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":11,"streams":["subscribe"]},"bell":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"bell"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"bookmarks-changed":{"capability":"bookmarks-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"bookmarks_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"bookmarks-changed"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"browser-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"browser-state"}},"frame":{"description":"The initial browser-state includes the latest frame when one exists; later state updates omit it.","nullable":true,"presence":"optional","type":{"kind":"ref","name":"BrowserFrame"}},"frames_stalled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"status":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["starting","live","failed"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["attach-browser"]},"client-attached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-attached"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"transport":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["unix","ws"]}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-changed"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-detached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-detached"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"client-list-invalidated":{"capability":null,"emission":"serialized-never-emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"client-list-invalidated"}}},"kind":"object"},"since":9,"streams":["subscribe"]},"cloud-conversation-changed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"change":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-conversation-changed"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-conversation-resynced":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-conversation-resynced"}},"messages":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"summary":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-inbox-changed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"entries":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-inbox-changed"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-inbox-reset":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-inbox-reset"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-session-needed":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-session-needed"}},"expires_at":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"reason":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"cloud-subscription-state":{"capability":"cloud-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"account":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cloud-subscription-state"}},"reason":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"colors-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"nullable":true,"presence":"optional","type":{"kind":"ref","name":"CursorStyle"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"colors-changed"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"overrides":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"TerminalColorOverrides"}},"palette":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"surface":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["attach-byte"]},"config-reload-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"config-reload-requested"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"conversation-changed":{"capability":"local-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"change":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"conversation-changed"}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"transaction":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"conversation-typing":{"capability":"local-conversations-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"conversation-typing"}},"on":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"daemon-shutdown":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"daemon-shutdown"}}},"kind":"object"},"since":12,"streams":["control"]},"detached":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"by":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"SizeDetachActor"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"detached"}},"reason":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"DetachReason"}},"scope":{"constraints":["\\"view\\" when only the client\'s own view was detached; the connection stays."],"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"view":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["attach-byte","attach-render","attach-browser"]},"empty":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"empty"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"frame":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"frame"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"since":6,"streams":["attach-browser"]},"frontend-projection-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"frontend-projection-changed"}},"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"projection_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"graphics-status":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["kitty-image-budget-worker-start-failed carries error.","kitty-image-budget-update-failed carries retry_exhausted and summary.","cell-pixel-update-retries-exhausted carries attempts, remaining, cell_width, and cell_height."],"fields":{"attempts":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cell_height":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"cell_width":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"graphics-status"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["kitty-image-budget-worker-start-failed","kitty-image-budget-update-failed","cell-pixel-update-retries-exhausted"]}},"remaining":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"retry_exhausted":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"summary":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":10,"streams":["subscribe"]},"layout-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"layout-changed"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"machine-usage-changed":{"capability":"machine-usage-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"machine-usage-changed"}},"usage":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"MachineUsage"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"notification":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"body":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"notification"}},"level":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"NotificationLevel"}},"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"source":{"capability":"notification-source-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe","attach-byte","attach-browser"]},"output":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"colors":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"TerminalColors"}},"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"output"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["attach-byte"]},"overflow":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["scope and surface are either both present for attach overflow or both absent for subscribe overflow."],"fields":{"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"overflow"}},"scope":{"nullable":false,"presence":"optional","type":{"kind":"literal","value":"surface"}},"surface":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe","attach-byte","attach-render","attach-browser"]},"pairing-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pairing-requested"}},"expires_in":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"peer":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"pairing-resolved":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pairing-resolved"}},"request":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"pane-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Pane"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pane-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"pane-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Pane"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"pane-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"personal-changed":{"capability":"profiles-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"personal-changed"}},"personal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"render-delta":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["size is present if and only if the surface resized; every resize has full:true."],"fields":{"cursor":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderCursor"}},"default_bg":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"default_fg":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ColorHex"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"render-delta"}},"full":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"graphics":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderGraphicsDelta"}},"history_epoch":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"scrollback_rows":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"size":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Size"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["attach-render"]},"render-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cursor":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderCursor"}},"default_bg":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"default_fg":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"render-state"}},"graphics":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderGraphics"}},"history_epoch":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"scrollback_rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"size":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Size"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["attach-render"]},"resized":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["At least one of replay and data is present; replay is canonical from protocol 7."],"fields":{"colors":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"TerminalColors"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"description":"Protocol 6 compatibility field.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"resized"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"replay":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"ref","name":"Base64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["attach-byte"]},"screen-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"screen-changed":{"capability":"screen-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-changed"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"screen-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"screen-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Screen"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"screen-renamed"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"scroll-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"at_bottom":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"scroll-changed"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":6,"streams":["subscribe","attach-byte","attach-render","attach-browser"]},"size-state":{"capability":"shared-sizing-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"size-state"}},"self_participant":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe","attach-byte","attach-render"]},"status":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"status"}},"message":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-exited":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-exited"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-output":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-output"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"surface-resize-failed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-resize-failed"}},"reservation_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"retry_after_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe"]},"surface-resized":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"surface-resized"}},"reservation_id":{"nullable":true,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"tab-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-added"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"tab-changed":{"capability":"tab-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-changed"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"transaction":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"tab-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-closed"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"tab-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Tab"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tab-renamed"}},"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"terminal-clipboard-read":{"capability":"terminal-clipboard-read-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-clipboard-read"}},"host":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardHost"}},"location":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardLocation"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"terminal-clipboard-read-cancelled":{"capability":"terminal-clipboard-read-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-clipboard-read-cancelled"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"terminal-reaped":{"capability":"terminal-reap-v1","emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-reaped"}},"grace_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["subscribe"]},"terminal-registry-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-registry-changed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"refetch":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"terminal-events-or-list-terminals"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":9,"streams":["subscribe"]},"title-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"title-changed"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"title":{"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"tree-changed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"tree-changed"}}},"kind":"object"},"since":5,"streams":["subscribe"]},"url-open":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"url-open"}},"request_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":12,"streams":["control"]},"vt-state":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"colors":{"nullable":false,"presence":"optional","since":6,"type":{"kind":"ref","name":"TerminalColors"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"vt-state"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"since":5,"streams":["attach-byte"]},"window-title-requested":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"fields":{"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"window-title-requested"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"since":6,"streams":["subscribe"]},"workspace-added":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-added"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-changed":{"capability":"workspace-metadata-v1","emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-changed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":12,"streams":["subscribe-deltas"]},"workspace-closed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-closed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-moved":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-moved"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]},"workspace-renamed":{"capability":null,"emission":"emitted","payload":{"additional_properties":false,"constraints":["origin and mutation_id are either both present or both absent."],"fields":{"entity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Workspace"}},"event":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"workspace-renamed"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"since":7,"streams":["subscribe-deltas"]}},"ir_sha256":"df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa","profiles":{"control":{"description":"Base authenticated session-control commands available to ordinary SDK clients.","inherits":[]},"frontend":{"description":"Rendering, input, presentation, subscribe, and attach commands.","inherits":["control"]},"local-admin":{"description":"Trusted local administration commands.","inherits":["control"],"transport":"Unix-classified transport, including direct Unix and the current stdio relay"},"provider-authority":{"description":"Provider-owned workspace mutation commands.","inherits":["control"],"requires_authority":true}},"protocol":{"id_type":"uint64","javascript_id_policy":"All protocol identifiers are uint64 JSON numbers. JavaScript and TypeScript SDKs must decode them losslessly as bigint (or validated decimal strings at their public boundary), and must not expose IEEE-754 number ids. Pairing request ids, revisions, timestamps, frame sequences, and reservation ids follow the same rule.","name":"cmux-tui-mux","version":12},"schema_version":2,"types":{"ActivitySnapshot":{"additional_properties":false,"constraints":["attached_clients counts attached connections whose set-client-info kind is tui, web, mac or frontend (a person\'s client); automation connections never count.","live_agents counts agents whose state is working or blocked.","last_user_input_at_ms is the wall-clock time of the newest keyboard, paste or mouse input from an attached client; null until the first.","last_agent_action_at_ms is the wall-clock time of the newest agent hook commit or agent state report; null until the first.","Times and counts only: no content and no surface ids."],"fields":{"attached_clients":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"last_agent_action_at_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"last_user_input_at_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"live_agents":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ActivitySubscribeResult":{"additional_properties":false,"fields":{"activity":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ActivitySnapshot"}}},"kind":"object"},"AgentRecord":{"additional_properties":false,"fields":{"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"AgentReportSource":{"kind":"enum","values":["socket","hook"]},"AgentSessionSource":{"additional_properties":false,"fields":{"harness":{"default":null,"description":"The agent kind the chat was started with.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"host":{"description":"install: and the stable install id of the machine whose acpmux runs the session.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"host_name":{"default":null,"description":"Display name of the host machine: 1 to 255 bytes, no control characters.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session":{"default":null,"description":"The acpmux session id; null for a new chat until bind-conversation-tab-session.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"AgentSource":{"kind":"enum","values":["plugin","detected","socket","hook"]},"AgentState":{"kind":"enum","values":["working","blocked","idle","done","unknown"]},"AppliedPane":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ApplyLayoutResult":{"additional_properties":false,"fields":{"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"AppliedPane"},"kind":"array"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"AttachedViewOutcomeResult":{"additional_properties":false,"fields":{"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}}},"kind":"object"},"AttachedViewResizeResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}},"participant":{"capability":"shared-sizing-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"reservation_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"Base64":{"kind":"alias","target":{"kind":"scalar","name":"string"}},"Bookmark":{"additional_properties":true,"fields":{"browser_profile_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"favicon_key":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"id":{"description":"`bm_` and 32 lowercase hex digits.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"description":"Dense 0-based position among the node\'s siblings.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"description":"Known values: url, folder. Other values are future kinds.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"last_used_ms":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"parent":{"description":"`bar`, `other`, or a folder\'s id.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"source_key":{"description":"Folders only.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"description":"url nodes.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BookmarkChangeResult":{"additional_properties":true,"fields":{"bookmark":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Bookmark"}},"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"BookmarkImportNode":{"additional_properties":false,"fields":{"children":{"description":"A folder\'s nodes.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"BookmarkImportNode"},"kind":"array"}},"created_ms":{"description":"Defaults to now.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"kind":{"description":"url or folder.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"url":{"description":"Required for a url node; refused for a folder.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserFrame":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"BrowserHostProviderResult":{"additional_properties":false,"fields":{"host_pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"listener_pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"secret":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"socket":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserProviderAuthentication":{"kind":"enum","values":["none","bearer"]},"BrowserProviderSnapshot":{"additional_properties":false,"constraints":["available is true exactly when provider_id, endpoint, authentication, and clients are present.","Provider bearer tokens are accepted only during registration and are never returned."],"fields":{"authentication":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"BrowserProviderAuthentication"}},"available":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"clients":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"endpoint":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"provider_id":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"targets":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"BrowserProviderTarget"},"kind":"array"}}},"kind":"object"},"BrowserProviderTarget":{"additional_properties":false,"fields":{"tab_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"target_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"BrowserProviderUnregisterResult":{"additional_properties":false,"fields":{"removed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"CellPixelFailure":{"additional_properties":false,"fields":{"error":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"CellPixelResize":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"reservation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"CellPixelSurface":{"additional_properties":false,"fields":{"height_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"width_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"ClientInfo":{"additional_properties":false,"fields":{"attached":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"client":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"connected_seconds":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"kind":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"self":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"sizes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ClientSize"},"kind":"array"}},"transport":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ClientTransport"}}},"kind":"object"},"ClientSize":{"additional_properties":false,"fields":{"cols":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"size_participating":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ClientTransport":{"kind":"enum","values":["local","unix","ws"]},"CloseReason":{"kind":"enum","values":["session_end"]},"CloseTerminalResult":{"additional_properties":false,"fields":{"already_closed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"closed":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ColorHex":{"kind":"alias","target":{"kind":"scalar","name":"string"}},"ColumnPin":{"additional_properties":false,"fields":{"edge":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mode":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"role":{"capability":"dock-column-role-v1","default":null,"nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationChange":{"additional_properties":true,"fields":{"conversation":{"description":"kind conversation.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationSummary"}},"kind":{"description":"Known values: message and message-updated (message), read-cursor (participant, seq), conversation (conversation). A change of another kind keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"message":{"description":"kind message or message-updated.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationMessage"}},"participant":{"description":"kind read-cursor.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"seq":{"description":"kind read-cursor.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ConversationImportMessage":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_msg_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"parts":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationPart"},"kind":"array"}}},"kind":"object"},"ConversationMessage":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"client_msg_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"edited_at":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"parts":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationPart"},"kind":"array"}},"reactions":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationReaction"},"kind":"array"}},"reply_to":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationPartRef"}},"retracted_at":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ConversationPart":{"additional_properties":true,"fields":{"host":{"description":"type work.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"preview":{"description":"type work: the reply preview (a string). type attachment (local-attachments-v1): an image\'s preview object {hash, mime_type, byte_count}.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"JsonValue"}},"runs":{"description":"type text.","nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"ConversationTextRun"},"kind":"array"}},"session":{"description":"type work.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"status":{"description":"type work. Known values: running, done, failed, waiting.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"text":{"description":"type text.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"type":{"description":"Known values: text (text, runs), work (session, host, status, preview) and, with local-attachments-v1, attachment (hash, name, mime_type, byte_count, width, height, duration_ms, poster, preview; see spec/commands.md). A part of another type keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationPartRef":{"additional_properties":false,"fields":{"message_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"part_index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ConversationParticipant":{"additional_properties":false,"fields":{"acp_session":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"agent_class":{"description":"Known values: mux, agent. Other values are future classes.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"description":"Known values: human, agent. Other values are future kinds.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationReaction":{"additional_properties":false,"fields":{"at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ConversationReactionKind"}},"part_index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ConversationReactionKind":{"additional_properties":true,"fields":{"emoji":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tapback":{"description":"Known values: love, like, dislike, laugh, emphasize, question.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationSearchHit":{"additional_properties":false,"fields":{"author":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"conversation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"message_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"snippet":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationSummary":{"additional_properties":false,"fields":{"created_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"last_message":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"ConversationMessage"}},"last_seq":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"owner":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"participants":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ConversationParticipant"},"kind":"array"}},"read_cursors":{"nullable":false,"presence":"required","type":{"kind":"map","values":{"kind":"scalar","name":"uint64"}}},"rev":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"updated_at":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationTabRecord":{"additional_properties":false,"fields":{"agent_session":{"capability":"agent-session-tabs-v1","description":"Agent session source (agent-session-tabs-v1); exclusive with the other sources.","nullable":false,"presence":"optional","type":{"kind":"ref","name":"AgentSessionSource"}},"conversation":{"description":"Conversation source: a conv_ id, with owner.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"owner":{"description":"Conversation source: local or cloud.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"page":{"capability":"page-tabs-v1","description":"Page source (page-tabs-v1): the id of one of the app\'s own pages; exclusive with the other sources.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ConversationTextRun":{"additional_properties":false,"fields":{"length":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"link":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"mention":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"CopyResult":{"additional_properties":false,"fields":{"mode":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["screen","selection","scrollback"]}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"CursorStyle":{"kind":"enum","values":["block","underline","bar"]},"DeadPane":{"additional_properties":false,"fields":{"dead":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"DeclarativeLayout":{"kind":"tagged_union","tag":"type","variants":{"leaf":{"additional_properties":false,"fields":{"command":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array","min_items":1}},"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"leaf"}}},"kind":"object"},"split":{"additional_properties":false,"fields":{"a":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"b":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"DeclarativeLayout"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"ratio":{"constraints":[{"clamped_maximum":0.95,"clamped_minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"split"}}},"kind":"object"},"stack":{"additional_properties":false,"fields":{"expanded":{"constraints":["Must identify a member of panes."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array","min_items":1}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"stack"}}},"kind":"object"}}},"DetachClientTarget":{"kind":"opaque_json","reason":"A uint64 client id or a shared-sizing participant id string."},"DetachReason":{"kind":"enum","values":["network","disconnected-by","host-shutdown","superseded"]},"EmptyResult":{"additional_properties":false,"fields":{},"kind":"object"},"ExportLayoutResult":{"additional_properties":false,"fields":{"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ExportedPane"},"kind":"array"}}},"kind":"object"},"ExportedPane":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"FocusDirectionResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"FrontendFocusTarget":{"kind":"enum","values":["pane","machine_rail","workspace_rail","tabs_rail","projection_rail"]},"FrontendJournalEvent":{"kind":"tagged_union","tag":"kind","variants":{"focus":{"additional_properties":false,"fields":{"content_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"focus"}},"pane_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tab_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"target":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"FrontendFocusTarget"}},"workspace_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"resize":{"additional_properties":false,"fields":{"cell_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"cell_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"resize"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"viewport":{"additional_properties":false,"fields":{"event_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"frontend_projection_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"viewport"}},"offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"settled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"target":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"}}},"FrontendProjection":{"additional_properties":false,"fields":{"frontend":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"projection":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"projection_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"replayed":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"schema_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"scope":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"subject_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"GetCellPixelsResult":{"additional_properties":false,"fields":{"height_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelSurface"},"kind":"array"}},"width_px":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"GetSizeStateResult":{"additional_properties":false,"fields":{"self_participant":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"GuestUrlAcknowledgeResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlClaimResult":{"additional_properties":false,"fields":{"claimed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlOpenResult":{"additional_properties":false,"fields":{"opened":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"GuestUrlSubscribeResult":{"additional_properties":false,"fields":{"url_open_ready":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"Id":{"kind":"alias","target":{"kind":"scalar","name":"uint64"}},"IdMapping":{"additional_properties":false,"fields":{"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["workspace","screen","pane","surface"]}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"IdentifyResult":{"additional_properties":false,"fields":{"app":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"cmux-tui"}},"build_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"capabilities":{"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"daemon_handoff":{"nullable":false,"presence":"required","since":9,"type":{"kind":"literal","value":1}},"generation":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"string"}},"ghostty_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"launch_snapshot_path":{"capability":"launch-snapshot-v1","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"lifecycle_ready":{"default":true,"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"machine_name":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"protocol":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"registry_id":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"string"}},"session":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"session_id":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","since":9,"type":{"kind":"scalar","name":"uint64"}},"version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_revision":{"nullable":false,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"IdsResult":{"additional_properties":false,"fields":{"ids":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"IdMapping"},"kind":"array"}}},"kind":"object"},"JsonValue":{"kind":"opaque_json","reason":"The wire field intentionally carries a frontend-authored or runtime-authored arbitrary JSON document."},"KittyGraphicsState":{"additional_properties":false,"fields":{"alternate_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"alternate_replay_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"inflight_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"placements":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"primary_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"primary_replay_next_image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"replay_cursor_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"KittyImageAlias":{"additional_properties":false,"fields":{"image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_number":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"Layout":{"kind":"tagged_union","tag":"type","variants":{"leaf":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"leaf"}}},"kind":"object"},"split":{"additional_properties":false,"fields":{"a":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"b":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"dir":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SplitDirection"}},"ratio":{"constraints":[{"maximum":0.95,"minimum":0.05}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float32"}},"split":{"description":"Stable for the lifetime of this split node.","nullable":false,"presence":"optional","since":8,"type":{"kind":"ref","name":"Id"}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"split"}}},"kind":"object"},"stack":{"additional_properties":false,"fields":{"expanded":{"constraints":["Must identify a member of panes."],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array","min_items":1}},"type":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"stack"}}},"kind":"object"}}},"LayoutUndoConfirmationRequired":{"additional_properties":false,"fields":{"closes_panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"confirmation_required":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"undone":{"nullable":false,"presence":"required","type":{"kind":"literal","value":false}}},"kind":"object"},"LayoutUndoResult":{"kind":"untagged_union","variants":[{"kind":"ref","name":"LayoutUndoUndone"},{"kind":"ref","name":"LayoutUndoConfirmationRequired"}]},"LayoutUndoUndone":{"additional_properties":false,"fields":{"confirmation_required":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"literal","value":false}},"revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"screen":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"undone":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}}},"kind":"object"},"ListAgentsResult":{"additional_properties":false,"fields":{"agents":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"AgentRecord"},"kind":"array"}}},"kind":"object"},"ListTerminalsResult":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminals":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalRecord"},"kind":"array"}}},"kind":"object"},"LivePane":{"additional_properties":false,"fields":{"active_tab":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"focused_at":{"default":0,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"tabs":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Tab"},"kind":"array"}}},"kind":"object"},"MachineListeningTcpResult":{"additional_properties":false,"constraints":["The daemon runs only a fixed socket-listing command; callers cannot supply command text.","The output is limited to 524288 bytes."],"fields":{"stdout":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"MachineUsage":{"additional_properties":false,"constraints":["period_days is the trailing window length in days.","api_equivalent_usd is the list-price equivalent of the machine\'s model traffic in that window."],"fields":{"api_equivalent_usd":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"float64"}},"as_of":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"period_days":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"total_tokens":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"vm_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"MachineUsageResult":{"additional_properties":false,"constraints":["usage is null when the daemon has no readout (not a Cloud VM, endpoint unavailable, or usage not ready)."],"fields":{"usage":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"MachineUsage"}}},"kind":"object"},"MintTerminalRendererResult":{"additional_properties":false,"fields":{"endpoint":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"incarnation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"protocol_version":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"uint16"}},"rights":{"constraints":[{"current_value":7}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"supports_viewer_size_priority":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"scalar","name":"boolean"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"token":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"ttl_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"MoveTerminalResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NewRowResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"transaction":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NoteSizeActivityResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"NotificationLevel":{"kind":"enum","values":["info","warning","error"]},"NotificationMarker":{"additional_properties":false,"fields":{"level":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"NotificationLevel"}},"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"source":{"capability":"notification-source-v1","nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"NotificationSource"}},"unread":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"NotificationSource":{"kind":"enum","values":["cli","terminal","agent","daemon"]},"NotifyResult":{"additional_properties":false,"fields":{"notification":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"Pane":{"kind":"untagged_union","variants":[{"kind":"ref","name":"LivePane"},{"kind":"ref","name":"DeadPane"}]},"PaneDirection":{"kind":"enum","values":["left","right","up","down"]},"PaneKind":{"kind":"enum","values":["pty","browser"]},"PaneNeighborResult":{"additional_properties":false,"fields":{"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"PaneRef":{"kind":"opaque_json","reason":"A pane named by its numeric id or its public pane_ id."},"PingResult":{"additional_properties":false,"fields":{"build_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"ghostty_commit":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"ok":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"protocol":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ProcessInfoResult":{"additional_properties":false,"fields":{"command":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"cwd":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"foreground_cwd":{"description":"Working directory of the process group that owns the PTY, read at request time. Null when the lookup fails; absent from daemons that predate the field. Clients treat absence as null.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"foreground_executable":{"description":"Executable path or name of the PTY foreground process-group leader, read at request time. Null when the lookup fails; absent from daemons that predate the field. Clients treat absence as null.","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"string"}},"pid":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ProviderWorkspaceMutationResult":{"additional_properties":false,"fields":{"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ReadScreenResult":{"additional_properties":false,"fields":{"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ReadScrollbackResult":{"additional_properties":false,"fields":{"epoch":{"nullable":false,"presence":"required","since":10,"type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRow"},"kind":"array"}},"start":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"total":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"ReattachViewResult":{"additional_properties":false,"fields":{"participant":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"RenderCursor":{"additional_properties":false,"fields":{"blink":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"style":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"CursorStyle"}},"visible":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"x":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"y":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"RenderGraphicFormat":{"kind":"enum","values":["rgb","rgba"]},"RenderGraphicImage":{"additional_properties":false,"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"format":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"RenderGraphicFormat"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"RenderGraphicPlacement":{"additional_properties":false,"fields":{"anchor_col":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}},"anchor_row":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint32"}},"columns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"grid_cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"grid_rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"image_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"ordinal":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"pixel_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"pixel_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"placement_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_height":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_width":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_x":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"source_y":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"viewport_col":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"viewport_row":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"viewport_visible":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"x_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"y_offset":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"z":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}}},"kind":"object"},"RenderGraphics":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicImage"},"kind":"array"}},"placements":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderGraphicPlacement"},"kind":"array"}},"removed_image_ids":{"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"uint32"},"kind":"array"}}},"kind":"object"},"RenderGraphicsDelta":{"additional_properties":false,"fields":{"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"images":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicImage"},"kind":"array"}},"placements":{"nullable":false,"presence":"optional","type":{"items":{"kind":"ref","name":"RenderGraphicPlacement"},"kind":"array"}},"removed_image_ids":{"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"uint32"},"kind":"array"}}},"kind":"object"},"RenderRow":{"additional_properties":false,"fields":{"row":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"runs":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"RenderRun"},"kind":"array"}}},"kind":"object"},"RenderRun":{"additional_properties":false,"fields":{"attrs":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"underline":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"RenderUnderline"}},"width_hint":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"RenderUnderline":{"kind":"enum","values":["single","double","curly","dotted","dashed"]},"ReportAgentResult":{"additional_properties":false,"fields":{"session":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"source":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentReportSource"}},"state":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"AgentState"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ResizeSurfaceResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"reservation_id":{"nullable":true,"presence":"required","since":7,"type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ResolveTerminalResult":{"additional_properties":false,"fields":{"exit":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalExit"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"launch_spec":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ResourceSelectors":{"additional_properties":false,"fields":{"agent":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"browser":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"client":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"frontend_projection":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"machine":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"notification":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pairing_request":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"pane":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"screen":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"session":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"sidebar_view":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"split":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"stream":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"tab":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"workspace":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"RowHeight":{"additional_properties":false,"fields":{"height":{"constraints":[{"maximum":1000,"minimum":100}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"row":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"RowMarkerPoint":{"additional_properties":false,"constraints":["row_marker is a host row marker of the primary screen (terminal-history page markers)."],"fields":{"col":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"row_marker":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"RunResult":{"additional_properties":false,"fields":{"already_exited":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"boolean"}},"exit":{"nullable":true,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalExit"}},"lifecycle":{"nullable":false,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"SavedTabGroupMember":{"additional_properties":true,"fields":{"cwd":{"description":"kind terminal.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"engine":{"description":"kind browser. Known values: webkit, cef.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"kind":{"description":"Known values: terminal (terminal_id, cwd, title) and browser (url, engine, profile_id, title). A member of another kind keeps its fields in the additional properties.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile_id":{"description":"kind browser.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"terminal_id":{"description":"kind terminal.","nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"title":{"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"description":"kind browser.","nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SavedTabGroupRecord":{"additional_properties":true,"fields":{"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"members":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SavedTabGroupMember"},"kind":"array"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"room":{"description":"The room whose bar shows the saved group (`default` for groups saved by these commands).","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"updated_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"Screen":{"additional_properties":false,"fields":{"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"active_pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"layout":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Layout"}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"panes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Pane"},"kind":"array"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"zoomed_pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"ServerStatsConnections":{"additional_properties":false,"constraints":["refused counts sockets dropped at limit; for hook producers each one is a lost event."],"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"limit":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"peak":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"refused":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsHistogram":{"additional_properties":false,"constraints":["Percentiles are log-linear bucket upper bounds and overestimate the true sample by at most 25%.","Latency histograms are in microseconds; batch_size counts events."],"fields":{"count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"max":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"mean":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p50":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p90":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"p99":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsJournalWriter":{"additional_properties":false,"constraints":["commit_us excludes lock wait; commit_lock_wait_us is the writer waiting for the registry lock.","terminal_queued and durable_queued are live lane depths."],"fields":{"batch_size":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"batches":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"commit_failures":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"commit_lock_wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"commit_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"deadline_expiries":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"durable_events":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"durable_queued":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"phase":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsWriterPhase"}},"phase_for_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"receipt_wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"terminal_events":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal_queued":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsLockHolder":{"additional_properties":false,"constraints":["site is the file:line that acquired the registry lock."],"fields":{"held_for_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"site":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsLockSite":{"additional_properties":false,"constraints":[],"fields":{"acquisitions":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_max_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_total_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"site":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsLockStall":{"additional_properties":false,"constraints":["blocker is the site holding the lock when the waiter\'s wait began, or null when it was free."],"fields":{"blocker":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"waited_us":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"waiter":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ServerStatsRegistryLock":{"additional_properties":false,"constraints":["contended_acquisitions counts waits of at least 1 ms; stalls counts waits of at least 100 ms.","top_sites is ordered by hold_total_us descending and holds at most eight entries."],"fields":{"contended_acquisitions":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"hold_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}},"holder":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsLockHolder"}},"last_stall":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsLockStall"}},"stalls":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"top_sites":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"ServerStatsLockSite"},"kind":"array"}},"wait_us":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsHistogram"}}},"kind":"object"},"ServerStatsResult":{"additional_properties":false,"constraints":["schema is 1.","journal_writer is null for ephemeral sessions without a durable journal.","Counters accumulate since daemon start; reading them never touches SQLite or the journal."],"fields":{"connections":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsConnections"}},"journal_writer":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ServerStatsJournalWriter"}},"registry_lock":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ServerStatsRegistryLock"}},"schema":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"uptime_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ServerStatsWriterPhase":{"kind":"enum","values":["idle","waiting_lock","committing"]},"SetCellPixelsResult":{"additional_properties":false,"fields":{"failures":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelFailure"},"kind":"array"}},"resizes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"CellPixelResize"},"kind":"array"}}},"kind":"object"},"SetSizeCountsResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"ViewAttachmentOutcome"}},"participant":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SetSizePolicyResult":{"additional_properties":false,"fields":{"state":{"constraints":["Present for a surface policy."],"nullable":false,"presence":"optional","type":{"kind":"ref","name":"SizeState"}}},"kind":"object"},"SetTerminalIdlePolicyResult":{"additional_properties":false,"fields":{"idle_close_seconds":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SetTerminalKeepResult":{"additional_properties":false,"fields":{"keep":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"ShutdownDaemonResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"ended_terminals":{"capability":"terminal-reap-v1","nullable":true,"presence":"optional","since":12,"type":{"kind":"scalar","name":"uint64"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"SidebarPluginResult":{"additional_properties":false,"fields":{"error":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"retry_after_ms":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"Size":{"additional_properties":false,"fields":{"cols":{"constraints":[{"maximum":10000,"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"rows":{"constraints":[{"maximum":10000,"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SizeDetachActor":{"additional_properties":false,"fields":{"device_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SizeDeviceKind":{"kind":"enum","values":["mac","iphone","ipad","tui","browser","unknown"]},"SizeMode":{"kind":"enum","values":["latest","smallest","largest","priority","fixed"]},"SizeParticipant":{"additional_properties":false,"fields":{"counts":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"counts_override":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"device_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"device_kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeDeviceKind"}},"device_name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"display_name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"priority_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"user_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"via":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"viewport":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Size"}}},"kind":"object"},"SizePolicy":{"additional_properties":false,"fields":{"fixed":{"constraints":["Grid used by mode fixed; clamped to at least 2 x 1."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"Size"}},"mode":{"default":"latest","nullable":false,"presence":"optional","type":{"kind":"ref","name":"SizeMode"}},"priority":{"constraints":["Priority keys `/`, highest first."],"default":[],"nullable":false,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}}},"kind":"object"},"SizeReason":{"kind":"enum","values":["latest","smallest","largest","priority","fixed","held","priority-fallback"]},"SizeState":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"owners":{"nullable":false,"presence":"required","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"participants":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"SizeParticipant"},"kind":"array"}},"policy":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizePolicy"}},"reason":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"SizeReason"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SizingIdentity":{"additional_properties":false,"fields":{"device_id":{"constraints":["Stable per-install device id; tells two devices of one user apart."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"device_kind":{"constraints":["mac, iphone, ipad, tui, browser; anything else is unknown."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"device_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"display_name":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"user_id":{"constraints":["Asserted by the client; the daemon does not verify it."],"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SnapshotRequestHave":{"additional_properties":false,"constraints":["The snapshot state the viewer holds; a snapshot_version other than the host\'s is unsupported_version."],"fields":{"generation":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"offset":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"snapshot_version":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"SnapshotRequestResult":{"additional_properties":false,"constraints":["accepted: the viewer\'s next attach event is a READY snapshot. collapsed: a snapshot is already pending and answers this request. snapshot_throttled: the viewer got a snapshot less than 500 ms ago; retry after retry_after_ms. Every status echoes request_id."],"fields":{"reason":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"request_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"retry_after_ms":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"status":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["accepted","collapsed","snapshot_throttled"]}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"SplitDirection":{"kind":"enum","values":["right","down"]},"SplitRespawn":{"additional_properties":false,"fields":{"cwd":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"engine":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"env":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"map","values":{"kind":"scalar","name":"string"}}},"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"profile_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"shell_args":{"default":null,"nullable":true,"presence":"optional","type":{"items":{"kind":"scalar","name":"string"},"kind":"array"}},"terminal_id":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"url":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"SurfaceResult":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"Tab":{"additional_properties":false,"fields":{"browser_error":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"browser_frames_stalled":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"boolean"}},"browser_source":{"nullable":true,"presence":"required","type":{"kind":"enum","values":["external","launched"]}},"browser_status":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"enum","values":["starting","live","failed"]}},"dead":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"enum","values":["pty","browser","conversation"]}},"name":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"notification":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"NotificationMarker"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}},"size":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Size"}},"supports_clear_history_key_fallback":{"capability":"clear-history-key-v1","nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"boolean"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"optional","since":9,"type":{"kind":"scalar","name":"string"}},"terminal_resource_id":{"constraints":[{"pattern":"^term_[0-9a-f]{32}$"}],"nullable":true,"presence":"optional","since":10,"type":{"kind":"scalar","name":"string"}},"title":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupEndedTerminal":{"additional_properties":true,"fields":{"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupOutcome":{"additional_properties":true,"fields":{"group":{"description":"Null when the command left no group.","nullable":true,"presence":"required","type":{"kind":"ref","name":"TabGroupRecord"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surfaces":{"description":"Members in strip order.","nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"workspace":{"description":"The workspace of the group\'s pane.","nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TabGroupRecord":{"additional_properties":true,"fields":{"collapsed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"description":"May be empty: the group shows only its color.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"saved_id":{"description":"The linked saved group.","nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TabGroupRun":{"additional_properties":true,"fields":{"collapsed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"color":{"description":"Known values: grey, blue, red, yellow, green, pink, purple, cyan, orange. Other values are future colors.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"count":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pane":{"nullable":false,"presence":"optional","type":{"kind":"ref","name":"Id"}},"saved_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"start":{"description":"Strip index of the first member.","nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"surfaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}}},"kind":"object"},"TabRef":{"kind":"opaque_json","reason":"A tab named by its numeric surface id or its public tab_ id."},"TerminalClipboardHost":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalClipboardHostKind"}},"name":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalClipboardHostKind":{"kind":"enum","values":["local","remote","cloud"]},"TerminalClipboardLocation":{"kind":"enum","values":["standard","selection","primary"]},"TerminalClipboardReplyResult":{"additional_properties":false,"fields":{"accepted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"granted":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalClipboardSubscribeResult":{"additional_properties":false,"fields":{"clipboard_read_ready":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalColorOverrides":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"TerminalColors":{"additional_properties":false,"fields":{"bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"cursor":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"ColorHex"}},"cursor_blink":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"scalar","name":"boolean"}},"cursor_style":{"nullable":true,"presence":"optional","since":6,"type":{"kind":"ref","name":"CursorStyle"}},"fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"overrides":{"nullable":false,"presence":"optional","since":12,"type":{"kind":"ref","name":"TerminalColorOverrides"}},"palette":{"constraints":["Decimal string keys are palette indexes 0 through 255."],"nullable":false,"presence":"optional","since":7,"type":{"kind":"map","values":{"kind":"ref","name":"ColorHex"}}},"selection_bg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}},"selection_fg":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"ColorHex"}}},"kind":"object"},"TerminalCommandHistoryResult":{"additional_properties":false,"fields":{"enabled":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalEventsResult":{"additional_properties":false,"fields":{"events":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalRegistryEvent"},"kind":"array"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"TerminalExit":{"additional_properties":false,"fields":{"exited_at_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"outcome":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalExitOutcome"}}},"kind":"object"},"TerminalExitOutcome":{"kind":"tagged_union","tag":"kind","variants":{"exit":{"additional_properties":false,"fields":{"code":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"exit"}}},"kind":"object"},"signal":{"additional_properties":false,"fields":{"core_dumped":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"signal"}},"signal":{"constraints":[{"minimum":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"int32"}}},"kind":"object"},"unknown":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"literal","value":"unknown"}},"reason":{"constraints":[{"min_length":1}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"}}},"TerminalHistoryPage":{"additional_properties":false,"constraints":["data is one base64 GHOSTSNP PAGE record (header, payload, CRC32C); marker is the page\'s first row."],"fields":{"data":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"marker":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"TerminalHistoryPagesResult":{"additional_properties":false,"constraints":["Pages are newest first; pass next_before as before for older pages until done."],"fields":{"done":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"marker_epoch":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"next_before":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"uint64"}},"pages":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalHistoryPage"},"kind":"array"}},"snapshot_version":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TerminalKey":{"kind":"enum","values":["unidentified","backquote","backslash","bracket-left","bracket-right","comma","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","equal","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","minus","period","quote","semicolon","slash","backspace","enter","space","tab","delete","end","home","insert","page-down","page-up","arrow-down","arrow-left","arrow-right","arrow-up","numpad0","numpad1","numpad2","numpad3","numpad4","numpad5","numpad6","numpad7","numpad8","numpad9","numpad-add","numpad-backspace","numpad-comma","numpad-decimal","numpad-divide","numpad-enter","numpad-equal","numpad-multiply","numpad-subtract","numpad-up","numpad-down","numpad-right","numpad-left","numpad-begin","numpad-home","numpad-end","numpad-insert","numpad-delete","numpad-page-up","numpad-page-down","escape","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","f13","f14","f15","f16","f17","f18","f19","f20"]},"TerminalKeyAction":{"kind":"enum","values":["press","release","repeat"]},"TerminalKeyInput":{"additional_properties":false,"constraints":["consumed_mods must be a subset of mods.","unshifted_codepoint, shifted_codepoint, and base_layout_codepoint contain exactly one Unicode scalar when present.","utf8 contains no control characters.","macos_option_as_alt may be false only when Alt is active and consumed."],"fields":{"action":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"ref","name":"TerminalKeyAction"}},"base_layout_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"composing":{"default":false,"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"consumed_mods":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalModifiers"}},"key":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalKey"}},"macos_option_as_alt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"mods":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalModifiers"}},"shifted_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"unshifted_codepoint":{"default":null,"nullable":true,"presence":"optional","type":{"kind":"scalar","name":"string"}},"utf8":{"constraints":[{"max_length":4096}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalLifecycle":{"kind":"enum","values":["launching","adopting","running","exited","tombstoned"]},"TerminalModifiers":{"additional_properties":false,"fields":{"alt":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"caps_lock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"control":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"num_lock":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"shift":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"super":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalPlacement":{"additional_properties":false,"fields":{"already_exited":{"nullable":false,"presence":"required","since":11,"type":{"kind":"scalar","name":"boolean"}},"exit":{"nullable":true,"presence":"required","since":11,"type":{"kind":"ref","name":"TerminalExit"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"screen":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"surface":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"},"TerminalReadRangeResult":{"additional_properties":false,"fields":{"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"truncated":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalRecord":{"additional_properties":false,"fields":{"exit":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalExit"}},"launch_spec":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"lifecycle":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"TerminalLifecycle"}},"terminal_id":{"constraints":[{"format":"UUIDv4 hex without dashes","pattern":"^[0-9a-f]{32}$"}],"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_incarnation":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalRegistryEvent":{"additional_properties":false,"fields":{"kind":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"mutation_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"origin":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"result":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"JsonValue"}},"terminal_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"workspace_key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"TerminalResourceHost":{"additional_properties":false,"fields":{"cpu_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"memory_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"TerminalResourceProcess":{"additional_properties":false,"constraints":["cpu_ns is cumulative user plus system CPU time since the process started.","memory_bytes is the physical footprint on macOS and the resident set size on Linux."],"fields":{"cpu_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"memory_bytes":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"pid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"ppid":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint32"}}},"kind":"object"},"TerminalResources":{"additional_properties":false,"constraints":["processes lists the shell first, then every descendant breadth-first, each pid once, at most 512.","truncated is true when the tree had more than 512 processes.","host is null for a PTY the daemon owns itself."],"fields":{"host":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"TerminalResourceHost"}},"pid":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"uint32"}},"processes":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalResourceProcess"},"kind":"array"}},"surface":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"terminal_id":{"nullable":true,"presence":"required","type":{"kind":"scalar","name":"string"}},"truncated":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}}},"kind":"object"},"TerminalResourcesResult":{"additional_properties":false,"constraints":["sampled_at_ns is a monotonic clock in nanoseconds (macOS CLOCK_UPTIME_RAW, Linux CLOCK_MONOTONIC), comparable only between replies of one daemon host.","missing lists requested surfaces that do not exist or are not PTY surfaces."],"fields":{"missing":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Id"},"kind":"array"}},"sampled_at_ns":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"terminals":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"TerminalResources"},"kind":"array"}}},"kind":"object"},"Tree":{"additional_properties":false,"fields":{"generation":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"pane_revision":{"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"registry_id":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"terminal_revision":{"nullable":false,"presence":"optional","since":9,"type":{"kind":"scalar","name":"uint64"}},"workspace_revision":{"capability":"workspace-registry-v1","nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"uint64"}},"workspaces":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Workspace"},"kind":"array"}}},"kind":"object"},"ViewAttachmentOutcome":{"kind":"enum","values":["applied","passive","superseded"]},"VtStateResult":{"additional_properties":false,"fields":{"cols":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}},"data":{"constraints":[{"encoding":"standard base64"}],"nullable":false,"presence":"required","type":{"kind":"ref","name":"Base64"}},"kitty_graphics_state":{"nullable":false,"presence":"optional","since":10,"type":{"kind":"ref","name":"KittyGraphicsState"}},"kitty_image_aliases":{"nullable":false,"presence":"optional","since":9,"type":{"items":{"kind":"ref","name":"KittyImageAlias"},"kind":"array"}},"rows":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint16"}}},"kind":"object"},"WaitForResult":{"additional_properties":false,"fields":{"elapsed_ms":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"matched":{"nullable":false,"presence":"required","type":{"kind":"literal","value":true}},"text":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}}},"kind":"object"},"Workspace":{"additional_properties":false,"fields":{"active":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"id":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"key":{"capability":"workspace-registry-v1","constraints":[{"format":"lowercase canonical UUID"}],"nullable":false,"presence":"optional","since":7,"type":{"kind":"scalar","name":"string"}},"name":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"screens":{"nullable":false,"presence":"required","type":{"items":{"kind":"ref","name":"Screen"},"kind":"array"}},"short_id":{"constraints":[{"pattern":"^[a-z0-9]{6}$"}],"nullable":false,"presence":"optional","since":6,"type":{"kind":"scalar","name":"string"}}},"kind":"object"},"WorkspaceMutationResult":{"additional_properties":false,"fields":{"changed":{"nullable":false,"presence":"optional","type":{"kind":"scalar","name":"boolean"}},"generation":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"index":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}},"key":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"registry_id":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"string"}},"replayed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"workspace":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"workspace_revision":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"uint64"}}},"kind":"object"},"ZoomPaneResult":{"additional_properties":false,"fields":{"pane":{"nullable":false,"presence":"required","type":{"kind":"ref","name":"Id"}},"zoomed":{"nullable":false,"presence":"required","type":{"kind":"scalar","name":"boolean"}},"zoomed_pane":{"nullable":true,"presence":"required","type":{"kind":"ref","name":"Id"}}},"kind":"object"}}}') diff --git a/cmux-tui/bindings/python/cmux/raw/_generated/client.py b/cmux-tui/bindings/python/cmux/raw/_generated/client.py index c67d4b12845c..1ea3997de886 100644 --- a/cmux-tui/bindings/python/cmux/raw/_generated/client.py +++ b/cmux-tui/bindings/python/cmux/raw/_generated/client.py @@ -543,8 +543,8 @@ def set_client_info(self, *, name: Union[str, None, MissingType] = MISSING, kind def set_client_sizing(self, surface: Id, enabled: bool, *, client: Union[int, None, MissingType] = MISSING, exclusive: Union[bool, MissingType] = MISSING) -> EmptyResult: return self._invoke_command('set-client-sizing', SetClientSizingRequest(surface=surface, enabled=enabled, client=client, exclusive=exclusive)) - def set_column_dock(self, pane: Id, dock: bool, *, edge: Union[str, None, MissingType] = MISSING, mode: Union[str, None, MissingType] = MISSING, transaction: Union[int, None, MissingType] = MISSING) -> JsonValue: - return self._invoke_command('set-column-dock', SetColumnDockRequest(pane=pane, dock=dock, edge=edge, mode=mode, transaction=transaction)) + def set_column_dock(self, pane: Id, dock: bool, *, edge: Union[str, None, MissingType] = MISSING, mode: Union[str, None, MissingType] = MISSING, role: Union[str, None, MissingType] = MISSING, transaction: Union[int, None, MissingType] = MISSING) -> JsonValue: + return self._invoke_command('set-column-dock', SetColumnDockRequest(pane=pane, dock=dock, edge=edge, mode=mode, role=role, transaction=transaction)) def set_default_colors(self, fg: Union[ColorHex, None, MissingType] = MISSING, *, bg: Union[ColorHex, None, MissingType] = MISSING, cursor: Union[ColorHex, None, MissingType] = MISSING, selection_bg: Union[ColorHex, None, MissingType] = MISSING, selection_fg: Union[ColorHex, None, MissingType] = MISSING, cursor_style: Union[CursorStyle, None, MissingType] = MISSING, cursor_blink: Union[bool, None, MissingType] = MISSING, palette: Union[Dict[str, ColorHex], None, MissingType] = MISSING, complete: Union[bool, MissingType] = MISSING) -> EmptyResult: return self._invoke_command('set-default-colors', SetDefaultColorsRequest(fg=fg, bg=bg, cursor=cursor, selection_bg=selection_bg, selection_fg=selection_fg, cursor_style=cursor_style, cursor_blink=cursor_blink, palette=palette, complete=complete)) diff --git a/cmux-tui/bindings/python/cmux/raw/_generated/metadata.py b/cmux-tui/bindings/python/cmux/raw/_generated/metadata.py index 9ff7f159e0bf..cfc62eb33aff 100644 --- a/cmux-tui/bindings/python/cmux/raw/_generated/metadata.py +++ b/cmux-tui/bindings/python/cmux/raw/_generated/metadata.py @@ -8,7 +8,7 @@ SCHEMA_VERSION = 2 MUX_PROTOCOL = 12 -IR_SHA256 = '574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e' +IR_SHA256 = 'df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa' @dataclass(frozen=True) @@ -2428,6 +2428,7 @@ class EventMetadata: 'edge': CommandFieldMetadata(None, None), 'mode': CommandFieldMetadata(None, None), 'pane': CommandFieldMetadata(None, None), + 'role': CommandFieldMetadata(12, 'dock-column-role-v1'), 'transaction': CommandFieldMetadata(None, None), }, ), diff --git a/cmux-tui/bindings/python/cmux/raw/_generated/models.py b/cmux-tui/bindings/python/cmux/raw/_generated/models.py index d0f0e604575f..489d8016467f 100644 --- a/cmux-tui/bindings/python/cmux/raw/_generated/models.py +++ b/cmux-tui/bindings/python/cmux/raw/_generated/models.py @@ -498,6 +498,7 @@ class ColumnPin: __cmux_schema_path__: ClassVar[str] = 'types/ColumnPin' edge: str mode: str + role: Union[str, None, MissingType] = field(default=MISSING) @dataclass(frozen=True) @@ -3589,6 +3590,7 @@ class SetColumnDockRequest: dock: bool edge: Union[str, None, MissingType] = field(default=MISSING) mode: Union[str, None, MissingType] = field(default=MISSING) + role: Union[str, None, MissingType] = field(default=MISSING) transaction: Union[int, None, MissingType] = field(default=MISSING) diff --git a/cmux-tui/bindings/rust/src/generated/.cmux-sdk-manifest.json b/cmux-tui/bindings/rust/src/generated/.cmux-sdk-manifest.json index d780037c2544..de37e1be6bb1 100644 --- a/cmux-tui/bindings/rust/src/generated/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/rust/src/generated/.cmux-sdk-manifest.json @@ -2,32 +2,32 @@ "files": [ { "path": "commands.rs", - "sha256": "6ea43d15b4175388e0fe5b8780c0255a21627da29fc4fdc3232cf31ecef7b0fa", - "size": 168128 + "sha256": "c98ade1f66df97076d52acdd76e55295a2133596bc4c61c027ed223f54ad206d", + "size": 168429 }, { "path": "events.rs", - "sha256": "31a3e46a9f21b3a4b24193c66a3550e1f1d411be39bed31ec1dbdcb735a03d5f", + "sha256": "40fb5402a5d12181b60361be4c2616114774e1ac5f86cca3b8e8a3b8020a9368", "size": 60298 }, { "path": "metadata.rs", - "sha256": "cdeaf36615b698e883253a87b32e60ff2ef807678e50aa1f434756c6511660e2", + "sha256": "eda914a93b84d9296e6dd5e9ea78e508e21c3b55448e0bc07acb9bb2b284e093", "size": 77565 }, { "path": "mod.rs", - "sha256": "b2805ef7f8c44d83a8391e2868e9c947088715c59cfe5498856df2d8d2d46f52", + "sha256": "0c93f85012042ea352dd83c2510b4f105fe9a1af8e258cb22fab1adaf543248b", "size": 365 }, { "path": "types.rs", - "sha256": "81c18c8085ac835e6d3e66a5396ae89757a06c16bf38e58eadb7623494ace490", - "size": 74881 + "sha256": "43fd646f0df72b75dcc7c685e7d17a7ce7ae2b026aa34cfcbf1477c0fa579f63", + "size": 74981 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "rust", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/rust/src/generated/commands.rs b/cmux-tui/bindings/rust/src/generated/commands.rs index ba6813bf64ef..6f6b0f42a169 100644 --- a/cmux-tui/bindings/rust/src/generated/commands.rs +++ b/cmux-tui/bindings/rust/src/generated/commands.rs @@ -1,5 +1,5 @@ // This file is generated. Do not edit by hand. -// cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. // The emitter owns this layout so generation is independent of the installed rustfmt. use super::metadata::*; @@ -2556,6 +2556,8 @@ pub struct SetColumnDockRequest { pub mode: Optional, pub pane: T::Id, #[serde(default, skip_serializing_if = "Optional::is_missing")] + pub role: Optional, + #[serde(default, skip_serializing_if = "Optional::is_missing")] pub transaction: Optional, } @@ -4257,6 +4259,10 @@ impl CmuxClient { } pub fn set_column_dock(&mut self, request: SetColumnDockRequest) -> Result { + if !request.role.is_missing() { + self.require_protocol_field("set-column-dock", 12)?; + self.require_capability_field("set-column-dock", "dock-column-role-v1")?; + } self.execute(&SET_COLUMN_DOCK_METADATA, &request) } diff --git a/cmux-tui/bindings/rust/src/generated/events.rs b/cmux-tui/bindings/rust/src/generated/events.rs index f2b3bff3b195..1f638a820bbe 100644 --- a/cmux-tui/bindings/rust/src/generated/events.rs +++ b/cmux-tui/bindings/rust/src/generated/events.rs @@ -1,5 +1,5 @@ // This file is generated. Do not edit by hand. -// cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. // The emitter owns this layout so generation is independent of the installed rustfmt. use super::metadata::*; diff --git a/cmux-tui/bindings/rust/src/generated/metadata.rs b/cmux-tui/bindings/rust/src/generated/metadata.rs index d2a313d5401e..2ef4b27717e9 100644 --- a/cmux-tui/bindings/rust/src/generated/metadata.rs +++ b/cmux-tui/bindings/rust/src/generated/metadata.rs @@ -1,12 +1,12 @@ // This file is generated. Do not edit by hand. -// cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. // The emitter owns this layout so generation is independent of the installed rustfmt. use crate::{CommandMetadata, EventMetadata, ProfileMetadata, StreamMetadata}; pub const SDK_SCHEMA_VERSION: u32 = 2; pub const MUX_PROTOCOL_VERSION: u32 = 12; -pub const SDK_IR_SHA256: &str = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e"; +pub const SDK_IR_SHA256: &str = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa"; #[rustfmt::skip] pub const CONTROL_PROFILE: ProfileMetadata = ProfileMetadata { diff --git a/cmux-tui/bindings/rust/src/generated/mod.rs b/cmux-tui/bindings/rust/src/generated/mod.rs index acdc026ab799..4eb55258230c 100644 --- a/cmux-tui/bindings/rust/src/generated/mod.rs +++ b/cmux-tui/bindings/rust/src/generated/mod.rs @@ -1,5 +1,5 @@ // This file is generated. Do not edit by hand. -// cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. // The emitter owns this layout so generation is independent of the installed rustfmt. mod commands; diff --git a/cmux-tui/bindings/rust/src/generated/types.rs b/cmux-tui/bindings/rust/src/generated/types.rs index 2be032a99007..36e41a587eae 100644 --- a/cmux-tui/bindings/rust/src/generated/types.rs +++ b/cmux-tui/bindings/rust/src/generated/types.rs @@ -1,5 +1,5 @@ // This file is generated. Do not edit by hand. -// cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. +// cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. // The emitter owns this layout so generation is independent of the installed rustfmt. use crate::{Nullable, Optional}; @@ -323,6 +323,8 @@ pub struct CloseTerminalResult { pub struct ColumnPin { pub edge: String, pub mode: String, + #[serde(default, skip_serializing_if = "Optional::is_missing")] + pub role: Optional, } #[rustfmt::skip] diff --git a/cmux-tui/bindings/typescript/src/raw/generated/.cmux-sdk-manifest.json b/cmux-tui/bindings/typescript/src/raw/generated/.cmux-sdk-manifest.json index b85ab71f44bb..a239b23de5b8 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/typescript/src/raw/generated/.cmux-sdk-manifest.json @@ -2,32 +2,32 @@ "files": [ { "path": "commands.ts", - "sha256": "7f203529822138d494864f6b20788072529378f9d55e2a0fba49a8e54611b8cb", - "size": 121150 + "sha256": "0e1c2621e6d51abc8b2a623d53373eabfb24f78d8489c4e76b029729b41abe18", + "size": 121178 }, { "path": "events.ts", - "sha256": "c1bc5749a1054f035c25a6dfe5425edfaa6ad86550903ab720ceca62e965532d", + "sha256": "25e14ce784c5f34e4bb68379bfeebbeeea860430130538cecdab58f28783864e", "size": 21308 }, { "path": "index.ts", - "sha256": "1beec5ad0878ad8191acf3ad42f5ad100b9bcd75090a8f1983cef9f5cb28563f", + "sha256": "eaa1ddc5d3e938ce8adb789d9ed7fa9eb24047707c8117d9dba32296110a0283", "size": 272 }, { "path": "metadata.ts", - "sha256": "dd5c8c9fc2b9ed27816da3ff68d23168e2eac13acca8cb9adff1c0bd1847a438", - "size": 579874 + "sha256": "69726fb2420da80b8131838626db278ef39856b7e210f47eab012ac05b5f89cb", + "size": 580568 }, { "path": "types.ts", - "sha256": "461d976ca5bbf2ef507b3712153180952a34cf0c77fedd2bef081f4cfb07d90a", - "size": 33740 + "sha256": "7501a38934ca9bd418f1ca8fc1ae59b6094a732f6b63e236d687e2de57e9ee0a", + "size": 33768 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "typescript", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/typescript/src/raw/generated/commands.ts b/cmux-tui/bindings/typescript/src/raw/generated/commands.ts index d09c59051652..eb0e3bc3153d 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/commands.ts +++ b/cmux-tui/bindings/typescript/src/raw/generated/commands.ts @@ -1,5 +1,5 @@ /* This file is generated. Do not edit by hand. */ -/* cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. */ +/* cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. */ import type * as T from "./types.js"; @@ -1791,6 +1791,7 @@ export interface SetColumnDockRequest extends CmuxRequestBase { "edge"?: (string) | null; "mode"?: (string) | null; "pane": T.Id; + "role"?: (string) | null; "transaction"?: (bigint) | null; } export type SetColumnDockResult = T.JsonValue; diff --git a/cmux-tui/bindings/typescript/src/raw/generated/events.ts b/cmux-tui/bindings/typescript/src/raw/generated/events.ts index dee73da61a97..9590da1f2548 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/events.ts +++ b/cmux-tui/bindings/typescript/src/raw/generated/events.ts @@ -1,5 +1,5 @@ /* This file is generated. Do not edit by hand. */ -/* cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. */ +/* cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. */ import type * as T from "./types.js"; diff --git a/cmux-tui/bindings/typescript/src/raw/generated/index.ts b/cmux-tui/bindings/typescript/src/raw/generated/index.ts index d33f0463aace..bba12140675b 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/index.ts +++ b/cmux-tui/bindings/typescript/src/raw/generated/index.ts @@ -1,5 +1,5 @@ /* This file is generated. Do not edit by hand. */ -/* cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. */ +/* cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. */ export * from "./types.js"; export * from "./commands.js"; diff --git a/cmux-tui/bindings/typescript/src/raw/generated/metadata.ts b/cmux-tui/bindings/typescript/src/raw/generated/metadata.ts index b43d7e95b1b4..debc8c4a6519 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/metadata.ts +++ b/cmux-tui/bindings/typescript/src/raw/generated/metadata.ts @@ -1,10 +1,10 @@ /* This file is generated. Do not edit by hand. */ -/* cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. */ +/* cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. */ export const SDK_SCHEMA_VERSION = 2 as const; export const MUX_PROTOCOL_VERSION = 12 as const; -export const SDK_IR_SHA256 = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e" as const; +export const SDK_IR_SHA256 = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa" as const; export const PROTOCOL = { "id_type": "uint64", "javascript_id_policy": "All protocol identifiers are uint64 JSON numbers. JavaScript and TypeScript SDKs must decode them losslessly as bigint (or validated decimal strings at their public boundary), and must not expose IEEE-754 number ids. Pairing request ids, revisions, timestamps, frame sequences, and reservation ids follow the same rule.", @@ -2152,10 +2152,15 @@ export const COMMAND_METADATA = { "authority": "control", "since": 12, "capability": "dock-columns-v1", - "fields": {}, + "fields": { + "role": { + "since": 12, + "capability": "dock-column-role-v1" + } + }, "stream": null, "constraints": [ - "edge is \"left\" or \"right\" (default \"right\"); mode is \"docked\" or \"overlay\" (default \"docked\").", + "edge is \"left\" or \"right\" (default \"right\"); mode is \"docked\" or \"overlay\" (default \"docked\"). role is \"agent_chat\" with dock-column-role-v1 (default none).", "See spec/commands.md for the result object." ] }, @@ -4421,6 +4426,17 @@ export const TYPE_SCHEMAS: Readonly> = { "kind": "scalar", "name": "string" } + }, + "role": { + "capability": "dock-column-role-v1", + "default": null, + "nullable": true, + "presence": "optional", + "since": 12, + "type": { + "kind": "scalar", + "name": "string" + } } }, "kind": "object" @@ -19963,6 +19979,17 @@ export const COMMAND_SCHEMAS: Readonly> = { "name": "Id" } }, + "role": { + "capability": "dock-column-role-v1", + "default": null, + "nullable": true, + "presence": "optional", + "since": 12, + "type": { + "kind": "scalar", + "name": "string" + } + }, "transaction": { "default": null, "nullable": true, diff --git a/cmux-tui/bindings/typescript/src/raw/generated/types.ts b/cmux-tui/bindings/typescript/src/raw/generated/types.ts index 89cbcd563cad..3c5f8d5f563b 100644 --- a/cmux-tui/bindings/typescript/src/raw/generated/types.ts +++ b/cmux-tui/bindings/typescript/src/raw/generated/types.ts @@ -1,5 +1,5 @@ /* This file is generated. Do not edit by hand. */ -/* cmux-tui mux protocol 12, IR 574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e. */ +/* cmux-tui mux protocol 12, IR df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa. */ /** JSON accepted by the wire codec. bigint is serialized as an exact JSON integer. */ @@ -196,6 +196,7 @@ export type ColorHex = string; export type ColumnPin = { "edge": string; "mode": string; + "role"?: (string) | null; }; export type ConversationChange = { diff --git a/cmux-tui/bindings/zig/src/raw/generated/.cmux-sdk-manifest.json b/cmux-tui/bindings/zig/src/raw/generated/.cmux-sdk-manifest.json index 80fa59693d59..5c352a169a62 100644 --- a/cmux-tui/bindings/zig/src/raw/generated/.cmux-sdk-manifest.json +++ b/cmux-tui/bindings/zig/src/raw/generated/.cmux-sdk-manifest.json @@ -7,12 +7,12 @@ }, { "path": "protocol.zig", - "sha256": "5dca08c536c31058b63953b39f105cd67e8d14d427ba2fda2d42b59c9a8006ba", - "size": 309147 + "sha256": "0725e4e3232e16c4effd6735a62b8a083ec4a807372f3ce047bb793f5e290fb9", + "size": 309363 } ], "format": 1, - "ir_sha256": "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e", + "ir_sha256": "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa", "language": "zig", "mux_protocol": 12, "schema_version": 2 diff --git a/cmux-tui/bindings/zig/src/raw/generated/protocol.zig b/cmux-tui/bindings/zig/src/raw/generated/protocol.zig index fc3dff41b2a0..6249d8758ced 100644 --- a/cmux-tui/bindings/zig/src/raw/generated/protocol.zig +++ b/cmux-tui/bindings/zig/src/raw/generated/protocol.zig @@ -7,7 +7,7 @@ const client_runtime = @import("../client.zig"); pub const schema_version: u16 = 2; pub const mux_protocol: u16 = 12; -pub const ir_sha256 = "574ef12717291a1170f2fdd5a2fe27916a8af26ab9e64b532916dbb0fbee870e"; +pub const ir_sha256 = "df95b9a19f96ded20b7035b1e5330c88ef2fed3a398a60c67fc31d355fa511fa"; pub const ActivitySnapshot = struct { attached_clients: u32, @@ -332,6 +332,7 @@ pub const ColorHex = []const u8; pub const ColumnPin = struct { edge: []const u8, mode: []const u8, + role: wire.Field([]const u8) = .absent, }; pub const ConversationChange = struct { @@ -6879,6 +6880,7 @@ pub const SetColumnDockRequest = struct { edge: wire.Field([]const u8) = .absent, mode: wire.Field([]const u8) = .absent, pane: Id, + role: wire.Field([]const u8) = .absent, transaction: wire.Field(u64) = .absent, }; @@ -6892,6 +6894,9 @@ pub fn setColumnDock(client: anytype, request: SetColumnDockRequest) !wire.Decod .authority = "control", .since = 12, .capability = "dock-columns-v1", + .fields = &.{ + .{ .name = "role", .since = 12, .capability = "dock-column-role-v1" }, + }, }, request, ); diff --git a/cmux-tui/crates/cmux-tui-core/src/lib.rs b/cmux-tui/crates/cmux-tui-core/src/lib.rs index 868368e633e5..c3e149822463 100644 --- a/cmux-tui/crates/cmux-tui-core/src/lib.rs +++ b/cmux-tui/crates/cmux-tui-core/src/lib.rs @@ -98,7 +98,7 @@ pub use layout::{ layout_screen_with_viewport, split_for_pane_edge, split_sides, zellij_default_pane_layout, }; pub use model::{ - ColumnDock, DockEdge, DockMode, Node, Pane, Screen, State, ViewportColumn, Workspace, + ColumnDock, DockEdge, DockMode, DockRole, Node, Pane, Screen, State, ViewportColumn, Workspace, }; pub(crate) use mux::BatchCloseTarget; pub use mux::{ diff --git a/cmux-tui/crates/cmux-tui-core/src/model.rs b/cmux-tui/crates/cmux-tui-core/src/model.rs index 6c6244646e89..d4325b01c60f 100644 --- a/cmux-tui/crates/cmux-tui-core/src/model.rs +++ b/cmux-tui/crates/cmux-tui-core/src/model.rs @@ -16,7 +16,7 @@ mod layout_rows; #[cfg(test)] pub(crate) use layout_columns::normalize_dock_columns; -pub use layout_columns::{ColumnDock, DockEdge, DockMode, ViewportColumn}; +pub use layout_columns::{ColumnDock, DockEdge, DockMode, DockRole, ViewportColumn}; pub(crate) use layout_columns::{ ColumnProjection, LayoutColumn, LayoutMutationKey, LayoutResizeOwner, dock_columns_are_consistent, dock_flags_are_consistent, project_layout_columns, diff --git a/cmux-tui/crates/cmux-tui-core/src/model/layout_columns.rs b/cmux-tui/crates/cmux-tui-core/src/model/layout_columns.rs index 0bae1a7319b0..ea4f5348471b 100644 --- a/cmux-tui/crates/cmux-tui-core/src/model/layout_columns.rs +++ b/cmux-tui/crates/cmux-tui-core/src/model/layout_columns.rs @@ -164,14 +164,61 @@ impl DockMode { } } +/// What a docked column is for (`dock-column-role-v1`). `AgentChat` is the +/// agent chat column of cmux next: frontends keep new tools out of it and +/// restore it as the chat column after a restart. +#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum DockRole { + AgentChat, +} + +impl DockRole { + pub fn parse(value: &str) -> Option { + match value { + "agent_chat" => Some(Self::AgentChat), + _ => None, + } + } + + pub fn as_str(self) -> &'static str { + match self { + Self::AgentChat => "agent_chat", + } + } +} + +/// A stored or received role this build does not know reads as no role, so +/// a later build's role never makes the record unreadable. +fn lenient_dock_role<'de, D>(deserializer: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + let value: Option = serde::Deserialize::deserialize(deserializer)?; + Ok(value.as_deref().and_then(DockRole::parse)) +} + /// The dock flag of one viewport column, as stored and as sent on the wire -/// (`{"edge":"left"|"right","mode":"docked"|"overlay"}`). -/// Unknown members are ignored so a later build may add one without making -/// this build unable to read the record. +/// (`{"edge":"left"|"right","mode":"docked"|"overlay","role":"agent_chat"}`, +/// `role` omitted when unset). Unknown members are ignored so a later build +/// may add one without making this build unable to read the record. #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize)] pub struct ColumnDock { pub edge: DockEdge, pub mode: DockMode, + #[serde( + default, + skip_serializing_if = "Option::is_none", + deserialize_with = "lenient_dock_role" + )] + pub role: Option, +} + +impl ColumnDock { + /// A dock with no role. + pub fn new(edge: DockEdge, mode: DockMode) -> Self { + Self { edge, mode, role: None } + } } /// True when the dock flags satisfy the column invariants: no flag on a diff --git a/cmux-tui/crates/cmux-tui-core/src/mux/dock_columns.rs b/cmux-tui/crates/cmux-tui-core/src/mux/dock_columns.rs index 78b8bd3d5849..ee80f5acb777 100644 --- a/cmux-tui/crates/cmux-tui-core/src/mux/dock_columns.rs +++ b/cmux-tui/crates/cmux-tui-core/src/mux/dock_columns.rs @@ -13,7 +13,7 @@ use super::*; use crate::model::{ - ColumnDock, DockEdge, DockMode, LayoutColumn, LayoutMutationKey, LayoutResizeOwner, + ColumnDock, DockEdge, DockMode, DockRole, LayoutColumn, LayoutMutationKey, LayoutResizeOwner, dock_columns_are_consistent, dock_flags_are_consistent, }; @@ -27,7 +27,7 @@ pub enum ColumnDockError { ColumnNotFound { pane: PaneId }, /// The change would leave no scrolling column. LastScrollingColumn, - /// An `edge` or `mode` value is not one of the documented strings. + /// An `edge`, `mode` or `role` value is not one of the documented strings. InvalidArgument { field: &'static str, value: String }, /// The reducer was given a column index outside the screen. NoSuchColumn { index: usize }, @@ -65,6 +65,9 @@ impl fmt::Display for ColumnDockError { Self::InvalidArgument { field: "edge", value } => { write!(formatter, "bad edge {value:?} (want left, right, top or bottom)") } + Self::InvalidArgument { field: "role", value } => { + write!(formatter, "bad role {value:?} (want \"agent_chat\")") + } Self::InvalidArgument { field, value } => { write!(formatter, "bad {field} {value:?} (want \"docked\" or \"overlay\")") } @@ -89,12 +92,14 @@ pub struct ColumnDockOutcome { pub changed: bool, } -/// Parse the wire fields of `set-column-dock`. `edge` defaults to right and -/// `mode` to docked. Values are validated even when `dock` is false. +/// Parse the wire fields of `set-column-dock`. `edge` defaults to right, +/// `mode` to docked and `role` to none (`dock-column-role-v1`). Values are +/// validated even when `dock` is false; undocking drops the role. pub fn parse_column_dock( dock: bool, edge: Option<&str>, mode: Option<&str>, + role: Option<&str>, ) -> Result, ColumnDockError> { let edge = edge .map(|value| { @@ -114,7 +119,15 @@ pub fn parse_column_dock( }) .transpose()? .unwrap_or(DockMode::Docked); - Ok(dock.then_some(ColumnDock { edge, mode })) + let role = role + .map(|value| { + DockRole::parse(value).ok_or_else(|| ColumnDockError::InvalidArgument { + field: "role", + value: value.to_string(), + }) + }) + .transpose()?; + Ok(dock.then_some(ColumnDock { edge, mode, role })) } /// The pure reducer of `set-column-dock`: the screen's column flags in @@ -304,7 +317,7 @@ mod tests { let mut flags = vec![None]; for edge in DockEdge::ALL { for mode in [DockMode::Docked, DockMode::Overlay] { - flags.push(Some(ColumnDock { edge, mode })); + flags.push(Some(ColumnDock::new(edge, mode))); } } flags diff --git a/cmux-tui/crates/cmux-tui-core/src/mux/resource_topology/column_update.rs b/cmux-tui/crates/cmux-tui-core/src/mux/resource_topology/column_update.rs index 5f53c7ab0b9a..cfcd1e26d09d 100644 --- a/cmux-tui/crates/cmux-tui-core/src/mux/resource_topology/column_update.rs +++ b/cmux-tui/crates/cmux-tui-core/src/mux/resource_topology/column_update.rs @@ -27,7 +27,7 @@ impl ColumnUpdate { let mode = fields.get("mode").and_then(Value::as_str); let dock = match fields.get("dock").and_then(Value::as_bool) { Some(dock) => Some( - parse_column_dock(dock, edge, mode) + parse_column_dock(dock, edge, mode, None) .map_err(|error| invalid("dock", error.to_string()))?, ), None if edge.is_some() || mode.is_some() => { diff --git a/cmux-tui/crates/cmux-tui-core/src/mux/tests/column_update.rs b/cmux-tui/crates/cmux-tui-core/src/mux/tests/column_update.rs index 1807d3562ccf..412584ada01d 100644 --- a/cmux-tui/crates/cmux-tui-core/src/mux/tests/column_update.rs +++ b/cmux-tui/crates/cmux-tui-core/src/mux/tests/column_update.rs @@ -81,7 +81,7 @@ fn send(mux: &Arc, operation: &str, params: Value, key: &str) -> Result Option { - Some(ColumnDock { edge, mode }) + Some(ColumnDock::new(edge, mode)) } #[test] diff --git a/cmux-tui/crates/cmux-tui-core/src/mux/tests/dock_columns.rs b/cmux-tui/crates/cmux-tui-core/src/mux/tests/dock_columns.rs index 21b63f08cb14..d65231c3cc3c 100644 --- a/cmux-tui/crates/cmux-tui-core/src/mux/tests/dock_columns.rs +++ b/cmux-tui/crates/cmux-tui-core/src/mux/tests/dock_columns.rs @@ -37,7 +37,7 @@ fn dock_column_persists_across_restart() { ) .unwrap(); } - let expected = ColumnDock { edge: DockEdge::Left, mode: DockMode::Overlay }; + let expected = ColumnDock::new(DockEdge::Left, DockMode::Overlay); let mux = open_restart_mux(&root, session); let pane = mux.with_state(|state| { @@ -91,7 +91,7 @@ fn dock_column_registry_record_is_additive() { let mut with_dock = old; with_dock["dock"] = serde_json::json!({"edge": "right", "mode": "docked"}); let column: RegistryViewportColumn = serde_json::from_value(with_dock.clone()).unwrap(); - assert_eq!(column.dock, Some(ColumnDock { edge: DockEdge::Right, mode: DockMode::Docked })); + assert_eq!(column.dock, Some(ColumnDock::new(DockEdge::Right, DockMode::Docked))); assert_eq!(serde_json::to_value(&column).unwrap(), with_dock); } @@ -118,8 +118,8 @@ fn dock_column_flags_cleared_by_a_close_stay_cleared_after_restart() { ) .unwrap(); } - let left = ColumnDock { edge: DockEdge::Left, mode: DockMode::Docked }; - let right = ColumnDock { edge: DockEdge::Right, mode: DockMode::Docked }; + let left = ColumnDock::new(DockEdge::Left, DockMode::Docked); + let right = ColumnDock::new(DockEdge::Right, DockMode::Docked); let mux = open_restart_mux(&root, session); // Three columns: the fixture's two plus a new one holding a second tab @@ -193,7 +193,7 @@ fn edge_dock_persists_across_restart_outside_the_viewport_record() { ) .unwrap(); } - let bottom = ColumnDock { edge: DockEdge::Bottom, mode: DockMode::Overlay }; + let bottom = ColumnDock::new(DockEdge::Bottom, DockMode::Overlay); let mux = open_restart_mux(&root, session); let pane = mux.with_state(|state| { state.workspaces[0].screens[0].layout_columns[1].root.first_visible_pane() @@ -258,7 +258,7 @@ fn an_older_side_pin_wins_over_a_dock_that_would_leave_no_column_scrolling() { ) .unwrap(); } - let top = ColumnDock { edge: DockEdge::Top, mode: DockMode::Docked }; + let top = ColumnDock::new(DockEdge::Top, DockMode::Docked); let mux = open_restart_mux(&root, session); let pane = mux.with_state(|state| { state.workspaces[0].screens[0].layout_columns[0].root.first_visible_pane() @@ -293,7 +293,7 @@ fn an_older_side_pin_wins_over_a_dock_that_would_leave_no_column_scrolling() { .unwrap(); drop(connection); - let left = ColumnDock { edge: DockEdge::Left, mode: DockMode::Docked }; + let left = ColumnDock::new(DockEdge::Left, DockMode::Docked); let registry = WorkspaceRegistry::open(&root, session).unwrap(); let topology = registry.resource_topology_snapshot().unwrap(); let screen = topology.screens.iter().find(|screen| screen.public_id == screen_id).unwrap(); @@ -313,7 +313,7 @@ fn edge_dock_is_never_serialized_into_the_viewport_record() { })) .unwrap(); for edge in [DockEdge::Top, DockEdge::Bottom] { - column.dock = Some(ColumnDock { edge, mode: DockMode::Docked }); + column.dock = Some(ColumnDock::new(edge, DockMode::Docked)); assert!(serde_json::to_value(&column).unwrap().get("dock").is_none()); } } diff --git a/cmux-tui/crates/cmux-tui-core/src/server.rs b/cmux-tui/crates/cmux-tui-core/src/server.rs index 3c749abc51a7..247f9b193a93 100644 --- a/cmux-tui/crates/cmux-tui-core/src/server.rs +++ b/cmux-tui/crates/cmux-tui-core/src/server.rs @@ -192,6 +192,9 @@ pub const DOCK_COLUMNS_CAPABILITY: &str = "dock-columns-v1"; /// Top and bottom docks: `set-column-dock` and `move-tab-to-column` accept /// edges `top` and `bottom`, sent back as `Screen.columns[].dock`. pub const EDGE_DOCKS_CAPABILITY: &str = "edge-docks-v1"; +/// `set-column-dock` and `move-tab-to-column` accept `role` (`agent_chat`), +/// kept with the pin and sent back as `Screen.columns[].dock.role`. +pub const DOCK_COLUMN_ROLE_CAPABILITY: &str = "dock-column-role-v1"; /// `new-row`, `set-row-heights` and `Screen.columns[].rows` (rows.md). pub const ROWS_CAPABILITY: &str = "rows-v1"; /// `kind` (`pty` | `browser`) and `url` on `split` and `new-pane-right`. @@ -1656,8 +1659,9 @@ enum Command { transaction: Option, }, /// `dock-columns-v1`: pin or unpin the viewport column containing - /// `pane`. `edge` and `mode` stay strings so a bad value answers with - /// `error_code:"invalid-argument"` instead of a decode error. + /// `pane`. `edge`, `mode` and `role` (`dock-column-role-v1`) stay strings + /// so a bad value answers with `error_code:"invalid-argument"` instead of + /// a decode error. SetColumnDock { pane: PaneId, dock: bool, @@ -1666,6 +1670,8 @@ enum Command { #[serde(default)] mode: Option, #[serde(default)] + role: Option, + #[serde(default)] transaction: Option, }, UndoLayout { @@ -13833,8 +13839,13 @@ fn handle_command_with_cancellation( )?; Ok(json!({})) } - Command::SetColumnDock { pane, dock, edge, mode, transaction } => { - let dock = crate::mux::parse_column_dock(dock, edge.as_deref(), mode.as_deref())?; + Command::SetColumnDock { pane, dock, edge, mode, role, transaction } => { + let dock = crate::mux::parse_column_dock( + dock, + edge.as_deref(), + mode.as_deref(), + role.as_deref(), + )?; let outcome = mux.set_column_dock( pane, dock, diff --git a/cmux-tui/crates/cmux-tui-core/src/server/capabilities.rs b/cmux-tui/crates/cmux-tui-core/src/server/capabilities.rs index a9cec4ba9e22..9da491795014 100644 --- a/cmux-tui/crates/cmux-tui-core/src/server/capabilities.rs +++ b/cmux-tui/crates/cmux-tui-core/src/server/capabilities.rs @@ -31,6 +31,7 @@ pub(super) fn advertised_capabilities( VIEWPORT_COLUMN_RESIZE_CAPABILITY, DOCK_COLUMNS_CAPABILITY, EDGE_DOCKS_CAPABILITY, + DOCK_COLUMN_ROLE_CAPABILITY, ROWS_CAPABILITY, PANE_BROWSER_KIND_CAPABILITY, LAYOUT_UNDO_CAPABILITY, diff --git a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/screen_rows.rs b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/screen_rows.rs index fb7452cee9d5..8861a77a147f 100644 --- a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/screen_rows.rs +++ b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/screen_rows.rs @@ -328,7 +328,7 @@ fn with_column_docks( .enumerate() .any(|(other, column)| other != index && column.dock.is_none()); if columns[index].dock.is_none() && !edge_taken && other_scrolls { - columns[index].dock = Some(ColumnDock { edge, mode }); + columns[index].dock = Some(ColumnDock::new(edge, mode)); } } Ok(screens) diff --git a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs index f68a55908f38..c4d3ade28448 100644 --- a/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs +++ b/cmux-tui/crates/cmux-tui-core/src/workspace_registry/resource_store/viewport.rs @@ -176,7 +176,7 @@ mod dock_key_tests { fn viewport() -> RegistryViewport { let pane = |n: u128| PanePublicId::parse(format!("pane_{n:032x}")).unwrap(); let split = |n: u128| SplitPublicId::parse(format!("split_{n:032x}")).unwrap(); - let docked = ColumnDock { edge: DockEdge::Left, mode: DockMode::Docked }; + let docked = ColumnDock::new(DockEdge::Left, DockMode::Docked); RegistryViewport { base_width: None, columns: vec![ diff --git a/cmux-tui/spec/commands.md b/cmux-tui/spec/commands.md index 3e62e9d50585..8fddee721371 100644 --- a/cmux-tui/spec/commands.md +++ b/cmux-tui/spec/commands.md @@ -110,7 +110,7 @@ Servers advertising `viewport-column-resize-v1` include `viewport_base_width` wh `columns` lists the horizontal viewport columns in order while viewport layout is active and is omitted otherwise. `id` is the column's stable id (also `after_column` in `move-tab-to-column`), `width` its fraction of the frontend viewport, and `layout` the split tree inside it. -Servers advertising `dock-columns-v1` add `dock` to a column pinned with `set-column-dock` and omit it for a scrolling column. `edge` is the viewport edge the frontend keeps the column at while the other columns scroll. With `mode:"docked"` the column's width is taken out of the scrolling area; with `mode:"overlay"` it floats above the scrolling columns. A screen has at most one docked column per edge and always at least one scrolling column. `columns` keeps the stored order, so a client without the capability renders a docked column in place. The flag moves with the column, persists across daemon restarts, is restored by `undo-layout`, and disappears with the column. A new column is never docked unless `move-tab-to-column` names `dock`. When removing columns would leave only docked columns, the server clears their flags; when the screen collapses to one column, `columns` is omitted. +Servers advertising `dock-columns-v1` add `dock` to a column pinned with `set-column-dock` and omit it for a scrolling column. `edge` is the viewport edge the frontend keeps the column at while the other columns scroll. With `mode:"docked"` the column's width is taken out of the scrolling area; with `mode:"overlay"` it floats above the scrolling columns. A screen has at most one docked column per edge and always at least one scrolling column. `columns` keeps the stored order, so a client without the capability renders a docked column in place. The flag moves with the column, persists across daemon restarts, is restored by `undo-layout`, and disappears with the column. A new column is never docked unless `move-tab-to-column` names `dock`. When removing columns would leave only docked columns, the server clears their flags; when the screen collapses to one column, `columns` is omitted. With `dock-column-role-v1`, `dock.role` names what the column is for (`"agent_chat"`: the agent chat column of cmux next); it is omitted when unset, kept with the pin, and dropped when the column is unpinned or pinned again without one. Servers advertising `edge-docks-v1` also pin columns to the `top` or `bottom` edge: a screen-wide band the frontend draws above or below the scrolling columns. Such a column carries `dock` (same shape as `dock`) instead of `dock`, so a client without the capability renders it as an ordinary column. The per-edge, at-least-one-scrolling and normalization rules cover all four edges. A top or bottom pin persists outside the screen's stored viewport record, so a daemon without the capability reads the column as an ordinary one. @@ -317,7 +317,7 @@ With `launch-snapshot-v1`, `launch_snapshot_path` is the absolute path of the se `capabilities` is additive build-level feature negotiation within a protocol version. Clients must treat a missing field as an empty list. `daemon-handoff-force-v1` advertises the optional `force` field on `shutdown-daemon`. `browser-provider-v1` advertises the trusted-local, connection-scoped native browser provider lease used by cmux-browser and local automation. `browser-pointer-frame-guard-v1` advertises authoritative `pointer_frame_seq` and `pointer_frame_floor_seq` browser attach/frame state plus the additive `browser-frame-presented`, `browser-mouse-guarded`, and `browser-wheel-guarded` commands. Each admitted bitmap receives a new guard even when its document and dimensions match the previous bitmap. The reported floor through latest range proves route membership only. `browser-frame-presented` advances one exact acknowledged token for that connection, and only that token authorizes a new guarded pointer action. A guarded pointer command implicitly acknowledges its own token. Each connection retains one token, while the bounded browser input queue owns actions admitted before a later presentation. Navigation or geometry changes clear the range and all acknowledgements. An accepted press keeps its original guard for motion across ordinary repaints while document and geometry remain valid; invalidation suppresses further motion but retains its balancing release. A capable client echoes that value in `set-client-info`; browser attach requires the bilateral capability while PTY attach remains available without it. The legacy `browser-mouse` and `browser-wheel` schemas retain their optional guard, but guarded servers reject a missing guard before surface lookup. `viewport-splits-v1` advertises `new-pane-right` and the `Screen.viewport_splits` field. `viewport-column-resize-v1` advertises `set-viewport-pane-width` and `Screen.viewport_base_width`. `pane-browser-kind-v1` advertises `kind` and `url` on `split` and `new-pane-right`: `kind:"browser"` with a non-empty `url` puts a browser tab at that URL in the new pane, through the same `pane.split` commit and restart recovery as a terminal pane; public `pane.split` stays terminal-only. `layout-undo-v1` advertises server-owned structural layout history and `undo-layout`. `view-attachment-lease-v1` returns a connection-owned lease for each attach and enables lease-fenced sizing. `view-attachment-detach-v1` enables targeted stream cleanup. `creation-receipts-v1` enables idempotent destination creation, `creation-attempt-keys-v1` separates a stable correlation from the same-key or new-key execution attempt selected by `session.creation.resolve`, and `creation-selector-fallbacks-v1` adds bounded ordered destination continuations. `provider-managed-workspace-authority-v2` advertises pre-provisioned provider ownership and authority-gated post-provider rename and close commits. `terminal-idle-close-v1` advertises `set-terminal-idle-policy` and the owner-side reaper that closes a terminal after its policy elapses with no attached view. `terminal-pending-sequence-v1` advertises the separate `pending` field on byte-attach `vt-state` and `resized` events; a client that echoes it in `set-client-info` receives it (see `events.md`). `terminal-placement-env-v1` advertises a caller-chosen `terminal_id` on `new-tab`, `split`, `new-pane`, and `new-pane-right`, `cwd` and `env` on `new-pane` and `new-pane-right`, and `terminal_id`/`terminal_incarnation` in all four results. `terminal-resources-v1` advertises `terminal-resources`, which reads the CPU time and memory of each terminal's shell, descendants, and terminal host at request time. `batch-close-v1` advertises `close-tabs` and the optional `end_terminals` field on `close-pane`, `close-screen`, `close-workspace`, and `close-tab-group`: many placements and the terminals they end close in one durable commit. `end-terminals-keep-layout-v1` advertises `keep_layout` on `shutdown-daemon`: with `end_terminals`, placed terminals keep their tabs across the handoff. `terminal-reap-v1` advertises the owner-side reaper that ends a terminal after it has had no tab placement for the reap grace period (active only when the daemon was started with `--terminal-reap-grace-seconds`), `set-terminal-keep`, the `keep` field on `new-tab`, `split`, and `create-terminal`, the `terminal-reaped` event, and `end_terminals` on `shutdown-daemon`. `dock-columns-v1` advertises `set-column-dock` and the optional `Screen.columns[].dock` field for every edge; the resource API operation `column.update` (resource-operations-v2.json) sets the same flag and the column width. `terminal-env-v1` advertises the per-terminal `env` object on `new-tab`, `split`, and `create-terminal`, and `cwd` on `split`. `tab-groups-v1` advertises Chrome-style tab groups: the `*-tab-group` commands, `Pane.tab_groups`, and `Tab.group`. `saved-tab-groups-v1` advertises saved groups: `save-tab-group`, `unsave-tab-group`, `delete-saved-tab-group`, `list-saved-tab-groups`, and `reopen-saved-tab-group`. `notification-ack-v1` advertises `ack-tab-notifications`, `list-notifications`, durable notification acknowledgement, and `Workspace.unread_count`. `tab-drag-v1` advertises the single-command tab drag outcomes `move-tab-to-split`, `move-tab-to-column`, and `move-tab-to-new-workspace`, layout undo for same-screen tab drags and cross-pane `move-tab`, and the optional `transaction` field on every drag command, echoed in the resulting `tab-changed` delta. `tab-workspace-name-v1` advertises the optional `name` field on `move-tab-to-new-workspace`: the new workspace takes that name in the same commit. `frontend-browser-tabs-v1` advertises `new-frontend-browser-tab`, `update-frontend-browser-tab`, and the frontend browser tab fields. `tab-metadata-v1` advertises `set-tab-pinned`, pinned-first tab order, the `Tab.pinned`, `Tab.cwd`, `Tab.git_branch`, and `Tab.git_detached` fields, and the `tab-changed` delta. `workspace-metadata-v1` advertises `set-workspace-metadata`, the `Workspace.color`, `Workspace.icon`, and `Workspace.title` fields, and the `workspace-changed` delta. `workspace-pin-v1` advertises the `pinned` field on `set-workspace-metadata` and `Workspace.pinned`. `notification-mark-unread-v1` advertises the `marked_unread` field on `set-workspace-metadata` and `Workspace.marked_unread`. `workspace-groups-v1` advertises durable sidebar groups: the `*-workspace-group` commands, `move-workspace-to-group`, `Tree.groups`, and `Workspace.group`. `loopback-forward-v1` advertises multiplexed TCP streams to the daemon machine's own loopback services (see "Loopback forwarding"); a Unix client echoes it in `set-client-info` before its first `loopback-open`. `fs-v1` advertises the `fs.*` file ops and their byte streams (see "File system (fs-v1)"); only cmux Cloud hosts serve it. `session-identity-v1` advertises `identify.session_id` (the durable `registry_id`, stable across restarts and upgrades) and `identify.machine_name` (the host name, at most 255 bytes, no control characters). `profiles-v1` advertises the home session's personal state: `list-personal`, the `*-profile` room commands, `set-profile-follows`, `pin-workspace`, `unpin-workspace`, `put-session`, `forget-session`, `import-session-organization`, the `*-personal-group` commands, `set-personal-workspace`, and the `personal-changed` event. `personal-terminals-v1` advertises `set-personal-terminal` and `list-personal.terminals`. `screen-metadata-v1` advertises `set-screen-metadata`, `set-screen-pinned`, `move-screen`, the `screen_name`, `color`, `icon`, `pinned`, `index`, `group`, and `cwd` fields on `new-screen` (whose result then also carries `screen`), the `Screen.color`, `Screen.icon`, `Screen.pinned`, and `Screen.group` fields, and the `screen-changed` delta. `screen-groups-v1` advertises Chrome-style screen groups: the `*-screen-group` commands, saved screen groups, and `Workspace.screen_groups`. `browser-profiles-v1` advertises browser profile records in personal state: `browser_profiles` in `list-personal` and `create-browser-profile`, `update-browser-profile`, `move-browser-profile`, and `delete-browser-profile`. `notification-source-v1` advertises `source` on `notify`, the `notification` event, the tab `notification` marker, and `list-notifications` rows (`extra.source` in resource notification snapshots), and daemon-side desktop notifications from terminal output (OSC 9, OSC 777 `notify`, kitty OSC 99) with source `terminal`. `terminal-shell-args-v1` advertises `shell_args` on `new-tab`, `split`, `new-pane`, `new-pane-right`, and `create-terminal`: the terminal runs its `SHELL` from `env` (else the daemon's default shell) with those arguments, so a frontend can apply Ghostty's argv-based shell integration (bash `--posix` with `ENV`, nushell `--execute`). `terminal-frontend-shell-integration-v1` lets a frontend that resolves Ghostty's shell integration itself (from the user's `shell-integration` and `shell-integration-features`, into the terminal's `env` and `shell_args`) echo it in `set-client-info`; the terminals that connection creates with a `SHELL` in `env` then run that shell exactly as given (stored as `argv`), with no host-added integration, on `new-tab`, `split`, `new-pane`, `new-pane-right`, `new-row`, `create-terminal`, and a terminal `respawn`; without a `SHELL` the host integrates as before. `new-workspace`, `new-screen` and the reopen-saved-group commands take no `env` and keep the host integration. `screen-terminal-env-v1` advertises `env`, `terminal_id`, and `shell_args` on `new-screen` (the first terminal takes them as on `new-pane`, including `terminal-frontend-shell-integration-v1`) and `terminal_id` in its result. `launch-snapshot-v1` advertises `launch_snapshot_path` in `identify` and the launch snapshot file described there. `state-resources-v1` advertises the `cmux.protocol/2` state resources (workspace metadata, tab pins and tab groups, personal workspace groups, rooms and saved tab groups, screen metadata, order and screen groups, closed history, ephemeral workspaces, and workspace status, progress and log; see `resource-api-v2.md`), `extra.state` on session snapshots, and `state_upsert`/`state_delete` changes on `session.events`. `window-records-v1` advertises `window_record.list`, `window_record.put` and `window_record.delete` (see `resource-api-v2.md`). `frontend-browser-owner-v1` advertises `owner` on `new-frontend-browser-tab` and `update-frontend-browser-tab`, `Tab.browser_owner`, `tab.update {owner}` and the tab's `extra.owner`. `frontend-browser-tab-keys-v1` advertises `idempotency_key` on `new-frontend-browser-tab` and `replayed` in its result: a retry with the same key returns the tab the first request created. The raw screen commands of `screen-metadata-v1` and `screen-groups-v1` and the v2 `screen.*` and `screen_group.*` operations read and write one storage and publish the same changes. `workspace-kind-v1` advertises `workspace.ensure_home` and `extra.kind` on workspace snapshots (see `resource-api-v2.md`). `workspace-agent-folder-v1` advertises `workspace.agent_folder.set` and `extra.agent_folder` on workspace snapshots (see `resource-api-v2.md`). `personal-mixed-order-v1` advertises one personal order for groups and loose workspaces: `top_index` on `workspace_group.update`, on `WorkspaceGroupSnapshot` and on `list-personal` groups, `workspace.list {order}`, and the personal row of a new workspace in its creation commit (see `resource-api-v2.md`). `conversation-tabs-v1` advertises `new-conversation-tab`, the canonical `conversation` tab kind, and `capabilities` on `client.metadata.update`; a client that echoes it in `set-client-info` or `client.metadata.update` reads conversation tabs in their canonical form. `agent-session-tabs-v1` advertises the `agent_session` source of `new-conversation-tab` (an acpmux agent session on the install `host`; its tabs are ordinary store tabs that move, split and close like any tab) and `bind-conversation-tab-session`; a client that echoes it as well reads agent session tabs in their canonical form, and any other connection reads them as `browser` tabs without `conversation`. `page-tabs-v1` advertises the `page` source of `new-conversation-tab` (one of the app's own pages, such as the App Store or Settings; its tabs are ordinary store tabs); a client that echoes it as well reads page tabs in their canonical form, and any other connection reads them as `browser` tabs without `conversation`. `close-reason-v1` advertises `reason` on `close-tabs`: `session_end` closes without a closed-history record. `conversation-tab-transaction-v1` advertises `transaction` on `new-conversation-tab`: the created tab's `tab-added` delta and the result echo it. `browser-host-provider-v1` advertises `browser-host-provider`: the verified local app gets the provider credentials of the daemon's own browser host. `frontend-browser-activate-v1` advertises `activate` on `new-frontend-browser-tab`. `bookmarks-v1` advertises one bookmark tree per browser profile: `list-bookmarks`, `create-bookmark`, `update-bookmark`, `move-bookmark`, `delete-bookmark`, `import-bookmarks`, the `bookmarks-changed` event, and `deleted_bookmarks` in the `delete-browser-profile` result. `origin-claim-v1` advertises `client-hello` step 1, the optional `origin` claim on `cmux.protocol/2` requests, and `origin.confirmation.issue` (see "client-hello" and `resource-api-v2.md`, "Request origin"). `terminal-clipboard-read-v1` advertises the OSC 52 clipboard-read broker: `terminal-clipboard-subscribe`, `terminal-clipboard-reply`, and the targeted `terminal-clipboard-read` and `terminal-clipboard-read-cancelled` control events (see "Terminal clipboard reads"). . -`capabilities` is additive build-level feature negotiation within a protocol version. Clients must treat a missing field as an empty list. `daemon-handoff-force-v1` advertises the optional `force` field on `shutdown-daemon`. `browser-provider-v1` advertises the trusted-local, connection-scoped native browser provider lease used by cmux-browser and local automation. `browser-pointer-frame-guard-v1` advertises authoritative `pointer_frame_seq` and `pointer_frame_floor_seq` browser attach/frame state plus the additive `browser-frame-presented`, `browser-mouse-guarded`, and `browser-wheel-guarded` commands. Each admitted bitmap receives a new guard even when its document and dimensions match the previous bitmap. The reported floor through latest range proves route membership only. `browser-frame-presented` advances one exact acknowledged token for that connection, and only that token authorizes a new guarded pointer action. A guarded pointer command implicitly acknowledges its own token. Each connection retains one token, while the bounded browser input queue owns actions admitted before a later presentation. Navigation or geometry changes clear the range and all acknowledgements. An accepted press keeps its original guard for motion across ordinary repaints while document and geometry remain valid; invalidation suppresses further motion but retains its balancing release. A capable client echoes that value in `set-client-info`; browser attach requires the bilateral capability while PTY attach remains available without it. The legacy `browser-mouse` and `browser-wheel` schemas retain their optional guard, but guarded servers reject a missing guard before surface lookup. `viewport-splits-v1` advertises `new-pane-right` and the `Screen.viewport_splits` field. `viewport-column-resize-v1` advertises `set-viewport-pane-width` and `Screen.viewport_base_width`. `pane-browser-kind-v1` advertises `kind` and `url` on `split` and `new-pane-right`: `kind:"browser"` with a non-empty `url` puts a browser tab at that URL in the new pane, through the same `pane.split` commit and restart recovery as a terminal pane; public `pane.split` stays terminal-only. `dock-columns-v1` advertises `set-column-dock` and the optional `Screen.columns[].dock` field for every edge. `edge-docks-v1` advertises the edges `top` and `bottom` on `set-column-dock` and on `dock` in `move-tab-to-column` (the `dock` field itself needs `dock-columns-v1`). `rows-v1` advertises `new-row`, `set-row-heights`, and the optional `Screen.columns[].rows` field. `layout-undo-v1` advertises server-owned structural layout history and `undo-layout`. `view-attachment-lease-v1` returns a connection-owned lease for each attach and enables lease-fenced sizing. `view-attachment-detach-v1` enables targeted stream cleanup. `creation-receipts-v1` enables idempotent destination creation, `creation-attempt-keys-v1` separates a stable correlation from the same-key or new-key execution attempt selected by `session.creation.resolve`, and `creation-selector-fallbacks-v1` adds bounded ordered destination continuations. `provider-managed-workspace-authority-v2` advertises pre-provisioned provider ownership and authority-gated post-provider rename and close commits. `terminal-idle-close-v1` advertises `set-terminal-idle-policy` and the owner-side reaper that closes a terminal after its policy elapses with no attached view. `terminal-pending-sequence-v1` advertises the separate `pending` field on byte-attach `vt-state` and `resized` events; a client that echoes it in `set-client-info` receives it (see `events.md`). `terminal-placement-env-v1` advertises a caller-chosen `terminal_id` on `new-tab`, `split`, `new-pane`, and `new-pane-right`, `cwd` and `env` on `new-pane` and `new-pane-right`, and `terminal_id`/`terminal_incarnation` in all four results. `terminal-resources-v1` advertises `terminal-resources`, which reads the CPU time and memory of each terminal's shell, descendants, and terminal host at request time. `batch-close-v1` advertises `close-tabs` and the optional `end_terminals` field on `close-pane`, `close-screen`, `close-workspace`, and `close-tab-group`: many placements and the terminals they end close in one durable commit. `end-terminals-keep-layout-v1` advertises `keep_layout` on `shutdown-daemon`: with `end_terminals`, placed terminals keep their tabs across the handoff. `terminal-reap-v1` advertises the owner-side reaper that ends a terminal after it has had no tab placement for the reap grace period (active only when the daemon was started with `--terminal-reap-grace-seconds`), `set-terminal-keep`, the `keep` field on `new-tab`, `split`, and `create-terminal`, the `terminal-reaped` event, and `end_terminals` on `shutdown-daemon`. `terminal-env-v1` advertises the per-terminal `env` object on `new-tab`, `split`, and `create-terminal`, and `cwd` on `split`. `tab-groups-v1` advertises tab groups: the `*-tab-group` commands, `Pane.tab_groups`, and `Tab.group`. `saved-tab-groups-v1` advertises saved groups: `save-tab-group`, `unsave-tab-group`, `delete-saved-tab-group`, `list-saved-tab-groups`, and `reopen-saved-tab-group`. `notification-ack-v1` advertises `ack-tab-notifications`, `list-notifications`, durable notification acknowledgement, and `Workspace.unread_count`. `tab-drag-v1` advertises the single-command tab drag outcomes `move-tab-to-split`, `move-tab-to-column`, and `move-tab-to-new-workspace`, layout undo for same-screen tab drags and cross-pane `move-tab`, and the optional `transaction` field on every drag command, echoed in the resulting `tab-changed` delta. `tab-workspace-name-v1` advertises the optional `name` field on `move-tab-to-new-workspace`: the new workspace takes that name in the same commit. `tab-split-respawn-v1` advertises `respawn` on `move-tab-to-split`: a pane's only tab dropped on its own pane's edge splits that pane and leaves a fresh tab of the same kind behind. `tab-column-respawn-v1` advertises `respawn` on `move-tab-to-column`: a pane's only tab moves into the new column and leaves a fresh tab of the same kind in its pane. `frontend-browser-tabs-v1` advertises `new-frontend-browser-tab`, `update-frontend-browser-tab`, and the frontend browser tab fields. `frontend-browser-history-v1` advertises `set-frontend-browser-history` and `get-frontend-browser-history`: an opaque per-tab session history object for frontend-rendered browsers, stored durably outside the tree. `tab-metadata-v1` advertises `set-tab-pinned`, pinned-first tab order, the `Tab.pinned`, `Tab.cwd`, `Tab.git_branch`, and `Tab.git_detached` fields, and the `tab-changed` delta. `workspace-metadata-v1` advertises `set-workspace-metadata`, the `Workspace.color`, `Workspace.icon`, and `Workspace.title` fields, and the `workspace-changed` delta. `workspace-pin-v1` advertises the `pinned` field on `set-workspace-metadata` and `Workspace.pinned`. `notification-mark-unread-v1` advertises the `marked_unread` field on `set-workspace-metadata` and `Workspace.marked_unread`. `workspace-groups-v1` advertises durable sidebar groups: the `*-workspace-group` commands, `move-workspace-to-group`, `Tree.groups`, and `Workspace.group`. `loopback-forward-v1` advertises multiplexed TCP streams to the daemon machine's own loopback services (see "Loopback forwarding"); a Unix client echoes it in `set-client-info` before its first `loopback-open`. `fs-v1` advertises the `fs.*` file ops and their byte streams (see "File system (fs-v1)"); only cmux Cloud hosts serve it. `session-identity-v1` advertises `identify.session_id` (the durable `registry_id`, stable across restarts and upgrades) and `identify.machine_name` (the host name, at most 255 bytes, no control characters). `profiles-v1` advertises the home session's personal state: `list-personal`, the `*-profile` room commands, `set-profile-follows`, `pin-workspace`, `unpin-workspace`, `put-session`, `forget-session`, `import-session-organization`, the `*-personal-group` commands, `set-personal-workspace`, and the `personal-changed` event. `personal-terminals-v1` advertises `set-personal-terminal` and `list-personal.terminals`. `screen-metadata-v1` advertises `set-screen-metadata`, `set-screen-pinned`, `move-screen`, the `screen_name`, `color`, `icon`, `pinned`, `index`, `group`, and `cwd` fields on `new-screen` (whose result then also carries `screen`), the `Screen.color`, `Screen.icon`, `Screen.pinned`, and `Screen.group` fields, and the `screen-changed` delta. `screen-groups-v1` advertises screen groups: the `*-screen-group` commands, saved screen groups, and `Workspace.screen_groups`. `browser-profiles-v1` advertises browser profile records in personal state: `browser_profiles` in `list-personal` and `create-browser-profile`, `update-browser-profile`, `move-browser-profile`, and `delete-browser-profile`. `conversation-search-v1` advertises `conversation-search` on the local conversation owner. `local-attachments-v1` advertises `attachment` message parts on the local conversation owner and the `conversation-attachment-upload` and `conversation-attachment-read` commands on trusted local connections. `local-conversations-v1` advertises the local conversation owner on trusted local connections: `conversation-list`, `conversation-create`, `conversation-snapshot`, `conversation-history`, `conversation-op`, `conversation-typing`, `conversation-bind`, `conversation-agent-token`, `conversation-import`, and the `conversation-changed` and `conversation-typing` events. `notification-source-v1` advertises `source` on `notify`, the `notification` event, the tab `notification` marker, and `list-notifications` rows (`extra.source` in resource notification snapshots), and daemon-side desktop notifications from terminal output (OSC 9, OSC 777 `notify`, kitty OSC 99) with source `terminal`. `terminal-shell-args-v1` advertises `shell_args` on `new-tab`, `split`, `new-pane`, `new-pane-right`, and `create-terminal`: the terminal runs its `SHELL` from `env` (else the daemon's default shell) with those arguments, so a frontend can apply Ghostty's argv-based shell integration (bash `--posix` with `ENV`, nushell `--execute`). `terminal-frontend-shell-integration-v1` lets a frontend that resolves Ghostty's shell integration itself (from the user's `shell-integration` and `shell-integration-features`, into the terminal's `env` and `shell_args`) echo it in `set-client-info`; the terminals that connection creates with a `SHELL` in `env` then run that shell exactly as given (stored as `argv`), with no host-added integration, on `new-tab`, `split`, `new-pane`, `new-pane-right`, `new-row`, `create-terminal`, and a terminal `respawn`; without a `SHELL` the host integrates as before. `new-workspace` and the reopen-saved-group commands take no `env` and keep the host integration; `new-screen` follows it with `screen-terminal-env-v1`. `screen-terminal-env-v1` advertises `env`, `terminal_id`, and `shell_args` on `new-screen` (the first terminal takes them as on `new-pane`, including `terminal-frontend-shell-integration-v1`) and `terminal_id` in its result. `launch-snapshot-v1` advertises `launch_snapshot_path` in `identify` and the launch snapshot file described there. `close-reason-v1` advertises `reason` on `close-tabs`: `session_end` closes without a closed-history record. `conversation-tab-transaction-v1` advertises `transaction` on `new-conversation-tab`: the created tab's `tab-added` delta and the result echo it. `browser-host-provider-v1` advertises `browser-host-provider`: the verified local app gets the provider credentials of the daemon's own browser host. `frontend-browser-activate-v1` advertises `activate` on `new-frontend-browser-tab`. `bookmarks-v1` advertises one bookmark tree per browser profile: `list-bookmarks`, `create-bookmark`, `update-bookmark`, `move-bookmark`, `delete-bookmark`, `import-bookmarks`, the `bookmarks-changed` event, and `deleted_bookmarks` in the `delete-browser-profile` result. `cloud-conversations-v1` (advertised only when the daemon has a cloud transport) advertises the cloud conversations proxy on trusted local connections: the `cloud-session-*`, `cloud-inbox-*` and `cloud-conversation-*` commands and the `cloud-*` events (plans/cmux-next/home-cloud-proxy.md). `origin-claim-v1` advertises `client-hello` step 1, the optional `origin` claim on `cmux.protocol/2` requests, and `origin.confirmation.issue` (see "client-hello" and `resource-api-v2.md`, "Request origin"). `terminal-clipboard-read-v1` advertises the OSC 52 clipboard-read broker: `terminal-clipboard-subscribe`, `terminal-clipboard-reply`, and the targeted `terminal-clipboard-read` and `terminal-clipboard-read-cancelled` control events (see "Terminal clipboard reads"). +`capabilities` is additive build-level feature negotiation within a protocol version. Clients must treat a missing field as an empty list. `daemon-handoff-force-v1` advertises the optional `force` field on `shutdown-daemon`. `browser-provider-v1` advertises the trusted-local, connection-scoped native browser provider lease used by cmux-browser and local automation. `browser-pointer-frame-guard-v1` advertises authoritative `pointer_frame_seq` and `pointer_frame_floor_seq` browser attach/frame state plus the additive `browser-frame-presented`, `browser-mouse-guarded`, and `browser-wheel-guarded` commands. Each admitted bitmap receives a new guard even when its document and dimensions match the previous bitmap. The reported floor through latest range proves route membership only. `browser-frame-presented` advances one exact acknowledged token for that connection, and only that token authorizes a new guarded pointer action. A guarded pointer command implicitly acknowledges its own token. Each connection retains one token, while the bounded browser input queue owns actions admitted before a later presentation. Navigation or geometry changes clear the range and all acknowledgements. An accepted press keeps its original guard for motion across ordinary repaints while document and geometry remain valid; invalidation suppresses further motion but retains its balancing release. A capable client echoes that value in `set-client-info`; browser attach requires the bilateral capability while PTY attach remains available without it. The legacy `browser-mouse` and `browser-wheel` schemas retain their optional guard, but guarded servers reject a missing guard before surface lookup. `viewport-splits-v1` advertises `new-pane-right` and the `Screen.viewport_splits` field. `viewport-column-resize-v1` advertises `set-viewport-pane-width` and `Screen.viewport_base_width`. `pane-browser-kind-v1` advertises `kind` and `url` on `split` and `new-pane-right`: `kind:"browser"` with a non-empty `url` puts a browser tab at that URL in the new pane, through the same `pane.split` commit and restart recovery as a terminal pane; public `pane.split` stays terminal-only. `dock-columns-v1` advertises `set-column-dock` and the optional `Screen.columns[].dock` field for every edge. `edge-docks-v1` advertises the edges `top` and `bottom` on `set-column-dock` and on `dock` in `move-tab-to-column` (the `dock` field itself needs `dock-columns-v1`). `dock-column-role-v1` advertises `role` on `set-column-dock` and on `dock` in `move-tab-to-column`, and `Screen.columns[].dock.role`. `rows-v1` advertises `new-row`, `set-row-heights`, and the optional `Screen.columns[].rows` field. `layout-undo-v1` advertises server-owned structural layout history and `undo-layout`. `view-attachment-lease-v1` returns a connection-owned lease for each attach and enables lease-fenced sizing. `view-attachment-detach-v1` enables targeted stream cleanup. `creation-receipts-v1` enables idempotent destination creation, `creation-attempt-keys-v1` separates a stable correlation from the same-key or new-key execution attempt selected by `session.creation.resolve`, and `creation-selector-fallbacks-v1` adds bounded ordered destination continuations. `provider-managed-workspace-authority-v2` advertises pre-provisioned provider ownership and authority-gated post-provider rename and close commits. `terminal-idle-close-v1` advertises `set-terminal-idle-policy` and the owner-side reaper that closes a terminal after its policy elapses with no attached view. `terminal-pending-sequence-v1` advertises the separate `pending` field on byte-attach `vt-state` and `resized` events; a client that echoes it in `set-client-info` receives it (see `events.md`). `terminal-placement-env-v1` advertises a caller-chosen `terminal_id` on `new-tab`, `split`, `new-pane`, and `new-pane-right`, `cwd` and `env` on `new-pane` and `new-pane-right`, and `terminal_id`/`terminal_incarnation` in all four results. `terminal-resources-v1` advertises `terminal-resources`, which reads the CPU time and memory of each terminal's shell, descendants, and terminal host at request time. `batch-close-v1` advertises `close-tabs` and the optional `end_terminals` field on `close-pane`, `close-screen`, `close-workspace`, and `close-tab-group`: many placements and the terminals they end close in one durable commit. `end-terminals-keep-layout-v1` advertises `keep_layout` on `shutdown-daemon`: with `end_terminals`, placed terminals keep their tabs across the handoff. `terminal-reap-v1` advertises the owner-side reaper that ends a terminal after it has had no tab placement for the reap grace period (active only when the daemon was started with `--terminal-reap-grace-seconds`), `set-terminal-keep`, the `keep` field on `new-tab`, `split`, and `create-terminal`, the `terminal-reaped` event, and `end_terminals` on `shutdown-daemon`. `terminal-env-v1` advertises the per-terminal `env` object on `new-tab`, `split`, and `create-terminal`, and `cwd` on `split`. `tab-groups-v1` advertises tab groups: the `*-tab-group` commands, `Pane.tab_groups`, and `Tab.group`. `saved-tab-groups-v1` advertises saved groups: `save-tab-group`, `unsave-tab-group`, `delete-saved-tab-group`, `list-saved-tab-groups`, and `reopen-saved-tab-group`. `notification-ack-v1` advertises `ack-tab-notifications`, `list-notifications`, durable notification acknowledgement, and `Workspace.unread_count`. `tab-drag-v1` advertises the single-command tab drag outcomes `move-tab-to-split`, `move-tab-to-column`, and `move-tab-to-new-workspace`, layout undo for same-screen tab drags and cross-pane `move-tab`, and the optional `transaction` field on every drag command, echoed in the resulting `tab-changed` delta. `tab-workspace-name-v1` advertises the optional `name` field on `move-tab-to-new-workspace`: the new workspace takes that name in the same commit. `tab-split-respawn-v1` advertises `respawn` on `move-tab-to-split`: a pane's only tab dropped on its own pane's edge splits that pane and leaves a fresh tab of the same kind behind. `tab-column-respawn-v1` advertises `respawn` on `move-tab-to-column`: a pane's only tab moves into the new column and leaves a fresh tab of the same kind in its pane. `frontend-browser-tabs-v1` advertises `new-frontend-browser-tab`, `update-frontend-browser-tab`, and the frontend browser tab fields. `frontend-browser-history-v1` advertises `set-frontend-browser-history` and `get-frontend-browser-history`: an opaque per-tab session history object for frontend-rendered browsers, stored durably outside the tree. `tab-metadata-v1` advertises `set-tab-pinned`, pinned-first tab order, the `Tab.pinned`, `Tab.cwd`, `Tab.git_branch`, and `Tab.git_detached` fields, and the `tab-changed` delta. `workspace-metadata-v1` advertises `set-workspace-metadata`, the `Workspace.color`, `Workspace.icon`, and `Workspace.title` fields, and the `workspace-changed` delta. `workspace-pin-v1` advertises the `pinned` field on `set-workspace-metadata` and `Workspace.pinned`. `notification-mark-unread-v1` advertises the `marked_unread` field on `set-workspace-metadata` and `Workspace.marked_unread`. `workspace-groups-v1` advertises durable sidebar groups: the `*-workspace-group` commands, `move-workspace-to-group`, `Tree.groups`, and `Workspace.group`. `loopback-forward-v1` advertises multiplexed TCP streams to the daemon machine's own loopback services (see "Loopback forwarding"); a Unix client echoes it in `set-client-info` before its first `loopback-open`. `fs-v1` advertises the `fs.*` file ops and their byte streams (see "File system (fs-v1)"); only cmux Cloud hosts serve it. `session-identity-v1` advertises `identify.session_id` (the durable `registry_id`, stable across restarts and upgrades) and `identify.machine_name` (the host name, at most 255 bytes, no control characters). `profiles-v1` advertises the home session's personal state: `list-personal`, the `*-profile` room commands, `set-profile-follows`, `pin-workspace`, `unpin-workspace`, `put-session`, `forget-session`, `import-session-organization`, the `*-personal-group` commands, `set-personal-workspace`, and the `personal-changed` event. `personal-terminals-v1` advertises `set-personal-terminal` and `list-personal.terminals`. `screen-metadata-v1` advertises `set-screen-metadata`, `set-screen-pinned`, `move-screen`, the `screen_name`, `color`, `icon`, `pinned`, `index`, `group`, and `cwd` fields on `new-screen` (whose result then also carries `screen`), the `Screen.color`, `Screen.icon`, `Screen.pinned`, and `Screen.group` fields, and the `screen-changed` delta. `screen-groups-v1` advertises screen groups: the `*-screen-group` commands, saved screen groups, and `Workspace.screen_groups`. `browser-profiles-v1` advertises browser profile records in personal state: `browser_profiles` in `list-personal` and `create-browser-profile`, `update-browser-profile`, `move-browser-profile`, and `delete-browser-profile`. `conversation-search-v1` advertises `conversation-search` on the local conversation owner. `local-attachments-v1` advertises `attachment` message parts on the local conversation owner and the `conversation-attachment-upload` and `conversation-attachment-read` commands on trusted local connections. `local-conversations-v1` advertises the local conversation owner on trusted local connections: `conversation-list`, `conversation-create`, `conversation-snapshot`, `conversation-history`, `conversation-op`, `conversation-typing`, `conversation-bind`, `conversation-agent-token`, `conversation-import`, and the `conversation-changed` and `conversation-typing` events. `notification-source-v1` advertises `source` on `notify`, the `notification` event, the tab `notification` marker, and `list-notifications` rows (`extra.source` in resource notification snapshots), and daemon-side desktop notifications from terminal output (OSC 9, OSC 777 `notify`, kitty OSC 99) with source `terminal`. `terminal-shell-args-v1` advertises `shell_args` on `new-tab`, `split`, `new-pane`, `new-pane-right`, and `create-terminal`: the terminal runs its `SHELL` from `env` (else the daemon's default shell) with those arguments, so a frontend can apply Ghostty's argv-based shell integration (bash `--posix` with `ENV`, nushell `--execute`). `terminal-frontend-shell-integration-v1` lets a frontend that resolves Ghostty's shell integration itself (from the user's `shell-integration` and `shell-integration-features`, into the terminal's `env` and `shell_args`) echo it in `set-client-info`; the terminals that connection creates with a `SHELL` in `env` then run that shell exactly as given (stored as `argv`), with no host-added integration, on `new-tab`, `split`, `new-pane`, `new-pane-right`, `new-row`, `create-terminal`, and a terminal `respawn`; without a `SHELL` the host integrates as before. `new-workspace` and the reopen-saved-group commands take no `env` and keep the host integration; `new-screen` follows it with `screen-terminal-env-v1`. `screen-terminal-env-v1` advertises `env`, `terminal_id`, and `shell_args` on `new-screen` (the first terminal takes them as on `new-pane`, including `terminal-frontend-shell-integration-v1`) and `terminal_id` in its result. `launch-snapshot-v1` advertises `launch_snapshot_path` in `identify` and the launch snapshot file described there. `close-reason-v1` advertises `reason` on `close-tabs`: `session_end` closes without a closed-history record. `conversation-tab-transaction-v1` advertises `transaction` on `new-conversation-tab`: the created tab's `tab-added` delta and the result echo it. `browser-host-provider-v1` advertises `browser-host-provider`: the verified local app gets the provider credentials of the daemon's own browser host. `frontend-browser-activate-v1` advertises `activate` on `new-frontend-browser-tab`. `bookmarks-v1` advertises one bookmark tree per browser profile: `list-bookmarks`, `create-bookmark`, `update-bookmark`, `move-bookmark`, `delete-bookmark`, `import-bookmarks`, the `bookmarks-changed` event, and `deleted_bookmarks` in the `delete-browser-profile` result. `cloud-conversations-v1` (advertised only when the daemon has a cloud transport) advertises the cloud conversations proxy on trusted local connections: the `cloud-session-*`, `cloud-inbox-*` and `cloud-conversation-*` commands and the `cloud-*` events (plans/cmux-next/home-cloud-proxy.md). `origin-claim-v1` advertises `client-hello` step 1, the optional `origin` claim on `cmux.protocol/2` requests, and `origin.confirmation.issue` (see "client-hello" and `resource-api-v2.md`, "Request origin"). `terminal-clipboard-read-v1` advertises the OSC 52 clipboard-read broker: `terminal-clipboard-subscribe`, `terminal-clipboard-reply`, and the targeted `terminal-clipboard-read` and `terminal-clipboard-read-cancelled` control events (see "Terminal clipboard reads"). Errors: @@ -2276,12 +2276,13 @@ Params: | `dock` | boolean | required | `false` unpins | | `edge` | string | default `"right"` | `"left"` or `"right"`, and `"top"` or `"bottom"` with `edge-docks-v1`; validated even when `dock` is false | | `mode` | string | default `"docked"` | `"docked"` or `"overlay"`; validated even when `dock` is false | +| `role` | string | default null | `"agent_chat"` with `dock-column-role-v1`; validated even when `dock` is false; a pin without it has no role | | `transaction` | `uint64` | default null | Changes with the same connection and transaction coalesce into one undo entry | Result: ```text -object{column:Id,dock:object{edge:"left"|"right",mode:"docked"|"overlay"}|null,transaction?:uint64} +object{column:Id,dock:object{edge:"left"|"right",mode:"docked"|"overlay",role?:"agent_chat"}|null,transaction?:uint64} ``` `column` is the column's `Screen.columns[].id` and `dock` its flag after the request. A screen without `columns` is one implicit column: pinning it fails with `dock-column-last-scrolling` (at least one column must scroll) and unpinning succeeds with `column: 0` and no change. `transaction` echoes the request's value and is omitted when the request had none. The `screen-changed` delta of a change carries the same transaction as a decimal string (the delta's `transaction` field is a string). @@ -2292,7 +2293,7 @@ Errors: | --- | --- | --- | | `pane has no viewport column` | `viewport-column-not-found` | Pane is unknown | | `at least one column must scroll` | `dock-column-last-scrolling` | The change would leave no scrolling column | -| `bad edge ...` / `bad mode ...` | `invalid-argument` | `edge` or `mode` is not one of the listed strings | +| `bad edge ...` / `bad mode ...` / `bad role ...` | `invalid-argument` | `edge`, `mode` or `role` is not one of the listed strings | | `bad request: ...` | none | Missing fields or wrong JSON type | CLI mapping: none. The resource CLI has no verb for this command; frontends send it directly. @@ -4875,7 +4876,7 @@ Params: | `screen` | `Id` | exactly one of `pane`/`screen` | Destination screen | | `after_column` | `Id` | default: after the last column | Column (`Screen.columns[].id`) to insert after | | `width` | float | default 2/3 | Column width as a fraction of the viewport, 0.1 through 1.0 | -| `dock` | `ColumnPin` | optional; `edge-docks-v1` | `{edge:"left"\|"right"\|"top"\|"bottom", mode:"docked"\|"overlay"}`: pins the new column to that edge in the same commit, with the rules of `set-column-dock` (the column that held the edge scrolls again) | +| `dock` | `ColumnPin` | optional; `edge-docks-v1` | `{edge:"left"\|"right"\|"top"\|"bottom", mode:"docked"\|"overlay", role?:"agent_chat"}`: pins the new column to that edge in the same commit, with the rules of `set-column-dock` (the column that held the edge scrolls again); `role` needs `dock-column-role-v1`, and an unknown role is dropped | | `respawn` | `SplitRespawn` | optional; `tab-column-respawn-v1` | As in `move-tab-to-split`; only for the pane's only tab: the pane keeps a fresh tab of that kind, created before the move, so the column the tab leaves stays | | `transaction` | string | optional | As in `move-tab-to-split` | diff --git a/cmux-tui/spec/sdk-schema.json b/cmux-tui/spec/sdk-schema.json index 113ce07e467e..a92b7577c68e 100644 --- a/cmux-tui/spec/sdk-schema.json +++ b/cmux-tui/spec/sdk-schema.json @@ -6215,6 +6215,17 @@ }, "presence": "required", "nullable": false + }, + "role": { + "type": { + "kind": "scalar", + "name": "string" + }, + "presence": "optional", + "nullable": true, + "default": null, + "since": 12, + "capability": "dock-column-role-v1" } }, "additional_properties": false @@ -11465,6 +11476,17 @@ "nullable": true, "default": null }, + "role": { + "type": { + "kind": "scalar", + "name": "string" + }, + "presence": "optional", + "nullable": true, + "default": null, + "since": 12, + "capability": "dock-column-role-v1" + }, "transaction": { "type": { "kind": "scalar", @@ -11483,7 +11505,7 @@ }, "stream": null, "constraints": [ - "edge is \"left\" or \"right\" (default \"right\"); mode is \"docked\" or \"overlay\" (default \"docked\").", + "edge is \"left\" or \"right\" (default \"right\"); mode is \"docked\" or \"overlay\" (default \"docked\"). role is \"agent_chat\" with dock-column-role-v1 (default none).", "See spec/commands.md for the result object." ] }, diff --git a/plans/cmux-next/daemon-capabilities.json b/plans/cmux-next/daemon-capabilities.json index ba8ad7080c70..1d3cb13fa7aa 100644 --- a/plans/cmux-next/daemon-capabilities.json +++ b/plans/cmux-next/daemon-capabilities.json @@ -13,6 +13,7 @@ "conversation-tabs-v1", "creation-attempt-keys-v1", "creation-receipts-v1", + "dock-column-role-v1", "dock-columns-v1", "edge-docks-v1", "end-terminals-keep-layout-v1", diff --git a/plans/cmux-next/dock-column.md b/plans/cmux-next/dock-column.md index 7888fbde4eb8..277792e8bf18 100644 --- a/plans/cmux-next/dock-column.md +++ b/plans/cmux-next/dock-column.md @@ -27,6 +27,12 @@ docked column per edge per screen (making another column docked on that edge und in the same commit); at least one column scrolls (`dock-column-last-scrolling`); new columns are never docked; column order is unchanged, so older clients render the column in place. +A dock may carry a role (`dock.role`, capability `dock-column-role-v1`). The one role is +`agent_chat`: the agent chat column of the two-column layout (lawrence-call-1006 D). It is set with +the pin (`set-column-dock` `role`, or `role` in `move-tab-to-column`'s `dock`), journaled and +restored with it, dropped when the column is unpinned or pinned again without it, and read as no +role by a build that does not know it. The app keeps new tools out of a column with that role. + ## Geometry (S1 to S6) - S1. The first docked column per edge in daemon order holds it; any other docked column scrolls. From 763a51fdb734c3dcebcd9c93fc995af1cd0fa647 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Tue, 6 Oct 2026 18:18:42 -0700 Subject: [PATCH 3/5] test(cmux-sdk): build ColumnPin with its optional role Co-Authored-By: Claude Opus 5.5 --- cmux-tui/bindings/rust/tests/dock_field_capability.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmux-tui/bindings/rust/tests/dock_field_capability.rs b/cmux-tui/bindings/rust/tests/dock_field_capability.rs index 04f14f2a3b05..a1e398db9573 100644 --- a/cmux-tui/bindings/rust/tests/dock_field_capability.rs +++ b/cmux-tui/bindings/rust/tests/dock_field_capability.rs @@ -61,7 +61,11 @@ fn daemon(capabilities: &'static [&'static str]) -> (PathBuf, thread::JoinHandle fn docked_move() -> MoveTabToColumnRequest { MoveTabToColumnRequest { after_column: Optional::Missing, - dock: Optional::Value(ColumnPin { edge: "right".to_string(), mode: "docked".to_string() }), + dock: Optional::Value(ColumnPin { + edge: "right".to_string(), + mode: "docked".to_string(), + role: Optional::Missing, + }), pane: Optional::Value(3), respawn: Optional::Missing, screen: Optional::Missing, From 25bda556afc52138b76b9b8c6b843b90ffd0aedf Mon Sep 17 00:00:00 2001 From: Leo Li Date: Wed, 7 Oct 2026 00:51:37 -0700 Subject: [PATCH 4/5] refactor(cmux-next): DockRole in its own file (god-file limit) Co-Authored-By: Claude Opus 5.5 --- .../CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift | 7 ------- .../CmuxNext/Sources/CmuxNextLayout/Model/DockRole.swift | 6 ++++++ 2 files changed, 6 insertions(+), 7 deletions(-) create mode 100644 Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockRole.swift diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift index b7f6e3543ebb..ffc35fb3dad9 100644 --- a/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockColumn.swift @@ -22,13 +22,6 @@ public nonisolated enum DockMode: String, Hashable, Sendable, CaseIterable { public var toggled: DockMode { self == .docked ? .overlay : .docked } } -/// What a docked column is for (daemon `dock.role`, `dock-column-role-v1`). -public nonisolated enum DockRole: String, Hashable, Sendable { - /// The agent chat column: new terminals and browsers open beside it, - /// never in it (lawrence-call-1006 D). - case agentChat -} - /// A column pinned to one edge of the viewport. Daemon `columns[].dock` /// (`dock-columns-v1`); at most one per edge per screen. public nonisolated struct DockColumn: Hashable, Sendable { diff --git a/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockRole.swift b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockRole.swift new file mode 100644 index 000000000000..a02a446f7e4b --- /dev/null +++ b/Packages/macOS/CmuxNext/Sources/CmuxNextLayout/Model/DockRole.swift @@ -0,0 +1,6 @@ +/// What a docked column is for (daemon `dock.role`, `dock-column-role-v1`). +public nonisolated enum DockRole: String, Hashable, Sendable { + /// The agent chat column: new terminals and browsers open beside it, + /// never in it (lawrence-call-1006 D). + case agentChat +} From 0c2a49f4645b963e254c917839e9243421d452d6 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Wed, 7 Oct 2026 00:52:34 -0700 Subject: [PATCH 5/5] style(cmux-tui): rustfmt the merged permanent-dock test Co-Authored-By: Claude Opus 5.5 --- .../src/server/dock_columns_tests.rs | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs b/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs index cbd5621c9c6f..aacad5c31693 100644 --- a/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs +++ b/cmux-tui/crates/cmux-tui-core/src/server/dock_columns_tests.rs @@ -865,20 +865,12 @@ fn permanent_dock_column_refuses_a_tab_move_that_empties_it() { #[test] fn permanent_flag_is_stored_only_when_set() { use crate::model::{ColumnDock, DockEdge, DockMode}; - let pinned = ColumnDock { - edge: DockEdge::Left, - mode: DockMode::Docked, - role: None, - permanent: true, - }; + let pinned = + ColumnDock { edge: DockEdge::Left, mode: DockMode::Docked, role: None, permanent: true }; let text = serde_json::to_string(&pinned).unwrap(); assert!(text.contains("\"permanent\":true"), "{text}"); - let plain = ColumnDock { - edge: DockEdge::Left, - mode: DockMode::Docked, - role: None, - permanent: false, - }; + let plain = + ColumnDock { edge: DockEdge::Left, mode: DockMode::Docked, role: None, permanent: false }; assert!(!serde_json::to_string(&plain).unwrap().contains("permanent"), "omitted when false"); let old: ColumnDock = serde_json::from_str(r#"{"edge":"left","mode":"docked"}"#).unwrap(); assert!(!old.permanent, "a record written before the flag reads as not permanent");