runpane 2.4.105 → 2.4.106

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.
@@ -394,6 +394,91 @@ exports.RUNPANE_CONTRACT = {
394
394
  "jsonSchemas": [
395
395
  "panelWaitResult"
396
396
  ]
397
+ },
398
+ {
399
+ "name": "sessions list",
400
+ "summary": "List durable named orchestration Sessions.",
401
+ "usage": [
402
+ "runpane sessions list [--json] [--pane-dir <path>]"
403
+ ],
404
+ "jsonSchemas": [
405
+ "sessionListResult"
406
+ ]
407
+ },
408
+ {
409
+ "name": "sessions create",
410
+ "summary": "Create a durable named orchestration Session and its hidden terminal owner.",
411
+ "usage": [
412
+ "runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]"
413
+ ],
414
+ "mutates": true,
415
+ "jsonSchemas": [
416
+ "sessionResult"
417
+ ]
418
+ },
419
+ {
420
+ "name": "sessions get",
421
+ "summary": "Read one durable named orchestration Session.",
422
+ "usage": [
423
+ "runpane sessions get --session <id|name> [--json] [--pane-dir <path>]"
424
+ ],
425
+ "jsonSchemas": [
426
+ "sessionResult"
427
+ ]
428
+ },
429
+ {
430
+ "name": "sessions update",
431
+ "summary": "Update a Session overview from structured JSON.",
432
+ "usage": [
433
+ "runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]"
434
+ ],
435
+ "mutates": true,
436
+ "jsonSchemas": [
437
+ "sessionResult"
438
+ ]
439
+ },
440
+ {
441
+ "name": "sessions set-agent",
442
+ "summary": "Switch the durable terminal agent for a named Session.",
443
+ "usage": [
444
+ "runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]"
445
+ ],
446
+ "mutates": true,
447
+ "jsonSchemas": [
448
+ "sessionResult"
449
+ ]
450
+ },
451
+ {
452
+ "name": "sessions associate",
453
+ "summary": "Associate a user-visible Pane with a named Session.",
454
+ "usage": [
455
+ "runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]"
456
+ ],
457
+ "mutates": true,
458
+ "jsonSchemas": [
459
+ "sessionResult"
460
+ ]
461
+ },
462
+ {
463
+ "name": "sessions detach",
464
+ "summary": "Detach a Pane from a named Session.",
465
+ "usage": [
466
+ "runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]"
467
+ ],
468
+ "mutates": true,
469
+ "jsonSchemas": [
470
+ "sessionResult"
471
+ ]
472
+ },
473
+ {
474
+ "name": "sessions overview",
475
+ "summary": "Read a live status, activity, git, and pull request overview for a named Session.",
476
+ "usage": [
477
+ "runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]"
478
+ ],
479
+ "jsonSchemas": [
480
+ "sessionOverviewResult"
481
+ ]
397
482
  }
398
483
  ],
399
484
  "flags": {
@@ -567,7 +652,7 @@ exports.RUNPANE_CONTRACT = {
567
652
  {
568
653
  "name": "--from-json",
569
654
  "value": "<path|->",
570
- "description": "Read a full panes.create request JSON payload from a file or stdin."
655
+ "description": "Read a structured JSON request payload from a file or stdin."
571
656
  },
572
657
  {
573
658
  "name": "--timeout-ms",
@@ -688,6 +773,11 @@ exports.RUNPANE_CONTRACT = {
688
773
  "name": "--body-file",
689
774
  "value": "<path|->",
690
775
  "description": "Read diagnostic report evidence from a file or stdin."
776
+ },
777
+ {
778
+ "name": "--session",
779
+ "value": "<id|name>",
780
+ "description": "Named orchestration Session id or exact name."
691
781
  }
692
782
  ],
693
783
  "localBoolean": [
@@ -781,6 +871,14 @@ exports.RUNPANE_CONTRACT = {
781
871
  " runpane agents doctor --agent <codex|claude|cursor> [--repo <selector>] [--json]",
782
872
  " runpane repos list [--json]",
783
873
  " runpane repos add --path <path> [--name <name>]",
874
+ " runpane sessions list [--json] [--pane-dir <path>]",
875
+ " runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]",
876
+ " runpane sessions get --session <id|name> [--json] [--pane-dir <path>]",
877
+ " runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]",
878
+ " runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]",
879
+ " runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]",
880
+ " runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]",
881
+ " runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]",
784
882
  " runpane panes list [--repo <selector>] [--json]",
785
883
  " runpane panes cost [--repo <selector>] [--pane <pane-id>] [--json]",
786
884
  " runpane workspace state [--repo <selector>] [--json]",
@@ -1286,6 +1384,100 @@ exports.RUNPANE_CONTRACT = {
1286
1384
  " --strategy <strategy> Defaults to auto; Codex sends Ctrl+Enter and other panels send Enter.",
1287
1385
  " --yes Skip confirmation prompts.",
1288
1386
  " --json Print JSON output."
1387
+ ],
1388
+ "sessions list": [
1389
+ "Usage:",
1390
+ "runpane sessions list [--json] [--pane-dir <path>]",
1391
+ "",
1392
+ "Options:",
1393
+ " --session <id|name> Named Session id or exact name.",
1394
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1395
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1396
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1397
+ " --json Print JSON output."
1398
+ ],
1399
+ "sessions create": [
1400
+ "Usage:",
1401
+ "runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]",
1402
+ "",
1403
+ "Options:",
1404
+ " --session <id|name> Named Session id or exact name.",
1405
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1406
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1407
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1408
+ " --json Print JSON output."
1409
+ ],
1410
+ "sessions get": [
1411
+ "Usage:",
1412
+ "runpane sessions get --session <id|name> [--json] [--pane-dir <path>]",
1413
+ "",
1414
+ "Options:",
1415
+ " --session <id|name> Named Session id or exact name.",
1416
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1417
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1418
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1419
+ " --json Print JSON output."
1420
+ ],
1421
+ "sessions update": [
1422
+ "Usage:",
1423
+ "runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]",
1424
+ "",
1425
+ "Options:",
1426
+ " --session <id|name> Named Session id or exact name.",
1427
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1428
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1429
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1430
+ " --json Print JSON output."
1431
+ ],
1432
+ "sessions set-agent": [
1433
+ "Usage:",
1434
+ "runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]",
1435
+ "",
1436
+ "Options:",
1437
+ " --session <id|name> Named Session id or exact name.",
1438
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1439
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1440
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1441
+ " --json Print JSON output."
1442
+ ],
1443
+ "sessions associate": [
1444
+ "Usage:",
1445
+ "runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]",
1446
+ "",
1447
+ "Options:",
1448
+ " --session <id|name> Named Session id or exact name.",
1449
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1450
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1451
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1452
+ " --json Print JSON output."
1453
+ ],
1454
+ "sessions detach": [
1455
+ "Usage:",
1456
+ "runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]",
1457
+ "",
1458
+ "Options:",
1459
+ " --session <id|name> Named Session id or exact name.",
1460
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1461
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1462
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1463
+ " --json Print JSON output."
1464
+ ],
1465
+ "sessions overview": [
1466
+ "Usage:",
1467
+ "runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]",
1468
+ "",
1469
+ "Options:",
1470
+ " --session <id|name> Named Session id or exact name.",
1471
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
1472
+ " --pane <pane-id> User-visible Pane to associate or detach.",
1473
+ " --agent <codex|claude|cursor> Agent terminal to use.",
1474
+ " --json Print JSON output."
1475
+ ],
1476
+ "sessions": [
1477
+ "Usage:",
1478
+ " runpane sessions <list|create|get|update|set-agent|associate|detach|overview> [options]",
1479
+ "",
1480
+ "Use a named Session to keep context, activity, and evidence attached to one orchestration thread."
1289
1481
  ]
1290
1482
  },
1291
1483
  "pip": {
@@ -1797,6 +1989,100 @@ exports.RUNPANE_CONTRACT = {
1797
1989
  " --strategy <strategy> Defaults to auto; Codex sends Ctrl+Enter and other panels send Enter.",
1798
1990
  " --yes Skip confirmation prompts.",
1799
1991
  " --json Print JSON output."
1992
+ ],
1993
+ "sessions list": [
1994
+ "Usage:",
1995
+ "python -m runpane sessions list [--json] [--pane-dir <path>]",
1996
+ "",
1997
+ "Options:",
1998
+ " --session <id|name> Named Session id or exact name.",
1999
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2000
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2001
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2002
+ " --json Print JSON output."
2003
+ ],
2004
+ "sessions create": [
2005
+ "Usage:",
2006
+ "python -m runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]",
2007
+ "",
2008
+ "Options:",
2009
+ " --session <id|name> Named Session id or exact name.",
2010
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2011
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2012
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2013
+ " --json Print JSON output."
2014
+ ],
2015
+ "sessions get": [
2016
+ "Usage:",
2017
+ "python -m runpane sessions get --session <id|name> [--json] [--pane-dir <path>]",
2018
+ "",
2019
+ "Options:",
2020
+ " --session <id|name> Named Session id or exact name.",
2021
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2022
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2023
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2024
+ " --json Print JSON output."
2025
+ ],
2026
+ "sessions update": [
2027
+ "Usage:",
2028
+ "python -m runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]",
2029
+ "",
2030
+ "Options:",
2031
+ " --session <id|name> Named Session id or exact name.",
2032
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2033
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2034
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2035
+ " --json Print JSON output."
2036
+ ],
2037
+ "sessions set-agent": [
2038
+ "Usage:",
2039
+ "python -m runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]",
2040
+ "",
2041
+ "Options:",
2042
+ " --session <id|name> Named Session id or exact name.",
2043
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2044
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2045
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2046
+ " --json Print JSON output."
2047
+ ],
2048
+ "sessions associate": [
2049
+ "Usage:",
2050
+ "python -m runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]",
2051
+ "",
2052
+ "Options:",
2053
+ " --session <id|name> Named Session id or exact name.",
2054
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2055
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2056
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2057
+ " --json Print JSON output."
2058
+ ],
2059
+ "sessions detach": [
2060
+ "Usage:",
2061
+ "python -m runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]",
2062
+ "",
2063
+ "Options:",
2064
+ " --session <id|name> Named Session id or exact name.",
2065
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2066
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2067
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2068
+ " --json Print JSON output."
2069
+ ],
2070
+ "sessions overview": [
2071
+ "Usage:",
2072
+ "python -m runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]",
2073
+ "",
2074
+ "Options:",
2075
+ " --session <id|name> Named Session id or exact name.",
2076
+ " --from-json <path|-> Read structured JSON from a file or stdin.",
2077
+ " --pane <pane-id> User-visible Pane to associate or detach.",
2078
+ " --agent <codex|claude|cursor> Agent terminal to use.",
2079
+ " --json Print JSON output."
2080
+ ],
2081
+ "sessions": [
2082
+ "Usage:",
2083
+ " runpane sessions <list|create|get|update|set-agent|associate|detach|overview> [options]",
2084
+ "",
2085
+ "Use a named Session to keep context, activity, and evidence attached to one orchestration thread."
1800
2086
  ]
1801
2087
  }
1802
2088
  },
@@ -1880,6 +2166,14 @@ exports.RUNPANE_CONTRACT = {
1880
2166
  "runpane watch --self-test",
1881
2167
  "runpane watch --follow",
1882
2168
  "runpane watch --follow --kinds agent.ready,agent.blocked,agent.idle,panel.exited,pane.gone --settle 180000 --blocked-settle 30000 --min-interval 600000 --idle-backoff",
2169
+ "runpane sessions list [--json] [--pane-dir <path>]",
2170
+ "runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]",
2171
+ "runpane sessions get --session <id|name> [--json] [--pane-dir <path>]",
2172
+ "runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]",
2173
+ "runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]",
2174
+ "runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]",
2175
+ "runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]",
2176
+ "runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]",
1883
2177
  "runpane help",
1884
2178
  "runpane <command> --help"
1885
2179
  ],
@@ -1909,7 +2203,15 @@ exports.RUNPANE_CONTRACT = {
1909
2203
  "`runpane panes create --prompt` is an alias for `--initial-input`; request JSON and daemon payloads should use the canonical `initialInput` field.",
1910
2204
  "If composer submission cannot be verified without risking a duplicate, the create item is unsuccessful with `initialInput.staged`, `initialInput.attempts`, `initialInput.blocked.kind: submission_unverified`, and an actionable `nextCommand`. The CLI-facing `--prompt` alias maps to this canonical `initialInput` result.",
1911
2205
  "When running from WSL while Pane is installed on Windows, the Linux wrapper may look for a missing `/tmp/pane-daemon.../daemon.sock` or resolve to a Windows shim such as Volta. In that case invoke the Windows wrapper through PowerShell from a Windows cwd, for example `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane repos list --json'`.",
1912
- "`runpane watch` waits for workspace transitions from the daemon journal without polling. `--follow` keeps waiting and prints one line per event: READY, BLOCKED, IDLE, STUCK, NEW, GONE, EXIT, plus HEARTBEAT every 60 seconds as proof of life. Defaults are responsive: no settle, no batching, all kinds, IDLE every `--idle-after`. Expensive consumers opt into `--kinds` (drop `agent.busy`; BUSY carries no action), `--settle <ms>` (READY only after a quiet window; a BUSY inside it cancels the line), `--blocked-settle <ms>`, `--min-interval <ms>` (batch non-urgent lines; BLOCKED bypasses it), and `--idle-backoff` (10m, 30m, 1h, 3h, then daily). The recommended orchestrator invocation is `runpane watch --follow --kinds agent.ready,agent.blocked,agent.idle,panel.exited,pane.gone --settle 180000 --blocked-settle 30000 --min-interval 600000 --idle-backoff`, which budgets about 6 wake-ups per active pane per hour worst case, usually 1-3. Pane Chat arms it automatically through its skill; only your own scripts need the flags. STUCK means real unsubmitted composer text, never an agent prompt suggestion. Judge a dead watch by a non-zero exit or a WATCH ERROR line, not by silence."
2206
+ "`runpane watch` waits for workspace transitions from the daemon journal without polling. `--follow` keeps waiting and prints one line per event: READY, BLOCKED, IDLE, STUCK, NEW, GONE, EXIT, plus HEARTBEAT every 60 seconds as proof of life. Defaults are responsive: no settle, no batching, all kinds, IDLE every `--idle-after`. Expensive consumers opt into `--kinds` (drop `agent.busy`; BUSY carries no action), `--settle <ms>` (READY only after a quiet window; a BUSY inside it cancels the line), `--blocked-settle <ms>`, `--min-interval <ms>` (batch non-urgent lines; BLOCKED bypasses it), and `--idle-backoff` (10m, 30m, 1h, 3h, then daily). The recommended orchestrator invocation is `runpane watch --follow --kinds agent.ready,agent.blocked,agent.idle,panel.exited,pane.gone --settle 180000 --blocked-settle 30000 --min-interval 600000 --idle-backoff`, which budgets about 6 wake-ups per active pane per hour worst case, usually 1-3. Pane Chat arms it automatically through its skill; only your own scripts need the flags. STUCK means real unsubmitted composer text, never an agent prompt suggestion. Judge a dead watch by a non-zero exit or a WATCH ERROR line, not by silence.",
2207
+ "`sessions list` list durable named orchestration Sessions.",
2208
+ "`sessions create` create a durable named orchestration Session and its hidden terminal owner.",
2209
+ "`sessions get` read one durable named orchestration Session.",
2210
+ "`sessions update` update a Session overview from structured JSON.",
2211
+ "`sessions set-agent` switch the durable terminal agent for a named Session.",
2212
+ "`sessions associate` associate a user-visible Pane with a named Session.",
2213
+ "`sessions detach` detach a Pane from a named Session.",
2214
+ "`sessions overview` read a live status, activity, git, and pull request overview for a named Session."
1913
2215
  ],
1914
2216
  "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.",
1915
2217
  "localControlFlagNote": "`runpane doctor --json`, `runpane repos list`, `runpane panes ...`, and `runpane panels ...` commands use or describe the local framed daemon socket/pipe for a running Pane app. `--pane-dir` points the wrapper at a non-default Pane data directory, such as `PANE_DIR=~/.pane_test` in development. `runpane agent-context` is local/offline and can be used before Pane is running. In a Pane repository checkout, if `runpane` is not on PATH, use the built local wrapper with Node 22, for example `PATH=/opt/homebrew/opt/node@22/bin:$PATH node packages/runpane/dist/cli.js doctor --json`. From WSL, if the user runs Windows Pane, call the Windows wrapper through `powershell.exe -NoProfile -Command 'Set-Location $env:TEMP; runpane ...'` so the command can reach the Windows named-pipe daemon and avoid UNC cwd issues.",
@@ -2291,6 +2593,26 @@ exports.RUNPANE_CONTRACT = {
2291
2593
  "auto",
2292
2594
  "--yes",
2293
2595
  "--json"
2596
+ ],
2597
+ [
2598
+ "sessions",
2599
+ "list",
2600
+ "--json"
2601
+ ],
2602
+ [
2603
+ "sessions",
2604
+ "get",
2605
+ "--session",
2606
+ "demo",
2607
+ "--json"
2608
+ ],
2609
+ [
2610
+ "sessions",
2611
+ "update",
2612
+ "--session",
2613
+ "demo",
2614
+ "--from-json",
2615
+ "-"
2294
2616
  ]
2295
2617
  ],
2296
2618
  "topLevelHelpIncludes": [
@@ -5368,6 +5690,82 @@ exports.RUNPANE_CONTRACT = {
5368
5690
  }
5369
5691
  },
5370
5692
  "additionalProperties": false
5693
+ },
5694
+ "sessionListResult": {
5695
+ "type": "object",
5696
+ "required": [
5697
+ "ok",
5698
+ "sessions"
5699
+ ],
5700
+ "properties": {
5701
+ "ok": {
5702
+ "const": true
5703
+ },
5704
+ "sessions": {
5705
+ "type": "array",
5706
+ "items": {
5707
+ "type": "object"
5708
+ }
5709
+ },
5710
+ "selectedSessionId": {
5711
+ "type": "string"
5712
+ }
5713
+ },
5714
+ "additionalProperties": false
5715
+ },
5716
+ "sessionResult": {
5717
+ "type": "object",
5718
+ "required": [
5719
+ "ok",
5720
+ "session"
5721
+ ],
5722
+ "properties": {
5723
+ "ok": {
5724
+ "const": true
5725
+ },
5726
+ "session": {
5727
+ "type": "object"
5728
+ },
5729
+ "panelId": {
5730
+ "type": "string"
5731
+ },
5732
+ "internalSessionId": {
5733
+ "type": "string"
5734
+ }
5735
+ },
5736
+ "additionalProperties": false
5737
+ },
5738
+ "sessionOverviewResult": {
5739
+ "type": "object",
5740
+ "required": [
5741
+ "ok",
5742
+ "session",
5743
+ "status",
5744
+ "panes",
5745
+ "activity",
5746
+ "refreshedAt"
5747
+ ],
5748
+ "properties": {
5749
+ "ok": {
5750
+ "const": true
5751
+ },
5752
+ "session": {
5753
+ "type": "object"
5754
+ },
5755
+ "status": {
5756
+ "type": "string"
5757
+ },
5758
+ "panes": {
5759
+ "type": "array"
5760
+ },
5761
+ "activity": {
5762
+ "type": "array"
5763
+ },
5764
+ "refreshedAt": {
5765
+ "type": "string"
5766
+ }
5767
+ },
5768
+ "additionalProperties": false
5371
5769
  }
5372
5770
  },
5373
5771
  "agentContext": {
@@ -7155,6 +7553,126 @@ exports.RUNPANE_CONTRACT = {
7155
7553
  "Journal loss is surfaced through reset and dropped metadata.",
7156
7554
  "The daemon treats omitted idleAfterMs as disabled so older clients never receive agent.idle unexpectedly."
7157
7555
  ]
7556
+ },
7557
+ "sessions list": {
7558
+ "name": "sessions list",
7559
+ "summary": "List durable named orchestration Sessions.",
7560
+ "details": "List durable named orchestration Sessions.",
7561
+ "requiresPaneDaemon": true,
7562
+ "mutates": false,
7563
+ "arguments": [],
7564
+ "examples": [
7565
+ "runpane sessions list [--json] [--pane-dir <path>]"
7566
+ ],
7567
+ "jsonSchemas": [
7568
+ "sessionListResult"
7569
+ ],
7570
+ "notes": []
7571
+ },
7572
+ "sessions create": {
7573
+ "name": "sessions create",
7574
+ "summary": "Create a durable named orchestration Session and its hidden terminal owner.",
7575
+ "details": "Create a durable named orchestration Session and its hidden terminal owner.",
7576
+ "requiresPaneDaemon": true,
7577
+ "mutates": true,
7578
+ "arguments": [],
7579
+ "examples": [
7580
+ "runpane sessions create --from-json <path|-> [--json] [--pane-dir <path>]"
7581
+ ],
7582
+ "jsonSchemas": [
7583
+ "sessionResult"
7584
+ ],
7585
+ "notes": []
7586
+ },
7587
+ "sessions get": {
7588
+ "name": "sessions get",
7589
+ "summary": "Read one durable named orchestration Session.",
7590
+ "details": "Read one durable named orchestration Session.",
7591
+ "requiresPaneDaemon": true,
7592
+ "mutates": false,
7593
+ "arguments": [],
7594
+ "examples": [
7595
+ "runpane sessions get --session <id|name> [--json] [--pane-dir <path>]"
7596
+ ],
7597
+ "jsonSchemas": [
7598
+ "sessionResult"
7599
+ ],
7600
+ "notes": []
7601
+ },
7602
+ "sessions update": {
7603
+ "name": "sessions update",
7604
+ "summary": "Update a Session overview from structured JSON.",
7605
+ "details": "Update a Session overview from structured JSON.",
7606
+ "requiresPaneDaemon": true,
7607
+ "mutates": true,
7608
+ "arguments": [],
7609
+ "examples": [
7610
+ "runpane sessions update --session <id|name> --from-json <path|-> [--json] [--pane-dir <path>]"
7611
+ ],
7612
+ "jsonSchemas": [
7613
+ "sessionResult"
7614
+ ],
7615
+ "notes": []
7616
+ },
7617
+ "sessions set-agent": {
7618
+ "name": "sessions set-agent",
7619
+ "summary": "Switch the durable terminal agent for a named Session.",
7620
+ "details": "Switch the durable terminal agent for a named Session.",
7621
+ "requiresPaneDaemon": true,
7622
+ "mutates": true,
7623
+ "arguments": [],
7624
+ "examples": [
7625
+ "runpane sessions set-agent --session <id|name> --agent <codex|claude|cursor> [--json] [--pane-dir <path>]"
7626
+ ],
7627
+ "jsonSchemas": [
7628
+ "sessionResult"
7629
+ ],
7630
+ "notes": []
7631
+ },
7632
+ "sessions associate": {
7633
+ "name": "sessions associate",
7634
+ "summary": "Associate a user-visible Pane with a named Session.",
7635
+ "details": "Associate a user-visible Pane with a named Session.",
7636
+ "requiresPaneDaemon": true,
7637
+ "mutates": true,
7638
+ "arguments": [],
7639
+ "examples": [
7640
+ "runpane sessions associate --session <id|name> --pane <pane-id> [--json] [--pane-dir <path>]"
7641
+ ],
7642
+ "jsonSchemas": [
7643
+ "sessionResult"
7644
+ ],
7645
+ "notes": []
7646
+ },
7647
+ "sessions detach": {
7648
+ "name": "sessions detach",
7649
+ "summary": "Detach a Pane from a named Session.",
7650
+ "details": "Detach a Pane from a named Session.",
7651
+ "requiresPaneDaemon": true,
7652
+ "mutates": true,
7653
+ "arguments": [],
7654
+ "examples": [
7655
+ "runpane sessions detach --session <id|name> [--pane <pane-id>] [--json] [--pane-dir <path>]"
7656
+ ],
7657
+ "jsonSchemas": [
7658
+ "sessionResult"
7659
+ ],
7660
+ "notes": []
7661
+ },
7662
+ "sessions overview": {
7663
+ "name": "sessions overview",
7664
+ "summary": "Read a live status, activity, git, and pull request overview for a named Session.",
7665
+ "details": "Read a live status, activity, git, and pull request overview for a named Session.",
7666
+ "requiresPaneDaemon": true,
7667
+ "mutates": false,
7668
+ "arguments": [],
7669
+ "examples": [
7670
+ "runpane sessions overview --session <id|name> [--json] [--pane-dir <path>]"
7671
+ ],
7672
+ "jsonSchemas": [
7673
+ "sessionOverviewResult"
7674
+ ],
7675
+ "notes": []
7158
7676
  }
7159
7677
  },
7160
7678
  "managedBlock": [