@band-app/server 0.31.1 → 0.32.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 (175) hide show
  1. package/dist/client/assets/{TerminalPanel-DdoEObnF.js → TerminalPanel-CSIo5ni0.js} +1 -1
  2. package/dist/client/assets/_basePickBy-CdaZY6mI.js +1 -0
  3. package/dist/client/assets/{_baseUniq-BZZjCl_a.js → _baseUniq-Cbf2JylA.js} +1 -1
  4. package/dist/client/assets/addon-unicode11-LsnDChsR.js +1 -0
  5. package/dist/client/assets/{arc-CHfgBvn_.js → arc-93kXHiVA.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-DQA19xNg.js → architectureDiagram-VXUJARFQ-mXd7ilfO.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-F8PTxmQ_.js → blockDiagram-VD42YOAC-DpjfCZDe.js} +4 -4
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-BJUm36SI.js → c4Diagram-YG6GDRKO-D17zktyo.js} +1 -1
  9. package/dist/client/assets/channel-C4GiEGw4.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-C1wjI1w7.js → chunk-4BX2VUAB-UK3Q89L4.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-CGfcCH6v.js → chunk-55IACEB6-DOnNiKCE.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-DmVN_q5R.js → chunk-B4BG7PRW-RuY3pvrs.js} +3 -3
  13. package/dist/client/assets/{chunk-DI55MBZ5-Cp0-lUyt.js → chunk-DI55MBZ5-CLkaHQD0.js} +3 -3
  14. package/dist/client/assets/{chunk-FMBD7UC4-BE3Cu6Ut.js → chunk-FMBD7UC4-B2_FpfY1.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-CPVRy0ja.js → chunk-QN33PNHL-BJ5cRImN.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-C7Y7bhq5.js → chunk-QZHKN3VN-DWhBc9Ty.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-Bi_vlgox.js → chunk-TZMSLE5B-C6dn9jrV.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-y6v_VfOs.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-y6v_VfOs.js +1 -0
  20. package/dist/client/assets/clone-B_3XeJsO.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-CoCMLv_6.js → cose-bilkent-S5V4N54A-CApk1lUu.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-EnAkiIUe.js → dagre-6UL2VRFP-BmLALXZu.js} +2 -2
  23. package/dist/client/assets/{diagram-PSM6KHXK-C2Y89USX.js → diagram-PSM6KHXK-C2cPLLkQ.js} +1 -1
  24. package/dist/client/assets/{diagram-QEK2KX5R-B-lmAMSj.js → diagram-QEK2KX5R-vmbBSzsB.js} +2 -2
  25. package/dist/client/assets/diagram-S2PKOQOG-RgcJYL9S.js +24 -0
  26. package/dist/client/assets/{erDiagram-Q2GNP2WA-PNRr4PfI.js → erDiagram-Q2GNP2WA-CpoxBAoy.js} +3 -3
  27. package/dist/client/assets/{flowDiagram-NV44I4VS-DMJLrOve.js → flowDiagram-NV44I4VS-DxnlkHRY.js} +3 -3
  28. package/dist/client/assets/{ganttDiagram-JELNMOA3-B8xTGdhz.js → ganttDiagram-JELNMOA3-DsnoA6Bi.js} +5 -5
  29. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-CRGiaUIP.js +65 -0
  30. package/dist/client/assets/{graph-DtlkBWdT.js → graph-B0pjD7JO.js} +1 -1
  31. package/dist/client/assets/highlighted-body-B3W2YXNL-B-sBG2bX.js +1 -0
  32. package/dist/client/assets/index-2xKJ9Khi.js +1 -0
  33. package/dist/client/assets/index-BuhLC7zE.js +1 -0
  34. package/dist/client/assets/index-C08rV2E6.js +3 -0
  35. package/dist/client/assets/index-C5lac708.js +7 -0
  36. package/dist/client/assets/index-CrCMXmx8.js +1 -0
  37. package/dist/client/assets/index-Ct8NuxSL.js +1 -0
  38. package/dist/client/assets/{index-DzmcYgsK.js → index-DHizjwkP.js} +1 -1
  39. package/dist/client/assets/index-DoBYcXmW.js +1 -0
  40. package/dist/client/assets/index-THSuS9sd.js +1 -0
  41. package/dist/client/assets/index-TNsDOp6e.js +1 -0
  42. package/dist/client/assets/index-U5JB6u6d.js +1 -0
  43. package/dist/client/assets/{index-DwIIxwyA.js → index-ftqQmu5s.js} +2 -2
  44. package/dist/client/assets/index-sHvOWbSE.js +1 -0
  45. package/dist/client/assets/{infoDiagram-HS3SLOUP-DekD9pOv.js → infoDiagram-HS3SLOUP-CRp6iT8d.js} +1 -1
  46. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-Fzs0FbeM.js → journeyDiagram-XKPGCS4Q-BQ2WA6b4.js} +1 -1
  47. package/dist/client/assets/{kanban-definition-3W4ZIXB7-6B7ehAZt.js → kanban-definition-3W4ZIXB7-D-VXNhIi.js} +6 -6
  48. package/dist/client/assets/{layout-CcUD7gHw.js → layout-DqRyDMTL.js} +1 -1
  49. package/dist/client/assets/main-CmUn6n9o.css +1 -0
  50. package/dist/client/assets/main-CsKfm_iE.js +999 -0
  51. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CfY1kt2W.js → mindmap-definition-VGOIOE7T-DF_KVmYJ.js} +4 -4
  52. package/dist/client/assets/{pieDiagram-ADFJNKIX-C-ZZw4jN.js → pieDiagram-ADFJNKIX-X9Gpsupa.js} +2 -2
  53. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-Cn4pxyBH.js → quadrantDiagram-AYHSOK5B-Dv43A6Kl.js} +1 -1
  54. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-B0UYN1Sq.js → requirementDiagram-UZGBJVZJ-Bsm1ID8v.js} +1 -1
  55. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-DegmNHvK.js → sankeyDiagram-TZEHDZUN-C89ZzNUa.js} +6 -6
  56. package/dist/client/assets/{sequenceDiagram-WL72ISMW-B8BlHF2c.js → sequenceDiagram-WL72ISMW-DCEzHjMR.js} +6 -6
  57. package/dist/client/assets/{stateDiagram-FKZM4ZOC-3FR63a_N.js → stateDiagram-FKZM4ZOC-DL_-FpOq.js} +1 -1
  58. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D5laPTLF.js +1 -0
  59. package/dist/client/assets/{timeline-definition-IT6M3QCI-F2yYpGjm.js → timeline-definition-IT6M3QCI-BklAlKxM.js} +4 -4
  60. package/dist/client/assets/{treemap-GDKQZRPO-Br0ExAYs.js → treemap-GDKQZRPO-DugwR-ad.js} +1 -1
  61. package/dist/client/assets/workspace._workspaceId-CdoxJFsY.js +1 -0
  62. package/dist/client/assets/{workspace._workspaceId-DxBPbkq5.js → workspace._workspaceId-CvpowXC8.js} +1 -1
  63. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CnbekSuG.js → xychartDiagram-PRI3JC2R-DEyS0s6m.js} +1 -1
  64. package/dist/migrations/20260926162113_browser_profiles/migration.sql +12 -0
  65. package/dist/migrations/20260926162113_browser_profiles/snapshot.json +1520 -0
  66. package/dist/openapi.json +1358 -360
  67. package/dist/server/assets/{TerminalPanel-CThgG3BY.js → TerminalPanel-BVyQf1VK.js} +1 -1
  68. package/dist/server/assets/{_basePickBy-DMEcDwoD.js → _basePickBy-DRh75DZA.js} +2 -2
  69. package/dist/server/assets/{_baseUniq-C6YEem8Y.js → _baseUniq-DxwDPh9u.js} +1 -1
  70. package/dist/server/assets/_tanstack-start-manifest_v-CfuLu7F9.js +4 -0
  71. package/dist/server/assets/addon-unicode11-BhCmKRb7.js +181 -0
  72. package/dist/server/assets/{arc-CcEw1rIf.js → arc-d221pGej.js} +1 -1
  73. package/dist/server/assets/{architecture-7HQA4BMR-BXvzNToj.js → architecture-7HQA4BMR-CDuqFHS1.js} +6 -6
  74. package/dist/server/assets/{architectureDiagram-VXUJARFQ-BliQCKdG.js → architectureDiagram-VXUJARFQ-LivVdR2U.js} +6 -6
  75. package/dist/server/assets/{blockDiagram-VD42YOAC-CjmYP_Tq.js → blockDiagram-VD42YOAC-Cpsga8jz.js} +6 -6
  76. package/dist/server/assets/{c4Diagram-YG6GDRKO-BfRolLuL.js → c4Diagram-YG6GDRKO-CR3dewU0.js} +2 -2
  77. package/dist/server/assets/{channel-CmYmU2fF.js → channel-CznEvUJx.js} +1 -1
  78. package/dist/server/assets/{chunk-4BX2VUAB-DnWdxOy5.js → chunk-4BX2VUAB-2XGKksov.js} +1 -1
  79. package/dist/server/assets/{chunk-55IACEB6-BTmbTQIk.js → chunk-55IACEB6-D_sfF6RU.js} +1 -1
  80. package/dist/server/assets/{chunk-B4BG7PRW-Dd8U8eRH.js → chunk-B4BG7PRW-DE9YZpuI.js} +4 -4
  81. package/dist/server/assets/{chunk-DI55MBZ5-DOSx8ES_.js → chunk-DI55MBZ5-1WmBcjv0.js} +3 -3
  82. package/dist/server/assets/{chunk-FMBD7UC4-DoS4CUAI.js → chunk-FMBD7UC4-0hzwdviV.js} +1 -1
  83. package/dist/server/assets/{chunk-QN33PNHL-81e5hpqA.js → chunk-QN33PNHL-sglY-9R6.js} +1 -1
  84. package/dist/server/assets/{chunk-QZHKN3VN-Cruwx7ml.js → chunk-QZHKN3VN-BL0yO15_.js} +1 -1
  85. package/dist/server/assets/{chunk-TZMSLE5B-CVdCnVV1.js → chunk-TZMSLE5B-CRCOAzqG.js} +1 -1
  86. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CI4dbXAN.js → classDiagram-2ON5EDUG-GVVGcmAY.js} +5 -5
  87. package/dist/server/assets/{classDiagram-2ON5EDUG-CI4dbXAN.js → classDiagram-v2-WZHVMYZB-GVVGcmAY.js} +5 -5
  88. package/dist/server/assets/{clone-DCf3XlPY.js → clone-Cw9PiOA8.js} +1 -1
  89. package/dist/server/assets/{cose-bilkent-S5V4N54A-MuUXxVtC.js → cose-bilkent-S5V4N54A-xdF6iXS1.js} +1 -1
  90. package/dist/server/assets/{dagre-6UL2VRFP-C7ckn20c.js → dagre-6UL2VRFP-ZMimZN6M.js} +6 -6
  91. package/dist/server/assets/{diagram-PSM6KHXK-CMxqFNNc.js → diagram-PSM6KHXK-AtdXKese.js} +7 -7
  92. package/dist/server/assets/{diagram-QEK2KX5R-DGn7Wc3l.js → diagram-QEK2KX5R-to1VE7Ky.js} +6 -6
  93. package/dist/server/assets/{diagram-S2PKOQOG-DCkkbBLl.js → diagram-S2PKOQOG-lJFLwEPR.js} +6 -6
  94. package/dist/server/assets/{erDiagram-Q2GNP2WA-CKPFaAp2.js → erDiagram-Q2GNP2WA-CbevyytQ.js} +4 -4
  95. package/dist/server/assets/{flowDiagram-NV44I4VS-DFf8L08F.js → flowDiagram-NV44I4VS-DTd0gkkY.js} +5 -5
  96. package/dist/server/assets/{ganttDiagram-JELNMOA3-1-t_r6jX.js → ganttDiagram-JELNMOA3-YwmrEI5N.js} +1 -1
  97. package/dist/server/assets/{gitGraph-G5XIXVHT-CXVQFRFs.js → gitGraph-G5XIXVHT-BArDd0OC.js} +6 -6
  98. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-DVqN7ZP0.js → gitGraphDiagram-V2S2FVAM-BTThcyM8.js} +7 -7
  99. package/dist/server/assets/{graph-Dot7YH89.js → graph-BOO01qmU.js} +2 -2
  100. package/dist/server/assets/{highlighted-body-B3W2YXNL-8cjZuRJ2.js → highlighted-body-B3W2YXNL-Cym8kCCk.js} +1 -1
  101. package/dist/server/assets/{index-Bi1NreVG.js → index-3bt1s3HG.js} +1 -5
  102. package/dist/server/assets/{index-p6O_x_qN.js → index-7I7gBKIT.js} +1 -2
  103. package/dist/server/assets/{index-Ba8AA28e.js → index-BQaiSrqT.js} +1 -2
  104. package/dist/server/assets/{index-AmUVRRsa.js → index-CBT9vLeO.js} +1 -2
  105. package/dist/server/assets/{index-BDgBWXBD.js → index-CQd5Q7Kt.js} +1 -2
  106. package/dist/server/assets/{index-D6Vm7E_i.js → index-CaFux-EA.js} +1 -2
  107. package/dist/server/assets/{index-D3AFKy3U.js → index-Ckc3EtXO.js} +1 -3
  108. package/dist/server/assets/{index-C1hQNNzU.js → index-CsHpsK-4.js} +1 -2
  109. package/dist/server/assets/{index-CxlXrP3m.js → index-DVBTKosE.js} +1 -1
  110. package/dist/server/assets/{index-BcZgkaNS.js → index-DX1Ugorr.js} +1 -2
  111. package/dist/server/assets/{index-nzUHfYBx.js → index-DZfyQWn7.js} +1 -2
  112. package/dist/server/assets/{index-GgrvHhHi.js → index-Z7BJHwYS.js} +1 -3
  113. package/dist/server/assets/{index-B2x1DfYc.js → index-caXQk3Nh.js} +1 -2
  114. package/dist/server/assets/{info-VBDWY6EO-BXRDzzOP.js → info-VBDWY6EO-D4lcUmb_.js} +6 -6
  115. package/dist/server/assets/{infoDiagram-HS3SLOUP-D2jQYgOa.js → infoDiagram-HS3SLOUP-C1ai--xt.js} +5 -5
  116. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-bf_S8co7.js → journeyDiagram-XKPGCS4Q-qel6lxPz.js} +4 -4
  117. package/dist/server/assets/{kanban-definition-3W4ZIXB7-eje5lYLG.js → kanban-definition-3W4ZIXB7-BQPKgoP_.js} +2 -2
  118. package/dist/server/assets/{layout-D3AhBFqI.js → layout-D_wAQ9pE.js} +4 -4
  119. package/dist/server/assets/{mermaid-3ZIDBTTL-C-00O3F0.js → mermaid-3ZIDBTTL-CtNgetEO.js} +1 -1
  120. package/dist/server/assets/{mermaid-parser.core-CyX4B1l5.js → mermaid-parser.core-BwjOeEsU.js} +11 -11
  121. package/dist/server/assets/{mindmap-definition-VGOIOE7T-D51F_plo.js → mindmap-definition-VGOIOE7T-DYdatMwP.js} +3 -3
  122. package/dist/server/assets/{packet-DYOGHKS2-CCJkkNTh.js → packet-DYOGHKS2-_TbN3RWI.js} +6 -6
  123. package/dist/server/assets/{pie-VRWISCQL-7Tei6lnA.js → pie-VRWISCQL-D9Z5k3qi.js} +6 -6
  124. package/dist/server/assets/{pieDiagram-ADFJNKIX-BclaT-41.js → pieDiagram-ADFJNKIX-COmj-G7F.js} +7 -7
  125. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-CnerVMbZ.js → quadrantDiagram-AYHSOK5B-BajsyCAd.js} +1 -1
  126. package/dist/server/assets/{radar-ZZBFDIW7-QLmbgAT7.js → radar-ZZBFDIW7-DLipfn_u.js} +6 -6
  127. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-a2FIYlfE.js → requirementDiagram-UZGBJVZJ-BGEkpdbY.js} +3 -3
  128. package/dist/server/assets/{router-DDnNUwTm.js → router-Dpb0Z442.js} +60068 -39061
  129. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-B3I-S6CG.js → sankeyDiagram-TZEHDZUN-CWd3AEju.js} +1 -1
  130. package/dist/server/assets/{sequenceDiagram-WL72ISMW-kgJrgJ9r.js → sequenceDiagram-WL72ISMW-BMTkK0JQ.js} +3 -3
  131. package/dist/server/assets/{stateDiagram-FKZM4ZOC-C6UTf0ag.js → stateDiagram-FKZM4ZOC-CpBXq11c.js} +8 -8
  132. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-Dj0SlbA4.js → stateDiagram-v2-4FDKWEC3-DNuppjf9.js} +4 -4
  133. package/dist/server/assets/{timeline-definition-IT6M3QCI-DGPtqtJD.js → timeline-definition-IT6M3QCI-YTyqSIDt.js} +2 -2
  134. package/dist/server/assets/{treemap-GDKQZRPO-B-wn0rT7.js → treemap-GDKQZRPO-BeWiYXRR.js} +6 -6
  135. package/dist/server/assets/{workspace._workspaceId-CG5NG8aZ.js → workspace._workspaceId-Ce_eap6T.js} +1 -1
  136. package/dist/server/assets/{workspace._workspaceId-Dd-upXb6.js → workspace._workspaceId-t0HaEyN5.js} +2 -12
  137. package/dist/server/assets/{xychartDiagram-PRI3JC2R-BTb4nc1D.js → xychartDiagram-PRI3JC2R-Dlgz7zKK.js} +1 -1
  138. package/dist/server/server.js +2 -2
  139. package/dist/start-server.mjs +25456 -6063
  140. package/dist/terminal-daemon.mjs +341 -11
  141. package/package.json +6 -4
  142. package/dist/client/assets/_basePickBy-B3BFyLWC.js +0 -1
  143. package/dist/client/assets/channel-RulspXoY.js +0 -1
  144. package/dist/client/assets/classDiagram-2ON5EDUG-Db0XAgV5.js +0 -1
  145. package/dist/client/assets/classDiagram-v2-WZHVMYZB-Db0XAgV5.js +0 -1
  146. package/dist/client/assets/clone-OMk_JTVX.js +0 -1
  147. package/dist/client/assets/diagram-S2PKOQOG-D3nbDuM4.js +0 -24
  148. package/dist/client/assets/gitGraphDiagram-V2S2FVAM-1W-3cgTi.js +0 -65
  149. package/dist/client/assets/highlighted-body-B3W2YXNL-By10eQ93.js +0 -1
  150. package/dist/client/assets/index-3OKF_8Is.js +0 -1
  151. package/dist/client/assets/index-Bgy7cu0a.js +0 -1
  152. package/dist/client/assets/index-BzNAZ5FA.js +0 -1
  153. package/dist/client/assets/index-Bzw80mva.js +0 -1
  154. package/dist/client/assets/index-C0hp-RSv.js +0 -7
  155. package/dist/client/assets/index-CEIbmBrz.js +0 -1
  156. package/dist/client/assets/index-D0-MMrtE.js +0 -13
  157. package/dist/client/assets/index-D1tzUCeW.js +0 -1
  158. package/dist/client/assets/index-DS648c4_.js +0 -1
  159. package/dist/client/assets/index-DV4-ZPTy.js +0 -1
  160. package/dist/client/assets/index-DkJyKKg0.js +0 -1
  161. package/dist/client/assets/index-Do8FqasK.js +0 -1
  162. package/dist/client/assets/index-DtgD3j-s.js +0 -6
  163. package/dist/client/assets/index-UlnCpzJG.js +0 -1
  164. package/dist/client/assets/index-bqUQQY5s.js +0 -3
  165. package/dist/client/assets/index-os2U5ZBq.js +0 -1
  166. package/dist/client/assets/main-B-TE9tSM.js +0 -979
  167. package/dist/client/assets/main-mRE1Fhv7.css +0 -1
  168. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BrxlUWYt.js +0 -1
  169. package/dist/client/assets/workspace._workspaceId-C0VOYb-1.js +0 -1
  170. package/dist/server/assets/_tanstack-start-manifest_v-D-Rf7MMa.js +0 -4
  171. package/dist/server/assets/index-Bt0zkb77.js +0 -1052
  172. package/dist/server/assets/index-CImaqmmh.js +0 -1764
  173. package/dist/server/assets/index-CXGBWoOB.js +0 -2499
  174. package/dist/server/assets/index-CyFAdMlV.js +0 -1030
  175. package/dist/server/assets/index-DoE2xDo2.js +0 -653
package/dist/openapi.json CHANGED
@@ -5496,6 +5496,12 @@
5496
5496
  "properties": {
5497
5497
  "workspaceId": {
5498
5498
  "type": "string"
5499
+ },
5500
+ "query": {
5501
+ "type": "string"
5502
+ },
5503
+ "limit": {
5504
+ "type": "number"
5499
5505
  }
5500
5506
  },
5501
5507
  "required": [
@@ -5509,9 +5515,9 @@
5509
5515
  ]
5510
5516
  }
5511
5517
  },
5512
- "/workspace.getDiff": {
5518
+ "/workspace.getCommitHistory": {
5513
5519
  "get": {
5514
- "operationId": "workspace.getDiff",
5520
+ "operationId": "workspace.getCommitHistory",
5515
5521
  "tags": [
5516
5522
  "workspace"
5517
5523
  ],
@@ -5527,7 +5533,7 @@
5527
5533
  "type": "object",
5528
5534
  "properties": {
5529
5535
  "data": {
5530
- "$ref": "#/components/schemas/DiffResult"
5536
+ "$ref": "#/components/schemas/CommitHistoryResult"
5531
5537
  }
5532
5538
  },
5533
5539
  "required": [
@@ -5560,17 +5566,73 @@
5560
5566
  "workspaceId": {
5561
5567
  "type": "string"
5562
5568
  },
5563
- "contextLines": {
5569
+ "limit": {
5564
5570
  "type": "number"
5565
5571
  },
5566
- "diffMode": {
5567
- "type": "string",
5568
- "enum": [
5569
- "branch",
5570
- "uncommitted"
5572
+ "skip": {
5573
+ "type": "number"
5574
+ }
5575
+ },
5576
+ "required": [
5577
+ "workspaceId"
5578
+ ],
5579
+ "additionalProperties": false
5580
+ }
5581
+ }
5582
+ }
5583
+ }
5584
+ ]
5585
+ }
5586
+ },
5587
+ "/workspace.getCommitHistorySignature": {
5588
+ "get": {
5589
+ "operationId": "workspace.getCommitHistorySignature",
5590
+ "tags": [
5591
+ "workspace"
5592
+ ],
5593
+ "responses": {
5594
+ "200": {
5595
+ "description": "Successful response",
5596
+ "content": {
5597
+ "application/json": {
5598
+ "schema": {
5599
+ "type": "object",
5600
+ "properties": {
5601
+ "result": {
5602
+ "type": "object",
5603
+ "properties": {
5604
+ "data": {
5605
+ "type": "string"
5606
+ }
5607
+ },
5608
+ "required": [
5609
+ "data"
5571
5610
  ]
5572
- },
5573
- "compareBranch": {
5611
+ }
5612
+ },
5613
+ "required": [
5614
+ "result"
5615
+ ]
5616
+ }
5617
+ }
5618
+ }
5619
+ },
5620
+ "default": {
5621
+ "$ref": "#/components/responses/Error"
5622
+ }
5623
+ },
5624
+ "parameters": [
5625
+ {
5626
+ "name": "input",
5627
+ "in": "query",
5628
+ "required": true,
5629
+ "style": "deepObject",
5630
+ "content": {
5631
+ "application/json": {
5632
+ "schema": {
5633
+ "type": "object",
5634
+ "properties": {
5635
+ "workspaceId": {
5574
5636
  "type": "string"
5575
5637
  }
5576
5638
  },
@@ -5585,9 +5647,9 @@
5585
5647
  ]
5586
5648
  }
5587
5649
  },
5588
- "/workspace.getDiffSummary": {
5650
+ "/workspace.getCommitDetails": {
5589
5651
  "get": {
5590
- "operationId": "workspace.getDiffSummary",
5652
+ "operationId": "workspace.getCommitDetails",
5591
5653
  "tags": [
5592
5654
  "workspace"
5593
5655
  ],
@@ -5603,7 +5665,7 @@
5603
5665
  "type": "object",
5604
5666
  "properties": {
5605
5667
  "data": {
5606
- "$ref": "#/components/schemas/DiffSummaryResult"
5668
+ "$ref": "#/components/schemas/CommitDetails"
5607
5669
  }
5608
5670
  },
5609
5671
  "required": [
@@ -5636,19 +5698,13 @@
5636
5698
  "workspaceId": {
5637
5699
  "type": "string"
5638
5700
  },
5639
- "diffMode": {
5640
- "type": "string",
5641
- "enum": [
5642
- "branch",
5643
- "uncommitted"
5644
- ]
5645
- },
5646
- "compareBranch": {
5701
+ "sha": {
5647
5702
  "type": "string"
5648
5703
  }
5649
5704
  },
5650
5705
  "required": [
5651
- "workspaceId"
5706
+ "workspaceId",
5707
+ "sha"
5652
5708
  ],
5653
5709
  "additionalProperties": false
5654
5710
  }
@@ -5658,9 +5714,9 @@
5658
5714
  ]
5659
5715
  }
5660
5716
  },
5661
- "/workspace.getFileDiff": {
5717
+ "/workspace.getCommitFileDiff": {
5662
5718
  "get": {
5663
- "operationId": "workspace.getFileDiff",
5719
+ "operationId": "workspace.getCommitFileDiff",
5664
5720
  "tags": [
5665
5721
  "workspace"
5666
5722
  ],
@@ -5721,7 +5777,7 @@
5721
5777
  "filePath": {
5722
5778
  "type": "string"
5723
5779
  },
5724
- "mergeBase": {
5780
+ "sha": {
5725
5781
  "type": "string"
5726
5782
  },
5727
5783
  "contextLines": {
@@ -5731,7 +5787,7 @@
5731
5787
  "required": [
5732
5788
  "workspaceId",
5733
5789
  "filePath",
5734
- "mergeBase"
5790
+ "sha"
5735
5791
  ],
5736
5792
  "additionalProperties": false
5737
5793
  }
@@ -5741,9 +5797,9 @@
5741
5797
  ]
5742
5798
  }
5743
5799
  },
5744
- "/workspace.revertFile": {
5745
- "post": {
5746
- "operationId": "workspace.revertFile",
5800
+ "/workspace.getDiff": {
5801
+ "get": {
5802
+ "operationId": "workspace.getDiff",
5747
5803
  "tags": [
5748
5804
  "workspace"
5749
5805
  ],
@@ -5759,17 +5815,7 @@
5759
5815
  "type": "object",
5760
5816
  "properties": {
5761
5817
  "data": {
5762
- "type": "object",
5763
- "properties": {
5764
- "ok": {
5765
- "type": "boolean",
5766
- "const": true
5767
- }
5768
- },
5769
- "required": [
5770
- "ok"
5771
- ],
5772
- "additionalProperties": false
5818
+ "$ref": "#/components/schemas/DiffResult"
5773
5819
  }
5774
5820
  },
5775
5821
  "required": [
@@ -5788,45 +5834,48 @@
5788
5834
  "$ref": "#/components/responses/Error"
5789
5835
  }
5790
5836
  },
5791
- "requestBody": {
5792
- "required": true,
5793
- "content": {
5794
- "application/json": {
5795
- "schema": {
5796
- "type": "object",
5797
- "properties": {
5798
- "workspaceId": {
5799
- "type": "string"
5800
- },
5801
- "filePath": {
5802
- "type": "string"
5803
- },
5804
- "diffMode": {
5805
- "type": "string",
5806
- "enum": [
5807
- "branch",
5808
- "uncommitted"
5809
- ]
5837
+ "parameters": [
5838
+ {
5839
+ "name": "input",
5840
+ "in": "query",
5841
+ "required": true,
5842
+ "style": "deepObject",
5843
+ "content": {
5844
+ "application/json": {
5845
+ "schema": {
5846
+ "type": "object",
5847
+ "properties": {
5848
+ "workspaceId": {
5849
+ "type": "string"
5850
+ },
5851
+ "contextLines": {
5852
+ "type": "number"
5853
+ },
5854
+ "diffMode": {
5855
+ "type": "string",
5856
+ "enum": [
5857
+ "branch",
5858
+ "uncommitted"
5859
+ ]
5860
+ },
5861
+ "compareBranch": {
5862
+ "type": "string"
5863
+ }
5810
5864
  },
5811
- "compareBranch": {
5812
- "type": "string"
5813
- }
5814
- },
5815
- "required": [
5816
- "workspaceId",
5817
- "filePath",
5818
- "diffMode"
5819
- ],
5820
- "additionalProperties": false
5865
+ "required": [
5866
+ "workspaceId"
5867
+ ],
5868
+ "additionalProperties": false
5869
+ }
5821
5870
  }
5822
5871
  }
5823
5872
  }
5824
- }
5873
+ ]
5825
5874
  }
5826
5875
  },
5827
- "/workspace.gitPull": {
5828
- "post": {
5829
- "operationId": "workspace.gitPull",
5876
+ "/workspace.getDiffSummary": {
5877
+ "get": {
5878
+ "operationId": "workspace.getDiffSummary",
5830
5879
  "tags": [
5831
5880
  "workspace"
5832
5881
  ],
@@ -5842,17 +5891,7 @@
5842
5891
  "type": "object",
5843
5892
  "properties": {
5844
5893
  "data": {
5845
- "type": "object",
5846
- "properties": {
5847
- "ok": {
5848
- "type": "boolean",
5849
- "const": true
5850
- }
5851
- },
5852
- "required": [
5853
- "ok"
5854
- ],
5855
- "additionalProperties": false
5894
+ "$ref": "#/components/schemas/DiffSummaryResult"
5856
5895
  }
5857
5896
  },
5858
5897
  "required": [
@@ -5871,30 +5910,45 @@
5871
5910
  "$ref": "#/components/responses/Error"
5872
5911
  }
5873
5912
  },
5874
- "requestBody": {
5875
- "required": true,
5876
- "content": {
5877
- "application/json": {
5878
- "schema": {
5879
- "type": "object",
5880
- "properties": {
5881
- "workspaceId": {
5882
- "type": "string"
5883
- }
5884
- },
5885
- "required": [
5886
- "workspaceId"
5887
- ],
5888
- "additionalProperties": false
5913
+ "parameters": [
5914
+ {
5915
+ "name": "input",
5916
+ "in": "query",
5917
+ "required": true,
5918
+ "style": "deepObject",
5919
+ "content": {
5920
+ "application/json": {
5921
+ "schema": {
5922
+ "type": "object",
5923
+ "properties": {
5924
+ "workspaceId": {
5925
+ "type": "string"
5926
+ },
5927
+ "diffMode": {
5928
+ "type": "string",
5929
+ "enum": [
5930
+ "branch",
5931
+ "uncommitted"
5932
+ ]
5933
+ },
5934
+ "compareBranch": {
5935
+ "type": "string"
5936
+ }
5937
+ },
5938
+ "required": [
5939
+ "workspaceId"
5940
+ ],
5941
+ "additionalProperties": false
5942
+ }
5889
5943
  }
5890
5944
  }
5891
5945
  }
5892
- }
5946
+ ]
5893
5947
  }
5894
5948
  },
5895
- "/workspace.gitPush": {
5896
- "post": {
5897
- "operationId": "workspace.gitPush",
5949
+ "/workspace.getFileDiff": {
5950
+ "get": {
5951
+ "operationId": "workspace.getFileDiff",
5898
5952
  "tags": [
5899
5953
  "workspace"
5900
5954
  ],
@@ -5912,13 +5966,12 @@
5912
5966
  "data": {
5913
5967
  "type": "object",
5914
5968
  "properties": {
5915
- "ok": {
5916
- "type": "boolean",
5917
- "const": true
5969
+ "diff": {
5970
+ "type": "string"
5918
5971
  }
5919
5972
  },
5920
5973
  "required": [
5921
- "ok"
5974
+ "diff"
5922
5975
  ],
5923
5976
  "additionalProperties": false
5924
5977
  }
@@ -5939,8 +5992,243 @@
5939
5992
  "$ref": "#/components/responses/Error"
5940
5993
  }
5941
5994
  },
5942
- "requestBody": {
5943
- "required": true,
5995
+ "parameters": [
5996
+ {
5997
+ "name": "input",
5998
+ "in": "query",
5999
+ "required": true,
6000
+ "style": "deepObject",
6001
+ "content": {
6002
+ "application/json": {
6003
+ "schema": {
6004
+ "type": "object",
6005
+ "properties": {
6006
+ "workspaceId": {
6007
+ "type": "string"
6008
+ },
6009
+ "filePath": {
6010
+ "type": "string"
6011
+ },
6012
+ "mergeBase": {
6013
+ "type": "string"
6014
+ },
6015
+ "contextLines": {
6016
+ "type": "number"
6017
+ }
6018
+ },
6019
+ "required": [
6020
+ "workspaceId",
6021
+ "filePath",
6022
+ "mergeBase"
6023
+ ],
6024
+ "additionalProperties": false
6025
+ }
6026
+ }
6027
+ }
6028
+ }
6029
+ ]
6030
+ }
6031
+ },
6032
+ "/workspace.revertFile": {
6033
+ "post": {
6034
+ "operationId": "workspace.revertFile",
6035
+ "tags": [
6036
+ "workspace"
6037
+ ],
6038
+ "responses": {
6039
+ "200": {
6040
+ "description": "Successful response",
6041
+ "content": {
6042
+ "application/json": {
6043
+ "schema": {
6044
+ "type": "object",
6045
+ "properties": {
6046
+ "result": {
6047
+ "type": "object",
6048
+ "properties": {
6049
+ "data": {
6050
+ "type": "object",
6051
+ "properties": {
6052
+ "ok": {
6053
+ "type": "boolean",
6054
+ "const": true
6055
+ }
6056
+ },
6057
+ "required": [
6058
+ "ok"
6059
+ ],
6060
+ "additionalProperties": false
6061
+ }
6062
+ },
6063
+ "required": [
6064
+ "data"
6065
+ ]
6066
+ }
6067
+ },
6068
+ "required": [
6069
+ "result"
6070
+ ]
6071
+ }
6072
+ }
6073
+ }
6074
+ },
6075
+ "default": {
6076
+ "$ref": "#/components/responses/Error"
6077
+ }
6078
+ },
6079
+ "requestBody": {
6080
+ "required": true,
6081
+ "content": {
6082
+ "application/json": {
6083
+ "schema": {
6084
+ "type": "object",
6085
+ "properties": {
6086
+ "workspaceId": {
6087
+ "type": "string"
6088
+ },
6089
+ "filePath": {
6090
+ "type": "string"
6091
+ },
6092
+ "diffMode": {
6093
+ "type": "string",
6094
+ "enum": [
6095
+ "branch",
6096
+ "uncommitted"
6097
+ ]
6098
+ },
6099
+ "compareBranch": {
6100
+ "type": "string"
6101
+ }
6102
+ },
6103
+ "required": [
6104
+ "workspaceId",
6105
+ "filePath",
6106
+ "diffMode"
6107
+ ],
6108
+ "additionalProperties": false
6109
+ }
6110
+ }
6111
+ }
6112
+ }
6113
+ }
6114
+ },
6115
+ "/workspace.gitPull": {
6116
+ "post": {
6117
+ "operationId": "workspace.gitPull",
6118
+ "tags": [
6119
+ "workspace"
6120
+ ],
6121
+ "responses": {
6122
+ "200": {
6123
+ "description": "Successful response",
6124
+ "content": {
6125
+ "application/json": {
6126
+ "schema": {
6127
+ "type": "object",
6128
+ "properties": {
6129
+ "result": {
6130
+ "type": "object",
6131
+ "properties": {
6132
+ "data": {
6133
+ "type": "object",
6134
+ "properties": {
6135
+ "ok": {
6136
+ "type": "boolean",
6137
+ "const": true
6138
+ }
6139
+ },
6140
+ "required": [
6141
+ "ok"
6142
+ ],
6143
+ "additionalProperties": false
6144
+ }
6145
+ },
6146
+ "required": [
6147
+ "data"
6148
+ ]
6149
+ }
6150
+ },
6151
+ "required": [
6152
+ "result"
6153
+ ]
6154
+ }
6155
+ }
6156
+ }
6157
+ },
6158
+ "default": {
6159
+ "$ref": "#/components/responses/Error"
6160
+ }
6161
+ },
6162
+ "requestBody": {
6163
+ "required": true,
6164
+ "content": {
6165
+ "application/json": {
6166
+ "schema": {
6167
+ "type": "object",
6168
+ "properties": {
6169
+ "workspaceId": {
6170
+ "type": "string"
6171
+ }
6172
+ },
6173
+ "required": [
6174
+ "workspaceId"
6175
+ ],
6176
+ "additionalProperties": false
6177
+ }
6178
+ }
6179
+ }
6180
+ }
6181
+ }
6182
+ },
6183
+ "/workspace.gitPush": {
6184
+ "post": {
6185
+ "operationId": "workspace.gitPush",
6186
+ "tags": [
6187
+ "workspace"
6188
+ ],
6189
+ "responses": {
6190
+ "200": {
6191
+ "description": "Successful response",
6192
+ "content": {
6193
+ "application/json": {
6194
+ "schema": {
6195
+ "type": "object",
6196
+ "properties": {
6197
+ "result": {
6198
+ "type": "object",
6199
+ "properties": {
6200
+ "data": {
6201
+ "type": "object",
6202
+ "properties": {
6203
+ "ok": {
6204
+ "type": "boolean",
6205
+ "const": true
6206
+ }
6207
+ },
6208
+ "required": [
6209
+ "ok"
6210
+ ],
6211
+ "additionalProperties": false
6212
+ }
6213
+ },
6214
+ "required": [
6215
+ "data"
6216
+ ]
6217
+ }
6218
+ },
6219
+ "required": [
6220
+ "result"
6221
+ ]
6222
+ }
6223
+ }
6224
+ }
6225
+ },
6226
+ "default": {
6227
+ "$ref": "#/components/responses/Error"
6228
+ }
6229
+ },
6230
+ "requestBody": {
6231
+ "required": true,
5944
6232
  "content": {
5945
6233
  "application/json": {
5946
6234
  "schema": {
@@ -8388,42 +8676,603 @@
8388
8676
  }
8389
8677
  },
8390
8678
  "required": [
8391
- "result"
8392
- ]
8679
+ "result"
8680
+ ]
8681
+ }
8682
+ }
8683
+ }
8684
+ },
8685
+ "default": {
8686
+ "$ref": "#/components/responses/Error"
8687
+ }
8688
+ },
8689
+ "requestBody": {
8690
+ "required": true,
8691
+ "content": {
8692
+ "application/json": {
8693
+ "schema": {
8694
+ "type": "object",
8695
+ "properties": {
8696
+ "chatId": {
8697
+ "type": "string"
8698
+ }
8699
+ },
8700
+ "required": [
8701
+ "chatId"
8702
+ ],
8703
+ "additionalProperties": false
8704
+ }
8705
+ }
8706
+ }
8707
+ }
8708
+ }
8709
+ },
8710
+ "/chats.resume": {
8711
+ "post": {
8712
+ "operationId": "chats.resume",
8713
+ "tags": [
8714
+ "chats"
8715
+ ],
8716
+ "responses": {
8717
+ "200": {
8718
+ "description": "Successful response",
8719
+ "content": {
8720
+ "application/json": {
8721
+ "schema": {
8722
+ "type": "object",
8723
+ "properties": {
8724
+ "result": {
8725
+ "type": "object",
8726
+ "properties": {
8727
+ "data": {
8728
+ "type": "object",
8729
+ "properties": {
8730
+ "ok": {
8731
+ "type": "boolean"
8732
+ }
8733
+ },
8734
+ "required": [
8735
+ "ok"
8736
+ ],
8737
+ "additionalProperties": false
8738
+ }
8739
+ },
8740
+ "required": [
8741
+ "data"
8742
+ ]
8743
+ }
8744
+ },
8745
+ "required": [
8746
+ "result"
8747
+ ]
8748
+ }
8749
+ }
8750
+ }
8751
+ },
8752
+ "default": {
8753
+ "$ref": "#/components/responses/Error"
8754
+ }
8755
+ },
8756
+ "requestBody": {
8757
+ "required": true,
8758
+ "content": {
8759
+ "application/json": {
8760
+ "schema": {
8761
+ "type": "object",
8762
+ "properties": {
8763
+ "chatId": {
8764
+ "type": "string"
8765
+ }
8766
+ },
8767
+ "required": [
8768
+ "chatId"
8769
+ ],
8770
+ "additionalProperties": false
8771
+ }
8772
+ }
8773
+ }
8774
+ }
8775
+ }
8776
+ },
8777
+ "/chats.continueInTerminal": {
8778
+ "post": {
8779
+ "operationId": "chats.continueInTerminal",
8780
+ "description": "Continue this chat's coding-agent session in a terminal pane.\n\nResolves the chat's underlying agent session ID (`activeSessionId`) and\nthe adapter for whichever coding agent it ran, asks the adapter for the\nvendor CLI's *resume* invocation (`claude --resume <id>`,\n`codex resume <id>`, `opencode --session <id>`), composes it into a\nshell-safe command, and spawns a fresh terminal pane running it — so the\nuser keeps working in the very session the web chat was running.\n\nMirrors the spawn+emit pair in `WorkspaceService.create`'s\n`via=terminal` branch (issue #551), and resolves the agent inline the\nsame way `setActiveSession` above does. Errors surface to the client so\nthe UI can keep the menu item disabled for agents that can't resume\n(Gemini CLI / Cursor CLI) or chats with no session yet.",
8781
+ "tags": [
8782
+ "chats"
8783
+ ],
8784
+ "responses": {
8785
+ "200": {
8786
+ "description": "Successful response",
8787
+ "content": {
8788
+ "application/json": {
8789
+ "schema": {
8790
+ "type": "object",
8791
+ "properties": {
8792
+ "result": {
8793
+ "type": "object",
8794
+ "properties": {
8795
+ "data": {
8796
+ "type": "object",
8797
+ "properties": {
8798
+ "terminalId": {
8799
+ "type": "string"
8800
+ },
8801
+ "workspaceId": {
8802
+ "type": "string"
8803
+ },
8804
+ "sessionId": {
8805
+ "type": "string"
8806
+ }
8807
+ },
8808
+ "required": [
8809
+ "terminalId",
8810
+ "workspaceId",
8811
+ "sessionId"
8812
+ ],
8813
+ "additionalProperties": false
8814
+ }
8815
+ },
8816
+ "required": [
8817
+ "data"
8818
+ ]
8819
+ }
8820
+ },
8821
+ "required": [
8822
+ "result"
8823
+ ]
8824
+ }
8825
+ }
8826
+ }
8827
+ },
8828
+ "default": {
8829
+ "$ref": "#/components/responses/Error"
8830
+ }
8831
+ },
8832
+ "requestBody": {
8833
+ "required": true,
8834
+ "content": {
8835
+ "application/json": {
8836
+ "schema": {
8837
+ "type": "object",
8838
+ "properties": {
8839
+ "chatId": {
8840
+ "type": "string"
8841
+ }
8842
+ },
8843
+ "required": [
8844
+ "chatId"
8845
+ ],
8846
+ "additionalProperties": false
8847
+ }
8848
+ }
8849
+ }
8850
+ }
8851
+ }
8852
+ },
8853
+ "/chat.answer": {
8854
+ "post": {
8855
+ "operationId": "chat.answer",
8856
+ "description": "Answers `session/request_permission` with one of its options, or\n`null` to cancel it.",
8857
+ "tags": [
8858
+ "chat"
8859
+ ],
8860
+ "responses": {
8861
+ "200": {
8862
+ "description": "Successful response",
8863
+ "content": {
8864
+ "application/json": {
8865
+ "schema": {
8866
+ "type": "object",
8867
+ "properties": {
8868
+ "result": {
8869
+ "type": "object",
8870
+ "properties": {
8871
+ "data": {
8872
+ "type": "object",
8873
+ "properties": {
8874
+ "ok": {
8875
+ "type": "boolean"
8876
+ }
8877
+ },
8878
+ "required": [
8879
+ "ok"
8880
+ ],
8881
+ "additionalProperties": false
8882
+ }
8883
+ },
8884
+ "required": [
8885
+ "data"
8886
+ ]
8887
+ }
8888
+ },
8889
+ "required": [
8890
+ "result"
8891
+ ]
8892
+ }
8893
+ }
8894
+ }
8895
+ },
8896
+ "default": {
8897
+ "$ref": "#/components/responses/Error"
8898
+ }
8899
+ },
8900
+ "requestBody": {
8901
+ "required": true,
8902
+ "content": {
8903
+ "application/json": {
8904
+ "schema": {
8905
+ "type": "object",
8906
+ "properties": {
8907
+ "chatId": {
8908
+ "type": "string"
8909
+ },
8910
+ "requestId": {
8911
+ "type": "string"
8912
+ },
8913
+ "optionId": {
8914
+ "type": [
8915
+ "string",
8916
+ "null"
8917
+ ]
8918
+ }
8919
+ },
8920
+ "required": [
8921
+ "chatId",
8922
+ "requestId",
8923
+ "optionId"
8924
+ ],
8925
+ "additionalProperties": false
8926
+ }
8927
+ }
8928
+ }
8929
+ }
8930
+ }
8931
+ },
8932
+ "/chat.answerElicitation": {
8933
+ "post": {
8934
+ "operationId": "chat.answerElicitation",
8935
+ "description": "Answers a form `elicitation/create` (e.g. Claude Code's\nAskUserQuestion).",
8936
+ "tags": [
8937
+ "chat"
8938
+ ],
8939
+ "responses": {
8940
+ "200": {
8941
+ "description": "Successful response",
8942
+ "content": {
8943
+ "application/json": {
8944
+ "schema": {
8945
+ "type": "object",
8946
+ "properties": {
8947
+ "result": {
8948
+ "type": "object",
8949
+ "properties": {
8950
+ "data": {
8951
+ "type": "object",
8952
+ "properties": {
8953
+ "ok": {
8954
+ "type": "boolean"
8955
+ }
8956
+ },
8957
+ "required": [
8958
+ "ok"
8959
+ ],
8960
+ "additionalProperties": false
8961
+ }
8962
+ },
8963
+ "required": [
8964
+ "data"
8965
+ ]
8966
+ }
8967
+ },
8968
+ "required": [
8969
+ "result"
8970
+ ]
8971
+ }
8972
+ }
8973
+ }
8974
+ },
8975
+ "default": {
8976
+ "$ref": "#/components/responses/Error"
8977
+ }
8978
+ },
8979
+ "requestBody": {
8980
+ "required": true,
8981
+ "content": {
8982
+ "application/json": {
8983
+ "schema": {
8984
+ "type": "object",
8985
+ "properties": {
8986
+ "chatId": {
8987
+ "type": "string"
8988
+ },
8989
+ "requestId": {
8990
+ "type": "string"
8991
+ },
8992
+ "action": {
8993
+ "type": "string",
8994
+ "enum": [
8995
+ "accept",
8996
+ "decline",
8997
+ "cancel"
8998
+ ]
8999
+ },
9000
+ "content": {
9001
+ "type": "object",
9002
+ "additionalProperties": {
9003
+ "oneOf": [
9004
+ {
9005
+ "type": "string"
9006
+ },
9007
+ {
9008
+ "type": "number"
9009
+ },
9010
+ {
9011
+ "type": "array",
9012
+ "items": {
9013
+ "type": "string"
9014
+ }
9015
+ },
9016
+ {
9017
+ "type": "boolean"
9018
+ }
9019
+ ]
9020
+ }
9021
+ }
9022
+ },
9023
+ "required": [
9024
+ "chatId",
9025
+ "requestId",
9026
+ "action"
9027
+ ],
9028
+ "additionalProperties": false
9029
+ }
9030
+ }
9031
+ }
9032
+ }
9033
+ }
9034
+ },
9035
+ "/browsers.list": {
9036
+ "get": {
9037
+ "operationId": "browsers.list",
9038
+ "tags": [
9039
+ "browsers"
9040
+ ],
9041
+ "responses": {
9042
+ "200": {
9043
+ "description": "Successful response",
9044
+ "content": {
9045
+ "application/json": {
9046
+ "schema": {
9047
+ "type": "object",
9048
+ "properties": {
9049
+ "result": {
9050
+ "type": "object",
9051
+ "properties": {
9052
+ "data": {
9053
+ "type": "object",
9054
+ "properties": {
9055
+ "browsers": {
9056
+ "type": "array",
9057
+ "items": {
9058
+ "$ref": "#/components/schemas/BrowserRow"
9059
+ }
9060
+ }
9061
+ },
9062
+ "required": [
9063
+ "browsers"
9064
+ ],
9065
+ "additionalProperties": false
9066
+ }
9067
+ },
9068
+ "required": [
9069
+ "data"
9070
+ ]
9071
+ }
9072
+ },
9073
+ "required": [
9074
+ "result"
9075
+ ]
9076
+ }
9077
+ }
9078
+ }
9079
+ },
9080
+ "default": {
9081
+ "$ref": "#/components/responses/Error"
9082
+ }
9083
+ },
9084
+ "parameters": [
9085
+ {
9086
+ "name": "input",
9087
+ "in": "query",
9088
+ "required": true,
9089
+ "style": "deepObject",
9090
+ "content": {
9091
+ "application/json": {
9092
+ "schema": {
9093
+ "type": "object",
9094
+ "properties": {
9095
+ "workspaceId": {
9096
+ "type": "string"
9097
+ }
9098
+ },
9099
+ "required": [
9100
+ "workspaceId"
9101
+ ],
9102
+ "additionalProperties": false
9103
+ }
9104
+ }
9105
+ }
9106
+ }
9107
+ ]
9108
+ }
9109
+ },
9110
+ "/browsers.create": {
9111
+ "post": {
9112
+ "operationId": "browsers.create",
9113
+ "tags": [
9114
+ "browsers"
9115
+ ],
9116
+ "responses": {
9117
+ "200": {
9118
+ "description": "Successful response",
9119
+ "content": {
9120
+ "application/json": {
9121
+ "schema": {
9122
+ "type": "object",
9123
+ "properties": {
9124
+ "result": {
9125
+ "type": "object",
9126
+ "properties": {
9127
+ "data": {
9128
+ "type": "object",
9129
+ "properties": {
9130
+ "browser": {
9131
+ "$ref": "#/components/schemas/BrowserRow"
9132
+ }
9133
+ },
9134
+ "required": [
9135
+ "browser"
9136
+ ],
9137
+ "additionalProperties": false
9138
+ }
9139
+ },
9140
+ "required": [
9141
+ "data"
9142
+ ]
9143
+ }
9144
+ },
9145
+ "required": [
9146
+ "result"
9147
+ ]
9148
+ }
9149
+ }
9150
+ }
9151
+ },
9152
+ "default": {
9153
+ "$ref": "#/components/responses/Error"
9154
+ }
9155
+ },
9156
+ "requestBody": {
9157
+ "required": true,
9158
+ "content": {
9159
+ "application/json": {
9160
+ "schema": {
9161
+ "type": "object",
9162
+ "properties": {
9163
+ "workspaceId": {
9164
+ "type": "string"
9165
+ },
9166
+ "id": {
9167
+ "type": "string"
9168
+ },
9169
+ "name": {
9170
+ "type": "string"
9171
+ },
9172
+ "url": {
9173
+ "type": "string"
9174
+ },
9175
+ "profileId": {
9176
+ "type": [
9177
+ "string",
9178
+ "null"
9179
+ ]
9180
+ }
9181
+ },
9182
+ "required": [
9183
+ "workspaceId"
9184
+ ],
9185
+ "additionalProperties": false
9186
+ }
9187
+ }
9188
+ }
9189
+ }
9190
+ }
9191
+ },
9192
+ "/browsers.get": {
9193
+ "get": {
9194
+ "operationId": "browsers.get",
9195
+ "tags": [
9196
+ "browsers"
9197
+ ],
9198
+ "responses": {
9199
+ "200": {
9200
+ "description": "Successful response",
9201
+ "content": {
9202
+ "application/json": {
9203
+ "schema": {
9204
+ "type": "object",
9205
+ "properties": {
9206
+ "result": {
9207
+ "type": "object",
9208
+ "properties": {
9209
+ "data": {
9210
+ "type": "object",
9211
+ "properties": {
9212
+ "browser": {
9213
+ "oneOf": [
9214
+ {
9215
+ "$ref": "#/components/schemas/BrowserRow"
9216
+ },
9217
+ {
9218
+ "type": "null"
9219
+ }
9220
+ ]
9221
+ }
9222
+ },
9223
+ "required": [
9224
+ "browser"
9225
+ ],
9226
+ "additionalProperties": false
9227
+ }
9228
+ },
9229
+ "required": [
9230
+ "data"
9231
+ ]
9232
+ }
9233
+ },
9234
+ "required": [
9235
+ "result"
9236
+ ]
9237
+ }
9238
+ }
9239
+ }
9240
+ },
9241
+ "default": {
9242
+ "$ref": "#/components/responses/Error"
9243
+ }
9244
+ },
9245
+ "parameters": [
9246
+ {
9247
+ "name": "input",
9248
+ "in": "query",
9249
+ "required": true,
9250
+ "style": "deepObject",
9251
+ "content": {
9252
+ "application/json": {
9253
+ "schema": {
9254
+ "type": "object",
9255
+ "properties": {
9256
+ "browserId": {
9257
+ "type": "string"
9258
+ }
9259
+ },
9260
+ "required": [
9261
+ "browserId"
9262
+ ],
9263
+ "additionalProperties": false
8393
9264
  }
8394
9265
  }
8395
9266
  }
8396
- },
8397
- "default": {
8398
- "$ref": "#/components/responses/Error"
8399
- }
8400
- },
8401
- "requestBody": {
8402
- "required": true,
8403
- "content": {
8404
- "application/json": {
8405
- "schema": {
8406
- "type": "object",
8407
- "properties": {
8408
- "chatId": {
8409
- "type": "string"
8410
- }
8411
- },
8412
- "required": [
8413
- "chatId"
8414
- ],
8415
- "additionalProperties": false
8416
- }
8417
- }
8418
9267
  }
8419
- }
9268
+ ]
8420
9269
  }
8421
9270
  },
8422
- "/chats.resume": {
9271
+ "/browsers.update": {
8423
9272
  "post": {
8424
- "operationId": "chats.resume",
9273
+ "operationId": "browsers.update",
8425
9274
  "tags": [
8426
- "chats"
9275
+ "browsers"
8427
9276
  ],
8428
9277
  "responses": {
8429
9278
  "200": {
@@ -8439,12 +9288,12 @@
8439
9288
  "data": {
8440
9289
  "type": "object",
8441
9290
  "properties": {
8442
- "ok": {
8443
- "type": "boolean"
9291
+ "browser": {
9292
+ "$ref": "#/components/schemas/BrowserRow"
8444
9293
  }
8445
9294
  },
8446
9295
  "required": [
8447
- "ok"
9296
+ "browser"
8448
9297
  ],
8449
9298
  "additionalProperties": false
8450
9299
  }
@@ -8472,12 +9321,18 @@
8472
9321
  "schema": {
8473
9322
  "type": "object",
8474
9323
  "properties": {
8475
- "chatId": {
9324
+ "browserId": {
9325
+ "type": "string"
9326
+ },
9327
+ "name": {
9328
+ "type": "string"
9329
+ },
9330
+ "url": {
8476
9331
  "type": "string"
8477
9332
  }
8478
9333
  },
8479
9334
  "required": [
8480
- "chatId"
9335
+ "browserId"
8481
9336
  ],
8482
9337
  "additionalProperties": false
8483
9338
  }
@@ -8486,12 +9341,12 @@
8486
9341
  }
8487
9342
  }
8488
9343
  },
8489
- "/chats.continueInTerminal": {
9344
+ "/browsers.setProfile": {
8490
9345
  "post": {
8491
- "operationId": "chats.continueInTerminal",
8492
- "description": "Continue this chat's coding-agent session in a terminal pane.\n\nResolves the chat's underlying agent session ID (`activeSessionId`) and\nthe adapter for whichever coding agent it ran, asks the adapter for the\nvendor CLI's *resume* invocation (`claude --resume <id>`,\n`codex resume <id>`, `opencode --session <id>`), composes it into a\nshell-safe command, and spawns a fresh terminal pane running it — so the\nuser keeps working in the very session the web chat was running.\n\nMirrors the spawn+emit pair in `WorkspaceService.create`'s\n`via=terminal` branch (issue #551), and resolves the agent inline the\nsame way `setActiveSession` above does. Errors surface to the client so\nthe UI can keep the menu item disabled for agents that can't resume\n(Gemini CLI / Cursor CLI) or chats with no session yet.",
9346
+ "operationId": "browsers.setProfile",
9347
+ "description": "Switch a tab to another profile (`null` is Default). Also makes it the\ndefault profile of the tab's project, so new tabs in any workspace of\nthat project open with it.",
8493
9348
  "tags": [
8494
- "chats"
9349
+ "browsers"
8495
9350
  ],
8496
9351
  "responses": {
8497
9352
  "200": {
@@ -8507,20 +9362,12 @@
8507
9362
  "data": {
8508
9363
  "type": "object",
8509
9364
  "properties": {
8510
- "terminalId": {
8511
- "type": "string"
8512
- },
8513
- "workspaceId": {
8514
- "type": "string"
8515
- },
8516
- "sessionId": {
8517
- "type": "string"
9365
+ "browser": {
9366
+ "$ref": "#/components/schemas/BrowserRow"
8518
9367
  }
8519
9368
  },
8520
9369
  "required": [
8521
- "terminalId",
8522
- "workspaceId",
8523
- "sessionId"
9370
+ "browser"
8524
9371
  ],
8525
9372
  "additionalProperties": false
8526
9373
  }
@@ -8548,12 +9395,19 @@
8548
9395
  "schema": {
8549
9396
  "type": "object",
8550
9397
  "properties": {
8551
- "chatId": {
9398
+ "profileId": {
9399
+ "type": [
9400
+ "string",
9401
+ "null"
9402
+ ]
9403
+ },
9404
+ "browserId": {
8552
9405
  "type": "string"
8553
9406
  }
8554
9407
  },
8555
9408
  "required": [
8556
- "chatId"
9409
+ "profileId",
9410
+ "browserId"
8557
9411
  ],
8558
9412
  "additionalProperties": false
8559
9413
  }
@@ -8562,12 +9416,11 @@
8562
9416
  }
8563
9417
  }
8564
9418
  },
8565
- "/chat.answer": {
9419
+ "/browsers.navigate": {
8566
9420
  "post": {
8567
- "operationId": "chat.answer",
8568
- "description": "Answers `session/request_permission` with one of its options, or\n`null` to cancel it.",
9421
+ "operationId": "browsers.navigate",
8569
9422
  "tags": [
8570
- "chat"
9423
+ "browsers"
8571
9424
  ],
8572
9425
  "responses": {
8573
9426
  "200": {
@@ -8616,23 +9469,16 @@
8616
9469
  "schema": {
8617
9470
  "type": "object",
8618
9471
  "properties": {
8619
- "chatId": {
9472
+ "url": {
8620
9473
  "type": "string"
8621
9474
  },
8622
- "requestId": {
9475
+ "browserId": {
8623
9476
  "type": "string"
8624
- },
8625
- "optionId": {
8626
- "type": [
8627
- "string",
8628
- "null"
8629
- ]
8630
9477
  }
8631
9478
  },
8632
9479
  "required": [
8633
- "chatId",
8634
- "requestId",
8635
- "optionId"
9480
+ "url",
9481
+ "browserId"
8636
9482
  ],
8637
9483
  "additionalProperties": false
8638
9484
  }
@@ -8641,12 +9487,11 @@
8641
9487
  }
8642
9488
  }
8643
9489
  },
8644
- "/chat.answerElicitation": {
9490
+ "/browsers.remove": {
8645
9491
  "post": {
8646
- "operationId": "chat.answerElicitation",
8647
- "description": "Answers a form `elicitation/create` (e.g. Claude Code's\nAskUserQuestion).",
9492
+ "operationId": "browsers.remove",
8648
9493
  "tags": [
8649
- "chat"
9494
+ "browsers"
8650
9495
  ],
8651
9496
  "responses": {
8652
9497
  "200": {
@@ -8695,47 +9540,12 @@
8695
9540
  "schema": {
8696
9541
  "type": "object",
8697
9542
  "properties": {
8698
- "chatId": {
8699
- "type": "string"
8700
- },
8701
- "requestId": {
9543
+ "browserId": {
8702
9544
  "type": "string"
8703
- },
8704
- "action": {
8705
- "type": "string",
8706
- "enum": [
8707
- "accept",
8708
- "decline",
8709
- "cancel"
8710
- ]
8711
- },
8712
- "content": {
8713
- "type": "object",
8714
- "additionalProperties": {
8715
- "oneOf": [
8716
- {
8717
- "type": "string"
8718
- },
8719
- {
8720
- "type": "number"
8721
- },
8722
- {
8723
- "type": "array",
8724
- "items": {
8725
- "type": "string"
8726
- }
8727
- },
8728
- {
8729
- "type": "boolean"
8730
- }
8731
- ]
8732
- }
8733
9545
  }
8734
9546
  },
8735
9547
  "required": [
8736
- "chatId",
8737
- "requestId",
8738
- "action"
9548
+ "browserId"
8739
9549
  ],
8740
9550
  "additionalProperties": false
8741
9551
  }
@@ -8744,11 +9554,11 @@
8744
9554
  }
8745
9555
  }
8746
9556
  },
8747
- "/browsers.list": {
9557
+ "/browserProfiles.list": {
8748
9558
  "get": {
8749
- "operationId": "browsers.list",
9559
+ "operationId": "browserProfiles.list",
8750
9560
  "tags": [
8751
- "browsers"
9561
+ "browserProfiles"
8752
9562
  ],
8753
9563
  "responses": {
8754
9564
  "200": {
@@ -8764,15 +9574,15 @@
8764
9574
  "data": {
8765
9575
  "type": "object",
8766
9576
  "properties": {
8767
- "browsers": {
9577
+ "profiles": {
8768
9578
  "type": "array",
8769
9579
  "items": {
8770
- "$ref": "#/components/schemas/BrowserRow"
9580
+ "$ref": "#/components/schemas/BrowserProfileRow"
8771
9581
  }
8772
9582
  }
8773
9583
  },
8774
9584
  "required": [
8775
- "browsers"
9585
+ "profiles"
8776
9586
  ],
8777
9587
  "additionalProperties": false
8778
9588
  }
@@ -8792,38 +9602,14 @@
8792
9602
  "default": {
8793
9603
  "$ref": "#/components/responses/Error"
8794
9604
  }
8795
- },
8796
- "parameters": [
8797
- {
8798
- "name": "input",
8799
- "in": "query",
8800
- "required": true,
8801
- "style": "deepObject",
8802
- "content": {
8803
- "application/json": {
8804
- "schema": {
8805
- "type": "object",
8806
- "properties": {
8807
- "workspaceId": {
8808
- "type": "string"
8809
- }
8810
- },
8811
- "required": [
8812
- "workspaceId"
8813
- ],
8814
- "additionalProperties": false
8815
- }
8816
- }
8817
- }
8818
- }
8819
- ]
9605
+ }
8820
9606
  }
8821
9607
  },
8822
- "/browsers.create": {
9608
+ "/browserProfiles.create": {
8823
9609
  "post": {
8824
- "operationId": "browsers.create",
9610
+ "operationId": "browserProfiles.create",
8825
9611
  "tags": [
8826
- "browsers"
9612
+ "browserProfiles"
8827
9613
  ],
8828
9614
  "responses": {
8829
9615
  "200": {
@@ -8839,12 +9625,12 @@
8839
9625
  "data": {
8840
9626
  "type": "object",
8841
9627
  "properties": {
8842
- "browser": {
8843
- "$ref": "#/components/schemas/BrowserRow"
9628
+ "profile": {
9629
+ "$ref": "#/components/schemas/BrowserProfileRow"
8844
9630
  }
8845
9631
  },
8846
9632
  "required": [
8847
- "browser"
9633
+ "profile"
8848
9634
  ],
8849
9635
  "additionalProperties": false
8850
9636
  }
@@ -8872,21 +9658,26 @@
8872
9658
  "schema": {
8873
9659
  "type": "object",
8874
9660
  "properties": {
8875
- "workspaceId": {
9661
+ "name": {
8876
9662
  "type": "string"
8877
9663
  },
8878
9664
  "id": {
8879
9665
  "type": "string"
8880
9666
  },
8881
- "name": {
8882
- "type": "string"
8883
- },
8884
- "url": {
8885
- "type": "string"
9667
+ "source": {
9668
+ "oneOf": [
9669
+ {
9670
+ "type": "string",
9671
+ "const": "chrome"
9672
+ },
9673
+ {
9674
+ "type": "null"
9675
+ }
9676
+ ]
8886
9677
  }
8887
9678
  },
8888
9679
  "required": [
8889
- "workspaceId"
9680
+ "name"
8890
9681
  ],
8891
9682
  "additionalProperties": false
8892
9683
  }
@@ -8895,11 +9686,11 @@
8895
9686
  }
8896
9687
  }
8897
9688
  },
8898
- "/browsers.get": {
8899
- "get": {
8900
- "operationId": "browsers.get",
9689
+ "/browserProfiles.remove": {
9690
+ "post": {
9691
+ "operationId": "browserProfiles.remove",
8901
9692
  "tags": [
8902
- "browsers"
9693
+ "browserProfiles"
8903
9694
  ],
8904
9695
  "responses": {
8905
9696
  "200": {
@@ -8915,19 +9706,12 @@
8915
9706
  "data": {
8916
9707
  "type": "object",
8917
9708
  "properties": {
8918
- "browser": {
8919
- "oneOf": [
8920
- {
8921
- "$ref": "#/components/schemas/BrowserRow"
8922
- },
8923
- {
8924
- "type": "null"
8925
- }
8926
- ]
9709
+ "ok": {
9710
+ "type": "boolean"
8927
9711
  }
8928
9712
  },
8929
9713
  "required": [
8930
- "browser"
9714
+ "ok"
8931
9715
  ],
8932
9716
  "additionalProperties": false
8933
9717
  }
@@ -8948,37 +9732,33 @@
8948
9732
  "$ref": "#/components/responses/Error"
8949
9733
  }
8950
9734
  },
8951
- "parameters": [
8952
- {
8953
- "name": "input",
8954
- "in": "query",
8955
- "required": true,
8956
- "style": "deepObject",
8957
- "content": {
8958
- "application/json": {
8959
- "schema": {
8960
- "type": "object",
8961
- "properties": {
8962
- "browserId": {
8963
- "type": "string"
8964
- }
8965
- },
8966
- "required": [
8967
- "browserId"
8968
- ],
8969
- "additionalProperties": false
8970
- }
9735
+ "requestBody": {
9736
+ "required": true,
9737
+ "content": {
9738
+ "application/json": {
9739
+ "schema": {
9740
+ "type": "object",
9741
+ "properties": {
9742
+ "profileId": {
9743
+ "type": "string"
9744
+ }
9745
+ },
9746
+ "required": [
9747
+ "profileId"
9748
+ ],
9749
+ "additionalProperties": false
8971
9750
  }
8972
9751
  }
8973
9752
  }
8974
- ]
9753
+ }
8975
9754
  }
8976
9755
  },
8977
- "/browsers.update": {
8978
- "post": {
8979
- "operationId": "browsers.update",
9756
+ "/browserProfiles.projectDefaults": {
9757
+ "get": {
9758
+ "operationId": "browserProfiles.projectDefaults",
9759
+ "description": "Every project's default profile. Projects with no row use Default.",
8980
9760
  "tags": [
8981
- "browsers"
9761
+ "browserProfiles"
8982
9762
  ],
8983
9763
  "responses": {
8984
9764
  "200": {
@@ -8994,12 +9774,28 @@
8994
9774
  "data": {
8995
9775
  "type": "object",
8996
9776
  "properties": {
8997
- "browser": {
8998
- "$ref": "#/components/schemas/BrowserRow"
9777
+ "defaults": {
9778
+ "type": "array",
9779
+ "items": {
9780
+ "type": "object",
9781
+ "properties": {
9782
+ "projectName": {
9783
+ "type": "string"
9784
+ },
9785
+ "profileId": {
9786
+ "type": "string"
9787
+ }
9788
+ },
9789
+ "required": [
9790
+ "projectName",
9791
+ "profileId"
9792
+ ],
9793
+ "additionalProperties": false
9794
+ }
8999
9795
  }
9000
9796
  },
9001
9797
  "required": [
9002
- "browser"
9798
+ "defaults"
9003
9799
  ],
9004
9800
  "additionalProperties": false
9005
9801
  }
@@ -9019,39 +9815,14 @@
9019
9815
  "default": {
9020
9816
  "$ref": "#/components/responses/Error"
9021
9817
  }
9022
- },
9023
- "requestBody": {
9024
- "required": true,
9025
- "content": {
9026
- "application/json": {
9027
- "schema": {
9028
- "type": "object",
9029
- "properties": {
9030
- "browserId": {
9031
- "type": "string"
9032
- },
9033
- "name": {
9034
- "type": "string"
9035
- },
9036
- "url": {
9037
- "type": "string"
9038
- }
9039
- },
9040
- "required": [
9041
- "browserId"
9042
- ],
9043
- "additionalProperties": false
9044
- }
9045
- }
9046
- }
9047
9818
  }
9048
9819
  }
9049
9820
  },
9050
- "/browsers.navigate": {
9051
- "post": {
9052
- "operationId": "browsers.navigate",
9821
+ "/browserProfiles.getProjectDefault": {
9822
+ "get": {
9823
+ "operationId": "browserProfiles.getProjectDefault",
9053
9824
  "tags": [
9054
- "browsers"
9825
+ "browserProfiles"
9055
9826
  ],
9056
9827
  "responses": {
9057
9828
  "200": {
@@ -9067,12 +9838,15 @@
9067
9838
  "data": {
9068
9839
  "type": "object",
9069
9840
  "properties": {
9070
- "ok": {
9071
- "type": "boolean"
9841
+ "profileId": {
9842
+ "type": [
9843
+ "string",
9844
+ "null"
9845
+ ]
9072
9846
  }
9073
9847
  },
9074
9848
  "required": [
9075
- "ok"
9849
+ "profileId"
9076
9850
  ],
9077
9851
  "additionalProperties": false
9078
9852
  }
@@ -9093,36 +9867,38 @@
9093
9867
  "$ref": "#/components/responses/Error"
9094
9868
  }
9095
9869
  },
9096
- "requestBody": {
9097
- "required": true,
9098
- "content": {
9099
- "application/json": {
9100
- "schema": {
9101
- "type": "object",
9102
- "properties": {
9103
- "url": {
9104
- "type": "string"
9870
+ "parameters": [
9871
+ {
9872
+ "name": "input",
9873
+ "in": "query",
9874
+ "required": true,
9875
+ "style": "deepObject",
9876
+ "content": {
9877
+ "application/json": {
9878
+ "schema": {
9879
+ "type": "object",
9880
+ "properties": {
9881
+ "projectName": {
9882
+ "type": "string"
9883
+ }
9105
9884
  },
9106
- "browserId": {
9107
- "type": "string"
9108
- }
9109
- },
9110
- "required": [
9111
- "url",
9112
- "browserId"
9113
- ],
9114
- "additionalProperties": false
9885
+ "required": [
9886
+ "projectName"
9887
+ ],
9888
+ "additionalProperties": false
9889
+ }
9115
9890
  }
9116
9891
  }
9117
9892
  }
9118
- }
9893
+ ]
9119
9894
  }
9120
9895
  },
9121
- "/browsers.remove": {
9896
+ "/browserProfiles.setProjectDefault": {
9122
9897
  "post": {
9123
- "operationId": "browsers.remove",
9898
+ "operationId": "browserProfiles.setProjectDefault",
9899
+ "description": "`profileId: null` resets the project to the Default profile.",
9124
9900
  "tags": [
9125
- "browsers"
9901
+ "browserProfiles"
9126
9902
  ],
9127
9903
  "responses": {
9128
9904
  "200": {
@@ -9171,12 +9947,19 @@
9171
9947
  "schema": {
9172
9948
  "type": "object",
9173
9949
  "properties": {
9174
- "browserId": {
9950
+ "profileId": {
9951
+ "type": [
9952
+ "string",
9953
+ "null"
9954
+ ]
9955
+ },
9956
+ "projectName": {
9175
9957
  "type": "string"
9176
9958
  }
9177
9959
  },
9178
9960
  "required": [
9179
- "browserId"
9961
+ "profileId",
9962
+ "projectName"
9180
9963
  ],
9181
9964
  "additionalProperties": false
9182
9965
  }
@@ -10713,12 +11496,192 @@
10713
11496
  },
10714
11497
  "headBranch": {
10715
11498
  "type": "string"
11499
+ },
11500
+ "truncated": {
11501
+ "type": "boolean",
11502
+ "description": "More branches matched than `limit` allowed through."
10716
11503
  }
10717
11504
  },
10718
11505
  "required": [
10719
11506
  "branches",
10720
11507
  "defaultBranch",
10721
- "headBranch"
11508
+ "headBranch",
11509
+ "truncated"
11510
+ ],
11511
+ "additionalProperties": false
11512
+ },
11513
+ "CommitHistoryResult": {
11514
+ "type": "object",
11515
+ "properties": {
11516
+ "commits": {
11517
+ "type": "array",
11518
+ "items": {
11519
+ "$ref": "#/components/schemas/HistoryCommit"
11520
+ }
11521
+ },
11522
+ "head": {
11523
+ "type": [
11524
+ "string",
11525
+ "null"
11526
+ ],
11527
+ "description": "HEAD's SHA, or null when the repo has no commits yet."
11528
+ },
11529
+ "hasMore": {
11530
+ "type": "boolean",
11531
+ "description": "True when older commits exist past this page."
11532
+ },
11533
+ "signature": {
11534
+ "type": "string",
11535
+ "description": "`getCommitHistorySignature` at the time this page was read."
11536
+ }
11537
+ },
11538
+ "required": [
11539
+ "commits",
11540
+ "head",
11541
+ "hasMore",
11542
+ "signature"
11543
+ ],
11544
+ "additionalProperties": false
11545
+ },
11546
+ "HistoryCommit": {
11547
+ "type": "object",
11548
+ "properties": {
11549
+ "sha": {
11550
+ "type": "string"
11551
+ },
11552
+ "parents": {
11553
+ "type": "array",
11554
+ "items": {
11555
+ "type": "string"
11556
+ }
11557
+ },
11558
+ "author": {
11559
+ "type": "string"
11560
+ },
11561
+ "email": {
11562
+ "type": "string"
11563
+ },
11564
+ "ts": {
11565
+ "type": "number",
11566
+ "description": "Author date, unix seconds."
11567
+ },
11568
+ "subject": {
11569
+ "type": "string"
11570
+ },
11571
+ "refs": {
11572
+ "type": "array",
11573
+ "items": {
11574
+ "$ref": "#/components/schemas/CommitRef"
11575
+ }
11576
+ }
11577
+ },
11578
+ "required": [
11579
+ "sha",
11580
+ "parents",
11581
+ "author",
11582
+ "email",
11583
+ "ts",
11584
+ "subject",
11585
+ "refs"
11586
+ ],
11587
+ "additionalProperties": false
11588
+ },
11589
+ "CommitRef": {
11590
+ "type": "object",
11591
+ "properties": {
11592
+ "name": {
11593
+ "type": "string",
11594
+ "description": "Short name: `main`, `origin/main`, `v1.0.0`."
11595
+ },
11596
+ "kind": {
11597
+ "type": "string",
11598
+ "enum": [
11599
+ "branch",
11600
+ "head",
11601
+ "remote",
11602
+ "tag"
11603
+ ],
11604
+ "description": "`head` is the branch HEAD is on; the rest are other refs."
11605
+ }
11606
+ },
11607
+ "required": [
11608
+ "name",
11609
+ "kind"
11610
+ ],
11611
+ "additionalProperties": false
11612
+ },
11613
+ "CommitDetails": {
11614
+ "type": "object",
11615
+ "properties": {
11616
+ "sha": {
11617
+ "type": "string"
11618
+ },
11619
+ "parents": {
11620
+ "type": "array",
11621
+ "items": {
11622
+ "type": "string"
11623
+ }
11624
+ },
11625
+ "author": {
11626
+ "type": "string"
11627
+ },
11628
+ "email": {
11629
+ "type": "string"
11630
+ },
11631
+ "authorTs": {
11632
+ "type": "number"
11633
+ },
11634
+ "committer": {
11635
+ "type": "string"
11636
+ },
11637
+ "committerTs": {
11638
+ "type": "number"
11639
+ },
11640
+ "subject": {
11641
+ "type": "string"
11642
+ },
11643
+ "body": {
11644
+ "type": "string"
11645
+ },
11646
+ "files": {
11647
+ "type": "array",
11648
+ "items": {
11649
+ "$ref": "#/components/schemas/CommitFileChange"
11650
+ }
11651
+ }
11652
+ },
11653
+ "required": [
11654
+ "sha",
11655
+ "parents",
11656
+ "author",
11657
+ "email",
11658
+ "authorTs",
11659
+ "committer",
11660
+ "committerTs",
11661
+ "subject",
11662
+ "body",
11663
+ "files"
11664
+ ],
11665
+ "additionalProperties": false
11666
+ },
11667
+ "CommitFileChange": {
11668
+ "type": "object",
11669
+ "properties": {
11670
+ "path": {
11671
+ "type": "string"
11672
+ },
11673
+ "status": {
11674
+ "type": "string",
11675
+ "description": "git name-status code: A, M, D, R, C, T."
11676
+ },
11677
+ "oldPath": {
11678
+ "type": "string",
11679
+ "description": "Source path of a rename or copy."
11680
+ }
11681
+ },
11682
+ "required": [
11683
+ "path",
11684
+ "status"
10722
11685
  ],
10723
11686
  "additionalProperties": false
10724
11687
  },
@@ -11567,6 +12530,13 @@
11567
12530
  "loading"
11568
12531
  ],
11569
12532
  "description": "Browser tab status as persisted in the `state` JSON blob's `status` field.\n\nMirrors the runtime status the browser-service hands the dashboard.\nStored on disk so a server restart can deterministically reset every\nbrowser to `\"idle\"` (see `resetAllToIdle`)."
12533
+ },
12534
+ "profileId": {
12535
+ "type": [
12536
+ "string",
12537
+ "null"
12538
+ ],
12539
+ "description": "Band browser profile the tab's session runs in (see\n`browser-profiles.ts`). `null` is the built-in Default profile."
11570
12540
  }
11571
12541
  },
11572
12542
  "required": [
@@ -11574,7 +12544,35 @@
11574
12544
  "workspaceId",
11575
12545
  "name",
11576
12546
  "url",
11577
- "status"
12547
+ "status",
12548
+ "profileId"
12549
+ ],
12550
+ "additionalProperties": false
12551
+ },
12552
+ "BrowserProfileRow": {
12553
+ "type": "object",
12554
+ "properties": {
12555
+ "id": {
12556
+ "type": "string"
12557
+ },
12558
+ "name": {
12559
+ "type": "string"
12560
+ },
12561
+ "source": {
12562
+ "type": [
12563
+ "string",
12564
+ "null"
12565
+ ]
12566
+ },
12567
+ "createdAt": {
12568
+ "type": "number"
12569
+ }
12570
+ },
12571
+ "required": [
12572
+ "id",
12573
+ "name",
12574
+ "source",
12575
+ "createdAt"
11578
12576
  ],
11579
12577
  "additionalProperties": false
11580
12578
  },