runpane 2.3.7 → 2.3.9
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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +6 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +46 -2
- package/dist/commands.js.map +1 -1
- package/dist/daemonClient.d.ts +1 -1
- package/dist/daemonClient.d.ts.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +121 -15
- package/dist/doctor.js.map +1 -1
- package/dist/generated/contract.d.ts +724 -26
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +1397 -171
- package/dist/generated/contract.js.map +1 -1
- package/dist/localControl.d.ts +4 -0
- package/dist/localControl.d.ts.map +1 -1
- package/dist/localControl.js +155 -7
- package/dist/localControl.js.map +1 -1
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +9 -0
- package/dist/telemetry.js.map +1 -1
- package/package.json +1 -1
|
@@ -68,8 +68,14 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
68
68
|
readonly usage: readonly ["runpane version", "runpane --version"];
|
|
69
69
|
}, {
|
|
70
70
|
readonly name: "doctor";
|
|
71
|
-
readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
|
|
72
|
-
readonly usage: readonly ["runpane doctor"];
|
|
71
|
+
readonly summary: "Run platform, release, installed Pane, daemon reachability, and remote setup diagnostics.";
|
|
72
|
+
readonly usage: readonly ["runpane doctor [--json] [--pane-dir <path>] [--pane-path <path>] [--format <format>] [--verbose]"];
|
|
73
|
+
readonly jsonSchemas: readonly ["doctorResult"];
|
|
74
|
+
}, {
|
|
75
|
+
readonly name: "agents doctor";
|
|
76
|
+
readonly summary: "Diagnose whether a built-in agent command is available in a Pane repository environment.";
|
|
77
|
+
readonly usage: readonly ["runpane agents doctor --agent <codex|claude> [--repo <selector>] [--json]"];
|
|
78
|
+
readonly jsonSchemas: readonly ["agentDoctorResult"];
|
|
73
79
|
}, {
|
|
74
80
|
readonly name: "agent-context";
|
|
75
81
|
readonly summary: "Print token-efficient Pane command context for coding agents.";
|
|
@@ -107,12 +113,28 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
107
113
|
readonly summary: "Read recent terminal output from a panel.";
|
|
108
114
|
readonly usage: readonly ["runpane panels output --panel <panel-id> [--limit <count>] [--json]"];
|
|
109
115
|
readonly jsonSchemas: readonly ["panelOutputResult"];
|
|
116
|
+
}, {
|
|
117
|
+
readonly name: "panels screen";
|
|
118
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
119
|
+
readonly usage: readonly ["runpane panels screen --panel <panel-id> [--limit <count>] [--json]"];
|
|
120
|
+
readonly jsonSchemas: readonly ["panelScreenResult"];
|
|
110
121
|
}, {
|
|
111
122
|
readonly name: "panels input";
|
|
112
123
|
readonly summary: "Send input bytes to a terminal panel.";
|
|
113
124
|
readonly usage: readonly ["runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"];
|
|
114
125
|
readonly mutates: true;
|
|
115
126
|
readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
|
|
127
|
+
}, {
|
|
128
|
+
readonly name: "panels submit";
|
|
129
|
+
readonly summary: "Send text to a terminal panel and append a terminal Enter byte.";
|
|
130
|
+
readonly usage: readonly ["runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"];
|
|
131
|
+
readonly mutates: true;
|
|
132
|
+
readonly jsonSchemas: readonly ["panelSubmitRequest", "panelSubmitResult"];
|
|
133
|
+
}, {
|
|
134
|
+
readonly name: "panels wait";
|
|
135
|
+
readonly summary: "Wait for a terminal panel to initialize, become ready/idle, or contain text.";
|
|
136
|
+
readonly usage: readonly ["runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--contains <text>] [--timeout-ms <ms>] [--interval-ms <ms>] [--json]"];
|
|
137
|
+
readonly jsonSchemas: readonly ["panelWaitResult"];
|
|
116
138
|
}];
|
|
117
139
|
readonly flags: {
|
|
118
140
|
readonly wrapper: readonly [{
|
|
@@ -239,10 +261,30 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
239
261
|
readonly name: "--timeout-ms";
|
|
240
262
|
readonly value: "<milliseconds>";
|
|
241
263
|
readonly description: "Maximum time to wait for each pane creation job.";
|
|
264
|
+
}, {
|
|
265
|
+
readonly name: "--ready-timeout-ms";
|
|
266
|
+
readonly value: "<milliseconds>";
|
|
267
|
+
readonly description: "Readiness wait timeout for panes create --wait-ready.";
|
|
268
|
+
}, {
|
|
269
|
+
readonly name: "--concurrency";
|
|
270
|
+
readonly value: "<count>";
|
|
271
|
+
readonly description: "Accepted for forward compatibility. Pane currently serializes multi-pane session creation so queued jobs do not time out before starting.";
|
|
242
272
|
}, {
|
|
243
273
|
readonly name: "--limit";
|
|
244
274
|
readonly value: "<count>";
|
|
245
275
|
readonly description: "Maximum recent output lines or records to read.";
|
|
276
|
+
}, {
|
|
277
|
+
readonly name: "--for";
|
|
278
|
+
readonly value: "<initialized|ready|idle|text>";
|
|
279
|
+
readonly description: "Panel wait condition.";
|
|
280
|
+
}, {
|
|
281
|
+
readonly name: "--contains";
|
|
282
|
+
readonly value: "<text>";
|
|
283
|
+
readonly description: "Text to wait for with panels wait --for text.";
|
|
284
|
+
}, {
|
|
285
|
+
readonly name: "--interval-ms";
|
|
286
|
+
readonly value: "<milliseconds>";
|
|
287
|
+
readonly description: "Polling interval for panels wait.";
|
|
246
288
|
}, {
|
|
247
289
|
readonly name: "--text";
|
|
248
290
|
readonly value: "<text>";
|
|
@@ -255,40 +297,51 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
255
297
|
readonly localBoolean: readonly [{
|
|
256
298
|
readonly name: "--json";
|
|
257
299
|
readonly description: "Print machine-readable JSON output.";
|
|
300
|
+
}, {
|
|
301
|
+
readonly name: "--wait-ready";
|
|
302
|
+
readonly description: "Wait for created terminal panels to be ready before returning.";
|
|
258
303
|
}];
|
|
259
304
|
};
|
|
260
305
|
readonly help: {
|
|
261
306
|
readonly npm: {
|
|
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> --input-file <path|-> --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", "
|
|
307
|
+
readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane agent-context [--json]", " runpane agents doctor --agent <codex|claude> [--repo <selector>] [--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> [--wait-ready]", " runpane panels list --pane <pane-id> [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> --input-file <path|-> --yes", " runpane panels submit --panel <panel-id> --text <text> --yes", " runpane panels wait --panel <panel-id> [--for ready|idle|text] [--json]", " 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", "", "Common commands:", " runpane help", " runpane setup", " runpane install", " runpane doctor", "", "Agent discovery:", " runpane doctor --json", " runpane agent-context --json", " runpane agent-context --command \"<command>\" --json", "", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
263
308
|
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>"];
|
|
264
309
|
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"];
|
|
265
310
|
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"];
|
|
266
311
|
readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
|
|
267
|
-
readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
|
|
312
|
+
readonly doctor: readonly ["Usage:", " runpane doctor [--json] [--pane-dir <path>] [--pane-path <path>] [--format <format>] [--verbose]", "", "Checks wrapper/runtime details, release metadata, installed Pane detection, and Pane daemon reachability.", "", "Options:", " --json Print a machine-readable environment report", " --pane-dir <path> Connect to a specific Pane data directory", " --pane-path <path> Inspect a specific Pane executable", " --format <format> Release artifact format to inspect", " --verbose Print extra diagnostics", "", "Agent discovery:", " runpane doctor --json", " runpane agent-context --json"];
|
|
268
313
|
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"];
|
|
269
314
|
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
315
|
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"];
|
|
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"];
|
|
316
|
+
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", " --wait-ready Wait for terminal readiness before returning", " --ready-timeout-ms <ms> Readiness wait timeout; defaults to 30000", " --concurrency <count> Accepted; creation is currently serialized", " --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
317
|
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
318
|
readonly "panels output": readonly ["Usage:", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", "", "Reads bounded recent terminal output from a panel.", "", "Options:", " --panel <panel-id> Tool panel id", " --limit <count> Maximum recent output lines or records to read", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
274
319
|
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
320
|
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"];
|
|
321
|
+
readonly "agents doctor": readonly ["Usage:", " runpane agents doctor --agent <codex|claude> [--repo <selector>] [--json]", "", "Diagnoses whether Codex or Claude is available in the same repository environment Pane will use.", "", "Options:", " --agent <codex|claude> Built-in agent command to diagnose", " --repo <selector> active, id, exact path, or saved repository name; defaults to active", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
322
|
+
readonly "panels screen": readonly ["Usage:", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", "", "Reads a compact current-screen view from a terminal panel. Prefers alternate-screen/TUI output and falls back to recent scrollback.", "", "Options:", " --panel <panel-id> Terminal panel id", " --limit <count> Maximum lines to return; defaults to 80", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
323
|
+
readonly "panels submit": readonly ["Usage:", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", "", "Sends text to a terminal panel and normalizes the final terminal Enter to CR. Use this for ordinary prompt answers and shell commands.", "", "Options:", " --panel <panel-id> Terminal panel id", " --text <text> Text to submit before Enter", " --input-file <path|-> Read text from a file or stdin before Enter", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --yes Skip confirmation for this mutating command"];
|
|
324
|
+
readonly "panels wait": readonly ["Usage:", " runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--contains <text>] [--timeout-ms <ms>] [--interval-ms <ms>] [--json]", "", "Polls a terminal panel until it is initialized, ready, idle, or contains text. Output is intentionally small and includes next-step guidance.", "", "Options:", " --panel <panel-id> Terminal panel id", " --for <condition> initialized, ready, idle, or text; defaults to ready for CLI panels and idle otherwise", " --contains <text> Text required for --for text; implies --for text when omitted", " --timeout-ms <milliseconds> Wait timeout; defaults to 30000", " --interval-ms <milliseconds> Poll interval; defaults to 500", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
276
325
|
};
|
|
277
326
|
readonly pip: {
|
|
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> --input-file <path|-> --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", "", "
|
|
327
|
+
readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane agent-context [--json]", " runpane agents doctor --agent <codex|claude> [--repo <selector>] [--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> [--wait-ready]", " runpane panels list --pane <pane-id> [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> --input-file <path|-> --yes", " runpane panels submit --panel <panel-id> --text <text> --yes", " runpane panels wait --panel <panel-id> [--for ready|idle|text] [--json]", " 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", "", "Common commands:", " runpane help", " runpane setup", " runpane install", " runpane doctor", "", "Agent discovery:", " runpane doctor --json", " runpane agent-context --json", " runpane agent-context --command \"<command>\" --json", "", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
279
328
|
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>"];
|
|
280
329
|
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"];
|
|
281
330
|
readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
|
|
282
331
|
readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
|
|
283
|
-
readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
|
|
332
|
+
readonly doctor: readonly ["Usage:", " runpane doctor [--json] [--pane-dir <path>] [--pane-path <path>] [--format <format>] [--verbose]", "", "Checks wrapper/runtime details, release metadata, installed Pane detection, and Pane daemon reachability.", "", "Options:", " --json", " --pane-dir <path>", " --pane-path <path>", " --format <format>", " --verbose", "", "Agent discovery:", " runpane doctor --json", " runpane agent-context --json"];
|
|
284
333
|
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>"];
|
|
285
334
|
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
335
|
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"];
|
|
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"];
|
|
336
|
+
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", " --wait-ready Wait for terminal readiness before returning", " --ready-timeout-ms <ms> Readiness wait timeout; defaults to 30000", " --concurrency <count> Accepted; creation is currently serialized", " --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"];
|
|
288
337
|
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
338
|
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
339
|
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
340
|
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"];
|
|
341
|
+
readonly "agents doctor": readonly ["Usage:", " runpane agents doctor --agent <codex|claude> [--repo <selector>] [--json]", "", "Diagnoses whether Codex or Claude is available in the same repository environment Pane will use.", "", "Options:", " --agent <codex|claude> Built-in agent command to diagnose", " --repo <selector> active, id, exact path, or saved repository name; defaults to active", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
342
|
+
readonly "panels screen": readonly ["Usage:", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", "", "Reads a compact current-screen view from a terminal panel. Prefers alternate-screen/TUI output and falls back to recent scrollback.", "", "Options:", " --panel <panel-id> Terminal panel id", " --limit <count> Maximum lines to return; defaults to 80", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
343
|
+
readonly "panels submit": readonly ["Usage:", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", "", "Sends text to a terminal panel and normalizes the final terminal Enter to CR. Use this for ordinary prompt answers and shell commands.", "", "Options:", " --panel <panel-id> Terminal panel id", " --text <text> Text to submit before Enter", " --input-file <path|-> Read text from a file or stdin before Enter", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --yes Skip confirmation for this mutating command"];
|
|
344
|
+
readonly "panels wait": readonly ["Usage:", " runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--contains <text>] [--timeout-ms <ms>] [--interval-ms <ms>] [--json]", "", "Polls a terminal panel until it is initialized, ready, idle, or contains text. Output is intentionally small and includes next-step guidance.", "", "Options:", " --panel <panel-id> Terminal panel id", " --for <condition> initialized, ready, idle, or text; defaults to ready for CLI panels and idle otherwise", " --contains <text> Text required for --for text; implies --for text when omitted", " --timeout-ms <milliseconds> Wait timeout; defaults to 30000", " --interval-ms <milliseconds> Poll interval; defaults to 500", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output"];
|
|
292
345
|
};
|
|
293
346
|
};
|
|
294
347
|
readonly docs: {
|
|
@@ -297,17 +350,17 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
297
350
|
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\""];
|
|
298
351
|
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\""];
|
|
299
352
|
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."];
|
|
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", "printf 'Continue\\n' | runpane panels input --panel <panel-id> --input-file - --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 bounded recent terminal output from one panel and strips common terminal control noise for agent use.", "`runpane panels input` sends exact input bytes to one terminal panel. Prefer `--input-file` for newlines, Ctrl-C, quotes, or shell-sensitive text.", "`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` or resolve to a Windows shim such as Volta. In that case invoke the Windows wrapper through PowerShell from a Windows cwd, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."];
|
|
353
|
+
readonly commandUsages: readonly ["runpane", "runpane setup", "runpane install", "runpane install client", "runpane install daemon", "runpane update", "runpane version", "runpane doctor", "runpane doctor --json", "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", "printf 'Continue\\n' | runpane panels input --panel <panel-id> --input-file - --yes --json", "runpane help", "runpane <command> --help"];
|
|
354
|
+
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, common commands, and agent discovery hints, then 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, daemon reachability, and remote-daemon hints. Add `--json` for a machine-readable report that agents should run before mutating Pane state.", "`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 bounded recent terminal output from one panel and strips common terminal control noise for agent use.", "`runpane panels input` sends exact input bytes to one terminal panel. Prefer `--input-file` for newlines, Ctrl-C, quotes, or shell-sensitive text.", "`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` or resolve to a Windows shim such as Volta. In that case invoke the Windows wrapper through PowerShell from a Windows cwd, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."];
|
|
302
355
|
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.";
|
|
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 and avoid UNC cwd issues.";
|
|
356
|
+
readonly localControlFlagNote: "`runpane doctor --json`, `runpane repos list`, `runpane panes list`, `runpane panes create`, and `runpane panels ...` commands use or describe 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 and avoid UNC cwd issues.";
|
|
304
357
|
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.";
|
|
305
358
|
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.", "Wrappers also emit best-effort lifecycle telemetry to `https://runpane.com/api/runpane/telemetry` for command start/success/failure, download request/success/failure, and GitHub fallback usage.", "Wrapper telemetry uses a persisted anonymous `install_id` in the form `install_<uuid>` and PostHog `distinct_id = install:<install_id>` so distinct wrapper users can be counted with `count(DISTINCT properties.install_id)`.", "Wrapper telemetry must be disabled in CI and when `RUNPANE_TELEMETRY_DISABLED` is set, and must not include raw paths, labels, prompts, raw error text, or environment values."];
|
|
306
359
|
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."];
|
|
307
360
|
};
|
|
308
361
|
readonly testFixtures: {
|
|
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"];
|
|
362
|
+
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 ["doctor", "--json", "--pane-dir", "/tmp/pane"], 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"], readonly ["agents", "doctor", "--agent", "codex", "--repo", "active", "--json"], readonly ["panes", "create", "--from-json", "-", "--wait-ready", "--ready-timeout-ms", "45000", "--concurrency", "2", "--yes", "--json"], readonly ["panels", "screen", "--panel", "panel-1", "--limit", "80", "--json"], readonly ["panels", "submit", "--panel", "panel-1", "--text", "2", "--yes", "--json"], readonly ["panels", "wait", "--panel", "panel-1", "--for", "text", "--contains", "ready", "--timeout-ms", "30000", "--interval-ms", "500", "--json"]];
|
|
363
|
+
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", "runpane agents doctor", "runpane panels screen", "runpane panels submit", "runpane panels wait", "runpane doctor --json", "runpane agent-context --json", "Agent discovery:", "Common commands:"];
|
|
311
364
|
readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
|
|
312
365
|
readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
|
|
313
366
|
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>"];
|
|
@@ -336,6 +389,130 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
336
389
|
};
|
|
337
390
|
readonly additionalProperties: false;
|
|
338
391
|
};
|
|
392
|
+
readonly doctorResult: {
|
|
393
|
+
readonly type: "object";
|
|
394
|
+
readonly required: readonly ["ok", "source", "wrapper", "release", "installedPane", "daemon", "nextCommands"];
|
|
395
|
+
readonly properties: {
|
|
396
|
+
readonly ok: {
|
|
397
|
+
readonly type: "boolean";
|
|
398
|
+
};
|
|
399
|
+
readonly source: {
|
|
400
|
+
readonly enum: readonly ["npm", "pip"];
|
|
401
|
+
};
|
|
402
|
+
readonly wrapper: {
|
|
403
|
+
readonly type: "object";
|
|
404
|
+
readonly required: readonly ["runtime", "version", "paneDir", "endpoint"];
|
|
405
|
+
readonly properties: {
|
|
406
|
+
readonly runtime: {
|
|
407
|
+
readonly enum: readonly ["node", "python"];
|
|
408
|
+
};
|
|
409
|
+
readonly version: {
|
|
410
|
+
readonly type: "string";
|
|
411
|
+
};
|
|
412
|
+
readonly paneDir: {
|
|
413
|
+
readonly type: "string";
|
|
414
|
+
};
|
|
415
|
+
readonly endpoint: {
|
|
416
|
+
readonly type: "object";
|
|
417
|
+
readonly required: readonly ["transport", "path"];
|
|
418
|
+
readonly properties: {
|
|
419
|
+
readonly transport: {
|
|
420
|
+
readonly enum: readonly ["pipe", "unix"];
|
|
421
|
+
};
|
|
422
|
+
readonly path: {
|
|
423
|
+
readonly type: "string";
|
|
424
|
+
};
|
|
425
|
+
};
|
|
426
|
+
readonly additionalProperties: false;
|
|
427
|
+
};
|
|
428
|
+
};
|
|
429
|
+
readonly additionalProperties: false;
|
|
430
|
+
};
|
|
431
|
+
readonly platform: {
|
|
432
|
+
readonly type: "object";
|
|
433
|
+
readonly properties: {
|
|
434
|
+
readonly os: {
|
|
435
|
+
readonly type: "string";
|
|
436
|
+
};
|
|
437
|
+
readonly arch: {
|
|
438
|
+
readonly type: "string";
|
|
439
|
+
};
|
|
440
|
+
readonly error: {
|
|
441
|
+
readonly type: "string";
|
|
442
|
+
};
|
|
443
|
+
};
|
|
444
|
+
readonly additionalProperties: true;
|
|
445
|
+
};
|
|
446
|
+
readonly release: {
|
|
447
|
+
readonly type: "object";
|
|
448
|
+
readonly required: readonly ["ok"];
|
|
449
|
+
readonly properties: {
|
|
450
|
+
readonly ok: {
|
|
451
|
+
readonly type: "boolean";
|
|
452
|
+
};
|
|
453
|
+
readonly error: {
|
|
454
|
+
readonly type: "string";
|
|
455
|
+
};
|
|
456
|
+
};
|
|
457
|
+
readonly additionalProperties: true;
|
|
458
|
+
};
|
|
459
|
+
readonly installedPane: {
|
|
460
|
+
readonly type: "object";
|
|
461
|
+
readonly required: readonly ["found"];
|
|
462
|
+
readonly properties: {
|
|
463
|
+
readonly found: {
|
|
464
|
+
readonly type: "boolean";
|
|
465
|
+
};
|
|
466
|
+
readonly path: {
|
|
467
|
+
readonly type: "string";
|
|
468
|
+
};
|
|
469
|
+
readonly version: {
|
|
470
|
+
readonly type: "string";
|
|
471
|
+
};
|
|
472
|
+
};
|
|
473
|
+
readonly additionalProperties: false;
|
|
474
|
+
};
|
|
475
|
+
readonly daemon: {
|
|
476
|
+
readonly type: "object";
|
|
477
|
+
readonly required: readonly ["reachable", "endpoint"];
|
|
478
|
+
readonly properties: {
|
|
479
|
+
readonly reachable: {
|
|
480
|
+
readonly type: "boolean";
|
|
481
|
+
};
|
|
482
|
+
readonly endpoint: {
|
|
483
|
+
readonly type: "object";
|
|
484
|
+
readonly required: readonly ["transport", "path"];
|
|
485
|
+
readonly properties: {
|
|
486
|
+
readonly transport: {
|
|
487
|
+
readonly enum: readonly ["pipe", "unix"];
|
|
488
|
+
};
|
|
489
|
+
readonly path: {
|
|
490
|
+
readonly type: "string";
|
|
491
|
+
};
|
|
492
|
+
};
|
|
493
|
+
readonly additionalProperties: false;
|
|
494
|
+
};
|
|
495
|
+
readonly result: {
|
|
496
|
+
readonly type: "object";
|
|
497
|
+
};
|
|
498
|
+
readonly error: {
|
|
499
|
+
readonly type: "string";
|
|
500
|
+
};
|
|
501
|
+
readonly nextCommand: {
|
|
502
|
+
readonly type: "string";
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
readonly additionalProperties: false;
|
|
506
|
+
};
|
|
507
|
+
readonly nextCommands: {
|
|
508
|
+
readonly type: "array";
|
|
509
|
+
readonly items: {
|
|
510
|
+
readonly type: "string";
|
|
511
|
+
};
|
|
512
|
+
};
|
|
513
|
+
};
|
|
514
|
+
readonly additionalProperties: false;
|
|
515
|
+
};
|
|
339
516
|
readonly repoListResult: {
|
|
340
517
|
readonly type: "object";
|
|
341
518
|
readonly required: readonly ["ok", "repos"];
|
|
@@ -519,6 +696,15 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
519
696
|
readonly timeoutMs: {
|
|
520
697
|
readonly type: "number";
|
|
521
698
|
};
|
|
699
|
+
readonly waitReady: {
|
|
700
|
+
readonly type: "boolean";
|
|
701
|
+
};
|
|
702
|
+
readonly readyTimeoutMs: {
|
|
703
|
+
readonly type: "number";
|
|
704
|
+
};
|
|
705
|
+
readonly concurrency: {
|
|
706
|
+
readonly type: "number";
|
|
707
|
+
};
|
|
522
708
|
};
|
|
523
709
|
readonly additionalProperties: false;
|
|
524
710
|
};
|
|
@@ -579,6 +765,75 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
579
765
|
};
|
|
580
766
|
readonly additionalProperties: false;
|
|
581
767
|
};
|
|
768
|
+
readonly readiness: {
|
|
769
|
+
readonly type: "object";
|
|
770
|
+
readonly required: readonly ["ok", "condition", "matched", "timedOut", "elapsedMs", "state"];
|
|
771
|
+
readonly properties: {
|
|
772
|
+
readonly ok: {
|
|
773
|
+
readonly type: "boolean";
|
|
774
|
+
};
|
|
775
|
+
readonly condition: {
|
|
776
|
+
readonly enum: readonly ["initialized", "ready", "idle", "text"];
|
|
777
|
+
};
|
|
778
|
+
readonly matched: {
|
|
779
|
+
readonly type: "boolean";
|
|
780
|
+
};
|
|
781
|
+
readonly timedOut: {
|
|
782
|
+
readonly type: "boolean";
|
|
783
|
+
};
|
|
784
|
+
readonly elapsedMs: {
|
|
785
|
+
readonly type: "number";
|
|
786
|
+
};
|
|
787
|
+
readonly state: {
|
|
788
|
+
readonly type: "object";
|
|
789
|
+
readonly required: readonly ["initialized"];
|
|
790
|
+
readonly properties: {
|
|
791
|
+
readonly initialized: {
|
|
792
|
+
readonly type: "boolean";
|
|
793
|
+
};
|
|
794
|
+
readonly isAlternateScreen: {
|
|
795
|
+
readonly type: "boolean";
|
|
796
|
+
};
|
|
797
|
+
readonly activityStatus: {
|
|
798
|
+
readonly enum: readonly ["active", "idle"];
|
|
799
|
+
};
|
|
800
|
+
readonly isCliReady: {
|
|
801
|
+
readonly type: "boolean";
|
|
802
|
+
};
|
|
803
|
+
readonly isCliPanel: {
|
|
804
|
+
readonly type: "boolean";
|
|
805
|
+
};
|
|
806
|
+
readonly agentType: {
|
|
807
|
+
readonly enum: readonly ["codex", "claude"];
|
|
808
|
+
};
|
|
809
|
+
readonly lastActivity: {
|
|
810
|
+
readonly type: "string";
|
|
811
|
+
};
|
|
812
|
+
};
|
|
813
|
+
readonly additionalProperties: false;
|
|
814
|
+
};
|
|
815
|
+
readonly blocked: {
|
|
816
|
+
readonly type: "object";
|
|
817
|
+
readonly required: readonly ["kind", "message"];
|
|
818
|
+
readonly properties: {
|
|
819
|
+
readonly kind: {
|
|
820
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
821
|
+
};
|
|
822
|
+
readonly message: {
|
|
823
|
+
readonly type: "string";
|
|
824
|
+
};
|
|
825
|
+
readonly suggestedCommand: {
|
|
826
|
+
readonly type: "string";
|
|
827
|
+
};
|
|
828
|
+
};
|
|
829
|
+
readonly additionalProperties: false;
|
|
830
|
+
};
|
|
831
|
+
readonly nextCommand: {
|
|
832
|
+
readonly type: "string";
|
|
833
|
+
};
|
|
834
|
+
};
|
|
835
|
+
readonly additionalProperties: false;
|
|
836
|
+
};
|
|
582
837
|
};
|
|
583
838
|
readonly additionalProperties: false;
|
|
584
839
|
}, {
|
|
@@ -925,17 +1180,275 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
925
1180
|
};
|
|
926
1181
|
readonly additionalProperties: false;
|
|
927
1182
|
};
|
|
1183
|
+
readonly panelScreenResult: {
|
|
1184
|
+
readonly type: "object";
|
|
1185
|
+
readonly required: readonly ["ok", "panelId", "source", "limit", "returnedLineCount", "hasMore", "text", "state"];
|
|
1186
|
+
readonly properties: {
|
|
1187
|
+
readonly ok: {
|
|
1188
|
+
readonly const: true;
|
|
1189
|
+
};
|
|
1190
|
+
readonly panelId: {
|
|
1191
|
+
readonly type: "string";
|
|
1192
|
+
};
|
|
1193
|
+
readonly paneId: {
|
|
1194
|
+
readonly type: "string";
|
|
1195
|
+
};
|
|
1196
|
+
readonly source: {
|
|
1197
|
+
readonly enum: readonly ["alternateScreen", "scrollback", "persistedOutput", "empty"];
|
|
1198
|
+
};
|
|
1199
|
+
readonly limit: {
|
|
1200
|
+
readonly type: "number";
|
|
1201
|
+
};
|
|
1202
|
+
readonly returnedLineCount: {
|
|
1203
|
+
readonly type: "number";
|
|
1204
|
+
};
|
|
1205
|
+
readonly hasMore: {
|
|
1206
|
+
readonly type: "boolean";
|
|
1207
|
+
};
|
|
1208
|
+
readonly text: {
|
|
1209
|
+
readonly type: "string";
|
|
1210
|
+
};
|
|
1211
|
+
readonly state: {
|
|
1212
|
+
readonly type: "object";
|
|
1213
|
+
readonly required: readonly ["initialized"];
|
|
1214
|
+
readonly properties: {
|
|
1215
|
+
readonly initialized: {
|
|
1216
|
+
readonly type: "boolean";
|
|
1217
|
+
};
|
|
1218
|
+
readonly isAlternateScreen: {
|
|
1219
|
+
readonly type: "boolean";
|
|
1220
|
+
};
|
|
1221
|
+
readonly activityStatus: {
|
|
1222
|
+
readonly enum: readonly ["active", "idle"];
|
|
1223
|
+
};
|
|
1224
|
+
readonly isCliReady: {
|
|
1225
|
+
readonly type: "boolean";
|
|
1226
|
+
};
|
|
1227
|
+
readonly isCliPanel: {
|
|
1228
|
+
readonly type: "boolean";
|
|
1229
|
+
};
|
|
1230
|
+
readonly agentType: {
|
|
1231
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1232
|
+
};
|
|
1233
|
+
readonly lastActivity: {
|
|
1234
|
+
readonly type: "string";
|
|
1235
|
+
};
|
|
1236
|
+
};
|
|
1237
|
+
readonly additionalProperties: false;
|
|
1238
|
+
};
|
|
1239
|
+
readonly nextCommand: {
|
|
1240
|
+
readonly type: "string";
|
|
1241
|
+
};
|
|
1242
|
+
};
|
|
1243
|
+
readonly additionalProperties: false;
|
|
1244
|
+
};
|
|
1245
|
+
readonly panelSubmitRequest: {
|
|
1246
|
+
readonly type: "object";
|
|
1247
|
+
readonly required: readonly ["panelId", "input"];
|
|
1248
|
+
readonly properties: {
|
|
1249
|
+
readonly panelId: {
|
|
1250
|
+
readonly type: "string";
|
|
1251
|
+
};
|
|
1252
|
+
readonly input: {
|
|
1253
|
+
readonly type: "string";
|
|
1254
|
+
};
|
|
1255
|
+
};
|
|
1256
|
+
readonly additionalProperties: false;
|
|
1257
|
+
};
|
|
1258
|
+
readonly panelSubmitResult: {
|
|
1259
|
+
readonly type: "object";
|
|
1260
|
+
readonly required: readonly ["ok", "panelId", "inputBytes", "enter", "sentAt"];
|
|
1261
|
+
readonly properties: {
|
|
1262
|
+
readonly ok: {
|
|
1263
|
+
readonly const: true;
|
|
1264
|
+
};
|
|
1265
|
+
readonly panelId: {
|
|
1266
|
+
readonly type: "string";
|
|
1267
|
+
};
|
|
1268
|
+
readonly paneId: {
|
|
1269
|
+
readonly type: "string";
|
|
1270
|
+
};
|
|
1271
|
+
readonly inputBytes: {
|
|
1272
|
+
readonly type: "number";
|
|
1273
|
+
};
|
|
1274
|
+
readonly enter: {
|
|
1275
|
+
readonly const: "cr";
|
|
1276
|
+
};
|
|
1277
|
+
readonly sentAt: {
|
|
1278
|
+
readonly type: "string";
|
|
1279
|
+
};
|
|
1280
|
+
readonly nextCommand: {
|
|
1281
|
+
readonly type: "string";
|
|
1282
|
+
};
|
|
1283
|
+
};
|
|
1284
|
+
readonly additionalProperties: false;
|
|
1285
|
+
};
|
|
1286
|
+
readonly panelWaitResult: {
|
|
1287
|
+
readonly type: "object";
|
|
1288
|
+
readonly required: readonly ["ok", "panelId", "condition", "matched", "timedOut", "elapsedMs", "state", "screen"];
|
|
1289
|
+
readonly properties: {
|
|
1290
|
+
readonly ok: {
|
|
1291
|
+
readonly type: "boolean";
|
|
1292
|
+
};
|
|
1293
|
+
readonly panelId: {
|
|
1294
|
+
readonly type: "string";
|
|
1295
|
+
};
|
|
1296
|
+
readonly paneId: {
|
|
1297
|
+
readonly type: "string";
|
|
1298
|
+
};
|
|
1299
|
+
readonly condition: {
|
|
1300
|
+
readonly enum: readonly ["initialized", "ready", "idle", "text"];
|
|
1301
|
+
};
|
|
1302
|
+
readonly matched: {
|
|
1303
|
+
readonly type: "boolean";
|
|
1304
|
+
};
|
|
1305
|
+
readonly timedOut: {
|
|
1306
|
+
readonly type: "boolean";
|
|
1307
|
+
};
|
|
1308
|
+
readonly elapsedMs: {
|
|
1309
|
+
readonly type: "number";
|
|
1310
|
+
};
|
|
1311
|
+
readonly state: {
|
|
1312
|
+
readonly type: "object";
|
|
1313
|
+
readonly required: readonly ["initialized"];
|
|
1314
|
+
readonly properties: {
|
|
1315
|
+
readonly initialized: {
|
|
1316
|
+
readonly type: "boolean";
|
|
1317
|
+
};
|
|
1318
|
+
readonly isAlternateScreen: {
|
|
1319
|
+
readonly type: "boolean";
|
|
1320
|
+
};
|
|
1321
|
+
readonly activityStatus: {
|
|
1322
|
+
readonly enum: readonly ["active", "idle"];
|
|
1323
|
+
};
|
|
1324
|
+
readonly isCliReady: {
|
|
1325
|
+
readonly type: "boolean";
|
|
1326
|
+
};
|
|
1327
|
+
readonly isCliPanel: {
|
|
1328
|
+
readonly type: "boolean";
|
|
1329
|
+
};
|
|
1330
|
+
readonly agentType: {
|
|
1331
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1332
|
+
};
|
|
1333
|
+
readonly lastActivity: {
|
|
1334
|
+
readonly type: "string";
|
|
1335
|
+
};
|
|
1336
|
+
};
|
|
1337
|
+
readonly additionalProperties: false;
|
|
1338
|
+
};
|
|
1339
|
+
readonly blocked: {
|
|
1340
|
+
readonly type: "object";
|
|
1341
|
+
readonly required: readonly ["kind", "message"];
|
|
1342
|
+
readonly properties: {
|
|
1343
|
+
readonly kind: {
|
|
1344
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
1345
|
+
};
|
|
1346
|
+
readonly message: {
|
|
1347
|
+
readonly type: "string";
|
|
1348
|
+
};
|
|
1349
|
+
readonly suggestedCommand: {
|
|
1350
|
+
readonly type: "string";
|
|
1351
|
+
};
|
|
1352
|
+
};
|
|
1353
|
+
readonly additionalProperties: false;
|
|
1354
|
+
};
|
|
1355
|
+
readonly screen: {
|
|
1356
|
+
readonly type: "object";
|
|
1357
|
+
readonly required: readonly ["source", "text", "hasMore"];
|
|
1358
|
+
readonly properties: {
|
|
1359
|
+
readonly source: {
|
|
1360
|
+
readonly enum: readonly ["alternateScreen", "scrollback", "persistedOutput", "empty"];
|
|
1361
|
+
};
|
|
1362
|
+
readonly text: {
|
|
1363
|
+
readonly type: "string";
|
|
1364
|
+
};
|
|
1365
|
+
readonly hasMore: {
|
|
1366
|
+
readonly type: "boolean";
|
|
1367
|
+
};
|
|
1368
|
+
};
|
|
1369
|
+
readonly additionalProperties: false;
|
|
1370
|
+
};
|
|
1371
|
+
readonly nextCommand: {
|
|
1372
|
+
readonly type: "string";
|
|
1373
|
+
};
|
|
1374
|
+
};
|
|
1375
|
+
readonly additionalProperties: false;
|
|
1376
|
+
};
|
|
1377
|
+
readonly agentDoctorResult: {
|
|
1378
|
+
readonly type: "object";
|
|
1379
|
+
readonly required: readonly ["ok", "agent", "command", "available", "checks"];
|
|
1380
|
+
readonly properties: {
|
|
1381
|
+
readonly ok: {
|
|
1382
|
+
readonly type: "boolean";
|
|
1383
|
+
};
|
|
1384
|
+
readonly agent: {
|
|
1385
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1386
|
+
};
|
|
1387
|
+
readonly command: {
|
|
1388
|
+
readonly type: "string";
|
|
1389
|
+
};
|
|
1390
|
+
readonly repo: {
|
|
1391
|
+
readonly $ref: "#/jsonSchemas/repoListResult/properties/repos/items";
|
|
1392
|
+
};
|
|
1393
|
+
readonly environment: {
|
|
1394
|
+
readonly enum: readonly ["wsl", "windows", "linux", "macos"];
|
|
1395
|
+
};
|
|
1396
|
+
readonly available: {
|
|
1397
|
+
readonly type: "boolean";
|
|
1398
|
+
};
|
|
1399
|
+
readonly executablePath: {
|
|
1400
|
+
readonly type: "string";
|
|
1401
|
+
};
|
|
1402
|
+
readonly version: {
|
|
1403
|
+
readonly type: "string";
|
|
1404
|
+
};
|
|
1405
|
+
readonly checks: {
|
|
1406
|
+
readonly type: "array";
|
|
1407
|
+
readonly items: {
|
|
1408
|
+
readonly type: "object";
|
|
1409
|
+
readonly required: readonly ["name", "ok", "message"];
|
|
1410
|
+
readonly properties: {
|
|
1411
|
+
readonly name: {
|
|
1412
|
+
readonly type: "string";
|
|
1413
|
+
};
|
|
1414
|
+
readonly ok: {
|
|
1415
|
+
readonly type: "boolean";
|
|
1416
|
+
};
|
|
1417
|
+
readonly message: {
|
|
1418
|
+
readonly type: "string";
|
|
1419
|
+
};
|
|
1420
|
+
};
|
|
1421
|
+
readonly additionalProperties: false;
|
|
1422
|
+
};
|
|
1423
|
+
};
|
|
1424
|
+
readonly warnings: {
|
|
1425
|
+
readonly type: "array";
|
|
1426
|
+
readonly items: {
|
|
1427
|
+
readonly type: "string";
|
|
1428
|
+
};
|
|
1429
|
+
};
|
|
1430
|
+
};
|
|
1431
|
+
readonly additionalProperties: false;
|
|
1432
|
+
};
|
|
928
1433
|
};
|
|
929
1434
|
readonly agentContext: {
|
|
930
1435
|
readonly brief: {
|
|
931
1436
|
readonly title: "Pane agent context";
|
|
932
|
-
readonly summary: "Pane lets a developer manage repositories and user-visible panes. Agents can use runpane to
|
|
933
|
-
readonly rules: readonly ["Start with `runpane repos list --json` to find the saved repository when unsure.", "If WSL cannot reach Pane or `runpane` resolves to a broken Windows shim, the user may be running Windows Pane; try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane
|
|
1437
|
+
readonly summary: "Pane lets a developer manage repositories and user-visible terminal panes. Agents can use runpane to create panes, inspect compact terminal state, wait for readiness, and submit interactive input.";
|
|
1438
|
+
readonly rules: readonly ["Start with `runpane doctor --json` to understand wrapper, platform, daemon reachability, and the next safe commands before mutating Pane state.", "Use `runpane agent-context --json` for the full agent-facing CLI context, or `runpane agent-context --command <command> --json` for one detailed command definition.", "Use `runpane repos list --json` to find the saved repository when unsure after doctor shows the daemon is reachable.", "If WSL cannot reach Pane or `runpane` resolves to a broken Windows shim, the user may be running Windows Pane; try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane doctor --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 agents doctor --agent <codex|claude> --repo <selector> --json` when agent availability differs across host, Windows, WSL, or repo environments.", "Use `runpane panes create --wait-ready` to create panes and validate initial terminal readiness in one call.", "Use `runpane panels screen` for compact current state, `panels wait` for readiness/text checks, and `panels submit` for ordinary Enter-submitted input.", "Use `runpane panels input` only when exact bytes are required, such as Ctrl-C or handcrafted terminal input.", "After creating panes or sending terminal input, validate with `panels wait` or bounded `panels screen` before reporting success."];
|
|
934
1439
|
readonly detailCommand: "runpane agent-context --command <command> [--json]";
|
|
935
1440
|
readonly tools: readonly [{
|
|
1441
|
+
readonly name: "doctor";
|
|
1442
|
+
readonly summary: "Report wrapper, platform, installed Pane, and daemon reachability before an agent mutates Pane state.";
|
|
1443
|
+
readonly arguments: readonly ["--json", "--pane-dir <path>", "--pane-path <path>"];
|
|
1444
|
+
}, {
|
|
936
1445
|
readonly name: "agent-context";
|
|
937
1446
|
readonly summary: "Print token-efficient Pane command context for coding agents.";
|
|
938
1447
|
readonly arguments: readonly ["--command <command>", "--json"];
|
|
1448
|
+
}, {
|
|
1449
|
+
readonly name: "agents doctor";
|
|
1450
|
+
readonly summary: "Check whether Codex or Claude is available in the repo environment Pane will use.";
|
|
1451
|
+
readonly arguments: readonly ["--agent <codex|claude>", "--repo <selector>", "--json"];
|
|
939
1452
|
}, {
|
|
940
1453
|
readonly name: "repos list";
|
|
941
1454
|
readonly summary: "List repositories saved in the running Pane app.";
|
|
@@ -951,7 +1464,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
951
1464
|
}, {
|
|
952
1465
|
readonly name: "panes create";
|
|
953
1466
|
readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
|
|
954
|
-
readonly arguments: readonly ["--repo <selector>", "--name <name>", "--agent <codex|claude>", "--tool-command <command>", "--prompt <text>", "--initial-input-file <path|->", "--from-json <path|->", "--yes", "--json"];
|
|
1467
|
+
readonly arguments: readonly ["--repo <selector>", "--name <name>", "--agent <codex|claude>", "--tool-command <command>", "--prompt <text>", "--initial-input-file <path|->", "--from-json <path|->", "--wait-ready", "--ready-timeout-ms <ms>", "--concurrency <count>", "--yes", "--json"];
|
|
955
1468
|
}, {
|
|
956
1469
|
readonly name: "panels list";
|
|
957
1470
|
readonly summary: "List tool panels inside a Pane session.";
|
|
@@ -960,10 +1473,22 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
960
1473
|
readonly name: "panels output";
|
|
961
1474
|
readonly summary: "Read recent terminal output from a panel.";
|
|
962
1475
|
readonly arguments: readonly ["--panel <panel-id>", "--limit <count>", "--json", "--pane-dir <path>"];
|
|
1476
|
+
}, {
|
|
1477
|
+
readonly name: "panels screen";
|
|
1478
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
1479
|
+
readonly arguments: readonly ["--panel <panel-id>", "--limit <count>", "--json", "--pane-dir <path>"];
|
|
963
1480
|
}, {
|
|
964
1481
|
readonly name: "panels input";
|
|
965
1482
|
readonly summary: "Send input bytes to a terminal panel.";
|
|
966
1483
|
readonly arguments: readonly ["--panel <panel-id>", "--text <text>", "--input-file <path|->", "--yes", "--json", "--pane-dir <path>"];
|
|
1484
|
+
}, {
|
|
1485
|
+
readonly name: "panels submit";
|
|
1486
|
+
readonly summary: "Send text plus terminal Enter to a terminal panel.";
|
|
1487
|
+
readonly arguments: readonly ["--panel <panel-id>", "--text <text>", "--input-file <path|->", "--yes", "--json", "--pane-dir <path>"];
|
|
1488
|
+
}, {
|
|
1489
|
+
readonly name: "panels wait";
|
|
1490
|
+
readonly summary: "Wait for terminal initialized, ready, idle, or text state with compact output.";
|
|
1491
|
+
readonly arguments: readonly ["--panel <panel-id>", "--for <condition>", "--contains <text>", "--timeout-ms <ms>", "--interval-ms <ms>", "--json", "--pane-dir <path>"];
|
|
967
1492
|
}];
|
|
968
1493
|
};
|
|
969
1494
|
readonly commands: {
|
|
@@ -1062,22 +1587,37 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1062
1587
|
};
|
|
1063
1588
|
readonly doctor: {
|
|
1064
1589
|
readonly name: "doctor";
|
|
1065
|
-
readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
|
|
1066
|
-
readonly details: "Use this when
|
|
1590
|
+
readonly summary: "Run platform, release, installed Pane, daemon reachability, and remote setup diagnostics.";
|
|
1591
|
+
readonly details: "Use this first when an agent needs to understand whether Pane is installed, which wrapper/runtime is running, what daemon endpoint is expected, and whether the running Pane app is reachable. JSON mode should return a report even when the daemon is unreachable.";
|
|
1067
1592
|
readonly requiresPaneDaemon: false;
|
|
1068
1593
|
readonly mutates: false;
|
|
1069
1594
|
readonly arguments: readonly [{
|
|
1595
|
+
readonly name: "--json";
|
|
1596
|
+
readonly required: false;
|
|
1597
|
+
readonly description: "Print a machine-readable environment report.";
|
|
1598
|
+
}, {
|
|
1599
|
+
readonly name: "--pane-dir";
|
|
1600
|
+
readonly value: "<path>";
|
|
1601
|
+
readonly required: false;
|
|
1602
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1603
|
+
}, {
|
|
1070
1604
|
readonly name: "--pane-path";
|
|
1071
1605
|
readonly value: "<path>";
|
|
1072
1606
|
readonly required: false;
|
|
1073
|
-
readonly description: "
|
|
1607
|
+
readonly description: "Inspect a specific Pane executable.";
|
|
1608
|
+
}, {
|
|
1609
|
+
readonly name: "--format";
|
|
1610
|
+
readonly value: "<format>";
|
|
1611
|
+
readonly required: false;
|
|
1612
|
+
readonly description: "Release artifact format to inspect.";
|
|
1074
1613
|
}, {
|
|
1075
1614
|
readonly name: "--verbose";
|
|
1076
1615
|
readonly required: false;
|
|
1077
1616
|
readonly description: "Print extra diagnostics.";
|
|
1078
1617
|
}];
|
|
1079
|
-
readonly examples: readonly ["runpane doctor", "runpane doctor
|
|
1080
|
-
readonly
|
|
1618
|
+
readonly examples: readonly ["runpane doctor --json", "runpane doctor"];
|
|
1619
|
+
readonly jsonSchemas: readonly ["doctorResult"];
|
|
1620
|
+
readonly notes: readonly ["Agents should run `runpane doctor --json` before mutating Pane state.", "The JSON report includes daemon reachability as data; an unreachable daemon is not a reason to skip the rest of the report.", "Use `runpane agent-context --json` after doctor when full CLI context is needed."];
|
|
1081
1621
|
};
|
|
1082
1622
|
readonly "agent-context": {
|
|
1083
1623
|
readonly name: "agent-context";
|
|
@@ -1231,10 +1771,24 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1231
1771
|
readonly name: "--json";
|
|
1232
1772
|
readonly required: false;
|
|
1233
1773
|
readonly description: "Print machine-readable output.";
|
|
1774
|
+
}, {
|
|
1775
|
+
readonly name: "--wait-ready";
|
|
1776
|
+
readonly required: false;
|
|
1777
|
+
readonly description: "Wait for each created terminal panel to be ready before returning.";
|
|
1778
|
+
}, {
|
|
1779
|
+
readonly name: "--ready-timeout-ms";
|
|
1780
|
+
readonly value: "<ms>";
|
|
1781
|
+
readonly required: false;
|
|
1782
|
+
readonly description: "Readiness timeout per pane; defaults to 30000.";
|
|
1783
|
+
}, {
|
|
1784
|
+
readonly name: "--concurrency";
|
|
1785
|
+
readonly value: "<count>";
|
|
1786
|
+
readonly required: false;
|
|
1787
|
+
readonly description: "Accepted for compatibility. Pane currently serializes multi-pane session creation so queued jobs do not time out before starting.";
|
|
1234
1788
|
}];
|
|
1235
|
-
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"];
|
|
1789
|
+
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", "runpane panes create --repo active --name issue-123 --agent codex --prompt \"Plan this issue\" --wait-ready --yes --json"];
|
|
1236
1790
|
readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
|
|
1237
|
-
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.", "Use --initial-input-file for multi-line prompts or shell-sensitive initial input.", "When the JSON result includes nextCommand, run it to validate that the terminal produced output before reporting success.", "For POSIX or WSL command chaining, use a custom terminal command like `bash -lc 'cmd1 && cmd2 && cmd3'`.", "For Windows PowerShell command chaining, use a custom terminal command like `powershell -NoProfile -Command \"cmd1; if ($LASTEXITCODE) { exit $LASTEXITCODE }; cmd2\"`.", "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'`."];
|
|
1791
|
+
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.", "Use --initial-input-file for multi-line prompts or shell-sensitive initial input.", "When the JSON result includes nextCommand, run it to validate that the terminal produced output before reporting success.", "Multi-pane requests are created sequentially today. The --concurrency flag is accepted for compatibility, but agents should not rely on parallel creation.", "For POSIX or WSL command chaining, use a custom terminal command like `bash -lc 'cmd1 && cmd2 && cmd3'`.", "For Windows PowerShell command chaining, use a custom terminal command like `powershell -NoProfile -Command \"cmd1; if ($LASTEXITCODE) { exit $LASTEXITCODE }; cmd2\"`.", "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'`.", "Use --wait-ready when an agent needs to verify that an agent terminal started instead of only creating a pane.", "If readiness returns blocked, inspect blocked.suggestedCommand rather than guessing which prompt to answer."];
|
|
1238
1792
|
};
|
|
1239
1793
|
readonly "panels list": {
|
|
1240
1794
|
readonly name: "panels list";
|
|
@@ -1289,7 +1843,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1289
1843
|
}];
|
|
1290
1844
|
readonly examples: readonly ["runpane panels output --panel <panel-id> --limit 200 --json"];
|
|
1291
1845
|
readonly jsonSchemas: readonly ["panelOutputResult"];
|
|
1292
|
-
readonly notes: readonly ["Default output is bounded to the latest 200 lines or records. Use a larger --limit only when hasMore is true and more history is needed.", "Use --json when an agent needs timestamps, record types, returnedCount, or hasMore.", "The output is intended to be agent-readable, but terminal prompts and shell echoes may still appear; use the newest relevant lines before concluding success."];
|
|
1846
|
+
readonly notes: readonly ["Default output is bounded to the latest 200 lines or records. Use a larger --limit only when hasMore is true and more history is needed.", "Use --json when an agent needs timestamps, record types, returnedCount, or hasMore.", "The output is intended to be agent-readable, but terminal prompts and shell echoes may still appear; use the newest relevant lines before concluding success.", "Prefer `panels screen` for a smaller current-state read before increasing output limits."];
|
|
1293
1847
|
};
|
|
1294
1848
|
readonly "panels input": {
|
|
1295
1849
|
readonly name: "panels input";
|
|
@@ -1328,10 +1882,154 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1328
1882
|
}];
|
|
1329
1883
|
readonly examples: readonly ["printf 'Continue\\n' | runpane panels input --panel <panel-id> --input-file - --yes", "printf '\\003' | runpane panels input --panel <panel-id> --input-file - --yes", "runpane panels input --panel <panel-id> --text \"simple text\" --yes --json"];
|
|
1330
1884
|
readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
|
|
1331
|
-
readonly notes: readonly ["Input is sent exactly as provided. Include a real newline byte when the terminal should receive Enter; across shells, `--input-file` is safer than `--text \"...\\n\"`.", "Use `--input-file -` or a temp file for multi-line input, quotes, Ctrl-C, or shell-sensitive text.", "If interrupting a running process, send Ctrl-C first, validate/read output, then send the next command in a separate `panels input` call so bytes are not dropped.", "After sending input, validate with `runpane panels output --panel <panel-id> --json` before reporting success.", "Runpane records action metadata and errors for observability, but should not log full input text by default."];
|
|
1885
|
+
readonly notes: readonly ["Input is sent exactly as provided. Include a real newline byte when the terminal should receive Enter; across shells, `--input-file` is safer than `--text \"...\\n\"`.", "Use `--input-file -` or a temp file for multi-line input, quotes, Ctrl-C, or shell-sensitive text.", "If interrupting a running process, send Ctrl-C first, validate/read output, then send the next command in a separate `panels input` call so bytes are not dropped.", "After sending input, validate with `runpane panels output --panel <panel-id> --json` before reporting success.", "Runpane records action metadata and errors for observability, but should not log full input text by default.", "For ordinary text plus Enter, prefer `panels submit` so the terminal receives a CR Enter byte."];
|
|
1886
|
+
};
|
|
1887
|
+
readonly "agents doctor": {
|
|
1888
|
+
readonly name: "agents doctor";
|
|
1889
|
+
readonly summary: "Diagnose whether a built-in agent command is available in a Pane repository environment.";
|
|
1890
|
+
readonly details: "Use this before creating Codex or Claude panes when PATH may differ between macOS/Linux/Windows/WSL or between the wrapper shell and Pane. The check runs through Pane project context, not the wrapper process.";
|
|
1891
|
+
readonly requiresPaneDaemon: true;
|
|
1892
|
+
readonly mutates: false;
|
|
1893
|
+
readonly arguments: readonly [{
|
|
1894
|
+
readonly name: "--agent";
|
|
1895
|
+
readonly value: "<codex|claude>";
|
|
1896
|
+
readonly required: true;
|
|
1897
|
+
readonly description: "Built-in agent command to diagnose.";
|
|
1898
|
+
}, {
|
|
1899
|
+
readonly name: "--repo";
|
|
1900
|
+
readonly value: "<selector>";
|
|
1901
|
+
readonly required: false;
|
|
1902
|
+
readonly description: "Repository selector; defaults to the active Pane repo.";
|
|
1903
|
+
}, {
|
|
1904
|
+
readonly name: "--json";
|
|
1905
|
+
readonly required: false;
|
|
1906
|
+
readonly description: "Print machine-readable output.";
|
|
1907
|
+
}, {
|
|
1908
|
+
readonly name: "--pane-dir";
|
|
1909
|
+
readonly value: "<path>";
|
|
1910
|
+
readonly required: false;
|
|
1911
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1912
|
+
}];
|
|
1913
|
+
readonly examples: readonly ["runpane agents doctor --agent codex --repo active --json"];
|
|
1914
|
+
readonly jsonSchemas: readonly ["agentDoctorResult"];
|
|
1915
|
+
readonly notes: readonly ["For WSL repos, install the agent inside the WSL distro Pane uses, not only on Windows.", "This diagnoses built-in Codex/Claude templates only; custom commands should be validated by creating a pane and reading its screen."];
|
|
1916
|
+
};
|
|
1917
|
+
readonly "panels screen": {
|
|
1918
|
+
readonly name: "panels screen";
|
|
1919
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
1920
|
+
readonly details: "Use this for token-safe current terminal state. It prefers active alternate-screen/TUI output, then live scrollback, then persisted output. Default output is bounded to 80 lines.";
|
|
1921
|
+
readonly requiresPaneDaemon: true;
|
|
1922
|
+
readonly mutates: false;
|
|
1923
|
+
readonly arguments: readonly [{
|
|
1924
|
+
readonly name: "--panel";
|
|
1925
|
+
readonly value: "<panel-id>";
|
|
1926
|
+
readonly required: true;
|
|
1927
|
+
readonly description: "Terminal panel id.";
|
|
1928
|
+
}, {
|
|
1929
|
+
readonly name: "--limit";
|
|
1930
|
+
readonly value: "<count>";
|
|
1931
|
+
readonly required: false;
|
|
1932
|
+
readonly description: "Maximum lines to return; defaults to 80.";
|
|
1933
|
+
}, {
|
|
1934
|
+
readonly name: "--json";
|
|
1935
|
+
readonly required: false;
|
|
1936
|
+
readonly description: "Print machine-readable output.";
|
|
1937
|
+
}, {
|
|
1938
|
+
readonly name: "--pane-dir";
|
|
1939
|
+
readonly value: "<path>";
|
|
1940
|
+
readonly required: false;
|
|
1941
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1942
|
+
}];
|
|
1943
|
+
readonly examples: readonly ["runpane panels screen --panel <panel-id> --limit 80 --json"];
|
|
1944
|
+
readonly jsonSchemas: readonly ["panelScreenResult"];
|
|
1945
|
+
readonly notes: readonly ["Use this before `panels output` when an agent only needs the latest visible/current state.", "If hasMore is true and context is missing, rerun with a larger --limit or use `panels output`."];
|
|
1946
|
+
};
|
|
1947
|
+
readonly "panels submit": {
|
|
1948
|
+
readonly name: "panels submit";
|
|
1949
|
+
readonly summary: "Send text to a terminal panel and append a terminal Enter byte.";
|
|
1950
|
+
readonly details: "Use this for ordinary interactive submissions. The daemon normalizes a final LF or CRLF to CR, or appends CR if no newline is present. Exact byte workflows remain on `panels input`.";
|
|
1951
|
+
readonly requiresPaneDaemon: true;
|
|
1952
|
+
readonly mutates: true;
|
|
1953
|
+
readonly arguments: readonly [{
|
|
1954
|
+
readonly name: "--panel";
|
|
1955
|
+
readonly value: "<panel-id>";
|
|
1956
|
+
readonly required: true;
|
|
1957
|
+
readonly description: "Terminal panel id.";
|
|
1958
|
+
}, {
|
|
1959
|
+
readonly name: "--text";
|
|
1960
|
+
readonly value: "<text>";
|
|
1961
|
+
readonly required: false;
|
|
1962
|
+
readonly description: "Text to submit before Enter.";
|
|
1963
|
+
}, {
|
|
1964
|
+
readonly name: "--input-file";
|
|
1965
|
+
readonly value: "<path|->";
|
|
1966
|
+
readonly required: false;
|
|
1967
|
+
readonly description: "Read text from a file or stdin before Enter.";
|
|
1968
|
+
}, {
|
|
1969
|
+
readonly name: "--yes";
|
|
1970
|
+
readonly required: false;
|
|
1971
|
+
readonly description: "Skip confirmation for this mutating command.";
|
|
1972
|
+
}, {
|
|
1973
|
+
readonly name: "--json";
|
|
1974
|
+
readonly required: false;
|
|
1975
|
+
readonly description: "Print machine-readable output.";
|
|
1976
|
+
}, {
|
|
1977
|
+
readonly name: "--pane-dir";
|
|
1978
|
+
readonly value: "<path>";
|
|
1979
|
+
readonly required: false;
|
|
1980
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1981
|
+
}];
|
|
1982
|
+
readonly examples: readonly ["runpane panels submit --panel <panel-id> --text \"2\" --yes --json", "printf \"echo hello\" | runpane panels submit --panel <panel-id> --input-file - --yes --json"];
|
|
1983
|
+
readonly jsonSchemas: readonly ["panelSubmitRequest", "panelSubmitResult"];
|
|
1984
|
+
readonly notes: readonly ["The response includes nextCommand for validation. Run it before reporting that the input worked.", "Use `panels input` for Ctrl-C, escape sequences, or any workflow requiring exact bytes."];
|
|
1985
|
+
};
|
|
1986
|
+
readonly "panels wait": {
|
|
1987
|
+
readonly name: "panels wait";
|
|
1988
|
+
readonly summary: "Wait for a terminal panel to initialize, become ready/idle, or contain text.";
|
|
1989
|
+
readonly details: "Use this to validate asynchronous terminal behavior without pulling large scrollback. It returns brief readiness state, blocker hints, a compact screen, and a next command.";
|
|
1990
|
+
readonly requiresPaneDaemon: true;
|
|
1991
|
+
readonly mutates: false;
|
|
1992
|
+
readonly arguments: readonly [{
|
|
1993
|
+
readonly name: "--panel";
|
|
1994
|
+
readonly value: "<panel-id>";
|
|
1995
|
+
readonly required: true;
|
|
1996
|
+
readonly description: "Terminal panel id.";
|
|
1997
|
+
}, {
|
|
1998
|
+
readonly name: "--for";
|
|
1999
|
+
readonly value: "<initialized|ready|idle|text>";
|
|
2000
|
+
readonly required: false;
|
|
2001
|
+
readonly description: "Condition to wait for. Defaults to ready for CLI panels and idle otherwise.";
|
|
2002
|
+
}, {
|
|
2003
|
+
readonly name: "--contains";
|
|
2004
|
+
readonly value: "<text>";
|
|
2005
|
+
readonly required: false;
|
|
2006
|
+
readonly description: "Text required for --for text; implies --for text when --for is omitted.";
|
|
2007
|
+
}, {
|
|
2008
|
+
readonly name: "--timeout-ms";
|
|
2009
|
+
readonly value: "<ms>";
|
|
2010
|
+
readonly required: false;
|
|
2011
|
+
readonly description: "Wait timeout; defaults to 30000.";
|
|
2012
|
+
}, {
|
|
2013
|
+
readonly name: "--interval-ms";
|
|
2014
|
+
readonly value: "<ms>";
|
|
2015
|
+
readonly required: false;
|
|
2016
|
+
readonly description: "Polling interval; defaults to 500.";
|
|
2017
|
+
}, {
|
|
2018
|
+
readonly name: "--json";
|
|
2019
|
+
readonly required: false;
|
|
2020
|
+
readonly description: "Print machine-readable output.";
|
|
2021
|
+
}, {
|
|
2022
|
+
readonly name: "--pane-dir";
|
|
2023
|
+
readonly value: "<path>";
|
|
2024
|
+
readonly required: false;
|
|
2025
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
2026
|
+
}];
|
|
2027
|
+
readonly examples: readonly ["runpane panels wait --panel <panel-id> --for ready --timeout-ms 30000 --json", "runpane panels wait --panel <panel-id> --contains \"Ready\" --json"];
|
|
2028
|
+
readonly jsonSchemas: readonly ["panelWaitResult"];
|
|
2029
|
+
readonly notes: readonly ["If blocked is present, do not assume success. Use blocked.suggestedCommand or inspect `panels screen`.", "The default timeout and screen are intentionally small for agent context safety."];
|
|
1332
2030
|
};
|
|
1333
2031
|
};
|
|
1334
|
-
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
|
|
2032
|
+
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, implementation, and review work.", "", "Start with `runpane doctor --json` before taking Pane actions. Use it to understand wrapper/runtime details, daemon reachability, and the next safe commands.", "", "Use `runpane agent-context --json` for full Pane CLI context. Use `runpane agent-context --command \"panels wait\" --json` or another command name for detailed schema only when needed.", "", "Default to context-safe validation: after creating panes or sending terminal input, run `runpane panels wait` or `runpane panels screen` before reporting success. Prefer `runpane panels submit` for normal text plus Enter; use `runpane panels input` only for exact bytes such as Ctrl-C or escape sequences.", "", "Common commands:", "- `runpane doctor --json`", "- `runpane agent-context --json`", "- `runpane repos list --json`", "- `runpane repos add --path <repo> --yes --json`", "- `runpane agents doctor --agent codex --repo active --json`", "- `runpane panes create --repo active --name <name> --agent codex --prompt \"<task>\" --wait-ready --yes --json`", "- `runpane panels list --pane <pane-id> --json`", "- `runpane panels screen --panel <panel-id> --limit 80 --json`", "- `runpane panels wait --panel <panel-id> --for ready --timeout-ms 30000 --json`", "- `runpane panels submit --panel <panel-id> --text \"<answer>\" --yes --json`", "- `runpane panels input --panel <panel-id> --input-file <path|-> --yes --json`", "", "WSL note: if `runpane doctor --json` cannot find `/tmp/pane-daemon.../daemon.sock` or `runpane` resolves to a broken Windows shim, Pane may be running on Windows. Try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane doctor --json'`, then create panes through the same PowerShell form using the saved WSL repo name or id. Use `runpane agents doctor --agent codex --repo <selector> --json` to diagnose the repo environment Pane will actually use."];
|
|
1335
2033
|
};
|
|
1336
2034
|
};
|
|
1337
2035
|
export type RunpaneCommand = typeof RUNPANE_CONTRACT.commands[number]['name'];
|