runpane 2.2.12 → 2.3.1
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 +11 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +17 -4
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +120 -126
- package/dist/commands.js.map +1 -1
- package/dist/daemonClient.d.ts +17 -0
- package/dist/daemonClient.d.ts.map +1 -0
- package/dist/daemonClient.js +176 -0
- package/dist/daemonClient.js.map +1 -0
- package/dist/generated/contract.d.ts +566 -0
- package/dist/generated/contract.d.ts.map +1 -0
- package/dist/generated/contract.js +1198 -0
- package/dist/generated/contract.js.map +1 -0
- package/dist/localControl.d.ts +5 -0
- package/dist/localControl.d.ts.map +1 -0
- package/dist/localControl.js +279 -0
- package/dist/localControl.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
export declare const RUNPANE_CONTRACT: {
|
|
2
|
+
readonly $schema: "./schema.json";
|
|
3
|
+
readonly schemaVersion: 1;
|
|
4
|
+
readonly name: "runpane";
|
|
5
|
+
readonly description: "Thin installer and local control CLI for Pane";
|
|
6
|
+
readonly packageInstallPolicy: readonly ["The packages must not download, install, or configure Pane during package installation.", "Work starts only when a user runs `runpane ...`."];
|
|
7
|
+
readonly compatibility: {
|
|
8
|
+
readonly node: ">=18.17.0";
|
|
9
|
+
readonly python: ">=3.8";
|
|
10
|
+
};
|
|
11
|
+
readonly terminology: {
|
|
12
|
+
readonly repo: "Saved Pane repository/project record";
|
|
13
|
+
readonly pane: "User-visible Pane session";
|
|
14
|
+
readonly tool: "Terminal-backed tab";
|
|
15
|
+
readonly agent: "Built-in agent command template";
|
|
16
|
+
};
|
|
17
|
+
readonly defaults: {
|
|
18
|
+
readonly target: "client";
|
|
19
|
+
readonly paneVersion: "latest";
|
|
20
|
+
readonly channel: "stable";
|
|
21
|
+
readonly format: "auto";
|
|
22
|
+
readonly dryRun: false;
|
|
23
|
+
readonly yes: false;
|
|
24
|
+
readonly verbose: false;
|
|
25
|
+
};
|
|
26
|
+
readonly enums: {
|
|
27
|
+
readonly installTargets: readonly ["client", "daemon"];
|
|
28
|
+
readonly artifactFormats: readonly ["auto", "appimage", "deb", "dmg", "zip", "exe"];
|
|
29
|
+
readonly channels: readonly ["stable", "nightly"];
|
|
30
|
+
readonly agents: readonly ["codex", "claude"];
|
|
31
|
+
};
|
|
32
|
+
readonly agentTemplates: {
|
|
33
|
+
readonly codex: {
|
|
34
|
+
readonly title: "Codex";
|
|
35
|
+
readonly command: "codex --yolo";
|
|
36
|
+
readonly description: "Open a Codex terminal tab and allow the initial input to drive the agent.";
|
|
37
|
+
};
|
|
38
|
+
readonly claude: {
|
|
39
|
+
readonly title: "Claude Code";
|
|
40
|
+
readonly command: "claude --dangerously-skip-permissions";
|
|
41
|
+
readonly description: "Open a Claude Code terminal tab and allow the initial input to drive the agent.";
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
readonly commands: readonly [{
|
|
45
|
+
readonly name: "help";
|
|
46
|
+
readonly summary: "Show help for runpane or a specific command.";
|
|
47
|
+
readonly usage: readonly ["runpane help [command]"];
|
|
48
|
+
}, {
|
|
49
|
+
readonly name: "setup";
|
|
50
|
+
readonly summary: "Open the guided setup wizard for install, remote host setup, update, and diagnostics.";
|
|
51
|
+
readonly usage: readonly ["runpane setup"];
|
|
52
|
+
readonly interactiveEntrypoint: true;
|
|
53
|
+
}, {
|
|
54
|
+
readonly name: "install";
|
|
55
|
+
readonly summary: "Install Pane on this machine or configure this machine as a remote daemon host.";
|
|
56
|
+
readonly usage: readonly ["runpane install [client|daemon] [options]"];
|
|
57
|
+
readonly defaultTarget: "client";
|
|
58
|
+
readonly targets: readonly ["client", "daemon"];
|
|
59
|
+
readonly unknownDaemonFlagsForwarded: true;
|
|
60
|
+
}, {
|
|
61
|
+
readonly name: "update";
|
|
62
|
+
readonly summary: "Update the Pane desktop app using the same artifact path as install client.";
|
|
63
|
+
readonly usage: readonly ["runpane update [options]"];
|
|
64
|
+
readonly target: "client";
|
|
65
|
+
}, {
|
|
66
|
+
readonly name: "version";
|
|
67
|
+
readonly summary: "Print the runpane wrapper version and installed Pane version when detectable.";
|
|
68
|
+
readonly usage: readonly ["runpane version", "runpane --version"];
|
|
69
|
+
}, {
|
|
70
|
+
readonly name: "doctor";
|
|
71
|
+
readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
|
|
72
|
+
readonly usage: readonly ["runpane doctor"];
|
|
73
|
+
}, {
|
|
74
|
+
readonly name: "repos list";
|
|
75
|
+
readonly summary: "List repositories saved in the running Pane app.";
|
|
76
|
+
readonly usage: readonly ["runpane repos list [--json] [--pane-dir <path>]"];
|
|
77
|
+
readonly jsonSchemas: readonly ["repoListResult"];
|
|
78
|
+
}, {
|
|
79
|
+
readonly name: "repos add";
|
|
80
|
+
readonly summary: "Register an existing git repository with the running Pane app.";
|
|
81
|
+
readonly usage: readonly ["runpane repos add --path <path> [--name <name>] [--json] [--yes]"];
|
|
82
|
+
readonly mutates: true;
|
|
83
|
+
readonly jsonSchemas: readonly ["repoAddRequest", "repoAddResult"];
|
|
84
|
+
}, {
|
|
85
|
+
readonly name: "panes create";
|
|
86
|
+
readonly summary: "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.";
|
|
87
|
+
readonly usage: readonly ["runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]", "runpane panes create --from-json <path|-> [--yes] [--json]"];
|
|
88
|
+
readonly mutates: true;
|
|
89
|
+
readonly jsonSchemas: readonly ["paneCreateRequest", "paneCreateResult"];
|
|
90
|
+
}];
|
|
91
|
+
readonly flags: {
|
|
92
|
+
readonly wrapper: readonly [{
|
|
93
|
+
readonly name: "--version";
|
|
94
|
+
readonly value: "<latest|vX.Y.Z>";
|
|
95
|
+
readonly description: "Pane release to install or inspect.";
|
|
96
|
+
}, {
|
|
97
|
+
readonly name: "--download-dir";
|
|
98
|
+
readonly value: "<path>";
|
|
99
|
+
readonly description: "Directory for downloaded Pane release artifacts.";
|
|
100
|
+
}, {
|
|
101
|
+
readonly name: "--pane-path";
|
|
102
|
+
readonly value: "<path>";
|
|
103
|
+
readonly description: "Use or inspect an existing Pane executable.";
|
|
104
|
+
}, {
|
|
105
|
+
readonly name: "--format";
|
|
106
|
+
readonly value: "<auto|appimage|deb|dmg|zip|exe>";
|
|
107
|
+
readonly description: "Pane release artifact format.";
|
|
108
|
+
}, {
|
|
109
|
+
readonly name: "--dry-run";
|
|
110
|
+
readonly description: "Print the plan without downloading or installing.";
|
|
111
|
+
}, {
|
|
112
|
+
readonly name: "--yes";
|
|
113
|
+
readonly aliases: readonly ["-y"];
|
|
114
|
+
readonly description: "Skip interactive prompts where possible.";
|
|
115
|
+
}, {
|
|
116
|
+
readonly name: "--verbose";
|
|
117
|
+
readonly description: "Print extra diagnostics.";
|
|
118
|
+
}];
|
|
119
|
+
readonly remoteValue: readonly [{
|
|
120
|
+
readonly name: "--label";
|
|
121
|
+
readonly value: "<name>";
|
|
122
|
+
}, {
|
|
123
|
+
readonly name: "--prefer-tunnel";
|
|
124
|
+
readonly value: "<tailscale|ssh|manual|auto>";
|
|
125
|
+
}, {
|
|
126
|
+
readonly name: "--channel";
|
|
127
|
+
readonly value: "<stable|nightly>";
|
|
128
|
+
}, {
|
|
129
|
+
readonly name: "--base-url";
|
|
130
|
+
readonly value: "<url>";
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "--pane-dir";
|
|
133
|
+
readonly value: "<path>";
|
|
134
|
+
}, {
|
|
135
|
+
readonly name: "--listen-port";
|
|
136
|
+
readonly value: "<port>";
|
|
137
|
+
}, {
|
|
138
|
+
readonly name: "--port";
|
|
139
|
+
readonly value: "<port>";
|
|
140
|
+
}, {
|
|
141
|
+
readonly name: "--repo-ref";
|
|
142
|
+
readonly value: "<ref>";
|
|
143
|
+
}];
|
|
144
|
+
readonly remoteBoolean: readonly [{
|
|
145
|
+
readonly name: "--auto-listen-port";
|
|
146
|
+
}, {
|
|
147
|
+
readonly name: "--interactive-tailscale-setup";
|
|
148
|
+
}, {
|
|
149
|
+
readonly name: "--no-install-service";
|
|
150
|
+
}, {
|
|
151
|
+
readonly name: "--no-tailscale-serve";
|
|
152
|
+
}, {
|
|
153
|
+
readonly name: "--print-only";
|
|
154
|
+
}];
|
|
155
|
+
readonly localValue: readonly [{
|
|
156
|
+
readonly name: "--pane-dir";
|
|
157
|
+
readonly value: "<path>";
|
|
158
|
+
readonly description: "Connect to a Pane daemon using this Pane data directory.";
|
|
159
|
+
}, {
|
|
160
|
+
readonly name: "--repo";
|
|
161
|
+
readonly value: "<selector>";
|
|
162
|
+
readonly description: "Repository selector: active, id, exact path, or saved repository name.";
|
|
163
|
+
}, {
|
|
164
|
+
readonly name: "--path";
|
|
165
|
+
readonly value: "<path>";
|
|
166
|
+
readonly description: "Existing git repository path to register with Pane.";
|
|
167
|
+
}, {
|
|
168
|
+
readonly name: "--name";
|
|
169
|
+
readonly value: "<name>";
|
|
170
|
+
readonly description: "Name for the registered repository or created pane/session.";
|
|
171
|
+
}, {
|
|
172
|
+
readonly name: "--worktree-name";
|
|
173
|
+
readonly value: "<name>";
|
|
174
|
+
readonly description: "Worktree name to request. Defaults to --name.";
|
|
175
|
+
}, {
|
|
176
|
+
readonly name: "--base-branch";
|
|
177
|
+
readonly value: "<branch>";
|
|
178
|
+
readonly description: "Base branch for the created worktree.";
|
|
179
|
+
}, {
|
|
180
|
+
readonly name: "--agent";
|
|
181
|
+
readonly value: "<codex|claude>";
|
|
182
|
+
readonly description: "Built-in agent terminal template to open.";
|
|
183
|
+
}, {
|
|
184
|
+
readonly name: "--tool-command";
|
|
185
|
+
readonly value: "<command>";
|
|
186
|
+
readonly description: "Custom terminal command to run instead of a built-in agent.";
|
|
187
|
+
}, {
|
|
188
|
+
readonly name: "--title";
|
|
189
|
+
readonly value: "<title>";
|
|
190
|
+
readonly description: "Terminal tab title. Defaults to the selected agent title or Terminal.";
|
|
191
|
+
}, {
|
|
192
|
+
readonly name: "--initial-input";
|
|
193
|
+
readonly value: "<text>";
|
|
194
|
+
readonly aliases: readonly ["--prompt"];
|
|
195
|
+
readonly description: "Text to send to the terminal after the command is ready. --prompt is an alias.";
|
|
196
|
+
}, {
|
|
197
|
+
readonly name: "--initial-input-file";
|
|
198
|
+
readonly value: "<path|->";
|
|
199
|
+
readonly description: "Read initial input from a file or stdin.";
|
|
200
|
+
}, {
|
|
201
|
+
readonly name: "--from-json";
|
|
202
|
+
readonly value: "<path|->";
|
|
203
|
+
readonly description: "Read a full panes.create request JSON payload from a file or stdin.";
|
|
204
|
+
}, {
|
|
205
|
+
readonly name: "--timeout-ms";
|
|
206
|
+
readonly value: "<milliseconds>";
|
|
207
|
+
readonly description: "Maximum time to wait for each pane creation job.";
|
|
208
|
+
}];
|
|
209
|
+
readonly localBoolean: readonly [{
|
|
210
|
+
readonly name: "--json";
|
|
211
|
+
readonly description: "Print machine-readable JSON output.";
|
|
212
|
+
}];
|
|
213
|
+
};
|
|
214
|
+
readonly help: {
|
|
215
|
+
readonly npm: {
|
|
216
|
+
readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane help [command]", "", "Quick start:", " npx --yes runpane@latest", " npm i -g runpane && runpane setup", "", "Advanced examples:", " npx --yes runpane@latest install client", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest", " pipx run runpane", "", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
217
|
+
readonly install: readonly ["Usage:", " runpane install [client|daemon] [options]", "", "Examples:", " npx --yes runpane@latest install client", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest install daemon --prefer-tunnel ssh --label \"VM\"", "", "Wrapper options:", " --version <latest|vX.Y.Z> Pane release to install", " --format <auto|appimage|deb|dmg|zip|exe>", " --download-dir <path>", " --pane-path <path> Use an existing Pane executable", " --dry-run Print the plan without downloading", " --yes Skip interactive prompts where possible", " --verbose", "", "Daemon passthrough options:", " --label <name>", " --prefer-tunnel <tailscale|ssh|manual|auto>", " --channel <stable|nightly>", " --base-url <url>", " --pane-dir <path>", " --listen-port <port> / --port <port>", " --auto-listen-port", " --interactive-tailscale-setup", " --no-install-service", " --no-tailscale-serve", " --print-only", " --repo-ref <ref>"];
|
|
218
|
+
readonly setup: readonly ["Usage:", " runpane setup", "", "Opens the guided setup for desktop install, remote host setup, update, and diagnostics.", "", "Quick start:", " npx --yes runpane@latest", " npm i -g runpane && runpane setup"];
|
|
219
|
+
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"];
|
|
220
|
+
readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
|
|
221
|
+
readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
|
|
222
|
+
readonly "repos list": readonly ["Usage:", " runpane repos list [--json] [--pane-dir <path>]", "", "Lists repositories saved in the running Pane app.", "", "Options:", " --json Print machine-readable output", " --pane-dir <path> Connect to a specific Pane data directory"];
|
|
223
|
+
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"];
|
|
224
|
+
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"];
|
|
225
|
+
};
|
|
226
|
+
readonly pip: {
|
|
227
|
+
readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " runpane repos list [--json]", " runpane repos add --path <path> [--name <name>]", " runpane panes create --repo <selector> --name <name> --agent <codex|claude>", " runpane help [command]", "", "Quick start:", " pipx run runpane", " python -m pip install runpane && python -m runpane setup", "", "Advanced examples:", " pipx run runpane install client", " pipx run runpane install daemon --label \"My Server\"", " uvx runpane@latest", "", "Run \"runpane help panes create\" for pane orchestration options."];
|
|
228
|
+
readonly install: readonly ["Usage:", " runpane install [client|daemon] [options]", "", "Examples:", " npx --yes runpane@latest install daemon --label \"My Server\"", " pnpm dlx runpane@latest install daemon --prefer-tunnel ssh --label \"VM\"", " pipx run runpane install daemon --label \"My Server\"", "", "Wrapper options:", " --version <latest|vX.Y.Z>", " --format <auto|appimage|deb|dmg|zip|exe>", " --download-dir <path>", " --pane-path <path>", " --dry-run", " --yes", " --verbose", "", "Daemon passthrough options:", " --label <name>", " --prefer-tunnel <tailscale|ssh|manual|auto>", " --channel <stable|nightly>", " --base-url <url>", " --pane-dir <path>", " --listen-port <port> / --port <port>", " --auto-listen-port", " --interactive-tailscale-setup", " --no-install-service", " --no-tailscale-serve", " --print-only", " --repo-ref <ref>"];
|
|
229
|
+
readonly setup: readonly ["Usage:", " runpane setup", "", "Opens the guided setup for desktop install, remote host setup, update, and diagnostics.", "", "Quick start:", " pipx run runpane", " python -m pip install runpane && python -m runpane setup"];
|
|
230
|
+
readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
|
|
231
|
+
readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
|
|
232
|
+
readonly doctor: readonly ["Usage:", " runpane doctor [--pane-path <path>] [--format <format>] [--verbose]"];
|
|
233
|
+
readonly "repos list": readonly ["Usage:", " runpane repos list [--json] [--pane-dir <path>]", "", "Lists repositories saved in the running Pane app.", "", "Options:", " --json", " --pane-dir <path>"];
|
|
234
|
+
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"];
|
|
235
|
+
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"];
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
readonly docs: {
|
|
239
|
+
readonly maintainerRules: readonly ["Treat `contracts/runpane/contract.json` as the source of truth for both wrapper packages and generated docs.", "Every command, flag, platform default, artifact-selection rule, and attribution rule change must be reflected in the contract.", "The npm and PyPI wrappers must expose the same command behavior unless the contract explicitly documents a package-manager-specific difference.", "Root `README.md` and package READMEs should lead with one guided quick-start command. Explicit commands, package-manager variants, and flags belong in an Advanced section.", "Release version bumps must keep root `package.json`, `packages/runpane`, and `packages/runpane-py` versions in sync. Run `pnpm run check:runpane-package-versions` before release.", "`pnpm run test:runpane-contract` must pass before changing wrapper command parsing, help output, platform defaults, release asset selection, or generated contract artifacts.", "Token-based npm or PyPI publishing is a temporary fallback. Prefer trusted publishing once the package names are reserved and trusted publishers are configured."];
|
|
240
|
+
readonly recommendedQuickStarts: readonly ["npx --yes runpane@latest", "npm i -g runpane && runpane setup", "pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
|
|
241
|
+
readonly npmCommands: readonly ["npx --yes runpane@latest", "npx --yes runpane@latest setup", "npx --yes runpane@latest install client", "npx --yes runpane@latest install daemon --label \"My Server\"", "pnpm dlx runpane@latest", "pnpm dlx runpane@latest install daemon --label \"My Server\"", "npm i -g runpane && runpane", "npm i -g runpane && runpane setup", "npm i -g runpane && runpane install daemon --label \"My Server\"", "pnpm add -g runpane && runpane", "pnpm add -g runpane && runpane setup", "pnpm add -g runpane && runpane install daemon --label \"My Server\"", "yarn dlx runpane@latest install daemon --label \"My Server\"", "bunx runpane@latest install daemon --label \"My Server\""];
|
|
242
|
+
readonly pythonCommands: readonly ["pipx run runpane", "pipx run runpane setup", "python -m pip install runpane", "runpane", "runpane setup", "python -m runpane setup", "runpane install daemon --label \"My Server\"", "pipx install runpane", "runpane", "runpane setup", "pipx run runpane install daemon --label \"My Server\"", "uvx runpane@latest", "uvx runpane@latest setup", "uvx runpane@latest install daemon --label \"My Server\"", "python -m runpane install daemon --label \"My Server\""];
|
|
243
|
+
readonly packageManagerNotes: readonly ["Use `pnpm dlx` for one-shot pnpm execution and `pnpm add -g` for persistent CLI installation.", "Do not document `pnpm install runpane` as the public CLI install path."];
|
|
244
|
+
readonly commandUsages: readonly ["runpane", "runpane setup", "runpane install", "runpane install client", "runpane install daemon", "runpane update", "runpane version", "runpane doctor", "runpane repos list --json", "runpane repos add --path /path/to/repo --name Pane --yes --json", "runpane panes create --repo active --name issue-252 --agent codex --prompt \"Kick off the discussion skill for issue 252\" --yes", "runpane panes create --from-json panes.json --yes --json", "runpane help", "runpane <command> --help"];
|
|
245
|
+
readonly commandDescriptions: readonly ["`runpane` with no arguments and `runpane setup` open an interactive wizard when stdin and stdout are TTYs. In non-interactive shells or CI, both forms must print help and exit successfully instead of waiting for input.", "`runpane install` is an alias for `runpane install client`.", "`runpane install client` downloads the selected Pane desktop artifact and installs, opens, or launches it for the current platform.", "`runpane install daemon` downloads or installs Pane, resolves a stable Pane executable path, and spawns `<pane executable> --remote-setup <forwarded remote setup args>`.", "The wrapper must stream Pane stdout/stderr without reformatting because `pane --remote-setup` prints the one-time `pane-remote://...` connection code.", "`runpane update` uses the same release resolution and installer path as `install client`.", "`runpane version` prints the wrapper package version, the installed Pane version when detectable, and the latest GitHub release version when reachable.", "`runpane doctor` checks platform support, release metadata reachability, download URL selection, installed Pane detection, and remote-daemon hints.", "`runpane repos list` connects to the running local Pane daemon and prints saved repository records.", "`runpane repos add` registers an existing git repository with the running local Pane daemon. It does not create directories or initialize git repositories by default.", "`runpane panes create` connects to the running local Pane daemon, resolves the requested repository, creates Pane sessions, opens terminal-backed tool tabs, and optionally sends initial input to the started tool.", "`runpane panes create --prompt` is an alias for `--initial-input`; request JSON and daemon payloads should use the canonical `initialInput` field."];
|
|
246
|
+
readonly wrapperFlagNote: "The top-level `runpane --version` form prints the wrapper version. The install subcommand form `runpane install --version vX.Y.Z` selects a Pane release.";
|
|
247
|
+
readonly localControlFlagNote: "`runpane repos list` and `runpane panes create` use the local framed daemon socket/pipe for a running Pane app. `--pane-dir` points the wrapper at a non-default Pane data directory, such as `PANE_DIR=~/.pane_test` in development.";
|
|
248
|
+
readonly daemonFlagNote: "Unknown daemon flags should be forwarded rather than dropped so newer Pane versions can extend `--remote-setup` without requiring an immediate wrapper release. Unknown flags for non-daemon commands should fail clearly.";
|
|
249
|
+
readonly downloadAttribution: readonly ["The npm package uses `source=npm` for all npm-registry consumers, including `npx`, `pnpm dlx`, `yarn dlx`, `bunx`, and global npm/pnpm installs.", "The PyPI package uses `source=pip` for all Python consumers, including pip, pipx, uvx, and `python -m runpane`.", "Wrappers should prefer `https://runpane.com/api/download?platform=<platform>&arch=<arch>&format=<format>&version=<version>&channel=<channel>&source=<npm|pip>`.", "If the website route cannot satisfy the download, wrappers may fall back to the matching GitHub release asset and print a warning that website attribution may be incomplete for that run."];
|
|
250
|
+
readonly publishingCredentials: readonly ["Local implementation, build, and dry-run validation do not need npm or PyPI API tokens.", "Release publishing should prefer npm Trusted Publishing and PyPI Trusted Publishing from GitHub Actions.", "Fallback `NPM_TOKEN` or `PYPI_API_TOKEN` credentials may be used for first package reservation or manual publication only. They must be supplied through local environment variables or GitHub Actions secrets, never committed, and revoked or rotated after use."];
|
|
251
|
+
};
|
|
252
|
+
readonly testFixtures: {
|
|
253
|
+
readonly parserSamples: readonly [readonly ["setup"], readonly ["install"], readonly ["install", "client", "--version", "v2.2.8", "--format", "dmg", "--download-dir", "/tmp/pane-downloads", "--dry-run", "--yes"], readonly ["install", "daemon", "--label", "VM", "--prefer-tunnel", "ssh", "--channel", "nightly", "--base-url", "https://example.test", "--pane-dir", "/tmp/pane", "--listen-port", "4555", "--auto-listen-port", "--print-only", "--repo-ref", "main", "--unknown-future-flag", "future-value", "--dry-run", "--verbose"], readonly ["update", "--version", "latest", "--format", "appimage", "--pane-path", "/usr/bin/pane", "--dry-run"], readonly ["doctor", "--pane-path", "/usr/bin/pane", "--format", "zip", "--verbose"], readonly ["repos", "list", "--json", "--pane-dir", "/tmp/pane"], readonly ["repos", "add", "--path", "/tmp/repo", "--name", "Repo", "--dry-run", "--yes", "--json", "--pane-dir", "/tmp/pane"], readonly ["panes", "create", "--repo", "active", "--name", "issue-252", "--agent", "codex", "--prompt", "Kick off discussion", "--dry-run", "--yes", "--json"], readonly ["panes", "create", "--from-json", "-", "--yes", "--json"], readonly ["--version"]];
|
|
254
|
+
readonly topLevelHelpIncludes: readonly ["runpane setup", "runpane install", "runpane update", "runpane version", "runpane doctor", "runpane repos list", "runpane repos add", "runpane panes create"];
|
|
255
|
+
readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
|
|
256
|
+
readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
|
|
257
|
+
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>"];
|
|
258
|
+
};
|
|
259
|
+
readonly jsonSchemas: {
|
|
260
|
+
readonly error: {
|
|
261
|
+
readonly type: "object";
|
|
262
|
+
readonly required: readonly ["ok", "error"];
|
|
263
|
+
readonly properties: {
|
|
264
|
+
readonly ok: {
|
|
265
|
+
readonly const: false;
|
|
266
|
+
};
|
|
267
|
+
readonly error: {
|
|
268
|
+
readonly type: "object";
|
|
269
|
+
readonly required: readonly ["message"];
|
|
270
|
+
readonly properties: {
|
|
271
|
+
readonly message: {
|
|
272
|
+
readonly type: "string";
|
|
273
|
+
};
|
|
274
|
+
readonly code: {
|
|
275
|
+
readonly type: "string";
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
readonly additionalProperties: false;
|
|
279
|
+
};
|
|
280
|
+
};
|
|
281
|
+
readonly additionalProperties: false;
|
|
282
|
+
};
|
|
283
|
+
readonly repoListResult: {
|
|
284
|
+
readonly type: "object";
|
|
285
|
+
readonly required: readonly ["ok", "repos"];
|
|
286
|
+
readonly properties: {
|
|
287
|
+
readonly ok: {
|
|
288
|
+
readonly const: true;
|
|
289
|
+
};
|
|
290
|
+
readonly repos: {
|
|
291
|
+
readonly type: "array";
|
|
292
|
+
readonly items: {
|
|
293
|
+
readonly type: "object";
|
|
294
|
+
readonly required: readonly ["id", "name", "path", "active", "sessionCount"];
|
|
295
|
+
readonly properties: {
|
|
296
|
+
readonly id: {
|
|
297
|
+
readonly type: "number";
|
|
298
|
+
};
|
|
299
|
+
readonly name: {
|
|
300
|
+
readonly type: "string";
|
|
301
|
+
};
|
|
302
|
+
readonly path: {
|
|
303
|
+
readonly type: "string";
|
|
304
|
+
};
|
|
305
|
+
readonly active: {
|
|
306
|
+
readonly type: "boolean";
|
|
307
|
+
};
|
|
308
|
+
readonly environment: {
|
|
309
|
+
readonly type: "string";
|
|
310
|
+
};
|
|
311
|
+
readonly sessionCount: {
|
|
312
|
+
readonly type: "number";
|
|
313
|
+
};
|
|
314
|
+
};
|
|
315
|
+
readonly additionalProperties: false;
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
readonly additionalProperties: false;
|
|
320
|
+
};
|
|
321
|
+
readonly repoAddRequest: {
|
|
322
|
+
readonly type: "object";
|
|
323
|
+
readonly required: readonly ["path"];
|
|
324
|
+
readonly properties: {
|
|
325
|
+
readonly path: {
|
|
326
|
+
readonly type: "string";
|
|
327
|
+
};
|
|
328
|
+
readonly name: {
|
|
329
|
+
readonly type: "string";
|
|
330
|
+
};
|
|
331
|
+
readonly dryRun: {
|
|
332
|
+
readonly type: "boolean";
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
readonly additionalProperties: false;
|
|
336
|
+
};
|
|
337
|
+
readonly repoAddResult: {
|
|
338
|
+
readonly type: "object";
|
|
339
|
+
readonly required: readonly ["ok", "created"];
|
|
340
|
+
readonly properties: {
|
|
341
|
+
readonly ok: {
|
|
342
|
+
readonly const: true;
|
|
343
|
+
};
|
|
344
|
+
readonly created: {
|
|
345
|
+
readonly type: "boolean";
|
|
346
|
+
};
|
|
347
|
+
readonly dryRun: {
|
|
348
|
+
readonly type: "boolean";
|
|
349
|
+
};
|
|
350
|
+
readonly repo: {
|
|
351
|
+
readonly $ref: "#/jsonSchemas/repoListResult/properties/repos/items";
|
|
352
|
+
};
|
|
353
|
+
readonly preview: {
|
|
354
|
+
readonly type: "object";
|
|
355
|
+
readonly required: readonly ["name", "path", "alreadyExists", "wouldCreate"];
|
|
356
|
+
readonly properties: {
|
|
357
|
+
readonly name: {
|
|
358
|
+
readonly type: "string";
|
|
359
|
+
};
|
|
360
|
+
readonly path: {
|
|
361
|
+
readonly type: "string";
|
|
362
|
+
};
|
|
363
|
+
readonly alreadyExists: {
|
|
364
|
+
readonly type: "boolean";
|
|
365
|
+
};
|
|
366
|
+
readonly wouldCreate: {
|
|
367
|
+
readonly type: "boolean";
|
|
368
|
+
};
|
|
369
|
+
readonly environment: {
|
|
370
|
+
readonly type: "string";
|
|
371
|
+
};
|
|
372
|
+
};
|
|
373
|
+
readonly additionalProperties: false;
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
readonly additionalProperties: false;
|
|
377
|
+
};
|
|
378
|
+
readonly paneCreateRequest: {
|
|
379
|
+
readonly type: "object";
|
|
380
|
+
readonly required: readonly ["repo", "panes"];
|
|
381
|
+
readonly properties: {
|
|
382
|
+
readonly repo: {
|
|
383
|
+
readonly oneOf: readonly [{
|
|
384
|
+
readonly type: "string";
|
|
385
|
+
}, {
|
|
386
|
+
readonly type: "object";
|
|
387
|
+
readonly properties: {
|
|
388
|
+
readonly id: {
|
|
389
|
+
readonly type: "number";
|
|
390
|
+
};
|
|
391
|
+
readonly path: {
|
|
392
|
+
readonly type: "string";
|
|
393
|
+
};
|
|
394
|
+
readonly name: {
|
|
395
|
+
readonly type: "string";
|
|
396
|
+
};
|
|
397
|
+
readonly active: {
|
|
398
|
+
readonly const: true;
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
readonly additionalProperties: false;
|
|
402
|
+
}];
|
|
403
|
+
};
|
|
404
|
+
readonly panes: {
|
|
405
|
+
readonly type: "array";
|
|
406
|
+
readonly minItems: 1;
|
|
407
|
+
readonly items: {
|
|
408
|
+
readonly type: "object";
|
|
409
|
+
readonly required: readonly ["name", "tool"];
|
|
410
|
+
readonly properties: {
|
|
411
|
+
readonly name: {
|
|
412
|
+
readonly type: "string";
|
|
413
|
+
};
|
|
414
|
+
readonly worktreeName: {
|
|
415
|
+
readonly type: "string";
|
|
416
|
+
};
|
|
417
|
+
readonly baseBranch: {
|
|
418
|
+
readonly type: "string";
|
|
419
|
+
};
|
|
420
|
+
readonly sessionPrompt: {
|
|
421
|
+
readonly type: "string";
|
|
422
|
+
};
|
|
423
|
+
readonly tool: {
|
|
424
|
+
readonly oneOf: readonly [{
|
|
425
|
+
readonly type: "object";
|
|
426
|
+
readonly required: readonly ["agent"];
|
|
427
|
+
readonly properties: {
|
|
428
|
+
readonly agent: {
|
|
429
|
+
readonly enum: readonly ["codex", "claude"];
|
|
430
|
+
};
|
|
431
|
+
readonly title: {
|
|
432
|
+
readonly type: "string";
|
|
433
|
+
};
|
|
434
|
+
readonly initialInput: {
|
|
435
|
+
readonly type: "string";
|
|
436
|
+
};
|
|
437
|
+
};
|
|
438
|
+
readonly additionalProperties: false;
|
|
439
|
+
}, {
|
|
440
|
+
readonly type: "object";
|
|
441
|
+
readonly required: readonly ["command"];
|
|
442
|
+
readonly properties: {
|
|
443
|
+
readonly command: {
|
|
444
|
+
readonly type: "string";
|
|
445
|
+
};
|
|
446
|
+
readonly title: {
|
|
447
|
+
readonly type: "string";
|
|
448
|
+
};
|
|
449
|
+
readonly initialInput: {
|
|
450
|
+
readonly type: "string";
|
|
451
|
+
};
|
|
452
|
+
};
|
|
453
|
+
readonly additionalProperties: false;
|
|
454
|
+
}];
|
|
455
|
+
};
|
|
456
|
+
};
|
|
457
|
+
readonly additionalProperties: false;
|
|
458
|
+
};
|
|
459
|
+
};
|
|
460
|
+
readonly dryRun: {
|
|
461
|
+
readonly type: "boolean";
|
|
462
|
+
};
|
|
463
|
+
readonly timeoutMs: {
|
|
464
|
+
readonly type: "number";
|
|
465
|
+
};
|
|
466
|
+
};
|
|
467
|
+
readonly additionalProperties: false;
|
|
468
|
+
};
|
|
469
|
+
readonly paneCreateResult: {
|
|
470
|
+
readonly type: "object";
|
|
471
|
+
readonly required: readonly ["ok", "repo", "items"];
|
|
472
|
+
readonly properties: {
|
|
473
|
+
readonly ok: {
|
|
474
|
+
readonly type: "boolean";
|
|
475
|
+
};
|
|
476
|
+
readonly repo: {
|
|
477
|
+
readonly $ref: "#/jsonSchemas/repoListResult/properties/repos/items";
|
|
478
|
+
};
|
|
479
|
+
readonly items: {
|
|
480
|
+
readonly type: "array";
|
|
481
|
+
readonly items: {
|
|
482
|
+
readonly oneOf: readonly [{
|
|
483
|
+
readonly type: "object";
|
|
484
|
+
readonly required: readonly ["ok", "index", "name"];
|
|
485
|
+
readonly properties: {
|
|
486
|
+
readonly ok: {
|
|
487
|
+
readonly const: true;
|
|
488
|
+
};
|
|
489
|
+
readonly index: {
|
|
490
|
+
readonly type: "number";
|
|
491
|
+
};
|
|
492
|
+
readonly name: {
|
|
493
|
+
readonly type: "string";
|
|
494
|
+
};
|
|
495
|
+
readonly sessionId: {
|
|
496
|
+
readonly type: "string";
|
|
497
|
+
};
|
|
498
|
+
readonly paneId: {
|
|
499
|
+
readonly type: "string";
|
|
500
|
+
};
|
|
501
|
+
readonly panelId: {
|
|
502
|
+
readonly type: "string";
|
|
503
|
+
};
|
|
504
|
+
readonly worktreePath: {
|
|
505
|
+
readonly type: "string";
|
|
506
|
+
};
|
|
507
|
+
readonly tool: {
|
|
508
|
+
readonly type: "object";
|
|
509
|
+
readonly required: readonly ["title", "command"];
|
|
510
|
+
readonly properties: {
|
|
511
|
+
readonly title: {
|
|
512
|
+
readonly type: "string";
|
|
513
|
+
};
|
|
514
|
+
readonly command: {
|
|
515
|
+
readonly type: "string";
|
|
516
|
+
};
|
|
517
|
+
readonly agent: {
|
|
518
|
+
readonly enum: readonly ["codex", "claude"];
|
|
519
|
+
};
|
|
520
|
+
};
|
|
521
|
+
readonly additionalProperties: false;
|
|
522
|
+
};
|
|
523
|
+
};
|
|
524
|
+
readonly additionalProperties: false;
|
|
525
|
+
}, {
|
|
526
|
+
readonly type: "object";
|
|
527
|
+
readonly required: readonly ["ok", "index", "error"];
|
|
528
|
+
readonly properties: {
|
|
529
|
+
readonly ok: {
|
|
530
|
+
readonly const: false;
|
|
531
|
+
};
|
|
532
|
+
readonly index: {
|
|
533
|
+
readonly type: "number";
|
|
534
|
+
};
|
|
535
|
+
readonly name: {
|
|
536
|
+
readonly type: "string";
|
|
537
|
+
};
|
|
538
|
+
readonly error: {
|
|
539
|
+
readonly type: "object";
|
|
540
|
+
readonly required: readonly ["message"];
|
|
541
|
+
readonly properties: {
|
|
542
|
+
readonly message: {
|
|
543
|
+
readonly type: "string";
|
|
544
|
+
};
|
|
545
|
+
readonly code: {
|
|
546
|
+
readonly type: "string";
|
|
547
|
+
};
|
|
548
|
+
};
|
|
549
|
+
readonly additionalProperties: false;
|
|
550
|
+
};
|
|
551
|
+
};
|
|
552
|
+
readonly additionalProperties: false;
|
|
553
|
+
}];
|
|
554
|
+
};
|
|
555
|
+
};
|
|
556
|
+
};
|
|
557
|
+
readonly additionalProperties: false;
|
|
558
|
+
};
|
|
559
|
+
};
|
|
560
|
+
};
|
|
561
|
+
export type RunpaneCommand = typeof RUNPANE_CONTRACT.commands[number]['name'];
|
|
562
|
+
export type InstallTarget = typeof RUNPANE_CONTRACT.enums.installTargets[number];
|
|
563
|
+
export type ArtifactFormat = typeof RUNPANE_CONTRACT.enums.artifactFormats[number];
|
|
564
|
+
export type RunpaneChannel = typeof RUNPANE_CONTRACT.enums.channels[number];
|
|
565
|
+
export type RunpaneAgent = typeof RUNPANE_CONTRACT.enums.agents[number];
|
|
566
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwqCnB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACjF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACnF,MAAM,MAAM,cAAc,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,OAAO,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC"}
|