runpane 2.3.2 → 2.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +12 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +5 -0
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +34 -1
- package/dist/commands.js.map +1 -1
- package/dist/generated/contract.d.ts +397 -12
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +689 -7
- package/dist/generated/contract.js.map +1 -1
- package/dist/localControl.d.ts +4 -0
- package/dist/localControl.d.ts.map +1 -1
- package/dist/localControl.js +165 -1
- package/dist/localControl.js.map +1 -1
- package/package.json +1 -1
|
@@ -150,6 +150,16 @@ exports.RUNPANE_CONTRACT = {
|
|
|
150
150
|
"repoAddResult"
|
|
151
151
|
]
|
|
152
152
|
},
|
|
153
|
+
{
|
|
154
|
+
"name": "panes list",
|
|
155
|
+
"summary": "List Pane sessions in a saved repository.",
|
|
156
|
+
"usage": [
|
|
157
|
+
"runpane panes list [--repo <selector>] [--json]"
|
|
158
|
+
],
|
|
159
|
+
"jsonSchemas": [
|
|
160
|
+
"paneListResult"
|
|
161
|
+
]
|
|
162
|
+
},
|
|
153
163
|
{
|
|
154
164
|
"name": "panes create",
|
|
155
165
|
"summary": "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.",
|
|
@@ -162,6 +172,38 @@ exports.RUNPANE_CONTRACT = {
|
|
|
162
172
|
"paneCreateRequest",
|
|
163
173
|
"paneCreateResult"
|
|
164
174
|
]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"name": "panels list",
|
|
178
|
+
"summary": "List tool panels inside a Pane session.",
|
|
179
|
+
"usage": [
|
|
180
|
+
"runpane panels list --pane <pane-id> [--json]"
|
|
181
|
+
],
|
|
182
|
+
"jsonSchemas": [
|
|
183
|
+
"panelListResult"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "panels output",
|
|
188
|
+
"summary": "Read recent terminal output from a panel.",
|
|
189
|
+
"usage": [
|
|
190
|
+
"runpane panels output --panel <panel-id> [--limit <count>] [--json]"
|
|
191
|
+
],
|
|
192
|
+
"jsonSchemas": [
|
|
193
|
+
"panelOutputResult"
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "panels input",
|
|
198
|
+
"summary": "Send input bytes to a terminal panel.",
|
|
199
|
+
"usage": [
|
|
200
|
+
"runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]"
|
|
201
|
+
],
|
|
202
|
+
"mutates": true,
|
|
203
|
+
"jsonSchemas": [
|
|
204
|
+
"panelInputRequest",
|
|
205
|
+
"panelInputResult"
|
|
206
|
+
]
|
|
165
207
|
}
|
|
166
208
|
],
|
|
167
209
|
"flags": {
|
|
@@ -264,6 +306,16 @@ exports.RUNPANE_CONTRACT = {
|
|
|
264
306
|
"value": "<selector>",
|
|
265
307
|
"description": "Repository selector: active, id, exact path, or saved repository name."
|
|
266
308
|
},
|
|
309
|
+
{
|
|
310
|
+
"name": "--pane",
|
|
311
|
+
"value": "<pane-id>",
|
|
312
|
+
"description": "Pane/session id to inspect."
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"name": "--panel",
|
|
316
|
+
"value": "<panel-id>",
|
|
317
|
+
"description": "Tool panel id to inspect or control."
|
|
318
|
+
},
|
|
267
319
|
{
|
|
268
320
|
"name": "--path",
|
|
269
321
|
"value": "<path>",
|
|
@@ -321,6 +373,21 @@ exports.RUNPANE_CONTRACT = {
|
|
|
321
373
|
"name": "--timeout-ms",
|
|
322
374
|
"value": "<milliseconds>",
|
|
323
375
|
"description": "Maximum time to wait for each pane creation job."
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"name": "--limit",
|
|
379
|
+
"value": "<count>",
|
|
380
|
+
"description": "Maximum number of output records to read."
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
"name": "--text",
|
|
384
|
+
"value": "<text>",
|
|
385
|
+
"description": "Text bytes to send to a terminal panel."
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"name": "--input-file",
|
|
389
|
+
"value": "<path|->",
|
|
390
|
+
"description": "Read panel input from a file or stdin."
|
|
324
391
|
}
|
|
325
392
|
],
|
|
326
393
|
"localBoolean": [
|
|
@@ -343,7 +410,11 @@ exports.RUNPANE_CONTRACT = {
|
|
|
343
410
|
" runpane agent-context [--json]",
|
|
344
411
|
" runpane repos list [--json]",
|
|
345
412
|
" runpane repos add --path <path> [--name <name>]",
|
|
413
|
+
" runpane panes list [--repo <selector>] [--json]",
|
|
346
414
|
" runpane panes create --repo <selector> --name <name> --agent <codex|claude>",
|
|
415
|
+
" runpane panels list --pane <pane-id> [--json]",
|
|
416
|
+
" runpane panels output --panel <panel-id> [--limit <count>] [--json]",
|
|
417
|
+
" runpane panels input --panel <panel-id> --text <text> --yes",
|
|
347
418
|
" runpane help [command]",
|
|
348
419
|
"",
|
|
349
420
|
"Quick start:",
|
|
@@ -449,6 +520,17 @@ exports.RUNPANE_CONTRACT = {
|
|
|
449
520
|
" --dry-run Validate and preview without adding the repo",
|
|
450
521
|
" --yes Skip confirmation for mutating commands"
|
|
451
522
|
],
|
|
523
|
+
"panes list": [
|
|
524
|
+
"Usage:",
|
|
525
|
+
" runpane panes list [--repo <selector>] [--json]",
|
|
526
|
+
"",
|
|
527
|
+
"Lists Pane sessions. Pass --repo to limit results to one saved repository.",
|
|
528
|
+
"",
|
|
529
|
+
"Options:",
|
|
530
|
+
" --repo <selector> active, id, exact path, or saved repository name",
|
|
531
|
+
" --pane-dir <path> Connect to a specific Pane data directory",
|
|
532
|
+
" --json Print machine-readable output"
|
|
533
|
+
],
|
|
452
534
|
"panes create": [
|
|
453
535
|
"Usage:",
|
|
454
536
|
" runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]",
|
|
@@ -474,6 +556,43 @@ exports.RUNPANE_CONTRACT = {
|
|
|
474
556
|
" --dry-run Validate and preview without creating panes",
|
|
475
557
|
" --yes Skip confirmation for mutating commands"
|
|
476
558
|
],
|
|
559
|
+
"panels list": [
|
|
560
|
+
"Usage:",
|
|
561
|
+
" runpane panels list --pane <pane-id> [--json]",
|
|
562
|
+
"",
|
|
563
|
+
"Lists tool panels in a Pane session.",
|
|
564
|
+
"",
|
|
565
|
+
"Options:",
|
|
566
|
+
" --pane <pane-id> Pane/session id",
|
|
567
|
+
" --pane-dir <path> Connect to a specific Pane data directory",
|
|
568
|
+
" --json Print machine-readable output"
|
|
569
|
+
],
|
|
570
|
+
"panels output": [
|
|
571
|
+
"Usage:",
|
|
572
|
+
" runpane panels output --panel <panel-id> [--limit <count>] [--json]",
|
|
573
|
+
"",
|
|
574
|
+
"Reads recent terminal output records from a panel.",
|
|
575
|
+
"",
|
|
576
|
+
"Options:",
|
|
577
|
+
" --panel <panel-id> Tool panel id",
|
|
578
|
+
" --limit <count> Maximum output records to read",
|
|
579
|
+
" --pane-dir <path> Connect to a specific Pane data directory",
|
|
580
|
+
" --json Print machine-readable output"
|
|
581
|
+
],
|
|
582
|
+
"panels input": [
|
|
583
|
+
"Usage:",
|
|
584
|
+
" runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]",
|
|
585
|
+
"",
|
|
586
|
+
"Sends exact input bytes to a terminal panel. Include a newline in the input when you mean Enter.",
|
|
587
|
+
"",
|
|
588
|
+
"Options:",
|
|
589
|
+
" --panel <panel-id> Terminal panel id",
|
|
590
|
+
" --text <text> Text bytes to send",
|
|
591
|
+
" --input-file <path|-> Read input from a file or stdin",
|
|
592
|
+
" --pane-dir <path> Connect to a specific Pane data directory",
|
|
593
|
+
" --json Print machine-readable output",
|
|
594
|
+
" --yes Skip confirmation for mutating commands"
|
|
595
|
+
],
|
|
477
596
|
"agent-context": [
|
|
478
597
|
"Usage:",
|
|
479
598
|
" runpane agent-context [--json]",
|
|
@@ -504,7 +623,11 @@ exports.RUNPANE_CONTRACT = {
|
|
|
504
623
|
" runpane agent-context [--json]",
|
|
505
624
|
" runpane repos list [--json]",
|
|
506
625
|
" runpane repos add --path <path> [--name <name>]",
|
|
626
|
+
" runpane panes list [--repo <selector>] [--json]",
|
|
507
627
|
" runpane panes create --repo <selector> --name <name> --agent <codex|claude>",
|
|
628
|
+
" runpane panels list --pane <pane-id> [--json]",
|
|
629
|
+
" runpane panels output --panel <panel-id> [--limit <count>] [--json]",
|
|
630
|
+
" runpane panels input --panel <panel-id> --text <text> --yes",
|
|
508
631
|
" runpane help [command]",
|
|
509
632
|
"",
|
|
510
633
|
"Quick start:",
|
|
@@ -598,6 +721,17 @@ exports.RUNPANE_CONTRACT = {
|
|
|
598
721
|
" --dry-run",
|
|
599
722
|
" --yes"
|
|
600
723
|
],
|
|
724
|
+
"panes list": [
|
|
725
|
+
"Usage:",
|
|
726
|
+
" runpane panes list [--repo <selector>] [--json]",
|
|
727
|
+
"",
|
|
728
|
+
"Lists Pane sessions. Pass --repo to limit results to one saved repository.",
|
|
729
|
+
"",
|
|
730
|
+
"Options:",
|
|
731
|
+
" --repo <selector>",
|
|
732
|
+
" --pane-dir <path>",
|
|
733
|
+
" --json"
|
|
734
|
+
],
|
|
601
735
|
"panes create": [
|
|
602
736
|
"Usage:",
|
|
603
737
|
" runpane panes create --repo <selector> --name <name> --agent <codex|claude> [options]",
|
|
@@ -623,6 +757,43 @@ exports.RUNPANE_CONTRACT = {
|
|
|
623
757
|
" --dry-run",
|
|
624
758
|
" --yes"
|
|
625
759
|
],
|
|
760
|
+
"panels list": [
|
|
761
|
+
"Usage:",
|
|
762
|
+
" runpane panels list --pane <pane-id> [--json]",
|
|
763
|
+
"",
|
|
764
|
+
"Lists tool panels in a Pane session.",
|
|
765
|
+
"",
|
|
766
|
+
"Options:",
|
|
767
|
+
" --pane <pane-id>",
|
|
768
|
+
" --pane-dir <path>",
|
|
769
|
+
" --json"
|
|
770
|
+
],
|
|
771
|
+
"panels output": [
|
|
772
|
+
"Usage:",
|
|
773
|
+
" runpane panels output --panel <panel-id> [--limit <count>] [--json]",
|
|
774
|
+
"",
|
|
775
|
+
"Reads recent terminal output records from a panel.",
|
|
776
|
+
"",
|
|
777
|
+
"Options:",
|
|
778
|
+
" --panel <panel-id>",
|
|
779
|
+
" --limit <count>",
|
|
780
|
+
" --pane-dir <path>",
|
|
781
|
+
" --json"
|
|
782
|
+
],
|
|
783
|
+
"panels input": [
|
|
784
|
+
"Usage:",
|
|
785
|
+
" runpane panels input --panel <panel-id> (--text <text>|--input-file <path|->) --yes [--json]",
|
|
786
|
+
"",
|
|
787
|
+
"Sends exact input bytes to a terminal panel. Include a newline in the input when you mean Enter.",
|
|
788
|
+
"",
|
|
789
|
+
"Options:",
|
|
790
|
+
" --panel <panel-id>",
|
|
791
|
+
" --text <text>",
|
|
792
|
+
" --input-file <path|->",
|
|
793
|
+
" --pane-dir <path>",
|
|
794
|
+
" --json",
|
|
795
|
+
" --yes"
|
|
796
|
+
],
|
|
626
797
|
"agent-context": [
|
|
627
798
|
"Usage:",
|
|
628
799
|
" runpane agent-context [--json]",
|
|
@@ -708,8 +879,12 @@ exports.RUNPANE_CONTRACT = {
|
|
|
708
879
|
"runpane agent-context --command \"panes create\" --json",
|
|
709
880
|
"runpane repos list --json",
|
|
710
881
|
"runpane repos add --path /path/to/repo --name Pane --yes --json",
|
|
882
|
+
"runpane panes list --repo active --json",
|
|
711
883
|
"runpane panes create --repo active --name issue-252 --agent codex --prompt \"Kick off the discussion skill for issue 252\" --yes",
|
|
712
884
|
"runpane panes create --from-json panes.json --yes --json",
|
|
885
|
+
"runpane panels list --pane <pane-id> --json",
|
|
886
|
+
"runpane panels output --panel <panel-id> --limit 200 --json",
|
|
887
|
+
"runpane panels input --panel <panel-id> --text \"Continue\\n\" --yes --json",
|
|
713
888
|
"runpane help",
|
|
714
889
|
"runpane <command> --help"
|
|
715
890
|
],
|
|
@@ -726,11 +901,16 @@ exports.RUNPANE_CONTRACT = {
|
|
|
726
901
|
"`runpane agent-context --command \"panes create\"` prints the detailed definition for one command. Add `--json` for machine-readable output.",
|
|
727
902
|
"`runpane repos list` connects to the running local Pane daemon and prints saved repository records.",
|
|
728
903
|
"`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.",
|
|
904
|
+
"`runpane panes list` lists Pane sessions, optionally scoped to one saved repository.",
|
|
729
905
|
"`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.",
|
|
730
|
-
"`runpane
|
|
906
|
+
"`runpane panels list` lists tool panels inside one Pane session.",
|
|
907
|
+
"`runpane panels output` reads recent terminal output records from one panel.",
|
|
908
|
+
"`runpane panels input` sends exact input bytes to one terminal panel. Include a newline in the input when the agent means Enter.",
|
|
909
|
+
"`runpane panes create --prompt` is an alias for `--initial-input`; request JSON and daemon payloads should use the canonical `initialInput` field.",
|
|
910
|
+
"When running from WSL while Pane is installed on Windows, the Linux wrapper may look for a missing `/tmp/pane-daemon.../daemon.sock`. In that case invoke the Windows wrapper through PowerShell, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."
|
|
731
911
|
],
|
|
732
912
|
"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.",
|
|
733
|
-
"localControlFlagNote": "`runpane repos list`
|
|
913
|
+
"localControlFlagNote": "`runpane repos list`, `runpane panes list`, `runpane panes create`, and `runpane panels ...` commands use the local framed daemon socket/pipe for a running Pane app. `--pane-dir` points the wrapper at a non-default Pane data directory, such as `PANE_DIR=~/.pane_test` in development. `runpane agent-context` is local/offline and can be used before Pane is running. From WSL, if the user runs Windows Pane, call the Windows wrapper through `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane ...'` so the command can reach the Windows named-pipe daemon.",
|
|
734
914
|
"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.",
|
|
735
915
|
"downloadAttribution": [
|
|
736
916
|
"The npm package uses `source=npm` for all npm-registry consumers, including `npx`, `pnpm dlx`, `yarn dlx`, `bunx`, and global npm/pnpm installs.",
|
|
@@ -835,6 +1015,13 @@ exports.RUNPANE_CONTRACT = {
|
|
|
835
1015
|
"--pane-dir",
|
|
836
1016
|
"/tmp/pane"
|
|
837
1017
|
],
|
|
1018
|
+
[
|
|
1019
|
+
"panes",
|
|
1020
|
+
"list",
|
|
1021
|
+
"--repo",
|
|
1022
|
+
"active",
|
|
1023
|
+
"--json"
|
|
1024
|
+
],
|
|
838
1025
|
[
|
|
839
1026
|
"panes",
|
|
840
1027
|
"create",
|
|
@@ -858,6 +1045,32 @@ exports.RUNPANE_CONTRACT = {
|
|
|
858
1045
|
"--yes",
|
|
859
1046
|
"--json"
|
|
860
1047
|
],
|
|
1048
|
+
[
|
|
1049
|
+
"panels",
|
|
1050
|
+
"list",
|
|
1051
|
+
"--pane",
|
|
1052
|
+
"session-1",
|
|
1053
|
+
"--json"
|
|
1054
|
+
],
|
|
1055
|
+
[
|
|
1056
|
+
"panels",
|
|
1057
|
+
"output",
|
|
1058
|
+
"--panel",
|
|
1059
|
+
"panel-1",
|
|
1060
|
+
"--limit",
|
|
1061
|
+
"200",
|
|
1062
|
+
"--json"
|
|
1063
|
+
],
|
|
1064
|
+
[
|
|
1065
|
+
"panels",
|
|
1066
|
+
"input",
|
|
1067
|
+
"--panel",
|
|
1068
|
+
"panel-1",
|
|
1069
|
+
"--text",
|
|
1070
|
+
"Continue\\n",
|
|
1071
|
+
"--yes",
|
|
1072
|
+
"--json"
|
|
1073
|
+
],
|
|
861
1074
|
[
|
|
862
1075
|
"--version"
|
|
863
1076
|
]
|
|
@@ -871,7 +1084,11 @@ exports.RUNPANE_CONTRACT = {
|
|
|
871
1084
|
"runpane agent-context",
|
|
872
1085
|
"runpane repos list",
|
|
873
1086
|
"runpane repos add",
|
|
874
|
-
"runpane panes
|
|
1087
|
+
"runpane panes list",
|
|
1088
|
+
"runpane panes create",
|
|
1089
|
+
"runpane panels list",
|
|
1090
|
+
"runpane panels output",
|
|
1091
|
+
"runpane panels input"
|
|
875
1092
|
],
|
|
876
1093
|
"npmHelpIncludes": [
|
|
877
1094
|
"pnpm dlx runpane@latest",
|
|
@@ -1191,6 +1408,9 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1191
1408
|
"worktreePath": {
|
|
1192
1409
|
"type": "string"
|
|
1193
1410
|
},
|
|
1411
|
+
"nextCommand": {
|
|
1412
|
+
"type": "string"
|
|
1413
|
+
},
|
|
1194
1414
|
"tool": {
|
|
1195
1415
|
"type": "object",
|
|
1196
1416
|
"required": [
|
|
@@ -1257,6 +1477,246 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1257
1477
|
},
|
|
1258
1478
|
"additionalProperties": false
|
|
1259
1479
|
},
|
|
1480
|
+
"paneListResult": {
|
|
1481
|
+
"type": "object",
|
|
1482
|
+
"required": [
|
|
1483
|
+
"ok",
|
|
1484
|
+
"panes"
|
|
1485
|
+
],
|
|
1486
|
+
"properties": {
|
|
1487
|
+
"ok": {
|
|
1488
|
+
"const": true
|
|
1489
|
+
},
|
|
1490
|
+
"repo": {
|
|
1491
|
+
"$ref": "#/jsonSchemas/repoListResult/properties/repos/items"
|
|
1492
|
+
},
|
|
1493
|
+
"panes": {
|
|
1494
|
+
"type": "array",
|
|
1495
|
+
"items": {
|
|
1496
|
+
"type": "object",
|
|
1497
|
+
"required": [
|
|
1498
|
+
"id",
|
|
1499
|
+
"paneId",
|
|
1500
|
+
"name",
|
|
1501
|
+
"status",
|
|
1502
|
+
"worktreePath",
|
|
1503
|
+
"repoId",
|
|
1504
|
+
"panelCount"
|
|
1505
|
+
],
|
|
1506
|
+
"properties": {
|
|
1507
|
+
"id": {
|
|
1508
|
+
"type": "string"
|
|
1509
|
+
},
|
|
1510
|
+
"paneId": {
|
|
1511
|
+
"type": "string"
|
|
1512
|
+
},
|
|
1513
|
+
"name": {
|
|
1514
|
+
"type": "string"
|
|
1515
|
+
},
|
|
1516
|
+
"status": {
|
|
1517
|
+
"type": "string"
|
|
1518
|
+
},
|
|
1519
|
+
"worktreePath": {
|
|
1520
|
+
"type": "string"
|
|
1521
|
+
},
|
|
1522
|
+
"repoId": {
|
|
1523
|
+
"type": "number"
|
|
1524
|
+
},
|
|
1525
|
+
"repoName": {
|
|
1526
|
+
"type": "string"
|
|
1527
|
+
},
|
|
1528
|
+
"panelCount": {
|
|
1529
|
+
"type": "number"
|
|
1530
|
+
},
|
|
1531
|
+
"createdAt": {
|
|
1532
|
+
"type": "string"
|
|
1533
|
+
},
|
|
1534
|
+
"lastActivity": {
|
|
1535
|
+
"type": "string"
|
|
1536
|
+
},
|
|
1537
|
+
"archived": {
|
|
1538
|
+
"type": "boolean"
|
|
1539
|
+
}
|
|
1540
|
+
},
|
|
1541
|
+
"additionalProperties": false
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
},
|
|
1545
|
+
"additionalProperties": false
|
|
1546
|
+
},
|
|
1547
|
+
"panelListResult": {
|
|
1548
|
+
"type": "object",
|
|
1549
|
+
"required": [
|
|
1550
|
+
"ok",
|
|
1551
|
+
"paneId",
|
|
1552
|
+
"panels"
|
|
1553
|
+
],
|
|
1554
|
+
"properties": {
|
|
1555
|
+
"ok": {
|
|
1556
|
+
"const": true
|
|
1557
|
+
},
|
|
1558
|
+
"paneId": {
|
|
1559
|
+
"type": "string"
|
|
1560
|
+
},
|
|
1561
|
+
"panels": {
|
|
1562
|
+
"type": "array",
|
|
1563
|
+
"items": {
|
|
1564
|
+
"type": "object",
|
|
1565
|
+
"required": [
|
|
1566
|
+
"id",
|
|
1567
|
+
"panelId",
|
|
1568
|
+
"paneId",
|
|
1569
|
+
"type",
|
|
1570
|
+
"title",
|
|
1571
|
+
"active"
|
|
1572
|
+
],
|
|
1573
|
+
"properties": {
|
|
1574
|
+
"id": {
|
|
1575
|
+
"type": "string"
|
|
1576
|
+
},
|
|
1577
|
+
"panelId": {
|
|
1578
|
+
"type": "string"
|
|
1579
|
+
},
|
|
1580
|
+
"paneId": {
|
|
1581
|
+
"type": "string"
|
|
1582
|
+
},
|
|
1583
|
+
"type": {
|
|
1584
|
+
"type": "string"
|
|
1585
|
+
},
|
|
1586
|
+
"title": {
|
|
1587
|
+
"type": "string"
|
|
1588
|
+
},
|
|
1589
|
+
"active": {
|
|
1590
|
+
"type": "boolean"
|
|
1591
|
+
},
|
|
1592
|
+
"initialized": {
|
|
1593
|
+
"type": "boolean"
|
|
1594
|
+
},
|
|
1595
|
+
"agentType": {
|
|
1596
|
+
"type": "string"
|
|
1597
|
+
},
|
|
1598
|
+
"isCliPanel": {
|
|
1599
|
+
"type": "boolean"
|
|
1600
|
+
},
|
|
1601
|
+
"position": {
|
|
1602
|
+
"type": "number"
|
|
1603
|
+
},
|
|
1604
|
+
"createdAt": {
|
|
1605
|
+
"type": "string"
|
|
1606
|
+
},
|
|
1607
|
+
"lastActiveAt": {
|
|
1608
|
+
"type": "string"
|
|
1609
|
+
}
|
|
1610
|
+
},
|
|
1611
|
+
"additionalProperties": false
|
|
1612
|
+
}
|
|
1613
|
+
}
|
|
1614
|
+
},
|
|
1615
|
+
"additionalProperties": false
|
|
1616
|
+
},
|
|
1617
|
+
"panelOutputResult": {
|
|
1618
|
+
"type": "object",
|
|
1619
|
+
"required": [
|
|
1620
|
+
"ok",
|
|
1621
|
+
"panelId",
|
|
1622
|
+
"limit",
|
|
1623
|
+
"returnedCount",
|
|
1624
|
+
"hasMore",
|
|
1625
|
+
"outputs",
|
|
1626
|
+
"text"
|
|
1627
|
+
],
|
|
1628
|
+
"properties": {
|
|
1629
|
+
"ok": {
|
|
1630
|
+
"const": true
|
|
1631
|
+
},
|
|
1632
|
+
"panelId": {
|
|
1633
|
+
"type": "string"
|
|
1634
|
+
},
|
|
1635
|
+
"paneId": {
|
|
1636
|
+
"type": "string"
|
|
1637
|
+
},
|
|
1638
|
+
"limit": {
|
|
1639
|
+
"type": "number"
|
|
1640
|
+
},
|
|
1641
|
+
"returnedCount": {
|
|
1642
|
+
"type": "number"
|
|
1643
|
+
},
|
|
1644
|
+
"hasMore": {
|
|
1645
|
+
"type": "boolean"
|
|
1646
|
+
},
|
|
1647
|
+
"outputs": {
|
|
1648
|
+
"type": "array",
|
|
1649
|
+
"items": {
|
|
1650
|
+
"type": "object",
|
|
1651
|
+
"required": [
|
|
1652
|
+
"type",
|
|
1653
|
+
"data",
|
|
1654
|
+
"timestamp"
|
|
1655
|
+
],
|
|
1656
|
+
"properties": {
|
|
1657
|
+
"type": {
|
|
1658
|
+
"type": "string"
|
|
1659
|
+
},
|
|
1660
|
+
"data": {},
|
|
1661
|
+
"timestamp": {
|
|
1662
|
+
"type": "string"
|
|
1663
|
+
}
|
|
1664
|
+
},
|
|
1665
|
+
"additionalProperties": false
|
|
1666
|
+
}
|
|
1667
|
+
},
|
|
1668
|
+
"text": {
|
|
1669
|
+
"type": "string"
|
|
1670
|
+
}
|
|
1671
|
+
},
|
|
1672
|
+
"additionalProperties": false
|
|
1673
|
+
},
|
|
1674
|
+
"panelInputRequest": {
|
|
1675
|
+
"type": "object",
|
|
1676
|
+
"required": [
|
|
1677
|
+
"panelId",
|
|
1678
|
+
"input"
|
|
1679
|
+
],
|
|
1680
|
+
"properties": {
|
|
1681
|
+
"panelId": {
|
|
1682
|
+
"type": "string"
|
|
1683
|
+
},
|
|
1684
|
+
"input": {
|
|
1685
|
+
"type": "string"
|
|
1686
|
+
}
|
|
1687
|
+
},
|
|
1688
|
+
"additionalProperties": false
|
|
1689
|
+
},
|
|
1690
|
+
"panelInputResult": {
|
|
1691
|
+
"type": "object",
|
|
1692
|
+
"required": [
|
|
1693
|
+
"ok",
|
|
1694
|
+
"panelId",
|
|
1695
|
+
"inputBytes",
|
|
1696
|
+
"sentAt"
|
|
1697
|
+
],
|
|
1698
|
+
"properties": {
|
|
1699
|
+
"ok": {
|
|
1700
|
+
"const": true
|
|
1701
|
+
},
|
|
1702
|
+
"panelId": {
|
|
1703
|
+
"type": "string"
|
|
1704
|
+
},
|
|
1705
|
+
"paneId": {
|
|
1706
|
+
"type": "string"
|
|
1707
|
+
},
|
|
1708
|
+
"inputBytes": {
|
|
1709
|
+
"type": "number"
|
|
1710
|
+
},
|
|
1711
|
+
"sentAt": {
|
|
1712
|
+
"type": "string"
|
|
1713
|
+
},
|
|
1714
|
+
"nextCommand": {
|
|
1715
|
+
"type": "string"
|
|
1716
|
+
}
|
|
1717
|
+
},
|
|
1718
|
+
"additionalProperties": false
|
|
1719
|
+
},
|
|
1260
1720
|
"agentContextBriefResult": {
|
|
1261
1721
|
"type": "object",
|
|
1262
1722
|
"required": [
|
|
@@ -1399,8 +1859,11 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1399
1859
|
"summary": "Pane lets a developer manage repositories and user-visible panes. Agents can use runpane to list/add Pane repositories and create panes with terminal-backed tools.",
|
|
1400
1860
|
"rules": [
|
|
1401
1861
|
"Start with `runpane repos list --json` to find the saved repository when unsure.",
|
|
1862
|
+
"If WSL cannot find `/tmp/pane-daemon.../daemon.sock`, the user may be running Windows Pane; try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`.",
|
|
1402
1863
|
"If the repository exists on disk but is not saved in Pane, use `runpane repos add --path <repo> --yes --json` before creating panes.",
|
|
1403
1864
|
"Use `runpane panes create` to create a Pane session and open a built-in agent or custom terminal command.",
|
|
1865
|
+
"Use `runpane panels list`, `runpane panels output`, and `runpane panels input` when you need to inspect or drive an existing Pane terminal.",
|
|
1866
|
+
"After creating panes or sending terminal input, validate with bounded panel output before reporting success.",
|
|
1404
1867
|
"Use `runpane agent-context --command <command>` for detailed command definitions only when needed."
|
|
1405
1868
|
],
|
|
1406
1869
|
"detailCommand": "runpane agent-context --command <command> [--json]",
|
|
@@ -1433,6 +1896,15 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1433
1896
|
"--pane-dir <path>"
|
|
1434
1897
|
]
|
|
1435
1898
|
},
|
|
1899
|
+
{
|
|
1900
|
+
"name": "panes list",
|
|
1901
|
+
"summary": "List Pane sessions, optionally scoped to a saved repository.",
|
|
1902
|
+
"arguments": [
|
|
1903
|
+
"--repo <selector>",
|
|
1904
|
+
"--json",
|
|
1905
|
+
"--pane-dir <path>"
|
|
1906
|
+
]
|
|
1907
|
+
},
|
|
1436
1908
|
{
|
|
1437
1909
|
"name": "panes create",
|
|
1438
1910
|
"summary": "Create one or more Pane sessions in a saved repository and open a terminal-backed tool tab.",
|
|
@@ -1446,6 +1918,37 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1446
1918
|
"--yes",
|
|
1447
1919
|
"--json"
|
|
1448
1920
|
]
|
|
1921
|
+
},
|
|
1922
|
+
{
|
|
1923
|
+
"name": "panels list",
|
|
1924
|
+
"summary": "List tool panels inside a Pane session.",
|
|
1925
|
+
"arguments": [
|
|
1926
|
+
"--pane <pane-id>",
|
|
1927
|
+
"--json",
|
|
1928
|
+
"--pane-dir <path>"
|
|
1929
|
+
]
|
|
1930
|
+
},
|
|
1931
|
+
{
|
|
1932
|
+
"name": "panels output",
|
|
1933
|
+
"summary": "Read recent terminal output from a panel.",
|
|
1934
|
+
"arguments": [
|
|
1935
|
+
"--panel <panel-id>",
|
|
1936
|
+
"--limit <count>",
|
|
1937
|
+
"--json",
|
|
1938
|
+
"--pane-dir <path>"
|
|
1939
|
+
]
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
"name": "panels input",
|
|
1943
|
+
"summary": "Send input bytes to a terminal panel.",
|
|
1944
|
+
"arguments": [
|
|
1945
|
+
"--panel <panel-id>",
|
|
1946
|
+
"--text <text>",
|
|
1947
|
+
"--input-file <path|->",
|
|
1948
|
+
"--yes",
|
|
1949
|
+
"--json",
|
|
1950
|
+
"--pane-dir <path>"
|
|
1951
|
+
]
|
|
1449
1952
|
}
|
|
1450
1953
|
]
|
|
1451
1954
|
},
|
|
@@ -1660,7 +2163,8 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1660
2163
|
"repoListResult"
|
|
1661
2164
|
],
|
|
1662
2165
|
"notes": [
|
|
1663
|
-
"Requires a running Pane app or daemon for the selected Pane data directory."
|
|
2166
|
+
"Requires a running Pane app or daemon for the selected Pane data directory.",
|
|
2167
|
+
"If this fails from WSL with a missing `/tmp/pane-daemon.../daemon.sock`, the user may be running Windows Pane. Retry via `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`."
|
|
1664
2168
|
]
|
|
1665
2169
|
},
|
|
1666
2170
|
"repos add": {
|
|
@@ -1712,7 +2216,43 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1712
2216
|
"repoAddResult"
|
|
1713
2217
|
],
|
|
1714
2218
|
"notes": [
|
|
1715
|
-
"It does not create directories or initialize git repositories by default."
|
|
2219
|
+
"It does not create directories or initialize git repositories by default.",
|
|
2220
|
+
"For a Windows Pane app managing WSL repositories, prefer a saved WSL repo from `repos list` when possible. Adding a brand-new WSL repo from Windows may require WSL-aware path handling."
|
|
2221
|
+
]
|
|
2222
|
+
},
|
|
2223
|
+
"panes list": {
|
|
2224
|
+
"name": "panes list",
|
|
2225
|
+
"summary": "List Pane sessions, optionally scoped to a saved repository.",
|
|
2226
|
+
"details": "Use this after selecting a repository to find existing Pane sessions and their ids before inspecting panels.",
|
|
2227
|
+
"requiresPaneDaemon": true,
|
|
2228
|
+
"mutates": false,
|
|
2229
|
+
"arguments": [
|
|
2230
|
+
{
|
|
2231
|
+
"name": "--repo",
|
|
2232
|
+
"value": "<selector>",
|
|
2233
|
+
"required": false,
|
|
2234
|
+
"description": "Optional repository selector: active, id, exact path, or saved repository name."
|
|
2235
|
+
},
|
|
2236
|
+
{
|
|
2237
|
+
"name": "--json",
|
|
2238
|
+
"required": false,
|
|
2239
|
+
"description": "Print machine-readable output."
|
|
2240
|
+
},
|
|
2241
|
+
{
|
|
2242
|
+
"name": "--pane-dir",
|
|
2243
|
+
"value": "<path>",
|
|
2244
|
+
"required": false,
|
|
2245
|
+
"description": "Connect to a specific Pane data directory."
|
|
2246
|
+
}
|
|
2247
|
+
],
|
|
2248
|
+
"examples": [
|
|
2249
|
+
"runpane panes list --repo active --json"
|
|
2250
|
+
],
|
|
2251
|
+
"jsonSchemas": [
|
|
2252
|
+
"paneListResult"
|
|
2253
|
+
],
|
|
2254
|
+
"notes": [
|
|
2255
|
+
"Without --repo, this lists sessions across saved Pane repositories."
|
|
1716
2256
|
]
|
|
1717
2257
|
},
|
|
1718
2258
|
"panes create": {
|
|
@@ -1785,7 +2325,142 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1785
2325
|
],
|
|
1786
2326
|
"notes": [
|
|
1787
2327
|
"At least one of --agent or --tool-command is required unless --from-json is used.",
|
|
1788
|
-
"The built-in agent templates come from the runpane contract; custom terminal commands can pass agent-specific flags when requested by the user."
|
|
2328
|
+
"The built-in agent templates come from the runpane contract; custom terminal commands can pass agent-specific flags when requested by the user.",
|
|
2329
|
+
"When the JSON result includes nextCommand, run it to validate that the terminal produced output before reporting success.",
|
|
2330
|
+
"From WSL with Windows Pane, invoke through PowerShell and select the saved WSL repo by name or id, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane panes create --repo \"WSL Pane\" --name issue-123 --agent codex --prompt \"Plan this issue\" --yes --json'`."
|
|
2331
|
+
]
|
|
2332
|
+
},
|
|
2333
|
+
"panels list": {
|
|
2334
|
+
"name": "panels list",
|
|
2335
|
+
"summary": "List tool panels inside a Pane session.",
|
|
2336
|
+
"details": "Use this to find the terminal panel id to inspect or control after creating or selecting a Pane session.",
|
|
2337
|
+
"requiresPaneDaemon": true,
|
|
2338
|
+
"mutates": false,
|
|
2339
|
+
"arguments": [
|
|
2340
|
+
{
|
|
2341
|
+
"name": "--pane",
|
|
2342
|
+
"value": "<pane-id>",
|
|
2343
|
+
"required": true,
|
|
2344
|
+
"description": "Pane/session id."
|
|
2345
|
+
},
|
|
2346
|
+
{
|
|
2347
|
+
"name": "--json",
|
|
2348
|
+
"required": false,
|
|
2349
|
+
"description": "Print machine-readable output."
|
|
2350
|
+
},
|
|
2351
|
+
{
|
|
2352
|
+
"name": "--pane-dir",
|
|
2353
|
+
"value": "<path>",
|
|
2354
|
+
"required": false,
|
|
2355
|
+
"description": "Connect to a specific Pane data directory."
|
|
2356
|
+
}
|
|
2357
|
+
],
|
|
2358
|
+
"examples": [
|
|
2359
|
+
"runpane panels list --pane <pane-id> --json"
|
|
2360
|
+
],
|
|
2361
|
+
"jsonSchemas": [
|
|
2362
|
+
"panelListResult"
|
|
2363
|
+
],
|
|
2364
|
+
"notes": [
|
|
2365
|
+
"The ids returned here are stable inputs for `panels output` and `panels input`."
|
|
2366
|
+
]
|
|
2367
|
+
},
|
|
2368
|
+
"panels output": {
|
|
2369
|
+
"name": "panels output",
|
|
2370
|
+
"summary": "Read recent terminal output from a panel.",
|
|
2371
|
+
"details": "Use this to inspect recent terminal output from a terminal-backed panel without loading the full history by default.",
|
|
2372
|
+
"requiresPaneDaemon": true,
|
|
2373
|
+
"mutates": false,
|
|
2374
|
+
"arguments": [
|
|
2375
|
+
{
|
|
2376
|
+
"name": "--panel",
|
|
2377
|
+
"value": "<panel-id>",
|
|
2378
|
+
"required": true,
|
|
2379
|
+
"description": "Tool panel id."
|
|
2380
|
+
},
|
|
2381
|
+
{
|
|
2382
|
+
"name": "--limit",
|
|
2383
|
+
"value": "<count>",
|
|
2384
|
+
"required": false,
|
|
2385
|
+
"description": "Maximum output records to read. Defaults to 200."
|
|
2386
|
+
},
|
|
2387
|
+
{
|
|
2388
|
+
"name": "--json",
|
|
2389
|
+
"required": false,
|
|
2390
|
+
"description": "Print machine-readable output."
|
|
2391
|
+
},
|
|
2392
|
+
{
|
|
2393
|
+
"name": "--pane-dir",
|
|
2394
|
+
"value": "<path>",
|
|
2395
|
+
"required": false,
|
|
2396
|
+
"description": "Connect to a specific Pane data directory."
|
|
2397
|
+
}
|
|
2398
|
+
],
|
|
2399
|
+
"examples": [
|
|
2400
|
+
"runpane panels output --panel <panel-id> --limit 200 --json"
|
|
2401
|
+
],
|
|
2402
|
+
"jsonSchemas": [
|
|
2403
|
+
"panelOutputResult"
|
|
2404
|
+
],
|
|
2405
|
+
"notes": [
|
|
2406
|
+
"Default output is bounded to the latest 200 records. Use a larger --limit only when hasMore is true and more history is needed.",
|
|
2407
|
+
"Use --json when an agent needs timestamps, record types, returnedCount, or hasMore."
|
|
2408
|
+
]
|
|
2409
|
+
},
|
|
2410
|
+
"panels input": {
|
|
2411
|
+
"name": "panels input",
|
|
2412
|
+
"summary": "Send input bytes to a terminal panel.",
|
|
2413
|
+
"details": "Use this to answer prompts or continue an agent inside an existing Pane terminal panel.",
|
|
2414
|
+
"requiresPaneDaemon": true,
|
|
2415
|
+
"mutates": true,
|
|
2416
|
+
"arguments": [
|
|
2417
|
+
{
|
|
2418
|
+
"name": "--panel",
|
|
2419
|
+
"value": "<panel-id>",
|
|
2420
|
+
"required": true,
|
|
2421
|
+
"description": "Terminal panel id."
|
|
2422
|
+
},
|
|
2423
|
+
{
|
|
2424
|
+
"name": "--text",
|
|
2425
|
+
"value": "<text>",
|
|
2426
|
+
"required": false,
|
|
2427
|
+
"description": "Text bytes to send."
|
|
2428
|
+
},
|
|
2429
|
+
{
|
|
2430
|
+
"name": "--input-file",
|
|
2431
|
+
"value": "<path|->",
|
|
2432
|
+
"required": false,
|
|
2433
|
+
"description": "Read input from a file or stdin."
|
|
2434
|
+
},
|
|
2435
|
+
{
|
|
2436
|
+
"name": "--yes",
|
|
2437
|
+
"required": false,
|
|
2438
|
+
"description": "Skip confirmation for this mutating command."
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
"name": "--json",
|
|
2442
|
+
"required": false,
|
|
2443
|
+
"description": "Print machine-readable output."
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
"name": "--pane-dir",
|
|
2447
|
+
"value": "<path>",
|
|
2448
|
+
"required": false,
|
|
2449
|
+
"description": "Connect to a specific Pane data directory."
|
|
2450
|
+
}
|
|
2451
|
+
],
|
|
2452
|
+
"examples": [
|
|
2453
|
+
"runpane panels input --panel <panel-id> --text \"Continue\\n\" --yes --json",
|
|
2454
|
+
"printf 'Continue\\n' | runpane panels input --panel <panel-id> --input-file - --yes"
|
|
2455
|
+
],
|
|
2456
|
+
"jsonSchemas": [
|
|
2457
|
+
"panelInputRequest",
|
|
2458
|
+
"panelInputResult"
|
|
2459
|
+
],
|
|
2460
|
+
"notes": [
|
|
2461
|
+
"Input is sent exactly as provided. Include `\\n` or `\\r` when the terminal should receive Enter.",
|
|
2462
|
+
"After sending input, validate with `runpane panels output --panel <panel-id> --json` before reporting success.",
|
|
2463
|
+
"Runpane records action metadata and errors for observability, but should not log full input text by default."
|
|
1789
2464
|
]
|
|
1790
2465
|
}
|
|
1791
2466
|
},
|
|
@@ -1796,10 +2471,17 @@ exports.RUNPANE_CONTRACT = {
|
|
|
1796
2471
|
"",
|
|
1797
2472
|
"Use `runpane agent-context` for a brief Pane command schema. Use `runpane agent-context --command \"panes create\"` or another command name for the detailed schema only when needed.",
|
|
1798
2473
|
"",
|
|
2474
|
+
"After creating panes or sending terminal input, validate with bounded panel output before reporting success.",
|
|
2475
|
+
"",
|
|
1799
2476
|
"Common commands:",
|
|
1800
2477
|
"- `runpane repos list --json`",
|
|
1801
2478
|
"- `runpane repos add --path <repo> --yes --json`",
|
|
1802
|
-
"- `runpane panes create --repo active --name <name> --agent codex --prompt \"<task>\" --yes`"
|
|
2479
|
+
"- `runpane panes create --repo active --name <name> --agent codex --prompt \"<task>\" --yes`",
|
|
2480
|
+
"- `runpane panels list --pane <pane-id> --json`",
|
|
2481
|
+
"- `runpane panels output --panel <panel-id> --limit 200 --json`",
|
|
2482
|
+
"- `runpane panels input --panel <panel-id> --text \"<input>\" --yes`",
|
|
2483
|
+
"",
|
|
2484
|
+
"WSL note: if `runpane repos list` cannot find `/tmp/pane-daemon.../daemon.sock`, Pane may be running on Windows. Try `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`, then create panes through the same PowerShell form using the saved WSL repo name or id."
|
|
1803
2485
|
]
|
|
1804
2486
|
}
|
|
1805
2487
|
};
|