runpane 2.3.0 → 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.
@@ -27,6 +27,19 @@ export declare const RUNPANE_CONTRACT: {
27
27
  readonly installTargets: readonly ["client", "daemon"];
28
28
  readonly artifactFormats: readonly ["auto", "appimage", "deb", "dmg", "zip", "exe"];
29
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
+ };
30
43
  };
31
44
  readonly commands: readonly [{
32
45
  readonly name: "help";
@@ -57,6 +70,23 @@ export declare const RUNPANE_CONTRACT: {
57
70
  readonly name: "doctor";
58
71
  readonly summary: "Run platform, release, installed Pane, and remote setup diagnostics.";
59
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"];
60
90
  }];
61
91
  readonly flags: {
62
92
  readonly wrapper: readonly [{
@@ -122,23 +152,87 @@ export declare const RUNPANE_CONTRACT: {
122
152
  }, {
123
153
  readonly name: "--print-only";
124
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
+ }];
125
213
  };
126
214
  readonly help: {
127
215
  readonly npm: {
128
- readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " 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 install\" for install options."];
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."];
129
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>"];
130
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"];
131
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"];
132
220
  readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
133
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"];
134
225
  };
135
226
  readonly pip: {
136
- readonly default: readonly ["Usage:", " runpane", " runpane setup", " runpane install [client|daemon] [options]", " runpane update [options]", " runpane version", " runpane doctor", " 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 install\" for install options."];
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."];
137
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>"];
138
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"];
139
230
  readonly update: readonly ["Usage:", " runpane update [--version <latest|vX.Y.Z>] [--dry-run] [--yes]"];
140
231
  readonly version: readonly ["Usage:", " runpane version", " runpane --version"];
141
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"];
142
236
  };
143
237
  };
144
238
  readonly docs: {
@@ -147,16 +241,17 @@ export declare const RUNPANE_CONTRACT: {
147
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\""];
148
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\""];
149
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."];
150
- readonly commandUsages: readonly ["runpane", "runpane setup", "runpane install", "runpane install client", "runpane install daemon", "runpane update", "runpane version", "runpane doctor", "runpane help", "runpane <command> --help"];
151
- 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."];
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."];
152
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.";
153
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.";
154
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."];
155
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."];
156
251
  };
157
252
  readonly testFixtures: {
158
- 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 ["--version"]];
159
- readonly topLevelHelpIncludes: readonly ["runpane setup", "runpane install", "runpane update", "runpane version", "runpane doctor"];
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"];
160
255
  readonly npmHelpIncludes: readonly ["pnpm dlx runpane@latest", "npx --yes runpane@latest"];
161
256
  readonly pipHelpIncludes: readonly ["pipx run runpane", "python -m pip install runpane && python -m runpane setup"];
162
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>"];
@@ -185,13 +280,281 @@ export declare const RUNPANE_CONTRACT: {
185
280
  };
186
281
  readonly additionalProperties: false;
187
282
  };
188
- readonly "future.repoListResult": {
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: {
189
379
  readonly type: "object";
190
- readonly description: "Reserved for #252 repo listing output.";
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;
191
468
  };
192
- readonly "future.paneCreateResult": {
469
+ readonly paneCreateResult: {
193
470
  readonly type: "object";
194
- readonly description: "Reserved for #252 pane creation output.";
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;
195
558
  };
196
559
  };
197
560
  };
@@ -199,4 +562,5 @@ export type RunpaneCommand = typeof RUNPANE_CONTRACT.commands[number]['name'];
199
562
  export type InstallTarget = typeof RUNPANE_CONTRACT.enums.installTargets[number];
200
563
  export type ArtifactFormat = typeof RUNPANE_CONTRACT.enums.artifactFormats[number];
201
564
  export type RunpaneChannel = typeof RUNPANE_CONTRACT.enums.channels[number];
565
+ export type RunpaneAgent = typeof RUNPANE_CONTRACT.enums.agents[number];
202
566
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/generated/contract.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAikBnB,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"}
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"}