@band-app/server 0.60.1 → 0.61.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-mCiDaiih.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-Dfft9U2Y.js → _basePickBy-DKdB56Hm.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-VT-Fvpwa.js → _baseUniq-DBMW2stI.js} +1 -1
  5. package/dist/client/assets/arc-BhrH8ZbE.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-CEeXYnM1.js → architectureDiagram-VXUJARFQ-VtMgLWlg.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-D8t34_qE.js → blockDiagram-VD42YOAC-B9EIepxQ.js} +5 -5
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-Bac4BHFl.js → c4Diagram-YG6GDRKO-Bj7LwyU_.js} +1 -1
  9. package/dist/client/assets/channel-BGC2HXYP.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-8OgHJjso.js → chunk-4BX2VUAB-DYotXGFB.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-1q6zldbT.js → chunk-55IACEB6-zwloXcXi.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-CyB0YChj.js → chunk-B4BG7PRW-DR4FI2-X.js} +3 -3
  13. package/dist/client/assets/{chunk-DI55MBZ5-CbH2Vi7l.js → chunk-DI55MBZ5-CTYuhzSp.js} +3 -3
  14. package/dist/client/assets/{chunk-FMBD7UC4-DChsRBYo.js → chunk-FMBD7UC4-y6grAlwY.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-CCiqRxGJ.js → chunk-QN33PNHL-BupVZq6G.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-DSknJcWz.js → chunk-QZHKN3VN-CWDdHz8r.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-Dntdjhjx.js → chunk-TZMSLE5B-CEuL_k7n.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-BpEW879W.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-BpEW879W.js +1 -0
  20. package/dist/client/assets/clone-DSLrk7hk.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-Dpk2C2KC.js → cose-bilkent-S5V4N54A-38bNkffh.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-BxmsX_AF.js → dagre-6UL2VRFP-DPau8H59.js} +2 -2
  23. package/dist/client/assets/{diagram-PSM6KHXK-Cese24hg.js → diagram-PSM6KHXK-QtLKSx07.js} +2 -2
  24. package/dist/client/assets/{diagram-QEK2KX5R-Lux1tuP-.js → diagram-QEK2KX5R-DqsH4v8a.js} +2 -2
  25. package/dist/client/assets/{diagram-S2PKOQOG-Da29vVFh.js → diagram-S2PKOQOG-DAe84DjK.js} +2 -2
  26. package/dist/client/assets/embed.editor-BQHIYtre.js +1 -0
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-COz-Bxty.js → erDiagram-Q2GNP2WA-DGkVpSzP.js} +4 -4
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-2AOhgtfg.js → flowDiagram-NV44I4VS--G5o6ubJ.js} +9 -9
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-CvaV3At7.js → ganttDiagram-JELNMOA3-CeyMlU9m.js} +4 -4
  30. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-C7Tzq96K.js +65 -0
  31. package/dist/client/assets/{graph-BkqeF57r.js → graph-BUcgMBKj.js} +1 -1
  32. package/dist/client/assets/highlighted-body-B3W2YXNL-JEc5jGBG.js +1 -0
  33. package/dist/client/assets/{index-Bh02-TAC.js → index-77Zsfw1L.js} +1 -1
  34. package/dist/client/assets/{index-1IWusiUu.js → index-B-ykibZc.js} +1 -1
  35. package/dist/client/assets/{index-CjIZcCsd.js → index-B4tnEEIn.js} +1 -1
  36. package/dist/client/assets/{index-B5-KuoCn.js → index-B5uomtiy.js} +1 -1
  37. package/dist/client/assets/{index-CrWN-rZL.js → index-B88feehM.js} +1 -1
  38. package/dist/client/assets/index-BcBVeLUQ.js +1 -0
  39. package/dist/client/assets/{index-By0VjYTD.js → index-C-C9mKoY.js} +1 -1
  40. package/dist/client/assets/{index-GqTH-hCs.js → index-CMo5ODkf.js} +1 -1
  41. package/dist/client/assets/{index-BERL9iqq.js → index-CdluPYIx.js} +1 -1
  42. package/dist/client/assets/{index-Cunx_dNp.js → index-DSFghmZy.js} +1 -1
  43. package/dist/client/assets/{index-oW3oul3c.js → index-DZmSJzM1.js} +1 -1
  44. package/dist/client/assets/{index-Cg0ZZSF_.js → index-DZzn2dZy.js} +1 -1
  45. package/dist/client/assets/index-JHbl19K1.js +7 -0
  46. package/dist/client/assets/{infoDiagram-HS3SLOUP-B_qM6pDv.js → infoDiagram-HS3SLOUP-DcWJUKNo.js} +1 -1
  47. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DTM3hwpa.js → journeyDiagram-XKPGCS4Q-B1eYWUg8.js} +5 -5
  48. package/dist/client/assets/{kanban-definition-3W4ZIXB7-B-SYRVBz.js → kanban-definition-3W4ZIXB7-CoGkx0OC.js} +6 -6
  49. package/dist/client/assets/{layout-BKMHlUnr.js → layout-DXGgoCg7.js} +1 -1
  50. package/dist/client/assets/main-DMSfbQvZ.css +1 -0
  51. package/dist/client/assets/{main-DFazIJQl.js → main-DcSebxeX.js} +277 -273
  52. package/dist/client/assets/{mindmap-definition-VGOIOE7T-Dt3thgpD.js → mindmap-definition-VGOIOE7T-4J9ZiNh-.js} +4 -4
  53. package/dist/client/assets/{pieDiagram-ADFJNKIX-5PIGWxue.js → pieDiagram-ADFJNKIX-Dz9eWfPg.js} +3 -3
  54. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-4zkd2IVs.js → quadrantDiagram-AYHSOK5B--yPYcR3C.js} +1 -1
  55. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DjXgbXXX.js → requirementDiagram-UZGBJVZJ-HB7tyR-W.js} +1 -1
  56. package/dist/client/assets/sankeyDiagram-TZEHDZUN-C6mCZD25.js +10 -0
  57. package/dist/client/assets/{sequenceDiagram-WL72ISMW-gEn86t4_.js → sequenceDiagram-WL72ISMW-Ba7EWZAL.js} +6 -6
  58. package/dist/client/assets/{stateDiagram-FKZM4ZOC-BKnMRzie.js → stateDiagram-FKZM4ZOC-CAGNGayP.js} +1 -1
  59. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CIpdvrLu.js +1 -0
  60. package/dist/client/assets/{timeline-definition-IT6M3QCI-CZWSQmlt.js → timeline-definition-IT6M3QCI-gGVtOeF6.js} +2 -2
  61. package/dist/client/assets/{treemap-GDKQZRPO-BL3I0InS.js → treemap-GDKQZRPO-DInnPD7u.js} +1 -1
  62. package/dist/client/assets/{worktree._worktreeId-DbLgzjwP.js → worktree._worktreeId-BAsnlzKV.js} +1 -1
  63. package/dist/client/assets/{worktree._worktreeId-BdiLGtrz.js → worktree._worktreeId-BmNQ8at6.js} +1 -1
  64. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CcsXglTm.js → xychartDiagram-PRI3JC2R-Bl8fw_00.js} +1 -1
  65. package/dist/openapi.json +1857 -210
  66. package/dist/start-server.mjs +2966 -1568
  67. package/package.json +9 -9
  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",
@@ -2147,12 +2153,24 @@
2147
2153
  ],
2148
2154
  "description": "The command to run on the worker by hand, shown when the button cannot be."
2149
2155
  },
2156
+ "capabilities": {
2157
+ "type": "array",
2158
+ "items": {
2159
+ "type": "string"
2160
+ }
2161
+ },
2150
2162
  "sleepError": {
2151
2163
  "type": [
2152
2164
  "string",
2153
2165
  "null"
2154
2166
  ]
2155
2167
  },
2168
+ "extensionServices": {
2169
+ "type": "array",
2170
+ "items": {
2171
+ "$ref": "#/components/schemas/ExtensionServiceView"
2172
+ }
2173
+ },
2156
2174
  "id": {
2157
2175
  "type": "string"
2158
2176
  },
@@ -2233,13 +2251,6 @@
2233
2251
  },
2234
2252
  "description": "Directories the worker serves worktrees from."
2235
2253
  },
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
2254
  "home": {
2244
2255
  "type": [
2245
2256
  "string",
@@ -2280,7 +2291,9 @@
2280
2291
  "canUpdate",
2281
2292
  "updateBlockedReason",
2282
2293
  "manualCommand",
2294
+ "capabilities",
2283
2295
  "sleepError",
2296
+ "extensionServices",
2284
2297
  "id",
2285
2298
  "name",
2286
2299
  "mode",
@@ -2293,7 +2306,6 @@
2293
2306
  "agents",
2294
2307
  "report",
2295
2308
  "roots",
2296
- "capabilities",
2297
2309
  "home",
2298
2310
  "tools",
2299
2311
  "usable",
@@ -8300,11 +8312,11 @@
8300
8312
  }
8301
8313
  }
8302
8314
  },
8303
- "/extensions.install": {
8315
+ "/editors.register": {
8304
8316
  "post": {
8305
- "operationId": "extensions.install",
8317
+ "operationId": "editors.register",
8306
8318
  "tags": [
8307
- "extensions"
8319
+ "editors"
8308
8320
  ],
8309
8321
  "responses": {
8310
8322
  "200": {
@@ -8320,78 +8332,13 @@
8320
8332
  "data": {
8321
8333
  "type": "object",
8322
8334
  "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
8335
+ "ok": {
8336
+ "type": "boolean",
8337
+ "const": true
8387
8338
  }
8388
8339
  },
8389
8340
  "required": [
8390
- "id",
8391
- "name",
8392
- "version",
8393
- "extensionApi",
8394
- "contributes"
8341
+ "ok"
8395
8342
  ],
8396
8343
  "additionalProperties": false
8397
8344
  }
@@ -8419,15 +8366,31 @@
8419
8366
  "schema": {
8420
8367
  "type": "object",
8421
8368
  "properties": {
8422
- "url": {
8369
+ "worktreeId": {
8423
8370
  "type": "string"
8424
8371
  },
8425
- "sha256": {
8372
+ "clientId": {
8373
+ "type": "string"
8374
+ },
8375
+ "file": {
8376
+ "type": "string"
8377
+ },
8378
+ "extensionId": {
8379
+ "type": "string"
8380
+ },
8381
+ "editorId": {
8426
8382
  "type": "string"
8383
+ },
8384
+ "dirty": {
8385
+ "type": "boolean"
8427
8386
  }
8428
8387
  },
8429
8388
  "required": [
8430
- "url"
8389
+ "worktreeId",
8390
+ "clientId",
8391
+ "file",
8392
+ "extensionId",
8393
+ "editorId"
8431
8394
  ],
8432
8395
  "additionalProperties": false
8433
8396
  }
@@ -8436,11 +8399,11 @@
8436
8399
  }
8437
8400
  }
8438
8401
  },
8439
- "/extensions.remove": {
8402
+ "/editors.unregister": {
8440
8403
  "post": {
8441
- "operationId": "extensions.remove",
8404
+ "operationId": "editors.unregister",
8442
8405
  "tags": [
8443
- "extensions"
8406
+ "editors"
8444
8407
  ],
8445
8408
  "responses": {
8446
8409
  "200": {
@@ -8490,12 +8453,24 @@
8490
8453
  "schema": {
8491
8454
  "type": "object",
8492
8455
  "properties": {
8493
- "id": {
8456
+ "worktreeId": {
8457
+ "type": "string"
8458
+ },
8459
+ "clientId": {
8460
+ "type": "string"
8461
+ },
8462
+ "file": {
8463
+ "type": "string"
8464
+ },
8465
+ "extensionId": {
8494
8466
  "type": "string"
8495
8467
  }
8496
8468
  },
8497
8469
  "required": [
8498
- "id"
8470
+ "worktreeId",
8471
+ "clientId",
8472
+ "file",
8473
+ "extensionId"
8499
8474
  ],
8500
8475
  "additionalProperties": false
8501
8476
  }
@@ -8504,11 +8479,11 @@
8504
8479
  }
8505
8480
  }
8506
8481
  },
8507
- "/extensions.list": {
8508
- "get": {
8509
- "operationId": "extensions.list",
8482
+ "/editors.result": {
8483
+ "post": {
8484
+ "operationId": "editors.result",
8510
8485
  "tags": [
8511
- "extensions"
8486
+ "editors"
8512
8487
  ],
8513
8488
  "responses": {
8514
8489
  "200": {
@@ -8522,7 +8497,16 @@
8522
8497
  "type": "object",
8523
8498
  "properties": {
8524
8499
  "data": {
8525
- "$ref": "#/components/schemas/ExtensionList"
8500
+ "type": "object",
8501
+ "properties": {
8502
+ "accepted": {
8503
+ "type": "boolean"
8504
+ }
8505
+ },
8506
+ "required": [
8507
+ "accepted"
8508
+ ],
8509
+ "additionalProperties": false
8526
8510
  }
8527
8511
  },
8528
8512
  "required": [
@@ -8540,14 +8524,42 @@
8540
8524
  "default": {
8541
8525
  "$ref": "#/components/responses/Error"
8542
8526
  }
8527
+ },
8528
+ "requestBody": {
8529
+ "required": true,
8530
+ "content": {
8531
+ "application/json": {
8532
+ "schema": {
8533
+ "type": "object",
8534
+ "properties": {
8535
+ "message": {
8536
+ "type": "object",
8537
+ "additionalProperties": {}
8538
+ },
8539
+ "clientId": {
8540
+ "type": "string"
8541
+ },
8542
+ "callId": {
8543
+ "type": "string"
8544
+ }
8545
+ },
8546
+ "required": [
8547
+ "message",
8548
+ "clientId",
8549
+ "callId"
8550
+ ],
8551
+ "additionalProperties": false
8552
+ }
8553
+ }
8554
+ }
8543
8555
  }
8544
8556
  }
8545
8557
  },
8546
- "/extensions.reload": {
8558
+ "/editors.setSelection": {
8547
8559
  "post": {
8548
- "operationId": "extensions.reload",
8560
+ "operationId": "editors.setSelection",
8549
8561
  "tags": [
8550
- "extensions"
8562
+ "editors"
8551
8563
  ],
8552
8564
  "responses": {
8553
8565
  "200": {
@@ -8561,7 +8573,1601 @@
8561
8573
  "type": "object",
8562
8574
  "properties": {
8563
8575
  "data": {
8564
- "$ref": "#/components/schemas/ExtensionList"
8576
+ "type": "object",
8577
+ "properties": {
8578
+ "ok": {
8579
+ "type": "boolean",
8580
+ "const": true
8581
+ }
8582
+ },
8583
+ "required": [
8584
+ "ok"
8585
+ ],
8586
+ "additionalProperties": false
8587
+ }
8588
+ },
8589
+ "required": [
8590
+ "data"
8591
+ ]
8592
+ }
8593
+ },
8594
+ "required": [
8595
+ "result"
8596
+ ]
8597
+ }
8598
+ }
8599
+ }
8600
+ },
8601
+ "default": {
8602
+ "$ref": "#/components/responses/Error"
8603
+ }
8604
+ },
8605
+ "requestBody": {
8606
+ "required": true,
8607
+ "content": {
8608
+ "application/json": {
8609
+ "schema": {
8610
+ "type": "object",
8611
+ "properties": {
8612
+ "worktreeId": {
8613
+ "type": "string"
8614
+ },
8615
+ "clientId": {
8616
+ "type": "string"
8617
+ },
8618
+ "file": {
8619
+ "type": "string"
8620
+ },
8621
+ "extensionId": {
8622
+ "type": "string"
8623
+ },
8624
+ "editorId": {
8625
+ "type": "string"
8626
+ },
8627
+ "selection": {
8628
+ "oneOf": [
8629
+ {
8630
+ "type": "object",
8631
+ "properties": {
8632
+ "label": {
8633
+ "type": "string"
8634
+ },
8635
+ "kind": {
8636
+ "type": "string"
8637
+ },
8638
+ "address": {
8639
+ "type": "string"
8640
+ },
8641
+ "text": {
8642
+ "type": "string"
8643
+ },
8644
+ "rect": {
8645
+ "type": "object",
8646
+ "properties": {
8647
+ "x": {
8648
+ "type": "number"
8649
+ },
8650
+ "y": {
8651
+ "type": "number"
8652
+ },
8653
+ "width": {
8654
+ "type": "number"
8655
+ },
8656
+ "height": {
8657
+ "type": "number"
8658
+ }
8659
+ },
8660
+ "required": [
8661
+ "x",
8662
+ "y",
8663
+ "width",
8664
+ "height"
8665
+ ],
8666
+ "additionalProperties": false
8667
+ }
8668
+ },
8669
+ "required": [
8670
+ "label",
8671
+ "kind",
8672
+ "address"
8673
+ ],
8674
+ "additionalProperties": false
8675
+ },
8676
+ {
8677
+ "type": "null"
8678
+ }
8679
+ ]
8680
+ }
8681
+ },
8682
+ "required": [
8683
+ "worktreeId",
8684
+ "clientId",
8685
+ "file",
8686
+ "extensionId",
8687
+ "editorId",
8688
+ "selection"
8689
+ ],
8690
+ "additionalProperties": false
8691
+ }
8692
+ }
8693
+ }
8694
+ }
8695
+ }
8696
+ },
8697
+ "/editors.selection": {
8698
+ "get": {
8699
+ "operationId": "editors.selection",
8700
+ "tags": [
8701
+ "editors"
8702
+ ],
8703
+ "responses": {
8704
+ "200": {
8705
+ "description": "Successful response",
8706
+ "content": {
8707
+ "application/json": {
8708
+ "schema": {
8709
+ "type": "object",
8710
+ "properties": {
8711
+ "result": {
8712
+ "type": "object",
8713
+ "properties": {
8714
+ "data": {
8715
+ "oneOf": [
8716
+ {
8717
+ "$ref": "#/components/schemas/SelectionState"
8718
+ },
8719
+ {
8720
+ "type": "null"
8721
+ }
8722
+ ]
8723
+ }
8724
+ },
8725
+ "required": [
8726
+ "data"
8727
+ ]
8728
+ }
8729
+ },
8730
+ "required": [
8731
+ "result"
8732
+ ]
8733
+ }
8734
+ }
8735
+ }
8736
+ },
8737
+ "default": {
8738
+ "$ref": "#/components/responses/Error"
8739
+ }
8740
+ },
8741
+ "parameters": [
8742
+ {
8743
+ "name": "input",
8744
+ "in": "query",
8745
+ "required": true,
8746
+ "style": "deepObject",
8747
+ "content": {
8748
+ "application/json": {
8749
+ "schema": {
8750
+ "type": "object",
8751
+ "properties": {
8752
+ "worktreeId": {
8753
+ "type": "string"
8754
+ }
8755
+ },
8756
+ "required": [
8757
+ "worktreeId"
8758
+ ],
8759
+ "additionalProperties": false
8760
+ }
8761
+ }
8762
+ }
8763
+ }
8764
+ ]
8765
+ }
8766
+ },
8767
+ "/extensions.catalog": {
8768
+ "get": {
8769
+ "operationId": "extensions.catalog",
8770
+ "tags": [
8771
+ "extensions"
8772
+ ],
8773
+ "responses": {
8774
+ "200": {
8775
+ "description": "Successful response",
8776
+ "content": {
8777
+ "application/json": {
8778
+ "schema": {
8779
+ "type": "object",
8780
+ "properties": {
8781
+ "result": {
8782
+ "type": "object",
8783
+ "properties": {
8784
+ "data": {
8785
+ "type": "object",
8786
+ "properties": {
8787
+ "available": {
8788
+ "type": "boolean"
8789
+ },
8790
+ "entries": {
8791
+ "type": "array",
8792
+ "items": {
8793
+ "type": "object",
8794
+ "properties": {
8795
+ "official": {
8796
+ "type": "boolean",
8797
+ "const": true
8798
+ },
8799
+ "installed": {
8800
+ "type": [
8801
+ "string",
8802
+ "null"
8803
+ ]
8804
+ },
8805
+ "updateAvailable": {
8806
+ "type": "boolean"
8807
+ },
8808
+ "compatible": {
8809
+ "type": "boolean"
8810
+ },
8811
+ "id": {
8812
+ "type": "string"
8813
+ },
8814
+ "url": {
8815
+ "type": "string"
8816
+ },
8817
+ "description": {
8818
+ "type": "string"
8819
+ },
8820
+ "name": {
8821
+ "type": "string"
8822
+ },
8823
+ "requires": {
8824
+ "type": "array",
8825
+ "items": {
8826
+ "type": "string"
8827
+ }
8828
+ },
8829
+ "worker": {
8830
+ "type": "boolean"
8831
+ },
8832
+ "version": {
8833
+ "type": "string"
8834
+ },
8835
+ "sha256": {
8836
+ "type": "string"
8837
+ },
8838
+ "minBand": {
8839
+ "type": "string"
8840
+ }
8841
+ },
8842
+ "required": [
8843
+ "official",
8844
+ "installed",
8845
+ "updateAvailable",
8846
+ "compatible",
8847
+ "id",
8848
+ "url",
8849
+ "description",
8850
+ "name",
8851
+ "requires",
8852
+ "worker",
8853
+ "version",
8854
+ "sha256",
8855
+ "minBand"
8856
+ ],
8857
+ "additionalProperties": false
8858
+ }
8859
+ }
8860
+ },
8861
+ "required": [
8862
+ "available",
8863
+ "entries"
8864
+ ],
8865
+ "additionalProperties": false
8866
+ }
8867
+ },
8868
+ "required": [
8869
+ "data"
8870
+ ]
8871
+ }
8872
+ },
8873
+ "required": [
8874
+ "result"
8875
+ ]
8876
+ }
8877
+ }
8878
+ }
8879
+ },
8880
+ "default": {
8881
+ "$ref": "#/components/responses/Error"
8882
+ }
8883
+ }
8884
+ }
8885
+ },
8886
+ "/extensions.refreshCatalog": {
8887
+ "post": {
8888
+ "operationId": "extensions.refreshCatalog",
8889
+ "tags": [
8890
+ "extensions"
8891
+ ],
8892
+ "responses": {
8893
+ "200": {
8894
+ "description": "Successful response",
8895
+ "content": {
8896
+ "application/json": {
8897
+ "schema": {
8898
+ "type": "object",
8899
+ "properties": {
8900
+ "result": {
8901
+ "type": "object",
8902
+ "properties": {
8903
+ "data": {
8904
+ "type": "object",
8905
+ "properties": {
8906
+ "available": {
8907
+ "type": "boolean"
8908
+ }
8909
+ },
8910
+ "required": [
8911
+ "available"
8912
+ ],
8913
+ "additionalProperties": false
8914
+ }
8915
+ },
8916
+ "required": [
8917
+ "data"
8918
+ ]
8919
+ }
8920
+ },
8921
+ "required": [
8922
+ "result"
8923
+ ]
8924
+ }
8925
+ }
8926
+ }
8927
+ },
8928
+ "default": {
8929
+ "$ref": "#/components/responses/Error"
8930
+ }
8931
+ }
8932
+ }
8933
+ },
8934
+ "/extensions.installOfficial": {
8935
+ "post": {
8936
+ "operationId": "extensions.installOfficial",
8937
+ "tags": [
8938
+ "extensions"
8939
+ ],
8940
+ "responses": {
8941
+ "200": {
8942
+ "description": "Successful response",
8943
+ "content": {
8944
+ "application/json": {
8945
+ "schema": {
8946
+ "type": "object",
8947
+ "properties": {
8948
+ "result": {
8949
+ "type": "object",
8950
+ "properties": {
8951
+ "data": {
8952
+ "type": "object",
8953
+ "properties": {
8954
+ "id": {
8955
+ "type": "string"
8956
+ },
8957
+ "name": {
8958
+ "type": "string"
8959
+ },
8960
+ "version": {
8961
+ "type": "string"
8962
+ },
8963
+ "extensionApi": {
8964
+ "type": "number",
8965
+ "const": 1
8966
+ },
8967
+ "contributes": {
8968
+ "type": "object",
8969
+ "properties": {
8970
+ "tools": {
8971
+ "type": "array",
8972
+ "items": {
8973
+ "type": "object",
8974
+ "properties": {
8975
+ "agent": {
8976
+ "type": "boolean",
8977
+ "description": "`false` leaves the tool out of the agent's list."
8978
+ },
8979
+ "description": {
8980
+ "type": "string"
8981
+ },
8982
+ "name": {
8983
+ "type": "string"
8984
+ },
8985
+ "method": {
8986
+ "type": "string"
8987
+ },
8988
+ "inputSchema": {
8989
+ "type": "object",
8990
+ "additionalProperties": {}
8991
+ },
8992
+ "service": {
8993
+ "type": "string",
8994
+ "description": "The `id` of one of this extension's worker services."
8995
+ }
8996
+ },
8997
+ "required": [
8998
+ "agent",
8999
+ "description",
9000
+ "name",
9001
+ "method",
9002
+ "inputSchema",
9003
+ "service"
9004
+ ],
9005
+ "additionalProperties": false
9006
+ }
9007
+ },
9008
+ "fileEditors": {
9009
+ "type": "array",
9010
+ "items": {
9011
+ "type": "object",
9012
+ "properties": {
9013
+ "id": {
9014
+ "type": "string"
9015
+ },
9016
+ "label": {
9017
+ "type": "string"
9018
+ },
9019
+ "binary": {
9020
+ "type": "boolean",
9021
+ "description": "The editor reads and writes bytes, not text."
9022
+ },
9023
+ "selector": {
9024
+ "type": "array",
9025
+ "items": {
9026
+ "type": "string"
9027
+ }
9028
+ },
9029
+ "default": {
9030
+ "type": "boolean"
9031
+ },
9032
+ "entry": {
9033
+ "type": "string"
9034
+ },
9035
+ "tools": {
9036
+ "type": "string",
9037
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9038
+ }
9039
+ },
9040
+ "required": [
9041
+ "id",
9042
+ "label",
9043
+ "binary",
9044
+ "selector",
9045
+ "default",
9046
+ "entry"
9047
+ ],
9048
+ "additionalProperties": false
9049
+ }
9050
+ },
9051
+ "workerServices": {
9052
+ "type": "array",
9053
+ "items": {
9054
+ "type": "object",
9055
+ "properties": {
9056
+ "id": {
9057
+ "type": "string"
9058
+ },
9059
+ "requires": {
9060
+ "type": "array",
9061
+ "items": {
9062
+ "type": "string"
9063
+ }
9064
+ },
9065
+ "capability": {
9066
+ "type": "string",
9067
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9068
+ },
9069
+ "entry": {
9070
+ "type": "string"
9071
+ }
9072
+ },
9073
+ "required": [
9074
+ "id",
9075
+ "requires",
9076
+ "capability",
9077
+ "entry"
9078
+ ],
9079
+ "additionalProperties": false
9080
+ }
9081
+ },
9082
+ "panels": {
9083
+ "type": "array",
9084
+ "items": {
9085
+ "type": "object",
9086
+ "properties": {
9087
+ "id": {
9088
+ "type": "string"
9089
+ },
9090
+ "label": {
9091
+ "type": "string"
9092
+ },
9093
+ "capability": {
9094
+ "type": "string",
9095
+ "description": "The `capability` of one of this extension's worker services."
9096
+ },
9097
+ "entry": {
9098
+ "type": "string"
9099
+ },
9100
+ "icon": {
9101
+ "type": "string",
9102
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9103
+ }
9104
+ },
9105
+ "required": [
9106
+ "id",
9107
+ "label",
9108
+ "capability",
9109
+ "entry"
9110
+ ],
9111
+ "additionalProperties": false
9112
+ }
9113
+ }
9114
+ },
9115
+ "required": [
9116
+ "tools",
9117
+ "fileEditors",
9118
+ "workerServices",
9119
+ "panels"
9120
+ ],
9121
+ "additionalProperties": false
9122
+ }
9123
+ },
9124
+ "required": [
9125
+ "id",
9126
+ "name",
9127
+ "version",
9128
+ "extensionApi",
9129
+ "contributes"
9130
+ ],
9131
+ "additionalProperties": false
9132
+ }
9133
+ },
9134
+ "required": [
9135
+ "data"
9136
+ ]
9137
+ }
9138
+ },
9139
+ "required": [
9140
+ "result"
9141
+ ]
9142
+ }
9143
+ }
9144
+ }
9145
+ },
9146
+ "default": {
9147
+ "$ref": "#/components/responses/Error"
9148
+ }
9149
+ },
9150
+ "requestBody": {
9151
+ "required": true,
9152
+ "content": {
9153
+ "application/json": {
9154
+ "schema": {
9155
+ "type": "object",
9156
+ "properties": {
9157
+ "id": {
9158
+ "type": "string"
9159
+ }
9160
+ },
9161
+ "required": [
9162
+ "id"
9163
+ ],
9164
+ "additionalProperties": false
9165
+ }
9166
+ }
9167
+ }
9168
+ }
9169
+ }
9170
+ },
9171
+ "/extensions.install": {
9172
+ "post": {
9173
+ "operationId": "extensions.install",
9174
+ "tags": [
9175
+ "extensions"
9176
+ ],
9177
+ "responses": {
9178
+ "200": {
9179
+ "description": "Successful response",
9180
+ "content": {
9181
+ "application/json": {
9182
+ "schema": {
9183
+ "type": "object",
9184
+ "properties": {
9185
+ "result": {
9186
+ "type": "object",
9187
+ "properties": {
9188
+ "data": {
9189
+ "type": "object",
9190
+ "properties": {
9191
+ "id": {
9192
+ "type": "string"
9193
+ },
9194
+ "name": {
9195
+ "type": "string"
9196
+ },
9197
+ "version": {
9198
+ "type": "string"
9199
+ },
9200
+ "extensionApi": {
9201
+ "type": "number",
9202
+ "const": 1
9203
+ },
9204
+ "contributes": {
9205
+ "type": "object",
9206
+ "properties": {
9207
+ "tools": {
9208
+ "type": "array",
9209
+ "items": {
9210
+ "type": "object",
9211
+ "properties": {
9212
+ "agent": {
9213
+ "type": "boolean",
9214
+ "description": "`false` leaves the tool out of the agent's list."
9215
+ },
9216
+ "description": {
9217
+ "type": "string"
9218
+ },
9219
+ "name": {
9220
+ "type": "string"
9221
+ },
9222
+ "method": {
9223
+ "type": "string"
9224
+ },
9225
+ "inputSchema": {
9226
+ "type": "object",
9227
+ "additionalProperties": {}
9228
+ },
9229
+ "service": {
9230
+ "type": "string",
9231
+ "description": "The `id` of one of this extension's worker services."
9232
+ }
9233
+ },
9234
+ "required": [
9235
+ "agent",
9236
+ "description",
9237
+ "name",
9238
+ "method",
9239
+ "inputSchema",
9240
+ "service"
9241
+ ],
9242
+ "additionalProperties": false
9243
+ }
9244
+ },
9245
+ "fileEditors": {
9246
+ "type": "array",
9247
+ "items": {
9248
+ "type": "object",
9249
+ "properties": {
9250
+ "id": {
9251
+ "type": "string"
9252
+ },
9253
+ "label": {
9254
+ "type": "string"
9255
+ },
9256
+ "binary": {
9257
+ "type": "boolean",
9258
+ "description": "The editor reads and writes bytes, not text."
9259
+ },
9260
+ "selector": {
9261
+ "type": "array",
9262
+ "items": {
9263
+ "type": "string"
9264
+ }
9265
+ },
9266
+ "default": {
9267
+ "type": "boolean"
9268
+ },
9269
+ "entry": {
9270
+ "type": "string"
9271
+ },
9272
+ "tools": {
9273
+ "type": "string",
9274
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9275
+ }
9276
+ },
9277
+ "required": [
9278
+ "id",
9279
+ "label",
9280
+ "binary",
9281
+ "selector",
9282
+ "default",
9283
+ "entry"
9284
+ ],
9285
+ "additionalProperties": false
9286
+ }
9287
+ },
9288
+ "workerServices": {
9289
+ "type": "array",
9290
+ "items": {
9291
+ "type": "object",
9292
+ "properties": {
9293
+ "id": {
9294
+ "type": "string"
9295
+ },
9296
+ "requires": {
9297
+ "type": "array",
9298
+ "items": {
9299
+ "type": "string"
9300
+ }
9301
+ },
9302
+ "capability": {
9303
+ "type": "string",
9304
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9305
+ },
9306
+ "entry": {
9307
+ "type": "string"
9308
+ }
9309
+ },
9310
+ "required": [
9311
+ "id",
9312
+ "requires",
9313
+ "capability",
9314
+ "entry"
9315
+ ],
9316
+ "additionalProperties": false
9317
+ }
9318
+ },
9319
+ "panels": {
9320
+ "type": "array",
9321
+ "items": {
9322
+ "type": "object",
9323
+ "properties": {
9324
+ "id": {
9325
+ "type": "string"
9326
+ },
9327
+ "label": {
9328
+ "type": "string"
9329
+ },
9330
+ "capability": {
9331
+ "type": "string",
9332
+ "description": "The `capability` of one of this extension's worker services."
9333
+ },
9334
+ "entry": {
9335
+ "type": "string"
9336
+ },
9337
+ "icon": {
9338
+ "type": "string",
9339
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9340
+ }
9341
+ },
9342
+ "required": [
9343
+ "id",
9344
+ "label",
9345
+ "capability",
9346
+ "entry"
9347
+ ],
9348
+ "additionalProperties": false
9349
+ }
9350
+ }
9351
+ },
9352
+ "required": [
9353
+ "tools",
9354
+ "fileEditors",
9355
+ "workerServices",
9356
+ "panels"
9357
+ ],
9358
+ "additionalProperties": false
9359
+ }
9360
+ },
9361
+ "required": [
9362
+ "id",
9363
+ "name",
9364
+ "version",
9365
+ "extensionApi",
9366
+ "contributes"
9367
+ ],
9368
+ "additionalProperties": false
9369
+ }
9370
+ },
9371
+ "required": [
9372
+ "data"
9373
+ ]
9374
+ }
9375
+ },
9376
+ "required": [
9377
+ "result"
9378
+ ]
9379
+ }
9380
+ }
9381
+ }
9382
+ },
9383
+ "default": {
9384
+ "$ref": "#/components/responses/Error"
9385
+ }
9386
+ },
9387
+ "requestBody": {
9388
+ "required": true,
9389
+ "content": {
9390
+ "application/json": {
9391
+ "schema": {
9392
+ "type": "object",
9393
+ "properties": {
9394
+ "url": {
9395
+ "type": "string"
9396
+ },
9397
+ "sha256": {
9398
+ "type": "string"
9399
+ }
9400
+ },
9401
+ "required": [
9402
+ "url"
9403
+ ],
9404
+ "additionalProperties": false
9405
+ }
9406
+ }
9407
+ }
9408
+ }
9409
+ }
9410
+ },
9411
+ "/extensions.remove": {
9412
+ "post": {
9413
+ "operationId": "extensions.remove",
9414
+ "tags": [
9415
+ "extensions"
9416
+ ],
9417
+ "responses": {
9418
+ "200": {
9419
+ "description": "Successful response",
9420
+ "content": {
9421
+ "application/json": {
9422
+ "schema": {
9423
+ "type": "object",
9424
+ "properties": {
9425
+ "result": {
9426
+ "type": "object",
9427
+ "properties": {
9428
+ "data": {
9429
+ "type": "object",
9430
+ "properties": {
9431
+ "ok": {
9432
+ "type": "boolean",
9433
+ "const": true
9434
+ }
9435
+ },
9436
+ "required": [
9437
+ "ok"
9438
+ ],
9439
+ "additionalProperties": false
9440
+ }
9441
+ },
9442
+ "required": [
9443
+ "data"
9444
+ ]
9445
+ }
9446
+ },
9447
+ "required": [
9448
+ "result"
9449
+ ]
9450
+ }
9451
+ }
9452
+ }
9453
+ },
9454
+ "default": {
9455
+ "$ref": "#/components/responses/Error"
9456
+ }
9457
+ },
9458
+ "requestBody": {
9459
+ "required": true,
9460
+ "content": {
9461
+ "application/json": {
9462
+ "schema": {
9463
+ "type": "object",
9464
+ "properties": {
9465
+ "id": {
9466
+ "type": "string"
9467
+ }
9468
+ },
9469
+ "required": [
9470
+ "id"
9471
+ ],
9472
+ "additionalProperties": false
9473
+ }
9474
+ }
9475
+ }
9476
+ }
9477
+ }
9478
+ },
9479
+ "/extensions.callService": {
9480
+ "post": {
9481
+ "operationId": "extensions.callService",
9482
+ "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.",
9483
+ "tags": [
9484
+ "extensions"
9485
+ ],
9486
+ "responses": {
9487
+ "200": {
9488
+ "description": "Successful response",
9489
+ "content": {
9490
+ "application/json": {
9491
+ "schema": {
9492
+ "type": "object",
9493
+ "properties": {
9494
+ "result": {
9495
+ "type": "object",
9496
+ "properties": {
9497
+ "data": {
9498
+ "type": "object",
9499
+ "properties": {
9500
+ "result": {
9501
+ "type": [
9502
+ "object",
9503
+ "null"
9504
+ ]
9505
+ }
9506
+ },
9507
+ "required": [
9508
+ "result"
9509
+ ],
9510
+ "additionalProperties": false
9511
+ }
9512
+ },
9513
+ "required": [
9514
+ "data"
9515
+ ]
9516
+ }
9517
+ },
9518
+ "required": [
9519
+ "result"
9520
+ ]
9521
+ }
9522
+ }
9523
+ }
9524
+ },
9525
+ "default": {
9526
+ "$ref": "#/components/responses/Error"
9527
+ }
9528
+ },
9529
+ "requestBody": {
9530
+ "required": true,
9531
+ "content": {
9532
+ "application/json": {
9533
+ "schema": {
9534
+ "type": "object",
9535
+ "properties": {
9536
+ "worktreeId": {
9537
+ "type": "string"
9538
+ },
9539
+ "capability": {
9540
+ "type": "string"
9541
+ },
9542
+ "method": {
9543
+ "type": "string"
9544
+ },
9545
+ "params": {}
9546
+ },
9547
+ "required": [
9548
+ "worktreeId",
9549
+ "capability",
9550
+ "method"
9551
+ ],
9552
+ "additionalProperties": false
9553
+ }
9554
+ }
9555
+ }
9556
+ }
9557
+ }
9558
+ },
9559
+ "/extensions.panelCall": {
9560
+ "post": {
9561
+ "operationId": "extensions.panelCall",
9562
+ "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.*`.",
9563
+ "tags": [
9564
+ "extensions"
9565
+ ],
9566
+ "responses": {
9567
+ "200": {
9568
+ "description": "Successful response",
9569
+ "content": {
9570
+ "application/json": {
9571
+ "schema": {
9572
+ "type": "object",
9573
+ "properties": {
9574
+ "result": {
9575
+ "type": "object",
9576
+ "properties": {
9577
+ "data": {
9578
+ "type": "object",
9579
+ "properties": {
9580
+ "result": {
9581
+ "type": [
9582
+ "object",
9583
+ "null"
9584
+ ]
9585
+ }
9586
+ },
9587
+ "required": [
9588
+ "result"
9589
+ ],
9590
+ "additionalProperties": false
9591
+ }
9592
+ },
9593
+ "required": [
9594
+ "data"
9595
+ ]
9596
+ }
9597
+ },
9598
+ "required": [
9599
+ "result"
9600
+ ]
9601
+ }
9602
+ }
9603
+ }
9604
+ },
9605
+ "default": {
9606
+ "$ref": "#/components/responses/Error"
9607
+ }
9608
+ },
9609
+ "requestBody": {
9610
+ "required": true,
9611
+ "content": {
9612
+ "application/json": {
9613
+ "schema": {
9614
+ "type": "object",
9615
+ "properties": {
9616
+ "worktreeId": {
9617
+ "type": "string"
9618
+ },
9619
+ "panelId": {
9620
+ "type": "string"
9621
+ },
9622
+ "extensionId": {
9623
+ "type": "string"
9624
+ },
9625
+ "method": {
9626
+ "type": "string"
9627
+ },
9628
+ "params": {}
9629
+ },
9630
+ "required": [
9631
+ "worktreeId",
9632
+ "panelId",
9633
+ "extensionId",
9634
+ "method"
9635
+ ],
9636
+ "additionalProperties": false
9637
+ }
9638
+ }
9639
+ }
9640
+ }
9641
+ }
9642
+ },
9643
+ "/extensions.list": {
9644
+ "get": {
9645
+ "operationId": "extensions.list",
9646
+ "tags": [
9647
+ "extensions"
9648
+ ],
9649
+ "responses": {
9650
+ "200": {
9651
+ "description": "Successful response",
9652
+ "content": {
9653
+ "application/json": {
9654
+ "schema": {
9655
+ "type": "object",
9656
+ "properties": {
9657
+ "result": {
9658
+ "type": "object",
9659
+ "properties": {
9660
+ "data": {
9661
+ "type": "object",
9662
+ "properties": {
9663
+ "sources": {
9664
+ "type": "array",
9665
+ "items": {
9666
+ "type": "object",
9667
+ "properties": {
9668
+ "id": {
9669
+ "type": "string"
9670
+ },
9671
+ "official": {
9672
+ "type": "boolean"
9673
+ },
9674
+ "source": {
9675
+ "type": "string",
9676
+ "enum": [
9677
+ "url",
9678
+ "file",
9679
+ "official"
9680
+ ]
9681
+ }
9682
+ },
9683
+ "required": [
9684
+ "id",
9685
+ "official",
9686
+ "source"
9687
+ ],
9688
+ "additionalProperties": false
9689
+ }
9690
+ },
9691
+ "extensions": {
9692
+ "type": "array",
9693
+ "items": {
9694
+ "type": "object",
9695
+ "properties": {
9696
+ "id": {
9697
+ "type": "string"
9698
+ },
9699
+ "name": {
9700
+ "type": "string"
9701
+ },
9702
+ "version": {
9703
+ "type": "string"
9704
+ },
9705
+ "extensionApi": {
9706
+ "type": "number",
9707
+ "const": 1
9708
+ },
9709
+ "contributes": {
9710
+ "type": "object",
9711
+ "properties": {
9712
+ "tools": {
9713
+ "type": "array",
9714
+ "items": {
9715
+ "type": "object",
9716
+ "properties": {
9717
+ "agent": {
9718
+ "type": "boolean",
9719
+ "description": "`false` leaves the tool out of the agent's list."
9720
+ },
9721
+ "description": {
9722
+ "type": "string"
9723
+ },
9724
+ "name": {
9725
+ "type": "string"
9726
+ },
9727
+ "method": {
9728
+ "type": "string"
9729
+ },
9730
+ "inputSchema": {
9731
+ "type": "object",
9732
+ "additionalProperties": {}
9733
+ },
9734
+ "service": {
9735
+ "type": "string",
9736
+ "description": "The `id` of one of this extension's worker services."
9737
+ }
9738
+ },
9739
+ "required": [
9740
+ "agent",
9741
+ "description",
9742
+ "name",
9743
+ "method",
9744
+ "inputSchema",
9745
+ "service"
9746
+ ],
9747
+ "additionalProperties": false
9748
+ }
9749
+ },
9750
+ "fileEditors": {
9751
+ "type": "array",
9752
+ "items": {
9753
+ "type": "object",
9754
+ "properties": {
9755
+ "id": {
9756
+ "type": "string"
9757
+ },
9758
+ "label": {
9759
+ "type": "string"
9760
+ },
9761
+ "binary": {
9762
+ "type": "boolean",
9763
+ "description": "The editor reads and writes bytes, not text."
9764
+ },
9765
+ "selector": {
9766
+ "type": "array",
9767
+ "items": {
9768
+ "type": "string"
9769
+ }
9770
+ },
9771
+ "default": {
9772
+ "type": "boolean"
9773
+ },
9774
+ "entry": {
9775
+ "type": "string"
9776
+ },
9777
+ "tools": {
9778
+ "type": "string",
9779
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
9780
+ }
9781
+ },
9782
+ "required": [
9783
+ "id",
9784
+ "label",
9785
+ "binary",
9786
+ "selector",
9787
+ "default",
9788
+ "entry"
9789
+ ],
9790
+ "additionalProperties": false
9791
+ }
9792
+ },
9793
+ "workerServices": {
9794
+ "type": "array",
9795
+ "items": {
9796
+ "type": "object",
9797
+ "properties": {
9798
+ "id": {
9799
+ "type": "string"
9800
+ },
9801
+ "requires": {
9802
+ "type": "array",
9803
+ "items": {
9804
+ "type": "string"
9805
+ }
9806
+ },
9807
+ "capability": {
9808
+ "type": "string",
9809
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
9810
+ },
9811
+ "entry": {
9812
+ "type": "string"
9813
+ }
9814
+ },
9815
+ "required": [
9816
+ "id",
9817
+ "requires",
9818
+ "capability",
9819
+ "entry"
9820
+ ],
9821
+ "additionalProperties": false
9822
+ }
9823
+ },
9824
+ "panels": {
9825
+ "type": "array",
9826
+ "items": {
9827
+ "type": "object",
9828
+ "properties": {
9829
+ "id": {
9830
+ "type": "string"
9831
+ },
9832
+ "label": {
9833
+ "type": "string"
9834
+ },
9835
+ "capability": {
9836
+ "type": "string",
9837
+ "description": "The `capability` of one of this extension's worker services."
9838
+ },
9839
+ "entry": {
9840
+ "type": "string"
9841
+ },
9842
+ "icon": {
9843
+ "type": "string",
9844
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
9845
+ }
9846
+ },
9847
+ "required": [
9848
+ "id",
9849
+ "label",
9850
+ "capability",
9851
+ "entry"
9852
+ ],
9853
+ "additionalProperties": false
9854
+ }
9855
+ }
9856
+ },
9857
+ "required": [
9858
+ "tools",
9859
+ "fileEditors",
9860
+ "workerServices",
9861
+ "panels"
9862
+ ],
9863
+ "additionalProperties": false
9864
+ }
9865
+ },
9866
+ "required": [
9867
+ "id",
9868
+ "name",
9869
+ "version",
9870
+ "extensionApi",
9871
+ "contributes"
9872
+ ],
9873
+ "additionalProperties": false
9874
+ }
9875
+ },
9876
+ "errors": {
9877
+ "type": "array",
9878
+ "items": {
9879
+ "$ref": "#/components/schemas/ExtensionProblem"
9880
+ }
9881
+ },
9882
+ "installs": {
9883
+ "type": "object",
9884
+ "additionalProperties": {
9885
+ "$ref": "#/components/schemas/InstallRecord"
9886
+ },
9887
+ "description": "Install records by extension id. A folder copied in by hand has none."
9888
+ }
9889
+ },
9890
+ "required": [
9891
+ "sources",
9892
+ "extensions",
9893
+ "errors",
9894
+ "installs"
9895
+ ],
9896
+ "additionalProperties": false
9897
+ }
9898
+ },
9899
+ "required": [
9900
+ "data"
9901
+ ]
9902
+ }
9903
+ },
9904
+ "required": [
9905
+ "result"
9906
+ ]
9907
+ }
9908
+ }
9909
+ }
9910
+ },
9911
+ "default": {
9912
+ "$ref": "#/components/responses/Error"
9913
+ }
9914
+ }
9915
+ }
9916
+ },
9917
+ "/extensions.reload": {
9918
+ "post": {
9919
+ "operationId": "extensions.reload",
9920
+ "tags": [
9921
+ "extensions"
9922
+ ],
9923
+ "responses": {
9924
+ "200": {
9925
+ "description": "Successful response",
9926
+ "content": {
9927
+ "application/json": {
9928
+ "schema": {
9929
+ "type": "object",
9930
+ "properties": {
9931
+ "result": {
9932
+ "type": "object",
9933
+ "properties": {
9934
+ "data": {
9935
+ "type": "object",
9936
+ "properties": {
9937
+ "sources": {
9938
+ "type": "array",
9939
+ "items": {
9940
+ "type": "object",
9941
+ "properties": {
9942
+ "id": {
9943
+ "type": "string"
9944
+ },
9945
+ "official": {
9946
+ "type": "boolean"
9947
+ },
9948
+ "source": {
9949
+ "type": "string",
9950
+ "enum": [
9951
+ "url",
9952
+ "file",
9953
+ "official"
9954
+ ]
9955
+ }
9956
+ },
9957
+ "required": [
9958
+ "id",
9959
+ "official",
9960
+ "source"
9961
+ ],
9962
+ "additionalProperties": false
9963
+ }
9964
+ },
9965
+ "extensions": {
9966
+ "type": "array",
9967
+ "items": {
9968
+ "type": "object",
9969
+ "properties": {
9970
+ "id": {
9971
+ "type": "string"
9972
+ },
9973
+ "name": {
9974
+ "type": "string"
9975
+ },
9976
+ "version": {
9977
+ "type": "string"
9978
+ },
9979
+ "extensionApi": {
9980
+ "type": "number",
9981
+ "const": 1
9982
+ },
9983
+ "contributes": {
9984
+ "type": "object",
9985
+ "properties": {
9986
+ "tools": {
9987
+ "type": "array",
9988
+ "items": {
9989
+ "type": "object",
9990
+ "properties": {
9991
+ "agent": {
9992
+ "type": "boolean",
9993
+ "description": "`false` leaves the tool out of the agent's list."
9994
+ },
9995
+ "description": {
9996
+ "type": "string"
9997
+ },
9998
+ "name": {
9999
+ "type": "string"
10000
+ },
10001
+ "method": {
10002
+ "type": "string"
10003
+ },
10004
+ "inputSchema": {
10005
+ "type": "object",
10006
+ "additionalProperties": {}
10007
+ },
10008
+ "service": {
10009
+ "type": "string",
10010
+ "description": "The `id` of one of this extension's worker services."
10011
+ }
10012
+ },
10013
+ "required": [
10014
+ "agent",
10015
+ "description",
10016
+ "name",
10017
+ "method",
10018
+ "inputSchema",
10019
+ "service"
10020
+ ],
10021
+ "additionalProperties": false
10022
+ }
10023
+ },
10024
+ "fileEditors": {
10025
+ "type": "array",
10026
+ "items": {
10027
+ "type": "object",
10028
+ "properties": {
10029
+ "id": {
10030
+ "type": "string"
10031
+ },
10032
+ "label": {
10033
+ "type": "string"
10034
+ },
10035
+ "binary": {
10036
+ "type": "boolean",
10037
+ "description": "The editor reads and writes bytes, not text."
10038
+ },
10039
+ "selector": {
10040
+ "type": "array",
10041
+ "items": {
10042
+ "type": "string"
10043
+ }
10044
+ },
10045
+ "default": {
10046
+ "type": "boolean"
10047
+ },
10048
+ "entry": {
10049
+ "type": "string"
10050
+ },
10051
+ "tools": {
10052
+ "type": "string",
10053
+ "description": "The editor's `tools/list` answer, a JSON file in the folder."
10054
+ }
10055
+ },
10056
+ "required": [
10057
+ "id",
10058
+ "label",
10059
+ "binary",
10060
+ "selector",
10061
+ "default",
10062
+ "entry"
10063
+ ],
10064
+ "additionalProperties": false
10065
+ }
10066
+ },
10067
+ "workerServices": {
10068
+ "type": "array",
10069
+ "items": {
10070
+ "type": "object",
10071
+ "properties": {
10072
+ "id": {
10073
+ "type": "string"
10074
+ },
10075
+ "requires": {
10076
+ "type": "array",
10077
+ "items": {
10078
+ "type": "string"
10079
+ }
10080
+ },
10081
+ "capability": {
10082
+ "type": "string",
10083
+ "description": "What the worker reports in its capabilities while the service runs. The hub's `plugin.call` names it."
10084
+ },
10085
+ "entry": {
10086
+ "type": "string"
10087
+ }
10088
+ },
10089
+ "required": [
10090
+ "id",
10091
+ "requires",
10092
+ "capability",
10093
+ "entry"
10094
+ ],
10095
+ "additionalProperties": false
10096
+ }
10097
+ },
10098
+ "panels": {
10099
+ "type": "array",
10100
+ "items": {
10101
+ "type": "object",
10102
+ "properties": {
10103
+ "id": {
10104
+ "type": "string"
10105
+ },
10106
+ "label": {
10107
+ "type": "string"
10108
+ },
10109
+ "capability": {
10110
+ "type": "string",
10111
+ "description": "The `capability` of one of this extension's worker services."
10112
+ },
10113
+ "entry": {
10114
+ "type": "string"
10115
+ },
10116
+ "icon": {
10117
+ "type": "string",
10118
+ "description": "A lucide icon name. Unknown names fall back to a generic icon."
10119
+ }
10120
+ },
10121
+ "required": [
10122
+ "id",
10123
+ "label",
10124
+ "capability",
10125
+ "entry"
10126
+ ],
10127
+ "additionalProperties": false
10128
+ }
10129
+ }
10130
+ },
10131
+ "required": [
10132
+ "tools",
10133
+ "fileEditors",
10134
+ "workerServices",
10135
+ "panels"
10136
+ ],
10137
+ "additionalProperties": false
10138
+ }
10139
+ },
10140
+ "required": [
10141
+ "id",
10142
+ "name",
10143
+ "version",
10144
+ "extensionApi",
10145
+ "contributes"
10146
+ ],
10147
+ "additionalProperties": false
10148
+ }
10149
+ },
10150
+ "errors": {
10151
+ "type": "array",
10152
+ "items": {
10153
+ "$ref": "#/components/schemas/ExtensionProblem"
10154
+ }
10155
+ },
10156
+ "installs": {
10157
+ "type": "object",
10158
+ "additionalProperties": {
10159
+ "$ref": "#/components/schemas/InstallRecord"
10160
+ },
10161
+ "description": "Install records by extension id. A folder copied in by hand has none."
10162
+ }
10163
+ },
10164
+ "required": [
10165
+ "sources",
10166
+ "extensions",
10167
+ "errors",
10168
+ "installs"
10169
+ ],
10170
+ "additionalProperties": false
8565
10171
  }
8566
10172
  },
8567
10173
  "required": [
@@ -19692,6 +21298,9 @@
19692
21298
  "worktreeId": {
19693
21299
  "type": "string"
19694
21300
  },
21301
+ "agent": {
21302
+ "type": "string"
21303
+ },
19695
21304
  "via": {
19696
21305
  "type": "string",
19697
21306
  "enum": [
@@ -19705,9 +21314,6 @@
19705
21314
  "key": {
19706
21315
  "type": "string"
19707
21316
  },
19708
- "agent": {
19709
- "type": "string"
19710
- },
19711
21317
  "sessionId": {
19712
21318
  "type": "string"
19713
21319
  }
@@ -19789,6 +21395,12 @@
19789
21395
  "worktreeId": {
19790
21396
  "type": "string"
19791
21397
  },
21398
+ "agent": {
21399
+ "type": [
21400
+ "string",
21401
+ "null"
21402
+ ]
21403
+ },
19792
21404
  "name": {
19793
21405
  "type": "string"
19794
21406
  },
@@ -19805,12 +21417,6 @@
19805
21417
  "cronExpression": {
19806
21418
  "type": "string"
19807
21419
  },
19808
- "agent": {
19809
- "type": [
19810
- "string",
19811
- "null"
19812
- ]
19813
- },
19814
21420
  "sessionId": {
19815
21421
  "type": [
19816
21422
  "string",
@@ -20849,13 +22455,13 @@
20849
22455
  "type": "string"
20850
22456
  }
20851
22457
  },
20852
- "name": {
22458
+ "agent": {
20853
22459
  "type": "string"
20854
22460
  },
20855
- "mode": {
22461
+ "name": {
20856
22462
  "type": "string"
20857
22463
  },
20858
- "agent": {
22464
+ "mode": {
20859
22465
  "type": "string"
20860
22466
  }
20861
22467
  },
@@ -21169,6 +22775,9 @@
21169
22775
  "type": "string"
21170
22776
  }
21171
22777
  },
22778
+ "agent": {
22779
+ "type": "string"
22780
+ },
21172
22781
  "name": {
21173
22782
  "type": "string"
21174
22783
  },
@@ -21178,9 +22787,6 @@
21178
22787
  "null"
21179
22788
  ]
21180
22789
  },
21181
- "agent": {
21182
- "type": "string"
21183
- },
21184
22790
  "loginId": {
21185
22791
  "type": [
21186
22792
  "string",
@@ -25121,8 +26727,8 @@
25121
26727
  "type": "string",
25122
26728
  "enum": [
25123
26729
  "failed",
25124
- "installing",
25125
- "restarting"
26730
+ "restarting",
26731
+ "installing"
25126
26732
  ]
25127
26733
  },
25128
26734
  "error": {
@@ -25181,6 +26787,44 @@
25181
26787
  ],
25182
26788
  "additionalProperties": false
25183
26789
  },
26790
+ "ExtensionServiceView": {
26791
+ "type": "object",
26792
+ "properties": {
26793
+ "extensionId": {
26794
+ "type": "string"
26795
+ },
26796
+ "serviceId": {
26797
+ "type": "string"
26798
+ },
26799
+ "capability": {
26800
+ "type": "string"
26801
+ },
26802
+ "version": {
26803
+ "type": "string"
26804
+ },
26805
+ "state": {
26806
+ "type": "string",
26807
+ "enum": [
26808
+ "running",
26809
+ "stopped",
26810
+ "failed",
26811
+ "restarting",
26812
+ "not-eligible"
26813
+ ]
26814
+ },
26815
+ "reason": {
26816
+ "type": "string"
26817
+ }
26818
+ },
26819
+ "required": [
26820
+ "extensionId",
26821
+ "serviceId",
26822
+ "capability",
26823
+ "version",
26824
+ "state"
26825
+ ],
26826
+ "additionalProperties": false
26827
+ },
25184
26828
  "CapabilityReport": {
25185
26829
  "type": "object",
25186
26830
  "properties": {
@@ -27200,100 +28844,78 @@
27200
28844
  },
27201
28845
  "additionalProperties": false
27202
28846
  },
27203
- "ExtensionList": {
28847
+ "SelectionState": {
27204
28848
  "type": "object",
27205
28849
  "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
- }
28850
+ "file": {
28851
+ "type": "string"
27286
28852
  },
27287
- "errors": {
27288
- "type": "array",
27289
- "items": {
27290
- "$ref": "#/components/schemas/ExtensionProblem"
27291
- }
28853
+ "extensionId": {
28854
+ "type": "string"
28855
+ },
28856
+ "editorId": {
28857
+ "type": "string"
28858
+ },
28859
+ "selection": {
28860
+ "$ref": "#/components/schemas/Selection"
28861
+ },
28862
+ "updatedAt": {
28863
+ "type": "number"
28864
+ }
28865
+ },
28866
+ "required": [
28867
+ "file",
28868
+ "extensionId",
28869
+ "editorId",
28870
+ "selection",
28871
+ "updatedAt"
28872
+ ],
28873
+ "additionalProperties": false
28874
+ },
28875
+ "Selection": {
28876
+ "type": "object",
28877
+ "properties": {
28878
+ "address": {
28879
+ "type": "string"
28880
+ },
28881
+ "kind": {
28882
+ "type": "string"
28883
+ },
28884
+ "label": {
28885
+ "type": "string"
28886
+ },
28887
+ "text": {
28888
+ "type": "string"
28889
+ },
28890
+ "rect": {
28891
+ "type": "object",
28892
+ "properties": {
28893
+ "x": {
28894
+ "type": "number"
28895
+ },
28896
+ "y": {
28897
+ "type": "number"
28898
+ },
28899
+ "width": {
28900
+ "type": "number"
28901
+ },
28902
+ "height": {
28903
+ "type": "number"
28904
+ }
28905
+ },
28906
+ "required": [
28907
+ "x",
28908
+ "y",
28909
+ "width",
28910
+ "height"
28911
+ ],
28912
+ "additionalProperties": false
27292
28913
  }
27293
28914
  },
27294
28915
  "required": [
27295
- "extensions",
27296
- "errors"
28916
+ "address",
28917
+ "kind",
28918
+ "label"
27297
28919
  ],
27298
28920
  "additionalProperties": false
27299
28921
  },
@@ -27314,6 +28936,31 @@
27314
28936
  ],
27315
28937
  "additionalProperties": false
27316
28938
  },
28939
+ "InstallRecord": {
28940
+ "type": "object",
28941
+ "properties": {
28942
+ "source": {
28943
+ "type": "string",
28944
+ "enum": [
28945
+ "url",
28946
+ "file",
28947
+ "official"
28948
+ ]
28949
+ },
28950
+ "sha256": {
28951
+ "type": "string"
28952
+ },
28953
+ "version": {
28954
+ "type": "string"
28955
+ }
28956
+ },
28957
+ "required": [
28958
+ "source",
28959
+ "sha256",
28960
+ "version"
28961
+ ],
28962
+ "additionalProperties": false
28963
+ },
27317
28964
  "McpServerView": {
27318
28965
  "type": "object",
27319
28966
  "properties": {