runpane 2.3.1 → 2.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70,6 +70,11 @@ export declare const RUNPANE_CONTRACT: {
70
70
  readonly name: "doctor";
71
71
  readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
72
72
  readonly usage: readonly ["runpane doctor"];
73
+ }, {
74
+ readonly name: "agent-context";
75
+ readonly summary: "Print token-efficient Pane command context for coding agents.";
76
+ readonly usage: readonly ["runpane agent-context [--json]", "runpane agent-context --command <command> [--json]"];
77
+ readonly jsonSchemas: readonly ["agentContextBriefResult", "agentContextCommandResult"];
73
78
  }, {
74
79
  readonly name: "repos list";
75
80
  readonly summary: "List repositories saved in the running Pane app.";
@@ -81,12 +86,33 @@ export declare const RUNPANE_CONTRACT: {
81
86
  readonly usage: readonly ["runpane repos add --path <path> [--name <name>] [--json] [--yes]"];
82
87
  readonly mutates: true;
83
88
  readonly jsonSchemas: readonly ["repoAddRequest", "repoAddResult"];
89
+ }, {
90
+ readonly name: "panes list";
91
+ readonly summary: "List Pane sessions in a saved repository.";
92
+ readonly usage: readonly ["runpane panes list [--repo <selector>] [--json]"];
93
+ readonly jsonSchemas: readonly ["paneListResult"];
84
94
  }, {
85
95
  readonly name: "panes create";
86
96
  readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
87
97
  readonly usage: readonly ["runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", "runpane panes create --from-json <path|-> [--yes] [--json]"];
88
98
  readonly mutates: true;
89
99
  readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
100
+ }, {
101
+ readonly name: "panels list";
102
+ readonly summary: "List tool panels inside a Pane session.";
103
+ readonly usage: readonly ["runpane panels list --pane <pane-id> [--json]"];
104
+ readonly jsonSchemas: readonly ["panelListResult"];
105
+ }, {
106
+ readonly name: "panels output";
107
+ readonly summary: "Read recent terminal output from a panel.";
108
+ readonly usage: readonly ["runpane panels output --panel <panel-id> [--limit <count>] [--json]"];
109
+ readonly jsonSchemas: readonly ["panelOutputResult"];
110
+ }, {
111
+ readonly name: "panels input";
112
+ readonly summary: "Send input bytes to a terminal panel.";
113
+ readonly usage: readonly ["runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"];
114
+ readonly mutates: true;
115
+ readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
90
116
  }];
91
117
  readonly flags: {
92
118
  readonly wrapper: readonly [{
@@ -160,6 +186,14 @@ export declare const RUNPANE_CONTRACT: {
160
186
  readonly name: "--repo";
161
187
  readonly value: "<selector>";
162
188
  readonly description: "Repository selector: active, id, exact path, or saved repository name.";
189
+ }, {
190
+ readonly name: "--pane";
191
+ readonly value: "<pane-id>";
192
+ readonly description: "Pane/session id to inspect.";
193
+ }, {
194
+ readonly name: "--panel";
195
+ readonly value: "<panel-id>";
196
+ readonly description: "Tool panel id to inspect or control.";
163
197
  }, {
164
198
  readonly name: "--path";
165
199
  readonly value: "<path>";
@@ -205,6 +239,18 @@ export declare const RUNPANE_CONTRACT: {
205
239
  readonly name: "--timeout-ms";
206
240
  readonly value: "<milliseconds>";
207
241
  readonly description: "Maximum time to wait for each pane creation job.";
242
+ }, {
243
+ readonly name: "--limit";
244
+ readonly value: "<count>";
245
+ readonly description: "Maximum number of output records to read.";
246
+ }, {
247
+ readonly name: "--text";
248
+ readonly value: "<text>";
249
+ readonly description: "Text bytes to send to a terminal panel.";
250
+ }, {
251
+ readonly name: "--input-file";
252
+ readonly value: "<path|->";
253
+ readonly description: "Read panel input from a file or stdin.";
208
254
  }];
209
255
  readonly localBoolean: readonly [{
210
256
  readonly name: "--json";
@@ -213,7 +259,7 @@ export declare const RUNPANE_CONTRACT: {
213
259
  };
214
260
  readonly help: {
215
261
  readonly npm: {
216
- readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane help [command]", "", "Quick start:", " npx --yes runpane@latest", " npm i -g runpane && runpane setup", "", "Advanced examples:", " npx --yes runpane@latest install client", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest", " pipx run runpane", "", "Run \"runpane help panes create\" for pane orchestration options."];
262
+ readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane agent-context [--json]", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane panels list --pane <pane-id> [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> --text <text> --yes", " runpane help [command]", "", "Quick start:", " npx --yes runpane@latest", " npm i -g runpane && runpane setup", "", "Advanced examples:", " npx --yes runpane@latest install client", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest", " pipx run runpane", "", "Run \"runpane agent-context\" when an agent needs Pane command context.", "Run \"runpane help panes create\" for pane orchestration options."];
217
263
  readonly install: readonly ["Usage:", " runpane install [client|daemon] [options]", "", "Examples:", " npx --yes runpane@latest install client", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest install daemon --prefer-tunnel ssh --label \"VM\"", "", "Wrapper options:", " --version <latest|vX.Y.Z> Pane release to install", " --format <auto|appimage|deb|dmg|zip|exe>", " --download-dir <path>", " --pane-path <path> Use an existing Pane executable", " --dry-run Print the plan without downloading", " --yes Skip interactive prompts where possible", " --verbose", "", "Daemon passthrough options:", " --label <name>", " --prefer-tunnel <tailscale|ssh|manual|auto>", " --channel <stable|nightly>", " --base-url <url>", " --pane-dir <path>", " --listen-port <port> / --port <port>", " --auto-listen-port", " --interactive-tailscale-setup", " --no-install-service", " --no-tailscale-serve", " --print-only", " --repo-ref <ref>"];
218
264
  readonly setup: readonly ["Usage:", " runpane setup", "", "Opens the guided setup for desktop install, remote host setup, update, and diagnostics.", "", "Quick start:", " npx --yes runpane@latest", " npm i -g runpane && runpane setup"];
219
265
  readonly update: readonly ["Usage:", " runpane update [options]", "", "Updates Pane using the same artifact selection as \"runpane install client\".", "", "Options:", " --version <latest|vX.Y.Z>", " --format <auto|appimage|deb|dmg|zip|exe>", " --download-dir <path>", " --pane-path <path>", " --dry-run", " --yes", " --verbose"];
@@ -221,10 +267,15 @@ export declare const RUNPANE_CONTRACT: {
221
267
  readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
222
268
  readonly "repos list": readonly ["Usage:", " runpane repos list [--json] [--pane-dir <path>]", "", "Lists repositories saved in the running Pane app.", "", "Options:", " --json Print machine-readable output", " --pane-dir <path> Connect to a specific Pane data directory"];
223
269
  readonly "repos add": readonly ["Usage:", " runpane repos add --path <path> [--name <name>] [--json] [--yes]", "", "Registers an existing git repository with the running Pane app.", "", "Options:", " --path <path> Existing git repository path", " --name <name> Saved repository name; defaults to the directory name", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --dry-run Validate and preview without adding the repo", " --yes Skip confirmation for mutating commands"];
270
+ readonly "panes list": readonly ["Usage:", " runpane panes list [--repo <selector>] [--json]", "", "Lists Pane sessions. Pass --repo to limit results to one saved repository.", "", "Options:", " --repo <selector> active, id, exact path, or saved repository name", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
224
271
  readonly "panes create": readonly ["Usage:", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", " runpane panes create --from-json <path|-> [--yes] [--json]", "", "Creates Pane sessions in a saved repository and opens a terminal-backed tool tab.", "", "Options:", " --repo <selector> active, id, exact path, or saved repository name", " --name <name> Pane/session name", " --worktree-name <name> Worktree name; defaults to --name", " --base-branch <branch> Base branch for the worktree", " --agent <codex|claude> Built-in terminal template", " --tool-command <command> Custom terminal command", " --title <title> Terminal tab title", " --initial-input <text> Text sent after the command is ready", " --prompt <text> Alias for --initial-input", " --initial-input-file <path|-> Read initial input from a file or stdin", " --from-json <path|-> Read a full request payload", " --timeout-ms <milliseconds> Pane creation timeout", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --dry-run Validate and preview without creating panes", " --yes Skip confirmation for mutating commands"];
272
+ readonly "panels list": readonly ["Usage:", " runpane panels list --pane <pane-id> [--json]", "", "Lists tool panels in a Pane session.", "", "Options:", " --pane <pane-id> Pane/session id", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
273
+ readonly "panels output": readonly ["Usage:", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", "", "Reads recent terminal output records from a panel.", "", "Options:", " --panel <panel-id> Tool panel id", " --limit <count> Maximum output records to read", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
274
+ readonly "panels input": readonly ["Usage:", " runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", "", "Sends exact input bytes to a terminal panel. Include a newline in the input when you mean Enter.", "", "Options:", " --panel <panel-id> Terminal panel id", " --text <text> Text bytes to send", " --input-file <path|-> Read input from a file or stdin", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --yes Skip confirmation for mutating commands"];
275
+ readonly "agent-context": readonly ["Usage:", " runpane agent-context [--json]", " runpane agent-context --command <command> [--json]", "", "Prints Pane command context for coding agents without requiring a running Pane app.", "", "Options:", " --command <command> Print the full definition for one runpane command", " --json Print machine-readable output", "", "Examples:", " runpane agent-context", " runpane agent-context --json", " runpane agent-context --command \"panes create\"", " runpane agent-context --command \"panes create\" --json"];
225
276
  };
226
277
  readonly pip: {
227
- readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane help [command]", "", "Quick start:", " pipx run runpane", " python -m pip install runpane && python -m runpane setup", "", "Advanced examples:", " pipx run runpane install client", " pipx run runpane install daemon --label \"My Server\"", " uvx runpane@latest", "", "Run \"runpane help panes create\" for pane orchestration options."];
278
+ readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane agent-context [--json]", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane panels list --pane <pane-id> [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> --text <text> --yes", " runpane help [command]", "", "Quick start:", " pipx run runpane", " python -m pip install runpane && python -m runpane setup", "", "Advanced examples:", " pipx run runpane install client", " pipx run runpane install daemon --label \"My Server\"", " uvx runpane@latest", "", "Run \"runpane agent-context\" when an agent needs Pane command context.", "Run \"runpane help panes create\" for pane orchestration options."];
228
279
  readonly install: readonly ["Usage:", " runpane install [client|daemon] [options]", "", "Examples:", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest install daemon --prefer-tunnel ssh --label \"VM\"", " pipx run runpane install daemon --label \"My Server\"", "", "Wrapper options:", " --version <latest|vX.Y.Z>", " --format <auto|appimage|deb|dmg|zip|exe>", " --download-dir <path>", " --pane-path <path>", " --dry-run", " --yes", " --verbose", "", "Daemon passthrough options:", " --label <name>", " --prefer-tunnel <tailscale|ssh|manual|auto>", " --channel <stable|nightly>", " --base-url <url>", " --pane-dir <path>", " --listen-port <port> / --port <port>", " --auto-listen-port", " --interactive-tailscale-setup", " --no-install-service", " --no-tailscale-serve", " --print-only", " --repo-ref <ref>"];
229
280
  readonly setup: readonly ["Usage:", " runpane setup", "", "Opens the guided setup for desktop install, remote host setup, update, and diagnostics.", "", "Quick start:", " pipx run runpane", " python -m pip install runpane && python -m runpane setup"];
230
281
  readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
@@ -232,7 +283,12 @@ export declare const RUNPANE_CONTRACT: {
232
283
  readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
233
284
  readonly "repos list": readonly ["Usage:", " runpane repos list [--json] [--pane-dir <path>]", "", "Lists repositories saved in the running Pane app.", "", "Options:", " --json", " --pane-dir <path>"];
234
285
  readonly "repos add": readonly ["Usage:", " runpane repos add --path <path> [--name <name>] [--json] [--yes]", "", "Registers an existing git repository with the running Pane app.", "", "Options:", " --path <path>", " --name <name>", " --pane-dir <path>", " --json", " --dry-run", " --yes"];
286
+ readonly "panes list": readonly ["Usage:", " runpane panes list [--repo <selector>] [--json]", "", "Lists Pane sessions. Pass --repo to limit results to one saved repository.", "", "Options:", " --repo <selector>", " --pane-dir <path>", " --json"];
235
287
  readonly "panes create": readonly ["Usage:", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", " runpane panes create --from-json <path|-> [--yes] [--json]", "", "Creates Pane sessions in a saved repository and opens a terminal-backed tool tab.", "", "Options:", " --repo <selector>", " --name <name>", " --worktree-name <name>", " --base-branch <branch>", " --agent <codex|claude>", " --tool-command <command>", " --title <title>", " --initial-input <text>", " --prompt <text>", " --initial-input-file <path|->", " --from-json <path|->", " --timeout-ms <milliseconds>", " --pane-dir <path>", " --json", " --dry-run", " --yes"];
288
+ readonly "panels list": readonly ["Usage:", " runpane panels list --pane <pane-id> [--json]", "", "Lists tool panels in a Pane session.", "", "Options:", " --pane <pane-id>", " --pane-dir <path>", " --json"];
289
+ readonly "panels output": readonly ["Usage:", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", "", "Reads recent terminal output records from a panel.", "", "Options:", " --panel <panel-id>", " --limit <count>", " --pane-dir <path>", " --json"];
290
+ readonly "panels input": readonly ["Usage:", " runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", "", "Sends exact input bytes to a terminal panel. Include a newline in the input when you mean Enter.", "", "Options:", " --panel <panel-id>", " --text <text>", " --input-file <path|->", " --pane-dir <path>", " --json", " --yes"];
291
+ readonly "agent-context": readonly ["Usage:", " runpane agent-context [--json]", " runpane agent-context --command <command> [--json]", "", "Prints Pane command context for coding agents without requiring a running Pane app.", "", "Options:", " --command <command>", " --json", "", "Examples:", " runpane agent-context", " runpane agent-context --json", " runpane agent-context --command \"panes create\"", " runpane agent-context --command \"panes create\" --json"];
236
292
  };
237
293
  };
238
294
  readonly docs: {
@@ -241,17 +297,17 @@ export declare const RUNPANE_CONTRACT: {
241
297
  readonly npmCommands: readonly ["npx --yes runpane@latest", "npx --yes runpane@latest setup", "npx --yes runpane@latest install client", "npx --yes runpane@latest install daemon --label \"My Server\"", "pnpm dlx runpane@latest", "pnpm dlx runpane@latest install daemon --label \"My Server\"", "npm i -g runpane && runpane", "npm i -g runpane && runpane setup", "npm i -g runpane && runpane install daemon --label \"My Server\"", "pnpm add -g runpane && runpane", "pnpm add -g runpane && runpane setup", "pnpm add -g runpane && runpane install daemon --label \"My Server\"", "yarn dlx runpane@latest install daemon --label \"My Server\"", "bunx runpane@latest install daemon --label \"My Server\""];
242
298
  readonly pythonCommands: readonly ["pipx run runpane", "pipx run runpane setup", "python -m pip install runpane", "runpane", "runpane setup", "python -m runpane setup", "runpane install daemon --label \"My Server\"", "pipx install runpane", "runpane", "runpane setup", "pipx run runpane install daemon --label \"My Server\"", "uvx runpane@latest", "uvx runpane@latest setup", "uvx runpane@latest install daemon --label \"My Server\"", "python -m runpane install daemon --label \"My Server\""];
243
299
  readonly packageManagerNotes: readonly ["Use `pnpm dlx` for one-shot pnpm execution and `pnpm add -g` for persistent CLI installation.", "Do not document `pnpm install runpane` as the public CLI install path."];
244
- readonly commandUsages: readonly ["runpane", "runpane setup", "runpane install", "runpane install client", "runpane install daemon", "runpane update", "runpane version", "runpane doctor", "runpane repos list --json", "runpane repos add --path /path/to/repo --name Pane --yes --json", "runpane panes create --repo active --name issue-252 --agent codex --prompt \"Kick off the discussion skill for issue 252\" --yes", "runpane panes create --from-json panes.json --yes --json", "runpane help", "runpane <command> --help"];
245
- readonly commandDescriptions: readonly ["`runpane` with no arguments and `runpane setup` open an interactive wizard when stdin and stdout are TTYs. In non-interactive shells or CI, both forms must print help and exit successfully instead of waiting for input.", "`runpane install` is an alias for `runpane install client`.", "`runpane install client` downloads the selected Pane desktop artifact and installs, opens, or launches it for the current platform.", "`runpane install daemon` downloads or installs Pane, resolves a stable Pane executable path, and spawns `<pane executable> --remote-setup <forwarded remote setup args>`.", "The wrapper must stream Pane stdout/stderr without reformatting because `pane --remote-setup` prints the one-time `pane-remote://...` connection code.", "`runpane update` uses the same release resolution and installer path as `install client`.", "`runpane version` prints the wrapper package version, the installed Pane version when detectable, and the latest GitHub release version when reachable.", "`runpane doctor` checks platform support, release metadata reachability, download URL selection, installed Pane detection, and remote-daemon hints.", "`runpane repos list` connects to the running local Pane daemon and prints saved repository records.", "`runpane repos add` registers an existing git repository with the running local Pane daemon. It does not create directories or initialize git repositories by default.", "`runpane panes create` connects to the running local Pane daemon, resolves the requested repository, creates Pane sessions, opens terminal-backed tool tabs, and optionally sends initial input to the started tool.", "`runpane panes create --prompt` is an alias for `--initial-input`; request JSON and daemon payloads should use the canonical `initialInput` field."];
300
+ readonly commandUsages: readonly ["runpane", "runpane setup", "runpane install", "runpane install client", "runpane install daemon", "runpane update", "runpane version", "runpane doctor", "runpane agent-context", "runpane agent-context --command \"panes create\" --json", "runpane repos list --json", "runpane repos add --path /path/to/repo --name Pane --yes --json", "runpane panes list --repo active --json", "runpane panes create --repo active --name issue-252 --agent codex --prompt \"Kick off the discussion skill for issue 252\" --yes", "runpane panes create --from-json panes.json --yes --json", "runpane panels list --pane <pane-id> --json", "runpane panels output --panel <panel-id> --limit 200 --json", "runpane panels input --panel <panel-id> --text \"Continue\\n\" --yes --json", "runpane help", "runpane <command> --help"];
301
+ readonly commandDescriptions: readonly ["`runpane` with no arguments and `runpane setup` open an interactive wizard when stdin and stdout are TTYs. In non-interactive shells or CI, both forms must print help and exit successfully instead of waiting for input.", "`runpane install` is an alias for `runpane install client`.", "`runpane install client` downloads the selected Pane desktop artifact and installs, opens, or launches it for the current platform.", "`runpane install daemon` downloads or installs Pane, resolves a stable Pane executable path, and spawns `<pane executable> --remote-setup <forwarded remote setup args>`.", "The wrapper must stream Pane stdout/stderr without reformatting because `pane --remote-setup` prints the one-time `pane-remote://...` connection code.", "`runpane update` uses the same release resolution and installer path as `install client`.", "`runpane version` prints the wrapper package version, the installed Pane version when detectable, and the latest GitHub release version when reachable.", "`runpane doctor` checks platform support, release metadata reachability, download URL selection, installed Pane detection, and remote-daemon hints.", "`runpane agent-context` prints a brief, token-efficient command schema for coding agents without connecting to the Pane daemon.", "`runpane agent-context --command \"panes create\"` prints the detailed definition for one command. Add `--json` for machine-readable output.", "`runpane repos list` connects to the running local Pane daemon and prints saved repository records.", "`runpane repos add` registers an existing git repository with the running local Pane daemon. It does not create directories or initialize git repositories by default.", "`runpane panes list` lists Pane sessions, optionally scoped to one saved repository.", "`runpane panes create` connects to the running local Pane daemon, resolves the requested repository, creates Pane sessions, opens terminal-backed tool tabs, and optionally sends initial input to the started tool.", "`runpane panels list` lists tool panels inside one Pane session.", "`runpane panels output` reads recent terminal output records from one panel.", "`runpane panels input` sends exact input bytes to one terminal panel. Include a newline in the input when the agent means Enter.", "`runpane panes create --prompt` is an alias for `--initial-input`; request JSON and daemon payloads should use the canonical `initialInput` field.", "When running from WSL while Pane is installed on Windows, the Linux wrapper may look for a missing `/tmp/pane-daemon.../daemon.sock`. In that case invoke the Windows wrapper through PowerShell, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."];
246
302
  readonly wrapperFlagNote: "The top-level `runpane --version` form prints the wrapper version. The install subcommand form `runpane install --version vX.Y.Z` selects a Pane release.";
247
- readonly localControlFlagNote: "`runpane repos list` and `runpane panes create` use the local framed daemon socket/pipe for a running Pane app. `--pane-dir` points the wrapper at a non-default Pane data directory, such as `PANE_DIR=~/.pane_test` in development.";
303
+ readonly localControlFlagNote: "`runpane repos list`, `runpane panes list`, `runpane panes create`, and `runpane panels ...` commands use the local framed daemon socket/pipe for a running Pane app. `--pane-dir` points the wrapper at a non-default Pane data directory, such as `PANE_DIR=~/.pane_test` in development. `runpane agent-context` is local/offline and can be used before Pane is running. From WSL, if the user runs Windows Pane, call the Windows wrapper through `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane ...'` so the command can reach the Windows named-pipe daemon.";
248
304
  readonly daemonFlagNote: "Unknown daemon flags should be forwarded rather than dropped so newer Pane versions can extend `--remote-setup` without requiring an immediate wrapper release. Unknown flags for non-daemon commands should fail clearly.";
249
305
  readonly downloadAttribution: readonly ["The npm package uses `source=npm` for all npm-registry consumers, including `npx`, `pnpm dlx`, `yarn dlx`, `bunx`, and global npm/pnpm installs.", "The PyPI package uses `source=pip` for all Python consumers, including pip, pipx, uvx, and `python -m runpane`.", "Wrappers should prefer `https://runpane.com/api/download?platform=<platform>&arch=<arch>&format=<format>&version=<version>&channel=<channel>&source=<npm|pip>`.", "If the website route cannot satisfy the download, wrappers may fall back to the matching GitHub release asset and print a warning that website attribution may be incomplete for that run."];
250
306
  readonly publishingCredentials: readonly ["Local implementation, build, and dry-run validation do not need npm or PyPI API tokens.", "Release publishing should prefer npm Trusted Publishing and PyPI Trusted Publishing from GitHub Actions.", "Fallback `NPM_TOKEN` or `PYPI_API_TOKEN` credentials may be used for first package reservation or manual publication only. They must be supplied through local environment variables or GitHub Actions secrets, never committed, and revoked or rotated after use."];
251
307
  };
252
308
  readonly testFixtures: {
253
- readonly parserSamples: readonly [readonly ["setup"], readonly ["install"], readonly ["install", "client", "--version", "v2.2.8", "--format", "dmg", "--download-dir", "/tmp/pane-downloads", "--dry-run", "--yes"], readonly ["install", "daemon", "--label", "VM", "--prefer-tunnel", "ssh", "--channel", "nightly", "--base-url", "https://example.test", "--pane-dir", "/tmp/pane", "--listen-port", "4555", "--auto-listen-port", "--print-only", "--repo-ref", "main", "--unknown-future-flag", "future-value", "--dry-run", "--verbose"], readonly ["update", "--version", "latest", "--format", "appimage", "--pane-path", "/usr/bin/pane", "--dry-run"], readonly ["doctor", "--pane-path", "/usr/bin/pane", "--format", "zip", "--verbose"], readonly ["repos", "list", "--json", "--pane-dir", "/tmp/pane"], readonly ["repos", "add", "--path", "/tmp/repo", "--name", "Repo", "--dry-run", "--yes", "--json", "--pane-dir", "/tmp/pane"], readonly ["panes", "create", "--repo", "active", "--name", "issue-252", "--agent", "codex", "--prompt", "Kick off discussion", "--dry-run", "--yes", "--json"], readonly ["panes", "create", "--from-json", "-", "--yes", "--json"], readonly ["--version"]];
254
- readonly topLevelHelpIncludes: readonly ["runpane setup", "runpane install", "runpane update", "runpane version", "runpane doctor", "runpane repos list", "runpane repos add", "runpane panes create"];
309
+ readonly parserSamples: readonly [readonly ["setup"], readonly ["install"], readonly ["install", "client", "--version", "v2.2.8", "--format", "dmg", "--download-dir", "/tmp/pane-downloads", "--dry-run", "--yes"], readonly ["install", "daemon", "--label", "VM", "--prefer-tunnel", "ssh", "--channel", "nightly", "--base-url", "https://example.test", "--pane-dir", "/tmp/pane", "--listen-port", "4555", "--auto-listen-port", "--print-only", "--repo-ref", "main", "--unknown-future-flag", "future-value", "--dry-run", "--verbose"], readonly ["update", "--version", "latest", "--format", "appimage", "--pane-path", "/usr/bin/pane", "--dry-run"], readonly ["doctor", "--pane-path", "/usr/bin/pane", "--format", "zip", "--verbose"], readonly ["agent-context"], readonly ["agent-context", "--command", "panes create", "--json"], readonly ["repos", "list", "--json", "--pane-dir", "/tmp/pane"], readonly ["repos", "add", "--path", "/tmp/repo", "--name", "Repo", "--dry-run", "--yes", "--json", "--pane-dir", "/tmp/pane"], readonly ["panes", "list", "--repo", "active", "--json"], readonly ["panes", "create", "--repo", "active", "--name", "issue-252", "--agent", "codex", "--prompt", "Kick off discussion", "--dry-run", "--yes", "--json"], readonly ["panes", "create", "--from-json", "-", "--yes", "--json"], readonly ["panels", "list", "--pane", "session-1", "--json"], readonly ["panels", "output", "--panel", "panel-1", "--limit", "200", "--json"], readonly ["panels", "input", "--panel", "panel-1", "--text", "Continue\\n", "--yes", "--json"], readonly ["--version"]];
310
+ readonly topLevelHelpIncludes: readonly ["runpane setup", "runpane install", "runpane update", "runpane version", "runpane doctor", "runpane agent-context", "runpane repos list", "runpane repos add", "runpane panes list", "runpane panes create", "runpane panels list", "runpane panels output", "runpane panels input"];
255
311
  readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
256
312
  readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
257
313
  readonly installHelpIncludes: readonly ["--version <latest|vX.Y.Z>", "--format <auto|appimage|deb|dmg|zip|exe>", "--download-dir <path>", "--pane-path <path>", "--label <name>", "--prefer-tunnel <tailscale|ssh|manual|auto>", "--repo-ref <ref>"];
@@ -556,6 +612,714 @@ export declare const RUNPANE_CONTRACT: {
556
612
  };
557
613
  readonly additionalProperties: false;
558
614
  };
615
+ readonly paneListResult: {
616
+ readonly type: "object";
617
+ readonly required: readonly ["ok", "panes"];
618
+ readonly properties: {
619
+ readonly ok: {
620
+ readonly const: true;
621
+ };
622
+ readonly repo: {
623
+ readonly $ref: "#/jsonSchemas/repoListResult/properties/repos/items";
624
+ };
625
+ readonly panes: {
626
+ readonly type: "array";
627
+ readonly items: {
628
+ readonly type: "object";
629
+ readonly required: readonly ["id", "paneId", "name", "status", "worktreePath", "repoId", "panelCount"];
630
+ readonly properties: {
631
+ readonly id: {
632
+ readonly type: "string";
633
+ };
634
+ readonly paneId: {
635
+ readonly type: "string";
636
+ };
637
+ readonly name: {
638
+ readonly type: "string";
639
+ };
640
+ readonly status: {
641
+ readonly type: "string";
642
+ };
643
+ readonly worktreePath: {
644
+ readonly type: "string";
645
+ };
646
+ readonly repoId: {
647
+ readonly type: "number";
648
+ };
649
+ readonly repoName: {
650
+ readonly type: "string";
651
+ };
652
+ readonly panelCount: {
653
+ readonly type: "number";
654
+ };
655
+ readonly createdAt: {
656
+ readonly type: "string";
657
+ };
658
+ readonly lastActivity: {
659
+ readonly type: "string";
660
+ };
661
+ readonly archived: {
662
+ readonly type: "boolean";
663
+ };
664
+ };
665
+ readonly additionalProperties: false;
666
+ };
667
+ };
668
+ };
669
+ readonly additionalProperties: false;
670
+ };
671
+ readonly panelListResult: {
672
+ readonly type: "object";
673
+ readonly required: readonly ["ok", "paneId", "panels"];
674
+ readonly properties: {
675
+ readonly ok: {
676
+ readonly const: true;
677
+ };
678
+ readonly paneId: {
679
+ readonly type: "string";
680
+ };
681
+ readonly panels: {
682
+ readonly type: "array";
683
+ readonly items: {
684
+ readonly type: "object";
685
+ readonly required: readonly ["id", "panelId", "paneId", "type", "title", "active"];
686
+ readonly properties: {
687
+ readonly id: {
688
+ readonly type: "string";
689
+ };
690
+ readonly panelId: {
691
+ readonly type: "string";
692
+ };
693
+ readonly paneId: {
694
+ readonly type: "string";
695
+ };
696
+ readonly type: {
697
+ readonly type: "string";
698
+ };
699
+ readonly title: {
700
+ readonly type: "string";
701
+ };
702
+ readonly active: {
703
+ readonly type: "boolean";
704
+ };
705
+ readonly initialized: {
706
+ readonly type: "boolean";
707
+ };
708
+ readonly agentType: {
709
+ readonly type: "string";
710
+ };
711
+ readonly isCliPanel: {
712
+ readonly type: "boolean";
713
+ };
714
+ readonly position: {
715
+ readonly type: "number";
716
+ };
717
+ readonly createdAt: {
718
+ readonly type: "string";
719
+ };
720
+ readonly lastActiveAt: {
721
+ readonly type: "string";
722
+ };
723
+ };
724
+ readonly additionalProperties: false;
725
+ };
726
+ };
727
+ };
728
+ readonly additionalProperties: false;
729
+ };
730
+ readonly panelOutputResult: {
731
+ readonly type: "object";
732
+ readonly required: readonly ["ok", "panelId", "outputs", "text"];
733
+ readonly properties: {
734
+ readonly ok: {
735
+ readonly const: true;
736
+ };
737
+ readonly panelId: {
738
+ readonly type: "string";
739
+ };
740
+ readonly paneId: {
741
+ readonly type: "string";
742
+ };
743
+ readonly limit: {
744
+ readonly type: "number";
745
+ };
746
+ readonly outputs: {
747
+ readonly type: "array";
748
+ readonly items: {
749
+ readonly type: "object";
750
+ readonly required: readonly ["type", "data", "timestamp"];
751
+ readonly properties: {
752
+ readonly type: {
753
+ readonly type: "string";
754
+ };
755
+ readonly data: {};
756
+ readonly timestamp: {
757
+ readonly type: "string";
758
+ };
759
+ };
760
+ readonly additionalProperties: false;
761
+ };
762
+ };
763
+ readonly text: {
764
+ readonly type: "string";
765
+ };
766
+ };
767
+ readonly additionalProperties: false;
768
+ };
769
+ readonly panelInputRequest: {
770
+ readonly type: "object";
771
+ readonly required: readonly ["panelId", "input"];
772
+ readonly properties: {
773
+ readonly panelId: {
774
+ readonly type: "string";
775
+ };
776
+ readonly input: {
777
+ readonly type: "string";
778
+ };
779
+ };
780
+ readonly additionalProperties: false;
781
+ };
782
+ readonly panelInputResult: {
783
+ readonly type: "object";
784
+ readonly required: readonly ["ok", "panelId", "inputBytes", "sentAt"];
785
+ readonly properties: {
786
+ readonly ok: {
787
+ readonly const: true;
788
+ };
789
+ readonly panelId: {
790
+ readonly type: "string";
791
+ };
792
+ readonly paneId: {
793
+ readonly type: "string";
794
+ };
795
+ readonly inputBytes: {
796
+ readonly type: "number";
797
+ };
798
+ readonly sentAt: {
799
+ readonly type: "string";
800
+ };
801
+ };
802
+ readonly additionalProperties: false;
803
+ };
804
+ readonly agentContextBriefResult: {
805
+ readonly type: "object";
806
+ readonly required: readonly ["ok", "mode", "source", "summary", "rules", "tools", "detailCommand"];
807
+ readonly properties: {
808
+ readonly ok: {
809
+ readonly const: true;
810
+ };
811
+ readonly mode: {
812
+ readonly const: "brief";
813
+ };
814
+ readonly source: {
815
+ readonly const: "runpane-contract";
816
+ };
817
+ readonly summary: {
818
+ readonly type: "string";
819
+ };
820
+ readonly rules: {
821
+ readonly type: "array";
822
+ readonly items: {
823
+ readonly type: "string";
824
+ };
825
+ };
826
+ readonly tools: {
827
+ readonly type: "array";
828
+ readonly items: {
829
+ readonly type: "object";
830
+ readonly required: readonly ["name", "summary", "arguments"];
831
+ readonly properties: {
832
+ readonly name: {
833
+ readonly type: "string";
834
+ };
835
+ readonly summary: {
836
+ readonly type: "string";
837
+ };
838
+ readonly arguments: {
839
+ readonly type: "array";
840
+ readonly items: {
841
+ readonly type: "string";
842
+ };
843
+ };
844
+ };
845
+ readonly additionalProperties: false;
846
+ };
847
+ };
848
+ readonly detailCommand: {
849
+ readonly type: "string";
850
+ };
851
+ };
852
+ readonly additionalProperties: false;
853
+ };
854
+ readonly agentContextCommandResult: {
855
+ readonly type: "object";
856
+ readonly required: readonly ["ok", "mode", "source", "command"];
857
+ readonly properties: {
858
+ readonly ok: {
859
+ readonly const: true;
860
+ };
861
+ readonly mode: {
862
+ readonly const: "command";
863
+ };
864
+ readonly source: {
865
+ readonly const: "runpane-contract";
866
+ };
867
+ readonly command: {
868
+ readonly type: "object";
869
+ readonly required: readonly ["name", "summary", "details", "arguments", "examples"];
870
+ readonly properties: {
871
+ readonly name: {
872
+ readonly type: "string";
873
+ };
874
+ readonly summary: {
875
+ readonly type: "string";
876
+ };
877
+ readonly details: {
878
+ readonly type: "string";
879
+ };
880
+ readonly requiresPaneDaemon: {
881
+ readonly type: "boolean";
882
+ };
883
+ readonly mutates: {
884
+ readonly type: "boolean";
885
+ };
886
+ readonly arguments: {
887
+ readonly type: "array";
888
+ readonly items: {
889
+ readonly type: "object";
890
+ };
891
+ };
892
+ readonly examples: {
893
+ readonly type: "array";
894
+ readonly items: {
895
+ readonly type: "string";
896
+ };
897
+ };
898
+ readonly jsonSchemas: {
899
+ readonly type: "array";
900
+ readonly items: {
901
+ readonly type: "string";
902
+ };
903
+ };
904
+ readonly notes: {
905
+ readonly type: "array";
906
+ readonly items: {
907
+ readonly type: "string";
908
+ };
909
+ };
910
+ };
911
+ readonly additionalProperties: false;
912
+ };
913
+ };
914
+ readonly additionalProperties: false;
915
+ };
916
+ };
917
+ readonly agentContext: {
918
+ readonly brief: {
919
+ readonly title: "Pane agent context";
920
+ readonly summary: "Pane lets a developer manage repositories and user-visible panes. Agents can use runpane to list/add Pane repositories and create panes with terminal-backed tools.";
921
+ readonly rules: readonly ["Start with `runpane repos list --json` to find the saved repository when unsure.", "If WSL cannot find `/tmp/pane-daemon.../daemon.sock`, the user may be running Windows Pane; try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`.", "If the repository exists on disk but is not saved in Pane, use `runpane repos add --path <repo> --yes --json` before creating panes.", "Use `runpane panes create` to create a Pane session and open a built-in agent or custom terminal command.", "Use `runpane panels list`, `runpane panels output`, and `runpane panels input` when you need to inspect or drive an existing Pane terminal.", "Use `runpane agent-context --command <command>` for detailed command definitions only when needed."];
922
+ readonly detailCommand: "runpane agent-context --command <command> [--json]";
923
+ readonly tools: readonly [{
924
+ readonly name: "agent-context";
925
+ readonly summary: "Print token-efficient Pane command context for coding agents.";
926
+ readonly arguments: readonly ["--command <command>", "--json"];
927
+ }, {
928
+ readonly name: "repos list";
929
+ readonly summary: "List repositories saved in the running Pane app.";
930
+ readonly arguments: readonly ["--json", "--pane-dir <path>"];
931
+ }, {
932
+ readonly name: "repos add";
933
+ readonly summary: "Register an existing git repository with the running Pane app.";
934
+ readonly arguments: readonly ["--path <path>", "--name <name>", "--yes", "--json", "--dry-run", "--pane-dir <path>"];
935
+ }, {
936
+ readonly name: "panes list";
937
+ readonly summary: "List Pane sessions, optionally scoped to a saved repository.";
938
+ readonly arguments: readonly ["--repo <selector>", "--json", "--pane-dir <path>"];
939
+ }, {
940
+ readonly name: "panes create";
941
+ readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
942
+ readonly arguments: readonly ["--repo <selector>", "--name <name>", "--agent <codex|claude>", "--tool-command <command>", "--prompt <text>", "--from-json <path|->", "--yes", "--json"];
943
+ }, {
944
+ readonly name: "panels list";
945
+ readonly summary: "List tool panels inside a Pane session.";
946
+ readonly arguments: readonly ["--pane <pane-id>", "--json", "--pane-dir <path>"];
947
+ }, {
948
+ readonly name: "panels output";
949
+ readonly summary: "Read recent terminal output from a panel.";
950
+ readonly arguments: readonly ["--panel <panel-id>", "--limit <count>", "--json", "--pane-dir <path>"];
951
+ }, {
952
+ readonly name: "panels input";
953
+ readonly summary: "Send input bytes to a terminal panel.";
954
+ readonly arguments: readonly ["--panel <panel-id>", "--text <text>", "--input-file <path|->", "--yes", "--json", "--pane-dir <path>"];
955
+ }];
956
+ };
957
+ readonly commands: {
958
+ readonly help: {
959
+ readonly name: "help";
960
+ readonly summary: "Show help for runpane or a specific command.";
961
+ readonly details: "Use this when you need human-readable usage text for a command.";
962
+ readonly requiresPaneDaemon: false;
963
+ readonly mutates: false;
964
+ readonly arguments: readonly [{
965
+ readonly name: "command";
966
+ readonly value: "<command>";
967
+ readonly required: false;
968
+ readonly description: "Optional command topic such as \"panes create\".";
969
+ }];
970
+ readonly examples: readonly ["runpane help", "runpane help panes create"];
971
+ readonly notes: readonly ["Help text is generated from the runpane contract."];
972
+ };
973
+ readonly setup: {
974
+ readonly name: "setup";
975
+ readonly summary: "Open the guided setup wizard for install, remote host setup, update, and diagnostics.";
976
+ readonly details: "Use this for a human-driven Pane setup flow, not for unattended agent orchestration.";
977
+ readonly requiresPaneDaemon: false;
978
+ readonly mutates: false;
979
+ readonly arguments: readonly [];
980
+ readonly examples: readonly ["runpane setup"];
981
+ readonly notes: readonly ["In non-interactive shells, setup prints help and exits successfully."];
982
+ };
983
+ readonly install: {
984
+ readonly name: "install";
985
+ readonly summary: "Install Pane on this machine or configure this machine as a remote daemon host.";
986
+ readonly details: "Installs or launches Pane release artifacts at command runtime. `install daemon` forwards remote setup flags to Pane.";
987
+ readonly requiresPaneDaemon: false;
988
+ readonly mutates: true;
989
+ readonly arguments: readonly [{
990
+ readonly name: "target";
991
+ readonly value: "<client|daemon>";
992
+ readonly required: false;
993
+ readonly description: "Install the desktop client or configure a remote daemon host.";
994
+ }, {
995
+ readonly name: "--version";
996
+ readonly value: "<latest|vX.Y.Z>";
997
+ readonly required: false;
998
+ readonly description: "Pane release to install.";
999
+ }, {
1000
+ readonly name: "--format";
1001
+ readonly value: "<auto|appimage|deb|dmg|zip|exe>";
1002
+ readonly required: false;
1003
+ readonly description: "Release artifact format.";
1004
+ }, {
1005
+ readonly name: "--yes";
1006
+ readonly required: false;
1007
+ readonly description: "Skip interactive prompts where possible.";
1008
+ }];
1009
+ readonly examples: readonly ["runpane install client", "runpane install daemon --label \"My Server\""];
1010
+ readonly notes: readonly ["Package install itself is inert; work begins only when runpane is executed."];
1011
+ };
1012
+ readonly update: {
1013
+ readonly name: "update";
1014
+ readonly summary: "Update the Pane desktop app using the same artifact path as install client.";
1015
+ readonly details: "Resolves and installs the selected Pane client release.";
1016
+ readonly requiresPaneDaemon: false;
1017
+ readonly mutates: true;
1018
+ readonly arguments: readonly [{
1019
+ readonly name: "--version";
1020
+ readonly value: "<latest|vX.Y.Z>";
1021
+ readonly required: false;
1022
+ readonly description: "Pane release to update to.";
1023
+ }, {
1024
+ readonly name: "--format";
1025
+ readonly value: "<auto|appimage|deb|dmg|zip|exe>";
1026
+ readonly required: false;
1027
+ readonly description: "Release artifact format.";
1028
+ }, {
1029
+ readonly name: "--dry-run";
1030
+ readonly required: false;
1031
+ readonly description: "Print the update plan without downloading.";
1032
+ }];
1033
+ readonly examples: readonly ["runpane update", "runpane update --version latest"];
1034
+ readonly notes: readonly ["Equivalent artifact selection to `runpane install client`."];
1035
+ };
1036
+ readonly version: {
1037
+ readonly name: "version";
1038
+ readonly summary: "Print the runpane wrapper version and installed Pane version when detectable.";
1039
+ readonly details: "Use this for diagnostics or to confirm which wrapper is available.";
1040
+ readonly requiresPaneDaemon: false;
1041
+ readonly mutates: false;
1042
+ readonly arguments: readonly [{
1043
+ readonly name: "--pane-path";
1044
+ readonly value: "<path>";
1045
+ readonly required: false;
1046
+ readonly description: "Inspect a specific Pane executable.";
1047
+ }];
1048
+ readonly examples: readonly ["runpane version", "runpane --version"];
1049
+ readonly notes: readonly [];
1050
+ };
1051
+ readonly doctor: {
1052
+ readonly name: "doctor";
1053
+ readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
1054
+ readonly details: "Use this when runpane install/update behavior needs environment diagnostics.";
1055
+ readonly requiresPaneDaemon: false;
1056
+ readonly mutates: false;
1057
+ readonly arguments: readonly [{
1058
+ readonly name: "--pane-path";
1059
+ readonly value: "<path>";
1060
+ readonly required: false;
1061
+ readonly description: "Use an existing Pane executable for diagnostics.";
1062
+ }, {
1063
+ readonly name: "--verbose";
1064
+ readonly required: false;
1065
+ readonly description: "Print extra diagnostics.";
1066
+ }];
1067
+ readonly examples: readonly ["runpane doctor", "runpane doctor --verbose"];
1068
+ readonly notes: readonly [];
1069
+ };
1070
+ readonly "agent-context": {
1071
+ readonly name: "agent-context";
1072
+ readonly summary: "Print token-efficient Pane command context for coding agents.";
1073
+ readonly details: "Use this first when an agent needs to discover Pane primitives. It is local/offline and does not require a running Pane app.";
1074
+ readonly requiresPaneDaemon: false;
1075
+ readonly mutates: false;
1076
+ readonly arguments: readonly [{
1077
+ readonly name: "--command";
1078
+ readonly value: "<command>";
1079
+ readonly required: false;
1080
+ readonly description: "Print the detailed definition for one command, for example \"panes create\".";
1081
+ }, {
1082
+ readonly name: "--json";
1083
+ readonly required: false;
1084
+ readonly description: "Print machine-readable output.";
1085
+ }];
1086
+ readonly examples: readonly ["runpane agent-context", "runpane agent-context --command \"panes create\" --json"];
1087
+ readonly jsonSchemas: readonly ["agentContextBriefResult", "agentContextCommandResult"];
1088
+ readonly notes: readonly ["Default output is brief so AGENTS.md can point here without bloating context."];
1089
+ };
1090
+ readonly "repos list": {
1091
+ readonly name: "repos list";
1092
+ readonly summary: "List repositories saved in the running Pane app.";
1093
+ readonly details: "Use this to find the right Pane-managed repository before creating panes. If the repo is missing, use `repos add` first.";
1094
+ readonly requiresPaneDaemon: true;
1095
+ readonly mutates: false;
1096
+ readonly arguments: readonly [{
1097
+ readonly name: "--json";
1098
+ readonly required: false;
1099
+ readonly description: "Print machine-readable repository records.";
1100
+ }, {
1101
+ readonly name: "--pane-dir";
1102
+ readonly value: "<path>";
1103
+ readonly required: false;
1104
+ readonly description: "Connect to a specific Pane data directory.";
1105
+ }];
1106
+ readonly examples: readonly ["runpane repos list --json"];
1107
+ readonly jsonSchemas: readonly ["repoListResult"];
1108
+ readonly notes: readonly ["Requires a running Pane app or daemon for the selected Pane data directory.", "If this fails from WSL with a missing `/tmp/pane-daemon.../daemon.sock`, the user may be running Windows Pane. Retry via `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."];
1109
+ };
1110
+ readonly "repos add": {
1111
+ readonly name: "repos add";
1112
+ readonly summary: "Register an existing git repository with the running Pane app.";
1113
+ readonly details: "Use this when the repository exists on disk but is not saved in Pane yet. It validates the path as a git repository.";
1114
+ readonly requiresPaneDaemon: true;
1115
+ readonly mutates: true;
1116
+ readonly arguments: readonly [{
1117
+ readonly name: "--path";
1118
+ readonly value: "<path>";
1119
+ readonly required: true;
1120
+ readonly description: "Existing git repository path to register with Pane.";
1121
+ }, {
1122
+ readonly name: "--name";
1123
+ readonly value: "<name>";
1124
+ readonly required: false;
1125
+ readonly description: "Saved repository name; defaults to the directory name.";
1126
+ }, {
1127
+ readonly name: "--yes";
1128
+ readonly required: false;
1129
+ readonly description: "Skip confirmation for mutating commands.";
1130
+ }, {
1131
+ readonly name: "--json";
1132
+ readonly required: false;
1133
+ readonly description: "Print machine-readable output.";
1134
+ }, {
1135
+ readonly name: "--dry-run";
1136
+ readonly required: false;
1137
+ readonly description: "Validate and preview without adding the repo.";
1138
+ }, {
1139
+ readonly name: "--pane-dir";
1140
+ readonly value: "<path>";
1141
+ readonly required: false;
1142
+ readonly description: "Connect to a specific Pane data directory.";
1143
+ }];
1144
+ readonly examples: readonly ["runpane repos add --path /path/to/repo --yes --json"];
1145
+ readonly jsonSchemas: readonly ["repoAddRequest", "repoAddResult"];
1146
+ readonly notes: readonly ["It does not create directories or initialize git repositories by default.", "For a Windows Pane app managing WSL repositories, prefer a saved WSL repo from `repos list` when possible. Adding a brand-new WSL repo from Windows may require WSL-aware path handling."];
1147
+ };
1148
+ readonly "panes list": {
1149
+ readonly name: "panes list";
1150
+ readonly summary: "List Pane sessions, optionally scoped to a saved repository.";
1151
+ readonly details: "Use this after selecting a repository to find existing Pane sessions and their ids before inspecting panels.";
1152
+ readonly requiresPaneDaemon: true;
1153
+ readonly mutates: false;
1154
+ readonly arguments: readonly [{
1155
+ readonly name: "--repo";
1156
+ readonly value: "<selector>";
1157
+ readonly required: false;
1158
+ readonly description: "Optional repository selector: active, id, exact path, or saved repository name.";
1159
+ }, {
1160
+ readonly name: "--json";
1161
+ readonly required: false;
1162
+ readonly description: "Print machine-readable output.";
1163
+ }, {
1164
+ readonly name: "--pane-dir";
1165
+ readonly value: "<path>";
1166
+ readonly required: false;
1167
+ readonly description: "Connect to a specific Pane data directory.";
1168
+ }];
1169
+ readonly examples: readonly ["runpane panes list --repo active --json"];
1170
+ readonly jsonSchemas: readonly ["paneListResult"];
1171
+ readonly notes: readonly ["Without --repo, this lists sessions across saved Pane repositories."];
1172
+ };
1173
+ readonly "panes create": {
1174
+ readonly name: "panes create";
1175
+ readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
1176
+ readonly details: "Use this to set up user-visible panes for work. Select a saved repository, choose a built-in agent or custom terminal command, and optionally send initial input after the tool starts.";
1177
+ readonly requiresPaneDaemon: true;
1178
+ readonly mutates: true;
1179
+ readonly arguments: readonly [{
1180
+ readonly name: "--repo";
1181
+ readonly value: "<selector>";
1182
+ readonly required: true;
1183
+ readonly description: "Repository selector: active, id, exact path, or saved repository name.";
1184
+ }, {
1185
+ readonly name: "--name";
1186
+ readonly value: "<name>";
1187
+ readonly required: true;
1188
+ readonly description: "Pane/session name.";
1189
+ }, {
1190
+ readonly name: "--agent";
1191
+ readonly value: "<codex|claude>";
1192
+ readonly required: false;
1193
+ readonly description: "Built-in agent terminal template to open.";
1194
+ }, {
1195
+ readonly name: "--tool-command";
1196
+ readonly value: "<command>";
1197
+ readonly required: false;
1198
+ readonly description: "Custom terminal command to run instead of a built-in agent.";
1199
+ }, {
1200
+ readonly name: "--prompt";
1201
+ readonly value: "<text>";
1202
+ readonly required: false;
1203
+ readonly description: "Alias for --initial-input; sends text after the command is ready.";
1204
+ }, {
1205
+ readonly name: "--initial-input-file";
1206
+ readonly value: "<path|->";
1207
+ readonly required: false;
1208
+ readonly description: "Read initial input from a file or stdin.";
1209
+ }, {
1210
+ readonly name: "--from-json";
1211
+ readonly value: "<path|->";
1212
+ readonly required: false;
1213
+ readonly description: "Read a full panes.create request JSON payload.";
1214
+ }, {
1215
+ readonly name: "--yes";
1216
+ readonly required: false;
1217
+ readonly description: "Skip confirmation for mutating commands.";
1218
+ }, {
1219
+ readonly name: "--json";
1220
+ readonly required: false;
1221
+ readonly description: "Print machine-readable output.";
1222
+ }];
1223
+ readonly examples: readonly ["runpane panes create --repo active --name issue-257 --agent codex --prompt \"Plan this issue\" --yes", "runpane panes create --from-json panes.json --yes --json"];
1224
+ readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
1225
+ readonly notes: readonly ["At least one of --agent or --tool-command is required unless --from-json is used.", "The built-in agent templates come from the runpane contract; custom terminal commands can pass agent-specific flags when requested by the user.", "From WSL with Windows Pane, invoke through PowerShell and select the saved WSL repo by name or id, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane panes create --repo \"WSL Pane\" --name issue-123 --agent codex --prompt \"Plan this issue\" --yes --json'`."];
1226
+ };
1227
+ readonly "panels list": {
1228
+ readonly name: "panels list";
1229
+ readonly summary: "List tool panels inside a Pane session.";
1230
+ readonly details: "Use this to find the terminal panel id to inspect or control after creating or selecting a Pane session.";
1231
+ readonly requiresPaneDaemon: true;
1232
+ readonly mutates: false;
1233
+ readonly arguments: readonly [{
1234
+ readonly name: "--pane";
1235
+ readonly value: "<pane-id>";
1236
+ readonly required: true;
1237
+ readonly description: "Pane/session id.";
1238
+ }, {
1239
+ readonly name: "--json";
1240
+ readonly required: false;
1241
+ readonly description: "Print machine-readable output.";
1242
+ }, {
1243
+ readonly name: "--pane-dir";
1244
+ readonly value: "<path>";
1245
+ readonly required: false;
1246
+ readonly description: "Connect to a specific Pane data directory.";
1247
+ }];
1248
+ readonly examples: readonly ["runpane panels list --pane <pane-id> --json"];
1249
+ readonly jsonSchemas: readonly ["panelListResult"];
1250
+ readonly notes: readonly ["The ids returned here are stable inputs for `panels output` and `panels input`."];
1251
+ };
1252
+ readonly "panels output": {
1253
+ readonly name: "panels output";
1254
+ readonly summary: "Read recent terminal output from a panel.";
1255
+ readonly details: "Use this to inspect what is currently visible or recently emitted by a terminal-backed panel.";
1256
+ readonly requiresPaneDaemon: true;
1257
+ readonly mutates: false;
1258
+ readonly arguments: readonly [{
1259
+ readonly name: "--panel";
1260
+ readonly value: "<panel-id>";
1261
+ readonly required: true;
1262
+ readonly description: "Tool panel id.";
1263
+ }, {
1264
+ readonly name: "--limit";
1265
+ readonly value: "<count>";
1266
+ readonly required: false;
1267
+ readonly description: "Maximum output records to read.";
1268
+ }, {
1269
+ readonly name: "--json";
1270
+ readonly required: false;
1271
+ readonly description: "Print machine-readable output.";
1272
+ }, {
1273
+ readonly name: "--pane-dir";
1274
+ readonly value: "<path>";
1275
+ readonly required: false;
1276
+ readonly description: "Connect to a specific Pane data directory.";
1277
+ }];
1278
+ readonly examples: readonly ["runpane panels output --panel <panel-id> --limit 200 --json"];
1279
+ readonly jsonSchemas: readonly ["panelOutputResult"];
1280
+ readonly notes: readonly ["Default text output concatenates stdout/stderr-like records. Use --json when an agent needs timestamps and record types."];
1281
+ };
1282
+ readonly "panels input": {
1283
+ readonly name: "panels input";
1284
+ readonly summary: "Send input bytes to a terminal panel.";
1285
+ readonly details: "Use this to answer prompts or continue an agent inside an existing Pane terminal panel.";
1286
+ readonly requiresPaneDaemon: true;
1287
+ readonly mutates: true;
1288
+ readonly arguments: readonly [{
1289
+ readonly name: "--panel";
1290
+ readonly value: "<panel-id>";
1291
+ readonly required: true;
1292
+ readonly description: "Terminal panel id.";
1293
+ }, {
1294
+ readonly name: "--text";
1295
+ readonly value: "<text>";
1296
+ readonly required: false;
1297
+ readonly description: "Text bytes to send.";
1298
+ }, {
1299
+ readonly name: "--input-file";
1300
+ readonly value: "<path|->";
1301
+ readonly required: false;
1302
+ readonly description: "Read input from a file or stdin.";
1303
+ }, {
1304
+ readonly name: "--yes";
1305
+ readonly required: false;
1306
+ readonly description: "Skip confirmation for this mutating command.";
1307
+ }, {
1308
+ readonly name: "--json";
1309
+ readonly required: false;
1310
+ readonly description: "Print machine-readable output.";
1311
+ }, {
1312
+ readonly name: "--pane-dir";
1313
+ readonly value: "<path>";
1314
+ readonly required: false;
1315
+ readonly description: "Connect to a specific Pane data directory.";
1316
+ }];
1317
+ readonly examples: readonly ["runpane panels input --panel <panel-id> --text \"Continue\\n\" --yes --json", "printf 'Continue\\n' | runpane panels input --panel <panel-id> --input-file - --yes"];
1318
+ readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
1319
+ readonly notes: readonly ["Input is sent exactly as provided. Include `\\n` or `\\r` when the terminal should receive Enter.", "Runpane records action metadata and errors for observability, but should not log full input text by default."];
1320
+ };
1321
+ };
1322
+ readonly managedBlock: readonly ["## Pane", "", "The developer is using Pane for this repository. Pane can manage saved repositories and create user-visible panes with terminal-backed tools for planning, discussion, and implementation work.", "", "Use `runpane agent-context` for a brief Pane command schema. Use `runpane agent-context --command \"panes create\"` or another command name for the detailed schema only when needed.", "", "Common commands:", "- `runpane repos list --json`", "- `runpane repos add --path <repo> --yes --json`", "- `runpane panes create --repo active --name <name> --agent codex --prompt \"<task>\" --yes`", "- `runpane panels list --pane <pane-id> --json`", "- `runpane panels output --panel <panel-id> --limit 200 --json`", "- `runpane panels input --panel <panel-id> --text \"<input>\" --yes`", "", "WSL note: if `runpane repos list` cannot find `/tmp/pane-daemon.../daemon.sock`, Pane may be running on Windows. Try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`, then create panes through the same PowerShell form using the saved WSL repo name or id."];
559
1323
  };
560
1324
  };
561
1325
  export type RunpaneCommand = typeof RUNPANE_CONTRACT.commands[number]['name'];