@band-app/server 0.54.4 → 0.56.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 (73) hide show
  1. package/dist/client/_shell.html +0 -0
  2. package/dist/client/assets/{TerminalPanel-CxzXrgZc.js → TerminalPanel-Wv-LbAcs.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-ESHGoJr1.js → _basePickBy-CgvoOFSS.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-Caza5c4E.js → _baseUniq-DF-p-6fY.js} +1 -1
  5. package/dist/client/assets/{arc-DaZonhJY.js → arc-ukMuAfYV.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-Cq7YbAnJ.js → architectureDiagram-VXUJARFQ-BHOsjgJ7.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-C8s0ghb3.js → blockDiagram-VD42YOAC-V0Q-tFQE.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-DIBhFHGh.js → c4Diagram-YG6GDRKO-BK1nC-Zr.js} +1 -1
  9. package/dist/client/assets/channel-C1UOZUKN.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-D3SZ3P8V.js → chunk-4BX2VUAB-Cc2lXQih.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-BfA-9jtI.js → chunk-55IACEB6-ByQepK2K.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-DAygCOyX.js → chunk-B4BG7PRW-BQQywZlE.js} +1 -1
  13. package/dist/client/assets/{chunk-DI55MBZ5-CuikvpNq.js → chunk-DI55MBZ5-C0Q1yI7a.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-JCmcJDsw.js → chunk-FMBD7UC4-G_Ta25S5.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-3o6_7ioT.js → chunk-QN33PNHL-vrj5lpjf.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-5B8nia1f.js → chunk-QZHKN3VN-DIoJiZ6Q.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-stQp3cfp.js → chunk-TZMSLE5B-DbF2At2q.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-CBwXamAz.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-CBwXamAz.js +1 -0
  20. package/dist/client/assets/clone-CnowCdRV.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-CVQzgyKs.js → cose-bilkent-S5V4N54A-DmniYlnr.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-C95ZZlB4.js → dagre-6UL2VRFP-xNi8WScD.js} +1 -1
  23. package/dist/client/assets/{diagram-PSM6KHXK-Sb4x5piz.js → diagram-PSM6KHXK-CL4dq7uj.js} +1 -1
  24. package/dist/client/assets/{diagram-QEK2KX5R-TTDYZins.js → diagram-QEK2KX5R-C7WQ7eoU.js} +1 -1
  25. package/dist/client/assets/{diagram-S2PKOQOG-C8joLdiY.js → diagram-S2PKOQOG-Cl6jL5JB.js} +1 -1
  26. package/dist/client/assets/{erDiagram-Q2GNP2WA-HXkzVcZE.js → erDiagram-Q2GNP2WA-DOCd-FW1.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-NV44I4VS-BPzPMXG7.js → flowDiagram-NV44I4VS-BcjVCXzs.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-JELNMOA3-5JGkIYiO.js → ganttDiagram-JELNMOA3-Cp5IVV1X.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-CDCkC2dq.js → gitGraphDiagram-V2S2FVAM-D81a2lqP.js} +1 -1
  30. package/dist/client/assets/{graph-CQ3VI3Kb.js → graph-DAQsyN1O.js} +1 -1
  31. package/dist/client/assets/{highlighted-body-B3W2YXNL-jA7b7ztt.js → highlighted-body-B3W2YXNL-BHdTpazT.js} +1 -1
  32. package/dist/client/assets/{index-C7Xj47iO.js → index-4wTCyGVZ.js} +1 -1
  33. package/dist/client/assets/{index-0DuoTbku.js → index-BIBgEJc_.js} +1 -1
  34. package/dist/client/assets/{index-F2GbFYex.js → index-BbUBghw-.js} +1 -1
  35. package/dist/client/assets/{index-BedjQBXV.js → index-C69wUmqS.js} +1 -1
  36. package/dist/client/assets/{index-CZqDBAUL.js → index-CKC2JTdn.js} +1 -1
  37. package/dist/client/assets/{index-DWepK3T1.js → index-CYW-8-2k.js} +1 -1
  38. package/dist/client/assets/{index-SjDPUTbU.js → index-CzW0lrV1.js} +1 -1
  39. package/dist/client/assets/{index-xEgVFQfI.js → index-D6mUuQso.js} +1 -1
  40. package/dist/client/assets/{index-B6FlIvZu.js → index-DCOA8K1E.js} +1 -1
  41. package/dist/client/assets/{index-Ce8SticC.js → index-DFnmEpf1.js} +1 -1
  42. package/dist/client/assets/{index-sTT9joMB.js → index-DcgU8Py3.js} +1 -1
  43. package/dist/client/assets/{index-Bcr3D2nL.js → index-DdbCWPks.js} +1 -1
  44. package/dist/client/assets/{index-Dt3jdJaQ.js → index-U7nQzvUZ.js} +1 -1
  45. package/dist/client/assets/{infoDiagram-HS3SLOUP-DXlzs7_8.js → infoDiagram-HS3SLOUP-Cm5s9O89.js} +1 -1
  46. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-B7mdzrEf.js → journeyDiagram-XKPGCS4Q-BEmfY1L5.js} +1 -1
  47. package/dist/client/assets/{kanban-definition-3W4ZIXB7-C3yAE4ky.js → kanban-definition-3W4ZIXB7-BR4wUQUP.js} +1 -1
  48. package/dist/client/assets/{layout-BpyKMBbb.js → layout-eg8UUTsn.js} +1 -1
  49. package/dist/client/assets/main-BxvTwvKU.css +1 -0
  50. package/dist/client/assets/{main-B169v3Mr.js → main-lic-ksql.js} +339 -339
  51. package/dist/client/assets/{mindmap-definition-VGOIOE7T-BV1ylQ_o.js → mindmap-definition-VGOIOE7T-aO87fIIJ.js} +1 -1
  52. package/dist/client/assets/{pieDiagram-ADFJNKIX-C68Mdt_x.js → pieDiagram-ADFJNKIX-D1-R_4cR.js} +1 -1
  53. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-5wmdYa_y.js → quadrantDiagram-AYHSOK5B-DG_jZYS7.js} +1 -1
  54. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-CXCtBgk5.js → requirementDiagram-UZGBJVZJ-BtxpIvi0.js} +1 -1
  55. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-CwuKYu6l.js → sankeyDiagram-TZEHDZUN-CEZw5ngO.js} +1 -1
  56. package/dist/client/assets/{sequenceDiagram-WL72ISMW-BwFU-IAs.js → sequenceDiagram-WL72ISMW-Da7IJD8T.js} +1 -1
  57. package/dist/client/assets/{stateDiagram-FKZM4ZOC-B46B2gqH.js → stateDiagram-FKZM4ZOC-D9MZaz-Z.js} +1 -1
  58. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BZauII8k.js +1 -0
  59. package/dist/client/assets/{timeline-definition-IT6M3QCI-DHJrxfmL.js → timeline-definition-IT6M3QCI-Dpy1CJBt.js} +1 -1
  60. package/dist/client/assets/{treemap-GDKQZRPO-Bn3yodwG.js → treemap-GDKQZRPO-CwxFs7qg.js} +1 -1
  61. package/dist/client/assets/{worktree._worktreeId-7oupLNxr.js → worktree._worktreeId-BrMMD4KZ.js} +1 -1
  62. package/dist/client/assets/{worktree._worktreeId-MU4bksud.js → worktree._worktreeId-D8tRL5dj.js} +1 -1
  63. package/dist/client/assets/{xychartDiagram-PRI3JC2R-DUqpx4dY.js → xychartDiagram-PRI3JC2R-C42Fu89p.js} +1 -1
  64. package/dist/openapi.json +1192 -40
  65. package/dist/start-server.mjs +61895 -59586
  66. package/dist/terminal-daemon.mjs +301 -283
  67. package/package.json +10 -9
  68. package/dist/client/assets/channel-D_oNvIqF.js +0 -1
  69. package/dist/client/assets/classDiagram-2ON5EDUG-C8EJzaAq.js +0 -1
  70. package/dist/client/assets/classDiagram-v2-WZHVMYZB-C8EJzaAq.js +0 -1
  71. package/dist/client/assets/clone-BhU1fGlA.js +0 -1
  72. package/dist/client/assets/main-DWmz5QXO.css +0 -1
  73. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BvDRMNEQ.js +0 -1
package/dist/openapi.json CHANGED
@@ -1099,11 +1099,51 @@
1099
1099
  "compose",
1100
1100
  "helm",
1101
1101
  "k8s",
1102
- "docker"
1102
+ "docker",
1103
+ "npm"
1103
1104
  ]
1104
1105
  },
1105
1106
  "hubCommand": {
1106
1107
  "type": "string"
1108
+ },
1109
+ "hubUpdate": {
1110
+ "type": "object",
1111
+ "properties": {
1112
+ "error": {
1113
+ "type": [
1114
+ "string",
1115
+ "null"
1116
+ ]
1117
+ },
1118
+ "configured": {
1119
+ "type": "boolean",
1120
+ "description": "Whether an admin has set a command."
1121
+ },
1122
+ "state": {
1123
+ "type": "string",
1124
+ "enum": [
1125
+ "idle",
1126
+ "failed",
1127
+ "updating"
1128
+ ]
1129
+ },
1130
+ "target": {
1131
+ "type": [
1132
+ "string",
1133
+ "null"
1134
+ ]
1135
+ }
1136
+ },
1137
+ "required": [
1138
+ "error",
1139
+ "configured",
1140
+ "state",
1141
+ "target"
1142
+ ],
1143
+ "additionalProperties": false
1144
+ },
1145
+ "updateAll": {
1146
+ "$ref": "#/components/schemas/UpdateAllStatus"
1107
1147
  }
1108
1148
  },
1109
1149
  "required": [
@@ -1113,7 +1153,192 @@
1113
1153
  "checkEnabled",
1114
1154
  "checkedAt",
1115
1155
  "installMethod",
1116
- "hubCommand"
1156
+ "hubCommand",
1157
+ "hubUpdate",
1158
+ "updateAll"
1159
+ ],
1160
+ "additionalProperties": false
1161
+ }
1162
+ },
1163
+ "required": [
1164
+ "data"
1165
+ ]
1166
+ }
1167
+ },
1168
+ "required": [
1169
+ "result"
1170
+ ]
1171
+ }
1172
+ }
1173
+ }
1174
+ },
1175
+ "default": {
1176
+ "$ref": "#/components/responses/Error"
1177
+ }
1178
+ }
1179
+ }
1180
+ },
1181
+ "/workers.updateHub": {
1182
+ "post": {
1183
+ "operationId": "workers.updateHub",
1184
+ "description": "Runs the admin's `hubUpdate.command` on the hub's machine, detached, and answers at once. The\ncommand usually restarts the hub, so `updateStatus` reports progress after it comes back.",
1185
+ "tags": [
1186
+ "workers"
1187
+ ],
1188
+ "responses": {
1189
+ "200": {
1190
+ "description": "Successful response",
1191
+ "content": {
1192
+ "application/json": {
1193
+ "schema": {
1194
+ "type": "object",
1195
+ "properties": {
1196
+ "result": {
1197
+ "type": "object",
1198
+ "properties": {
1199
+ "data": {
1200
+ "type": "object",
1201
+ "properties": {
1202
+ "target": {
1203
+ "type": "string"
1204
+ }
1205
+ },
1206
+ "required": [
1207
+ "target"
1208
+ ],
1209
+ "additionalProperties": false
1210
+ }
1211
+ },
1212
+ "required": [
1213
+ "data"
1214
+ ]
1215
+ }
1216
+ },
1217
+ "required": [
1218
+ "result"
1219
+ ]
1220
+ }
1221
+ }
1222
+ }
1223
+ },
1224
+ "default": {
1225
+ "$ref": "#/components/responses/Error"
1226
+ }
1227
+ },
1228
+ "requestBody": {
1229
+ "required": true,
1230
+ "content": {
1231
+ "application/json": {
1232
+ "schema": {
1233
+ "type": "object",
1234
+ "properties": {
1235
+ "confirmInterruptions": {
1236
+ "type": "boolean"
1237
+ }
1238
+ },
1239
+ "additionalProperties": false
1240
+ }
1241
+ }
1242
+ }
1243
+ }
1244
+ }
1245
+ },
1246
+ "/workers.hubInterruptions": {
1247
+ "get": {
1248
+ "operationId": "workers.hubInterruptions",
1249
+ "description": "The agents a hub restart ends, on all workers, for the confirm dialog and update scripts.",
1250
+ "tags": [
1251
+ "workers"
1252
+ ],
1253
+ "responses": {
1254
+ "200": {
1255
+ "description": "Successful response",
1256
+ "content": {
1257
+ "application/json": {
1258
+ "schema": {
1259
+ "type": "object",
1260
+ "properties": {
1261
+ "result": {
1262
+ "type": "object",
1263
+ "properties": {
1264
+ "data": {
1265
+ "type": "object",
1266
+ "properties": {
1267
+ "agents": {
1268
+ "type": "array",
1269
+ "items": {
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "chatId": {
1273
+ "type": "string"
1274
+ },
1275
+ "worktreeId": {
1276
+ "type": "string"
1277
+ },
1278
+ "busy": {
1279
+ "type": "boolean"
1280
+ }
1281
+ },
1282
+ "required": [
1283
+ "chatId",
1284
+ "worktreeId",
1285
+ "busy"
1286
+ ],
1287
+ "additionalProperties": false
1288
+ }
1289
+ }
1290
+ },
1291
+ "required": [
1292
+ "agents"
1293
+ ],
1294
+ "additionalProperties": false
1295
+ }
1296
+ },
1297
+ "required": [
1298
+ "data"
1299
+ ]
1300
+ }
1301
+ },
1302
+ "required": [
1303
+ "result"
1304
+ ]
1305
+ }
1306
+ }
1307
+ }
1308
+ },
1309
+ "default": {
1310
+ "$ref": "#/components/responses/Error"
1311
+ }
1312
+ }
1313
+ }
1314
+ },
1315
+ "/workers.dismissHubUpdate": {
1316
+ "post": {
1317
+ "operationId": "workers.dismissHubUpdate",
1318
+ "description": "Dismisses a failed hub update.",
1319
+ "tags": [
1320
+ "workers"
1321
+ ],
1322
+ "responses": {
1323
+ "200": {
1324
+ "description": "Successful response",
1325
+ "content": {
1326
+ "application/json": {
1327
+ "schema": {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "result": {
1331
+ "type": "object",
1332
+ "properties": {
1333
+ "data": {
1334
+ "type": "object",
1335
+ "properties": {
1336
+ "ok": {
1337
+ "type": "boolean"
1338
+ }
1339
+ },
1340
+ "required": [
1341
+ "ok"
1117
1342
  ],
1118
1343
  "additionalProperties": false
1119
1344
  }
@@ -1136,6 +1361,65 @@
1136
1361
  }
1137
1362
  }
1138
1363
  },
1364
+ "/workers.updateAll": {
1365
+ "post": {
1366
+ "operationId": "workers.updateAll",
1367
+ "description": "Updates each online worker that is behind, one after the other. Answers at once.",
1368
+ "tags": [
1369
+ "workers"
1370
+ ],
1371
+ "responses": {
1372
+ "200": {
1373
+ "description": "Successful response",
1374
+ "content": {
1375
+ "application/json": {
1376
+ "schema": {
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "result": {
1380
+ "type": "object",
1381
+ "properties": {
1382
+ "data": {
1383
+ "$ref": "#/components/schemas/UpdateAllStatus"
1384
+ }
1385
+ },
1386
+ "required": [
1387
+ "data"
1388
+ ]
1389
+ }
1390
+ },
1391
+ "required": [
1392
+ "result"
1393
+ ]
1394
+ }
1395
+ }
1396
+ }
1397
+ },
1398
+ "default": {
1399
+ "$ref": "#/components/responses/Error"
1400
+ }
1401
+ },
1402
+ "requestBody": {
1403
+ "required": true,
1404
+ "content": {
1405
+ "application/json": {
1406
+ "schema": {
1407
+ "type": "object",
1408
+ "properties": {
1409
+ "confirmInterruptions": {
1410
+ "type": "boolean"
1411
+ },
1412
+ "includeHub": {
1413
+ "type": "boolean"
1414
+ }
1415
+ },
1416
+ "additionalProperties": false
1417
+ }
1418
+ }
1419
+ }
1420
+ }
1421
+ }
1422
+ },
1139
1423
  "/workers.interruptions": {
1140
1424
  "get": {
1141
1425
  "operationId": "workers.interruptions",
@@ -2203,21 +2487,246 @@
2203
2487
  "compose",
2204
2488
  "helm",
2205
2489
  "k8s",
2206
- "docker"
2490
+ "docker",
2491
+ "npm"
2207
2492
  ]
2208
2493
  },
2209
2494
  "hubCommand": {
2210
2495
  "type": "string"
2211
- }
2212
- },
2213
- "required": [
2496
+ },
2497
+ "hubUpdate": {
2498
+ "type": "object",
2499
+ "properties": {
2500
+ "error": {
2501
+ "type": [
2502
+ "string",
2503
+ "null"
2504
+ ]
2505
+ },
2506
+ "configured": {
2507
+ "type": "boolean",
2508
+ "description": "Whether an admin has set a command."
2509
+ },
2510
+ "state": {
2511
+ "type": "string",
2512
+ "enum": [
2513
+ "idle",
2514
+ "failed",
2515
+ "updating"
2516
+ ]
2517
+ },
2518
+ "target": {
2519
+ "type": [
2520
+ "string",
2521
+ "null"
2522
+ ]
2523
+ }
2524
+ },
2525
+ "required": [
2526
+ "error",
2527
+ "configured",
2528
+ "state",
2529
+ "target"
2530
+ ],
2531
+ "additionalProperties": false
2532
+ },
2533
+ "updateAll": {
2534
+ "$ref": "#/components/schemas/UpdateAllStatus"
2535
+ }
2536
+ },
2537
+ "required": [
2214
2538
  "hubVersion",
2215
2539
  "latest",
2216
2540
  "updateAvailable",
2217
2541
  "checkEnabled",
2218
2542
  "checkedAt",
2219
2543
  "installMethod",
2220
- "hubCommand"
2544
+ "hubCommand",
2545
+ "hubUpdate",
2546
+ "updateAll"
2547
+ ],
2548
+ "additionalProperties": false
2549
+ }
2550
+ },
2551
+ "required": [
2552
+ "data"
2553
+ ]
2554
+ }
2555
+ },
2556
+ "required": [
2557
+ "result"
2558
+ ]
2559
+ }
2560
+ }
2561
+ }
2562
+ },
2563
+ "default": {
2564
+ "$ref": "#/components/responses/Error"
2565
+ }
2566
+ }
2567
+ }
2568
+ },
2569
+ "/hosts.updateHub": {
2570
+ "post": {
2571
+ "operationId": "hosts.updateHub",
2572
+ "description": "Runs the admin's `hubUpdate.command` on the hub's machine, detached, and answers at once. The\ncommand usually restarts the hub, so `updateStatus` reports progress after it comes back.",
2573
+ "tags": [
2574
+ "hosts"
2575
+ ],
2576
+ "responses": {
2577
+ "200": {
2578
+ "description": "Successful response",
2579
+ "content": {
2580
+ "application/json": {
2581
+ "schema": {
2582
+ "type": "object",
2583
+ "properties": {
2584
+ "result": {
2585
+ "type": "object",
2586
+ "properties": {
2587
+ "data": {
2588
+ "type": "object",
2589
+ "properties": {
2590
+ "target": {
2591
+ "type": "string"
2592
+ }
2593
+ },
2594
+ "required": [
2595
+ "target"
2596
+ ],
2597
+ "additionalProperties": false
2598
+ }
2599
+ },
2600
+ "required": [
2601
+ "data"
2602
+ ]
2603
+ }
2604
+ },
2605
+ "required": [
2606
+ "result"
2607
+ ]
2608
+ }
2609
+ }
2610
+ }
2611
+ },
2612
+ "default": {
2613
+ "$ref": "#/components/responses/Error"
2614
+ }
2615
+ },
2616
+ "requestBody": {
2617
+ "required": true,
2618
+ "content": {
2619
+ "application/json": {
2620
+ "schema": {
2621
+ "type": "object",
2622
+ "properties": {
2623
+ "confirmInterruptions": {
2624
+ "type": "boolean"
2625
+ }
2626
+ },
2627
+ "additionalProperties": false
2628
+ }
2629
+ }
2630
+ }
2631
+ }
2632
+ }
2633
+ },
2634
+ "/hosts.hubInterruptions": {
2635
+ "get": {
2636
+ "operationId": "hosts.hubInterruptions",
2637
+ "description": "The agents a hub restart ends, on all workers, for the confirm dialog and update scripts.",
2638
+ "tags": [
2639
+ "hosts"
2640
+ ],
2641
+ "responses": {
2642
+ "200": {
2643
+ "description": "Successful response",
2644
+ "content": {
2645
+ "application/json": {
2646
+ "schema": {
2647
+ "type": "object",
2648
+ "properties": {
2649
+ "result": {
2650
+ "type": "object",
2651
+ "properties": {
2652
+ "data": {
2653
+ "type": "object",
2654
+ "properties": {
2655
+ "agents": {
2656
+ "type": "array",
2657
+ "items": {
2658
+ "type": "object",
2659
+ "properties": {
2660
+ "chatId": {
2661
+ "type": "string"
2662
+ },
2663
+ "worktreeId": {
2664
+ "type": "string"
2665
+ },
2666
+ "busy": {
2667
+ "type": "boolean"
2668
+ }
2669
+ },
2670
+ "required": [
2671
+ "chatId",
2672
+ "worktreeId",
2673
+ "busy"
2674
+ ],
2675
+ "additionalProperties": false
2676
+ }
2677
+ }
2678
+ },
2679
+ "required": [
2680
+ "agents"
2681
+ ],
2682
+ "additionalProperties": false
2683
+ }
2684
+ },
2685
+ "required": [
2686
+ "data"
2687
+ ]
2688
+ }
2689
+ },
2690
+ "required": [
2691
+ "result"
2692
+ ]
2693
+ }
2694
+ }
2695
+ }
2696
+ },
2697
+ "default": {
2698
+ "$ref": "#/components/responses/Error"
2699
+ }
2700
+ }
2701
+ }
2702
+ },
2703
+ "/hosts.dismissHubUpdate": {
2704
+ "post": {
2705
+ "operationId": "hosts.dismissHubUpdate",
2706
+ "description": "Dismisses a failed hub update.",
2707
+ "tags": [
2708
+ "hosts"
2709
+ ],
2710
+ "responses": {
2711
+ "200": {
2712
+ "description": "Successful response",
2713
+ "content": {
2714
+ "application/json": {
2715
+ "schema": {
2716
+ "type": "object",
2717
+ "properties": {
2718
+ "result": {
2719
+ "type": "object",
2720
+ "properties": {
2721
+ "data": {
2722
+ "type": "object",
2723
+ "properties": {
2724
+ "ok": {
2725
+ "type": "boolean"
2726
+ }
2727
+ },
2728
+ "required": [
2729
+ "ok"
2221
2730
  ],
2222
2731
  "additionalProperties": false
2223
2732
  }
@@ -2240,6 +2749,65 @@
2240
2749
  }
2241
2750
  }
2242
2751
  },
2752
+ "/hosts.updateAll": {
2753
+ "post": {
2754
+ "operationId": "hosts.updateAll",
2755
+ "description": "Updates each online worker that is behind, one after the other. Answers at once.",
2756
+ "tags": [
2757
+ "hosts"
2758
+ ],
2759
+ "responses": {
2760
+ "200": {
2761
+ "description": "Successful response",
2762
+ "content": {
2763
+ "application/json": {
2764
+ "schema": {
2765
+ "type": "object",
2766
+ "properties": {
2767
+ "result": {
2768
+ "type": "object",
2769
+ "properties": {
2770
+ "data": {
2771
+ "$ref": "#/components/schemas/UpdateAllStatus"
2772
+ }
2773
+ },
2774
+ "required": [
2775
+ "data"
2776
+ ]
2777
+ }
2778
+ },
2779
+ "required": [
2780
+ "result"
2781
+ ]
2782
+ }
2783
+ }
2784
+ }
2785
+ },
2786
+ "default": {
2787
+ "$ref": "#/components/responses/Error"
2788
+ }
2789
+ },
2790
+ "requestBody": {
2791
+ "required": true,
2792
+ "content": {
2793
+ "application/json": {
2794
+ "schema": {
2795
+ "type": "object",
2796
+ "properties": {
2797
+ "confirmInterruptions": {
2798
+ "type": "boolean"
2799
+ },
2800
+ "includeHub": {
2801
+ "type": "boolean"
2802
+ }
2803
+ },
2804
+ "additionalProperties": false
2805
+ }
2806
+ }
2807
+ }
2808
+ }
2809
+ }
2810
+ },
2243
2811
  "/hosts.interruptions": {
2244
2812
  "get": {
2245
2813
  "operationId": "hosts.interruptions",
@@ -11452,6 +12020,129 @@
11452
12020
  }
11453
12021
  }
11454
12022
  },
12023
+ "/simulators.status": {
12024
+ "get": {
12025
+ "operationId": "simulators.status",
12026
+ "description": "Whether the worktree's worker can run a simulator, and the device's state when it can.",
12027
+ "tags": [
12028
+ "simulators"
12029
+ ],
12030
+ "responses": {
12031
+ "200": {
12032
+ "description": "Successful response",
12033
+ "content": {
12034
+ "application/json": {
12035
+ "schema": {
12036
+ "type": "object",
12037
+ "properties": {
12038
+ "result": {
12039
+ "type": "object",
12040
+ "properties": {
12041
+ "data": {
12042
+ "$ref": "#/components/schemas/SimulatorStatus"
12043
+ }
12044
+ },
12045
+ "required": [
12046
+ "data"
12047
+ ]
12048
+ }
12049
+ },
12050
+ "required": [
12051
+ "result"
12052
+ ]
12053
+ }
12054
+ }
12055
+ }
12056
+ },
12057
+ "default": {
12058
+ "$ref": "#/components/responses/Error"
12059
+ }
12060
+ },
12061
+ "parameters": [
12062
+ {
12063
+ "name": "input",
12064
+ "in": "query",
12065
+ "required": true,
12066
+ "style": "deepObject",
12067
+ "content": {
12068
+ "application/json": {
12069
+ "schema": {
12070
+ "type": "object",
12071
+ "properties": {
12072
+ "worktreeId": {
12073
+ "type": "string"
12074
+ }
12075
+ },
12076
+ "required": [
12077
+ "worktreeId"
12078
+ ],
12079
+ "additionalProperties": false
12080
+ }
12081
+ }
12082
+ }
12083
+ }
12084
+ ]
12085
+ }
12086
+ },
12087
+ "/simulators.open": {
12088
+ "post": {
12089
+ "operationId": "simulators.open",
12090
+ "description": "Boots the worktree's simulator and adds the Simulator tab to the worktree's shared tab list,\nwhich every connected client then opens.",
12091
+ "tags": [
12092
+ "simulators"
12093
+ ],
12094
+ "responses": {
12095
+ "200": {
12096
+ "description": "Successful response",
12097
+ "content": {
12098
+ "application/json": {
12099
+ "schema": {
12100
+ "type": "object",
12101
+ "properties": {
12102
+ "result": {
12103
+ "type": "object",
12104
+ "properties": {
12105
+ "data": {
12106
+ "$ref": "#/components/schemas/SimulatorStatus"
12107
+ }
12108
+ },
12109
+ "required": [
12110
+ "data"
12111
+ ]
12112
+ }
12113
+ },
12114
+ "required": [
12115
+ "result"
12116
+ ]
12117
+ }
12118
+ }
12119
+ }
12120
+ },
12121
+ "default": {
12122
+ "$ref": "#/components/responses/Error"
12123
+ }
12124
+ },
12125
+ "requestBody": {
12126
+ "required": true,
12127
+ "content": {
12128
+ "application/json": {
12129
+ "schema": {
12130
+ "type": "object",
12131
+ "properties": {
12132
+ "worktreeId": {
12133
+ "type": "string"
12134
+ }
12135
+ },
12136
+ "required": [
12137
+ "worktreeId"
12138
+ ],
12139
+ "additionalProperties": false
12140
+ }
12141
+ }
12142
+ }
12143
+ }
12144
+ }
12145
+ },
11455
12146
  "/reviews.forWorktree": {
11456
12147
  "get": {
11457
12148
  "operationId": "reviews.forWorktree",
@@ -11487,11 +12178,15 @@
11487
12178
  },
11488
12179
  "name": {
11489
12180
  "type": "string"
12181
+ },
12182
+ "fixHint": {
12183
+ "type": "string"
11490
12184
  }
11491
12185
  },
11492
12186
  "required": [
11493
12187
  "id",
11494
- "name"
12188
+ "name",
12189
+ "fixHint"
11495
12190
  ],
11496
12191
  "additionalProperties": false
11497
12192
  },
@@ -11619,13 +12314,184 @@
11619
12314
  }
11620
12315
  }
11621
12316
  }
11622
- ]
12317
+ ]
12318
+ }
12319
+ },
12320
+ "/reviews.provider": {
12321
+ "get": {
12322
+ "operationId": "reviews.provider",
12323
+ "description": "The provider that serves the worktree's repo, or null. Runs no forge command, so it is cheap to ask.",
12324
+ "tags": [
12325
+ "reviews"
12326
+ ],
12327
+ "responses": {
12328
+ "200": {
12329
+ "description": "Successful response",
12330
+ "content": {
12331
+ "application/json": {
12332
+ "schema": {
12333
+ "type": "object",
12334
+ "properties": {
12335
+ "result": {
12336
+ "type": "object",
12337
+ "properties": {
12338
+ "data": {
12339
+ "oneOf": [
12340
+ {
12341
+ "type": "object",
12342
+ "properties": {
12343
+ "id": {
12344
+ "type": "string"
12345
+ },
12346
+ "name": {
12347
+ "type": "string"
12348
+ },
12349
+ "fixHint": {
12350
+ "type": "string"
12351
+ }
12352
+ },
12353
+ "required": [
12354
+ "id",
12355
+ "name",
12356
+ "fixHint"
12357
+ ],
12358
+ "additionalProperties": false
12359
+ },
12360
+ {
12361
+ "type": "null"
12362
+ }
12363
+ ]
12364
+ }
12365
+ },
12366
+ "required": [
12367
+ "data"
12368
+ ]
12369
+ }
12370
+ },
12371
+ "required": [
12372
+ "result"
12373
+ ]
12374
+ }
12375
+ }
12376
+ }
12377
+ },
12378
+ "default": {
12379
+ "$ref": "#/components/responses/Error"
12380
+ }
12381
+ },
12382
+ "parameters": [
12383
+ {
12384
+ "name": "input",
12385
+ "in": "query",
12386
+ "required": true,
12387
+ "style": "deepObject",
12388
+ "content": {
12389
+ "application/json": {
12390
+ "schema": {
12391
+ "type": "object",
12392
+ "properties": {
12393
+ "worktreeId": {
12394
+ "type": "string"
12395
+ }
12396
+ },
12397
+ "required": [
12398
+ "worktreeId"
12399
+ ],
12400
+ "additionalProperties": false
12401
+ }
12402
+ }
12403
+ }
12404
+ }
12405
+ ]
12406
+ }
12407
+ },
12408
+ "/reviews.runAction": {
12409
+ "post": {
12410
+ "operationId": "reviews.runAction",
12411
+ "description": "Run one of the actions the provider listed in the review's `actions`.",
12412
+ "tags": [
12413
+ "reviews"
12414
+ ],
12415
+ "responses": {
12416
+ "200": {
12417
+ "description": "Successful response",
12418
+ "content": {
12419
+ "application/json": {
12420
+ "schema": {
12421
+ "type": "object",
12422
+ "properties": {
12423
+ "result": {
12424
+ "type": "object",
12425
+ "properties": {
12426
+ "data": {
12427
+ "type": "object",
12428
+ "properties": {
12429
+ "ok": {
12430
+ "type": "boolean",
12431
+ "const": true
12432
+ }
12433
+ },
12434
+ "required": [
12435
+ "ok"
12436
+ ],
12437
+ "additionalProperties": false
12438
+ }
12439
+ },
12440
+ "required": [
12441
+ "data"
12442
+ ]
12443
+ }
12444
+ },
12445
+ "required": [
12446
+ "result"
12447
+ ]
12448
+ }
12449
+ }
12450
+ }
12451
+ },
12452
+ "default": {
12453
+ "$ref": "#/components/responses/Error"
12454
+ }
12455
+ },
12456
+ "requestBody": {
12457
+ "required": true,
12458
+ "content": {
12459
+ "application/json": {
12460
+ "schema": {
12461
+ "type": "object",
12462
+ "properties": {
12463
+ "worktreeId": {
12464
+ "type": "string"
12465
+ },
12466
+ "actionId": {
12467
+ "type": "string"
12468
+ },
12469
+ "args": {
12470
+ "type": "object",
12471
+ "additionalProperties": {
12472
+ "type": [
12473
+ "string",
12474
+ "number",
12475
+ "boolean"
12476
+ ]
12477
+ }
12478
+ }
12479
+ },
12480
+ "required": [
12481
+ "worktreeId",
12482
+ "actionId"
12483
+ ],
12484
+ "additionalProperties": false
12485
+ }
12486
+ }
12487
+ }
12488
+ }
11623
12489
  }
11624
12490
  },
11625
12491
  "/reviews.merge": {
11626
12492
  "post": {
11627
12493
  "operationId": "reviews.merge",
11628
- "description": "Merge the worktree branch's open review.",
12494
+ "description": "Merge the worktree branch's open review. Wraps the `merge` action.",
11629
12495
  "tags": [
11630
12496
  "reviews"
11631
12497
  ],
@@ -13208,6 +14074,15 @@
13208
14074
  },
13209
14075
  "additionalProperties": {}
13210
14076
  },
14077
+ "hubUpdate": {
14078
+ "type": "object",
14079
+ "properties": {
14080
+ "command": {
14081
+ "type": "string"
14082
+ }
14083
+ },
14084
+ "additionalProperties": {}
14085
+ },
13211
14086
  "environmentBuilder": {
13212
14087
  "type": "object",
13213
14088
  "properties": {
@@ -17864,33 +18739,7 @@
17864
18739
  "type": "object",
17865
18740
  "properties": {
17866
18741
  "data": {
17867
- "type": "object",
17868
- "properties": {
17869
- "exists": {
17870
- "type": "boolean"
17871
- },
17872
- "isFile": {
17873
- "type": "boolean"
17874
- },
17875
- "external": {
17876
- "type": "boolean",
17877
- "description": "True when the path lies outside the worktree worktree."
17878
- },
17879
- "worktreeRelativePath": {
17880
- "type": [
17881
- "string",
17882
- "null"
17883
- ],
17884
- "description": "POSIX worktree-relative path, set only when inside the worktree."
17885
- }
17886
- },
17887
- "required": [
17888
- "exists",
17889
- "isFile",
17890
- "external",
17891
- "worktreeRelativePath"
17892
- ],
17893
- "additionalProperties": false
18742
+ "$ref": "#/components/schemas/ResolvePathResult"
17894
18743
  }
17895
18744
  },
17896
18745
  "required": [
@@ -19219,7 +20068,87 @@
19219
20068
  "chats": {
19220
20069
  "type": "array",
19221
20070
  "items": {
19222
- "$ref": "#/components/schemas/ChatRow"
20071
+ "type": "object",
20072
+ "properties": {
20073
+ "lastActivityAt": {
20074
+ "type": [
20075
+ "number",
20076
+ "null"
20077
+ ]
20078
+ },
20079
+ "stalled": {
20080
+ "type": "boolean"
20081
+ },
20082
+ "id": {
20083
+ "type": "string"
20084
+ },
20085
+ "worktreeId": {
20086
+ "type": "string"
20087
+ },
20088
+ "name": {
20089
+ "type": "string"
20090
+ },
20091
+ "agent": {
20092
+ "type": "string"
20093
+ },
20094
+ "model": {
20095
+ "type": "string"
20096
+ },
20097
+ "mode": {
20098
+ "type": "string"
20099
+ },
20100
+ "activeSessionId": {
20101
+ "type": "string"
20102
+ },
20103
+ "activeSessionSummary": {
20104
+ "type": "string"
20105
+ },
20106
+ "activeSessionLastModified": {
20107
+ "type": "number"
20108
+ },
20109
+ "status": {
20110
+ "type": "string",
20111
+ "enum": [
20112
+ "error",
20113
+ "running",
20114
+ "idle",
20115
+ "stopped"
20116
+ ],
20117
+ "description": "Chat status as persisted in the `state` JSON blob's `status` field.\n\nMirrors the runtime status the chat-service hands the dashboard. Stored\non disk so a server restart can deterministically reset every chat to\n`\"idle\"` (see `resetAllToIdle`)."
20118
+ },
20119
+ "labels": {
20120
+ "type": "object",
20121
+ "additionalProperties": {
20122
+ "type": "string"
20123
+ }
20124
+ },
20125
+ "ownerHostId": {
20126
+ "type": "string",
20127
+ "description": "The worker that runs this chat and replicates it to the hub, or\nundefined when the hub runs it."
20128
+ },
20129
+ "loginId": {
20130
+ "type": "string",
20131
+ "description": "The agent login (`agentLogins`) this chat picked, or undefined for the repo's or the agent's default."
20132
+ }
20133
+ },
20134
+ "required": [
20135
+ "lastActivityAt",
20136
+ "stalled",
20137
+ "id",
20138
+ "worktreeId",
20139
+ "name",
20140
+ "agent",
20141
+ "model",
20142
+ "mode",
20143
+ "activeSessionId",
20144
+ "activeSessionSummary",
20145
+ "activeSessionLastModified",
20146
+ "status",
20147
+ "labels",
20148
+ "ownerHostId",
20149
+ "loginId"
20150
+ ],
20151
+ "additionalProperties": false
19223
20152
  }
19224
20153
  }
19225
20154
  },
@@ -23432,6 +24361,59 @@
23432
24361
  ],
23433
24362
  "additionalProperties": false
23434
24363
  },
24364
+ "UpdateAllStatus": {
24365
+ "type": "object",
24366
+ "properties": {
24367
+ "running": {
24368
+ "type": "boolean"
24369
+ },
24370
+ "results": {
24371
+ "type": "array",
24372
+ "items": {
24373
+ "$ref": "#/components/schemas/UpdateAllEntry"
24374
+ }
24375
+ }
24376
+ },
24377
+ "required": [
24378
+ "running",
24379
+ "results"
24380
+ ],
24381
+ "additionalProperties": false
24382
+ },
24383
+ "UpdateAllEntry": {
24384
+ "type": "object",
24385
+ "properties": {
24386
+ "hostId": {
24387
+ "type": "string"
24388
+ },
24389
+ "name": {
24390
+ "type": "string"
24391
+ },
24392
+ "state": {
24393
+ "type": "string",
24394
+ "enum": [
24395
+ "failed",
24396
+ "updating",
24397
+ "pending",
24398
+ "updated",
24399
+ "skipped"
24400
+ ]
24401
+ },
24402
+ "message": {
24403
+ "type": [
24404
+ "string",
24405
+ "null"
24406
+ ]
24407
+ }
24408
+ },
24409
+ "required": [
24410
+ "hostId",
24411
+ "name",
24412
+ "state",
24413
+ "message"
24414
+ ],
24415
+ "additionalProperties": false
24416
+ },
23435
24417
  "FsBrowseResult": {
23436
24418
  "type": "object",
23437
24419
  "properties": {
@@ -25941,7 +26923,10 @@
25941
26923
  "type": "array",
25942
26924
  "items": {
25943
26925
  "type": "string",
25944
- "const": "worktree.sideTabs"
26926
+ "enum": [
26927
+ "worktree.sideTabs",
26928
+ "worktree.panels"
26929
+ ]
25945
26930
  }
25946
26931
  }
25947
26932
  },
@@ -25955,6 +26940,71 @@
25955
26940
  ],
25956
26941
  "additionalProperties": false
25957
26942
  },
26943
+ "SimulatorStatus": {
26944
+ "type": "object",
26945
+ "properties": {
26946
+ "available": {
26947
+ "type": "boolean",
26948
+ "description": "The worktree's worker is online and can run a simulator."
26949
+ },
26950
+ "reason": {
26951
+ "type": "string",
26952
+ "description": "Why not, when `available` is false."
26953
+ },
26954
+ "hostId": {
26955
+ "type": "string"
26956
+ },
26957
+ "device": {
26958
+ "type": "object",
26959
+ "properties": {
26960
+ "udid": {
26961
+ "type": "string"
26962
+ },
26963
+ "name": {
26964
+ "type": "string"
26965
+ },
26966
+ "state": {
26967
+ "type": "string"
26968
+ },
26969
+ "screen": {
26970
+ "oneOf": [
26971
+ {
26972
+ "type": "object",
26973
+ "properties": {
26974
+ "width": {
26975
+ "type": "number"
26976
+ },
26977
+ "height": {
26978
+ "type": "number"
26979
+ }
26980
+ },
26981
+ "required": [
26982
+ "width",
26983
+ "height"
26984
+ ],
26985
+ "additionalProperties": false
26986
+ },
26987
+ {
26988
+ "type": "null"
26989
+ }
26990
+ ]
26991
+ }
26992
+ },
26993
+ "required": [
26994
+ "udid",
26995
+ "name",
26996
+ "state",
26997
+ "screen"
26998
+ ],
26999
+ "additionalProperties": false
27000
+ }
27001
+ },
27002
+ "required": [
27003
+ "available",
27004
+ "hostId"
27005
+ ],
27006
+ "additionalProperties": false
27007
+ },
25958
27008
  "RepoInfo": {
25959
27009
  "type": "object",
25960
27010
  "properties": {
@@ -26036,6 +27086,13 @@
26036
27086
  },
26037
27087
  "discussion": {
26038
27088
  "$ref": "#/components/schemas/ReviewDiscussion"
27089
+ },
27090
+ "actions": {
27091
+ "type": "array",
27092
+ "items": {
27093
+ "$ref": "#/components/schemas/ReviewAction"
27094
+ },
27095
+ "description": "What the person may do to this review now."
26039
27096
  }
26040
27097
  },
26041
27098
  "required": [
@@ -26046,7 +27103,8 @@
26046
27103
  "updatedAt",
26047
27104
  "reviewDecision",
26048
27105
  "mergeState",
26049
- "checks"
27106
+ "checks",
27107
+ "actions"
26050
27108
  ],
26051
27109
  "additionalProperties": false
26052
27110
  },
@@ -26077,6 +27135,13 @@
26077
27135
  "items": {
26078
27136
  "$ref": "#/components/schemas/CheckRun"
26079
27137
  }
27138
+ },
27139
+ "actions": {
27140
+ "type": "array",
27141
+ "items": {
27142
+ "$ref": "#/components/schemas/ReviewAction"
27143
+ },
27144
+ "description": "What a person can do to these checks, e.g. re-run a job. A review's `actions` repeat them;\na branch with no review has only these."
26080
27145
  }
26081
27146
  },
26082
27147
  "required": [
@@ -26172,6 +27237,64 @@
26172
27237
  ],
26173
27238
  "additionalProperties": false
26174
27239
  },
27240
+ "ReviewAction": {
27241
+ "type": "object",
27242
+ "properties": {
27243
+ "id": {
27244
+ "type": "string"
27245
+ },
27246
+ "label": {
27247
+ "type": "string"
27248
+ },
27249
+ "icon": {
27250
+ "type": "string",
27251
+ "enum": [
27252
+ "ready",
27253
+ "rerun",
27254
+ "merge"
27255
+ ],
27256
+ "description": "The icons an action may name. A fixed set, so the core draws every icon itself."
27257
+ },
27258
+ "placement": {
27259
+ "type": "string",
27260
+ "enum": [
27261
+ "check",
27262
+ "header"
27263
+ ],
27264
+ "description": "`header` shows in the panel's header. `check` belongs to one check row; its `args.checkId`\nnames the `CheckRun.id`. A `header` action with the `rerun` icon appears in the failing\nchecks banner instead."
27265
+ },
27266
+ "group": {
27267
+ "type": "string",
27268
+ "description": "Header actions with the same group show as one split button, the first being the default."
27269
+ },
27270
+ "args": {
27271
+ "type": "object",
27272
+ "additionalProperties": {
27273
+ "type": [
27274
+ "string",
27275
+ "number",
27276
+ "boolean"
27277
+ ]
27278
+ },
27279
+ "description": "Argument values an action carries. Plain JSON only."
27280
+ },
27281
+ "confirm": {
27282
+ "type": "string",
27283
+ "description": "When set, the core asks for confirmation with this text before it runs the action."
27284
+ },
27285
+ "disabledReason": {
27286
+ "type": "string",
27287
+ "description": "When set, the action is shown but cannot run, and this says why."
27288
+ }
27289
+ },
27290
+ "required": [
27291
+ "id",
27292
+ "label",
27293
+ "icon",
27294
+ "placement"
27295
+ ],
27296
+ "additionalProperties": false
27297
+ },
26175
27298
  "Reviewer": {
26176
27299
  "type": "object",
26177
27300
  "properties": {
@@ -27512,6 +28635,35 @@
27512
28635
  ],
27513
28636
  "additionalProperties": false
27514
28637
  },
28638
+ "ResolvePathResult": {
28639
+ "type": "object",
28640
+ "properties": {
28641
+ "exists": {
28642
+ "type": "boolean"
28643
+ },
28644
+ "isFile": {
28645
+ "type": "boolean"
28646
+ },
28647
+ "external": {
28648
+ "type": "boolean",
28649
+ "description": "True when the path lies outside the worktree."
28650
+ },
28651
+ "worktreeRelativePath": {
28652
+ "type": [
28653
+ "string",
28654
+ "null"
28655
+ ],
28656
+ "description": "POSIX worktree-relative path, set only when inside the worktree."
28657
+ }
28658
+ },
28659
+ "required": [
28660
+ "exists",
28661
+ "isFile",
28662
+ "external",
28663
+ "worktreeRelativePath"
28664
+ ],
28665
+ "additionalProperties": false
28666
+ },
27515
28667
  "SearchContentMatch": {
27516
28668
  "type": "object",
27517
28669
  "properties": {