@band-app/server 0.8.0 → 0.9.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.
Files changed (168) hide show
  1. package/dist/client/assets/{DockviewTerminalContainer-BpFVSRxD.js → DockviewTerminalContainer-ZSiC-7Wm.js} +2 -2
  2. package/dist/client/assets/{TerminalPanel-BntKxpyp.js → TerminalPanel-CvR6-tkK.js} +1 -1
  3. package/dist/client/assets/{_basePickBy-DF5xdsrk.js → _basePickBy-DOsvMYxz.js} +1 -1
  4. package/dist/client/assets/{_baseUniq-CoueVsbE.js → _baseUniq-BjUzcTYJ.js} +1 -1
  5. package/dist/client/assets/{arc-BFzNwh12.js → arc-PqmhKm1W.js} +1 -1
  6. package/dist/client/assets/{architectureDiagram-VXUJARFQ-By7wadQM.js → architectureDiagram-VXUJARFQ-70d15Hrt.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-VD42YOAC-BC_1TUzk.js → blockDiagram-VD42YOAC-Cjib0DnE.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-YG6GDRKO-BCk4UTN8.js → c4Diagram-YG6GDRKO-DGbJac2z.js} +1 -1
  9. package/dist/client/assets/channel-DHmLqpit.js +1 -0
  10. package/dist/client/assets/{chunk-4BX2VUAB-BNQvAlfk.js → chunk-4BX2VUAB-DWXbUTDx.js} +1 -1
  11. package/dist/client/assets/{chunk-55IACEB6-BttquFk4.js → chunk-55IACEB6-DHmlIacM.js} +1 -1
  12. package/dist/client/assets/{chunk-B4BG7PRW-BlpucGaJ.js → chunk-B4BG7PRW-DGMr7A2W.js} +1 -1
  13. package/dist/client/assets/{chunk-DI55MBZ5-Clc7KEpM.js → chunk-DI55MBZ5-VyMTkEX3.js} +1 -1
  14. package/dist/client/assets/{chunk-FMBD7UC4-B4AJ2Dku.js → chunk-FMBD7UC4-U9WC5yh7.js} +1 -1
  15. package/dist/client/assets/{chunk-QN33PNHL-zpQdzj4o.js → chunk-QN33PNHL-CpWV7s74.js} +1 -1
  16. package/dist/client/assets/{chunk-QZHKN3VN-C91vV1DW.js → chunk-QZHKN3VN-D_6wYXhV.js} +1 -1
  17. package/dist/client/assets/{chunk-TZMSLE5B-Cos_2ZyH.js → chunk-TZMSLE5B-CnmYfvpb.js} +1 -1
  18. package/dist/client/assets/classDiagram-2ON5EDUG-C7zDhZrE.js +1 -0
  19. package/dist/client/assets/classDiagram-v2-WZHVMYZB-C7zDhZrE.js +1 -0
  20. package/dist/client/assets/clone-yyq3D0Pq.js +1 -0
  21. package/dist/client/assets/{cose-bilkent-S5V4N54A-DCYrgoD8.js → cose-bilkent-S5V4N54A-DqlCuXUu.js} +1 -1
  22. package/dist/client/assets/{dagre-6UL2VRFP-M5t81982.js → dagre-6UL2VRFP-D9ySXysT.js} +1 -1
  23. package/dist/client/assets/{diagram-PSM6KHXK-D2Ek6C2z.js → diagram-PSM6KHXK-Bee22nwJ.js} +1 -1
  24. package/dist/client/assets/{diagram-QEK2KX5R-CVWybKcv.js → diagram-QEK2KX5R-CKYtwRXE.js} +1 -1
  25. package/dist/client/assets/{diagram-S2PKOQOG-BCqpWwzq.js → diagram-S2PKOQOG-tl720Ns4.js} +1 -1
  26. package/dist/client/assets/{erDiagram-Q2GNP2WA-BYtyKpu4.js → erDiagram-Q2GNP2WA-Di8LTTo8.js} +1 -1
  27. package/dist/client/assets/{flowDiagram-NV44I4VS-DBuUJVnr.js → flowDiagram-NV44I4VS-CUDkVJGW.js} +1 -1
  28. package/dist/client/assets/{ganttDiagram-JELNMOA3-BsFBEaF2.js → ganttDiagram-JELNMOA3-CemMEWZ6.js} +1 -1
  29. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-7exAUrbl.js → gitGraphDiagram-V2S2FVAM-B54xBQm4.js} +1 -1
  30. package/dist/client/assets/{graph-Du1niQqO.js → graph-CzD8aRj3.js} +1 -1
  31. package/dist/client/assets/{highlighted-body-B3W2YXNL-DvSWBwhR.js → highlighted-body-B3W2YXNL-c47RLD13.js} +1 -1
  32. package/dist/client/assets/{index-qlT4M9zl.js → index-BL6NMKnC.js} +1 -1
  33. package/dist/client/assets/{index-Dub-xnlF.js → index-BoSG4rS2.js} +1 -1
  34. package/dist/client/assets/{index-DsX632ci.js → index-C1eSoFff.js} +1 -1
  35. package/dist/client/assets/{index-wMCMKab0.js → index-CIv4jKEj.js} +1 -1
  36. package/dist/client/assets/{index-Bel4N-0p.js → index-CMZEEi2J.js} +1 -1
  37. package/dist/client/assets/{index-DAZesMJA.js → index-Cy7F9VKd.js} +1 -1
  38. package/dist/client/assets/{index-riX__uwi.js → index-D6MZ26li.js} +1 -1
  39. package/dist/client/assets/{index-bTf5A-ZO.js → index-DC_vWJCw.js} +1 -1
  40. package/dist/client/assets/{index-CuPxzY7a.js → index-DPj7uf3N.js} +1 -1
  41. package/dist/client/assets/{index-BT08YowC.js → index-DWMpZHMT.js} +1 -1
  42. package/dist/client/assets/{index-DvN4Pfwf.js → index-D_mhg0lQ.js} +1 -1
  43. package/dist/client/assets/{index-BhNPdWcD.js → index-DaIPQb3r.js} +1 -1
  44. package/dist/client/assets/{index-FzJ61zmb.js → index-DfCwszrX.js} +1 -1
  45. package/dist/client/assets/{index-BXV8DVgO.js → index-DjJ5-Fte.js} +1 -1
  46. package/dist/client/assets/{index-DiLsWyyw.js → index-Dt6ZyNUI.js} +1 -1
  47. package/dist/client/assets/{index-PcpmPUME.js → index-Qbd6pW8g.js} +1 -1
  48. package/dist/client/assets/{index-Q9Papv40.js → index-btFeV2j3.js} +1 -1
  49. package/dist/client/assets/{index-B8zm4Wn1.js → index-gOMe0dPC.js} +1 -1
  50. package/dist/client/assets/{infoDiagram-HS3SLOUP-ClKnBgfU.js → infoDiagram-HS3SLOUP-Cvh6X3kP.js} +1 -1
  51. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-ptjlJtex.js → journeyDiagram-XKPGCS4Q-Czi5TePn.js} +1 -1
  52. package/dist/client/assets/{kanban-definition-3W4ZIXB7-Dqk-kV2N.js → kanban-definition-3W4ZIXB7-Bk0MW3W-.js} +1 -1
  53. package/dist/client/assets/{layout-PMiGD6HA.js → layout-Ckq0ckKz.js} +1 -1
  54. package/dist/client/assets/{linear-BRPhIkB4.js → linear-BMO1jkHz.js} +1 -1
  55. package/dist/client/assets/{main-ssLEzQJf.js → main-B0LPsZMa.js} +224 -224
  56. package/dist/client/assets/main-Tt4WZJMG.css +1 -0
  57. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CKiZT-9L.js → mindmap-definition-VGOIOE7T-oF701YVn.js} +1 -1
  58. package/dist/client/assets/{pieDiagram-ADFJNKIX-BtN0lt7V.js → pieDiagram-ADFJNKIX-DOa3ALEx.js} +1 -1
  59. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-064IuExP.js → quadrantDiagram-AYHSOK5B-BwhElI6Y.js} +1 -1
  60. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DfSwHkne.js → requirementDiagram-UZGBJVZJ-DcR2cX9-.js} +1 -1
  61. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-CkEgokt8.js → sankeyDiagram-TZEHDZUN-BTpr4N1X.js} +1 -1
  62. package/dist/client/assets/{sequenceDiagram-WL72ISMW-B8GUQ9mm.js → sequenceDiagram-WL72ISMW-B8wh2px2.js} +1 -1
  63. package/dist/client/assets/{square-terminal-voIzqAV1.js → square-terminal-bul2OB6w.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-BvI2n1mZ.js → stateDiagram-FKZM4ZOC-Bt4IkUn2.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D3_tub1u.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-2QHGwOvE.js → timeline-definition-IT6M3QCI-Dybsx7bF.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-Cnr0AhFV.js → treemap-GDKQZRPO-CuwqbPPy.js} +1 -1
  68. package/dist/client/assets/{useSessionListContext-BxG0jHjf.js → useSessionListContext-DGvLgX3O.js} +1 -1
  69. package/dist/client/assets/{workspace._workspaceId-C6DFXubr.js → workspace._workspaceId-CflKFp3C.js} +1 -1
  70. package/dist/client/assets/{workspace._workspaceId.changes-B8i4zvL_.js → workspace._workspaceId.changes-B0bx2wbG.js} +1 -1
  71. package/dist/client/assets/workspace._workspaceId.code-C9yB34AE.js +1 -0
  72. package/dist/client/assets/{workspace._workspaceId.code._-BIhs37Mu.js → workspace._workspaceId.code._-yf2wdjm9.js} +1 -1
  73. package/dist/client/assets/{workspace._workspaceId.code.index-YAGicxpL.js → workspace._workspaceId.code.index-BsCAmmyN.js} +1 -1
  74. package/dist/client/assets/{workspace._workspaceId.index-CzEuNQ6a.js → workspace._workspaceId.index-MrOOg9VQ.js} +1 -1
  75. package/dist/client/assets/{workspace._workspaceId.terminal-CrGI8r-m.js → workspace._workspaceId.terminal-DPBz1J_0.js} +2 -2
  76. package/dist/client/assets/{xychartDiagram-PRI3JC2R-C6jlfQdQ.js → xychartDiagram-PRI3JC2R-ZIdDg6qe.js} +1 -1
  77. package/dist/server/assets/{DockviewTerminalContainer-Dyp-rCDV.js → DockviewTerminalContainer-DFjZuSCT.js} +3 -3
  78. package/dist/server/assets/{TerminalPanel-Bn1gtOEI.js → TerminalPanel-tg1GdSr0.js} +1 -1
  79. package/dist/server/assets/{_basePickBy-BnJ4ajzM.js → _basePickBy-DbFLVHsB.js} +2 -2
  80. package/dist/server/assets/{_baseUniq-BeWm3tGf.js → _baseUniq-CLmEqJvy.js} +1 -1
  81. package/dist/server/assets/{_tanstack-start-manifest_v-D3hMj8OZ.js → _tanstack-start-manifest_v-DlURH9DQ.js} +1 -1
  82. package/dist/server/assets/{arc-BlpfkuC0.js → arc-DZLAbVTx.js} +1 -1
  83. package/dist/server/assets/{architecture-7HQA4BMR-BJ7ewH5u.js → architecture-7HQA4BMR-CQ0E5QYW.js} +6 -6
  84. package/dist/server/assets/{architectureDiagram-VXUJARFQ-TRCw2ugF.js → architectureDiagram-VXUJARFQ-evDLySHH.js} +6 -6
  85. package/dist/server/assets/{blockDiagram-VD42YOAC-Dh9a8aso.js → blockDiagram-VD42YOAC-DBsHlPXM.js} +6 -6
  86. package/dist/server/assets/{c4Diagram-YG6GDRKO-BrRKberj.js → c4Diagram-YG6GDRKO-h5CZPoPy.js} +2 -2
  87. package/dist/server/assets/{channel-o5SG-fgD.js → channel-CKJ1HkO1.js} +1 -1
  88. package/dist/server/assets/{chunk-4BX2VUAB-B4PS8pUF.js → chunk-4BX2VUAB-3odGT6c4.js} +1 -1
  89. package/dist/server/assets/{chunk-55IACEB6-By5B62Vv.js → chunk-55IACEB6-LXKtVbTR.js} +1 -1
  90. package/dist/server/assets/{chunk-B4BG7PRW-DQCDsnub.js → chunk-B4BG7PRW-Br-1a8gS.js} +4 -4
  91. package/dist/server/assets/{chunk-DI55MBZ5-MMKD3vhO.js → chunk-DI55MBZ5-BAz_7LcE.js} +3 -3
  92. package/dist/server/assets/{chunk-FMBD7UC4-CGSmUkeN.js → chunk-FMBD7UC4-CqMTTql5.js} +1 -1
  93. package/dist/server/assets/{chunk-QN33PNHL-DtOY2Tk4.js → chunk-QN33PNHL-HclxJzvx.js} +1 -1
  94. package/dist/server/assets/{chunk-QZHKN3VN-CEBb15S0.js → chunk-QZHKN3VN-TEpNJ3fK.js} +1 -1
  95. package/dist/server/assets/{chunk-TZMSLE5B-BR7Wfzu-.js → chunk-TZMSLE5B-CnZe9dM5.js} +1 -1
  96. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CVGo_62f.js → classDiagram-2ON5EDUG-Cd6_FR9V.js} +5 -5
  97. package/dist/server/assets/{classDiagram-2ON5EDUG-CVGo_62f.js → classDiagram-v2-WZHVMYZB-Cd6_FR9V.js} +5 -5
  98. package/dist/server/assets/{clone-Dava77iI.js → clone-AjunVJRj.js} +1 -1
  99. package/dist/server/assets/{cose-bilkent-S5V4N54A-C_1AzHCC.js → cose-bilkent-S5V4N54A-D7LPM_vS.js} +1 -1
  100. package/dist/server/assets/{dagre-6UL2VRFP-Boln2sn2.js → dagre-6UL2VRFP-CNeAACXh.js} +6 -6
  101. package/dist/server/assets/{diagram-PSM6KHXK-BJe9rht3.js → diagram-PSM6KHXK-FHT3vuUn.js} +7 -7
  102. package/dist/server/assets/{diagram-QEK2KX5R-CGNcKosm.js → diagram-QEK2KX5R-Du9tqqDq.js} +6 -6
  103. package/dist/server/assets/{diagram-S2PKOQOG-KHkj72ld.js → diagram-S2PKOQOG-BvH3_hXv.js} +6 -6
  104. package/dist/server/assets/{erDiagram-Q2GNP2WA-CQPyD9EF.js → erDiagram-Q2GNP2WA-Bl5SlyVt.js} +4 -4
  105. package/dist/server/assets/{flowDiagram-NV44I4VS-vyBoOcPY.js → flowDiagram-NV44I4VS-TOzUwhF5.js} +5 -5
  106. package/dist/server/assets/{ganttDiagram-JELNMOA3-DzN3kslF.js → ganttDiagram-JELNMOA3-BHAA60wa.js} +2 -2
  107. package/dist/server/assets/{gitGraph-G5XIXVHT-B2GLfoRF.js → gitGraph-G5XIXVHT-rOVJvGHO.js} +6 -6
  108. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-B5EDhgt0.js → gitGraphDiagram-V2S2FVAM-VzFNa7CX.js} +7 -7
  109. package/dist/server/assets/{graph-DM2YnSRF.js → graph-Bcuzin2V.js} +2 -2
  110. package/dist/server/assets/{highlighted-body-B3W2YXNL-h_Fr1oTy.js → highlighted-body-B3W2YXNL-DsiXofbu.js} +1 -1
  111. package/dist/server/assets/{index-xaaGh4ls.js → index-BF37iFwT.js} +2 -2
  112. package/dist/server/assets/{index-no5gnAsf.js → index-BN_ghim8.js} +2 -2
  113. package/dist/server/assets/{index-DgHW7UNt.js → index-BNygmRkO.js} +2 -2
  114. package/dist/server/assets/{index-EvPsdhYL.js → index-BS2yvWd8.js} +2 -2
  115. package/dist/server/assets/{index-C-1szG3T.js → index-BsO3ggd_.js} +2 -2
  116. package/dist/server/assets/{index-BsJzTvSJ.js → index-BuX-CbGB.js} +4 -4
  117. package/dist/server/assets/{index-DnQXmsaa.js → index-Bw1GdZx-.js} +2 -2
  118. package/dist/server/assets/{index-DbAlA7HO.js → index-CAqpyyUA.js} +3 -3
  119. package/dist/server/assets/{index-WTleB0lf.js → index-CBNyhkhK.js} +2 -2
  120. package/dist/server/assets/{index-DafoxTP2.js → index-CERytpw-.js} +2 -2
  121. package/dist/server/assets/{index-BiZndo5l.js → index-CJCPubzA.js} +1 -1
  122. package/dist/server/assets/{index-BIDr1DTu.js → index-ChbBCGbG.js} +3 -3
  123. package/dist/server/assets/{index-DknBLjbj.js → index-CiwITdnL.js} +2 -2
  124. package/dist/server/assets/{index-DBmY9Kl-.js → index-Cjn0yAaG.js} +2 -2
  125. package/dist/server/assets/{index-CS6JuHB3.js → index-CpuhPF5t.js} +5 -5
  126. package/dist/server/assets/{index-DDLILDN_.js → index-DE0zASO3.js} +5 -5
  127. package/dist/server/assets/{index-B0FUh3Pc.js → index-DUQ1u3ED.js} +1 -1
  128. package/dist/server/assets/{index-DQxHX7Lv.js → index-bEeLtTPr.js} +2 -2
  129. package/dist/server/assets/{info-VBDWY6EO-BSVsdtnm.js → info-VBDWY6EO-BVbRb-4Z.js} +6 -6
  130. package/dist/server/assets/{infoDiagram-HS3SLOUP-DbxrgmBd.js → infoDiagram-HS3SLOUP-esUYZzYH.js} +5 -5
  131. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-PyE_5Gmw.js → journeyDiagram-XKPGCS4Q-D40eNc21.js} +4 -4
  132. package/dist/server/assets/{kanban-definition-3W4ZIXB7-PMuJIj2B.js → kanban-definition-3W4ZIXB7-5N_75bcJ.js} +2 -2
  133. package/dist/server/assets/{layout-B67zHI7Q.js → layout-CbRLlNEr.js} +4 -4
  134. package/dist/server/assets/{linear-D86t5s_z.js → linear-CSZB2dRK.js} +1 -1
  135. package/dist/server/assets/{mermaid-3ZIDBTTL-Bm5x4pKu.js → mermaid-3ZIDBTTL-BEV29Yuc.js} +1 -1
  136. package/dist/server/assets/{mermaid-parser.core-CrQ4TUTQ.js → mermaid-parser.core-D1DVTNTM.js} +11 -11
  137. package/dist/server/assets/{mindmap-definition-VGOIOE7T-CS-q_lU-.js → mindmap-definition-VGOIOE7T-Dd16Sy8E.js} +3 -3
  138. package/dist/server/assets/{packet-DYOGHKS2-BhN2HFTO.js → packet-DYOGHKS2-Jv2GC4PV.js} +6 -6
  139. package/dist/server/assets/{pie-VRWISCQL-Db-fTydN.js → pie-VRWISCQL-CzY7Q_jX.js} +6 -6
  140. package/dist/server/assets/{pieDiagram-ADFJNKIX-jACR3wDP.js → pieDiagram-ADFJNKIX-BygyuGnX.js} +7 -7
  141. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-BuOoP_Hg.js → quadrantDiagram-AYHSOK5B-B_XQ04Qi.js} +2 -2
  142. package/dist/server/assets/{radar-ZZBFDIW7-DTdnWlmn.js → radar-ZZBFDIW7-D1Km6RgJ.js} +6 -6
  143. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-XXmbIh8u.js → requirementDiagram-UZGBJVZJ-HsUrO2es.js} +3 -3
  144. package/dist/server/assets/{router-D6T53n2M.js → router-86ALGZbb.js} +922 -375
  145. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-DDyaGWkS.js → sankeyDiagram-TZEHDZUN-D2agLPgC.js} +1 -1
  146. package/dist/server/assets/{sequenceDiagram-WL72ISMW-GTC4KppE.js → sequenceDiagram-WL72ISMW-B9xPBmx_.js} +3 -3
  147. package/dist/server/assets/{square-terminal-DaAOn53I.js → square-terminal-C1jD7kGR.js} +1 -1
  148. package/dist/server/assets/{stateDiagram-FKZM4ZOC-BxYN7guF.js → stateDiagram-FKZM4ZOC-DHDTsTYT.js} +8 -8
  149. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BNKwWfxp.js → stateDiagram-v2-4FDKWEC3-UzPAvMjA.js} +4 -4
  150. package/dist/server/assets/{timeline-definition-IT6M3QCI-CA7TxBUn.js → timeline-definition-IT6M3QCI-BkV8-JpZ.js} +2 -2
  151. package/dist/server/assets/{treemap-GDKQZRPO-CiJPF4Eo.js → treemap-GDKQZRPO-BnwMc3nx.js} +6 -6
  152. package/dist/server/assets/{workspace._workspaceId-C936_ZgM.js → workspace._workspaceId-CxbLYQ4n.js} +2 -2
  153. package/dist/server/assets/{workspace._workspaceId.changes-CH3KFMSq.js → workspace._workspaceId.changes-st-QDRaZ.js} +1 -1
  154. package/dist/server/assets/{workspace._workspaceId.code._-BuovU8kl.js → workspace._workspaceId.code._-DXGsbzXN.js} +1 -1
  155. package/dist/server/assets/{workspace._workspaceId.code.index-BHzxCT1V.js → workspace._workspaceId.code.index-ChSU7TbG.js} +1 -1
  156. package/dist/server/assets/{workspace._workspaceId.index-86dKrOT8.js → workspace._workspaceId.index-WQW8azst.js} +1 -1
  157. package/dist/server/assets/{workspace._workspaceId.terminal-BAeUoj6m.js → workspace._workspaceId.terminal-o_dPhCio.js} +2 -2
  158. package/dist/server/assets/{xychartDiagram-PRI3JC2R-BmMwldTO.js → xychartDiagram-PRI3JC2R-3zGezmQ5.js} +2 -2
  159. package/dist/server/server.js +2 -2
  160. package/dist/start-server.mjs +317 -127
  161. package/package.json +5 -5
  162. package/dist/client/assets/channel-CFM6cryD.js +0 -1
  163. package/dist/client/assets/classDiagram-2ON5EDUG-CZiRGipy.js +0 -1
  164. package/dist/client/assets/classDiagram-v2-WZHVMYZB-CZiRGipy.js +0 -1
  165. package/dist/client/assets/clone-Bre_bsCp.js +0 -1
  166. package/dist/client/assets/main-DsI295kl.css +0 -1
  167. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D8yWUoXF.js +0 -1
  168. package/dist/client/assets/workspace._workspaceId.code-CX8MyOEp.js +0 -1
@@ -79376,7 +79376,7 @@ var require_core_cjs_development = __commonJS({
79376
79376
  name: "pointerup"
79377
79377
  }
79378
79378
  };
79379
- var PointerSensor2 = class extends AbstractPointerSensor {
79379
+ var PointerSensor = class extends AbstractPointerSensor {
79380
79380
  constructor(props) {
79381
79381
  const {
79382
79382
  event
@@ -79385,7 +79385,7 @@ var require_core_cjs_development = __commonJS({
79385
79385
  super(props, events, listenerTarget);
79386
79386
  }
79387
79387
  };
79388
- PointerSensor2.activators = [{
79388
+ PointerSensor.activators = [{
79389
79389
  eventName: "onPointerDown",
79390
79390
  handler: (_ref, _ref2) => {
79391
79391
  let {
@@ -79415,12 +79415,12 @@ var require_core_cjs_development = __commonJS({
79415
79415
  (function(MouseButton2) {
79416
79416
  MouseButton2[MouseButton2["RightClick"] = 2] = "RightClick";
79417
79417
  })(MouseButton || (MouseButton = {}));
79418
- var MouseSensor = class extends AbstractPointerSensor {
79418
+ var MouseSensor2 = class extends AbstractPointerSensor {
79419
79419
  constructor(props) {
79420
79420
  super(props, events$1, utilities.getOwnerDocument(props.event.target));
79421
79421
  }
79422
79422
  };
79423
- MouseSensor.activators = [{
79423
+ MouseSensor2.activators = [{
79424
79424
  eventName: "onMouseDown",
79425
79425
  handler: (_ref, _ref2) => {
79426
79426
  let {
@@ -79449,7 +79449,7 @@ var require_core_cjs_development = __commonJS({
79449
79449
  name: "touchend"
79450
79450
  }
79451
79451
  };
79452
- var TouchSensor = class extends AbstractPointerSensor {
79452
+ var TouchSensor2 = class extends AbstractPointerSensor {
79453
79453
  constructor(props) {
79454
79454
  super(props, events$2);
79455
79455
  }
@@ -79465,7 +79465,7 @@ var require_core_cjs_development = __commonJS({
79465
79465
  }
79466
79466
  }
79467
79467
  };
79468
- TouchSensor.activators = [{
79468
+ TouchSensor2.activators = [{
79469
79469
  eventName: "onTouchStart",
79470
79470
  handler: (_ref, _ref2) => {
79471
79471
  let {
@@ -80119,7 +80119,7 @@ var require_core_cjs_development = __commonJS({
80119
80119
  }), [rect, nodeRef, setRef2]);
80120
80120
  }
80121
80121
  var defaultSensors = [{
80122
- sensor: PointerSensor2,
80122
+ sensor: PointerSensor,
80123
80123
  options: {}
80124
80124
  }, {
80125
80125
  sensor: KeyboardSensor,
@@ -81036,7 +81036,7 @@ var require_core_cjs_development = __commonJS({
81036
81036
  transform: transform2
81037
81037
  };
81038
81038
  }
81039
- function useDndContext() {
81039
+ function useDndContext2() {
81040
81040
  return React32.useContext(PublicContext);
81041
81041
  }
81042
81042
  var ID_PREFIX$1 = "Droppable";
@@ -81464,7 +81464,7 @@ var require_core_cjs_development = __commonJS({
81464
81464
  scrollableAncestors,
81465
81465
  scrollableAncestorRects,
81466
81466
  windowRect: windowRect2
81467
- } = useDndContext();
81467
+ } = useDndContext2();
81468
81468
  const transform2 = React32.useContext(ActiveDraggableContext);
81469
81469
  const key2 = useKey(active == null ? void 0 : active.id);
81470
81470
  const modifiedTransform = applyModifiers(modifiers, {
@@ -81510,9 +81510,9 @@ var require_core_cjs_development = __commonJS({
81510
81510
  exports.DndContext = DndContext2;
81511
81511
  exports.DragOverlay = DragOverlay2;
81512
81512
  exports.KeyboardSensor = KeyboardSensor;
81513
- exports.MouseSensor = MouseSensor;
81514
- exports.PointerSensor = PointerSensor2;
81515
- exports.TouchSensor = TouchSensor;
81513
+ exports.MouseSensor = MouseSensor2;
81514
+ exports.PointerSensor = PointerSensor;
81515
+ exports.TouchSensor = TouchSensor2;
81516
81516
  exports.applyModifiers = applyModifiers;
81517
81517
  exports.closestCenter = closestCenter2;
81518
81518
  exports.closestCorners = closestCorners;
@@ -81527,7 +81527,7 @@ var require_core_cjs_development = __commonJS({
81527
81527
  exports.getScrollableAncestors = getScrollableAncestors;
81528
81528
  exports.pointerWithin = pointerWithin;
81529
81529
  exports.rectIntersection = rectIntersection;
81530
- exports.useDndContext = useDndContext;
81530
+ exports.useDndContext = useDndContext2;
81531
81531
  exports.useDndMonitor = useDndMonitor;
81532
81532
  exports.useDraggable = useDraggable;
81533
81533
  exports.useDroppable = useDroppable2;
@@ -117056,7 +117056,7 @@ function ContextMenuItem2({
117056
117056
  "data-inset": inset,
117057
117057
  "data-variant": variant,
117058
117058
  className: cn(
117059
- "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
117059
+ "relative flex cursor-pointer items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground dark:focus:bg-neutral-700 data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
117060
117060
  className
117061
117061
  ),
117062
117062
  ...props
@@ -119800,37 +119800,47 @@ var import_jsx_runtime48 = __toESM(require_jsx_runtime(), 1);
119800
119800
  var import_react10 = __toESM(require_react(), 1);
119801
119801
  var import_jsx_runtime49 = __toESM(require_jsx_runtime(), 1);
119802
119802
 
119803
+ // ../../packages/dashboard-core/src/components/CommitDialog.tsx
119804
+ var import_react11 = __toESM(require_react(), 1);
119805
+ var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
119806
+
119803
119807
  // ../../packages/dashboard-core/src/components/DashboardShell.tsx
119804
- var import_react19 = __toESM(require_react(), 1);
119808
+ var import_react22 = __toESM(require_react(), 1);
119805
119809
 
119806
119810
  // ../../packages/dashboard-core/src/hooks/use-cli-setup.ts
119807
- var import_react11 = __toESM(require_react(), 1);
119811
+ var import_react12 = __toESM(require_react(), 1);
119812
+
119813
+ // ../../packages/dashboard-core/src/hooks/use-collapse-state.ts
119814
+ var import_react13 = __toESM(require_react(), 1);
119808
119815
 
119809
119816
  // ../../packages/dashboard-core/src/hooks/use-hooks-setup.ts
119810
- var import_react12 = __toESM(require_react(), 1);
119817
+ var import_react14 = __toESM(require_react(), 1);
119818
+
119819
+ // ../../packages/dashboard-core/src/hooks/use-label-filter.ts
119820
+ var import_react15 = __toESM(require_react(), 1);
119811
119821
 
119812
119822
  // ../../packages/dashboard-core/src/hooks/use-status.ts
119813
- var import_react13 = __toESM(require_react(), 1);
119823
+ var import_react16 = __toESM(require_react(), 1);
119814
119824
 
119815
119825
  // ../../packages/dashboard-core/src/components/ProjectList.tsx
119816
119826
  var import_core8 = __toESM(require_dist3(), 1);
119817
119827
  var import_sortable = __toESM(require_dist4(), 1);
119818
119828
  var import_utilities = __toESM(require_dist(), 1);
119819
- var import_react16 = __toESM(require_react(), 1);
119829
+ var import_react19 = __toESM(require_react(), 1);
119820
119830
 
119821
119831
  // ../../packages/dashboard-core/src/components/DeleteWorkspaceDialog.tsx
119822
- var import_jsx_runtime50 = __toESM(require_jsx_runtime(), 1);
119832
+ var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
119823
119833
 
119824
119834
  // ../../packages/dashboard-core/src/components/NewWorkspaceForm.tsx
119825
- var import_react14 = __toESM(require_react(), 1);
119826
- var import_jsx_runtime51 = __toESM(require_jsx_runtime(), 1);
119835
+ var import_react17 = __toESM(require_react(), 1);
119836
+ var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
119827
119837
 
119828
119838
  // ../../packages/dashboard-core/src/components/WorkspaceCard.tsx
119829
119839
  var import_lucide_react4 = __toESM(require_lucide_react(), 1);
119830
- var import_react15 = __toESM(require_react(), 1);
119840
+ var import_react18 = __toESM(require_react(), 1);
119831
119841
 
119832
119842
  // ../../packages/dashboard-core/src/components/GitStatusIndicator.tsx
119833
- var import_jsx_runtime52 = __toESM(require_jsx_runtime(), 1);
119843
+ var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
119834
119844
  function GitStatusIndicator({ git }) {
119835
119845
  const parts = [];
119836
119846
  if (git.conflict) {
@@ -119862,27 +119872,27 @@ function GitStatusIndicator({ git }) {
119862
119872
  });
119863
119873
  }
119864
119874
  if (parts.length === 0) return null;
119865
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(Tooltip2, { children: [
119866
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "inline-flex items-center gap-0.5 font-mono text-[11px] leading-none shrink-0", children: parts.map((p6) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: p6.color, children: p6.text }, p6.text)) }) }),
119867
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(TooltipContent2, { children: parts.map((p6) => p6.tooltip).join(", ") })
119875
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Tooltip2, { children: [
119876
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "inline-flex items-center gap-0.5 font-mono text-[11px] leading-none shrink-0 pr-0.5", children: parts.map((p6) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: p6.color, children: p6.text }, p6.text)) }) }),
119877
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TooltipContent2, { children: parts.map((p6) => p6.tooltip).join(", ") })
119868
119878
  ] });
119869
119879
  }
119870
119880
 
119871
119881
  // ../../packages/dashboard-core/src/components/SetupStatusIndicator.tsx
119872
119882
  var import_lucide_react3 = __toESM(require_lucide_react(), 1);
119873
- var import_jsx_runtime53 = __toESM(require_jsx_runtime(), 1);
119883
+ var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1);
119874
119884
  function SetupStatusIndicator({ setup }) {
119875
119885
  if (!setup) return null;
119876
119886
  if (setup.state === "running") {
119877
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Tooltip2, { children: [
119878
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react3.Loader, { className: "size-3.5 shrink-0 text-blue-600 dark:text-blue-400 animate-spin" }) }),
119879
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TooltipContent2, { side: "top", children: "Setting up workspace..." })
119887
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Tooltip2, { children: [
119888
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react3.Loader, { className: "size-3.5 shrink-0 text-blue-600 dark:text-blue-400 animate-spin" }) }),
119889
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipContent2, { side: "top", children: "Setting up workspace..." })
119880
119890
  ] });
119881
119891
  }
119882
119892
  if (setup.state === "failed") {
119883
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Tooltip2, { children: [
119884
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_lucide_react3.CircleAlert, { className: "size-3.5 shrink-0 text-red-600 dark:text-red-400" }) }),
119885
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(TooltipContent2, { side: "top", children: [
119893
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Tooltip2, { children: [
119894
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react3.CircleAlert, { className: "size-3.5 shrink-0 text-red-600 dark:text-red-400" }) }),
119895
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(TooltipContent2, { side: "top", children: [
119886
119896
  "Setup failed",
119887
119897
  setup.error ? `: ${setup.error}` : ""
119888
119898
  ] })
@@ -119892,8 +119902,8 @@ function SetupStatusIndicator({ setup }) {
119892
119902
  }
119893
119903
 
119894
119904
  // ../../packages/dashboard-core/src/components/WorkspaceCard.tsx
119895
- var import_jsx_runtime54 = __toESM(require_jsx_runtime(), 1);
119896
- var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
119905
+ var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
119906
+ var WorkspaceCard = (0, import_react18.memo)(function WorkspaceCard2({
119897
119907
  worktree,
119898
119908
  projectName,
119899
119909
  defaultBranch,
@@ -119901,12 +119911,11 @@ var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
119901
119911
  branchStatus,
119902
119912
  setupStatus,
119903
119913
  isFocused,
119904
- onShowDeleteDialog,
119905
- editMode
119914
+ onShowDeleteDialog
119906
119915
  }) {
119907
- const cardRef = (0, import_react15.useRef)(null);
119916
+ const cardRef = (0, import_react18.useRef)(null);
119908
119917
  const capabilities = useCapabilities();
119909
- (0, import_react15.useEffect)(() => {
119918
+ (0, import_react18.useEffect)(() => {
119910
119919
  if (isFocused) {
119911
119920
  cardRef.current?.scrollIntoView({ block: "nearest" });
119912
119921
  }
@@ -119928,7 +119937,7 @@ var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
119928
119937
  openWorkspace(workspaceId);
119929
119938
  }
119930
119939
  };
119931
- const className = `@container group flex flex-row items-center justify-between px-3 py-1 min-w-0 overflow-hidden cursor-pointer select-none transition-colors hover:bg-accent/50 ${isActive ? "bg-accent/50 border-l-2 border-l-primary" : ""} ${isFocused ? "ring-2 ring-inset ring-ring" : ""} ${href ? "no-underline text-inherit" : ""}`;
119940
+ const className = `@container group flex flex-row items-center justify-between pl-3 pr-2 py-1 min-w-0 overflow-hidden cursor-pointer select-none transition-colors hover:bg-accent/50 ${isActive ? "bg-accent/50 border-l-2 border-l-primary" : ""} ${isFocused ? "ring-2 ring-inset ring-ring" : ""} ${href ? "no-underline text-inherit" : ""}`;
119932
119941
  const containerProps = {
119933
119942
  ref: cardRef,
119934
119943
  className,
@@ -119961,12 +119970,12 @@ var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
119961
119970
  });
119962
119971
  }
119963
119972
  };
119964
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenu2, { children: [
119965
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { ...containerProps, children: [
119966
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Tooltip2, { children: [
119967
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
119968
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
119969
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
119973
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenu2, { children: [
119974
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { ...containerProps, children: [
119975
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Tooltip2, { children: [
119976
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
119977
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
119978
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
119970
119979
  "span",
119971
119980
  {
119972
119981
  className: `text-sm truncate ${isActive ? "font-semibold text-foreground" : "font-medium text-muted-foreground"}`,
@@ -119974,41 +119983,41 @@ var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
119974
119983
  }
119975
119984
  )
119976
119985
  ] }) }),
119977
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(TooltipContent2, { side: "top", children: worktree.branch })
119986
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(TooltipContent2, { side: "top", children: worktree.branch })
119978
119987
  ] }),
119979
- !editMode && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
119980
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SetupStatusIndicator, { setup: setupStatus }),
119981
- branchStatus && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(GitStatusIndicator, { git: branchStatus.git }),
119982
- branchStatus && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(CIStatusIndicator, { ci: branchStatus.ci })
119988
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "hidden @[10rem]:flex group-hover:flex items-center gap-2 shrink-0 ml-auto pl-2", children: [
119989
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SetupStatusIndicator, { setup: setupStatus }),
119990
+ branchStatus && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(GitStatusIndicator, { git: branchStatus.git }),
119991
+ branchStatus && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(CIStatusIndicator, { ci: branchStatus.ci })
119983
119992
  ] })
119984
119993
  ] }) }),
119985
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuContent2, { children: [
119986
- capabilities.copyPath && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => navigator.clipboard.writeText(worktree.path), children: [
119987
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.Clipboard, {}),
119994
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuContent2, { children: [
119995
+ capabilities.copyPath && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => navigator.clipboard.writeText(worktree.path), children: [
119996
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.Clipboard, {}),
119988
119997
  "Copy path"
119989
119998
  ] }),
119990
- capabilities.revealInFinder && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => capabilities.revealInFinder(worktree.path), children: [
119991
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.FolderOpen, {}),
119999
+ capabilities.revealInFinder && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => capabilities.revealInFinder(worktree.path), children: [
120000
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.FolderOpen, {}),
119992
120001
  "Open in Finder"
119993
120002
  ] }),
119994
- worktree.hasSetup && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "setup"), children: [
119995
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.Play, {}),
120003
+ worktree.hasSetup && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "setup"), children: [
120004
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.Play, {}),
119996
120005
  "Run setup"
119997
120006
  ] }),
119998
- worktree.hasTeardown && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "teardown"), children: [
119999
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.Square, {}),
120007
+ worktree.hasTeardown && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => runScript(worktree.path, "teardown"), children: [
120008
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.Square, {}),
120000
120009
  "Run teardown"
120001
120010
  ] }),
120002
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => gitPull(projectName, worktree.branch), children: [
120003
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.ArrowDownToLine, {}),
120011
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => gitPull(projectName, worktree.branch), children: [
120012
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.ArrowDownToLine, {}),
120004
120013
  "Git pull"
120005
120014
  ] }),
120006
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { onClick: () => gitPush(projectName, worktree.branch), children: [
120007
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.ArrowUpFromLine, {}),
120015
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { onClick: () => gitPush(projectName, worktree.branch), children: [
120016
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.ArrowUpFromLine, {}),
120008
120017
  "Git push"
120009
120018
  ] }),
120010
- worktree.branch !== defaultBranch && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(ContextMenuItem2, { variant: "destructive", onClick: handleDelete, children: [
120011
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_lucide_react4.Trash2, {}),
120019
+ worktree.branch !== defaultBranch && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(ContextMenuItem2, { variant: "destructive", onClick: handleDelete, children: [
120020
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_lucide_react4.Trash2, {}),
120012
120021
  "Delete workspace"
120013
120022
  ] })
120014
120023
  ] })
@@ -120016,57 +120025,57 @@ var WorkspaceCard = (0, import_react15.memo)(function WorkspaceCard2({
120016
120025
  });
120017
120026
 
120018
120027
  // ../../packages/dashboard-core/src/components/ProjectList.tsx
120019
- var import_jsx_runtime55 = __toESM(require_jsx_runtime(), 1);
120028
+ var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1);
120020
120029
 
120021
120030
  // ../../packages/dashboard-core/src/components/SettingsPage.tsx
120022
- var import_react18 = __toESM(require_react(), 1);
120031
+ var import_react21 = __toESM(require_react(), 1);
120023
120032
 
120024
120033
  // ../../packages/dashboard-core/src/lib/experimental-flags.ts
120025
- var import_react17 = __toESM(require_react(), 1);
120034
+ var import_react20 = __toESM(require_react(), 1);
120026
120035
 
120027
120036
  // ../../packages/dashboard-core/src/components/settings/SettingsRow.tsx
120028
- var import_jsx_runtime56 = __toESM(require_jsx_runtime(), 1);
120037
+ var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
120029
120038
 
120030
120039
  // ../../packages/dashboard-core/src/components/settings/SettingsSection.tsx
120031
- var import_jsx_runtime57 = __toESM(require_jsx_runtime(), 1);
120040
+ var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1);
120032
120041
 
120033
120042
  // ../../packages/dashboard-core/src/components/SettingsPage.tsx
120034
- var import_jsx_runtime58 = __toESM(require_jsx_runtime(), 1);
120043
+ var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
120035
120044
 
120036
120045
  // ../../packages/dashboard-core/src/components/DashboardShell.tsx
120037
- var import_jsx_runtime59 = __toESM(require_jsx_runtime(), 1);
120046
+ var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
120038
120047
  var isElectron = typeof window !== "undefined" && "__BAND_DESKTOP__" in window;
120039
120048
 
120040
120049
  // ../../packages/dashboard-core/src/components/DiffView.tsx
120041
120050
  init_dist4();
120042
- var import_react23 = __toESM(require_react(), 1);
120051
+ var import_react26 = __toESM(require_react(), 1);
120043
120052
 
120044
120053
  // ../../packages/dashboard-core/src/hooks/use-search.ts
120045
- var import_react20 = __toESM(require_react(), 1);
120054
+ var import_react23 = __toESM(require_react(), 1);
120046
120055
 
120047
120056
  // ../../packages/dashboard-core/src/components/ChangesFileTree.tsx
120048
- var import_react21 = __toESM(require_react(), 1);
120057
+ var import_react24 = __toESM(require_react(), 1);
120049
120058
 
120050
120059
  // ../../packages/dashboard-core/src/components/FileStatusBadge.tsx
120051
- var import_jsx_runtime60 = __toESM(require_jsx_runtime(), 1);
120060
+ var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
120052
120061
 
120053
120062
  // ../../packages/dashboard-core/src/components/ChangesFileTree.tsx
120054
- var import_jsx_runtime61 = __toESM(require_jsx_runtime(), 1);
120063
+ var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
120055
120064
 
120056
120065
  // ../../packages/dashboard-core/src/components/RevertFileDialog.tsx
120057
- var import_jsx_runtime62 = __toESM(require_jsx_runtime(), 1);
120066
+ var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1);
120058
120067
 
120059
120068
  // ../../packages/dashboard-core/src/components/SearchBar.tsx
120060
120069
  var import_lucide_react5 = __toESM(require_lucide_react(), 1);
120061
- var import_react22 = __toESM(require_react(), 1);
120062
- var import_jsx_runtime63 = __toESM(require_jsx_runtime(), 1);
120070
+ var import_react25 = __toESM(require_react(), 1);
120071
+ var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
120063
120072
  function ToggleButton({
120064
120073
  active,
120065
120074
  onClick,
120066
120075
  title,
120067
120076
  children
120068
120077
  }) {
120069
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
120078
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
120070
120079
  "button",
120071
120080
  {
120072
120081
  type: "button",
@@ -120077,7 +120086,7 @@ function ToggleButton({
120077
120086
  }
120078
120087
  );
120079
120088
  }
120080
- var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120089
+ var SearchBar = (0, import_react25.forwardRef)(function SearchBar2({
120081
120090
  query,
120082
120091
  onQueryChange,
120083
120092
  options: options2,
@@ -120089,27 +120098,27 @@ var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120089
120098
  onClose,
120090
120099
  className
120091
120100
  }, ref) {
120092
- const inputRef = (0, import_react22.useRef)(null);
120093
- (0, import_react22.useImperativeHandle)(ref, () => ({
120101
+ const inputRef = (0, import_react25.useRef)(null);
120102
+ (0, import_react25.useImperativeHandle)(ref, () => ({
120094
120103
  focus: () => inputRef.current?.focus(),
120095
120104
  select: () => inputRef.current?.select()
120096
120105
  }));
120097
- const toggleCase = (0, import_react22.useCallback)(() => {
120106
+ const toggleCase = (0, import_react25.useCallback)(() => {
120098
120107
  onOptionsChange({ ...options2, caseSensitive: !options2.caseSensitive });
120099
120108
  }, [options2, onOptionsChange]);
120100
- const toggleWholeWord = (0, import_react22.useCallback)(() => {
120109
+ const toggleWholeWord = (0, import_react25.useCallback)(() => {
120101
120110
  onOptionsChange({ ...options2, wholeWord: !options2.wholeWord });
120102
120111
  }, [options2, onOptionsChange]);
120103
- const toggleRegex = (0, import_react22.useCallback)(() => {
120112
+ const toggleRegex = (0, import_react25.useCallback)(() => {
120104
120113
  onOptionsChange({ ...options2, regex: !options2.regex });
120105
120114
  }, [options2, onOptionsChange]);
120106
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
120115
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
120107
120116
  "div",
120108
120117
  {
120109
120118
  className: `flex shrink-0 items-center gap-1.5 border-b border-border bg-muted/30 px-3 py-1.5 ${className ?? ""}`,
120110
120119
  children: [
120111
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
120112
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
120120
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.Search, { className: "size-3.5 shrink-0 text-muted-foreground" }),
120121
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
120113
120122
  "input",
120114
120123
  {
120115
120124
  ref: inputRef,
@@ -120130,11 +120139,11 @@ var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120130
120139
  }
120131
120140
  }
120132
120141
  ),
120133
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ToggleButton, { active: options2.caseSensitive, onClick: toggleCase, title: "Match Case", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.CaseSensitive, { className: "size-4" }) }),
120134
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ToggleButton, { active: options2.wholeWord, onClick: toggleWholeWord, title: "Match Whole Word", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.WholeWord, { className: "size-4" }) }),
120135
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ToggleButton, { active: options2.regex, onClick: toggleRegex, title: "Use Regular Expression", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.Regex, { className: "size-4" }) }),
120136
- matchInfo && query && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: matchInfo.total > 0 ? `${matchInfo.current} of ${matchInfo.total}` : "No results" }),
120137
- onPrevious && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
120142
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ToggleButton, { active: options2.caseSensitive, onClick: toggleCase, title: "Match Case", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.CaseSensitive, { className: "size-4" }) }),
120143
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ToggleButton, { active: options2.wholeWord, onClick: toggleWholeWord, title: "Match Whole Word", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.WholeWord, { className: "size-4" }) }),
120144
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ToggleButton, { active: options2.regex, onClick: toggleRegex, title: "Use Regular Expression", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.Regex, { className: "size-4" }) }),
120145
+ matchInfo && query && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "shrink-0 text-xs text-muted-foreground tabular-nums", children: matchInfo.total > 0 ? `${matchInfo.current} of ${matchInfo.total}` : "No results" }),
120146
+ onPrevious && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
120138
120147
  "button",
120139
120148
  {
120140
120149
  type: "button",
@@ -120142,10 +120151,10 @@ var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120142
120151
  disabled: !matchInfo || matchInfo.total === 0,
120143
120152
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
120144
120153
  title: "Previous match (Shift+Enter)",
120145
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.ChevronUp, { className: "size-3.5" })
120154
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.ChevronUp, { className: "size-3.5" })
120146
120155
  }
120147
120156
  ),
120148
- onNext && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
120157
+ onNext && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
120149
120158
  "button",
120150
120159
  {
120151
120160
  type: "button",
@@ -120153,17 +120162,17 @@ var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120153
120162
  disabled: !matchInfo || matchInfo.total === 0,
120154
120163
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground disabled:opacity-30",
120155
120164
  title: "Next match (Enter)",
120156
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.ChevronDown, { className: "size-3.5" })
120165
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.ChevronDown, { className: "size-3.5" })
120157
120166
  }
120158
120167
  ),
120159
- onClose && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
120168
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
120160
120169
  "button",
120161
120170
  {
120162
120171
  type: "button",
120163
120172
  onClick: onClose,
120164
120173
  className: "inline-flex size-6 items-center justify-center rounded text-muted-foreground hover:text-foreground",
120165
120174
  title: "Close (Escape)",
120166
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_lucide_react5.X, { className: "size-3.5" })
120175
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react5.X, { className: "size-3.5" })
120167
120176
  }
120168
120177
  )
120169
120178
  ]
@@ -120172,7 +120181,7 @@ var SearchBar = (0, import_react22.forwardRef)(function SearchBar2({
120172
120181
  });
120173
120182
 
120174
120183
  // ../../packages/dashboard-core/src/components/DiffView.tsx
120175
- var import_jsx_runtime64 = __toESM(require_jsx_runtime(), 1);
120184
+ var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
120176
120185
  var diffTheme = EditorView.theme({
120177
120186
  ".cm-insertedLine": { backgroundColor: "rgba(34, 197, 94, 0.1)" },
120178
120187
  ".cm-deletedLine": { backgroundColor: "rgba(239, 68, 68, 0.1)" },
@@ -120222,39 +120231,39 @@ var diffTheme = EditorView.theme({
120222
120231
  });
120223
120232
 
120224
120233
  // ../../packages/dashboard-core/src/components/FileBrowser.tsx
120225
- var import_react24 = __toESM(require_react(), 1);
120226
- var import_jsx_runtime65 = __toESM(require_jsx_runtime(), 1);
120234
+ var import_react27 = __toESM(require_react(), 1);
120235
+ var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
120227
120236
 
120228
120237
  // ../../packages/dashboard-core/src/components/FileViewer.tsx
120229
- var import_react26 = __toESM(require_react(), 1);
120238
+ var import_react29 = __toESM(require_react(), 1);
120230
120239
 
120231
120240
  // ../../packages/dashboard-core/src/components/ImagePreview.tsx
120232
- var import_react25 = __toESM(require_react(), 1);
120233
- var import_jsx_runtime66 = __toESM(require_jsx_runtime(), 1);
120241
+ var import_react28 = __toESM(require_react(), 1);
120242
+ var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
120234
120243
 
120235
120244
  // ../../packages/dashboard-core/src/components/PdfPreview.tsx
120236
- var import_jsx_runtime67 = __toESM(require_jsx_runtime(), 1);
120245
+ var import_jsx_runtime68 = __toESM(require_jsx_runtime(), 1);
120237
120246
 
120238
120247
  // ../../packages/dashboard-core/src/components/FileViewer.tsx
120239
- var import_jsx_runtime68 = __toESM(require_jsx_runtime(), 1);
120248
+ var import_jsx_runtime69 = __toESM(require_jsx_runtime(), 1);
120240
120249
 
120241
120250
  // ../../packages/dashboard-core/src/components/QuickOpenDialog.tsx
120242
- var import_react27 = __toESM(require_react(), 1);
120243
- var import_jsx_runtime69 = __toESM(require_jsx_runtime(), 1);
120251
+ var import_react30 = __toESM(require_react(), 1);
120252
+ var import_jsx_runtime70 = __toESM(require_jsx_runtime(), 1);
120244
120253
 
120245
120254
  // ../../packages/dashboard-core/src/components/SearchFilesDialog.tsx
120246
- var import_react28 = __toESM(require_react(), 1);
120247
- var import_jsx_runtime70 = __toESM(require_jsx_runtime(), 1);
120255
+ var import_react31 = __toESM(require_react(), 1);
120256
+ var import_jsx_runtime71 = __toESM(require_jsx_runtime(), 1);
120248
120257
 
120249
120258
  // ../../packages/dashboard-core/src/components/WorkspacePickerDialog.tsx
120250
- var import_react29 = __toESM(require_react(), 1);
120251
- var import_jsx_runtime71 = __toESM(require_jsx_runtime(), 1);
120259
+ var import_react32 = __toESM(require_react(), 1);
120260
+ var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
120252
120261
 
120253
120262
  // ../../packages/dashboard-core/src/components/WorkspaceTabNav.tsx
120254
- var import_jsx_runtime72 = __toESM(require_jsx_runtime(), 1);
120263
+ var import_jsx_runtime73 = __toESM(require_jsx_runtime(), 1);
120255
120264
 
120256
120265
  // ../../packages/dashboard-core/src/hooks/use-editor-history.ts
120257
- var import_react30 = __toESM(require_react(), 1);
120266
+ var import_react33 = __toESM(require_react(), 1);
120258
120267
 
120259
120268
  // ../../node_modules/.pnpm/marked@15.0.12/node_modules/marked/lib/marked.esm.js
120260
120269
  function _getDefaults() {
@@ -130386,6 +130395,10 @@ async function createMetadataAgent(agentId) {
130386
130395
  const config2 = getAgentConfig(bandHome(), agentId);
130387
130396
  return createCodingAgent(config2);
130388
130397
  }
130398
+ async function createWorkspaceAgent(worktreePath, agentId) {
130399
+ const config2 = getAgentConfig(worktreePath, agentId);
130400
+ return createCodingAgent(config2);
130401
+ }
130389
130402
  async function replaceAgent(chatId, worktreePath, agentId) {
130390
130403
  const existing = pool.get(chatId);
130391
130404
  if (existing?.agent.abort) {
@@ -130945,10 +130958,17 @@ async function syncWorktrees() {
130945
130958
  }
130946
130959
 
130947
130960
  // src/lib/branch-status-poller.ts
130948
- var POLL_INTERVAL_MS = 5e3;
130949
- var CI_POLL_TICKS = 6;
130961
+ var INTERVALS = {
130962
+ // 5 s git / 30 s CI — the original cadence, used when the user is actively looking at the UI on AC power.
130963
+ active: { pollMs: 5e3, ciTicks: 6 },
130964
+ // 30 s git / 3 min CI — window unfocused OR on battery (but not both).
130965
+ idle: { pollMs: 3e4, ciTicks: 6 },
130966
+ // 60 s git / 10 min CI — window unfocused AND on battery.
130967
+ background: { pollMs: 6e4, ciTicks: 10 }
130968
+ };
130950
130969
  var pollerTimer = null;
130951
130970
  var tickCount = 0;
130971
+ var currentActivity = "active";
130952
130972
  var repoInfoCache = /* @__PURE__ */ new Map();
130953
130973
  function getWorkspaces() {
130954
130974
  const state2 = loadState();
@@ -131099,7 +131119,7 @@ async function getBatchedCIStatuses(workspaces) {
131099
131119
  }
131100
131120
  async function pollTick() {
131101
131121
  tickCount++;
131102
- const isCITick = tickCount % CI_POLL_TICKS === 0;
131122
+ const isCITick = tickCount % INTERVALS[currentActivity].ciTicks === 0;
131103
131123
  if (tickCount === 1 || isCITick) {
131104
131124
  await syncWorktrees().catch((err) => console.error("syncWorktrees error:", err));
131105
131125
  }
@@ -131170,7 +131190,7 @@ function startBranchStatusPoller() {
131170
131190
  pollTick().catch((err) => console.error("Branch status poll error:", err));
131171
131191
  pollerTimer = setInterval(() => {
131172
131192
  pollTick().catch((err) => console.error("Branch status poll error:", err));
131173
- }, POLL_INTERVAL_MS);
131193
+ }, INTERVALS[currentActivity].pollMs);
131174
131194
  }
131175
131195
  function stopBranchStatusPoller() {
131176
131196
  if (pollerTimer) {
@@ -131178,6 +131198,20 @@ function stopBranchStatusPoller() {
131178
131198
  pollerTimer = null;
131179
131199
  }
131180
131200
  }
131201
+ function setPollerActivity(activity) {
131202
+ if (activity === currentActivity) return;
131203
+ currentActivity = activity;
131204
+ if (pollerTimer) {
131205
+ clearInterval(pollerTimer);
131206
+ tickCount = 0;
131207
+ pollerTimer = setInterval(() => {
131208
+ pollTick().catch((err) => console.error("Branch status poll error:", err));
131209
+ }, INTERVALS[activity].pollMs);
131210
+ }
131211
+ }
131212
+ function getPollerActivity() {
131213
+ return currentActivity;
131214
+ }
131181
131215
 
131182
131216
  // src/lib/setup-runner.ts
131183
131217
  import { spawn as spawn5 } from "node:child_process";
@@ -131652,9 +131686,9 @@ var PENDING_KEY2 = Symbol.for("band.pending-inputs");
131652
131686
  var g11 = globalThis;
131653
131687
  if (!g11[PENDING_KEY2]) g11[PENDING_KEY2] = /* @__PURE__ */ new Map();
131654
131688
  var pendingInputs = g11[PENDING_KEY2];
131655
- function createPendingInput(approvalId) {
131689
+ function createPendingInput(approvalId, workspaceId) {
131656
131690
  return new Promise((resolve8, reject) => {
131657
- pendingInputs.set(approvalId, { resolve: resolve8, reject });
131691
+ pendingInputs.set(approvalId, { resolve: resolve8, reject, workspaceId });
131658
131692
  });
131659
131693
  }
131660
131694
  function resolvePendingInput(approvalId, answers) {
@@ -131670,6 +131704,12 @@ function rejectAllPendingInputs(error40) {
131670
131704
  pending2.reject(error40);
131671
131705
  }
131672
131706
  }
131707
+ function hasPendingInputForWorkspace(workspaceId) {
131708
+ for (const pending2 of pendingInputs.values()) {
131709
+ if (pending2.workspaceId === workspaceId) return true;
131710
+ }
131711
+ return false;
131712
+ }
131673
131713
 
131674
131714
  // src/lib/task-store.ts
131675
131715
  init_src();
@@ -132074,7 +132114,7 @@ async function runTask(chatId, task) {
132074
132114
  });
132075
132115
  const needsAttention = upsertWorkspaceStatus(task.workspaceId, { status: "needs_attention" });
132076
132116
  emit({ kind: "update", status: needsAttention });
132077
- const answers = await createPendingInput(request.approvalId);
132117
+ const answers = await createPendingInput(request.approvalId, task.workspaceId);
132078
132118
  const restored = upsertWorkspaceStatus(task.workspaceId, { status: "working" });
132079
132119
  emit({ kind: "update", status: restored });
132080
132120
  return answers;
@@ -134580,7 +134620,7 @@ function attachSession(ws, terminalId, workspaceId, session, isNew) {
134580
134620
  }
134581
134621
  } catch {
134582
134622
  }
134583
- }, 1e3);
134623
+ }, 3e3);
134584
134624
  const exitDisposable = session.pty.onExit(({ exitCode }) => {
134585
134625
  clearInterval(processInterval);
134586
134626
  log18.debug("PTY exited with code %d for terminal %s", exitCode, terminalId);
@@ -142954,6 +142994,144 @@ var workspaceRouter = t2.router({
142954
142994
  }
142955
142995
  return { ok: true };
142956
142996
  }),
142997
+ gitPull: publicProcedure.input(external_exports2.object({ workspaceId: external_exports2.string() })).mutation(async ({ input }) => {
142998
+ const workspace = resolveWorkspace(input.workspaceId);
142999
+ if (!workspace) {
143000
+ throw new Error("Workspace not found");
143001
+ }
143002
+ const cwd = workspace.worktree.path;
143003
+ try {
143004
+ await execGit(["pull", "--rebase"], cwd);
143005
+ } catch (e2) {
143006
+ const msg = String(e2);
143007
+ if (msg.includes("Cannot rebase onto multiple branches")) {
143008
+ return { ok: true };
143009
+ }
143010
+ throw new Error(e2 instanceof Error ? e2.message : msg);
143011
+ }
143012
+ return { ok: true };
143013
+ }),
143014
+ gitPush: publicProcedure.input(external_exports2.object({ workspaceId: external_exports2.string() })).mutation(async ({ input }) => {
143015
+ const workspace = resolveWorkspace(input.workspaceId);
143016
+ if (!workspace) {
143017
+ throw new Error("Workspace not found");
143018
+ }
143019
+ const cwd = workspace.worktree.path;
143020
+ try {
143021
+ await execGit(["push"], cwd);
143022
+ } catch {
143023
+ let headBranch;
143024
+ try {
143025
+ headBranch = (await execGit(["rev-parse", "--abbrev-ref", "HEAD"], cwd)).trim();
143026
+ } catch {
143027
+ headBranch = workspace.worktree.branch;
143028
+ }
143029
+ try {
143030
+ await execGit(["push", "--set-upstream", "origin", headBranch], cwd);
143031
+ } catch (e2) {
143032
+ throw new Error(e2 instanceof Error ? e2.message : String(e2));
143033
+ }
143034
+ }
143035
+ return { ok: true };
143036
+ }),
143037
+ gitCommit: publicProcedure.input(
143038
+ external_exports2.object({
143039
+ workspaceId: external_exports2.string(),
143040
+ message: external_exports2.string().min(1, "commit message is required"),
143041
+ body: external_exports2.string().optional()
143042
+ })
143043
+ ).mutation(async ({ input }) => {
143044
+ const workspace = resolveWorkspace(input.workspaceId);
143045
+ if (!workspace) {
143046
+ throw new Error("Workspace not found");
143047
+ }
143048
+ const cwd = workspace.worktree.path;
143049
+ await execGit(["add", "-A"], cwd);
143050
+ const args = ["commit", "-m", input.message];
143051
+ const body = input.body?.trim();
143052
+ if (body) {
143053
+ args.push("-m", body);
143054
+ }
143055
+ try {
143056
+ await execGit(args, cwd);
143057
+ } catch (e2) {
143058
+ throw new Error(e2 instanceof Error ? e2.message : String(e2));
143059
+ }
143060
+ return { ok: true };
143061
+ }),
143062
+ generateCommitMessage: publicProcedure.input(external_exports2.object({ workspaceId: external_exports2.string() })).mutation(async ({ input }) => {
143063
+ const workspace = resolveWorkspace(input.workspaceId);
143064
+ if (!workspace) {
143065
+ throw new Error("Workspace not found");
143066
+ }
143067
+ const cwd = workspace.worktree.path;
143068
+ try {
143069
+ const status = await execGit(["status", "--porcelain"], cwd);
143070
+ if (!status.trim()) {
143071
+ throw new Error("No changes to summarise");
143072
+ }
143073
+ } catch (e2) {
143074
+ if (e2 instanceof Error && e2.message === "No changes to summarise") {
143075
+ throw e2;
143076
+ }
143077
+ }
143078
+ const settings = loadSettings();
143079
+ const agentDef = getAgentDefinition(settings);
143080
+ const prompt = [
143081
+ "You are running inside a git workspace. Write a commit message for the changes that are pending in this workspace right now.",
143082
+ "",
143083
+ "Steps:",
143084
+ " 1. Run `git status` and `git diff HEAD` (and `git diff --stat` if the diff is large) to understand what changed.",
143085
+ " 2. If helpful, read a few of the changed files or recent commits (`git log -5 --oneline`) to match the project's commit style.",
143086
+ " 3. Write a single commit message.",
143087
+ "",
143088
+ "Format:",
143089
+ " - First line: a concise subject (\u2264 72 chars), imperative mood, no trailing period.",
143090
+ " - Then a blank line.",
143091
+ " - Then a body that explains *why* the change is being made and any notable details.",
143092
+ "",
143093
+ "Output ONLY the final commit message as plain text \u2014 no markdown fences, no preamble, no commentary, no tool-call summaries. Do not modify any files."
143094
+ ].join("\n");
143095
+ let agent;
143096
+ try {
143097
+ agent = await createWorkspaceAgent(cwd, agentDef.id);
143098
+ } catch (e2) {
143099
+ throw new Error(
143100
+ `Failed to start coding agent "${agentDef.label}": ${e2 instanceof Error ? e2.message : String(e2)}`
143101
+ );
143102
+ }
143103
+ let lastTurnText = "";
143104
+ try {
143105
+ for await (const event of agent.runSession(prompt, void 0, {
143106
+ maxTurns: 8
143107
+ })) {
143108
+ if (event.type === "text-delta") {
143109
+ lastTurnText += event.text;
143110
+ } else if (event.type === "tool-result") {
143111
+ lastTurnText = "";
143112
+ } else if (event.type === "error") {
143113
+ throw new Error(event.message);
143114
+ }
143115
+ }
143116
+ } finally {
143117
+ agent.abort?.();
143118
+ }
143119
+ const cleaned = lastTurnText.trim();
143120
+ if (!cleaned) {
143121
+ throw new Error("Agent returned an empty response");
143122
+ }
143123
+ const lines = cleaned.split("\n");
143124
+ const subject = (lines.shift() ?? "").trim();
143125
+ while (lines.length > 0 && lines[0].trim() === "") {
143126
+ lines.shift();
143127
+ }
143128
+ const body = lines.join("\n").trim();
143129
+ return {
143130
+ message: subject,
143131
+ body,
143132
+ agentLabel: agentDef.label
143133
+ };
143134
+ }),
142957
143135
  listFiles: publicProcedure.input(external_exports2.object({ workspaceId: external_exports2.string(), path: external_exports2.string().default("") })).query(async ({ input }) => {
142958
143136
  const workspace = resolveWorkspace(input.workspaceId);
142959
143137
  if (!workspace) {
@@ -143479,7 +143657,15 @@ var servicesRouter = t2.router({
143479
143657
  };
143480
143658
  log23.debug({ result }, "services.health result");
143481
143659
  return result;
143482
- })
143660
+ }),
143661
+ // Activity level controls how often the branch-status poller fires.
143662
+ // Driven by the Electron main process based on window focus + power state.
143663
+ // See `apps/desktop/src/main/services/activity-monitor.ts`.
143664
+ setActivity: publicProcedure.input(external_exports2.object({ activity: external_exports2.enum(["active", "idle", "background"]) })).mutation(({ input }) => {
143665
+ setPollerActivity(input.activity);
143666
+ return { activity: input.activity };
143667
+ }),
143668
+ getActivity: publicProcedure.query(() => ({ activity: getPollerActivity() }))
143483
143669
  });
143484
143670
  var chatRouter = t2.router({
143485
143671
  answer: publicProcedure.input(external_exports2.object({ approvalId: external_exports2.string(), answers: external_exports2.record(external_exports2.string(), external_exports2.string()) })).mutation(({ input }) => {
@@ -143518,6 +143704,10 @@ var statusesRouter = t2.router({
143518
143704
  }
143519
143705
  return { ok: true };
143520
143706
  }
143707
+ if (hasPendingInputForWorkspace(input.workspaceId)) {
143708
+ emit({ kind: "update", status: existing });
143709
+ return { ok: true };
143710
+ }
143521
143711
  const status = upsertWorkspaceStatus(input.workspaceId, { status: "waiting" });
143522
143712
  emit({ kind: "update", status });
143523
143713
  return { ok: true };