runpane 2.3.6 → 2.3.8
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 +12 -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 +44 -1
- package/dist/commands.js.map +1 -1
- package/dist/generated/contract.d.ts +576 -22
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +1079 -103
- 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
|
@@ -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: "agents doctor";
|
|
75
|
+
readonly summary: "Diagnose whether a built-in agent command is available in a Pane repository environment.";
|
|
76
|
+
readonly usage: readonly ["runpane agents doctor --agent <codex|claude> [--repo <selector>] [--json]"];
|
|
77
|
+
readonly jsonSchemas: readonly ["agentDoctorResult"];
|
|
73
78
|
}, {
|
|
74
79
|
readonly name: "agent-context";
|
|
75
80
|
readonly summary: "Print token-efficient Pane command context for coding agents.";
|
|
@@ -107,12 +112,28 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
107
112
|
readonly summary: "Read recent terminal output from a panel.";
|
|
108
113
|
readonly usage: readonly ["runpane panels output --panel <panel-id> [--limit <count>] [--json]"];
|
|
109
114
|
readonly jsonSchemas: readonly ["panelOutputResult"];
|
|
115
|
+
}, {
|
|
116
|
+
readonly name: "panels screen";
|
|
117
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
118
|
+
readonly usage: readonly ["runpane panels screen --panel <panel-id> [--limit <count>] [--json]"];
|
|
119
|
+
readonly jsonSchemas: readonly ["panelScreenResult"];
|
|
110
120
|
}, {
|
|
111
121
|
readonly name: "panels input";
|
|
112
122
|
readonly summary: "Send input bytes to a terminal panel.";
|
|
113
123
|
readonly usage: readonly ["runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"];
|
|
114
124
|
readonly mutates: true;
|
|
115
125
|
readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
|
|
126
|
+
}, {
|
|
127
|
+
readonly name: "panels submit";
|
|
128
|
+
readonly summary: "Send text to a terminal panel and append a terminal Enter byte.";
|
|
129
|
+
readonly usage: readonly ["runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"];
|
|
130
|
+
readonly mutates: true;
|
|
131
|
+
readonly jsonSchemas: readonly ["panelSubmitRequest", "panelSubmitResult"];
|
|
132
|
+
}, {
|
|
133
|
+
readonly name: "panels wait";
|
|
134
|
+
readonly summary: "Wait for a terminal panel to initialize, become ready/idle, or contain text.";
|
|
135
|
+
readonly usage: readonly ["runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--contains <text>] [--timeout-ms <ms>] [--interval-ms <ms>] [--json]"];
|
|
136
|
+
readonly jsonSchemas: readonly ["panelWaitResult"];
|
|
116
137
|
}];
|
|
117
138
|
readonly flags: {
|
|
118
139
|
readonly wrapper: readonly [{
|
|
@@ -239,10 +260,30 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
239
260
|
readonly name: "--timeout-ms";
|
|
240
261
|
readonly value: "<milliseconds>";
|
|
241
262
|
readonly description: "Maximum time to wait for each pane creation job.";
|
|
263
|
+
}, {
|
|
264
|
+
readonly name: "--ready-timeout-ms";
|
|
265
|
+
readonly value: "<milliseconds>";
|
|
266
|
+
readonly description: "Readiness wait timeout for panes create --wait-ready.";
|
|
267
|
+
}, {
|
|
268
|
+
readonly name: "--concurrency";
|
|
269
|
+
readonly value: "<count>";
|
|
270
|
+
readonly description: "Accepted for forward compatibility. Pane currently serializes multi-pane session creation so queued jobs do not time out before starting.";
|
|
242
271
|
}, {
|
|
243
272
|
readonly name: "--limit";
|
|
244
273
|
readonly value: "<count>";
|
|
245
274
|
readonly description: "Maximum recent output lines or records to read.";
|
|
275
|
+
}, {
|
|
276
|
+
readonly name: "--for";
|
|
277
|
+
readonly value: "<initialized|ready|idle|text>";
|
|
278
|
+
readonly description: "Panel wait condition.";
|
|
279
|
+
}, {
|
|
280
|
+
readonly name: "--contains";
|
|
281
|
+
readonly value: "<text>";
|
|
282
|
+
readonly description: "Text to wait for with panels wait --for text.";
|
|
283
|
+
}, {
|
|
284
|
+
readonly name: "--interval-ms";
|
|
285
|
+
readonly value: "<milliseconds>";
|
|
286
|
+
readonly description: "Polling interval for panels wait.";
|
|
246
287
|
}, {
|
|
247
288
|
readonly name: "--text";
|
|
248
289
|
readonly value: "<text>";
|
|
@@ -255,11 +296,14 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
255
296
|
readonly localBoolean: readonly [{
|
|
256
297
|
readonly name: "--json";
|
|
257
298
|
readonly description: "Print machine-readable JSON output.";
|
|
299
|
+
}, {
|
|
300
|
+
readonly name: "--wait-ready";
|
|
301
|
+
readonly description: "Wait for created terminal panels to be ready before returning.";
|
|
258
302
|
}];
|
|
259
303
|
};
|
|
260
304
|
readonly help: {
|
|
261
305
|
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> --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", "
|
|
306
|
+
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", "", "Run \"runpane agent-context\" when an agent needs Pane command context.", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
263
307
|
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
308
|
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
309
|
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"];
|
|
@@ -268,14 +312,18 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
268
312
|
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
313
|
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
314
|
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"];
|
|
315
|
+
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
316
|
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
317
|
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
318
|
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
319
|
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"];
|
|
320
|
+
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"];
|
|
321
|
+
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"];
|
|
322
|
+
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"];
|
|
323
|
+
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
324
|
};
|
|
277
325
|
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> --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."];
|
|
326
|
+
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", "", "Run \"runpane agent-context\" when an agent needs Pane command context.", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
279
327
|
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
328
|
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
329
|
readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
|
|
@@ -284,11 +332,15 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
284
332
|
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
333
|
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
334
|
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"];
|
|
335
|
+
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
336
|
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
337
|
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
338
|
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
339
|
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"];
|
|
340
|
+
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"];
|
|
341
|
+
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"];
|
|
342
|
+
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"];
|
|
343
|
+
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
344
|
};
|
|
293
345
|
};
|
|
294
346
|
readonly docs: {
|
|
@@ -297,17 +349,17 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
297
349
|
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
350
|
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
351
|
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", "runpane panels input --panel <panel-id> --
|
|
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.", "`runpane panels input` sends exact input bytes to one terminal panel.
|
|
352
|
+
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"];
|
|
353
|
+
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'`."];
|
|
302
354
|
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.";
|
|
355
|
+
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.";
|
|
304
356
|
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
357
|
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
358
|
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
359
|
};
|
|
308
360
|
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"];
|
|
361
|
+
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"], 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"]];
|
|
362
|
+
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"];
|
|
311
363
|
readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
|
|
312
364
|
readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
|
|
313
365
|
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>"];
|
|
@@ -519,6 +571,15 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
519
571
|
readonly timeoutMs: {
|
|
520
572
|
readonly type: "number";
|
|
521
573
|
};
|
|
574
|
+
readonly waitReady: {
|
|
575
|
+
readonly type: "boolean";
|
|
576
|
+
};
|
|
577
|
+
readonly readyTimeoutMs: {
|
|
578
|
+
readonly type: "number";
|
|
579
|
+
};
|
|
580
|
+
readonly concurrency: {
|
|
581
|
+
readonly type: "number";
|
|
582
|
+
};
|
|
522
583
|
};
|
|
523
584
|
readonly additionalProperties: false;
|
|
524
585
|
};
|
|
@@ -579,6 +640,75 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
579
640
|
};
|
|
580
641
|
readonly additionalProperties: false;
|
|
581
642
|
};
|
|
643
|
+
readonly readiness: {
|
|
644
|
+
readonly type: "object";
|
|
645
|
+
readonly required: readonly ["ok", "condition", "matched", "timedOut", "elapsedMs", "state"];
|
|
646
|
+
readonly properties: {
|
|
647
|
+
readonly ok: {
|
|
648
|
+
readonly type: "boolean";
|
|
649
|
+
};
|
|
650
|
+
readonly condition: {
|
|
651
|
+
readonly enum: readonly ["initialized", "ready", "idle", "text"];
|
|
652
|
+
};
|
|
653
|
+
readonly matched: {
|
|
654
|
+
readonly type: "boolean";
|
|
655
|
+
};
|
|
656
|
+
readonly timedOut: {
|
|
657
|
+
readonly type: "boolean";
|
|
658
|
+
};
|
|
659
|
+
readonly elapsedMs: {
|
|
660
|
+
readonly type: "number";
|
|
661
|
+
};
|
|
662
|
+
readonly state: {
|
|
663
|
+
readonly type: "object";
|
|
664
|
+
readonly required: readonly ["initialized"];
|
|
665
|
+
readonly properties: {
|
|
666
|
+
readonly initialized: {
|
|
667
|
+
readonly type: "boolean";
|
|
668
|
+
};
|
|
669
|
+
readonly isAlternateScreen: {
|
|
670
|
+
readonly type: "boolean";
|
|
671
|
+
};
|
|
672
|
+
readonly activityStatus: {
|
|
673
|
+
readonly enum: readonly ["active", "idle"];
|
|
674
|
+
};
|
|
675
|
+
readonly isCliReady: {
|
|
676
|
+
readonly type: "boolean";
|
|
677
|
+
};
|
|
678
|
+
readonly isCliPanel: {
|
|
679
|
+
readonly type: "boolean";
|
|
680
|
+
};
|
|
681
|
+
readonly agentType: {
|
|
682
|
+
readonly enum: readonly ["codex", "claude"];
|
|
683
|
+
};
|
|
684
|
+
readonly lastActivity: {
|
|
685
|
+
readonly type: "string";
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
readonly additionalProperties: false;
|
|
689
|
+
};
|
|
690
|
+
readonly blocked: {
|
|
691
|
+
readonly type: "object";
|
|
692
|
+
readonly required: readonly ["kind", "message"];
|
|
693
|
+
readonly properties: {
|
|
694
|
+
readonly kind: {
|
|
695
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
696
|
+
};
|
|
697
|
+
readonly message: {
|
|
698
|
+
readonly type: "string";
|
|
699
|
+
};
|
|
700
|
+
readonly suggestedCommand: {
|
|
701
|
+
readonly type: "string";
|
|
702
|
+
};
|
|
703
|
+
};
|
|
704
|
+
readonly additionalProperties: false;
|
|
705
|
+
};
|
|
706
|
+
readonly nextCommand: {
|
|
707
|
+
readonly type: "string";
|
|
708
|
+
};
|
|
709
|
+
};
|
|
710
|
+
readonly additionalProperties: false;
|
|
711
|
+
};
|
|
582
712
|
};
|
|
583
713
|
readonly additionalProperties: false;
|
|
584
714
|
}, {
|
|
@@ -925,17 +1055,271 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
925
1055
|
};
|
|
926
1056
|
readonly additionalProperties: false;
|
|
927
1057
|
};
|
|
1058
|
+
readonly panelScreenResult: {
|
|
1059
|
+
readonly type: "object";
|
|
1060
|
+
readonly required: readonly ["ok", "panelId", "source", "limit", "returnedLineCount", "hasMore", "text", "state"];
|
|
1061
|
+
readonly properties: {
|
|
1062
|
+
readonly ok: {
|
|
1063
|
+
readonly const: true;
|
|
1064
|
+
};
|
|
1065
|
+
readonly panelId: {
|
|
1066
|
+
readonly type: "string";
|
|
1067
|
+
};
|
|
1068
|
+
readonly paneId: {
|
|
1069
|
+
readonly type: "string";
|
|
1070
|
+
};
|
|
1071
|
+
readonly source: {
|
|
1072
|
+
readonly enum: readonly ["alternateScreen", "scrollback", "persistedOutput", "empty"];
|
|
1073
|
+
};
|
|
1074
|
+
readonly limit: {
|
|
1075
|
+
readonly type: "number";
|
|
1076
|
+
};
|
|
1077
|
+
readonly returnedLineCount: {
|
|
1078
|
+
readonly type: "number";
|
|
1079
|
+
};
|
|
1080
|
+
readonly hasMore: {
|
|
1081
|
+
readonly type: "boolean";
|
|
1082
|
+
};
|
|
1083
|
+
readonly text: {
|
|
1084
|
+
readonly type: "string";
|
|
1085
|
+
};
|
|
1086
|
+
readonly state: {
|
|
1087
|
+
readonly type: "object";
|
|
1088
|
+
readonly required: readonly ["initialized"];
|
|
1089
|
+
readonly properties: {
|
|
1090
|
+
readonly initialized: {
|
|
1091
|
+
readonly type: "boolean";
|
|
1092
|
+
};
|
|
1093
|
+
readonly isAlternateScreen: {
|
|
1094
|
+
readonly type: "boolean";
|
|
1095
|
+
};
|
|
1096
|
+
readonly activityStatus: {
|
|
1097
|
+
readonly enum: readonly ["active", "idle"];
|
|
1098
|
+
};
|
|
1099
|
+
readonly isCliReady: {
|
|
1100
|
+
readonly type: "boolean";
|
|
1101
|
+
};
|
|
1102
|
+
readonly isCliPanel: {
|
|
1103
|
+
readonly type: "boolean";
|
|
1104
|
+
};
|
|
1105
|
+
readonly agentType: {
|
|
1106
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1107
|
+
};
|
|
1108
|
+
readonly lastActivity: {
|
|
1109
|
+
readonly type: "string";
|
|
1110
|
+
};
|
|
1111
|
+
};
|
|
1112
|
+
readonly additionalProperties: false;
|
|
1113
|
+
};
|
|
1114
|
+
readonly nextCommand: {
|
|
1115
|
+
readonly type: "string";
|
|
1116
|
+
};
|
|
1117
|
+
};
|
|
1118
|
+
readonly additionalProperties: false;
|
|
1119
|
+
};
|
|
1120
|
+
readonly panelSubmitRequest: {
|
|
1121
|
+
readonly type: "object";
|
|
1122
|
+
readonly required: readonly ["panelId", "input"];
|
|
1123
|
+
readonly properties: {
|
|
1124
|
+
readonly panelId: {
|
|
1125
|
+
readonly type: "string";
|
|
1126
|
+
};
|
|
1127
|
+
readonly input: {
|
|
1128
|
+
readonly type: "string";
|
|
1129
|
+
};
|
|
1130
|
+
};
|
|
1131
|
+
readonly additionalProperties: false;
|
|
1132
|
+
};
|
|
1133
|
+
readonly panelSubmitResult: {
|
|
1134
|
+
readonly type: "object";
|
|
1135
|
+
readonly required: readonly ["ok", "panelId", "inputBytes", "enter", "sentAt"];
|
|
1136
|
+
readonly properties: {
|
|
1137
|
+
readonly ok: {
|
|
1138
|
+
readonly const: true;
|
|
1139
|
+
};
|
|
1140
|
+
readonly panelId: {
|
|
1141
|
+
readonly type: "string";
|
|
1142
|
+
};
|
|
1143
|
+
readonly paneId: {
|
|
1144
|
+
readonly type: "string";
|
|
1145
|
+
};
|
|
1146
|
+
readonly inputBytes: {
|
|
1147
|
+
readonly type: "number";
|
|
1148
|
+
};
|
|
1149
|
+
readonly enter: {
|
|
1150
|
+
readonly const: "cr";
|
|
1151
|
+
};
|
|
1152
|
+
readonly sentAt: {
|
|
1153
|
+
readonly type: "string";
|
|
1154
|
+
};
|
|
1155
|
+
readonly nextCommand: {
|
|
1156
|
+
readonly type: "string";
|
|
1157
|
+
};
|
|
1158
|
+
};
|
|
1159
|
+
readonly additionalProperties: false;
|
|
1160
|
+
};
|
|
1161
|
+
readonly panelWaitResult: {
|
|
1162
|
+
readonly type: "object";
|
|
1163
|
+
readonly required: readonly ["ok", "panelId", "condition", "matched", "timedOut", "elapsedMs", "state", "screen"];
|
|
1164
|
+
readonly properties: {
|
|
1165
|
+
readonly ok: {
|
|
1166
|
+
readonly type: "boolean";
|
|
1167
|
+
};
|
|
1168
|
+
readonly panelId: {
|
|
1169
|
+
readonly type: "string";
|
|
1170
|
+
};
|
|
1171
|
+
readonly paneId: {
|
|
1172
|
+
readonly type: "string";
|
|
1173
|
+
};
|
|
1174
|
+
readonly condition: {
|
|
1175
|
+
readonly enum: readonly ["initialized", "ready", "idle", "text"];
|
|
1176
|
+
};
|
|
1177
|
+
readonly matched: {
|
|
1178
|
+
readonly type: "boolean";
|
|
1179
|
+
};
|
|
1180
|
+
readonly timedOut: {
|
|
1181
|
+
readonly type: "boolean";
|
|
1182
|
+
};
|
|
1183
|
+
readonly elapsedMs: {
|
|
1184
|
+
readonly type: "number";
|
|
1185
|
+
};
|
|
1186
|
+
readonly state: {
|
|
1187
|
+
readonly type: "object";
|
|
1188
|
+
readonly required: readonly ["initialized"];
|
|
1189
|
+
readonly properties: {
|
|
1190
|
+
readonly initialized: {
|
|
1191
|
+
readonly type: "boolean";
|
|
1192
|
+
};
|
|
1193
|
+
readonly isAlternateScreen: {
|
|
1194
|
+
readonly type: "boolean";
|
|
1195
|
+
};
|
|
1196
|
+
readonly activityStatus: {
|
|
1197
|
+
readonly enum: readonly ["active", "idle"];
|
|
1198
|
+
};
|
|
1199
|
+
readonly isCliReady: {
|
|
1200
|
+
readonly type: "boolean";
|
|
1201
|
+
};
|
|
1202
|
+
readonly isCliPanel: {
|
|
1203
|
+
readonly type: "boolean";
|
|
1204
|
+
};
|
|
1205
|
+
readonly agentType: {
|
|
1206
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1207
|
+
};
|
|
1208
|
+
readonly lastActivity: {
|
|
1209
|
+
readonly type: "string";
|
|
1210
|
+
};
|
|
1211
|
+
};
|
|
1212
|
+
readonly additionalProperties: false;
|
|
1213
|
+
};
|
|
1214
|
+
readonly blocked: {
|
|
1215
|
+
readonly type: "object";
|
|
1216
|
+
readonly required: readonly ["kind", "message"];
|
|
1217
|
+
readonly properties: {
|
|
1218
|
+
readonly kind: {
|
|
1219
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
1220
|
+
};
|
|
1221
|
+
readonly message: {
|
|
1222
|
+
readonly type: "string";
|
|
1223
|
+
};
|
|
1224
|
+
readonly suggestedCommand: {
|
|
1225
|
+
readonly type: "string";
|
|
1226
|
+
};
|
|
1227
|
+
};
|
|
1228
|
+
readonly additionalProperties: false;
|
|
1229
|
+
};
|
|
1230
|
+
readonly screen: {
|
|
1231
|
+
readonly type: "object";
|
|
1232
|
+
readonly required: readonly ["source", "text", "hasMore"];
|
|
1233
|
+
readonly properties: {
|
|
1234
|
+
readonly source: {
|
|
1235
|
+
readonly enum: readonly ["alternateScreen", "scrollback", "persistedOutput", "empty"];
|
|
1236
|
+
};
|
|
1237
|
+
readonly text: {
|
|
1238
|
+
readonly type: "string";
|
|
1239
|
+
};
|
|
1240
|
+
readonly hasMore: {
|
|
1241
|
+
readonly type: "boolean";
|
|
1242
|
+
};
|
|
1243
|
+
};
|
|
1244
|
+
readonly additionalProperties: false;
|
|
1245
|
+
};
|
|
1246
|
+
readonly nextCommand: {
|
|
1247
|
+
readonly type: "string";
|
|
1248
|
+
};
|
|
1249
|
+
};
|
|
1250
|
+
readonly additionalProperties: false;
|
|
1251
|
+
};
|
|
1252
|
+
readonly agentDoctorResult: {
|
|
1253
|
+
readonly type: "object";
|
|
1254
|
+
readonly required: readonly ["ok", "agent", "command", "available", "checks"];
|
|
1255
|
+
readonly properties: {
|
|
1256
|
+
readonly ok: {
|
|
1257
|
+
readonly type: "boolean";
|
|
1258
|
+
};
|
|
1259
|
+
readonly agent: {
|
|
1260
|
+
readonly enum: readonly ["codex", "claude"];
|
|
1261
|
+
};
|
|
1262
|
+
readonly command: {
|
|
1263
|
+
readonly type: "string";
|
|
1264
|
+
};
|
|
1265
|
+
readonly repo: {
|
|
1266
|
+
readonly $ref: "#/jsonSchemas/repoListResult/properties/repos/items";
|
|
1267
|
+
};
|
|
1268
|
+
readonly environment: {
|
|
1269
|
+
readonly enum: readonly ["wsl", "windows", "linux", "macos"];
|
|
1270
|
+
};
|
|
1271
|
+
readonly available: {
|
|
1272
|
+
readonly type: "boolean";
|
|
1273
|
+
};
|
|
1274
|
+
readonly executablePath: {
|
|
1275
|
+
readonly type: "string";
|
|
1276
|
+
};
|
|
1277
|
+
readonly version: {
|
|
1278
|
+
readonly type: "string";
|
|
1279
|
+
};
|
|
1280
|
+
readonly checks: {
|
|
1281
|
+
readonly type: "array";
|
|
1282
|
+
readonly items: {
|
|
1283
|
+
readonly type: "object";
|
|
1284
|
+
readonly required: readonly ["name", "ok", "message"];
|
|
1285
|
+
readonly properties: {
|
|
1286
|
+
readonly name: {
|
|
1287
|
+
readonly type: "string";
|
|
1288
|
+
};
|
|
1289
|
+
readonly ok: {
|
|
1290
|
+
readonly type: "boolean";
|
|
1291
|
+
};
|
|
1292
|
+
readonly message: {
|
|
1293
|
+
readonly type: "string";
|
|
1294
|
+
};
|
|
1295
|
+
};
|
|
1296
|
+
readonly additionalProperties: false;
|
|
1297
|
+
};
|
|
1298
|
+
};
|
|
1299
|
+
readonly warnings: {
|
|
1300
|
+
readonly type: "array";
|
|
1301
|
+
readonly items: {
|
|
1302
|
+
readonly type: "string";
|
|
1303
|
+
};
|
|
1304
|
+
};
|
|
1305
|
+
};
|
|
1306
|
+
readonly additionalProperties: false;
|
|
1307
|
+
};
|
|
928
1308
|
};
|
|
929
1309
|
readonly agentContext: {
|
|
930
1310
|
readonly brief: {
|
|
931
1311
|
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
|
|
1312
|
+
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.";
|
|
1313
|
+
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 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 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.", "Use `runpane agent-context --command <command>` for detailed command definitions only when needed."];
|
|
934
1314
|
readonly detailCommand: "runpane agent-context --command <command> [--json]";
|
|
935
1315
|
readonly tools: readonly [{
|
|
936
1316
|
readonly name: "agent-context";
|
|
937
1317
|
readonly summary: "Print token-efficient Pane command context for coding agents.";
|
|
938
1318
|
readonly arguments: readonly ["--command <command>", "--json"];
|
|
1319
|
+
}, {
|
|
1320
|
+
readonly name: "agents doctor";
|
|
1321
|
+
readonly summary: "Check whether Codex or Claude is available in the repo environment Pane will use.";
|
|
1322
|
+
readonly arguments: readonly ["--agent <codex|claude>", "--repo <selector>", "--json"];
|
|
939
1323
|
}, {
|
|
940
1324
|
readonly name: "repos list";
|
|
941
1325
|
readonly summary: "List repositories saved in the running Pane app.";
|
|
@@ -951,7 +1335,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
951
1335
|
}, {
|
|
952
1336
|
readonly name: "panes create";
|
|
953
1337
|
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>", "--from-json <path|->", "--yes", "--json"];
|
|
1338
|
+
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
1339
|
}, {
|
|
956
1340
|
readonly name: "panels list";
|
|
957
1341
|
readonly summary: "List tool panels inside a Pane session.";
|
|
@@ -960,10 +1344,22 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
960
1344
|
readonly name: "panels output";
|
|
961
1345
|
readonly summary: "Read recent terminal output from a panel.";
|
|
962
1346
|
readonly arguments: readonly ["--panel <panel-id>", "--limit <count>", "--json", "--pane-dir <path>"];
|
|
1347
|
+
}, {
|
|
1348
|
+
readonly name: "panels screen";
|
|
1349
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
1350
|
+
readonly arguments: readonly ["--panel <panel-id>", "--limit <count>", "--json", "--pane-dir <path>"];
|
|
963
1351
|
}, {
|
|
964
1352
|
readonly name: "panels input";
|
|
965
1353
|
readonly summary: "Send input bytes to a terminal panel.";
|
|
966
1354
|
readonly arguments: readonly ["--panel <panel-id>", "--text <text>", "--input-file <path|->", "--yes", "--json", "--pane-dir <path>"];
|
|
1355
|
+
}, {
|
|
1356
|
+
readonly name: "panels submit";
|
|
1357
|
+
readonly summary: "Send text plus terminal Enter to a terminal panel.";
|
|
1358
|
+
readonly arguments: readonly ["--panel <panel-id>", "--text <text>", "--input-file <path|->", "--yes", "--json", "--pane-dir <path>"];
|
|
1359
|
+
}, {
|
|
1360
|
+
readonly name: "panels wait";
|
|
1361
|
+
readonly summary: "Wait for terminal initialized, ready, idle, or text state with compact output.";
|
|
1362
|
+
readonly arguments: readonly ["--panel <panel-id>", "--for <condition>", "--contains <text>", "--timeout-ms <ms>", "--interval-ms <ms>", "--json", "--pane-dir <path>"];
|
|
967
1363
|
}];
|
|
968
1364
|
};
|
|
969
1365
|
readonly commands: {
|
|
@@ -1117,7 +1513,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1117
1513
|
}];
|
|
1118
1514
|
readonly examples: readonly ["runpane repos list --json"];
|
|
1119
1515
|
readonly jsonSchemas: readonly ["repoListResult"];
|
|
1120
|
-
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'`."];
|
|
1516
|
+
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`, `volta: command not found`, or a Windows shim error, the user may be running Windows Pane. Retry via `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`.", "When using PowerShell from WSL, set a Windows cwd such as `$env:TEMP` or `$env:USERPROFILE` before running runpane to avoid UNC cwd issues."];
|
|
1121
1517
|
};
|
|
1122
1518
|
readonly "repos add": {
|
|
1123
1519
|
readonly name: "repos add";
|
|
@@ -1185,7 +1581,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1185
1581
|
readonly "panes create": {
|
|
1186
1582
|
readonly name: "panes create";
|
|
1187
1583
|
readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
|
|
1188
|
-
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.";
|
|
1584
|
+
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. For multi-step shell setup, pass a shell command through --tool-command rather than adding a new runpane primitive.";
|
|
1189
1585
|
readonly requiresPaneDaemon: true;
|
|
1190
1586
|
readonly mutates: true;
|
|
1191
1587
|
readonly arguments: readonly [{
|
|
@@ -1231,10 +1627,24 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1231
1627
|
readonly name: "--json";
|
|
1232
1628
|
readonly required: false;
|
|
1233
1629
|
readonly description: "Print machine-readable output.";
|
|
1630
|
+
}, {
|
|
1631
|
+
readonly name: "--wait-ready";
|
|
1632
|
+
readonly required: false;
|
|
1633
|
+
readonly description: "Wait for each created terminal panel to be ready before returning.";
|
|
1634
|
+
}, {
|
|
1635
|
+
readonly name: "--ready-timeout-ms";
|
|
1636
|
+
readonly value: "<ms>";
|
|
1637
|
+
readonly required: false;
|
|
1638
|
+
readonly description: "Readiness timeout per pane; defaults to 30000.";
|
|
1639
|
+
}, {
|
|
1640
|
+
readonly name: "--concurrency";
|
|
1641
|
+
readonly value: "<count>";
|
|
1642
|
+
readonly required: false;
|
|
1643
|
+
readonly description: "Accepted for compatibility. Pane currently serializes multi-pane session creation so queued jobs do not time out before starting.";
|
|
1234
1644
|
}];
|
|
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"];
|
|
1645
|
+
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
1646
|
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.", "When the JSON result includes nextCommand, run it to validate that the terminal produced output before reporting success.", "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'`."];
|
|
1647
|
+
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
1648
|
};
|
|
1239
1649
|
readonly "panels list": {
|
|
1240
1650
|
readonly name: "panels list";
|
|
@@ -1264,7 +1674,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1264
1674
|
readonly "panels output": {
|
|
1265
1675
|
readonly name: "panels output";
|
|
1266
1676
|
readonly summary: "Read recent terminal output from a panel.";
|
|
1267
|
-
readonly details: "Use this to inspect recent terminal output from a terminal-backed panel without loading the full history by default. Live terminal scrollback is returned as bounded recent lines; persisted output fallback is returned as bounded records.";
|
|
1677
|
+
readonly details: "Use this to inspect recent terminal output from a terminal-backed panel without loading the full history by default. Live terminal scrollback is returned as bounded recent lines; persisted output fallback is returned as bounded records. Terminal control noise is stripped before returning text.";
|
|
1268
1678
|
readonly requiresPaneDaemon: true;
|
|
1269
1679
|
readonly mutates: false;
|
|
1270
1680
|
readonly arguments: readonly [{
|
|
@@ -1289,12 +1699,12 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1289
1699
|
}];
|
|
1290
1700
|
readonly examples: readonly ["runpane panels output --panel <panel-id> --limit 200 --json"];
|
|
1291
1701
|
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."];
|
|
1702
|
+
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
1703
|
};
|
|
1294
1704
|
readonly "panels input": {
|
|
1295
1705
|
readonly name: "panels input";
|
|
1296
1706
|
readonly summary: "Send input bytes to a terminal panel.";
|
|
1297
|
-
readonly details: "Use this to answer prompts or continue an agent inside an existing Pane terminal panel.";
|
|
1707
|
+
readonly details: "Use this to answer prompts or continue an agent inside an existing Pane terminal panel. Input is byte-oriented; choose --input-file for exact control over newlines and control characters.";
|
|
1298
1708
|
readonly requiresPaneDaemon: true;
|
|
1299
1709
|
readonly mutates: true;
|
|
1300
1710
|
readonly arguments: readonly [{
|
|
@@ -1326,12 +1736,156 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1326
1736
|
readonly required: false;
|
|
1327
1737
|
readonly description: "Connect to a specific Pane data directory.";
|
|
1328
1738
|
}];
|
|
1329
|
-
readonly examples: readonly ["runpane panels input --panel <panel-id> --
|
|
1739
|
+
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
1740
|
readonly jsonSchemas: readonly ["panelInputRequest", "panelInputResult"];
|
|
1331
|
-
readonly notes: readonly ["Input is sent exactly as provided. Include
|
|
1741
|
+
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."];
|
|
1742
|
+
};
|
|
1743
|
+
readonly "agents doctor": {
|
|
1744
|
+
readonly name: "agents doctor";
|
|
1745
|
+
readonly summary: "Diagnose whether a built-in agent command is available in a Pane repository environment.";
|
|
1746
|
+
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.";
|
|
1747
|
+
readonly requiresPaneDaemon: true;
|
|
1748
|
+
readonly mutates: false;
|
|
1749
|
+
readonly arguments: readonly [{
|
|
1750
|
+
readonly name: "--agent";
|
|
1751
|
+
readonly value: "<codex|claude>";
|
|
1752
|
+
readonly required: true;
|
|
1753
|
+
readonly description: "Built-in agent command to diagnose.";
|
|
1754
|
+
}, {
|
|
1755
|
+
readonly name: "--repo";
|
|
1756
|
+
readonly value: "<selector>";
|
|
1757
|
+
readonly required: false;
|
|
1758
|
+
readonly description: "Repository selector; defaults to the active Pane repo.";
|
|
1759
|
+
}, {
|
|
1760
|
+
readonly name: "--json";
|
|
1761
|
+
readonly required: false;
|
|
1762
|
+
readonly description: "Print machine-readable output.";
|
|
1763
|
+
}, {
|
|
1764
|
+
readonly name: "--pane-dir";
|
|
1765
|
+
readonly value: "<path>";
|
|
1766
|
+
readonly required: false;
|
|
1767
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1768
|
+
}];
|
|
1769
|
+
readonly examples: readonly ["runpane agents doctor --agent codex --repo active --json"];
|
|
1770
|
+
readonly jsonSchemas: readonly ["agentDoctorResult"];
|
|
1771
|
+
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."];
|
|
1772
|
+
};
|
|
1773
|
+
readonly "panels screen": {
|
|
1774
|
+
readonly name: "panels screen";
|
|
1775
|
+
readonly summary: "Read a compact current-screen view from a terminal panel.";
|
|
1776
|
+
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.";
|
|
1777
|
+
readonly requiresPaneDaemon: true;
|
|
1778
|
+
readonly mutates: false;
|
|
1779
|
+
readonly arguments: readonly [{
|
|
1780
|
+
readonly name: "--panel";
|
|
1781
|
+
readonly value: "<panel-id>";
|
|
1782
|
+
readonly required: true;
|
|
1783
|
+
readonly description: "Terminal panel id.";
|
|
1784
|
+
}, {
|
|
1785
|
+
readonly name: "--limit";
|
|
1786
|
+
readonly value: "<count>";
|
|
1787
|
+
readonly required: false;
|
|
1788
|
+
readonly description: "Maximum lines to return; defaults to 80.";
|
|
1789
|
+
}, {
|
|
1790
|
+
readonly name: "--json";
|
|
1791
|
+
readonly required: false;
|
|
1792
|
+
readonly description: "Print machine-readable output.";
|
|
1793
|
+
}, {
|
|
1794
|
+
readonly name: "--pane-dir";
|
|
1795
|
+
readonly value: "<path>";
|
|
1796
|
+
readonly required: false;
|
|
1797
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1798
|
+
}];
|
|
1799
|
+
readonly examples: readonly ["runpane panels screen --panel <panel-id> --limit 80 --json"];
|
|
1800
|
+
readonly jsonSchemas: readonly ["panelScreenResult"];
|
|
1801
|
+
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`."];
|
|
1802
|
+
};
|
|
1803
|
+
readonly "panels submit": {
|
|
1804
|
+
readonly name: "panels submit";
|
|
1805
|
+
readonly summary: "Send text to a terminal panel and append a terminal Enter byte.";
|
|
1806
|
+
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`.";
|
|
1807
|
+
readonly requiresPaneDaemon: true;
|
|
1808
|
+
readonly mutates: true;
|
|
1809
|
+
readonly arguments: readonly [{
|
|
1810
|
+
readonly name: "--panel";
|
|
1811
|
+
readonly value: "<panel-id>";
|
|
1812
|
+
readonly required: true;
|
|
1813
|
+
readonly description: "Terminal panel id.";
|
|
1814
|
+
}, {
|
|
1815
|
+
readonly name: "--text";
|
|
1816
|
+
readonly value: "<text>";
|
|
1817
|
+
readonly required: false;
|
|
1818
|
+
readonly description: "Text to submit before Enter.";
|
|
1819
|
+
}, {
|
|
1820
|
+
readonly name: "--input-file";
|
|
1821
|
+
readonly value: "<path|->";
|
|
1822
|
+
readonly required: false;
|
|
1823
|
+
readonly description: "Read text from a file or stdin before Enter.";
|
|
1824
|
+
}, {
|
|
1825
|
+
readonly name: "--yes";
|
|
1826
|
+
readonly required: false;
|
|
1827
|
+
readonly description: "Skip confirmation for this mutating command.";
|
|
1828
|
+
}, {
|
|
1829
|
+
readonly name: "--json";
|
|
1830
|
+
readonly required: false;
|
|
1831
|
+
readonly description: "Print machine-readable output.";
|
|
1832
|
+
}, {
|
|
1833
|
+
readonly name: "--pane-dir";
|
|
1834
|
+
readonly value: "<path>";
|
|
1835
|
+
readonly required: false;
|
|
1836
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1837
|
+
}];
|
|
1838
|
+
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"];
|
|
1839
|
+
readonly jsonSchemas: readonly ["panelSubmitRequest", "panelSubmitResult"];
|
|
1840
|
+
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."];
|
|
1841
|
+
};
|
|
1842
|
+
readonly "panels wait": {
|
|
1843
|
+
readonly name: "panels wait";
|
|
1844
|
+
readonly summary: "Wait for a terminal panel to initialize, become ready/idle, or contain text.";
|
|
1845
|
+
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.";
|
|
1846
|
+
readonly requiresPaneDaemon: true;
|
|
1847
|
+
readonly mutates: false;
|
|
1848
|
+
readonly arguments: readonly [{
|
|
1849
|
+
readonly name: "--panel";
|
|
1850
|
+
readonly value: "<panel-id>";
|
|
1851
|
+
readonly required: true;
|
|
1852
|
+
readonly description: "Terminal panel id.";
|
|
1853
|
+
}, {
|
|
1854
|
+
readonly name: "--for";
|
|
1855
|
+
readonly value: "<initialized|ready|idle|text>";
|
|
1856
|
+
readonly required: false;
|
|
1857
|
+
readonly description: "Condition to wait for. Defaults to ready for CLI panels and idle otherwise.";
|
|
1858
|
+
}, {
|
|
1859
|
+
readonly name: "--contains";
|
|
1860
|
+
readonly value: "<text>";
|
|
1861
|
+
readonly required: false;
|
|
1862
|
+
readonly description: "Text required for --for text; implies --for text when --for is omitted.";
|
|
1863
|
+
}, {
|
|
1864
|
+
readonly name: "--timeout-ms";
|
|
1865
|
+
readonly value: "<ms>";
|
|
1866
|
+
readonly required: false;
|
|
1867
|
+
readonly description: "Wait timeout; defaults to 30000.";
|
|
1868
|
+
}, {
|
|
1869
|
+
readonly name: "--interval-ms";
|
|
1870
|
+
readonly value: "<ms>";
|
|
1871
|
+
readonly required: false;
|
|
1872
|
+
readonly description: "Polling interval; defaults to 500.";
|
|
1873
|
+
}, {
|
|
1874
|
+
readonly name: "--json";
|
|
1875
|
+
readonly required: false;
|
|
1876
|
+
readonly description: "Print machine-readable output.";
|
|
1877
|
+
}, {
|
|
1878
|
+
readonly name: "--pane-dir";
|
|
1879
|
+
readonly value: "<path>";
|
|
1880
|
+
readonly required: false;
|
|
1881
|
+
readonly description: "Connect to a specific Pane data directory.";
|
|
1882
|
+
}];
|
|
1883
|
+
readonly examples: readonly ["runpane panels wait --panel <panel-id> --for ready --timeout-ms 30000 --json", "runpane panels wait --panel <panel-id> --contains \"Ready\" --json"];
|
|
1884
|
+
readonly jsonSchemas: readonly ["panelWaitResult"];
|
|
1885
|
+
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
1886
|
};
|
|
1333
1887
|
};
|
|
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
|
|
1888
|
+
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.", "", "Use `runpane agent-context` for a brief Pane command schema. Use `runpane agent-context --command \"panels wait\"` 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 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 repos list` 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 repos list --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
1889
|
};
|
|
1336
1890
|
};
|
|
1337
1891
|
export type RunpaneCommand = typeof RUNPANE_CONTRACT.commands[number]['name'];
|