@band-app/server 0.19.1 → 0.20.1
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.
- package/dist/client/assets/DockviewBrowserContainer-DqC_h-bo.js +5 -0
- package/dist/client/assets/{DockviewTerminalContainer-DWva1wNl.js → DockviewTerminalContainer-DyBQtb3U.js} +2 -2
- package/dist/client/assets/TerminalPanel-CFDxHN4Q.js +5 -0
- package/dist/client/assets/{_basePickBy-CV44VSwA.js → _basePickBy-Dcf1Y8Iq.js} +1 -1
- package/dist/client/assets/{_baseUniq-Bqa44Er5.js → _baseUniq-Cy98IGsx.js} +1 -1
- package/dist/client/assets/{arc-4rU3SEWf.js → arc-rOBphWj1.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-CapSrTlr.js → architectureDiagram-VXUJARFQ-C54lj_mp.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-DnapbSnI.js → blockDiagram-VD42YOAC-IXpkKl99.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-9mZ9PPiM.js → c4Diagram-YG6GDRKO-eHkAJFz1.js} +1 -1
- package/dist/client/assets/channel-DDj6wNE3.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB--rr32b4E.js → chunk-4BX2VUAB-BVtvPQLw.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-DfxuD1M3.js → chunk-55IACEB6-DWUF7TBt.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-CxvnNatf.js → chunk-B4BG7PRW-BT2NV-OP.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-F51NTwRL.js → chunk-DI55MBZ5-Cg5CF9C8.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-S03fYfOP.js → chunk-FMBD7UC4-B0SYeHBH.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-BQWA4OqL.js → chunk-QN33PNHL-C5tEKH2s.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-DuLFP0og.js → chunk-QZHKN3VN-B3eOtTKT.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-BXGn_e4G.js → chunk-TZMSLE5B-C2LU8iG2.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-DEMr_v7L.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-DEMr_v7L.js +1 -0
- package/dist/client/assets/clone-BsghsKY1.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-BD5JLmQ6.js → cose-bilkent-S5V4N54A-DMEstRG3.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-jd9MqFa1.js → dagre-6UL2VRFP-Dnk33exg.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-Bv0WGkj7.js → diagram-PSM6KHXK-mrXKTY_T.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-oszH6q3s.js → diagram-QEK2KX5R-BzHK-hsq.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-D7rVDuLY.js → diagram-S2PKOQOG-CQCxQKV-.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-BL9gntWo.js → erDiagram-Q2GNP2WA-BPDJfava.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-1FCz1fgN.js → flowDiagram-NV44I4VS-C6Mmdoua.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-DggjOINy.js → ganttDiagram-JELNMOA3-DLbgXlJh.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-uoayvKXp.js → gitGraphDiagram-V2S2FVAM-DVLRTDa6.js} +1 -1
- package/dist/client/assets/{graph-CKeOhxc0.js → graph-Cwyvupsz.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-BfaZeU0X.js → highlighted-body-B3W2YXNL-C0bhSLak.js} +1 -1
- package/dist/client/assets/{index-Ddvrjwlp.js → index-8fmEfQXt.js} +1 -1
- package/dist/client/assets/{index-kGHlsI7U.js → index-8qew1yXR.js} +1 -1
- package/dist/client/assets/{index-BVhi8EPL.js → index-BEfdqN9O.js} +1 -1
- package/dist/client/assets/{index-DsvlvI8i.js → index-BjRdyIjf.js} +1 -1
- package/dist/client/assets/{index-BhrvrUs_.js → index-BwEcNyXc.js} +1 -1
- package/dist/client/assets/{index-Be24TlVT.js → index-Bx_OaRaP.js} +1 -1
- package/dist/client/assets/{index-Doe-oMI1.js → index-BzF5H3v-.js} +1 -1
- package/dist/client/assets/{index-BOdO7r_p.js → index-CA4qMsBj.js} +1 -1
- package/dist/client/assets/{index-SC22AP5M.js → index-CCvDsqEy.js} +1 -1
- package/dist/client/assets/{index-DTOEFzQN.js → index-CXNMB7pL.js} +1 -1
- package/dist/client/assets/{index-Cx9QoFI1.js → index-CbBtBBYr.js} +1 -1
- package/dist/client/assets/{index-BZW8u43a.js → index-CqhJvfhF.js} +1 -1
- package/dist/client/assets/{index-DtoczokG.js → index-DWLuzOpi.js} +1 -1
- package/dist/client/assets/{index-CdwShVnF.js → index-DsTs1gei.js} +1 -1
- package/dist/client/assets/{index-ro4XgOVe.js → index-ERt8cxUV.js} +1 -1
- package/dist/client/assets/{index-BmEmzTZO.js → index-FSq9CQql.js} +1 -1
- package/dist/client/assets/{index-bY8CiPGQ.js → index-UCQ1zVBi.js} +1 -1
- package/dist/client/assets/{index-ChvBXbK8.js → index-fifqJXyx.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-9HRNM_Iq.js → infoDiagram-HS3SLOUP-7Hhl73vO.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BYEjH_SV.js → journeyDiagram-XKPGCS4Q-CJcXgH51.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-s6ZYKbvm.js → kanban-definition-3W4ZIXB7-CBsuk1vp.js} +1 -1
- package/dist/client/assets/{layout-DlcfRJkl.js → layout-ZjLAsNj-.js} +1 -1
- package/dist/client/assets/{main-DsoPLGrb.css → main-BzKe6bG7.css} +1 -1
- package/dist/client/assets/{main-Ct1o5WmJ.js → main-QmYiKgqv.js} +271 -271
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-CDeQcF1U.js → mindmap-definition-VGOIOE7T-doqFtLjy.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-CWdMTKnD.js → pieDiagram-ADFJNKIX-Bzaqqvl9.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-C-Zcxmv2.js → quadrantDiagram-AYHSOK5B-DxzHu9fl.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-B3JunJUh.js → requirementDiagram-UZGBJVZJ-Cp3foAel.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BRUxMlQD.js → sankeyDiagram-TZEHDZUN-BQx6TKI3.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW--nulyPWN.js → sequenceDiagram-WL72ISMW-Cd_242bL.js} +1 -1
- package/dist/client/assets/{square-terminal-xTmJg69x.js → square-terminal-bliRzpRN.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DUZeZHou.js → stateDiagram-FKZM4ZOC-GZM9iqTD.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-yLFyTsJU.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-DgsIAJxu.js → timeline-definition-IT6M3QCI-D5mcm-Qu.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-DzbbBVNz.js → treemap-GDKQZRPO-CkKCE0F7.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-C2eftsxg.js → workspace._workspaceId-CQVHqxcU.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-CX0zbe5I.js → workspace._workspaceId-DFvkHRHC.js} +2 -2
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-B11oaEXR.js → xychartDiagram-PRI3JC2R-Djg2lfgU.js} +1 -1
- package/dist/migrations/20260619184346_drop_tasks_max_turns/migration.sql +1 -0
- package/dist/migrations/20260619184346_drop_tasks_max_turns/snapshot.json +1157 -0
- package/dist/openapi.json +268 -48
- package/dist/server/assets/{DockviewBrowserContainer-BcfLe0jL.js → DockviewBrowserContainer-Btjtd2O1.js} +29 -34
- package/dist/server/assets/{DockviewTerminalContainer-zVckKR1x.js → DockviewTerminalContainer-bMEUzx6R.js} +3 -3
- package/dist/server/assets/{TerminalPanel-7JfdUecD.js → TerminalPanel-DDazs1HR.js} +1 -49
- package/dist/server/assets/{_basePickBy-3tZLkfZU.js → _basePickBy-BR2ebl6H.js} +2 -2
- package/dist/server/assets/{_baseUniq-Dz_kdarY.js → _baseUniq-C7-_tYXk.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-TcfwNbuH.js +4 -0
- package/dist/server/assets/{arc-B7a2pVpn.js → arc-CWFSWY_u.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-9XWqJEVf.js → architecture-7HQA4BMR-DDMO671Z.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-Vt3dNClh.js → architectureDiagram-VXUJARFQ-vPxmruSN.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-DR7gt_eL.js → blockDiagram-VD42YOAC-DGV6m5iW.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-DYC3sqOW.js → c4Diagram-YG6GDRKO-9PjJESuA.js} +2 -2
- package/dist/server/assets/{channel-DzI1wGYl.js → channel-DzyKDZfe.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-DVHBGPAd.js → chunk-4BX2VUAB-MyrUiBmB.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-BXeWT-V1.js → chunk-55IACEB6-CJ4fKFif.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-BngOdF6s.js → chunk-B4BG7PRW-CKzqfTU-.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-Co1ugmE2.js → chunk-DI55MBZ5-DrXLxcKs.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-BSvY40K1.js → chunk-FMBD7UC4-yeB6m7NE.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-Bld2F-bV.js → chunk-QN33PNHL-qCq8pCkn.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-CbcRrDQ5.js → chunk-QZHKN3VN-CHvK5Ic5.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-FZqT6NRx.js → chunk-TZMSLE5B-wF9ZPcJp.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CqTf3oAt.js → classDiagram-2ON5EDUG-D1OcdIXp.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-CqTf3oAt.js → classDiagram-v2-WZHVMYZB-D1OcdIXp.js} +5 -5
- package/dist/server/assets/{clone-DFaP-n7G.js → clone-BH4YtRmr.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-Cm4DnyNk.js → cose-bilkent-S5V4N54A-BiP6P-09.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-DWtR7ypz.js → dagre-6UL2VRFP-BKfzYlJQ.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-3K0tKsmi.js → diagram-PSM6KHXK-BF6r9xQS.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-C_GABXU2.js → diagram-QEK2KX5R-CxL6qeVX.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-x_2H2okG.js → diagram-S2PKOQOG-CUKugrbt.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-DYAuTF-e.js → erDiagram-Q2GNP2WA-CRPjeaHB.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-CMgKpatm.js → flowDiagram-NV44I4VS-CXnLZPl0.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-BqUjIeN-.js → ganttDiagram-JELNMOA3-CP5EwGxj.js} +1 -1
- package/dist/server/assets/{gitGraph-G5XIXVHT-BOFl30qK.js → gitGraph-G5XIXVHT-UYMoyufq.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-CSFtzM0S.js → gitGraphDiagram-V2S2FVAM-CZNtwgUE.js} +7 -7
- package/dist/server/assets/{graph-Da9wNyd4.js → graph-BB1_2Q0x.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-CSDiX8tu.js → highlighted-body-B3W2YXNL-C6BqMnvu.js} +1 -1
- package/dist/server/assets/{index-CFVkYUnG.js → index-B5V3PU-n.js} +2 -2
- package/dist/server/assets/{index-ZFp3vFxe.js → index-BHQ8bMg_.js} +3 -3
- package/dist/server/assets/{index-D9Pfuy6s.js → index-BUm0x4GN.js} +2 -2
- package/dist/server/assets/{index-DC0ng9YX.js → index-Bay77lf3.js} +2 -2
- package/dist/server/assets/{index-C-7KLTyL.js → index-BbUtF3L1.js} +2 -2
- package/dist/server/assets/{index-ki-c1Gyj.js → index-Bme4JhwA.js} +1 -1
- package/dist/server/assets/{index-CrGR0Fcd.js → index-CMxtCPk9.js} +2 -2
- package/dist/server/assets/{index-Av31QpwJ.js → index-Ct5-lZTn.js} +2 -2
- package/dist/server/assets/{index-BZPQn4AB.js → index-D49PP401.js} +3 -3
- package/dist/server/assets/{index-CjJe7VSH.js → index-D5hMY11m.js} +4 -4
- package/dist/server/assets/{index-DwBbgNmR.js → index-DC1gaho7.js} +5 -5
- package/dist/server/assets/{index-CqNkm5pZ.js → index-DH3a6-do.js} +2 -2
- package/dist/server/assets/{index-DkCUbYql.js → index-DLEtsdeb.js} +2 -2
- package/dist/server/assets/{index-BXCk5sug.js → index-DLV7EX0H.js} +1 -1
- package/dist/server/assets/{index-CFt-wi4p.js → index-Dqk2jQZ7.js} +2 -2
- package/dist/server/assets/{index-CS2NcwnS.js → index-DrWaYPW7.js} +2 -2
- package/dist/server/assets/{index-B9YQ_ief.js → index-DsrV0B5O.js} +5 -5
- package/dist/server/assets/{index-iQ9auLjI.js → index-lmhecPWc.js} +2 -2
- package/dist/server/assets/{info-VBDWY6EO-mGUaI27c.js → info-VBDWY6EO-X8DJfp6J.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-CMic1Hhh.js → infoDiagram-HS3SLOUP-BqzWimk3.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-CravZq_h.js → journeyDiagram-XKPGCS4Q-TTA7OGV5.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-Ik9j3Xny.js → kanban-definition-3W4ZIXB7-DxNhleha.js} +2 -2
- package/dist/server/assets/{layout-DNctAx-v.js → layout-CdOkK52n.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-Bo2_mtnV.js → mermaid-3ZIDBTTL-Cof8t4J_.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-oaV6PZnA.js → mermaid-parser.core-Cqz_DwKC.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-DNTQXwUn.js → mindmap-definition-VGOIOE7T-DeGYTIld.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-Bm5PEDRe.js → packet-DYOGHKS2-TuIP3-Qx.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-BOs-4VKW.js → pie-VRWISCQL-DH44dC73.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-CEDLfCSy.js → pieDiagram-ADFJNKIX-BPUa7SIP.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-CWfJcZnB.js → quadrantDiagram-AYHSOK5B-CkonmhO6.js} +1 -1
- package/dist/server/assets/{radar-ZZBFDIW7-CMUO9a2O.js → radar-ZZBFDIW7-oedT_dlV.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-0SINZ3cV.js → requirementDiagram-UZGBJVZJ-B39ng8tF.js} +3 -3
- package/dist/server/assets/{router-PewB2VMR.js → router-Dz7oMBKX.js} +2331 -453
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-U0rb6LX8.js → sankeyDiagram-TZEHDZUN-61A7I6h9.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-BV5_vSVf.js → sequenceDiagram-WL72ISMW-CXIpjJu4.js} +3 -3
- package/dist/server/assets/{square-terminal-DdT3sDE4.js → square-terminal-D86hckth.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-C3wAlRbY.js → stateDiagram-FKZM4ZOC-DSp5PEkn.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BvzsTmR_.js → stateDiagram-v2-4FDKWEC3-B5TiwK_8.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-BwVTrWyj.js → timeline-definition-IT6M3QCI-DvosEzgh.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-Bohb153V.js → treemap-GDKQZRPO-BOdkONyj.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-BWs5oKO5.js → workspace._workspaceId-CvbciLVC.js} +3 -3
- package/dist/server/assets/{workspace._workspaceId-DkyiAy0e.js → workspace._workspaceId-Dcw9dnbJ.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-XlYGoU4Z.js → xychartDiagram-PRI3JC2R-C22gtuGl.js} +1 -1
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +1871 -816
- package/package.json +5 -4
- package/dist/client/assets/DockviewBrowserContainer-4SeBGy5m.js +0 -5
- package/dist/client/assets/TerminalPanel-CEmBYkjb.js +0 -5
- package/dist/client/assets/channel-NIcS3uxn.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-8p3oACYV.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-8p3oACYV.js +0 -1
- package/dist/client/assets/clone-Be31g1pc.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-nq3cGsuB.js +0 -1
- package/dist/server/assets/_tanstack-start-manifest_v-BBzH3QaA.js +0 -4
package/dist/openapi.json
CHANGED
|
@@ -1291,16 +1291,18 @@
|
|
|
1291
1291
|
"models": {
|
|
1292
1292
|
"type": "array",
|
|
1293
1293
|
"items": {
|
|
1294
|
-
"$ref": "#/components/schemas/
|
|
1294
|
+
"$ref": "#/components/schemas/CachedAgentModel"
|
|
1295
1295
|
}
|
|
1296
1296
|
},
|
|
1297
1297
|
"defaultModel": {
|
|
1298
1298
|
"type": "string"
|
|
1299
|
+
},
|
|
1300
|
+
"updatedAt": {
|
|
1301
|
+
"type": "number"
|
|
1299
1302
|
}
|
|
1300
1303
|
},
|
|
1301
1304
|
"required": [
|
|
1302
|
-
"models"
|
|
1303
|
-
"defaultModel"
|
|
1305
|
+
"models"
|
|
1304
1306
|
],
|
|
1305
1307
|
"additionalProperties": false
|
|
1306
1308
|
}
|
|
@@ -1347,7 +1349,7 @@
|
|
|
1347
1349
|
"/models.listAll": {
|
|
1348
1350
|
"get": {
|
|
1349
1351
|
"operationId": "models.listAll",
|
|
1350
|
-
"description": "List all agents with their models — used by the combined
|
|
1352
|
+
"description": "List all agents with their cached models — used by the combined\nagent/model selector in the chat UI. The service loads settings.json\nonce and resolves the effective default-agent id.",
|
|
1351
1353
|
"tags": [
|
|
1352
1354
|
"models"
|
|
1353
1355
|
],
|
|
@@ -1368,35 +1370,7 @@
|
|
|
1368
1370
|
"agents": {
|
|
1369
1371
|
"type": "array",
|
|
1370
1372
|
"items": {
|
|
1371
|
-
"
|
|
1372
|
-
"properties": {
|
|
1373
|
-
"agentId": {
|
|
1374
|
-
"type": "string"
|
|
1375
|
-
},
|
|
1376
|
-
"agentType": {
|
|
1377
|
-
"type": "string"
|
|
1378
|
-
},
|
|
1379
|
-
"agentLabel": {
|
|
1380
|
-
"type": "string"
|
|
1381
|
-
},
|
|
1382
|
-
"models": {
|
|
1383
|
-
"type": "array",
|
|
1384
|
-
"items": {
|
|
1385
|
-
"$ref": "#/components/schemas/AgentModel"
|
|
1386
|
-
}
|
|
1387
|
-
},
|
|
1388
|
-
"defaultModel": {
|
|
1389
|
-
"type": "string"
|
|
1390
|
-
}
|
|
1391
|
-
},
|
|
1392
|
-
"required": [
|
|
1393
|
-
"agentId",
|
|
1394
|
-
"agentType",
|
|
1395
|
-
"agentLabel",
|
|
1396
|
-
"models",
|
|
1397
|
-
"defaultModel"
|
|
1398
|
-
],
|
|
1399
|
-
"additionalProperties": false
|
|
1373
|
+
"$ref": "#/components/schemas/AgentModelsEntry"
|
|
1400
1374
|
}
|
|
1401
1375
|
},
|
|
1402
1376
|
"defaultAgentId": {
|
|
@@ -1428,6 +1402,74 @@
|
|
|
1428
1402
|
}
|
|
1429
1403
|
}
|
|
1430
1404
|
},
|
|
1405
|
+
"/models.refresh": {
|
|
1406
|
+
"post": {
|
|
1407
|
+
"operationId": "models.refresh",
|
|
1408
|
+
"description": "Refresh the cached model list for the given agent (or every\nconfigured agent when `agentId` is omitted). Surfaces the live SDK\nlist to the persisted cache so subsequent `list` / `listAll` calls\nreturn the latest models. Failures on individual agents do not\nabort the batch — each result carries an optional `error` field.\n\nLatency: this awaits the refresh synchronously. Each agent's\n`refreshModels()` is capped at a ~10 s adapter-side timeout, and the\nno-`agentId` batch path refreshes agents sequentially, so worst-case\nwall-clock is roughly `N agents × 10 s`. The Settings UI only ever\ncalls this with a single `agentId` (one ~10 s ceiling, with a button\nspinner), so the batch ceiling is reached only by an explicit\nall-agents API call. Size any client-side tRPC timeout accordingly.\n\nIf the supported-agent list ever grows past the current 5 entries\n(claude-code, codex, gemini-cli, cursor-cli, opencode), reconsider:\n(a) parallelising the per-agent loop in `refreshAll` (the only\nthing that prevents it today is the `settings.json` RMW interleave,\nwhich a single load-merge-save at the end would let us bypass), or\n(b) flipping the batch path to fire-and-forget with an SSE notice\nso the HTTP response returns immediately.",
|
|
1409
|
+
"tags": [
|
|
1410
|
+
"models"
|
|
1411
|
+
],
|
|
1412
|
+
"responses": {
|
|
1413
|
+
"200": {
|
|
1414
|
+
"description": "Successful response",
|
|
1415
|
+
"content": {
|
|
1416
|
+
"application/json": {
|
|
1417
|
+
"schema": {
|
|
1418
|
+
"type": "object",
|
|
1419
|
+
"properties": {
|
|
1420
|
+
"result": {
|
|
1421
|
+
"type": "object",
|
|
1422
|
+
"properties": {
|
|
1423
|
+
"data": {
|
|
1424
|
+
"type": "object",
|
|
1425
|
+
"properties": {
|
|
1426
|
+
"results": {
|
|
1427
|
+
"type": "array",
|
|
1428
|
+
"items": {
|
|
1429
|
+
"$ref": "#/components/schemas/ModelRefreshResult"
|
|
1430
|
+
}
|
|
1431
|
+
}
|
|
1432
|
+
},
|
|
1433
|
+
"required": [
|
|
1434
|
+
"results"
|
|
1435
|
+
],
|
|
1436
|
+
"additionalProperties": false
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
"required": [
|
|
1440
|
+
"data"
|
|
1441
|
+
]
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"required": [
|
|
1445
|
+
"result"
|
|
1446
|
+
]
|
|
1447
|
+
}
|
|
1448
|
+
}
|
|
1449
|
+
}
|
|
1450
|
+
},
|
|
1451
|
+
"default": {
|
|
1452
|
+
"$ref": "#/components/responses/Error"
|
|
1453
|
+
}
|
|
1454
|
+
},
|
|
1455
|
+
"requestBody": {
|
|
1456
|
+
"required": true,
|
|
1457
|
+
"content": {
|
|
1458
|
+
"application/json": {
|
|
1459
|
+
"schema": {
|
|
1460
|
+
"type": "object",
|
|
1461
|
+
"properties": {
|
|
1462
|
+
"agentId": {
|
|
1463
|
+
"type": "string"
|
|
1464
|
+
}
|
|
1465
|
+
},
|
|
1466
|
+
"additionalProperties": false
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
},
|
|
1431
1473
|
"/statuses.get": {
|
|
1432
1474
|
"get": {
|
|
1433
1475
|
"operationId": "statuses.get",
|
|
@@ -4221,6 +4263,19 @@
|
|
|
4221
4263
|
},
|
|
4222
4264
|
"usagePollingEnabled": {
|
|
4223
4265
|
"type": "boolean"
|
|
4266
|
+
},
|
|
4267
|
+
"cli": {
|
|
4268
|
+
"type": "object",
|
|
4269
|
+
"properties": {
|
|
4270
|
+
"defaultVia": {
|
|
4271
|
+
"type": "string",
|
|
4272
|
+
"enum": [
|
|
4273
|
+
"chat",
|
|
4274
|
+
"terminal"
|
|
4275
|
+
]
|
|
4276
|
+
}
|
|
4277
|
+
},
|
|
4278
|
+
"additionalProperties": {}
|
|
4224
4279
|
}
|
|
4225
4280
|
},
|
|
4226
4281
|
"additionalProperties": {}
|
|
@@ -4863,6 +4918,16 @@
|
|
|
4863
4918
|
},
|
|
4864
4919
|
"path": {
|
|
4865
4920
|
"type": "string"
|
|
4921
|
+
},
|
|
4922
|
+
"via": {
|
|
4923
|
+
"type": "string",
|
|
4924
|
+
"enum": [
|
|
4925
|
+
"chat",
|
|
4926
|
+
"terminal"
|
|
4927
|
+
]
|
|
4928
|
+
},
|
|
4929
|
+
"terminalId": {
|
|
4930
|
+
"type": "string"
|
|
4866
4931
|
}
|
|
4867
4932
|
},
|
|
4868
4933
|
"required": [
|
|
@@ -4910,14 +4975,18 @@
|
|
|
4910
4975
|
"prompt": {
|
|
4911
4976
|
"type": "string"
|
|
4912
4977
|
},
|
|
4913
|
-
"maxTurns": {
|
|
4914
|
-
"type": "number"
|
|
4915
|
-
},
|
|
4916
4978
|
"mode": {
|
|
4917
4979
|
"type": "string"
|
|
4918
4980
|
},
|
|
4919
4981
|
"codingAgentId": {
|
|
4920
4982
|
"type": "string"
|
|
4983
|
+
},
|
|
4984
|
+
"via": {
|
|
4985
|
+
"type": "string",
|
|
4986
|
+
"enum": [
|
|
4987
|
+
"chat",
|
|
4988
|
+
"terminal"
|
|
4989
|
+
]
|
|
4921
4990
|
}
|
|
4922
4991
|
},
|
|
4923
4992
|
"required": [
|
|
@@ -8266,6 +8335,82 @@
|
|
|
8266
8335
|
}
|
|
8267
8336
|
}
|
|
8268
8337
|
},
|
|
8338
|
+
"/chats.continueInTerminal": {
|
|
8339
|
+
"post": {
|
|
8340
|
+
"operationId": "chats.continueInTerminal",
|
|
8341
|
+
"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.",
|
|
8342
|
+
"tags": [
|
|
8343
|
+
"chats"
|
|
8344
|
+
],
|
|
8345
|
+
"responses": {
|
|
8346
|
+
"200": {
|
|
8347
|
+
"description": "Successful response",
|
|
8348
|
+
"content": {
|
|
8349
|
+
"application/json": {
|
|
8350
|
+
"schema": {
|
|
8351
|
+
"type": "object",
|
|
8352
|
+
"properties": {
|
|
8353
|
+
"result": {
|
|
8354
|
+
"type": "object",
|
|
8355
|
+
"properties": {
|
|
8356
|
+
"data": {
|
|
8357
|
+
"type": "object",
|
|
8358
|
+
"properties": {
|
|
8359
|
+
"terminalId": {
|
|
8360
|
+
"type": "string"
|
|
8361
|
+
},
|
|
8362
|
+
"workspaceId": {
|
|
8363
|
+
"type": "string"
|
|
8364
|
+
},
|
|
8365
|
+
"sessionId": {
|
|
8366
|
+
"type": "string"
|
|
8367
|
+
}
|
|
8368
|
+
},
|
|
8369
|
+
"required": [
|
|
8370
|
+
"terminalId",
|
|
8371
|
+
"workspaceId",
|
|
8372
|
+
"sessionId"
|
|
8373
|
+
],
|
|
8374
|
+
"additionalProperties": false
|
|
8375
|
+
}
|
|
8376
|
+
},
|
|
8377
|
+
"required": [
|
|
8378
|
+
"data"
|
|
8379
|
+
]
|
|
8380
|
+
}
|
|
8381
|
+
},
|
|
8382
|
+
"required": [
|
|
8383
|
+
"result"
|
|
8384
|
+
]
|
|
8385
|
+
}
|
|
8386
|
+
}
|
|
8387
|
+
}
|
|
8388
|
+
},
|
|
8389
|
+
"default": {
|
|
8390
|
+
"$ref": "#/components/responses/Error"
|
|
8391
|
+
}
|
|
8392
|
+
},
|
|
8393
|
+
"requestBody": {
|
|
8394
|
+
"required": true,
|
|
8395
|
+
"content": {
|
|
8396
|
+
"application/json": {
|
|
8397
|
+
"schema": {
|
|
8398
|
+
"type": "object",
|
|
8399
|
+
"properties": {
|
|
8400
|
+
"chatId": {
|
|
8401
|
+
"type": "string"
|
|
8402
|
+
}
|
|
8403
|
+
},
|
|
8404
|
+
"required": [
|
|
8405
|
+
"chatId"
|
|
8406
|
+
],
|
|
8407
|
+
"additionalProperties": false
|
|
8408
|
+
}
|
|
8409
|
+
}
|
|
8410
|
+
}
|
|
8411
|
+
}
|
|
8412
|
+
}
|
|
8413
|
+
},
|
|
8269
8414
|
"/chatLayout.get": {
|
|
8270
8415
|
"get": {
|
|
8271
8416
|
"operationId": "chatLayout.get",
|
|
@@ -9118,9 +9263,6 @@
|
|
|
9118
9263
|
"completedAt": {
|
|
9119
9264
|
"type": "number"
|
|
9120
9265
|
},
|
|
9121
|
-
"maxTurns": {
|
|
9122
|
-
"type": "number"
|
|
9123
|
-
},
|
|
9124
9266
|
"mode": {
|
|
9125
9267
|
"type": "string"
|
|
9126
9268
|
},
|
|
@@ -9263,9 +9405,6 @@
|
|
|
9263
9405
|
"model": {
|
|
9264
9406
|
"type": "string"
|
|
9265
9407
|
},
|
|
9266
|
-
"maxTurns": {
|
|
9267
|
-
"type": "number"
|
|
9268
|
-
},
|
|
9269
9408
|
"mode": {
|
|
9270
9409
|
"type": "string"
|
|
9271
9410
|
},
|
|
@@ -9772,7 +9911,7 @@
|
|
|
9772
9911
|
],
|
|
9773
9912
|
"additionalProperties": false
|
|
9774
9913
|
},
|
|
9775
|
-
"
|
|
9914
|
+
"CachedAgentModel": {
|
|
9776
9915
|
"type": "object",
|
|
9777
9916
|
"properties": {
|
|
9778
9917
|
"id": {
|
|
@@ -9785,8 +9924,7 @@
|
|
|
9785
9924
|
"type": "string"
|
|
9786
9925
|
},
|
|
9787
9926
|
"contextWindow": {
|
|
9788
|
-
"type": "number"
|
|
9789
|
-
"description": "Approximate max input context window in tokens (e.g. 200000, 1_000_000)."
|
|
9927
|
+
"type": "number"
|
|
9790
9928
|
}
|
|
9791
9929
|
},
|
|
9792
9930
|
"required": [
|
|
@@ -9795,6 +9933,66 @@
|
|
|
9795
9933
|
],
|
|
9796
9934
|
"additionalProperties": false
|
|
9797
9935
|
},
|
|
9936
|
+
"AgentModelsEntry": {
|
|
9937
|
+
"type": "object",
|
|
9938
|
+
"properties": {
|
|
9939
|
+
"agentId": {
|
|
9940
|
+
"type": "string"
|
|
9941
|
+
},
|
|
9942
|
+
"agentType": {
|
|
9943
|
+
"type": "string"
|
|
9944
|
+
},
|
|
9945
|
+
"agentLabel": {
|
|
9946
|
+
"type": "string"
|
|
9947
|
+
},
|
|
9948
|
+
"models": {
|
|
9949
|
+
"type": "array",
|
|
9950
|
+
"items": {
|
|
9951
|
+
"$ref": "#/components/schemas/CachedAgentModel"
|
|
9952
|
+
}
|
|
9953
|
+
},
|
|
9954
|
+
"updatedAt": {
|
|
9955
|
+
"type": "number"
|
|
9956
|
+
},
|
|
9957
|
+
"defaultModel": {
|
|
9958
|
+
"type": "string"
|
|
9959
|
+
}
|
|
9960
|
+
},
|
|
9961
|
+
"required": [
|
|
9962
|
+
"agentId",
|
|
9963
|
+
"agentType",
|
|
9964
|
+
"agentLabel",
|
|
9965
|
+
"models"
|
|
9966
|
+
],
|
|
9967
|
+
"additionalProperties": false
|
|
9968
|
+
},
|
|
9969
|
+
"ModelRefreshResult": {
|
|
9970
|
+
"type": "object",
|
|
9971
|
+
"properties": {
|
|
9972
|
+
"agentId": {
|
|
9973
|
+
"type": "string"
|
|
9974
|
+
},
|
|
9975
|
+
"models": {
|
|
9976
|
+
"type": "array",
|
|
9977
|
+
"items": {
|
|
9978
|
+
"$ref": "#/components/schemas/CachedAgentModel"
|
|
9979
|
+
}
|
|
9980
|
+
},
|
|
9981
|
+
"updatedAt": {
|
|
9982
|
+
"type": "number"
|
|
9983
|
+
},
|
|
9984
|
+
"error": {
|
|
9985
|
+
"type": "string",
|
|
9986
|
+
"description": "When refresh failed, the prior cached list (or the adapter defaults)\nis still returned and `error` is populated with the failure reason."
|
|
9987
|
+
}
|
|
9988
|
+
},
|
|
9989
|
+
"required": [
|
|
9990
|
+
"agentId",
|
|
9991
|
+
"models",
|
|
9992
|
+
"updatedAt"
|
|
9993
|
+
],
|
|
9994
|
+
"additionalProperties": false
|
|
9995
|
+
},
|
|
9798
9996
|
"WorkspaceStatusSnapshot": {
|
|
9799
9997
|
"type": "object",
|
|
9800
9998
|
"properties": {
|
|
@@ -10148,6 +10346,20 @@
|
|
|
10148
10346
|
"usagePollingEnabled": {
|
|
10149
10347
|
"type": "boolean",
|
|
10150
10348
|
"description": "Whether the Reports usage scanner runs (issue #425). When `false`,\n`UsageScannerService.tick()` is a no-op — the periodic 5-minute\nsweep and the fire-and-forget tick triggered by opening the\nReports dialog are both skipped. Useful for users who don't care\nabout cost reporting and want to claw back the per-tick CPU /\nsubprocess churn (Codex/OpenCode adapters spawn helpers).\nDefaults to `true` (treat `undefined` as enabled)."
|
|
10349
|
+
},
|
|
10350
|
+
"cli": {
|
|
10351
|
+
"type": "object",
|
|
10352
|
+
"properties": {
|
|
10353
|
+
"defaultVia": {
|
|
10354
|
+
"type": "string",
|
|
10355
|
+
"enum": [
|
|
10356
|
+
"chat",
|
|
10357
|
+
"terminal"
|
|
10358
|
+
]
|
|
10359
|
+
}
|
|
10360
|
+
},
|
|
10361
|
+
"additionalProperties": {},
|
|
10362
|
+
"description": "CLI-scoped preferences (issue #551). Today only `defaultVia` is\nrecognized — the user-level fallback for `band workspaces create\n--prompt` dispatch when no `--via` flag, `BAND_DISPATCH` env var,\nor repo `.band/config.json` value is set."
|
|
10151
10363
|
}
|
|
10152
10364
|
},
|
|
10153
10365
|
"additionalProperties": {}
|
|
@@ -10169,6 +10381,17 @@
|
|
|
10169
10381
|
},
|
|
10170
10382
|
"model": {
|
|
10171
10383
|
"type": "string"
|
|
10384
|
+
},
|
|
10385
|
+
"cachedModels": {
|
|
10386
|
+
"type": "array",
|
|
10387
|
+
"items": {
|
|
10388
|
+
"$ref": "#/components/schemas/CachedAgentModel"
|
|
10389
|
+
},
|
|
10390
|
+
"description": "Cached list of models the agent's SDK / binary reports. Refreshed by\n`ModelRefreshService.refresh()` — explicitly from the Settings UI's\n\"Refresh models\" button, and fire-and-forget at server boot.\n\nThe picker UI (Settings + Chat) reads from this cache directly so it\nstays populated across server restarts and across fresh chats without\nneeding a live SDK call. When the field is absent (fresh install,\nsettings.json from an older version, refresh has never succeeded),\ncallers fall back to the adapter's built-in default list — see\n`ModelRefreshService.getCachedOrDefaults()` and the comments on\neach adapter's `listModels()` method."
|
|
10391
|
+
},
|
|
10392
|
+
"cachedModelsUpdatedAt": {
|
|
10393
|
+
"type": "number",
|
|
10394
|
+
"description": "Epoch ms when `cachedModels` was last refreshed (success or attempt).\nSurfaced in the UI so users can see staleness. Unset until the first\nrefresh completes."
|
|
10172
10395
|
}
|
|
10173
10396
|
},
|
|
10174
10397
|
"required": [
|
|
@@ -10751,9 +10974,6 @@
|
|
|
10751
10974
|
"prompt": {
|
|
10752
10975
|
"type": "string"
|
|
10753
10976
|
},
|
|
10754
|
-
"maxTurns": {
|
|
10755
|
-
"type": "number"
|
|
10756
|
-
},
|
|
10757
10977
|
"mode": {
|
|
10758
10978
|
"type": "string"
|
|
10759
10979
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports, R as React } from "../server.js";
|
|
2
|
-
import { m as createLucideIcon, bR as isDesktop,
|
|
2
|
+
import { m as createLucideIcon, bR as isDesktop, cn as invoke, co as listen, p as trpc, cp as reactDomExports, cq as Globe, cl as SearchBar, cr as Popover, cs as PopoverTrigger, ct as PopoverContent, cu as Search, cv as Trash2, cw as DropdownMenu, cx as DropdownMenuTrigger, cy as ChevronDown, cz as DropdownMenuContent, cA as DropdownMenuItem, cB as TriangleAlert, bX as ArrowLeft, cg as ArrowRight, X, cC as RotateCw, u as useAdapter, n as useQueryClient, o as useQuery, q as selectNeighbourBeforeRemove, r as centralPanelPosition, v as ensureEdgeGroups, w as attachEdgeGroupDragVisibility, x as registerInnerDockview, y as PanelVisibilityContext, z as DockviewReact, F as cycleTabsInActiveGroup, G as cycleGridGroups, C as Columns2, A as Rows2, B as Plus, E as usePanelVisibility } from "./router-Dz7oMBKX.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -431,8 +431,9 @@ function useBrowserPaneFreeze(args) {
|
|
|
431
431
|
});
|
|
432
432
|
})();
|
|
433
433
|
} else {
|
|
434
|
-
|
|
435
|
-
|
|
434
|
+
const wasApplied = freezeAppliedRef.current;
|
|
435
|
+
freezeAppliedRef.current = false;
|
|
436
|
+
if (wasApplied && visible) {
|
|
436
437
|
const ipcKey = ipcKeyRef.current;
|
|
437
438
|
invoke("browser_show", ipcKey).catch(() => {
|
|
438
439
|
});
|
|
@@ -1357,7 +1358,6 @@ function BrowserTabPanel({ params, api }) {
|
|
|
1357
1358
|
}
|
|
1358
1359
|
function BrowserTab(props) {
|
|
1359
1360
|
const [title, setTitle] = reactExports.useState(props.api.title ?? "New Tab");
|
|
1360
|
-
const [panelCount, setPanelCount] = reactExports.useState(props.containerApi.panels.length);
|
|
1361
1361
|
const [faviconError, setFaviconError] = reactExports.useState(false);
|
|
1362
1362
|
const browserId = props.params.browserId;
|
|
1363
1363
|
const faviconUrl = useFavicon(browserId);
|
|
@@ -1370,16 +1370,6 @@ function BrowserTab(props) {
|
|
|
1370
1370
|
const d = props.api.onDidTitleChange(() => setTitle(props.api.title ?? "New Tab"));
|
|
1371
1371
|
return () => d.dispose();
|
|
1372
1372
|
}, [props.api]);
|
|
1373
|
-
reactExports.useEffect(() => {
|
|
1374
|
-
const cApi = props.containerApi;
|
|
1375
|
-
const update = () => setPanelCount(cApi.panels.length);
|
|
1376
|
-
const d1 = cApi.onDidAddPanel(update);
|
|
1377
|
-
const d2 = cApi.onDidRemovePanel(update);
|
|
1378
|
-
return () => {
|
|
1379
|
-
d1.dispose();
|
|
1380
|
-
d2.dispose();
|
|
1381
|
-
};
|
|
1382
|
-
}, [props.containerApi]);
|
|
1383
1373
|
const handleClose = reactExports.useCallback(
|
|
1384
1374
|
(e) => {
|
|
1385
1375
|
e.stopPropagation();
|
|
@@ -1387,7 +1377,6 @@ function BrowserTab(props) {
|
|
|
1387
1377
|
},
|
|
1388
1378
|
[browserId]
|
|
1389
1379
|
);
|
|
1390
|
-
const showClose = panelCount > 1;
|
|
1391
1380
|
const showFavicon = faviconUrl && !faviconError;
|
|
1392
1381
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "dv-default-tab", children: [
|
|
1393
1382
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-1.5 min-w-0", children: [
|
|
@@ -1402,7 +1391,7 @@ function BrowserTab(props) {
|
|
|
1402
1391
|
) : /* @__PURE__ */ jsxRuntimeExports.jsx(Globe, { className: "size-3.5 shrink-0 text-muted-foreground" }),
|
|
1403
1392
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "truncate", children: title })
|
|
1404
1393
|
] }),
|
|
1405
|
-
|
|
1394
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1406
1395
|
"button",
|
|
1407
1396
|
{
|
|
1408
1397
|
type: "button",
|
|
@@ -1575,23 +1564,29 @@ function DockviewBrowserContainer({
|
|
|
1575
1564
|
},
|
|
1576
1565
|
[workspaceId]
|
|
1577
1566
|
);
|
|
1578
|
-
const closeTab = reactExports.useCallback(
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1567
|
+
const closeTab = reactExports.useCallback(
|
|
1568
|
+
(browserId) => {
|
|
1569
|
+
const api = apiRef.current;
|
|
1570
|
+
if (!api) return;
|
|
1571
|
+
selectNeighbourBeforeRemove(api, browserId);
|
|
1572
|
+
const panel = api.getPanel(browserId);
|
|
1573
|
+
if (panel) {
|
|
1574
|
+
api.removePanel(panel);
|
|
1575
|
+
}
|
|
1576
|
+
if (api.panels.length === 0) {
|
|
1577
|
+
createDefaultPanel(api, workspaceId);
|
|
1578
|
+
}
|
|
1579
|
+
requestAnimationFrame(() => {
|
|
1580
|
+
const activePanel = api.activePanel;
|
|
1581
|
+
if (!activePanel) return;
|
|
1582
|
+
activePanel.view.content.element.querySelector("[data-band-address-input]")?.focus();
|
|
1583
|
+
});
|
|
1584
|
+
trpc.browsers.remove.mutate({ browserId }).catch((err) => {
|
|
1585
|
+
console.error("[DockviewBrowserContainer] failed to remove browser:", err);
|
|
1586
|
+
});
|
|
1587
|
+
},
|
|
1588
|
+
[workspaceId]
|
|
1589
|
+
);
|
|
1595
1590
|
reactExports.useEffect(() => {
|
|
1596
1591
|
if (!visible) return;
|
|
1597
1592
|
const refocusAddressBar = () => {
|
|
@@ -1644,7 +1639,7 @@ function DockviewBrowserContainer({
|
|
|
1644
1639
|
});
|
|
1645
1640
|
} else if (key === "w" && !e.shiftKey) {
|
|
1646
1641
|
const api = apiRef.current;
|
|
1647
|
-
if (!api
|
|
1642
|
+
if (!api) return;
|
|
1648
1643
|
e.preventDefault();
|
|
1649
1644
|
e.stopPropagation();
|
|
1650
1645
|
const active = api.activePanel;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports, R as React } from "../server.js";
|
|
2
|
-
import { u as useAdapter, n as useQueryClient, o as useQuery, p as trpc, q as selectNeighbourBeforeRemove, r as centralPanelPosition, v as ensureEdgeGroups, w as attachEdgeGroupDragVisibility, x as registerInnerDockview, y as PanelVisibilityContext, z as DockviewReact, C as Columns2, A as Rows2, B as Plus, X, E as usePanelVisibility, F as cycleTabsInActiveGroup, G as cycleGridGroups } from "./router-
|
|
3
|
-
import { S as SquareTerminal } from "./square-terminal-
|
|
2
|
+
import { u as useAdapter, n as useQueryClient, o as useQuery, p as trpc, q as selectNeighbourBeforeRemove, r as centralPanelPosition, v as ensureEdgeGroups, w as attachEdgeGroupDragVisibility, x as registerInnerDockview, y as PanelVisibilityContext, z as DockviewReact, C as Columns2, A as Rows2, B as Plus, X, E as usePanelVisibility, F as cycleTabsInActiveGroup, G as cycleGridGroups } from "./router-Dz7oMBKX.js";
|
|
3
|
+
import { S as SquareTerminal } from "./square-terminal-D86hckth.js";
|
|
4
4
|
import "node:async_hooks";
|
|
5
5
|
import "node:stream";
|
|
6
6
|
import "util";
|
|
@@ -12,7 +12,7 @@ import "node:process";
|
|
|
12
12
|
import "node:path";
|
|
13
13
|
import "node:url";
|
|
14
14
|
const TerminalPanel = reactExports.lazy(
|
|
15
|
-
() => import("./TerminalPanel-
|
|
15
|
+
() => import("./TerminalPanel-DDazs1HR.js").then((m) => ({ default: m.TerminalPanel }))
|
|
16
16
|
);
|
|
17
17
|
function uuid() {
|
|
18
18
|
if (typeof crypto !== "undefined" && typeof crypto.randomUUID === "function") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../server.js";
|
|
2
|
-
import { m as createLucideIcon, bX as ArrowLeft,
|
|
2
|
+
import { m as createLucideIcon, cc as writeClipboardText, cd as readClipboardText, bX as ArrowLeft, ce as ArrowUp, cf as ArrowDown, cg as ArrowRight, X, ch as ClipboardPaste, c3 as useSettingsQuery, ci as getCurrentZoomLevel, cj as openExternalUrl, ck as subscribeToZoomChanges, cl as SearchBar, cm as ZOOM_CSS_VAR } from "./router-Dz7oMBKX.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -148,54 +148,6 @@ function clamp(n, lo, hi) {
|
|
|
148
148
|
if (n > hi) return hi;
|
|
149
149
|
return n;
|
|
150
150
|
}
|
|
151
|
-
async function writeClipboardText(text) {
|
|
152
|
-
if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
|
|
153
|
-
try {
|
|
154
|
-
await navigator.clipboard.writeText(text);
|
|
155
|
-
return true;
|
|
156
|
-
} catch {
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return legacyCopy(text);
|
|
160
|
-
}
|
|
161
|
-
function legacyCopy(text) {
|
|
162
|
-
if (typeof document === "undefined") return false;
|
|
163
|
-
const textarea = document.createElement("textarea");
|
|
164
|
-
textarea.value = text;
|
|
165
|
-
textarea.setAttribute("readonly", "");
|
|
166
|
-
textarea.style.position = "fixed";
|
|
167
|
-
textarea.style.top = "0";
|
|
168
|
-
textarea.style.left = "0";
|
|
169
|
-
textarea.style.width = "1px";
|
|
170
|
-
textarea.style.height = "1px";
|
|
171
|
-
textarea.style.padding = "0";
|
|
172
|
-
textarea.style.border = "0";
|
|
173
|
-
textarea.style.opacity = "0";
|
|
174
|
-
textarea.style.pointerEvents = "none";
|
|
175
|
-
document.body.appendChild(textarea);
|
|
176
|
-
const previouslyFocused = document.activeElement;
|
|
177
|
-
try {
|
|
178
|
-
textarea.focus();
|
|
179
|
-
textarea.select();
|
|
180
|
-
textarea.setSelectionRange(0, text.length);
|
|
181
|
-
return document.execCommand("copy");
|
|
182
|
-
} catch {
|
|
183
|
-
return false;
|
|
184
|
-
} finally {
|
|
185
|
-
document.body.removeChild(textarea);
|
|
186
|
-
previouslyFocused?.focus?.();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
async function readClipboardText() {
|
|
190
|
-
if (typeof navigator === "undefined" || !navigator.clipboard?.readText) {
|
|
191
|
-
return "";
|
|
192
|
-
}
|
|
193
|
-
try {
|
|
194
|
-
return await navigator.clipboard.readText();
|
|
195
|
-
} catch {
|
|
196
|
-
return "";
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
151
|
const SEQ_ESC = "\x1B";
|
|
200
152
|
const SEQ_TAB = " ";
|
|
201
153
|
const SEQ_ENTER = "\r";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-
|
|
2
|
-
import {
|
|
1
|
+
import { e as isSymbol, c as baseFlatten, g as baseIteratee, k as keys, h as baseFindIndex, j as baseEach, l as arrayMap, m as hasPath, n as castPath, t as toKey, o as baseGet } from "./_baseUniq-C7-_tYXk.js";
|
|
2
|
+
import { d0 as isObject, bv as baseRest, d1 as isIterateeCall, d2 as keysIn, d3 as eq, d4 as isArrayLike, d5 as isArray, d6 as identity, d7 as isIndex, d8 as assignValue } from "./router-Dz7oMBKX.js";
|
|
3
3
|
var reWhitespace = /\s/;
|
|
4
4
|
function trimmedEndIndex(string) {
|
|
5
5
|
var index = string.length;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { di as isObjectLike, dj as baseGetTag, d5 as isArray, dk as Symbol$1, d4 as isArrayLike, dl as arrayLikeKeys, dm as baseKeys, dn as memoize, dp as isArguments, dq as copyObject, d2 as keysIn, dr as getPrototype, ds as cloneArrayBuffer, dt as cloneTypedArray, du as getTag, dg as baseUnary, dv as nodeUtil, d0 as isObject, dw as copyArray, dx as isBuffer, dy as cloneBuffer, dz as initCloneObject, dA as Stack, d8 as assignValue, dB as MapCache, d3 as eq, dC as Uint8Array, dD as isTypedArray, dE as isLength, d7 as isIndex, d6 as identity, de as baseFor, dF as Set } from "./router-Dz7oMBKX.js";
|
|
2
2
|
var symbolTag$3 = "[object Symbol]";
|
|
3
3
|
function isSymbol(value) {
|
|
4
4
|
return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const tsrStartManifest = () => ({ "routes": { "__root__": { "filePath": "/Users/runner/work/band/band/apps/web/src/routes/__root.tsx", "children": ["/", "/workspace/$workspaceId"], "preloads": ["/assets/main-QmYiKgqv.js"], "assets": [{ "tag": "link", "attrs": { "rel": "stylesheet", "href": "/assets/main-BzKe6bG7.css", "type": "text/css" } }] }, "/": { "filePath": "/Users/runner/work/band/band/apps/web/src/routes/index.tsx", "assets": [{ "tag": "link", "attrs": { "rel": "stylesheet", "href": "/assets/main-BzKe6bG7.css", "type": "text/css" } }], "preloads": ["/assets/index-CbBtBBYr.js"] }, "/workspace/$workspaceId": { "filePath": "/Users/runner/work/band/band/apps/web/src/routes/workspace.$workspaceId.tsx", "assets": [{ "tag": "link", "attrs": { "rel": "stylesheet", "href": "/assets/main-BzKe6bG7.css", "type": "text/css" } }], "preloads": ["/assets/workspace._workspaceId-DFvkHRHC.js", "/assets/square-terminal-bliRzpRN.js"] } }, "clientEntry": "/assets/main-QmYiKgqv.js" });
|
|
2
|
+
export {
|
|
3
|
+
tsrStartManifest
|
|
4
|
+
};
|