@band-app/server 0.60.1 → 0.62.0

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.
Files changed (79) hide show
  1. package/dist/client/_shell.html +0 -0
  2. package/dist/client/assets/{TerminalPanel-C2ewe-bN.js → TerminalPanel-BSoEhxDz.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-Dfft9U2Y.js → _basePickBy-flXHbUr5.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-VT-Fvpwa.js → _baseUniq-C6HjlfAT.js} +1 -1
  5. package/dist/client/assets/arc-IMqCp1_Q.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-CEeXYnM1.js → architectureDiagram-VXUJARFQ-s3hpI-N5.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-D8t34_qE.js → blockDiagram-VD42YOAC-D25jEB0O.js} +5 -5
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-Bac4BHFl.js → c4Diagram-YG6GDRKO-Cp7v6wT7.js} +1 -1
  9. package/dist/client/assets/channel-5N_gBPEZ.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-8OgHJjso.js → chunk-4BX2VUAB-CwHCUu6F.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-1q6zldbT.js → chunk-55IACEB6-4U0szOXp.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-CyB0YChj.js → chunk-B4BG7PRW-ZMDsrF2O.js} +3 -3
  13. package/dist/client/assets/{chunk-DI55MBZ5-CbH2Vi7l.js → chunk-DI55MBZ5-DqE_J00w.js} +3 -3
  14. package/dist/client/assets/{chunk-FMBD7UC4-DChsRBYo.js → chunk-FMBD7UC4-DMzLcggg.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-CCiqRxGJ.js → chunk-QN33PNHL-B-8xAZZO.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-DSknJcWz.js → chunk-QZHKN3VN-7wV7oDHh.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-Dntdjhjx.js → chunk-TZMSLE5B-BSkWGCYw.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-VUMu4iOR.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-VUMu4iOR.js +1 -0
  20. package/dist/client/assets/clone-BBoNEWpB.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-Dpk2C2KC.js → cose-bilkent-S5V4N54A-Be9kGUez.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-BxmsX_AF.js → dagre-6UL2VRFP-BhZxhwOg.js} +2 -2
  23. package/dist/client/assets/{diagram-PSM6KHXK-Cese24hg.js → diagram-PSM6KHXK-Bfstj6Ah.js} +2 -2
  24. package/dist/client/assets/{diagram-QEK2KX5R-Lux1tuP-.js → diagram-QEK2KX5R-9jXKNjkE.js} +2 -2
  25. package/dist/client/assets/{diagram-S2PKOQOG-Da29vVFh.js → diagram-S2PKOQOG-Dnr9hwit.js} +2 -2
  26. package/dist/client/assets/embed.editor-C67S6sxc.js +1 -0
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-COz-Bxty.js → erDiagram-Q2GNP2WA-DBXM3tR4.js} +4 -4
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-2AOhgtfg.js → flowDiagram-NV44I4VS-DchrJMYT.js} +9 -9
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-CvaV3At7.js → ganttDiagram-JELNMOA3-44d256ou.js} +4 -4
  30. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-C4dZ8OEf.js +65 -0
  31. package/dist/client/assets/{graph-BkqeF57r.js → graph-CKSqKa3V.js} +1 -1
  32. package/dist/client/assets/highlighted-body-B3W2YXNL-iJ0n9moH.js +1 -0
  33. package/dist/client/assets/{index-Bh02-TAC.js → index-BJDdav3u.js} +1 -1
  34. package/dist/client/assets/{index-Cunx_dNp.js → index-BSKjehZG.js} +1 -1
  35. package/dist/client/assets/{index-B5-KuoCn.js → index-BoD4KhCM.js} +1 -1
  36. package/dist/client/assets/{index-Cg0ZZSF_.js → index-BoJ0VKp8.js} +1 -1
  37. package/dist/client/assets/index-CAWPICHC.js +7 -0
  38. package/dist/client/assets/{index-GqTH-hCs.js → index-CLnDHj2K.js} +1 -1
  39. package/dist/client/assets/{index-By0VjYTD.js → index-CNfphPmD.js} +1 -1
  40. package/dist/client/assets/{index-1IWusiUu.js → index-CytPno-M.js} +1 -1
  41. package/dist/client/assets/{index-oW3oul3c.js → index-D0gWMWGu.js} +1 -1
  42. package/dist/client/assets/{index-CjIZcCsd.js → index-DxPJgOXr.js} +1 -1
  43. package/dist/client/assets/{index-BERL9iqq.js → index-c48BFEgq.js} +1 -1
  44. package/dist/client/assets/index-giqlDiHK.js +1 -0
  45. package/dist/client/assets/{index-CrWN-rZL.js → index-tPjfUSfH.js} +1 -1
  46. package/dist/client/assets/{infoDiagram-HS3SLOUP-B_qM6pDv.js → infoDiagram-HS3SLOUP-BF89Xtgs.js} +1 -1
  47. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DTM3hwpa.js → journeyDiagram-XKPGCS4Q-9dAHYpp2.js} +5 -5
  48. package/dist/client/assets/{kanban-definition-3W4ZIXB7-B-SYRVBz.js → kanban-definition-3W4ZIXB7-DINjAwOB.js} +6 -6
  49. package/dist/client/assets/{layout-BKMHlUnr.js → layout-ClpN20YT.js} +1 -1
  50. package/dist/client/assets/{main-DFazIJQl.js → main-CuvJyYh5.js} +308 -302
  51. package/dist/client/assets/main-DMSfbQvZ.css +1 -0
  52. package/dist/client/assets/{mindmap-definition-VGOIOE7T-Dt3thgpD.js → mindmap-definition-VGOIOE7T-9atB1-Bj.js} +4 -4
  53. package/dist/client/assets/{pieDiagram-ADFJNKIX-5PIGWxue.js → pieDiagram-ADFJNKIX-g4ZSFWhY.js} +3 -3
  54. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-4zkd2IVs.js → quadrantDiagram-AYHSOK5B-DB_hdBd_.js} +1 -1
  55. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DjXgbXXX.js → requirementDiagram-UZGBJVZJ-VvcaI8Pr.js} +1 -1
  56. package/dist/client/assets/sankeyDiagram-TZEHDZUN-CrC61-57.js +10 -0
  57. package/dist/client/assets/{sequenceDiagram-WL72ISMW-gEn86t4_.js → sequenceDiagram-WL72ISMW-Kf4V2R4T.js} +6 -6
  58. package/dist/client/assets/{stateDiagram-FKZM4ZOC-BKnMRzie.js → stateDiagram-FKZM4ZOC-DKLNGjqC.js} +1 -1
  59. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BRcI4opp.js +1 -0
  60. package/dist/client/assets/{timeline-definition-IT6M3QCI-CZWSQmlt.js → timeline-definition-IT6M3QCI-DX-CRFXD.js} +2 -2
  61. package/dist/client/assets/{treemap-GDKQZRPO-BL3I0InS.js → treemap-GDKQZRPO-Bk-LiV_c.js} +1 -1
  62. package/dist/client/assets/{worktree._worktreeId-BdiLGtrz.js → worktree._worktreeId-Cd6BJ4nq.js} +1 -1
  63. package/dist/client/assets/{worktree._worktreeId-DbLgzjwP.js → worktree._worktreeId-UggSgom-.js} +1 -1
  64. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CcsXglTm.js → xychartDiagram-PRI3JC2R-BS7d95b1.js} +1 -1
  65. package/dist/openapi.json +2096 -404
  66. package/dist/start-server.mjs +5998 -4086
  67. package/package.json +11 -12
  68. package/dist/client/assets/arc-IQNCYyHi.js +0 -1
  69. package/dist/client/assets/channel-CFIprjUA.js +0 -1
  70. package/dist/client/assets/classDiagram-2ON5EDUG-BZeh-LMx.js +0 -1
  71. package/dist/client/assets/classDiagram-v2-WZHVMYZB-BZeh-LMx.js +0 -1
  72. package/dist/client/assets/clone-DTnLV01L.js +0 -1
  73. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-KL6lDevE.js +0 -65
  74. package/dist/client/assets/highlighted-body-B3W2YXNL-BKvFJmoF.js +0 -1
  75. package/dist/client/assets/index-C6ii9XZB.js +0 -1
  76. package/dist/client/assets/index-elgH9x1b.js +0 -7
  77. package/dist/client/assets/main-CYIZgqYb.css +0 -1
  78. package/dist/client/assets/sankeyDiagram-TZEHDZUN-G9X9dJMl.js +0 -10
  79. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-Be9VMvTq.js +0 -1
package/dist/openapi.json CHANGED
@@ -700,12 +700,24 @@
700
700
  ],
701
701
  "description": "The command to run on the worker by hand, shown when the button cannot be."
702
702
  },
703
+ "capabilities": {
704
+ "type": "array",
705
+ "items": {
706
+ "type": "string"
707
+ }
708
+ },
703
709
  "sleepError": {
704
710
  "type": [
705
711
  "string",
706
712
  "null"
707
713
  ]
708
714
  },
715
+ "extensionServices": {
716
+ "type": "array",
717
+ "items": {
718
+ "$ref": "#/components/schemas/ExtensionServiceView"
719
+ }
720
+ },
709
721
  "id": {
710
722
  "type": "string"
711
723
  },
@@ -786,13 +798,6 @@
786
798
  },
787
799
  "description": "Directories the worker serves worktrees from."
788
800
  },
789
- "capabilities": {
790
- "type": "array",
791
- "items": {
792
- "type": "string"
793
- },
794
- "description": "What the worker can do: `git`, `gh`, `pty`, `acp` and so on."
795
- },
796
801
  "home": {
797
802
  "type": [
798
803
  "string",
@@ -833,7 +838,9 @@
833
838
  "canUpdate",
834
839
  "updateBlockedReason",
835
840
  "manualCommand",
841
+ "capabilities",
836
842
  "sleepError",
843
+ "extensionServices",
837
844
  "id",
838
845
  "name",
839
846
  "mode",
@@ -846,7 +853,6 @@
846
853
  "agents",
847
854
  "report",
848
855
  "roots",
849
- "capabilities",
850
856
  "home",
851
857
  "tools",
852
858
  "usable",
@@ -1014,6 +1020,25 @@
1014
1020
  "hubUpdate": {
1015
1021
  "type": "object",
1016
1022
  "properties": {
1023
+ "logTail": {
1024
+ "type": "string"
1025
+ },
1026
+ "lastRun": {
1027
+ "oneOf": [
1028
+ {
1029
+ "$ref": "#/components/schemas/HubUpdateLastRun"
1030
+ },
1031
+ {
1032
+ "type": "null"
1033
+ }
1034
+ ]
1035
+ },
1036
+ "builtInBlockedReason": {
1037
+ "type": [
1038
+ "string",
1039
+ "null"
1040
+ ]
1041
+ },
1017
1042
  "error": {
1018
1043
  "type": [
1019
1044
  "string",
@@ -1022,7 +1047,26 @@
1022
1047
  },
1023
1048
  "configured": {
1024
1049
  "type": "boolean",
1025
- "description": "Whether an admin has set a command."
1050
+ "description": "Whether an update can run: an admin's command is set, or the built-in updater works here."
1051
+ },
1052
+ "hasCommand": {
1053
+ "type": "boolean",
1054
+ "description": "An admin's command is set. It wins over the built-in updater."
1055
+ },
1056
+ "builtIn": {
1057
+ "type": "boolean",
1058
+ "description": "The hub can install and restart itself (npm install under systemd or launchd)."
1059
+ },
1060
+ "auto": {
1061
+ "type": "boolean",
1062
+ "description": "`hubUpdate.auto` is on."
1063
+ },
1064
+ "deferredSince": {
1065
+ "type": [
1066
+ "number",
1067
+ "null"
1068
+ ],
1069
+ "description": "When the automatic update started waiting for running turns, or null."
1026
1070
  },
1027
1071
  "state": {
1028
1072
  "type": "string",
@@ -1040,8 +1084,15 @@
1040
1084
  }
1041
1085
  },
1042
1086
  "required": [
1087
+ "logTail",
1088
+ "lastRun",
1089
+ "builtInBlockedReason",
1043
1090
  "error",
1044
1091
  "configured",
1092
+ "hasCommand",
1093
+ "builtIn",
1094
+ "auto",
1095
+ "deferredSince",
1045
1096
  "state",
1046
1097
  "target"
1047
1098
  ],
@@ -2147,12 +2198,24 @@
2147
2198
  ],
2148
2199
  "description": "The command to run on the worker by hand, shown when the button cannot be."
2149
2200
  },
2201
+ "capabilities": {
2202
+ "type": "array",
2203
+ "items": {
2204
+ "type": "string"
2205
+ }
2206
+ },
2150
2207
  "sleepError": {
2151
2208
  "type": [
2152
2209
  "string",
2153
2210
  "null"
2154
2211
  ]
2155
2212
  },
2213
+ "extensionServices": {
2214
+ "type": "array",
2215
+ "items": {
2216
+ "$ref": "#/components/schemas/ExtensionServiceView"
2217
+ }
2218
+ },
2156
2219
  "id": {
2157
2220
  "type": "string"
2158
2221
  },
@@ -2233,13 +2296,6 @@
2233
2296
  },
2234
2297
  "description": "Directories the worker serves worktrees from."
2235
2298
  },
2236
- "capabilities": {
2237
- "type": "array",
2238
- "items": {
2239
- "type": "string"
2240
- },
2241
- "description": "What the worker can do: `git`, `gh`, `pty`, `acp` and so on."
2242
- },
2243
2299
  "home": {
2244
2300
  "type": [
2245
2301
  "string",
@@ -2280,7 +2336,9 @@
2280
2336
  "canUpdate",
2281
2337
  "updateBlockedReason",
2282
2338
  "manualCommand",
2339
+ "capabilities",
2283
2340
  "sleepError",
2341
+ "extensionServices",
2284
2342
  "id",
2285
2343
  "name",
2286
2344
  "mode",
@@ -2293,7 +2351,6 @@
2293
2351
  "agents",
2294
2352
  "report",
2295
2353
  "roots",
2296
- "capabilities",
2297
2354
  "home",
2298
2355
  "tools",
2299
2356
  "usable",
@@ -2461,6 +2518,25 @@
2461
2518
  "hubUpdate": {
2462
2519
  "type": "object",
2463
2520
  "properties": {
2521
+ "logTail": {
2522
+ "type": "string"
2523
+ },
2524
+ "lastRun": {
2525
+ "oneOf": [
2526
+ {
2527
+ "$ref": "#/components/schemas/HubUpdateLastRun"
2528
+ },
2529
+ {
2530
+ "type": "null"
2531
+ }
2532
+ ]
2533
+ },
2534
+ "builtInBlockedReason": {
2535
+ "type": [
2536
+ "string",
2537
+ "null"
2538
+ ]
2539
+ },
2464
2540
  "error": {
2465
2541
  "type": [
2466
2542
  "string",
@@ -2469,7 +2545,26 @@
2469
2545
  },
2470
2546
  "configured": {
2471
2547
  "type": "boolean",
2472
- "description": "Whether an admin has set a command."
2548
+ "description": "Whether an update can run: an admin's command is set, or the built-in updater works here."
2549
+ },
2550
+ "hasCommand": {
2551
+ "type": "boolean",
2552
+ "description": "An admin's command is set. It wins over the built-in updater."
2553
+ },
2554
+ "builtIn": {
2555
+ "type": "boolean",
2556
+ "description": "The hub can install and restart itself (npm install under systemd or launchd)."
2557
+ },
2558
+ "auto": {
2559
+ "type": "boolean",
2560
+ "description": "`hubUpdate.auto` is on."
2561
+ },
2562
+ "deferredSince": {
2563
+ "type": [
2564
+ "number",
2565
+ "null"
2566
+ ],
2567
+ "description": "When the automatic update started waiting for running turns, or null."
2473
2568
  },
2474
2569
  "state": {
2475
2570
  "type": "string",
@@ -2487,8 +2582,15 @@
2487
2582
  }
2488
2583
  },
2489
2584
  "required": [
2585
+ "logTail",
2586
+ "lastRun",
2587
+ "builtInBlockedReason",
2490
2588
  "error",
2491
2589
  "configured",
2590
+ "hasCommand",
2591
+ "builtIn",
2592
+ "auto",
2593
+ "deferredSince",
2492
2594
  "state",
2493
2595
  "target"
2494
2596
  ],
@@ -8300,11 +8402,11 @@
8300
8402
  }
8301
8403
  }
8302
8404
  },
8303
- "/extensions.install": {
8405
+ "/editors.register": {
8304
8406
  "post": {
8305
- "operationId": "extensions.install",
8407
+ "operationId": "editors.register",
8306
8408
  "tags": [
8307
- "extensions"
8409
+ "editors"
8308
8410
  ],
8309
8411
  "responses": {
8310
8412
  "200": {
@@ -8320,78 +8422,13 @@
8320
8422
  "data": {
8321
8423
  "type": "object",
8322
8424
  "properties": {
8323
- "id": {
8324
- "type": "string"
8325
- },
8326
- "name": {
8327
- "type": "string"
8328
- },
8329
- "version": {
8330
- "type": "string"
8331
- },
8332
- "extensionApi": {
8333
- "type": "number",
8334
- "const": 1
8335
- },
8336
- "contributes": {
8337
- "type": "object",
8338
- "properties": {
8339
- "fileEditors": {
8340
- "type": "array",
8341
- "items": {
8342
- "type": "object",
8343
- "properties": {
8344
- "id": {
8345
- "type": "string"
8346
- },
8347
- "label": {
8348
- "type": "string"
8349
- },
8350
- "binary": {
8351
- "type": "boolean",
8352
- "description": "The editor reads and writes bytes, not text."
8353
- },
8354
- "selector": {
8355
- "type": "array",
8356
- "items": {
8357
- "type": "string"
8358
- }
8359
- },
8360
- "default": {
8361
- "type": "boolean"
8362
- },
8363
- "entry": {
8364
- "type": "string"
8365
- },
8366
- "tools": {
8367
- "type": "string",
8368
- "description": "The editor's `tools/list` answer, a JSON file in the folder."
8369
- }
8370
- },
8371
- "required": [
8372
- "id",
8373
- "label",
8374
- "binary",
8375
- "selector",
8376
- "default",
8377
- "entry"
8378
- ],
8379
- "additionalProperties": false
8380
- }
8381
- }
8382
- },
8383
- "required": [
8384
- "fileEditors"
8385
- ],
8386
- "additionalProperties": false
8425
+ "ok": {
8426
+ "type": "boolean",
8427
+ "const": true
8387
8428
  }
8388
8429
  },
8389
8430
  "required": [
8390
- "id",
8391
- "name",
8392
- "version",
8393
- "extensionApi",
8394
- "contributes"
8431
+ "ok"
8395
8432
  ],
8396
8433
  "additionalProperties": false
8397
8434
  }
@@ -8419,15 +8456,31 @@
8419
8456
  "schema": {
8420
8457
  "type": "object",
8421
8458
  "properties": {
8422
- "url": {
8459
+ "worktreeId": {
8423
8460
  "type": "string"
8424
8461
  },
8425
- "sha256": {
8462
+ "clientId": {
8463
+ "type": "string"
8464
+ },
8465
+ "file": {
8466
+ "type": "string"
8467
+ },
8468
+ "extensionId": {
8469
+ "type": "string"
8470
+ },
8471
+ "editorId": {
8426
8472
  "type": "string"
8473
+ },
8474
+ "dirty": {
8475
+ "type": "boolean"
8427
8476
  }
8428
8477
  },
8429
8478
  "required": [
8430
- "url"
8479
+ "worktreeId",
8480
+ "clientId",
8481
+ "file",
8482
+ "extensionId",
8483
+ "editorId"
8431
8484
  ],
8432
8485
  "additionalProperties": false
8433
8486
  }
@@ -8436,11 +8489,11 @@
8436
8489
  }
8437
8490
  }
8438
8491
  },
8439
- "/extensions.remove": {
8492
+ "/editors.unregister": {
8440
8493
  "post": {
8441
- "operationId": "extensions.remove",
8494
+ "operationId": "editors.unregister",
8442
8495
  "tags": [
8443
- "extensions"
8496
+ "editors"
8444
8497
  ],
8445
8498
  "responses": {
8446
8499
  "200": {
@@ -8490,12 +8543,24 @@
8490
8543
  "schema": {
8491
8544
  "type": "object",
8492
8545
  "properties": {
8493
- "id": {
8546
+ "worktreeId": {
8547
+ "type": "string"
8548
+ },
8549
+ "clientId": {
8550
+ "type": "string"
8551
+ },
8552
+ "file": {
8553
+ "type": "string"
8554
+ },
8555
+ "extensionId": {
8494
8556
  "type": "string"
8495
8557
  }
8496
8558
  },
8497
8559
  "required": [
8498
- "id"
8560
+ "worktreeId",
8561
+ "clientId",
8562
+ "file",
8563
+ "extensionId"
8499
8564
  ],
8500
8565
  "additionalProperties": false
8501
8566
  }
@@ -8504,11 +8569,11 @@
8504
8569
  }
8505
8570
  }
8506
8571
  },
8507
- "/extensions.list": {
8508
- "get": {
8509
- "operationId": "extensions.list",
8572
+ "/editors.result": {
8573
+ "post": {
8574
+ "operationId": "editors.result",
8510
8575
  "tags": [
8511
- "extensions"
8576
+ "editors"
8512
8577
  ],
8513
8578
  "responses": {
8514
8579
  "200": {
@@ -8522,7 +8587,16 @@
8522
8587
  "type": "object",
8523
8588
  "properties": {
8524
8589
  "data": {
8525
- "$ref": "#/components/schemas/ExtensionList"
8590
+ "type": "object",
8591
+ "properties": {
8592
+ "accepted": {
8593
+ "type": "boolean"
8594
+ }
8595
+ },
8596
+ "required": [
8597
+ "accepted"
8598
+ ],
8599
+ "additionalProperties": false
8526
8600
  }
8527
8601
  },
8528
8602
  "required": [
@@ -8540,14 +8614,42 @@
8540
8614
  "default": {
8541
8615
  "$ref": "#/components/responses/Error"
8542
8616
  }
8617
+ },
8618
+ "requestBody": {
8619
+ "required": true,
8620
+ "content": {
8621
+ "application/json": {
8622
+ "schema": {
8623
+ "type": "object",
8624
+ "properties": {
8625
+ "message": {
8626
+ "type": "object",
8627
+ "additionalProperties": {}
8628
+ },
8629
+ "clientId": {
8630
+ "type": "string"
8631
+ },
8632
+ "callId": {
8633
+ "type": "string"
8634
+ }
8635
+ },
8636
+ "required": [
8637
+ "message",
8638
+ "clientId",
8639
+ "callId"
8640
+ ],
8641
+ "additionalProperties": false
8642
+ }
8643
+ }
8644
+ }
8543
8645
  }
8544
8646
  }
8545
8647
  },
8546
- "/extensions.reload": {
8648
+ "/editors.setSelection": {
8547
8649
  "post": {
8548
- "operationId": "extensions.reload",
8650
+ "operationId": "editors.setSelection",
8549
8651
  "tags": [
8550
- "extensions"
8652
+ "editors"
8551
8653
  ],
8552
8654
  "responses": {
8553
8655
  "200": {
@@ -8561,7 +8663,1621 @@
8561
8663
  "type": "object",
8562
8664
  "properties": {
8563
8665
  "data": {
8564
- "$ref": "#/components/schemas/ExtensionList"
8666
+ "type": "object",
8667
+ "properties": {
8668
+ "ok": {
8669
+ "type": "boolean",
8670
+ "const": true
8671
+ }
8672
+ },
8673
+ "required": [
8674
+ "ok"
8675
+ ],
8676
+ "additionalProperties": false
8677
+ }
8678
+ },
8679
+ "required": [
8680
+ "data"
8681
+ ]
8682
+ }
8683
+ },
8684
+ "required": [
8685
+ "result"
8686
+ ]
8687
+ }
8688
+ }
8689
+ }
8690
+ },
8691
+ "default": {
8692
+ "$ref": "#/components/responses/Error"
8693
+ }
8694
+ },
8695
+ "requestBody": {
8696
+ "required": true,
8697
+ "content": {
8698
+ "application/json": {
8699
+ "schema": {
8700
+ "type": "object",
8701
+ "properties": {
8702
+ "worktreeId": {
8703
+ "type": "string"
8704
+ },
8705
+ "clientId": {
8706
+ "type": "string"
8707
+ },
8708
+ "file": {
8709
+ "type": "string"
8710
+ },
8711
+ "extensionId": {
8712
+ "type": "string"
8713
+ },
8714
+ "editorId": {
8715
+ "type": "string"
8716
+ },
8717
+ "selection": {
8718
+ "oneOf": [
8719
+ {
8720
+ "type": "object",
8721
+ "properties": {
8722
+ "label": {
8723
+ "type": "string"
8724
+ },
8725
+ "kind": {
8726
+ "type": "string"
8727
+ },
8728
+ "address": {
8729
+ "type": "string"
8730
+ },
8731
+ "text": {
8732
+ "type": "string"
8733
+ },
8734
+ "rect": {
8735
+ "type": "object",
8736
+ "properties": {
8737
+ "x": {
8738
+ "type": "number"
8739
+ },
8740
+ "y": {
8741
+ "type": "number"
8742
+ },
8743
+ "width": {
8744
+ "type": "number"
8745
+ },
8746
+ "height": {
8747
+ "type": "number"
8748
+ }
8749
+ },
8750
+ "required": [
8751
+ "x",
8752
+ "y",
8753
+ "width",
8754
+ "height"
8755
+ ],
8756
+ "additionalProperties": false
8757
+ }
8758
+ },
8759
+ "required": [
8760
+ "label",
8761
+ "kind",
8762
+ "address"
8763
+ ],
8764
+ "additionalProperties": false
8765
+ },
8766
+ {
8767
+ "type": "null"
8768
+ }
8769
+ ]
8770
+ }
8771
+ },
8772
+ "required": [
8773
+ "worktreeId",
8774
+ "clientId",
8775
+ "file",
8776
+ "extensionId",
8777
+ "editorId",
8778
+ "selection"
8779
+ ],
8780
+ "additionalProperties": false
8781
+ }
8782
+ }
8783
+ }
8784
+ }
8785
+ }
8786
+ },
8787
+ "/editors.selection": {
8788
+ "get": {
8789
+ "operationId": "editors.selection",
8790
+ "tags": [
8791
+ "editors"
8792
+ ],
8793
+ "responses": {
8794
+ "200": {
8795
+ "description": "Successful response",
8796
+ "content": {
8797
+ "application/json": {
8798
+ "schema": {
8799
+ "type": "object",
8800
+ "properties": {
8801
+ "result": {
8802
+ "type": "object",
8803
+ "properties": {
8804
+ "data": {
8805
+ "oneOf": [
8806
+ {
8807
+ "$ref": "#/components/schemas/SelectionState"
8808
+ },
8809
+ {
8810
+ "type": "null"
8811
+ }
8812
+ ]
8813
+ }
8814
+ },
8815
+ "required": [
8816
+ "data"
8817
+ ]
8818
+ }
8819
+ },
8820
+ "required": [
8821
+ "result"
8822
+ ]
8823
+ }
8824
+ }
8825
+ }
8826
+ },
8827
+ "default": {
8828
+ "$ref": "#/components/responses/Error"
8829
+ }
8830
+ },
8831
+ "parameters": [
8832
+ {
8833
+ "name": "input",
8834
+ "in": "query",
8835
+ "required": true,
8836
+ "style": "deepObject",
8837
+ "content": {
8838
+ "application/json": {
8839
+ "schema": {
8840
+ "type": "object",
8841
+ "properties": {
8842
+ "worktreeId": {
8843
+ "type": "string"
8844
+ }
8845
+ },
8846
+ "required": [
8847
+ "worktreeId"
8848
+ ],
8849
+ "additionalProperties": false
8850
+ }
8851
+ }
8852
+ }
8853
+ }
8854
+ ]
8855
+ }
8856
+ },
8857
+ "/extensions.catalog": {
8858
+ "get": {
8859
+ "operationId": "extensions.catalog",
8860
+ "tags": [
8861
+ "extensions"
8862
+ ],
8863
+ "responses": {
8864
+ "200": {
8865
+ "description": "Successful response",
8866
+ "content": {
8867
+ "application/json": {
8868
+ "schema": {
8869
+ "type": "object",
8870
+ "properties": {
8871
+ "result": {
8872
+ "type": "object",
8873
+ "properties": {
8874
+ "data": {
8875
+ "type": "object",
8876
+ "properties": {
8877
+ "available": {
8878
+ "type": "boolean"
8879
+ },
8880
+ "entries": {
8881
+ "type": "array",
8882
+ "items": {
8883
+ "type": "object",
8884
+ "properties": {
8885
+ "official": {
8886
+ "type": "boolean",
8887
+ "const": true
8888
+ },
8889
+ "installed": {
8890
+ "type": [
8891
+ "string",
8892
+ "null"
8893
+ ]
8894
+ },
8895
+ "updateAvailable": {
8896
+ "type": "boolean"
8897
+ },
8898
+ "compatible": {
8899
+ "type": "boolean"
8900
+ },
8901
+ "id": {
8902
+ "type": "string"
8903
+ },
8904
+ "url": {
8905
+ "type": "string"
8906
+ },
8907
+ "description": {
8908
+ "type": "string"
8909
+ },
8910
+ "name": {
8911
+ "type": "string"
8912
+ },
8913
+ "requires": {
8914
+ "type": "array",
8915
+ "items": {
8916
+ "type": "string"
8917
+ }
8918
+ },
8919
+ "worker": {
8920
+ "type": "boolean"
8921
+ },
8922
+ "version": {
8923
+ "type": "string"
8924
+ },
8925
+ "sha256": {
8926
+ "type": "string"
8927
+ },
8928
+ "minBand": {
8929
+ "type": "string"
8930
+ }
8931
+ },
8932
+ "required": [
8933
+ "official",
8934
+ "installed",
8935
+ "updateAvailable",
8936
+ "compatible",
8937
+ "id",
8938
+ "url",
8939
+ "description",
8940
+ "name",
8941
+ "requires",
8942
+ "worker",
8943
+ "version",
8944
+ "sha256",
8945
+ "minBand"
8946
+ ],
8947
+ "additionalProperties": false
8948
+ }
8949
+ }
8950
+ },
8951
+ "required": [
8952
+ "available",
8953
+ "entries"
8954
+ ],
8955
+ "additionalProperties": false
8956
+ }
8957
+ },
8958
+ "required": [
8959
+ "data"
8960
+ ]
8961
+ }
8962
+ },
8963
+ "required": [
8964
+ "result"
8965
+ ]
8966
+ }
8967
+ }
8968
+ }
8969
+ },
8970
+ "default": {
8971
+ "$ref": "#/components/responses/Error"
8972
+ }
8973
+ }
8974
+ }
8975
+ },
8976
+ "/extensions.refreshCatalog": {
8977
+ "post": {
8978
+ "operationId": "extensions.refreshCatalog",
8979
+ "tags": [
8980
+ "extensions"
8981
+ ],
8982
+ "responses": {
8983
+ "200": {
8984
+ "description": "Successful response",
8985
+ "content": {
8986
+ "application/json": {
8987
+ "schema": {
8988
+ "type": "object",
8989
+ "properties": {
8990
+ "result": {
8991
+ "type": "object",
8992
+ "properties": {
8993
+ "data": {
8994
+ "type": "object",
8995
+ "properties": {
8996
+ "available": {
8997
+ "type": "boolean"
8998
+ }
8999
+ },
9000
+ "required": [
9001
+ "available"
9002
+ ],
9003
+ "additionalProperties": false
9004
+ }
9005
+ },
9006
+ "required": [
9007
+ "data"
9008
+ ]
9009
+ }
9010
+ },
9011
+ "required": [
9012
+ "result"
9013
+ ]
9014
+ }
9015
+ }
9016
+ }
9017
+ },
9018
+ "default": {
9019
+ "$ref": "#/components/responses/Error"
9020
+ }
9021
+ }
9022
+ }
9023
+ },
9024
+ "/extensions.installOfficial": {
9025
+ "post": {
9026
+ "operationId": "extensions.installOfficial",
9027
+ "tags": [
9028
+ "extensions"
9029
+ ],
9030
+ "responses": {
9031
+ "200": {
9032
+ "description": "Successful response",
9033
+ "content": {
9034
+ "application/json": {
9035
+ "schema": {
9036
+ "type": "object",
9037
+ "properties": {
9038
+ "result": {
9039
+ "type": "object",
9040
+ "properties": {
9041
+ "data": {
9042
+ "type": "object",
9043
+ "properties": {
9044
+ "id": {
9045
+ "type": "string"
9046
+ },
9047
+ "name": {
9048
+ "type": "string"
9049
+ },
9050
+ "version": {
9051
+ "type": "string"
9052
+ },
9053
+ "extensionApi": {
9054
+ "type": "number",
9055
+ "const": 1
9056
+ },
9057
+ "contributes": {
9058
+ "type": "object",
9059
+ "properties": {
9060
+ "tools": {
9061
+ "type": "array",
9062
+ "items": {
9063
+ "type": "object",
9064
+ "properties": {
9065
+ "agent": {
9066
+ "type": "boolean",
9067
+ "description": "`false` leaves the tool out of the agent's list."
9068
+ },
9069
+ "description": {
9070
+ "type": "string"
9071
+ },
9072
+ "name": {
9073
+ "type": "string"
9074
+ },
9075
+ "method": {
9076
+ "type": "string"
9077
+ },
9078
+ "inputSchema": {
9079
+ "type": "object",
9080
+ "additionalProperties": {}
9081
+ },
9082
+ "service": {
9083
+ "type": "string",
9084
+ "description": "The `id` of one of this extension's worker services."
9085
+ }
9086
+ },
9087
+ "required": [
9088
+ "agent",
9089
+ "description",
9090
+ "name",
9091
+ "method",
9092
+ "inputSchema",
9093
+ "service"
9094
+ ],
9095
+ "additionalProperties": false
9096
+ }
9097
+ },
9098
+ "fileEditors": {
9099
+ "type": "array",
9100
+ "items": {
9101
+ "type": "object",
9102
+ "properties": {
9103
+ "id": {
9104
+ "type": "string"
9105
+ },
9106
+ "label": {
9107
+ "type": "string"
9108
+ },
9109
+ "binary": {
9110
+ "type": "boolean",
9111
+ "description": "The editor reads and writes bytes, not text."
9112
+ },
9113
+ "selector": {
9114
+ "type": "array",
9115
+ "items": {
9116
+ "type": "string"
9117
+ }
9118
+ },
9119
+ "default": {
9120
+ "type": "boolean"
9121
+ },
9122
+ "entry": {
9123
+ "type": "string"
9124
+ },
9125
+ "tools": {
9126
+ "type": "string",
9127
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9128
+ }
9129
+ },
9130
+ "required": [
9131
+ "id",
9132
+ "label",
9133
+ "binary",
9134
+ "selector",
9135
+ "default",
9136
+ "entry"
9137
+ ],
9138
+ "additionalProperties": false
9139
+ }
9140
+ },
9141
+ "workerServices": {
9142
+ "type": "array",
9143
+ "items": {
9144
+ "type": "object",
9145
+ "properties": {
9146
+ "id": {
9147
+ "type": "string"
9148
+ },
9149
+ "requires": {
9150
+ "type": "array",
9151
+ "items": {
9152
+ "type": "string"
9153
+ }
9154
+ },
9155
+ "capability": {
9156
+ "type": "string",
9157
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9158
+ },
9159
+ "entry": {
9160
+ "type": "string"
9161
+ }
9162
+ },
9163
+ "required": [
9164
+ "id",
9165
+ "requires",
9166
+ "capability",
9167
+ "entry"
9168
+ ],
9169
+ "additionalProperties": false
9170
+ }
9171
+ },
9172
+ "panels": {
9173
+ "type": "array",
9174
+ "items": {
9175
+ "type": "object",
9176
+ "properties": {
9177
+ "id": {
9178
+ "type": "string"
9179
+ },
9180
+ "label": {
9181
+ "type": "string"
9182
+ },
9183
+ "capability": {
9184
+ "type": "string",
9185
+ "description": "The `capability` of one of this extension's worker services."
9186
+ },
9187
+ "entry": {
9188
+ "type": "string"
9189
+ },
9190
+ "defaultControl": {
9191
+ "type": "boolean",
9192
+ "description": "Band takes control for the person as soon as a stream connects (and after each reconnect), so\ninput reaches the service without pressing Take control. Release still works."
9193
+ },
9194
+ "icon": {
9195
+ "type": "string",
9196
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9197
+ }
9198
+ },
9199
+ "required": [
9200
+ "id",
9201
+ "label",
9202
+ "capability",
9203
+ "entry",
9204
+ "defaultControl"
9205
+ ],
9206
+ "additionalProperties": false
9207
+ }
9208
+ }
9209
+ },
9210
+ "required": [
9211
+ "tools",
9212
+ "fileEditors",
9213
+ "workerServices",
9214
+ "panels"
9215
+ ],
9216
+ "additionalProperties": false
9217
+ }
9218
+ },
9219
+ "required": [
9220
+ "id",
9221
+ "name",
9222
+ "version",
9223
+ "extensionApi",
9224
+ "contributes"
9225
+ ],
9226
+ "additionalProperties": false
9227
+ }
9228
+ },
9229
+ "required": [
9230
+ "data"
9231
+ ]
9232
+ }
9233
+ },
9234
+ "required": [
9235
+ "result"
9236
+ ]
9237
+ }
9238
+ }
9239
+ }
9240
+ },
9241
+ "default": {
9242
+ "$ref": "#/components/responses/Error"
9243
+ }
9244
+ },
9245
+ "requestBody": {
9246
+ "required": true,
9247
+ "content": {
9248
+ "application/json": {
9249
+ "schema": {
9250
+ "type": "object",
9251
+ "properties": {
9252
+ "id": {
9253
+ "type": "string"
9254
+ }
9255
+ },
9256
+ "required": [
9257
+ "id"
9258
+ ],
9259
+ "additionalProperties": false
9260
+ }
9261
+ }
9262
+ }
9263
+ }
9264
+ }
9265
+ },
9266
+ "/extensions.install": {
9267
+ "post": {
9268
+ "operationId": "extensions.install",
9269
+ "tags": [
9270
+ "extensions"
9271
+ ],
9272
+ "responses": {
9273
+ "200": {
9274
+ "description": "Successful response",
9275
+ "content": {
9276
+ "application/json": {
9277
+ "schema": {
9278
+ "type": "object",
9279
+ "properties": {
9280
+ "result": {
9281
+ "type": "object",
9282
+ "properties": {
9283
+ "data": {
9284
+ "type": "object",
9285
+ "properties": {
9286
+ "id": {
9287
+ "type": "string"
9288
+ },
9289
+ "name": {
9290
+ "type": "string"
9291
+ },
9292
+ "version": {
9293
+ "type": "string"
9294
+ },
9295
+ "extensionApi": {
9296
+ "type": "number",
9297
+ "const": 1
9298
+ },
9299
+ "contributes": {
9300
+ "type": "object",
9301
+ "properties": {
9302
+ "tools": {
9303
+ "type": "array",
9304
+ "items": {
9305
+ "type": "object",
9306
+ "properties": {
9307
+ "agent": {
9308
+ "type": "boolean",
9309
+ "description": "`false` leaves the tool out of the agent's list."
9310
+ },
9311
+ "description": {
9312
+ "type": "string"
9313
+ },
9314
+ "name": {
9315
+ "type": "string"
9316
+ },
9317
+ "method": {
9318
+ "type": "string"
9319
+ },
9320
+ "inputSchema": {
9321
+ "type": "object",
9322
+ "additionalProperties": {}
9323
+ },
9324
+ "service": {
9325
+ "type": "string",
9326
+ "description": "The `id` of one of this extension's worker services."
9327
+ }
9328
+ },
9329
+ "required": [
9330
+ "agent",
9331
+ "description",
9332
+ "name",
9333
+ "method",
9334
+ "inputSchema",
9335
+ "service"
9336
+ ],
9337
+ "additionalProperties": false
9338
+ }
9339
+ },
9340
+ "fileEditors": {
9341
+ "type": "array",
9342
+ "items": {
9343
+ "type": "object",
9344
+ "properties": {
9345
+ "id": {
9346
+ "type": "string"
9347
+ },
9348
+ "label": {
9349
+ "type": "string"
9350
+ },
9351
+ "binary": {
9352
+ "type": "boolean",
9353
+ "description": "The editor reads and writes bytes, not text."
9354
+ },
9355
+ "selector": {
9356
+ "type": "array",
9357
+ "items": {
9358
+ "type": "string"
9359
+ }
9360
+ },
9361
+ "default": {
9362
+ "type": "boolean"
9363
+ },
9364
+ "entry": {
9365
+ "type": "string"
9366
+ },
9367
+ "tools": {
9368
+ "type": "string",
9369
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9370
+ }
9371
+ },
9372
+ "required": [
9373
+ "id",
9374
+ "label",
9375
+ "binary",
9376
+ "selector",
9377
+ "default",
9378
+ "entry"
9379
+ ],
9380
+ "additionalProperties": false
9381
+ }
9382
+ },
9383
+ "workerServices": {
9384
+ "type": "array",
9385
+ "items": {
9386
+ "type": "object",
9387
+ "properties": {
9388
+ "id": {
9389
+ "type": "string"
9390
+ },
9391
+ "requires": {
9392
+ "type": "array",
9393
+ "items": {
9394
+ "type": "string"
9395
+ }
9396
+ },
9397
+ "capability": {
9398
+ "type": "string",
9399
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9400
+ },
9401
+ "entry": {
9402
+ "type": "string"
9403
+ }
9404
+ },
9405
+ "required": [
9406
+ "id",
9407
+ "requires",
9408
+ "capability",
9409
+ "entry"
9410
+ ],
9411
+ "additionalProperties": false
9412
+ }
9413
+ },
9414
+ "panels": {
9415
+ "type": "array",
9416
+ "items": {
9417
+ "type": "object",
9418
+ "properties": {
9419
+ "id": {
9420
+ "type": "string"
9421
+ },
9422
+ "label": {
9423
+ "type": "string"
9424
+ },
9425
+ "capability": {
9426
+ "type": "string",
9427
+ "description": "The `capability` of one of this extension's worker services."
9428
+ },
9429
+ "entry": {
9430
+ "type": "string"
9431
+ },
9432
+ "defaultControl": {
9433
+ "type": "boolean",
9434
+ "description": "Band takes control for the person as soon as a stream connects (and after each reconnect), so\ninput reaches the service without pressing Take control. Release still works."
9435
+ },
9436
+ "icon": {
9437
+ "type": "string",
9438
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9439
+ }
9440
+ },
9441
+ "required": [
9442
+ "id",
9443
+ "label",
9444
+ "capability",
9445
+ "entry",
9446
+ "defaultControl"
9447
+ ],
9448
+ "additionalProperties": false
9449
+ }
9450
+ }
9451
+ },
9452
+ "required": [
9453
+ "tools",
9454
+ "fileEditors",
9455
+ "workerServices",
9456
+ "panels"
9457
+ ],
9458
+ "additionalProperties": false
9459
+ }
9460
+ },
9461
+ "required": [
9462
+ "id",
9463
+ "name",
9464
+ "version",
9465
+ "extensionApi",
9466
+ "contributes"
9467
+ ],
9468
+ "additionalProperties": false
9469
+ }
9470
+ },
9471
+ "required": [
9472
+ "data"
9473
+ ]
9474
+ }
9475
+ },
9476
+ "required": [
9477
+ "result"
9478
+ ]
9479
+ }
9480
+ }
9481
+ }
9482
+ },
9483
+ "default": {
9484
+ "$ref": "#/components/responses/Error"
9485
+ }
9486
+ },
9487
+ "requestBody": {
9488
+ "required": true,
9489
+ "content": {
9490
+ "application/json": {
9491
+ "schema": {
9492
+ "type": "object",
9493
+ "properties": {
9494
+ "url": {
9495
+ "type": "string"
9496
+ },
9497
+ "sha256": {
9498
+ "type": "string"
9499
+ }
9500
+ },
9501
+ "required": [
9502
+ "url"
9503
+ ],
9504
+ "additionalProperties": false
9505
+ }
9506
+ }
9507
+ }
9508
+ }
9509
+ }
9510
+ },
9511
+ "/extensions.remove": {
9512
+ "post": {
9513
+ "operationId": "extensions.remove",
9514
+ "tags": [
9515
+ "extensions"
9516
+ ],
9517
+ "responses": {
9518
+ "200": {
9519
+ "description": "Successful response",
9520
+ "content": {
9521
+ "application/json": {
9522
+ "schema": {
9523
+ "type": "object",
9524
+ "properties": {
9525
+ "result": {
9526
+ "type": "object",
9527
+ "properties": {
9528
+ "data": {
9529
+ "type": "object",
9530
+ "properties": {
9531
+ "ok": {
9532
+ "type": "boolean",
9533
+ "const": true
9534
+ }
9535
+ },
9536
+ "required": [
9537
+ "ok"
9538
+ ],
9539
+ "additionalProperties": false
9540
+ }
9541
+ },
9542
+ "required": [
9543
+ "data"
9544
+ ]
9545
+ }
9546
+ },
9547
+ "required": [
9548
+ "result"
9549
+ ]
9550
+ }
9551
+ }
9552
+ }
9553
+ },
9554
+ "default": {
9555
+ "$ref": "#/components/responses/Error"
9556
+ }
9557
+ },
9558
+ "requestBody": {
9559
+ "required": true,
9560
+ "content": {
9561
+ "application/json": {
9562
+ "schema": {
9563
+ "type": "object",
9564
+ "properties": {
9565
+ "id": {
9566
+ "type": "string"
9567
+ }
9568
+ },
9569
+ "required": [
9570
+ "id"
9571
+ ],
9572
+ "additionalProperties": false
9573
+ }
9574
+ }
9575
+ }
9576
+ }
9577
+ }
9578
+ },
9579
+ "/extensions.callService": {
9580
+ "post": {
9581
+ "operationId": "extensions.callService",
9582
+ "description": "Calls a worker service of an installed extension, on the worker that holds a worktree. Admin\nonly, and left out of the MCP endpoint and the relay: agents reach a service through the tools\nan extension registers. `capability` is the name the service's manifest entry gives.",
9583
+ "tags": [
9584
+ "extensions"
9585
+ ],
9586
+ "responses": {
9587
+ "200": {
9588
+ "description": "Successful response",
9589
+ "content": {
9590
+ "application/json": {
9591
+ "schema": {
9592
+ "type": "object",
9593
+ "properties": {
9594
+ "result": {
9595
+ "type": "object",
9596
+ "properties": {
9597
+ "data": {
9598
+ "type": "object",
9599
+ "properties": {
9600
+ "result": {
9601
+ "type": [
9602
+ "object",
9603
+ "null"
9604
+ ]
9605
+ }
9606
+ },
9607
+ "required": [
9608
+ "result"
9609
+ ],
9610
+ "additionalProperties": false
9611
+ }
9612
+ },
9613
+ "required": [
9614
+ "data"
9615
+ ]
9616
+ }
9617
+ },
9618
+ "required": [
9619
+ "result"
9620
+ ]
9621
+ }
9622
+ }
9623
+ }
9624
+ },
9625
+ "default": {
9626
+ "$ref": "#/components/responses/Error"
9627
+ }
9628
+ },
9629
+ "requestBody": {
9630
+ "required": true,
9631
+ "content": {
9632
+ "application/json": {
9633
+ "schema": {
9634
+ "type": "object",
9635
+ "properties": {
9636
+ "worktreeId": {
9637
+ "type": "string"
9638
+ },
9639
+ "capability": {
9640
+ "type": "string"
9641
+ },
9642
+ "method": {
9643
+ "type": "string"
9644
+ },
9645
+ "params": {}
9646
+ },
9647
+ "required": [
9648
+ "worktreeId",
9649
+ "capability",
9650
+ "method"
9651
+ ],
9652
+ "additionalProperties": false
9653
+ }
9654
+ }
9655
+ }
9656
+ }
9657
+ }
9658
+ },
9659
+ "/extensions.panelCall": {
9660
+ "post": {
9661
+ "operationId": "extensions.panelCall",
9662
+ "description": "A panel's call to its extension's worker service, on the worker of a worktree. Any device\ntoken may make it, because the panel is the person's own page. The panel names itself, and\nthe manifest decides which service answers, so a panel reaches only its own extension's\nservice. Left out of the MCP endpoint and the relay like the rest of `extensions.*`.",
9663
+ "tags": [
9664
+ "extensions"
9665
+ ],
9666
+ "responses": {
9667
+ "200": {
9668
+ "description": "Successful response",
9669
+ "content": {
9670
+ "application/json": {
9671
+ "schema": {
9672
+ "type": "object",
9673
+ "properties": {
9674
+ "result": {
9675
+ "type": "object",
9676
+ "properties": {
9677
+ "data": {
9678
+ "type": "object",
9679
+ "properties": {
9680
+ "result": {
9681
+ "type": [
9682
+ "object",
9683
+ "null"
9684
+ ]
9685
+ }
9686
+ },
9687
+ "required": [
9688
+ "result"
9689
+ ],
9690
+ "additionalProperties": false
9691
+ }
9692
+ },
9693
+ "required": [
9694
+ "data"
9695
+ ]
9696
+ }
9697
+ },
9698
+ "required": [
9699
+ "result"
9700
+ ]
9701
+ }
9702
+ }
9703
+ }
9704
+ },
9705
+ "default": {
9706
+ "$ref": "#/components/responses/Error"
9707
+ }
9708
+ },
9709
+ "requestBody": {
9710
+ "required": true,
9711
+ "content": {
9712
+ "application/json": {
9713
+ "schema": {
9714
+ "type": "object",
9715
+ "properties": {
9716
+ "worktreeId": {
9717
+ "type": "string"
9718
+ },
9719
+ "panelId": {
9720
+ "type": "string"
9721
+ },
9722
+ "extensionId": {
9723
+ "type": "string"
9724
+ },
9725
+ "method": {
9726
+ "type": "string"
9727
+ },
9728
+ "params": {}
9729
+ },
9730
+ "required": [
9731
+ "worktreeId",
9732
+ "panelId",
9733
+ "extensionId",
9734
+ "method"
9735
+ ],
9736
+ "additionalProperties": false
9737
+ }
9738
+ }
9739
+ }
9740
+ }
9741
+ }
9742
+ },
9743
+ "/extensions.list": {
9744
+ "get": {
9745
+ "operationId": "extensions.list",
9746
+ "tags": [
9747
+ "extensions"
9748
+ ],
9749
+ "responses": {
9750
+ "200": {
9751
+ "description": "Successful response",
9752
+ "content": {
9753
+ "application/json": {
9754
+ "schema": {
9755
+ "type": "object",
9756
+ "properties": {
9757
+ "result": {
9758
+ "type": "object",
9759
+ "properties": {
9760
+ "data": {
9761
+ "type": "object",
9762
+ "properties": {
9763
+ "sources": {
9764
+ "type": "array",
9765
+ "items": {
9766
+ "type": "object",
9767
+ "properties": {
9768
+ "id": {
9769
+ "type": "string"
9770
+ },
9771
+ "official": {
9772
+ "type": "boolean"
9773
+ },
9774
+ "source": {
9775
+ "type": "string",
9776
+ "enum": [
9777
+ "url",
9778
+ "file",
9779
+ "official"
9780
+ ]
9781
+ }
9782
+ },
9783
+ "required": [
9784
+ "id",
9785
+ "official",
9786
+ "source"
9787
+ ],
9788
+ "additionalProperties": false
9789
+ }
9790
+ },
9791
+ "extensions": {
9792
+ "type": "array",
9793
+ "items": {
9794
+ "type": "object",
9795
+ "properties": {
9796
+ "id": {
9797
+ "type": "string"
9798
+ },
9799
+ "name": {
9800
+ "type": "string"
9801
+ },
9802
+ "version": {
9803
+ "type": "string"
9804
+ },
9805
+ "extensionApi": {
9806
+ "type": "number",
9807
+ "const": 1
9808
+ },
9809
+ "contributes": {
9810
+ "type": "object",
9811
+ "properties": {
9812
+ "tools": {
9813
+ "type": "array",
9814
+ "items": {
9815
+ "type": "object",
9816
+ "properties": {
9817
+ "agent": {
9818
+ "type": "boolean",
9819
+ "description": "`false` leaves the tool out of the agent's list."
9820
+ },
9821
+ "description": {
9822
+ "type": "string"
9823
+ },
9824
+ "name": {
9825
+ "type": "string"
9826
+ },
9827
+ "method": {
9828
+ "type": "string"
9829
+ },
9830
+ "inputSchema": {
9831
+ "type": "object",
9832
+ "additionalProperties": {}
9833
+ },
9834
+ "service": {
9835
+ "type": "string",
9836
+ "description": "The `id` of one of this extension's worker services."
9837
+ }
9838
+ },
9839
+ "required": [
9840
+ "agent",
9841
+ "description",
9842
+ "name",
9843
+ "method",
9844
+ "inputSchema",
9845
+ "service"
9846
+ ],
9847
+ "additionalProperties": false
9848
+ }
9849
+ },
9850
+ "fileEditors": {
9851
+ "type": "array",
9852
+ "items": {
9853
+ "type": "object",
9854
+ "properties": {
9855
+ "id": {
9856
+ "type": "string"
9857
+ },
9858
+ "label": {
9859
+ "type": "string"
9860
+ },
9861
+ "binary": {
9862
+ "type": "boolean",
9863
+ "description": "The editor reads and writes bytes, not text."
9864
+ },
9865
+ "selector": {
9866
+ "type": "array",
9867
+ "items": {
9868
+ "type": "string"
9869
+ }
9870
+ },
9871
+ "default": {
9872
+ "type": "boolean"
9873
+ },
9874
+ "entry": {
9875
+ "type": "string"
9876
+ },
9877
+ "tools": {
9878
+ "type": "string",
9879
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9880
+ }
9881
+ },
9882
+ "required": [
9883
+ "id",
9884
+ "label",
9885
+ "binary",
9886
+ "selector",
9887
+ "default",
9888
+ "entry"
9889
+ ],
9890
+ "additionalProperties": false
9891
+ }
9892
+ },
9893
+ "workerServices": {
9894
+ "type": "array",
9895
+ "items": {
9896
+ "type": "object",
9897
+ "properties": {
9898
+ "id": {
9899
+ "type": "string"
9900
+ },
9901
+ "requires": {
9902
+ "type": "array",
9903
+ "items": {
9904
+ "type": "string"
9905
+ }
9906
+ },
9907
+ "capability": {
9908
+ "type": "string",
9909
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9910
+ },
9911
+ "entry": {
9912
+ "type": "string"
9913
+ }
9914
+ },
9915
+ "required": [
9916
+ "id",
9917
+ "requires",
9918
+ "capability",
9919
+ "entry"
9920
+ ],
9921
+ "additionalProperties": false
9922
+ }
9923
+ },
9924
+ "panels": {
9925
+ "type": "array",
9926
+ "items": {
9927
+ "type": "object",
9928
+ "properties": {
9929
+ "id": {
9930
+ "type": "string"
9931
+ },
9932
+ "label": {
9933
+ "type": "string"
9934
+ },
9935
+ "capability": {
9936
+ "type": "string",
9937
+ "description": "The `capability` of one of this extension's worker services."
9938
+ },
9939
+ "entry": {
9940
+ "type": "string"
9941
+ },
9942
+ "defaultControl": {
9943
+ "type": "boolean",
9944
+ "description": "Band takes control for the person as soon as a stream connects (and after each reconnect), so\ninput reaches the service without pressing Take control. Release still works."
9945
+ },
9946
+ "icon": {
9947
+ "type": "string",
9948
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9949
+ }
9950
+ },
9951
+ "required": [
9952
+ "id",
9953
+ "label",
9954
+ "capability",
9955
+ "entry",
9956
+ "defaultControl"
9957
+ ],
9958
+ "additionalProperties": false
9959
+ }
9960
+ }
9961
+ },
9962
+ "required": [
9963
+ "tools",
9964
+ "fileEditors",
9965
+ "workerServices",
9966
+ "panels"
9967
+ ],
9968
+ "additionalProperties": false
9969
+ }
9970
+ },
9971
+ "required": [
9972
+ "id",
9973
+ "name",
9974
+ "version",
9975
+ "extensionApi",
9976
+ "contributes"
9977
+ ],
9978
+ "additionalProperties": false
9979
+ }
9980
+ },
9981
+ "errors": {
9982
+ "type": "array",
9983
+ "items": {
9984
+ "$ref": "#/components/schemas/ExtensionProblem"
9985
+ }
9986
+ },
9987
+ "installs": {
9988
+ "type": "object",
9989
+ "additionalProperties": {
9990
+ "$ref": "#/components/schemas/InstallRecord"
9991
+ },
9992
+ "description": "Install records by extension id. A folder copied in by hand has none."
9993
+ }
9994
+ },
9995
+ "required": [
9996
+ "sources",
9997
+ "extensions",
9998
+ "errors",
9999
+ "installs"
10000
+ ],
10001
+ "additionalProperties": false
10002
+ }
10003
+ },
10004
+ "required": [
10005
+ "data"
10006
+ ]
10007
+ }
10008
+ },
10009
+ "required": [
10010
+ "result"
10011
+ ]
10012
+ }
10013
+ }
10014
+ }
10015
+ },
10016
+ "default": {
10017
+ "$ref": "#/components/responses/Error"
10018
+ }
10019
+ }
10020
+ }
10021
+ },
10022
+ "/extensions.reload": {
10023
+ "post": {
10024
+ "operationId": "extensions.reload",
10025
+ "tags": [
10026
+ "extensions"
10027
+ ],
10028
+ "responses": {
10029
+ "200": {
10030
+ "description": "Successful response",
10031
+ "content": {
10032
+ "application/json": {
10033
+ "schema": {
10034
+ "type": "object",
10035
+ "properties": {
10036
+ "result": {
10037
+ "type": "object",
10038
+ "properties": {
10039
+ "data": {
10040
+ "type": "object",
10041
+ "properties": {
10042
+ "sources": {
10043
+ "type": "array",
10044
+ "items": {
10045
+ "type": "object",
10046
+ "properties": {
10047
+ "id": {
10048
+ "type": "string"
10049
+ },
10050
+ "official": {
10051
+ "type": "boolean"
10052
+ },
10053
+ "source": {
10054
+ "type": "string",
10055
+ "enum": [
10056
+ "url",
10057
+ "file",
10058
+ "official"
10059
+ ]
10060
+ }
10061
+ },
10062
+ "required": [
10063
+ "id",
10064
+ "official",
10065
+ "source"
10066
+ ],
10067
+ "additionalProperties": false
10068
+ }
10069
+ },
10070
+ "extensions": {
10071
+ "type": "array",
10072
+ "items": {
10073
+ "type": "object",
10074
+ "properties": {
10075
+ "id": {
10076
+ "type": "string"
10077
+ },
10078
+ "name": {
10079
+ "type": "string"
10080
+ },
10081
+ "version": {
10082
+ "type": "string"
10083
+ },
10084
+ "extensionApi": {
10085
+ "type": "number",
10086
+ "const": 1
10087
+ },
10088
+ "contributes": {
10089
+ "type": "object",
10090
+ "properties": {
10091
+ "tools": {
10092
+ "type": "array",
10093
+ "items": {
10094
+ "type": "object",
10095
+ "properties": {
10096
+ "agent": {
10097
+ "type": "boolean",
10098
+ "description": "`false` leaves the tool out of the agent's list."
10099
+ },
10100
+ "description": {
10101
+ "type": "string"
10102
+ },
10103
+ "name": {
10104
+ "type": "string"
10105
+ },
10106
+ "method": {
10107
+ "type": "string"
10108
+ },
10109
+ "inputSchema": {
10110
+ "type": "object",
10111
+ "additionalProperties": {}
10112
+ },
10113
+ "service": {
10114
+ "type": "string",
10115
+ "description": "The `id` of one of this extension's worker services."
10116
+ }
10117
+ },
10118
+ "required": [
10119
+ "agent",
10120
+ "description",
10121
+ "name",
10122
+ "method",
10123
+ "inputSchema",
10124
+ "service"
10125
+ ],
10126
+ "additionalProperties": false
10127
+ }
10128
+ },
10129
+ "fileEditors": {
10130
+ "type": "array",
10131
+ "items": {
10132
+ "type": "object",
10133
+ "properties": {
10134
+ "id": {
10135
+ "type": "string"
10136
+ },
10137
+ "label": {
10138
+ "type": "string"
10139
+ },
10140
+ "binary": {
10141
+ "type": "boolean",
10142
+ "description": "The editor reads and writes bytes, not text."
10143
+ },
10144
+ "selector": {
10145
+ "type": "array",
10146
+ "items": {
10147
+ "type": "string"
10148
+ }
10149
+ },
10150
+ "default": {
10151
+ "type": "boolean"
10152
+ },
10153
+ "entry": {
10154
+ "type": "string"
10155
+ },
10156
+ "tools": {
10157
+ "type": "string",
10158
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
10159
+ }
10160
+ },
10161
+ "required": [
10162
+ "id",
10163
+ "label",
10164
+ "binary",
10165
+ "selector",
10166
+ "default",
10167
+ "entry"
10168
+ ],
10169
+ "additionalProperties": false
10170
+ }
10171
+ },
10172
+ "workerServices": {
10173
+ "type": "array",
10174
+ "items": {
10175
+ "type": "object",
10176
+ "properties": {
10177
+ "id": {
10178
+ "type": "string"
10179
+ },
10180
+ "requires": {
10181
+ "type": "array",
10182
+ "items": {
10183
+ "type": "string"
10184
+ }
10185
+ },
10186
+ "capability": {
10187
+ "type": "string",
10188
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
10189
+ },
10190
+ "entry": {
10191
+ "type": "string"
10192
+ }
10193
+ },
10194
+ "required": [
10195
+ "id",
10196
+ "requires",
10197
+ "capability",
10198
+ "entry"
10199
+ ],
10200
+ "additionalProperties": false
10201
+ }
10202
+ },
10203
+ "panels": {
10204
+ "type": "array",
10205
+ "items": {
10206
+ "type": "object",
10207
+ "properties": {
10208
+ "id": {
10209
+ "type": "string"
10210
+ },
10211
+ "label": {
10212
+ "type": "string"
10213
+ },
10214
+ "capability": {
10215
+ "type": "string",
10216
+ "description": "The `capability` of one of this extension's worker services."
10217
+ },
10218
+ "entry": {
10219
+ "type": "string"
10220
+ },
10221
+ "defaultControl": {
10222
+ "type": "boolean",
10223
+ "description": "Band takes control for the person as soon as a stream connects (and after each reconnect), so\ninput reaches the service without pressing Take control. Release still works."
10224
+ },
10225
+ "icon": {
10226
+ "type": "string",
10227
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
10228
+ }
10229
+ },
10230
+ "required": [
10231
+ "id",
10232
+ "label",
10233
+ "capability",
10234
+ "entry",
10235
+ "defaultControl"
10236
+ ],
10237
+ "additionalProperties": false
10238
+ }
10239
+ }
10240
+ },
10241
+ "required": [
10242
+ "tools",
10243
+ "fileEditors",
10244
+ "workerServices",
10245
+ "panels"
10246
+ ],
10247
+ "additionalProperties": false
10248
+ }
10249
+ },
10250
+ "required": [
10251
+ "id",
10252
+ "name",
10253
+ "version",
10254
+ "extensionApi",
10255
+ "contributes"
10256
+ ],
10257
+ "additionalProperties": false
10258
+ }
10259
+ },
10260
+ "errors": {
10261
+ "type": "array",
10262
+ "items": {
10263
+ "$ref": "#/components/schemas/ExtensionProblem"
10264
+ }
10265
+ },
10266
+ "installs": {
10267
+ "type": "object",
10268
+ "additionalProperties": {
10269
+ "$ref": "#/components/schemas/InstallRecord"
10270
+ },
10271
+ "description": "Install records by extension id. A folder copied in by hand has none."
10272
+ }
10273
+ },
10274
+ "required": [
10275
+ "sources",
10276
+ "extensions",
10277
+ "errors",
10278
+ "installs"
10279
+ ],
10280
+ "additionalProperties": false
8565
10281
  }
8566
10282
  },
8567
10283
  "required": [
@@ -12325,129 +14041,6 @@
12325
14041
  }
12326
14042
  }
12327
14043
  },
12328
- "/simulators.status": {
12329
- "get": {
12330
- "operationId": "simulators.status",
12331
- "description": "Whether the worktree's worker can run a simulator, and the device's state when it can.",
12332
- "tags": [
12333
- "simulators"
12334
- ],
12335
- "responses": {
12336
- "200": {
12337
- "description": "Successful response",
12338
- "content": {
12339
- "application/json": {
12340
- "schema": {
12341
- "type": "object",
12342
- "properties": {
12343
- "result": {
12344
- "type": "object",
12345
- "properties": {
12346
- "data": {
12347
- "$ref": "#/components/schemas/SimulatorStatus"
12348
- }
12349
- },
12350
- "required": [
12351
- "data"
12352
- ]
12353
- }
12354
- },
12355
- "required": [
12356
- "result"
12357
- ]
12358
- }
12359
- }
12360
- }
12361
- },
12362
- "default": {
12363
- "$ref": "#/components/responses/Error"
12364
- }
12365
- },
12366
- "parameters": [
12367
- {
12368
- "name": "input",
12369
- "in": "query",
12370
- "required": true,
12371
- "style": "deepObject",
12372
- "content": {
12373
- "application/json": {
12374
- "schema": {
12375
- "type": "object",
12376
- "properties": {
12377
- "worktreeId": {
12378
- "type": "string"
12379
- }
12380
- },
12381
- "required": [
12382
- "worktreeId"
12383
- ],
12384
- "additionalProperties": false
12385
- }
12386
- }
12387
- }
12388
- }
12389
- ]
12390
- }
12391
- },
12392
- "/simulators.open": {
12393
- "post": {
12394
- "operationId": "simulators.open",
12395
- "description": "Boots the worktree's simulator and adds the Simulator tab to the worktree's shared tab list,\nwhich every connected client then opens.",
12396
- "tags": [
12397
- "simulators"
12398
- ],
12399
- "responses": {
12400
- "200": {
12401
- "description": "Successful response",
12402
- "content": {
12403
- "application/json": {
12404
- "schema": {
12405
- "type": "object",
12406
- "properties": {
12407
- "result": {
12408
- "type": "object",
12409
- "properties": {
12410
- "data": {
12411
- "$ref": "#/components/schemas/SimulatorStatus"
12412
- }
12413
- },
12414
- "required": [
12415
- "data"
12416
- ]
12417
- }
12418
- },
12419
- "required": [
12420
- "result"
12421
- ]
12422
- }
12423
- }
12424
- }
12425
- },
12426
- "default": {
12427
- "$ref": "#/components/responses/Error"
12428
- }
12429
- },
12430
- "requestBody": {
12431
- "required": true,
12432
- "content": {
12433
- "application/json": {
12434
- "schema": {
12435
- "type": "object",
12436
- "properties": {
12437
- "worktreeId": {
12438
- "type": "string"
12439
- }
12440
- },
12441
- "required": [
12442
- "worktreeId"
12443
- ],
12444
- "additionalProperties": false
12445
- }
12446
- }
12447
- }
12448
- }
12449
- }
12450
- },
12451
14044
  "/reviews.forWorktree": {
12452
14045
  "get": {
12453
14046
  "operationId": "reviews.forWorktree",
@@ -14384,6 +15977,12 @@
14384
15977
  "properties": {
14385
15978
  "command": {
14386
15979
  "type": "string"
15980
+ },
15981
+ "auto": {
15982
+ "type": "boolean"
15983
+ },
15984
+ "keepBackups": {
15985
+ "type": "number"
14387
15986
  }
14388
15987
  },
14389
15988
  "additionalProperties": {}
@@ -19144,6 +20743,83 @@
19144
20743
  ]
19145
20744
  }
19146
20745
  },
20746
+ "/worktree.externalPreviewUrl": {
20747
+ "get": {
20748
+ "operationId": "worktree.externalPreviewUrl",
20749
+ "description": "A signed URL for an HTML file outside the worktree; the grant covers the file's folder.",
20750
+ "tags": [
20751
+ "worktree"
20752
+ ],
20753
+ "responses": {
20754
+ "200": {
20755
+ "description": "Successful response",
20756
+ "content": {
20757
+ "application/json": {
20758
+ "schema": {
20759
+ "type": "object",
20760
+ "properties": {
20761
+ "result": {
20762
+ "type": "object",
20763
+ "properties": {
20764
+ "data": {
20765
+ "type": "object",
20766
+ "properties": {
20767
+ "url": {
20768
+ "type": "string"
20769
+ }
20770
+ },
20771
+ "required": [
20772
+ "url"
20773
+ ],
20774
+ "additionalProperties": false
20775
+ }
20776
+ },
20777
+ "required": [
20778
+ "data"
20779
+ ]
20780
+ }
20781
+ },
20782
+ "required": [
20783
+ "result"
20784
+ ]
20785
+ }
20786
+ }
20787
+ }
20788
+ },
20789
+ "default": {
20790
+ "$ref": "#/components/responses/Error"
20791
+ }
20792
+ },
20793
+ "parameters": [
20794
+ {
20795
+ "name": "input",
20796
+ "in": "query",
20797
+ "required": true,
20798
+ "style": "deepObject",
20799
+ "content": {
20800
+ "application/json": {
20801
+ "schema": {
20802
+ "type": "object",
20803
+ "properties": {
20804
+ "worktreeId": {
20805
+ "type": "string"
20806
+ },
20807
+ "absolutePath": {
20808
+ "type": "string"
20809
+ }
20810
+ },
20811
+ "required": [
20812
+ "worktreeId",
20813
+ "absolutePath"
20814
+ ],
20815
+ "additionalProperties": false
20816
+ }
20817
+ }
20818
+ }
20819
+ }
20820
+ ]
20821
+ }
20822
+ },
19147
20823
  "/worktree.downloadUrl": {
19148
20824
  "get": {
19149
20825
  "operationId": "worktree.downloadUrl",
@@ -19692,6 +21368,9 @@
19692
21368
  "worktreeId": {
19693
21369
  "type": "string"
19694
21370
  },
21371
+ "agent": {
21372
+ "type": "string"
21373
+ },
19695
21374
  "via": {
19696
21375
  "type": "string",
19697
21376
  "enum": [
@@ -19705,9 +21384,6 @@
19705
21384
  "key": {
19706
21385
  "type": "string"
19707
21386
  },
19708
- "agent": {
19709
- "type": "string"
19710
- },
19711
21387
  "sessionId": {
19712
21388
  "type": "string"
19713
21389
  }
@@ -19789,6 +21465,12 @@
19789
21465
  "worktreeId": {
19790
21466
  "type": "string"
19791
21467
  },
21468
+ "agent": {
21469
+ "type": [
21470
+ "string",
21471
+ "null"
21472
+ ]
21473
+ },
19792
21474
  "name": {
19793
21475
  "type": "string"
19794
21476
  },
@@ -19805,12 +21487,6 @@
19805
21487
  "cronExpression": {
19806
21488
  "type": "string"
19807
21489
  },
19808
- "agent": {
19809
- "type": [
19810
- "string",
19811
- "null"
19812
- ]
19813
- },
19814
21490
  "sessionId": {
19815
21491
  "type": [
19816
21492
  "string",
@@ -20849,13 +22525,13 @@
20849
22525
  "type": "string"
20850
22526
  }
20851
22527
  },
20852
- "name": {
22528
+ "agent": {
20853
22529
  "type": "string"
20854
22530
  },
20855
- "mode": {
22531
+ "name": {
20856
22532
  "type": "string"
20857
22533
  },
20858
- "agent": {
22534
+ "mode": {
20859
22535
  "type": "string"
20860
22536
  }
20861
22537
  },
@@ -21169,6 +22845,9 @@
21169
22845
  "type": "string"
21170
22846
  }
21171
22847
  },
22848
+ "agent": {
22849
+ "type": "string"
22850
+ },
21172
22851
  "name": {
21173
22852
  "type": "string"
21174
22853
  },
@@ -21178,9 +22857,6 @@
21178
22857
  "null"
21179
22858
  ]
21180
22859
  },
21181
- "agent": {
21182
- "type": "string"
21183
- },
21184
22860
  "loginId": {
21185
22861
  "type": [
21186
22862
  "string",
@@ -25121,8 +26797,8 @@
25121
26797
  "type": "string",
25122
26798
  "enum": [
25123
26799
  "failed",
25124
- "installing",
25125
- "restarting"
26800
+ "restarting",
26801
+ "installing"
25126
26802
  ]
25127
26803
  },
25128
26804
  "error": {
@@ -25181,6 +26857,44 @@
25181
26857
  ],
25182
26858
  "additionalProperties": false
25183
26859
  },
26860
+ "ExtensionServiceView": {
26861
+ "type": "object",
26862
+ "properties": {
26863
+ "extensionId": {
26864
+ "type": "string"
26865
+ },
26866
+ "serviceId": {
26867
+ "type": "string"
26868
+ },
26869
+ "capability": {
26870
+ "type": "string"
26871
+ },
26872
+ "version": {
26873
+ "type": "string"
26874
+ },
26875
+ "state": {
26876
+ "type": "string",
26877
+ "enum": [
26878
+ "running",
26879
+ "stopped",
26880
+ "failed",
26881
+ "restarting",
26882
+ "not-eligible"
26883
+ ]
26884
+ },
26885
+ "reason": {
26886
+ "type": "string"
26887
+ }
26888
+ },
26889
+ "required": [
26890
+ "extensionId",
26891
+ "serviceId",
26892
+ "capability",
26893
+ "version",
26894
+ "state"
26895
+ ],
26896
+ "additionalProperties": false
26897
+ },
25184
26898
  "CapabilityReport": {
25185
26899
  "type": "object",
25186
26900
  "properties": {
@@ -25337,6 +27051,46 @@
25337
27051
  ],
25338
27052
  "additionalProperties": false
25339
27053
  },
27054
+ "HubUpdateLastRun": {
27055
+ "type": "object",
27056
+ "properties": {
27057
+ "from": {
27058
+ "type": "string"
27059
+ },
27060
+ "to": {
27061
+ "type": "string"
27062
+ },
27063
+ "at": {
27064
+ "type": "number"
27065
+ },
27066
+ "result": {
27067
+ "type": "string",
27068
+ "enum": [
27069
+ "ok",
27070
+ "failed",
27071
+ "rolled-back"
27072
+ ]
27073
+ },
27074
+ "backup": {
27075
+ "type": [
27076
+ "string",
27077
+ "null"
27078
+ ]
27079
+ },
27080
+ "message": {
27081
+ "type": "string"
27082
+ }
27083
+ },
27084
+ "required": [
27085
+ "from",
27086
+ "to",
27087
+ "at",
27088
+ "result",
27089
+ "backup",
27090
+ "message"
27091
+ ],
27092
+ "additionalProperties": false
27093
+ },
25340
27094
  "UpdateAllStatus": {
25341
27095
  "type": "object",
25342
27096
  "properties": {
@@ -25795,8 +27549,8 @@
25795
27549
  "trigger": {
25796
27550
  "type": "string",
25797
27551
  "enum": [
25798
- "manual",
25799
- "auto"
27552
+ "auto",
27553
+ "manual"
25800
27554
  ]
25801
27555
  },
25802
27556
  "error": {
@@ -26363,8 +28117,8 @@
26363
28117
  "reason": {
26364
28118
  "type": "string",
26365
28119
  "enum": [
26366
- "manual",
26367
- "auto"
28120
+ "auto",
28121
+ "manual"
26368
28122
  ],
26369
28123
  "description": "Why a worktree was continued: a person accepted the offer, or the repo continues by itself."
26370
28124
  },
@@ -27200,100 +28954,78 @@
27200
28954
  },
27201
28955
  "additionalProperties": false
27202
28956
  },
27203
- "ExtensionList": {
28957
+ "SelectionState": {
27204
28958
  "type": "object",
27205
28959
  "properties": {
27206
- "extensions": {
27207
- "type": "array",
27208
- "items": {
27209
- "type": "object",
27210
- "properties": {
27211
- "id": {
27212
- "type": "string"
27213
- },
27214
- "name": {
27215
- "type": "string"
27216
- },
27217
- "version": {
27218
- "type": "string"
27219
- },
27220
- "extensionApi": {
27221
- "type": "number",
27222
- "const": 1
27223
- },
27224
- "contributes": {
27225
- "type": "object",
27226
- "properties": {
27227
- "fileEditors": {
27228
- "type": "array",
27229
- "items": {
27230
- "type": "object",
27231
- "properties": {
27232
- "id": {
27233
- "type": "string"
27234
- },
27235
- "label": {
27236
- "type": "string"
27237
- },
27238
- "binary": {
27239
- "type": "boolean",
27240
- "description": "The editor reads and writes bytes, not text."
27241
- },
27242
- "selector": {
27243
- "type": "array",
27244
- "items": {
27245
- "type": "string"
27246
- }
27247
- },
27248
- "default": {
27249
- "type": "boolean"
27250
- },
27251
- "entry": {
27252
- "type": "string"
27253
- },
27254
- "tools": {
27255
- "type": "string",
27256
- "description": "The editor's `tools/list` answer, a JSON file in the folder."
27257
- }
27258
- },
27259
- "required": [
27260
- "id",
27261
- "label",
27262
- "binary",
27263
- "selector",
27264
- "default",
27265
- "entry"
27266
- ],
27267
- "additionalProperties": false
27268
- }
27269
- }
27270
- },
27271
- "required": [
27272
- "fileEditors"
27273
- ],
27274
- "additionalProperties": false
27275
- }
27276
- },
27277
- "required": [
27278
- "id",
27279
- "name",
27280
- "version",
27281
- "extensionApi",
27282
- "contributes"
27283
- ],
27284
- "additionalProperties": false
27285
- }
28960
+ "file": {
28961
+ "type": "string"
27286
28962
  },
27287
- "errors": {
27288
- "type": "array",
27289
- "items": {
27290
- "$ref": "#/components/schemas/ExtensionProblem"
27291
- }
28963
+ "extensionId": {
28964
+ "type": "string"
28965
+ },
28966
+ "editorId": {
28967
+ "type": "string"
28968
+ },
28969
+ "selection": {
28970
+ "$ref": "#/components/schemas/Selection"
28971
+ },
28972
+ "updatedAt": {
28973
+ "type": "number"
28974
+ }
28975
+ },
28976
+ "required": [
28977
+ "file",
28978
+ "extensionId",
28979
+ "editorId",
28980
+ "selection",
28981
+ "updatedAt"
28982
+ ],
28983
+ "additionalProperties": false
28984
+ },
28985
+ "Selection": {
28986
+ "type": "object",
28987
+ "properties": {
28988
+ "address": {
28989
+ "type": "string"
28990
+ },
28991
+ "kind": {
28992
+ "type": "string"
28993
+ },
28994
+ "label": {
28995
+ "type": "string"
28996
+ },
28997
+ "text": {
28998
+ "type": "string"
28999
+ },
29000
+ "rect": {
29001
+ "type": "object",
29002
+ "properties": {
29003
+ "x": {
29004
+ "type": "number"
29005
+ },
29006
+ "y": {
29007
+ "type": "number"
29008
+ },
29009
+ "width": {
29010
+ "type": "number"
29011
+ },
29012
+ "height": {
29013
+ "type": "number"
29014
+ }
29015
+ },
29016
+ "required": [
29017
+ "x",
29018
+ "y",
29019
+ "width",
29020
+ "height"
29021
+ ],
29022
+ "additionalProperties": false
27292
29023
  }
27293
29024
  },
27294
29025
  "required": [
27295
- "extensions",
27296
- "errors"
29026
+ "address",
29027
+ "kind",
29028
+ "label"
27297
29029
  ],
27298
29030
  "additionalProperties": false
27299
29031
  },
@@ -27314,6 +29046,31 @@
27314
29046
  ],
27315
29047
  "additionalProperties": false
27316
29048
  },
29049
+ "InstallRecord": {
29050
+ "type": "object",
29051
+ "properties": {
29052
+ "source": {
29053
+ "type": "string",
29054
+ "enum": [
29055
+ "url",
29056
+ "file",
29057
+ "official"
29058
+ ]
29059
+ },
29060
+ "sha256": {
29061
+ "type": "string"
29062
+ },
29063
+ "version": {
29064
+ "type": "string"
29065
+ }
29066
+ },
29067
+ "required": [
29068
+ "source",
29069
+ "sha256",
29070
+ "version"
29071
+ ],
29072
+ "additionalProperties": false
29073
+ },
27317
29074
  "McpServerView": {
27318
29075
  "type": "object",
27319
29076
  "properties": {
@@ -28063,71 +29820,6 @@
28063
29820
  ],
28064
29821
  "additionalProperties": false
28065
29822
  },
28066
- "SimulatorStatus": {
28067
- "type": "object",
28068
- "properties": {
28069
- "available": {
28070
- "type": "boolean",
28071
- "description": "The worktree's worker is online and can run a simulator."
28072
- },
28073
- "reason": {
28074
- "type": "string",
28075
- "description": "Why not, when `available` is false."
28076
- },
28077
- "hostId": {
28078
- "type": "string"
28079
- },
28080
- "device": {
28081
- "type": "object",
28082
- "properties": {
28083
- "udid": {
28084
- "type": "string"
28085
- },
28086
- "name": {
28087
- "type": "string"
28088
- },
28089
- "state": {
28090
- "type": "string"
28091
- },
28092
- "screen": {
28093
- "oneOf": [
28094
- {
28095
- "type": "object",
28096
- "properties": {
28097
- "width": {
28098
- "type": "number"
28099
- },
28100
- "height": {
28101
- "type": "number"
28102
- }
28103
- },
28104
- "required": [
28105
- "width",
28106
- "height"
28107
- ],
28108
- "additionalProperties": false
28109
- },
28110
- {
28111
- "type": "null"
28112
- }
28113
- ]
28114
- }
28115
- },
28116
- "required": [
28117
- "udid",
28118
- "name",
28119
- "state",
28120
- "screen"
28121
- ],
28122
- "additionalProperties": false
28123
- }
28124
- },
28125
- "required": [
28126
- "available",
28127
- "hostId"
28128
- ],
28129
- "additionalProperties": false
28130
- },
28131
29823
  "RepoInfo": {
28132
29824
  "type": "object",
28133
29825
  "properties": {