@band-app/server 0.54.4 → 0.55.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-DyFsMnFK.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-ESHGoJr1.js → _basePickBy-C1Ui1wUI.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-Caza5c4E.js → _baseUniq-TZ0JUUYF.js} +1 -1
  5. package/dist/client/assets/{arc-DaZonhJY.js → arc-BKZRD7Jr.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-Cq7YbAnJ.js → architectureDiagram-VXUJARFQ-C6U3vX0O.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-C8s0ghb3.js → blockDiagram-VD42YOAC-CMKfJSCq.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-DIBhFHGh.js → c4Diagram-YG6GDRKO-BxBYCPCn.js} +1 -1
  9. package/dist/client/assets/channel-BJXLlcqp.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-D3SZ3P8V.js → chunk-4BX2VUAB-bw9X6kAI.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-BfA-9jtI.js → chunk-55IACEB6-ClHgx4bC.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-DAygCOyX.js → chunk-B4BG7PRW-Db1XzP6B.js} +1 -1
  13. package/dist/client/assets/{chunk-DI55MBZ5-CuikvpNq.js → chunk-DI55MBZ5-C8HzWkcQ.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-JCmcJDsw.js → chunk-FMBD7UC4-54B6Y5YM.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-3o6_7ioT.js → chunk-QN33PNHL-BttimAfW.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-5B8nia1f.js → chunk-QZHKN3VN-BoejelHz.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-stQp3cfp.js → chunk-TZMSLE5B-CDFjN9wj.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-27E8Epaa.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-27E8Epaa.js +1 -0
  20. package/dist/client/assets/clone-DTRMs_1C.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-CVQzgyKs.js → cose-bilkent-S5V4N54A-VQAtNwQc.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-C95ZZlB4.js → dagre-6UL2VRFP-BbY85-fg.js} +1 -1
  23. package/dist/client/assets/{diagram-PSM6KHXK-Sb4x5piz.js → diagram-PSM6KHXK-ILb8cZAw.js} +1 -1
  24. package/dist/client/assets/{diagram-QEK2KX5R-TTDYZins.js → diagram-QEK2KX5R-BGiFNVyl.js} +1 -1
  25. package/dist/client/assets/{diagram-S2PKOQOG-C8joLdiY.js → diagram-S2PKOQOG-CccJTBEx.js} +1 -1
  26. package/dist/client/assets/{erDiagram-Q2GNP2WA-HXkzVcZE.js → erDiagram-Q2GNP2WA-CkfZ33hi.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-NV44I4VS-BPzPMXG7.js → flowDiagram-NV44I4VS-Mh9EcV52.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-JELNMOA3-5JGkIYiO.js → ganttDiagram-JELNMOA3-Cyw35fle.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-CDCkC2dq.js → gitGraphDiagram-V2S2FVAM-B_pqKxKc.js} +1 -1
  30. package/dist/client/assets/{graph-CQ3VI3Kb.js → graph-9t0DxPCF.js} +1 -1
  31. package/dist/client/assets/{highlighted-body-B3W2YXNL-jA7b7ztt.js → highlighted-body-B3W2YXNL-BoRk8xol.js} +1 -1
  32. package/dist/client/assets/{index-Ce8SticC.js → index-0OIfn_16.js} +1 -1
  33. package/dist/client/assets/{index-xEgVFQfI.js → index-B4gaIFLM.js} +1 -1
  34. package/dist/client/assets/{index-B6FlIvZu.js → index-B9OAdTCy.js} +1 -1
  35. package/dist/client/assets/{index-DWepK3T1.js → index-BHbtQqNn.js} +1 -1
  36. package/dist/client/assets/{index-CZqDBAUL.js → index-Bq4KlIgZ.js} +1 -1
  37. package/dist/client/assets/{index-0DuoTbku.js → index-BwCTnd17.js} +1 -1
  38. package/dist/client/assets/{index-Dt3jdJaQ.js → index-CtGnlQ-q.js} +1 -1
  39. package/dist/client/assets/{index-F2GbFYex.js → index-D8L39ca2.js} +1 -1
  40. package/dist/client/assets/{index-BedjQBXV.js → index-Ddtx5YHI.js} +1 -1
  41. package/dist/client/assets/{index-Bcr3D2nL.js → index-DicOq_Sf.js} +1 -1
  42. package/dist/client/assets/{index-SjDPUTbU.js → index-DyQAzRmj.js} +1 -1
  43. package/dist/client/assets/{index-sTT9joMB.js → index-EhAKhw5f.js} +1 -1
  44. package/dist/client/assets/{index-C7Xj47iO.js → index-q1D5zrY_.js} +1 -1
  45. package/dist/client/assets/{infoDiagram-HS3SLOUP-DXlzs7_8.js → infoDiagram-HS3SLOUP-BpXpceBS.js} +1 -1
  46. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-B7mdzrEf.js → journeyDiagram-XKPGCS4Q-CUzBsDC2.js} +1 -1
  47. package/dist/client/assets/{kanban-definition-3W4ZIXB7-C3yAE4ky.js → kanban-definition-3W4ZIXB7-d7CaBEND.js} +1 -1
  48. package/dist/client/assets/{layout-BpyKMBbb.js → layout-D8LvZDRj.js} +1 -1
  49. package/dist/client/assets/{main-B169v3Mr.js → main-BIldwfya.js} +339 -339
  50. package/dist/client/assets/main-BxvTwvKU.css +1 -0
  51. package/dist/client/assets/{mindmap-definition-VGOIOE7T-BV1ylQ_o.js → mindmap-definition-VGOIOE7T-CkyVVJ9w.js} +1 -1
  52. package/dist/client/assets/{pieDiagram-ADFJNKIX-C68Mdt_x.js → pieDiagram-ADFJNKIX-UGEIX01f.js} +1 -1
  53. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-5wmdYa_y.js → quadrantDiagram-AYHSOK5B-C9PM1qGp.js} +1 -1
  54. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-CXCtBgk5.js → requirementDiagram-UZGBJVZJ-BmJorjE0.js} +1 -1
  55. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-CwuKYu6l.js → sankeyDiagram-TZEHDZUN-DK1YkHOf.js} +1 -1
  56. package/dist/client/assets/{sequenceDiagram-WL72ISMW-BwFU-IAs.js → sequenceDiagram-WL72ISMW-CMalVkVp.js} +1 -1
  57. package/dist/client/assets/{stateDiagram-FKZM4ZOC-B46B2gqH.js → stateDiagram-FKZM4ZOC-CtDoLljP.js} +1 -1
  58. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-Bu9w4Lt2.js +1 -0
  59. package/dist/client/assets/{timeline-definition-IT6M3QCI-DHJrxfmL.js → timeline-definition-IT6M3QCI-Vy5fVSzE.js} +1 -1
  60. package/dist/client/assets/{treemap-GDKQZRPO-Bn3yodwG.js → treemap-GDKQZRPO-DN8hAqbn.js} +1 -1
  61. package/dist/client/assets/{worktree._worktreeId-7oupLNxr.js → worktree._worktreeId-BjqfB2FM.js} +1 -1
  62. package/dist/client/assets/{worktree._worktreeId-MU4bksud.js → worktree._worktreeId-enSNl8Hs.js} +1 -1
  63. package/dist/client/assets/{xychartDiagram-PRI3JC2R-DUqpx4dY.js → xychartDiagram-PRI3JC2R-Dl5pLjgP.js} +1 -1
  64. package/dist/openapi.json +1181 -32
  65. package/dist/start-server.mjs +63414 -61146
  66. package/dist/terminal-daemon.mjs +301 -283
  67. package/package.json +13 -12
  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
  },
@@ -11596,36 +12291,207 @@
11596
12291
  "$ref": "#/components/responses/Error"
11597
12292
  }
11598
12293
  },
11599
- "parameters": [
11600
- {
11601
- "name": "input",
11602
- "in": "query",
11603
- "required": true,
11604
- "style": "deepObject",
11605
- "content": {
11606
- "application/json": {
11607
- "schema": {
11608
- "type": "object",
11609
- "properties": {
11610
- "worktreeId": {
11611
- "type": "string"
11612
- }
12294
+ "parameters": [
12295
+ {
12296
+ "name": "input",
12297
+ "in": "query",
12298
+ "required": true,
12299
+ "style": "deepObject",
12300
+ "content": {
12301
+ "application/json": {
12302
+ "schema": {
12303
+ "type": "object",
12304
+ "properties": {
12305
+ "worktreeId": {
12306
+ "type": "string"
12307
+ }
12308
+ },
12309
+ "required": [
12310
+ "worktreeId"
12311
+ ],
12312
+ "additionalProperties": false
12313
+ }
12314
+ }
12315
+ }
12316
+ }
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"
11613
12465
  },
11614
- "required": [
11615
- "worktreeId"
11616
- ],
11617
- "additionalProperties": false
11618
- }
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
11619
12485
  }
11620
12486
  }
11621
12487
  }
11622
- ]
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": {
@@ -19219,7 +20094,87 @@
19219
20094
  "chats": {
19220
20095
  "type": "array",
19221
20096
  "items": {
19222
- "$ref": "#/components/schemas/ChatRow"
20097
+ "type": "object",
20098
+ "properties": {
20099
+ "lastActivityAt": {
20100
+ "type": [
20101
+ "number",
20102
+ "null"
20103
+ ]
20104
+ },
20105
+ "stalled": {
20106
+ "type": "boolean"
20107
+ },
20108
+ "id": {
20109
+ "type": "string"
20110
+ },
20111
+ "worktreeId": {
20112
+ "type": "string"
20113
+ },
20114
+ "name": {
20115
+ "type": "string"
20116
+ },
20117
+ "agent": {
20118
+ "type": "string"
20119
+ },
20120
+ "model": {
20121
+ "type": "string"
20122
+ },
20123
+ "mode": {
20124
+ "type": "string"
20125
+ },
20126
+ "activeSessionId": {
20127
+ "type": "string"
20128
+ },
20129
+ "activeSessionSummary": {
20130
+ "type": "string"
20131
+ },
20132
+ "activeSessionLastModified": {
20133
+ "type": "number"
20134
+ },
20135
+ "status": {
20136
+ "type": "string",
20137
+ "enum": [
20138
+ "error",
20139
+ "running",
20140
+ "idle",
20141
+ "stopped"
20142
+ ],
20143
+ "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`)."
20144
+ },
20145
+ "labels": {
20146
+ "type": "object",
20147
+ "additionalProperties": {
20148
+ "type": "string"
20149
+ }
20150
+ },
20151
+ "ownerHostId": {
20152
+ "type": "string",
20153
+ "description": "The worker that runs this chat and replicates it to the hub, or\nundefined when the hub runs it."
20154
+ },
20155
+ "loginId": {
20156
+ "type": "string",
20157
+ "description": "The agent login (`agentLogins`) this chat picked, or undefined for the repo's or the agent's default."
20158
+ }
20159
+ },
20160
+ "required": [
20161
+ "lastActivityAt",
20162
+ "stalled",
20163
+ "id",
20164
+ "worktreeId",
20165
+ "name",
20166
+ "agent",
20167
+ "model",
20168
+ "mode",
20169
+ "activeSessionId",
20170
+ "activeSessionSummary",
20171
+ "activeSessionLastModified",
20172
+ "status",
20173
+ "labels",
20174
+ "ownerHostId",
20175
+ "loginId"
20176
+ ],
20177
+ "additionalProperties": false
19223
20178
  }
19224
20179
  }
19225
20180
  },
@@ -23432,6 +24387,59 @@
23432
24387
  ],
23433
24388
  "additionalProperties": false
23434
24389
  },
24390
+ "UpdateAllStatus": {
24391
+ "type": "object",
24392
+ "properties": {
24393
+ "running": {
24394
+ "type": "boolean"
24395
+ },
24396
+ "results": {
24397
+ "type": "array",
24398
+ "items": {
24399
+ "$ref": "#/components/schemas/UpdateAllEntry"
24400
+ }
24401
+ }
24402
+ },
24403
+ "required": [
24404
+ "running",
24405
+ "results"
24406
+ ],
24407
+ "additionalProperties": false
24408
+ },
24409
+ "UpdateAllEntry": {
24410
+ "type": "object",
24411
+ "properties": {
24412
+ "hostId": {
24413
+ "type": "string"
24414
+ },
24415
+ "name": {
24416
+ "type": "string"
24417
+ },
24418
+ "state": {
24419
+ "type": "string",
24420
+ "enum": [
24421
+ "failed",
24422
+ "updating",
24423
+ "pending",
24424
+ "updated",
24425
+ "skipped"
24426
+ ]
24427
+ },
24428
+ "message": {
24429
+ "type": [
24430
+ "string",
24431
+ "null"
24432
+ ]
24433
+ }
24434
+ },
24435
+ "required": [
24436
+ "hostId",
24437
+ "name",
24438
+ "state",
24439
+ "message"
24440
+ ],
24441
+ "additionalProperties": false
24442
+ },
23435
24443
  "FsBrowseResult": {
23436
24444
  "type": "object",
23437
24445
  "properties": {
@@ -25941,7 +26949,10 @@
25941
26949
  "type": "array",
25942
26950
  "items": {
25943
26951
  "type": "string",
25944
- "const": "worktree.sideTabs"
26952
+ "enum": [
26953
+ "worktree.sideTabs",
26954
+ "worktree.panels"
26955
+ ]
25945
26956
  }
25946
26957
  }
25947
26958
  },
@@ -25955,6 +26966,71 @@
25955
26966
  ],
25956
26967
  "additionalProperties": false
25957
26968
  },
26969
+ "SimulatorStatus": {
26970
+ "type": "object",
26971
+ "properties": {
26972
+ "available": {
26973
+ "type": "boolean",
26974
+ "description": "The worktree's worker is online and can run a simulator."
26975
+ },
26976
+ "reason": {
26977
+ "type": "string",
26978
+ "description": "Why not, when `available` is false."
26979
+ },
26980
+ "hostId": {
26981
+ "type": "string"
26982
+ },
26983
+ "device": {
26984
+ "type": "object",
26985
+ "properties": {
26986
+ "udid": {
26987
+ "type": "string"
26988
+ },
26989
+ "name": {
26990
+ "type": "string"
26991
+ },
26992
+ "state": {
26993
+ "type": "string"
26994
+ },
26995
+ "screen": {
26996
+ "oneOf": [
26997
+ {
26998
+ "type": "object",
26999
+ "properties": {
27000
+ "width": {
27001
+ "type": "number"
27002
+ },
27003
+ "height": {
27004
+ "type": "number"
27005
+ }
27006
+ },
27007
+ "required": [
27008
+ "width",
27009
+ "height"
27010
+ ],
27011
+ "additionalProperties": false
27012
+ },
27013
+ {
27014
+ "type": "null"
27015
+ }
27016
+ ]
27017
+ }
27018
+ },
27019
+ "required": [
27020
+ "udid",
27021
+ "name",
27022
+ "state",
27023
+ "screen"
27024
+ ],
27025
+ "additionalProperties": false
27026
+ }
27027
+ },
27028
+ "required": [
27029
+ "available",
27030
+ "hostId"
27031
+ ],
27032
+ "additionalProperties": false
27033
+ },
25958
27034
  "RepoInfo": {
25959
27035
  "type": "object",
25960
27036
  "properties": {
@@ -26036,6 +27112,13 @@
26036
27112
  },
26037
27113
  "discussion": {
26038
27114
  "$ref": "#/components/schemas/ReviewDiscussion"
27115
+ },
27116
+ "actions": {
27117
+ "type": "array",
27118
+ "items": {
27119
+ "$ref": "#/components/schemas/ReviewAction"
27120
+ },
27121
+ "description": "What the person may do to this review now."
26039
27122
  }
26040
27123
  },
26041
27124
  "required": [
@@ -26046,7 +27129,8 @@
26046
27129
  "updatedAt",
26047
27130
  "reviewDecision",
26048
27131
  "mergeState",
26049
- "checks"
27132
+ "checks",
27133
+ "actions"
26050
27134
  ],
26051
27135
  "additionalProperties": false
26052
27136
  },
@@ -26077,6 +27161,13 @@
26077
27161
  "items": {
26078
27162
  "$ref": "#/components/schemas/CheckRun"
26079
27163
  }
27164
+ },
27165
+ "actions": {
27166
+ "type": "array",
27167
+ "items": {
27168
+ "$ref": "#/components/schemas/ReviewAction"
27169
+ },
27170
+ "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
27171
  }
26081
27172
  },
26082
27173
  "required": [
@@ -26172,6 +27263,64 @@
26172
27263
  ],
26173
27264
  "additionalProperties": false
26174
27265
  },
27266
+ "ReviewAction": {
27267
+ "type": "object",
27268
+ "properties": {
27269
+ "id": {
27270
+ "type": "string"
27271
+ },
27272
+ "label": {
27273
+ "type": "string"
27274
+ },
27275
+ "icon": {
27276
+ "type": "string",
27277
+ "enum": [
27278
+ "ready",
27279
+ "rerun",
27280
+ "merge"
27281
+ ],
27282
+ "description": "The icons an action may name. A fixed set, so the core draws every icon itself."
27283
+ },
27284
+ "placement": {
27285
+ "type": "string",
27286
+ "enum": [
27287
+ "check",
27288
+ "header"
27289
+ ],
27290
+ "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."
27291
+ },
27292
+ "group": {
27293
+ "type": "string",
27294
+ "description": "Header actions with the same group show as one split button, the first being the default."
27295
+ },
27296
+ "args": {
27297
+ "type": "object",
27298
+ "additionalProperties": {
27299
+ "type": [
27300
+ "string",
27301
+ "number",
27302
+ "boolean"
27303
+ ]
27304
+ },
27305
+ "description": "Argument values an action carries. Plain JSON only."
27306
+ },
27307
+ "confirm": {
27308
+ "type": "string",
27309
+ "description": "When set, the core asks for confirmation with this text before it runs the action."
27310
+ },
27311
+ "disabledReason": {
27312
+ "type": "string",
27313
+ "description": "When set, the action is shown but cannot run, and this says why."
27314
+ }
27315
+ },
27316
+ "required": [
27317
+ "id",
27318
+ "label",
27319
+ "icon",
27320
+ "placement"
27321
+ ],
27322
+ "additionalProperties": false
27323
+ },
26175
27324
  "Reviewer": {
26176
27325
  "type": "object",
26177
27326
  "properties": {