@band-app/server 0.60.0 → 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-B15ghqjC.js → TerminalPanel-mCiDaiih.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-DnTEmDSj.js → _basePickBy-DKdB56Hm.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-vhCiyIYf.js → _baseUniq-DBMW2stI.js} +1 -1
  5. package/dist/client/assets/arc-BhrH8ZbE.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-CvqgWcYx.js → architectureDiagram-VXUJARFQ-VtMgLWlg.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-D8REfakL.js → blockDiagram-VD42YOAC-B9EIepxQ.js} +5 -5
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-BIgJnhrx.js → c4Diagram-YG6GDRKO-Bj7LwyU_.js} +1 -1
  9. package/dist/client/assets/channel-BGC2HXYP.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-BO8PrQP3.js → chunk-4BX2VUAB-DYotXGFB.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-DO5fHd1T.js → chunk-55IACEB6-zwloXcXi.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-CAtAtkCf.js → chunk-B4BG7PRW-DR4FI2-X.js} +3 -3
  13. package/dist/client/assets/{chunk-DI55MBZ5-DRnZO_Tx.js → chunk-DI55MBZ5-CTYuhzSp.js} +3 -3
  14. package/dist/client/assets/{chunk-FMBD7UC4-DzqqzV_F.js → chunk-FMBD7UC4-y6grAlwY.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-DETRpC4Q.js → chunk-QN33PNHL-BupVZq6G.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-D6X6jOAA.js → chunk-QZHKN3VN-CWDdHz8r.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-C8IfJ5NA.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-DMKRB7Bs.js → cose-bilkent-S5V4N54A-38bNkffh.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-C_cXM9p2.js → dagre-6UL2VRFP-DPau8H59.js} +2 -2
  23. package/dist/client/assets/{diagram-PSM6KHXK-D_A2BJh_.js → diagram-PSM6KHXK-QtLKSx07.js} +2 -2
  24. package/dist/client/assets/{diagram-QEK2KX5R-BnKjlyrI.js → diagram-QEK2KX5R-DqsH4v8a.js} +2 -2
  25. package/dist/client/assets/{diagram-S2PKOQOG-R4tiwc1I.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-CNV08IQO.js → erDiagram-Q2GNP2WA-DGkVpSzP.js} +4 -4
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-BAXwfe4s.js → flowDiagram-NV44I4VS--G5o6ubJ.js} +9 -9
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-Bk3PXBP9.js → ganttDiagram-JELNMOA3-CeyMlU9m.js} +4 -4
  30. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-C7Tzq96K.js +65 -0
  31. package/dist/client/assets/{graph-BIBqorc8.js → graph-BUcgMBKj.js} +1 -1
  32. package/dist/client/assets/highlighted-body-B3W2YXNL-JEc5jGBG.js +1 -0
  33. package/dist/client/assets/{index-DJlBcjuS.js → index-77Zsfw1L.js} +1 -1
  34. package/dist/client/assets/{index-Dg2MZcDG.js → index-B-ykibZc.js} +1 -1
  35. package/dist/client/assets/{index-PQDlzdDe.js → index-B4tnEEIn.js} +1 -1
  36. package/dist/client/assets/{index-BvS6Fo_E.js → index-B5uomtiy.js} +1 -1
  37. package/dist/client/assets/{index-C6Buf5vO.js → index-B88feehM.js} +1 -1
  38. package/dist/client/assets/index-BcBVeLUQ.js +1 -0
  39. package/dist/client/assets/{index-Dc6DOl2V.js → index-C-C9mKoY.js} +1 -1
  40. package/dist/client/assets/{index-BYzUhLmm.js → index-CMo5ODkf.js} +1 -1
  41. package/dist/client/assets/{index-D9qmTeqK.js → index-CdluPYIx.js} +1 -1
  42. package/dist/client/assets/{index-secZqOa5.js → index-DSFghmZy.js} +1 -1
  43. package/dist/client/assets/{index-BYs8YaN9.js → index-DZmSJzM1.js} +1 -1
  44. package/dist/client/assets/{index-Cqclrque.js → index-DZzn2dZy.js} +1 -1
  45. package/dist/client/assets/index-JHbl19K1.js +7 -0
  46. package/dist/client/assets/{infoDiagram-HS3SLOUP-GzU-nr0a.js → infoDiagram-HS3SLOUP-DcWJUKNo.js} +1 -1
  47. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-Dv_GZIcq.js → journeyDiagram-XKPGCS4Q-B1eYWUg8.js} +5 -5
  48. package/dist/client/assets/{kanban-definition-3W4ZIXB7-BuCDku9Z.js → kanban-definition-3W4ZIXB7-CoGkx0OC.js} +6 -6
  49. package/dist/client/assets/{layout-C1BWvm3U.js → layout-DXGgoCg7.js} +1 -1
  50. package/dist/client/assets/main-DMSfbQvZ.css +1 -0
  51. package/dist/client/assets/{main-CW1tJAHn.js → main-DcSebxeX.js} +277 -273
  52. package/dist/client/assets/{mindmap-definition-VGOIOE7T-D-ySOJ80.js → mindmap-definition-VGOIOE7T-4J9ZiNh-.js} +4 -4
  53. package/dist/client/assets/{pieDiagram-ADFJNKIX-BCPXro4s.js → pieDiagram-ADFJNKIX-Dz9eWfPg.js} +3 -3
  54. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-6iX-Hvg-.js → quadrantDiagram-AYHSOK5B--yPYcR3C.js} +1 -1
  55. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-CZu5itKP.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-Q9GYKo64.js → sequenceDiagram-WL72ISMW-Ba7EWZAL.js} +6 -6
  58. package/dist/client/assets/{stateDiagram-FKZM4ZOC-DcAjq5pM.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-CkyryJCh.js → timeline-definition-IT6M3QCI-gGVtOeF6.js} +2 -2
  61. package/dist/client/assets/{treemap-GDKQZRPO-BW9t3c2Z.js → treemap-GDKQZRPO-DInnPD7u.js} +1 -1
  62. package/dist/client/assets/{worktree._worktreeId-BvQb_KmW.js → worktree._worktreeId-BAsnlzKV.js} +1 -1
  63. package/dist/client/assets/{worktree._worktreeId-CWpDyVL-.js → worktree._worktreeId-BmNQ8at6.js} +1 -1
  64. package/dist/client/assets/{xychartDiagram-PRI3JC2R-DxUmnBlk.js → xychartDiagram-PRI3JC2R-Bl8fw_00.js} +1 -1
  65. package/dist/openapi.json +1934 -210
  66. package/dist/start-server.mjs +3079 -1601
  67. package/package.json +10 -10
  68. package/dist/client/assets/arc-CZ4Bw9uS.js +0 -1
  69. package/dist/client/assets/channel-DaBOqDcm.js +0 -1
  70. package/dist/client/assets/classDiagram-2ON5EDUG-CovRsOYg.js +0 -1
  71. package/dist/client/assets/classDiagram-v2-WZHVMYZB-CovRsOYg.js +0 -1
  72. package/dist/client/assets/clone-CEAieby9.js +0 -1
  73. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-C8tujQgm.js +0 -65
  74. package/dist/client/assets/highlighted-body-B3W2YXNL-NymhDWI2.js +0 -1
  75. package/dist/client/assets/index-BKBEQAUS.js +0 -7
  76. package/dist/client/assets/index-DSUNlkvo.js +0 -1
  77. package/dist/client/assets/main-CYIZgqYb.css +0 -1
  78. package/dist/client/assets/sankeyDiagram-TZEHDZUN-C7dzQDVd.js +0 -10
  79. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D0LqsI9r.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": [
@@ -19144,6 +20750,83 @@
19144
20750
  ]
19145
20751
  }
19146
20752
  },
20753
+ "/worktree.downloadUrl": {
20754
+ "get": {
20755
+ "operationId": "worktree.downloadUrl",
20756
+ "description": "A signed URL (5 minutes, one file) that a drag out of the Explorer hands to another app.",
20757
+ "tags": [
20758
+ "worktree"
20759
+ ],
20760
+ "responses": {
20761
+ "200": {
20762
+ "description": "Successful response",
20763
+ "content": {
20764
+ "application/json": {
20765
+ "schema": {
20766
+ "type": "object",
20767
+ "properties": {
20768
+ "result": {
20769
+ "type": "object",
20770
+ "properties": {
20771
+ "data": {
20772
+ "type": "object",
20773
+ "properties": {
20774
+ "url": {
20775
+ "type": "string"
20776
+ }
20777
+ },
20778
+ "required": [
20779
+ "url"
20780
+ ],
20781
+ "additionalProperties": false
20782
+ }
20783
+ },
20784
+ "required": [
20785
+ "data"
20786
+ ]
20787
+ }
20788
+ },
20789
+ "required": [
20790
+ "result"
20791
+ ]
20792
+ }
20793
+ }
20794
+ }
20795
+ },
20796
+ "default": {
20797
+ "$ref": "#/components/responses/Error"
20798
+ }
20799
+ },
20800
+ "parameters": [
20801
+ {
20802
+ "name": "input",
20803
+ "in": "query",
20804
+ "required": true,
20805
+ "style": "deepObject",
20806
+ "content": {
20807
+ "application/json": {
20808
+ "schema": {
20809
+ "type": "object",
20810
+ "properties": {
20811
+ "path": {
20812
+ "type": "string"
20813
+ },
20814
+ "worktreeId": {
20815
+ "type": "string"
20816
+ }
20817
+ },
20818
+ "required": [
20819
+ "path",
20820
+ "worktreeId"
20821
+ ],
20822
+ "additionalProperties": false
20823
+ }
20824
+ }
20825
+ }
20826
+ }
20827
+ ]
20828
+ }
20829
+ },
19147
20830
  "/worktree.searchFiles": {
19148
20831
  "get": {
19149
20832
  "operationId": "worktree.searchFiles",
@@ -19615,6 +21298,9 @@
19615
21298
  "worktreeId": {
19616
21299
  "type": "string"
19617
21300
  },
21301
+ "agent": {
21302
+ "type": "string"
21303
+ },
19618
21304
  "via": {
19619
21305
  "type": "string",
19620
21306
  "enum": [
@@ -19628,9 +21314,6 @@
19628
21314
  "key": {
19629
21315
  "type": "string"
19630
21316
  },
19631
- "agent": {
19632
- "type": "string"
19633
- },
19634
21317
  "sessionId": {
19635
21318
  "type": "string"
19636
21319
  }
@@ -19712,6 +21395,12 @@
19712
21395
  "worktreeId": {
19713
21396
  "type": "string"
19714
21397
  },
21398
+ "agent": {
21399
+ "type": [
21400
+ "string",
21401
+ "null"
21402
+ ]
21403
+ },
19715
21404
  "name": {
19716
21405
  "type": "string"
19717
21406
  },
@@ -19728,12 +21417,6 @@
19728
21417
  "cronExpression": {
19729
21418
  "type": "string"
19730
21419
  },
19731
- "agent": {
19732
- "type": [
19733
- "string",
19734
- "null"
19735
- ]
19736
- },
19737
21420
  "sessionId": {
19738
21421
  "type": [
19739
21422
  "string",
@@ -20772,13 +22455,13 @@
20772
22455
  "type": "string"
20773
22456
  }
20774
22457
  },
20775
- "name": {
22458
+ "agent": {
20776
22459
  "type": "string"
20777
22460
  },
20778
- "mode": {
22461
+ "name": {
20779
22462
  "type": "string"
20780
22463
  },
20781
- "agent": {
22464
+ "mode": {
20782
22465
  "type": "string"
20783
22466
  }
20784
22467
  },
@@ -21092,6 +22775,9 @@
21092
22775
  "type": "string"
21093
22776
  }
21094
22777
  },
22778
+ "agent": {
22779
+ "type": "string"
22780
+ },
21095
22781
  "name": {
21096
22782
  "type": "string"
21097
22783
  },
@@ -21101,9 +22787,6 @@
21101
22787
  "null"
21102
22788
  ]
21103
22789
  },
21104
- "agent": {
21105
- "type": "string"
21106
- },
21107
22790
  "loginId": {
21108
22791
  "type": [
21109
22792
  "string",
@@ -25044,8 +26727,8 @@
25044
26727
  "type": "string",
25045
26728
  "enum": [
25046
26729
  "failed",
25047
- "installing",
25048
- "restarting"
26730
+ "restarting",
26731
+ "installing"
25049
26732
  ]
25050
26733
  },
25051
26734
  "error": {
@@ -25104,6 +26787,44 @@
25104
26787
  ],
25105
26788
  "additionalProperties": false
25106
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
+ },
25107
26828
  "CapabilityReport": {
25108
26829
  "type": "object",
25109
26830
  "properties": {
@@ -27123,100 +28844,78 @@
27123
28844
  },
27124
28845
  "additionalProperties": false
27125
28846
  },
27126
- "ExtensionList": {
28847
+ "SelectionState": {
27127
28848
  "type": "object",
27128
28849
  "properties": {
27129
- "extensions": {
27130
- "type": "array",
27131
- "items": {
27132
- "type": "object",
27133
- "properties": {
27134
- "id": {
27135
- "type": "string"
27136
- },
27137
- "name": {
27138
- "type": "string"
27139
- },
27140
- "version": {
27141
- "type": "string"
27142
- },
27143
- "extensionApi": {
27144
- "type": "number",
27145
- "const": 1
27146
- },
27147
- "contributes": {
27148
- "type": "object",
27149
- "properties": {
27150
- "fileEditors": {
27151
- "type": "array",
27152
- "items": {
27153
- "type": "object",
27154
- "properties": {
27155
- "id": {
27156
- "type": "string"
27157
- },
27158
- "label": {
27159
- "type": "string"
27160
- },
27161
- "binary": {
27162
- "type": "boolean",
27163
- "description": "The editor reads and writes bytes, not text."
27164
- },
27165
- "selector": {
27166
- "type": "array",
27167
- "items": {
27168
- "type": "string"
27169
- }
27170
- },
27171
- "default": {
27172
- "type": "boolean"
27173
- },
27174
- "entry": {
27175
- "type": "string"
27176
- },
27177
- "tools": {
27178
- "type": "string",
27179
- "description": "The editor's `tools/list` answer, a JSON file in the folder."
27180
- }
27181
- },
27182
- "required": [
27183
- "id",
27184
- "label",
27185
- "binary",
27186
- "selector",
27187
- "default",
27188
- "entry"
27189
- ],
27190
- "additionalProperties": false
27191
- }
27192
- }
27193
- },
27194
- "required": [
27195
- "fileEditors"
27196
- ],
27197
- "additionalProperties": false
27198
- }
27199
- },
27200
- "required": [
27201
- "id",
27202
- "name",
27203
- "version",
27204
- "extensionApi",
27205
- "contributes"
27206
- ],
27207
- "additionalProperties": false
27208
- }
28850
+ "file": {
28851
+ "type": "string"
27209
28852
  },
27210
- "errors": {
27211
- "type": "array",
27212
- "items": {
27213
- "$ref": "#/components/schemas/ExtensionProblem"
27214
- }
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
27215
28913
  }
27216
28914
  },
27217
28915
  "required": [
27218
- "extensions",
27219
- "errors"
28916
+ "address",
28917
+ "kind",
28918
+ "label"
27220
28919
  ],
27221
28920
  "additionalProperties": false
27222
28921
  },
@@ -27237,6 +28936,31 @@
27237
28936
  ],
27238
28937
  "additionalProperties": false
27239
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
+ },
27240
28964
  "McpServerView": {
27241
28965
  "type": "object",
27242
28966
  "properties": {