runpane 2.4.29 → 2.4.34
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 +9 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +2 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +11 -0
- package/dist/commands.js.map +1 -1
- package/dist/generated/contract.d.ts +327 -20
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +571 -7
- package/dist/generated/contract.js.map +1 -1
- package/dist/installers.d.ts +1 -0
- package/dist/installers.d.ts.map +1 -1
- package/dist/installers.js +12 -1
- package/dist/installers.js.map +1 -1
- package/dist/localControl.d.ts +2 -0
- package/dist/localControl.d.ts.map +1 -1
- package/dist/localControl.js +101 -2
- package/dist/localControl.js.map +1 -1
- package/package.json +1 -1
|
@@ -103,6 +103,24 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
103
103
|
readonly usage: readonly ["runpane panes create --repo <selector> --name <name> --agent <codex|claude> [--source user|agent] [--focus|--no-focus] [options]", "runpane panes create --from-json <path|-> [--yes] [--json]"];
|
|
104
104
|
readonly mutates: true;
|
|
105
105
|
readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
|
|
106
|
+
}, {
|
|
107
|
+
readonly name: "panes archive";
|
|
108
|
+
readonly summary: "Archive a Pane (session) exactly like the UI Archive action, including safe removal of its Pane-managed git worktree.";
|
|
109
|
+
readonly usage: readonly ["runpane panes archive --pane <pane-id> [--source user|agent] [--force] --yes [--json]"];
|
|
110
|
+
readonly mutates: true;
|
|
111
|
+
readonly jsonSchemas: readonly ["paneArchiveRequest", "paneArchiveResult"];
|
|
112
|
+
}, {
|
|
113
|
+
readonly name: "panes pin";
|
|
114
|
+
readonly summary: "Declaratively pin a Pane; pinned is the Pane UI's favorite/pin star and repeated requests are idempotent.";
|
|
115
|
+
readonly usage: readonly ["runpane panes pin --pane <pane-id> --yes [--dry-run] [--json]"];
|
|
116
|
+
readonly mutates: true;
|
|
117
|
+
readonly jsonSchemas: readonly ["panePinRequest", "panePinResult"];
|
|
118
|
+
}, {
|
|
119
|
+
readonly name: "panes unpin";
|
|
120
|
+
readonly summary: "Declaratively unpin a Pane; pinned is the Pane UI's favorite/pin star and repeated requests are idempotent.";
|
|
121
|
+
readonly usage: readonly ["runpane panes unpin --pane <pane-id> --yes [--dry-run] [--json]"];
|
|
122
|
+
readonly mutates: true;
|
|
123
|
+
readonly jsonSchemas: readonly ["panePinRequest", "panePinResult"];
|
|
106
124
|
}, {
|
|
107
125
|
readonly name: "panels create";
|
|
108
126
|
readonly summary: "Create a terminal-backed tool panel inside an existing Pane session.";
|
|
@@ -326,11 +344,17 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
326
344
|
}, {
|
|
327
345
|
readonly name: "--focus";
|
|
328
346
|
readonly description: "Explicitly focus the created pane or panel.";
|
|
347
|
+
}, {
|
|
348
|
+
readonly name: "--pinned";
|
|
349
|
+
readonly description: "Create the pane already pinned (the UI's favorite/pin star).";
|
|
350
|
+
}, {
|
|
351
|
+
readonly name: "--force";
|
|
352
|
+
readonly description: "Archive even if the pane's branch has uncommitted, untracked, or unpushed changes.";
|
|
329
353
|
}];
|
|
330
354
|
};
|
|
331
355
|
readonly help: {
|
|
332
356
|
readonly npm: {
|
|
333
|
-
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> [--source user|agent] [--focus|--no-focus] [--wait-ready]", " runpane panels create --pane <pane-id> --agent <codex|claude> [--source user|agent] [--focus|--no-focus] --yes", " 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> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|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."];
|
|
357
|
+
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> [--source user|agent] [--focus|--no-focus] [--wait-ready]", " runpane panes archive --pane <pane-id> [--source user|agent] [--force] --yes", " runpane panels create --pane <pane-id> --agent <codex|claude> [--source user|agent] [--focus|--no-focus] --yes", " 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> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|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."];
|
|
334
358
|
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>"];
|
|
335
359
|
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"];
|
|
336
360
|
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"];
|
|
@@ -338,9 +362,12 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
338
362
|
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"];
|
|
339
363
|
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"];
|
|
340
364
|
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"];
|
|
341
|
-
readonly panes: readonly ["Pane session commands.", "", "Usage:", " runpane panes <command> [options]", "", "Commands:", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", "", "
|
|
365
|
+
readonly panes: readonly ["Pane session commands.", "", "Usage:", " runpane panes <command> [options]", "", "Commands:", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", " runpane panes archive --pane <pane-id> [--force] [--source user|agent] --yes [--json]", " runpane panes pin --pane <pane-id> --yes [--dry-run] [--json]", " runpane panes unpin --pane <pane-id> --yes [--dry-run] [--json]", "", "Run \"runpane help panes <command>\" for command-specific options."];
|
|
342
366
|
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"];
|
|
343
|
-
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 user-visible Panes (Pane sessions) for feature/PR work in a saved repository and opens a terminal-backed tool tab. Pane creates and owns the worktree/branch for each new Pane.", "", "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", " --source <user|agent> Mark mutation source; agent implies background creation", " --no-focus Create in the background without stealing focus", " --focus Explicitly focus the created pane", " --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"];
|
|
367
|
+
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 user-visible Panes (Pane sessions) for feature/PR work in a saved repository and opens a terminal-backed tool tab. Pane creates and owns the worktree/branch for each new Pane.", "", "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", " --source <user|agent> Mark mutation source; agent implies background creation", " --no-focus Create in the background without stealing focus", " --focus Explicitly focus the created pane", " --pinned Create already pinned (the UI's favorite/pin star)", " --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"];
|
|
368
|
+
readonly "panes archive": readonly ["Usage:", " runpane panes archive --pane <pane-id> [--source user|agent] [--force] --yes [--json]", "", "Archives a Pane (session) exactly like the UI Archive action, including removal of its Pane-managed git worktree. Refuses to archive a pane with uncommitted, untracked, or unpushed-to-remote changes unless --force is passed. Waits for worktree removal to finish before returning.", "", "Options:", " --pane <pane-id> Pane/session id to archive", " --source <user|agent> Mark mutation source", " --force Archive even if the pane has uncommitted, untracked, or unpushed changes", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --yes Skip confirmation for mutating commands"];
|
|
369
|
+
readonly "panes pin": readonly ["Usage:", " runpane panes pin --pane <pane-id> --yes [--dry-run] [--json]", "", "Declaratively pins a Pane using the Pane UI's favorite/pin star. Repeating the command is idempotent and never changes focus. Use --dry-run to validate and preview without mutating.", "", "Options:", " --pane <pane-id> Pane/session id to pin", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --dry-run Validate and preview without pinning the pane", " --yes Skip confirmation for mutating commands"];
|
|
370
|
+
readonly "panes unpin": readonly ["Usage:", " runpane panes unpin --pane <pane-id> --yes [--dry-run] [--json]", "", "Declaratively unpins a Pane using the Pane UI's favorite/pin star. Repeating the command is idempotent and never changes focus. Use --dry-run to validate and preview without mutating.", "", "Options:", " --pane <pane-id> Pane/session id to unpin", " --pane-dir <path> Connect to a specific Pane data directory", " --json Print machine-readable output", " --dry-run Validate and preview without unpinning the pane", " --yes Skip confirmation for mutating commands"];
|
|
344
371
|
readonly panels: readonly ["Terminal-backed panel commands.", "", "Usage:", " runpane panels <command> [options]", "", "Commands:", " runpane panels create --pane <pane-id> --agent <codex|claude> [options]", " runpane panels list --pane <pane-id> [--json]", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--json]", "", "Run \"runpane help panels create\" or another command-specific topic for options."];
|
|
345
372
|
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"];
|
|
346
373
|
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"];
|
|
@@ -354,7 +381,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
354
381
|
readonly "panels submit-composer": readonly ["Submit an agent composer using the panel-appropriate key sequence.", "", "Usage:", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", "", "Options:", " --panel <panel-id> Terminal panel id.", " --strategy <strategy> Defaults to auto; Codex sends Ctrl+Enter and other panels send Enter.", " --yes Skip confirmation prompts.", " --json Print JSON output."];
|
|
355
382
|
};
|
|
356
383
|
readonly pip: {
|
|
357
|
-
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> [--source user|agent] [--focus|--no-focus] [--wait-ready]", " python -m runpane panels create --pane <pane-id> --agent <codex|claude> [--source user|agent] [--focus|--no-focus] --yes", " 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> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|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."];
|
|
384
|
+
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> [--source user|agent] [--focus|--no-focus] [--wait-ready]", " runpane panes archive --pane <pane-id> [--source user|agent] [--force] --yes", " python -m runpane panels create --pane <pane-id> --agent <codex|claude> [--source user|agent] [--focus|--no-focus] --yes", " 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> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|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."];
|
|
358
385
|
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>"];
|
|
359
386
|
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"];
|
|
360
387
|
readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
|
|
@@ -362,9 +389,12 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
362
389
|
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"];
|
|
363
390
|
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>"];
|
|
364
391
|
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"];
|
|
365
|
-
readonly panes: readonly ["Pane session commands.", "", "Usage:", " runpane panes <command> [options]", "", "Commands:", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", "", "
|
|
392
|
+
readonly panes: readonly ["Pane session commands.", "", "Usage:", " runpane panes <command> [options]", "", "Commands:", " runpane panes list [--repo <selector>] [--json]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", " runpane panes archive --pane <pane-id> [--force] [--source user|agent] --yes [--json]", " runpane panes pin --pane <pane-id> --yes [--dry-run] [--json]", " runpane panes unpin --pane <pane-id> --yes [--dry-run] [--json]", "", "Run \"runpane help panes <command>\" for command-specific options."];
|
|
366
393
|
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"];
|
|
367
|
-
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 user-visible Panes (Pane sessions) for feature/PR work in a saved repository and opens a terminal-backed tool tab. Pane creates and owns the worktree/branch for each new Pane.", "", "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", " --source <user|agent> Mark mutation source; agent implies background creation", " --no-focus Create in the background without stealing focus", " --focus Explicitly focus the created pane", " --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"];
|
|
394
|
+
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 user-visible Panes (Pane sessions) for feature/PR work in a saved repository and opens a terminal-backed tool tab. Pane creates and owns the worktree/branch for each new Pane.", "", "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", " --source <user|agent> Mark mutation source; agent implies background creation", " --no-focus Create in the background without stealing focus", " --focus Explicitly focus the created pane", " --pinned Create already pinned (the UI's favorite/pin star)", " --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"];
|
|
395
|
+
readonly "panes archive": readonly ["Usage:", " runpane panes archive --pane <pane-id> [--source user|agent] [--force] --yes [--json]", "", "Archives a Pane (session) exactly like the UI Archive action, including removal of its Pane-managed git worktree. Refuses to archive a pane with uncommitted, untracked, or unpushed-to-remote changes unless --force is passed. Waits for worktree removal to finish before returning.", "", "Options:", " --pane <pane-id>", " --source <user|agent>", " --force", " --pane-dir <path>", " --json", " --yes"];
|
|
396
|
+
readonly "panes pin": readonly ["Usage:", " runpane panes pin --pane <pane-id> --yes [--dry-run] [--json]", "", "Declaratively pins a Pane using the Pane UI's favorite/pin star. Repeating the command is idempotent and never changes focus. Use --dry-run to validate and preview without mutating.", "", "Options:", " --pane <pane-id>", " --pane-dir <path>", " --json", " --dry-run", " --yes"];
|
|
397
|
+
readonly "panes unpin": readonly ["Usage:", " runpane panes unpin --pane <pane-id> --yes [--dry-run] [--json]", "", "Declaratively unpins a Pane using the Pane UI's favorite/pin star. Repeating the command is idempotent and never changes focus. Use --dry-run to validate and preview without mutating.", "", "Options:", " --pane <pane-id>", " --pane-dir <path>", " --json", " --dry-run", " --yes"];
|
|
368
398
|
readonly panels: readonly ["Terminal-backed panel commands.", "", "Usage:", " runpane panels <command> [options]", "", "Commands:", " runpane panels create --pane <pane-id> --agent <codex|claude> [options]", " runpane panels list --pane <pane-id> [--json]", " runpane panels screen --panel <panel-id> [--limit <count>] [--json]", " runpane panels output --panel <panel-id> [--limit <count>] [--json]", " runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]", " runpane panels submit-composer --panel <panel-id> [--strategy auto|codex-ctrl-enter|enter] --yes [--json]", " runpane panels wait --panel <panel-id> [--for initialized|ready|idle|text] [--json]", "", "Run \"runpane help panels create\" or another command-specific topic for options."];
|
|
369
399
|
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"];
|
|
370
400
|
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"];
|
|
@@ -384,8 +414,8 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
384
414
|
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\""];
|
|
385
415
|
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\""];
|
|
386
416
|
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."];
|
|
387
|
-
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 <agent> --prompt \"Kick off the discussion skill for issue 252\" --source agent --no-focus --wait-ready --yes --json", "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"];
|
|
388
|
-
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 only wrapper package metadata and does not contact, launch, or focus the Pane app or daemon.", "`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. Installed app version detection must be best-effort and must not launch, focus, or configure Pane; macOS wrappers read app bundle metadata instead of executing `Pane --version`.", "`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 saved base repository, creates user-visible Pane sessions backed by Pane-managed worktrees/branches, opens terminal-backed tool tabs, and optionally sends initial input to the started tool. Built-in agent panes and `--source agent` default to background/no-focus unless `--focus` is passed.", "`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'`."];
|
|
417
|
+
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 <agent> --prompt \"Kick off the discussion skill for issue 252\" --source agent --no-focus --wait-ready --yes --json", "runpane panes create --from-json panes.json --yes --json", "runpane panes archive --pane <pane-id> --source agent --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"];
|
|
418
|
+
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 only wrapper package metadata and does not contact, launch, or focus the Pane app or daemon.", "`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. Installed app version detection must be best-effort and must not launch, focus, or configure Pane; macOS wrappers read app bundle metadata instead of executing `Pane --version`.", "`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 saved base repository, creates user-visible Pane sessions backed by Pane-managed worktrees/branches, opens terminal-backed tool tabs, and optionally sends initial input to the started tool. Built-in agent panes and `--source agent` default to background/no-focus unless `--focus` is passed.", "For `panes create --wait-ready`, `initialInput.verifiedSubmitted: true` is reported only after argument attachment or composer-clear plus activity evidence. Routing input does not by itself verify submission.", "`runpane panes archive` archives a Pane exactly like the UI Archive action, including removal of its Pane-managed git worktree, and refuses (unless `--force`) when the pane's branch has uncommitted, untracked, or unpushed-to-remote changes. It waits for worktree removal to finish before returning and reports the outcome in `worktreeCleanup`.", "`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.", "If composer submission cannot be verified without risking a duplicate, the create item is unsuccessful with `initialInput.staged`, `initialInput.attempts`, `initialInput.blocked.kind: submission_unverified`, and an actionable `nextCommand`. The CLI-facing `--prompt` alias maps to this canonical `initialInput` result.", "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'`."];
|
|
389
419
|
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.";
|
|
390
420
|
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. In a Pane repository checkout, if `runpane` is not on PATH, use the built local wrapper with Node 22, for example `PATH=/opt/homebrew/opt/node@22/bin:$PATH node packages/runpane/dist/cli.js doctor --json`. 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.";
|
|
391
421
|
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.";
|
|
@@ -393,8 +423,8 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
393
423
|
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."];
|
|
394
424
|
};
|
|
395
425
|
readonly testFixtures: {
|
|
396
|
-
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", "--source", "agent", "--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", "-", "--source", "agent", "--focus", "--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"], readonly ["panels", "create", "--pane", "pane-1", "--agent", "codex", "--source", "agent", "--no-focus", "--wait-ready", "--ready-timeout-ms", "15000", "--yes", "--json"], readonly ["panels", "create", "--pane", "pane-1", "--agent", "codex", "--focus", "--yes", "--json"], readonly ["panels", "submit-composer", "--panel", "panel-1", "--strategy", "auto", "--yes", "--json"]];
|
|
397
|
-
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 create", "runpane panels list", "runpane panels output", "runpane panels input", "runpane agents doctor", "runpane panels screen", "runpane panels submit", "runpane panels submit-composer", "runpane panels wait", "runpane doctor --json", "runpane agent-context --json", "Agent discovery:", "Common commands:"];
|
|
426
|
+
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", "--source", "agent", "--pinned", "--dry-run", "--yes", "--json"], readonly ["panes", "create", "--from-json", "-", "--yes", "--json"], readonly ["panes", "archive", "--pane", "session-1", "--force", "--source", "agent", "--yes", "--json"], readonly ["panes", "pin", "--pane", "session-1", "--yes", "--json"], readonly ["panes", "unpin", "--pane", "session-1", "--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", "-", "--source", "agent", "--focus", "--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"], readonly ["panels", "create", "--pane", "pane-1", "--agent", "codex", "--source", "agent", "--no-focus", "--wait-ready", "--ready-timeout-ms", "15000", "--yes", "--json"], readonly ["panels", "create", "--pane", "pane-1", "--agent", "codex", "--focus", "--yes", "--json"], readonly ["panels", "submit-composer", "--panel", "panel-1", "--strategy", "auto", "--yes", "--json"]];
|
|
427
|
+
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 panes archive", "runpane panels create", "runpane panels list", "runpane panels output", "runpane panels input", "runpane agents doctor", "runpane panels screen", "runpane panels submit", "runpane panels submit-composer", "runpane panels wait", "runpane doctor --json", "runpane agent-context --json", "Agent discovery:", "Common commands:"];
|
|
398
428
|
readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
|
|
399
429
|
readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
|
|
400
430
|
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>"];
|
|
@@ -725,6 +755,9 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
725
755
|
readonly sessionPrompt: {
|
|
726
756
|
readonly type: "string";
|
|
727
757
|
};
|
|
758
|
+
readonly pinned: {
|
|
759
|
+
readonly type: "boolean";
|
|
760
|
+
};
|
|
728
761
|
readonly tool: {
|
|
729
762
|
readonly oneOf: readonly [{
|
|
730
763
|
readonly type: "object";
|
|
@@ -804,7 +837,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
804
837
|
readonly items: {
|
|
805
838
|
readonly oneOf: readonly [{
|
|
806
839
|
readonly type: "object";
|
|
807
|
-
readonly required: readonly ["ok", "index", "name"];
|
|
840
|
+
readonly required: readonly ["ok", "index", "name", "pinned"];
|
|
808
841
|
readonly properties: {
|
|
809
842
|
readonly ok: {
|
|
810
843
|
readonly type: "boolean";
|
|
@@ -815,6 +848,9 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
815
848
|
readonly name: {
|
|
816
849
|
readonly type: "string";
|
|
817
850
|
};
|
|
851
|
+
readonly pinned: {
|
|
852
|
+
readonly type: "boolean";
|
|
853
|
+
};
|
|
818
854
|
readonly sessionId: {
|
|
819
855
|
readonly type: "string";
|
|
820
856
|
};
|
|
@@ -904,7 +940,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
904
940
|
readonly required: readonly ["kind", "message"];
|
|
905
941
|
readonly properties: {
|
|
906
942
|
readonly kind: {
|
|
907
|
-
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
943
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "submission_unverified", "unknown"];
|
|
908
944
|
};
|
|
909
945
|
readonly message: {
|
|
910
946
|
readonly type: "string";
|
|
@@ -943,6 +979,12 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
943
979
|
readonly verifiedSubmitted: {
|
|
944
980
|
readonly type: "boolean";
|
|
945
981
|
};
|
|
982
|
+
readonly staged: {
|
|
983
|
+
readonly type: "boolean";
|
|
984
|
+
};
|
|
985
|
+
readonly attempts: {
|
|
986
|
+
readonly type: "number";
|
|
987
|
+
};
|
|
946
988
|
readonly sentAt: {
|
|
947
989
|
readonly type: "string";
|
|
948
990
|
};
|
|
@@ -951,7 +993,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
951
993
|
readonly required: readonly ["kind", "message"];
|
|
952
994
|
readonly properties: {
|
|
953
995
|
readonly kind: {
|
|
954
|
-
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
996
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "submission_unverified", "unknown"];
|
|
955
997
|
};
|
|
956
998
|
readonly message: {
|
|
957
999
|
readonly type: "string";
|
|
@@ -1031,7 +1073,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1031
1073
|
readonly type: "array";
|
|
1032
1074
|
readonly items: {
|
|
1033
1075
|
readonly type: "object";
|
|
1034
|
-
readonly required: readonly ["id", "paneId", "name", "status", "worktreePath", "repoId", "panelCount"];
|
|
1076
|
+
readonly required: readonly ["id", "paneId", "name", "status", "worktreePath", "repoId", "panelCount", "pinned"];
|
|
1035
1077
|
readonly properties: {
|
|
1036
1078
|
readonly id: {
|
|
1037
1079
|
readonly type: "string";
|
|
@@ -1057,6 +1099,9 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1057
1099
|
readonly panelCount: {
|
|
1058
1100
|
readonly type: "number";
|
|
1059
1101
|
};
|
|
1102
|
+
readonly pinned: {
|
|
1103
|
+
readonly type: "boolean";
|
|
1104
|
+
};
|
|
1060
1105
|
readonly createdAt: {
|
|
1061
1106
|
readonly type: "string";
|
|
1062
1107
|
};
|
|
@@ -1073,6 +1118,159 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1073
1118
|
};
|
|
1074
1119
|
readonly additionalProperties: false;
|
|
1075
1120
|
};
|
|
1121
|
+
readonly paneArchiveRequest: {
|
|
1122
|
+
readonly type: "object";
|
|
1123
|
+
readonly required: readonly ["paneId"];
|
|
1124
|
+
readonly properties: {
|
|
1125
|
+
readonly paneId: {
|
|
1126
|
+
readonly type: "string";
|
|
1127
|
+
};
|
|
1128
|
+
readonly force: {
|
|
1129
|
+
readonly type: "boolean";
|
|
1130
|
+
};
|
|
1131
|
+
readonly source: {
|
|
1132
|
+
readonly enum: readonly ["user", "agent"];
|
|
1133
|
+
};
|
|
1134
|
+
};
|
|
1135
|
+
readonly additionalProperties: false;
|
|
1136
|
+
};
|
|
1137
|
+
readonly panePinRequest: {
|
|
1138
|
+
readonly type: "object";
|
|
1139
|
+
readonly required: readonly ["paneId", "pinned"];
|
|
1140
|
+
readonly properties: {
|
|
1141
|
+
readonly paneId: {
|
|
1142
|
+
readonly type: "string";
|
|
1143
|
+
};
|
|
1144
|
+
readonly pinned: {
|
|
1145
|
+
readonly type: "boolean";
|
|
1146
|
+
};
|
|
1147
|
+
readonly dryRun: {
|
|
1148
|
+
readonly type: "boolean";
|
|
1149
|
+
};
|
|
1150
|
+
};
|
|
1151
|
+
readonly additionalProperties: false;
|
|
1152
|
+
};
|
|
1153
|
+
readonly panePinResult: {
|
|
1154
|
+
readonly type: "object";
|
|
1155
|
+
readonly required: readonly ["ok", "paneId", "pinned"];
|
|
1156
|
+
readonly properties: {
|
|
1157
|
+
readonly ok: {
|
|
1158
|
+
readonly const: true;
|
|
1159
|
+
};
|
|
1160
|
+
readonly paneId: {
|
|
1161
|
+
readonly type: "string";
|
|
1162
|
+
};
|
|
1163
|
+
readonly pinned: {
|
|
1164
|
+
readonly type: "boolean";
|
|
1165
|
+
};
|
|
1166
|
+
readonly dryRun: {
|
|
1167
|
+
readonly const: true;
|
|
1168
|
+
};
|
|
1169
|
+
readonly favoritePinnedAt: {
|
|
1170
|
+
readonly type: "string";
|
|
1171
|
+
};
|
|
1172
|
+
};
|
|
1173
|
+
readonly additionalProperties: false;
|
|
1174
|
+
};
|
|
1175
|
+
readonly paneArchiveResult: {
|
|
1176
|
+
readonly oneOf: readonly [{
|
|
1177
|
+
readonly type: "object";
|
|
1178
|
+
readonly required: readonly ["ok", "paneId", "archived", "forced", "worktreeCleanup", "safetyCheck"];
|
|
1179
|
+
readonly properties: {
|
|
1180
|
+
readonly ok: {
|
|
1181
|
+
readonly type: "boolean";
|
|
1182
|
+
};
|
|
1183
|
+
readonly paneId: {
|
|
1184
|
+
readonly type: "string";
|
|
1185
|
+
};
|
|
1186
|
+
readonly archived: {
|
|
1187
|
+
readonly const: true;
|
|
1188
|
+
};
|
|
1189
|
+
readonly forced: {
|
|
1190
|
+
readonly type: "boolean";
|
|
1191
|
+
};
|
|
1192
|
+
readonly worktreeCleanup: {
|
|
1193
|
+
readonly enum: readonly ["completed", "failed", "timeout", "not-applicable"];
|
|
1194
|
+
};
|
|
1195
|
+
readonly worktreePath: {
|
|
1196
|
+
readonly type: "string";
|
|
1197
|
+
};
|
|
1198
|
+
readonly safetyCheck: {
|
|
1199
|
+
readonly type: "object";
|
|
1200
|
+
readonly required: readonly ["performed"];
|
|
1201
|
+
readonly properties: {
|
|
1202
|
+
readonly performed: {
|
|
1203
|
+
readonly type: "boolean";
|
|
1204
|
+
};
|
|
1205
|
+
readonly hasUncommittedChanges: {
|
|
1206
|
+
readonly type: "boolean";
|
|
1207
|
+
};
|
|
1208
|
+
readonly hasUntrackedFiles: {
|
|
1209
|
+
readonly type: "boolean";
|
|
1210
|
+
};
|
|
1211
|
+
readonly hasUpstream: {
|
|
1212
|
+
readonly type: "boolean";
|
|
1213
|
+
};
|
|
1214
|
+
readonly unpushedCommits: {
|
|
1215
|
+
readonly type: "number";
|
|
1216
|
+
};
|
|
1217
|
+
};
|
|
1218
|
+
readonly additionalProperties: false;
|
|
1219
|
+
};
|
|
1220
|
+
};
|
|
1221
|
+
readonly additionalProperties: false;
|
|
1222
|
+
}, {
|
|
1223
|
+
readonly type: "object";
|
|
1224
|
+
readonly required: readonly ["ok", "paneId", "blocked", "nextCommand"];
|
|
1225
|
+
readonly properties: {
|
|
1226
|
+
readonly ok: {
|
|
1227
|
+
readonly const: false;
|
|
1228
|
+
};
|
|
1229
|
+
readonly paneId: {
|
|
1230
|
+
readonly type: "string";
|
|
1231
|
+
};
|
|
1232
|
+
readonly blocked: {
|
|
1233
|
+
readonly type: "object";
|
|
1234
|
+
readonly required: readonly ["code", "message", "safetyCheck"];
|
|
1235
|
+
readonly properties: {
|
|
1236
|
+
readonly code: {
|
|
1237
|
+
readonly enum: readonly ["uncommitted-changes", "unpushed-commits", "uncommitted-and-unpushed", "status-unknown"];
|
|
1238
|
+
};
|
|
1239
|
+
readonly message: {
|
|
1240
|
+
readonly type: "string";
|
|
1241
|
+
};
|
|
1242
|
+
readonly safetyCheck: {
|
|
1243
|
+
readonly type: "object";
|
|
1244
|
+
readonly required: readonly ["performed"];
|
|
1245
|
+
readonly properties: {
|
|
1246
|
+
readonly performed: {
|
|
1247
|
+
readonly type: "boolean";
|
|
1248
|
+
};
|
|
1249
|
+
readonly hasUncommittedChanges: {
|
|
1250
|
+
readonly type: "boolean";
|
|
1251
|
+
};
|
|
1252
|
+
readonly hasUntrackedFiles: {
|
|
1253
|
+
readonly type: "boolean";
|
|
1254
|
+
};
|
|
1255
|
+
readonly hasUpstream: {
|
|
1256
|
+
readonly type: "boolean";
|
|
1257
|
+
};
|
|
1258
|
+
readonly unpushedCommits: {
|
|
1259
|
+
readonly type: "number";
|
|
1260
|
+
};
|
|
1261
|
+
};
|
|
1262
|
+
readonly additionalProperties: false;
|
|
1263
|
+
};
|
|
1264
|
+
};
|
|
1265
|
+
readonly additionalProperties: false;
|
|
1266
|
+
};
|
|
1267
|
+
readonly nextCommand: {
|
|
1268
|
+
readonly type: "string";
|
|
1269
|
+
};
|
|
1270
|
+
};
|
|
1271
|
+
readonly additionalProperties: false;
|
|
1272
|
+
}];
|
|
1273
|
+
};
|
|
1076
1274
|
readonly panelListResult: {
|
|
1077
1275
|
readonly type: "object";
|
|
1078
1276
|
readonly required: readonly ["ok", "paneId", "panels"];
|
|
@@ -1491,7 +1689,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1491
1689
|
readonly required: readonly ["kind", "message"];
|
|
1492
1690
|
readonly properties: {
|
|
1493
1691
|
readonly kind: {
|
|
1494
|
-
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
1692
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "submission_unverified", "unknown"];
|
|
1495
1693
|
};
|
|
1496
1694
|
readonly message: {
|
|
1497
1695
|
readonly type: "string";
|
|
@@ -1702,7 +1900,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1702
1900
|
readonly required: readonly ["kind", "message"];
|
|
1703
1901
|
readonly properties: {
|
|
1704
1902
|
readonly kind: {
|
|
1705
|
-
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
1903
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "submission_unverified", "unknown"];
|
|
1706
1904
|
};
|
|
1707
1905
|
readonly message: {
|
|
1708
1906
|
readonly type: "string";
|
|
@@ -1771,7 +1969,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1771
1969
|
readonly required: readonly ["kind", "message"];
|
|
1772
1970
|
readonly properties: {
|
|
1773
1971
|
readonly kind: {
|
|
1774
|
-
readonly enum: readonly ["codex-update", "agent-prompt", "unknown"];
|
|
1972
|
+
readonly enum: readonly ["codex-update", "agent-prompt", "submission_unverified", "unknown"];
|
|
1775
1973
|
};
|
|
1776
1974
|
readonly message: {
|
|
1777
1975
|
readonly type: "string";
|
|
@@ -1793,7 +1991,7 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1793
1991
|
readonly brief: {
|
|
1794
1992
|
readonly title: "Pane agent context";
|
|
1795
1993
|
readonly summary: "Pane lets a developer manage saved base repositories, user-visible Panes (Pane sessions) for feature/PR work, and terminal-backed panel tabs. A Pane is a visible workspace that normally maps to one Pane-managed git worktree and branch; a panel is a terminal tab inside one Pane and shares that Pane's worktree; an agent is a CLI process running inside a panel.";
|
|
1796
|
-
readonly rules: readonly ["Start with `runpane doctor --json` to understand wrapper, platform, daemon reachability, and the next safe commands before mutating Pane state.", "In a Pane repository checkout, if `runpane` is not on PATH, use the built local wrapper with Node 22, for example `PATH=/opt/homebrew/opt/node@22/bin:$PATH node packages/runpane/dist/cli.js doctor --json`.", "Happy path for any user request to use Pane/RunPane: run `runpane doctor --json`, read `runpane agent-context --json`, resolve or add the saved base repo, create the requested visible Pane with a complete command such as `runpane panes create --repo <repo> --name <name> --agent <agent> --prompt \"<task>\" --source agent --no-focus --wait-ready --yes --json` (or use `--tool-command <command>` instead of `--agent <agent>`), then validate with `panels wait` or `panels screen`.", "Treat Pane as the user's visible cockpit for watching/co-driving work. Do not create Panes or panels for private delegation unless the user asked for visible Pane orchestration or the result should appear in the Pane app.", "Register the saved base repository once with `repos add`; do not register a pre-created worktree as a separate repo unless the user explicitly asks.", "Use `panes create` for separate visible Panes (Pane sessions) for feature/PR work. Pane creates and owns the worktree/branch for each new Pane.", "Use `panels create` for reviewer/helper/clean-context tabs that should stay inside an existing Pane and share that Pane's worktree.", "For private background decomposition, use your normal subagent/worktree mechanism instead of Pane.", "Skill routing: when the user says `discussion`, `plan`, `simple-plan`, `create-plan`, or `implement`, or asks for those behaviors, treat three references as peer context: Pane's local skill cache under `<PANE_DIR>/skills/`, the Pane Chat orchestrator handoff at `<PANE_DIR>/skills/pane-chat/runpane-orchestrator.md` when present, and the workflow map at https://github.com/dcouple/skills/raw/main/docs/readme-workflow-map.png. For where the local cache and Pane Chat bootstrap live in Pane, reference https://github.com/dcouple/Pane/pull/291. Use GitHub reads against https://github.com/dcouple/skills/tree/main/parsa only to inspect or refresh referenced skill files; do not clone or install it unless the user asks.", "When an agent creates Panes or panels, pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved.", "Use `runpane agent-context --json` for the full agent-facing CLI context, or `runpane agent-context --command <command> --json` for one detailed command definition.", "For `agent-context --command`, use canonical spaced names like `panes create`; copied forms like `panes.create` or `runpane panes create` are accepted too.", "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, `panels submit` for ordinary Enter-submitted input, and `panels submit-composer --strategy auto` for agent composers.", "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."];
|
|
1994
|
+
readonly rules: readonly ["Start with `runpane doctor --json` to understand wrapper, platform, daemon reachability, and the next safe commands before mutating Pane state.", "In a Pane repository checkout, if `runpane` is not on PATH, use the built local wrapper with Node 22, for example `PATH=/opt/homebrew/opt/node@22/bin:$PATH node packages/runpane/dist/cli.js doctor --json`.", "Happy path for any user request to use Pane/RunPane: run `runpane doctor --json`, read `runpane agent-context --json`, resolve or add the saved base repo, create the requested visible Pane with a complete command such as `runpane panes create --repo <repo> --name <name> --agent <agent> --prompt \"<task>\" --source agent --pinned --no-focus --wait-ready --yes --json` when it should stay visible (or omit `--pinned`, or use `--tool-command <command>` instead of `--agent <agent>`), then validate with `panels wait` or `panels screen`.", "Treat Pane as the user's visible cockpit for watching/co-driving work. Do not create Panes or panels for private delegation unless the user asked for visible Pane orchestration or the result should appear in the Pane app.", "Register the saved base repository once with `repos add`; do not register a pre-created worktree as a separate repo unless the user explicitly asks.", "Use `panes create` for separate visible Panes (Pane sessions) for feature/PR work. Pane creates and owns the worktree/branch for each new Pane.", "Use `panels create` for reviewer/helper/clean-context tabs that should stay inside an existing Pane and share that Pane's worktree.", "For private background decomposition, use your normal subagent/worktree mechanism instead of Pane.", "Skill routing: when the user says `discussion`, `plan`, `simple-plan`, `create-plan`, or `implement`, or asks for those behaviors, treat three references as peer context: Pane's local skill cache under `<PANE_DIR>/skills/`, the Pane Chat orchestrator handoff at `<PANE_DIR>/skills/pane-chat/runpane-orchestrator.md` when present, and the workflow map at https://github.com/dcouple/skills/raw/main/docs/readme-workflow-map.png. For where the local cache and Pane Chat bootstrap live in Pane, reference https://github.com/dcouple/Pane/pull/291. Use GitHub reads against https://github.com/dcouple/skills/tree/main/parsa only to inspect or refresh referenced skill files; do not clone or install it unless the user asks.", "When an agent creates Panes or panels, pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved; add `--pinned` when declaring a Pane that should remain in the UI's favorite/pin set.", "Use `runpane agent-context --json` for the full agent-facing CLI context, or `runpane agent-context --command <command> --json` for one detailed command definition.", "For `agent-context --command`, use canonical spaced names like `panes create`; copied forms like `panes.create` or `runpane panes create` are accepted too.", "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, `panels submit` for ordinary Enter-submitted input, and `panels submit-composer --strategy auto` for agent composers.", "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."];
|
|
1797
1995
|
readonly detailCommand: "runpane agent-context --command <command> [--json]";
|
|
1798
1996
|
readonly tools: readonly [{
|
|
1799
1997
|
readonly name: "doctor";
|
|
@@ -1822,7 +2020,19 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
1822
2020
|
}, {
|
|
1823
2021
|
readonly name: "panes create";
|
|
1824
2022
|
readonly summary: "Create user-visible Panes (Pane sessions) backed by Pane-managed worktrees for feature/PR work and open terminal-backed tool tabs.";
|
|
1825
|
-
readonly arguments: readonly ["--repo <selector>", "--name <name>", "--agent <codex|claude>", "--tool-command <command>", "--prompt <text>", "--initial-input-file <path|->", "--from-json <path|->", "--source <user|agent>", "--no-focus", "--focus", "--wait-ready", "--ready-timeout-ms <ms>", "--concurrency <count>", "--yes", "--json"];
|
|
2023
|
+
readonly arguments: readonly ["--repo <selector>", "--name <name>", "--agent <codex|claude>", "--tool-command <command>", "--prompt <text>", "--initial-input-file <path|->", "--from-json <path|->", "--source <user|agent>", "--pinned", "--no-focus", "--focus", "--wait-ready", "--ready-timeout-ms <ms>", "--concurrency <count>", "--yes", "--json"];
|
|
2024
|
+
}, {
|
|
2025
|
+
readonly name: "panes archive";
|
|
2026
|
+
readonly summary: "Archive a Pane exactly like the UI Archive action, including safe removal of its Pane-managed git worktree.";
|
|
2027
|
+
readonly arguments: readonly ["--pane <pane-id>", "--source <user|agent>", "--force", "--yes", "--json"];
|
|
2028
|
+
}, {
|
|
2029
|
+
readonly name: "panes pin";
|
|
2030
|
+
readonly summary: "Declaratively pin a Pane (the Pane UI's favorite/pin star) without changing focus.";
|
|
2031
|
+
readonly arguments: readonly ["--pane <pane-id>", "--yes", "--dry-run", "--json"];
|
|
2032
|
+
}, {
|
|
2033
|
+
readonly name: "panes unpin";
|
|
2034
|
+
readonly summary: "Declaratively unpin a Pane (the Pane UI's favorite/pin star) without changing focus.";
|
|
2035
|
+
readonly arguments: readonly ["--pane <pane-id>", "--yes", "--dry-run", "--json"];
|
|
1826
2036
|
}, {
|
|
1827
2037
|
readonly name: "panels create";
|
|
1828
2038
|
readonly summary: "Create reviewer/helper terminal tabs inside an existing Pane; they share that Pane's worktree.";
|
|
@@ -2142,10 +2352,18 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
2142
2352
|
readonly name: "--focus";
|
|
2143
2353
|
readonly required: false;
|
|
2144
2354
|
readonly description: "Explicitly focus the created pane.";
|
|
2355
|
+
}, {
|
|
2356
|
+
readonly name: "--pinned";
|
|
2357
|
+
readonly required: false;
|
|
2358
|
+
readonly description: "Create the pane already pinned (the Pane UI's favorite/pin star); does not imply focus.";
|
|
2145
2359
|
}, {
|
|
2146
2360
|
readonly name: "--yes";
|
|
2147
2361
|
readonly required: false;
|
|
2148
2362
|
readonly description: "Skip confirmation for mutating commands.";
|
|
2363
|
+
}, {
|
|
2364
|
+
readonly name: "--dry-run";
|
|
2365
|
+
readonly required: false;
|
|
2366
|
+
readonly description: "Validate and preview without mutating.";
|
|
2149
2367
|
}, {
|
|
2150
2368
|
readonly name: "--json";
|
|
2151
2369
|
readonly required: false;
|
|
@@ -2167,7 +2385,96 @@ export declare const RUNPANE_CONTRACT: {
|
|
|
2167
2385
|
}];
|
|
2168
2386
|
readonly examples: readonly ["runpane panes create --repo active --name issue-257 --agent <agent> --prompt \"Plan this issue\" --source agent --no-focus --wait-ready --yes --json", "runpane panes create --from-json panes.json --yes --json", "runpane panes create --repo active --name issue-123 --agent <agent> --prompt \"Plan this issue\" --source agent --no-focus --wait-ready --yes --json"];
|
|
2169
2387
|
readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
|
|
2170
|
-
readonly notes: readonly ["At least one of --agent or --tool-command is required unless --from-json is used.", "`panes create` is for user-visible Pane orchestration, not the agent's default private delegation mechanism.", "Register the saved base repository once. Pane creates and owns the worktree/branch for each new Pane.", "Use `panels create` instead when a reviewer/helper should share an existing Pane's worktree.", "Agent-created Panes should pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved.", "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 <agent> --prompt \"Plan this issue\" --source agent --no-focus --wait-ready --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."];
|
|
2388
|
+
readonly notes: readonly ["At least one of --agent or --tool-command is required unless --from-json is used.", "`panes create` is for user-visible Pane orchestration, not the agent's default private delegation mechanism.", "Register the saved base repository once. Pane creates and owns the worktree/branch for each new Pane.", "Use `panels create` instead when a reviewer/helper should share an existing Pane's worktree.", "Agent-created Panes should pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved; add `--pinned` when the Pane should remain in the UI's favorite/pin set.", "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.", "With --wait-ready, verifiedSubmitted is earned from delivery evidence; routing initial input alone does not imply verified submission.", "If initialInput.blocked.kind is submission_unverified, do not submit again automatically. Inspect initialInput.staged and attempts, then run nextCommand to resolve the ambiguous composer state.", "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 <agent> --prompt \"Plan this issue\" --source agent --no-focus --wait-ready --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."];
|
|
2389
|
+
};
|
|
2390
|
+
readonly "panes archive": {
|
|
2391
|
+
readonly name: "panes archive";
|
|
2392
|
+
readonly summary: "Archive a Pane (session) exactly like the UI Archive action, including safe removal of its Pane-managed git worktree.";
|
|
2393
|
+
readonly details: "Use this to close out a Pane once its PR has merged. Refuses to archive (unless --force) when the pane's branch has uncommitted, untracked, or unpushed-to-remote changes, so an agent cannot silently discard work. A merged and pushed branch has no unpushed commits, so it archives cleanly. Waits for worktree removal to finish before returning.";
|
|
2394
|
+
readonly requiresPaneDaemon: true;
|
|
2395
|
+
readonly mutates: true;
|
|
2396
|
+
readonly arguments: readonly [{
|
|
2397
|
+
readonly name: "--pane";
|
|
2398
|
+
readonly value: "<pane-id>";
|
|
2399
|
+
readonly required: true;
|
|
2400
|
+
readonly description: "Pane/session id to archive.";
|
|
2401
|
+
}, {
|
|
2402
|
+
readonly name: "--source";
|
|
2403
|
+
readonly value: "<user|agent>";
|
|
2404
|
+
readonly required: false;
|
|
2405
|
+
readonly description: "Mutation source; does not change archive safety behavior.";
|
|
2406
|
+
}, {
|
|
2407
|
+
readonly name: "--force";
|
|
2408
|
+
readonly required: false;
|
|
2409
|
+
readonly description: "Archive even if the pane's branch has uncommitted, untracked, or unpushed changes.";
|
|
2410
|
+
}, {
|
|
2411
|
+
readonly name: "--yes";
|
|
2412
|
+
readonly required: false;
|
|
2413
|
+
readonly description: "Skip confirmation for mutating commands.";
|
|
2414
|
+
}, {
|
|
2415
|
+
readonly name: "--json";
|
|
2416
|
+
readonly required: false;
|
|
2417
|
+
readonly description: "Print machine-readable output.";
|
|
2418
|
+
}];
|
|
2419
|
+
readonly examples: readonly ["runpane panes archive --pane <pane-id> --source agent --yes --json", "runpane panes archive --pane <pane-id> --force --yes --json"];
|
|
2420
|
+
readonly jsonSchemas: readonly ["paneArchiveRequest", "paneArchiveResult"];
|
|
2421
|
+
readonly notes: readonly ["If the result has ok:false with a blocked field, the pane was NOT archived; inspect blocked.code and rerun with --force if discarding the flagged work is intentional.", "A successful archive waits for the Pane-managed worktree to be removed before returning; check worktreeCleanup in the result for the final outcome.", "Archiving a main-repo Pane (no Pane-managed worktree) always succeeds immediately since nothing is deleted from disk."];
|
|
2422
|
+
};
|
|
2423
|
+
readonly "panes pin": {
|
|
2424
|
+
readonly name: "panes pin";
|
|
2425
|
+
readonly summary: "Declaratively pin a Pane; pinned is the Pane UI's favorite/pin star.";
|
|
2426
|
+
readonly details: "Sets the requested pinned state to true without reading and toggling it. Repeating the command is idempotent and pinning never changes focus.";
|
|
2427
|
+
readonly requiresPaneDaemon: true;
|
|
2428
|
+
readonly mutates: true;
|
|
2429
|
+
readonly arguments: readonly [{
|
|
2430
|
+
readonly name: "--pane";
|
|
2431
|
+
readonly value: "<pane-id>";
|
|
2432
|
+
readonly required: true;
|
|
2433
|
+
readonly description: "Pane/session id to pin.";
|
|
2434
|
+
}, {
|
|
2435
|
+
readonly name: "--yes";
|
|
2436
|
+
readonly required: false;
|
|
2437
|
+
readonly description: "Skip confirmation for mutating commands.";
|
|
2438
|
+
}, {
|
|
2439
|
+
readonly name: "--dry-run";
|
|
2440
|
+
readonly required: false;
|
|
2441
|
+
readonly description: "Validate and preview without mutating.";
|
|
2442
|
+
}, {
|
|
2443
|
+
readonly name: "--json";
|
|
2444
|
+
readonly required: false;
|
|
2445
|
+
readonly description: "Print machine-readable output.";
|
|
2446
|
+
}];
|
|
2447
|
+
readonly examples: readonly ["runpane panes pin --pane <pane-id> --yes --json", "runpane panes pin --pane <pane-id> --dry-run --json"];
|
|
2448
|
+
readonly jsonSchemas: readonly ["panePinRequest", "panePinResult"];
|
|
2449
|
+
readonly notes: readonly ["This is a declarative set, not a toggle: retries leave an already-pinned Pane pinned.", "Pinning does not focus the Pane."];
|
|
2450
|
+
};
|
|
2451
|
+
readonly "panes unpin": {
|
|
2452
|
+
readonly name: "panes unpin";
|
|
2453
|
+
readonly summary: "Declaratively unpin a Pane; pinned is the Pane UI's favorite/pin star.";
|
|
2454
|
+
readonly details: "Sets the requested pinned state to false without reading and toggling it. Repeating the command is idempotent and unpinning never changes focus.";
|
|
2455
|
+
readonly requiresPaneDaemon: true;
|
|
2456
|
+
readonly mutates: true;
|
|
2457
|
+
readonly arguments: readonly [{
|
|
2458
|
+
readonly name: "--pane";
|
|
2459
|
+
readonly value: "<pane-id>";
|
|
2460
|
+
readonly required: true;
|
|
2461
|
+
readonly description: "Pane/session id to unpin.";
|
|
2462
|
+
}, {
|
|
2463
|
+
readonly name: "--yes";
|
|
2464
|
+
readonly required: false;
|
|
2465
|
+
readonly description: "Skip confirmation for mutating commands.";
|
|
2466
|
+
}, {
|
|
2467
|
+
readonly name: "--dry-run";
|
|
2468
|
+
readonly required: false;
|
|
2469
|
+
readonly description: "Validate and preview without mutating.";
|
|
2470
|
+
}, {
|
|
2471
|
+
readonly name: "--json";
|
|
2472
|
+
readonly required: false;
|
|
2473
|
+
readonly description: "Print machine-readable output.";
|
|
2474
|
+
}];
|
|
2475
|
+
readonly examples: readonly ["runpane panes unpin --pane <pane-id> --yes --json", "runpane panes unpin --pane <pane-id> --dry-run --json"];
|
|
2476
|
+
readonly jsonSchemas: readonly ["panePinRequest", "panePinResult"];
|
|
2477
|
+
readonly notes: readonly ["This is a declarative set, not a toggle: retries leave an already-unpinned Pane unpinned.", "Unpinning does not focus the Pane."];
|
|
2171
2478
|
};
|
|
2172
2479
|
readonly "panels list": {
|
|
2173
2480
|
readonly name: "panels list";
|