aboutsummaryrefslogtreecommitdiff
path: root/docs/next/api/herdr-api.schema.json
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-01 15:48:22 +0300
committerGitHub <noreply@github.com>2026-09-01 15:48:22 +0300
commit207be3c771d281baae6e5fa0fb74be9a056e97a2 (patch)
treed7b037ecdf629224a048c841d11659efdc23507d /docs/next/api/herdr-api.schema.json
parent8a6d697308162874a236c84aac0b0f8c7ac01f83 (diff)
refactor: render the shell in the client (#3487)
* feat: add opt-in client-rendered shell * feat: add client-owned shell mouse controls * feat: complete client-owned shell chrome * feat: add client-owned shell settings and notifications * feat: run client shell custom commands * feat: render popup terminals in client shell * feat: add client-owned scrollback and copy mode * fix: preserve client worktree trust defaults * feat: render startup diagnostics in client shell * feat: render onboarding in client shell * feat: render product announcements in client shell * feat: render release notes in client shell * feat: render mobile switcher in client shell * feat: render kitty graphics in client shell * fix: preserve client shell lifecycle coherence * refactor: route client shell commands through endpoint connections * refactor: make the client-rendered shell the default * refactor: remove monolithic launch mode * refactor: complete client-rendered shell cutover * perf: retain client pane surface updates * perf: scale retained pane surface updates * perf: remove remote pane input latency * test: make client shell checks platform-independent * fix: prevent client timer starvation * test: fix client shell platform gates * test: accept retained surfaces in cross-area checks * test: make client mode assertions platform-neutral * fix: badge only outdated integrations
Diffstat (limited to 'docs/next/api/herdr-api.schema.json')
-rw-r--r--docs/next/api/herdr-api.schema.json650
1 files changed, 650 insertions, 0 deletions
diff --git a/docs/next/api/herdr-api.schema.json b/docs/next/api/herdr-api.schema.json
index aa0a8c22..8bc06f10 100644
--- a/docs/next/api/herdr-api.schema.json
+++ b/docs/next/api/herdr-api.schema.json
@@ -1700,6 +1700,47 @@
],
"type": "object"
},
+ "CommandInvokeParams": {
+ "properties": {
+ "command_id": {
+ "description": "Opaque endpoint-issued command identifier from the client-shell projection.",
+ "type": "string"
+ },
+ "pane_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "selection": {
+ "anyOf": [
+ {
+ "$ref": "#/schemas/request/$defs/PaneSelectionReadParams"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Client-owned selection coordinates, validated against the pane's content revision."
+ },
+ "tab_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "workspace_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "command_id"
+ ],
+ "type": "object"
+ },
"EmptyParams": {
"type": "object"
},
@@ -2403,6 +2444,94 @@
],
"type": "object"
},
+ "PaneCopyMotion": {
+ "enum": [
+ "line_end",
+ "first_non_blank",
+ "next_word_start",
+ "previous_word_start",
+ "next_word_end",
+ "next_big_word_start",
+ "previous_big_word_start",
+ "next_big_word_end",
+ "previous_paragraph",
+ "next_paragraph"
+ ],
+ "type": "string"
+ },
+ "PaneCopyMotionParams": {
+ "properties": {
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "cursor": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ },
+ "motion": {
+ "$ref": "#/schemas/request/$defs/PaneCopyMotion"
+ },
+ "pane_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "pane_id",
+ "cursor",
+ "motion"
+ ],
+ "type": "object"
+ },
+ "PaneCopySearchDirection": {
+ "enum": [
+ "forward",
+ "backward"
+ ],
+ "type": "string"
+ },
+ "PaneCopySearchParams": {
+ "properties": {
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "cursor": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ },
+ "direction": {
+ "$ref": "#/schemas/request/$defs/PaneCopySearchDirection"
+ },
+ "pane_id": {
+ "type": "string"
+ },
+ "previous": {
+ "anyOf": [
+ {
+ "$ref": "#/schemas/request/$defs/PaneTextRange"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "query": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "pane_id",
+ "query",
+ "direction",
+ "cursor",
+ "content_revision"
+ ],
+ "type": "object"
+ },
"PaneCurrentParams": {
"properties": {
"caller_pane_id": {
@@ -2581,6 +2710,47 @@
},
"type": "object"
},
+ "PaneLinkActivateParams": {
+ "properties": {
+ "col": {
+ "format": "uint16",
+ "maximum": 65535,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "offset_from_bottom": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "pane_id": {
+ "type": "string"
+ },
+ "viewport_row": {
+ "format": "uint16",
+ "maximum": 65535,
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "pane_id",
+ "viewport_row",
+ "col"
+ ],
+ "type": "object"
+ },
"PaneListParams": {
"properties": {
"workspace_id": {
@@ -3011,6 +3181,50 @@
],
"type": "string"
},
+ "PaneScrollParams": {
+ "properties": {
+ "offset_from_bottom": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "pane_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "pane_id",
+ "offset_from_bottom"
+ ],
+ "type": "object"
+ },
+ "PaneSelectionReadParams": {
+ "properties": {
+ "anchor": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ },
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "cursor": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ },
+ "pane_id": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "pane_id",
+ "anchor",
+ "cursor"
+ ],
+ "type": "object"
+ },
"PaneSendInputParams": {
"properties": {
"keys": {
@@ -3158,6 +3372,41 @@
],
"type": "object"
},
+ "PaneTextPoint": {
+ "properties": {
+ "col": {
+ "format": "uint16",
+ "maximum": 65535,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "row": {
+ "format": "uint32",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "row",
+ "col"
+ ],
+ "type": "object"
+ },
+ "PaneTextRange": {
+ "properties": {
+ "end": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ },
+ "start": {
+ "$ref": "#/schemas/request/$defs/PaneTextPoint"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
"PaneWaitForOutputParams": {
"properties": {
"lines": {
@@ -3631,6 +3880,21 @@
}
]
},
+ "ProductAnnouncementDismissParams": {
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "version",
+ "id"
+ ],
+ "type": "object"
+ },
"ReadFormat": {
"enum": [
"text",
@@ -3647,6 +3911,17 @@
],
"type": "string"
},
+ "ReleaseNotesDismissParams": {
+ "properties": {
+ "version": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "version"
+ ],
+ "type": "object"
+ },
"ServerLiveHandoffParams": {
"properties": {
"expected_protocol": {
@@ -4182,6 +4457,13 @@
"string",
"null"
]
+ },
+ "source_workspace_id": {
+ "description": "Workspace whose focused pane supplies the `follow` cwd policy.",
+ "type": [
+ "string",
+ "null"
+ ]
}
},
"type": "object"
@@ -4568,6 +4850,54 @@
{
"properties": {
"method": {
+ "const": "product_announcement.dismiss",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/ProductAnnouncementDismissParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "release_notes.dismiss",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/ReleaseNotesDismissParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "command.invoke",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/CommandInvokeParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
"const": "client.window_title.set",
"type": "string"
},
@@ -5336,6 +5666,86 @@
{
"properties": {
"method": {
+ "const": "pane.scroll",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneScrollParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "pane.edit_scrollback",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneTarget"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "pane.selection.read",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneSelectionReadParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "pane.copy_motion",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneCopyMotionParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
+ "const": "pane.copy_search",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneCopySearchParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
"const": "pane.list",
"type": "string"
},
@@ -5416,6 +5826,22 @@
{
"properties": {
"method": {
+ "const": "pane.link.activate",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/PaneLinkActivateParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
"const": "pane.rename",
"type": "string"
},
@@ -5704,6 +6130,22 @@
{
"properties": {
"method": {
+ "const": "integration.list",
+ "type": "string"
+ },
+ "params": {
+ "$ref": "#/schemas/request/$defs/EmptyParams"
+ }
+ },
+ "required": [
+ "method",
+ "params"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "method": {
"const": "integration.install",
"type": "string"
},
@@ -7171,6 +7613,33 @@
],
"type": "object"
},
+ "IntegrationInfo": {
+ "properties": {
+ "available": {
+ "type": "boolean"
+ },
+ "command": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "state": {
+ "$ref": "#/schemas/success_response/$defs/IntegrationState"
+ },
+ "target": {
+ "$ref": "#/schemas/success_response/$defs/IntegrationTarget"
+ }
+ },
+ "required": [
+ "target",
+ "label",
+ "command",
+ "available",
+ "state"
+ ],
+ "type": "object"
+ },
"IntegrationInstallResult": {
"properties": {
"messages": {
@@ -7185,6 +7654,14 @@
],
"type": "object"
},
+ "IntegrationState": {
+ "enum": [
+ "not_installed",
+ "current",
+ "outdated"
+ ],
+ "type": "string"
+ },
"IntegrationTarget": {
"enum": [
"pi",
@@ -8012,6 +8489,41 @@
],
"type": "object"
},
+ "PaneTextPoint": {
+ "properties": {
+ "col": {
+ "format": "uint16",
+ "maximum": 65535,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "row": {
+ "format": "uint32",
+ "minimum": 0,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "row",
+ "col"
+ ],
+ "type": "object"
+ },
+ "PaneTextRange": {
+ "properties": {
+ "end": {
+ "$ref": "#/schemas/success_response/$defs/PaneTextPoint"
+ },
+ "start": {
+ "$ref": "#/schemas/success_response/$defs/PaneTextPoint"
+ }
+ },
+ "required": [
+ "start",
+ "end"
+ ],
+ "type": "object"
+ },
"PaneZoomReason": {
"enum": [
"single_pane",
@@ -9282,6 +9794,103 @@
},
{
"properties": {
+ "pane_id": {
+ "type": "string"
+ },
+ "text": {
+ "type": "string"
+ },
+ "type": {
+ "const": "pane_selection",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "pane_id",
+ "text"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "cursor": {
+ "$ref": "#/schemas/success_response/$defs/PaneTextPoint"
+ },
+ "pane_id": {
+ "type": "string"
+ },
+ "type": {
+ "const": "pane_copy_motion",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "pane_id",
+ "cursor",
+ "content_revision"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "content_revision": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "current": {
+ "format": "uint32",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "current_global": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "matches": {
+ "items": {
+ "$ref": "#/schemas/success_response/$defs/PaneTextRange"
+ },
+ "type": "array"
+ },
+ "pane_id": {
+ "type": "string"
+ },
+ "total": {
+ "format": "uint64",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "type": {
+ "const": "pane_copy_search",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "pane_id",
+ "content_revision",
+ "matches",
+ "total"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
"revision": {
"format": "uint64",
"minimum": 0,
@@ -9498,6 +10107,25 @@
},
{
"properties": {
+ "integrations": {
+ "items": {
+ "$ref": "#/schemas/success_response/$defs/IntegrationInfo"
+ },
+ "type": "array"
+ },
+ "type": {
+ "const": "integration_list",
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "integrations"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
"details": {
"$ref": "#/schemas/success_response/$defs/IntegrationInstallResult"
},
@@ -9720,6 +10348,28 @@
},
{
"properties": {
+ "handled": {
+ "type": "boolean"
+ },
+ "type": {
+ "const": "pane_link_activated",
+ "type": "string"
+ },
+ "url": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "type",
+ "handled"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
"logs": {
"items": {
"$ref": "#/schemas/success_response/$defs/PluginCommandLogInfo"