@band-app/server 0.25.0 → 0.26.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 (159) hide show
  1. package/dist/client/assets/{DockviewBrowserContainer-C_SeGH4m.js → DockviewBrowserContainer-CNieygqn.js} +2 -2
  2. package/dist/client/assets/DockviewTerminalContainer-rpSQamnG.js +2 -0
  3. package/dist/client/assets/{TerminalPanel-DIvPtQ0C.js → TerminalPanel-BSSgNpJl.js} +1 -1
  4. package/dist/client/assets/{_basePickBy-WSEGU-48.js → _basePickBy-D4sc4sgx.js} +1 -1
  5. package/dist/client/assets/{_baseUniq-CISSY9JU.js → _baseUniq-CExXcLYT.js} +1 -1
  6. package/dist/client/assets/{arc-EYeeggGP.js → arc-BP7O8Ofj.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-VXUJARFQ-auNzMJHs.js → architectureDiagram-VXUJARFQ-CLeIf9de.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-VD42YOAC-BAxIVlzi.js → blockDiagram-VD42YOAC-GF1d7qvY.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-YG6GDRKO-BRGunjEV.js → c4Diagram-YG6GDRKO-CPOD-mTp.js} +1 -1
  10. package/dist/client/assets/channel-BAHGob6X.js +1 -0
  11. package/dist/client/assets/{chunk-4BX2VUAB-DD1K7aO0.js → chunk-4BX2VUAB-lgknUVTn.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-xhCYxBKG.js → chunk-55IACEB6-BZZgpdJp.js} +1 -1
  13. package/dist/client/assets/{chunk-B4BG7PRW-BRcHAc7V.js → chunk-B4BG7PRW-D5j_7n78.js} +1 -1
  14. package/dist/client/assets/{chunk-DI55MBZ5-C5AoviQd.js → chunk-DI55MBZ5-CNWAKrv-.js} +1 -1
  15. package/dist/client/assets/{chunk-FMBD7UC4-CelHUigz.js → chunk-FMBD7UC4-C4ZfwGxd.js} +1 -1
  16. package/dist/client/assets/{chunk-QN33PNHL-nQBPkq6v.js → chunk-QN33PNHL-B-1Abtg1.js} +1 -1
  17. package/dist/client/assets/{chunk-QZHKN3VN-IXkzzmtV.js → chunk-QZHKN3VN-BpzKtAWD.js} +1 -1
  18. package/dist/client/assets/{chunk-TZMSLE5B-kYboanfD.js → chunk-TZMSLE5B-SXcvrXdW.js} +1 -1
  19. package/dist/client/assets/classDiagram-2ON5EDUG-_5AM6YM0.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-WZHVMYZB-_5AM6YM0.js +1 -0
  21. package/dist/client/assets/clone-C12DbMN-.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-xs2qxNxB.js → cose-bilkent-S5V4N54A-Bct5sd16.js} +1 -1
  23. package/dist/client/assets/{dagre-6UL2VRFP-Cs2kFqLw.js → dagre-6UL2VRFP-DLF3mura.js} +1 -1
  24. package/dist/client/assets/{diagram-PSM6KHXK-CL0KNaAN.js → diagram-PSM6KHXK-ChWVmXI7.js} +1 -1
  25. package/dist/client/assets/{diagram-QEK2KX5R-bojH3Fje.js → diagram-QEK2KX5R-DhzUuHM4.js} +1 -1
  26. package/dist/client/assets/{diagram-S2PKOQOG-CR3NnSCV.js → diagram-S2PKOQOG-D1i0mdIg.js} +1 -1
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-B1PLdIwn.js → erDiagram-Q2GNP2WA-BRj386XH.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-C5YhU0Qh.js → flowDiagram-NV44I4VS-DStEWZIF.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-CT-ZyTN-.js → ganttDiagram-JELNMOA3-B9PBn8dz.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-BJOR_jnq.js → gitGraphDiagram-V2S2FVAM-laJAIbJ3.js} +1 -1
  31. package/dist/client/assets/{graph-pEXzxzGm.js → graph-CbQhcBO1.js} +1 -1
  32. package/dist/client/assets/{highlighted-body-B3W2YXNL-DkAr8YBH.js → highlighted-body-B3W2YXNL-DBxcPCX_.js} +1 -1
  33. package/dist/client/assets/{index-DrAxRehm.js → index-86TW9gUX.js} +1 -1
  34. package/dist/client/assets/{index-CjLUJG6j.js → index-9XCTqmje.js} +1 -1
  35. package/dist/client/assets/{index-BrhTwhg3.js → index-BqMDNoZp.js} +1 -1
  36. package/dist/client/assets/{index-BTh70HvG.js → index-BzwcSYCa.js} +1 -1
  37. package/dist/client/assets/{index-BtupbjWj.js → index-C5U256M6.js} +1 -1
  38. package/dist/client/assets/{index-DvKArr4F.js → index-CK16S7B-.js} +1 -1
  39. package/dist/client/assets/{index-Bsj04x6y.js → index-CLa-0ZwC.js} +1 -1
  40. package/dist/client/assets/{index-BvTVbNia.js → index-CWLwMHnR.js} +1 -1
  41. package/dist/client/assets/{index-Cy1ivKKB.js → index-Cd26dS4P.js} +1 -1
  42. package/dist/client/assets/{index-BGzaO0X8.js → index-Cd5F9rkU.js} +1 -1
  43. package/dist/client/assets/{index-CUvVSQUr.js → index-CfO5yuew.js} +1 -1
  44. package/dist/client/assets/{index-kS9W4-gd.js → index-Ct5D5rHM.js} +1 -1
  45. package/dist/client/assets/{index-unEuBThJ.js → index-CyO2GJFA.js} +1 -1
  46. package/dist/client/assets/{index-abHZx3iS.js → index-D7C86bYw.js} +1 -1
  47. package/dist/client/assets/{index-3n8Vw-Mx.js → index-DGvFFhe0.js} +1 -1
  48. package/dist/client/assets/{index-DW-oXjA-.js → index-Dev2D0I9.js} +1 -1
  49. package/dist/client/assets/{index-Bc4l--Pr.js → index-DsEib-PT.js} +1 -1
  50. package/dist/client/assets/{index-C-44kyj4.js → index-cRf4PoQf.js} +1 -1
  51. package/dist/client/assets/{infoDiagram-HS3SLOUP-BFYSEig3.js → infoDiagram-HS3SLOUP-0QLwbPV-.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BxYsQaMT.js → journeyDiagram-XKPGCS4Q-xGdny9DO.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3W4ZIXB7-Bv-pDWZ-.js → kanban-definition-3W4ZIXB7-Don0Okra.js} +1 -1
  54. package/dist/client/assets/{layout-B77NnSO1.js → layout-WN5NQdX3.js} +1 -1
  55. package/dist/client/assets/{main-5cZqr4FX.js → main-Bbh731ex.js} +221 -221
  56. package/dist/client/assets/main-DpPgdfV2.css +1 -0
  57. package/dist/client/assets/{mindmap-definition-VGOIOE7T-CgxHuURf.js → mindmap-definition-VGOIOE7T-CWF6i4Zi.js} +1 -1
  58. package/dist/client/assets/{pieDiagram-ADFJNKIX-DMT2s9he.js → pieDiagram-ADFJNKIX-CXk9oMu_.js} +1 -1
  59. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-BXabhtC0.js → quadrantDiagram-AYHSOK5B-D2s0zA4_.js} +1 -1
  60. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DTW7rlcB.js → requirementDiagram-UZGBJVZJ-B5g3eZDa.js} +1 -1
  61. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BcCwFhUF.js → sankeyDiagram-TZEHDZUN-BKYy9nLE.js} +1 -1
  62. package/dist/client/assets/{sequenceDiagram-WL72ISMW-pM8Di5We.js → sequenceDiagram-WL72ISMW-Of-7JsaP.js} +1 -1
  63. package/dist/client/assets/{square-terminal-DKjKKzzC.js → square-terminal-wqR_rG8g.js} +1 -1
  64. package/dist/client/assets/{stateDiagram-FKZM4ZOC-Daqd80Rx.js → stateDiagram-FKZM4ZOC-CLygxzeu.js} +1 -1
  65. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-D3J4rLvX.js +1 -0
  66. package/dist/client/assets/{timeline-definition-IT6M3QCI-B528DtkS.js → timeline-definition-IT6M3QCI-HEdTZ9lg.js} +1 -1
  67. package/dist/client/assets/{treemap-GDKQZRPO-CSzjIbPP.js → treemap-GDKQZRPO-BLCSYUuQ.js} +1 -1
  68. package/dist/client/assets/{workspace._workspaceId-CDQS6YxL.js → workspace._workspaceId-9mP5lL7t.js} +2 -2
  69. package/dist/client/assets/{workspace._workspaceId-DlHLgF3G.js → workspace._workspaceId-CvIXlcVP.js} +1 -1
  70. package/dist/client/assets/{xychartDiagram-PRI3JC2R-CZehTq19.js → xychartDiagram-PRI3JC2R-Da4m2pn4.js} +1 -1
  71. package/dist/server/assets/{DockviewBrowserContainer-NHSxR-nz.js → DockviewBrowserContainer-BxukCnRj.js} +14 -9
  72. package/dist/server/assets/{DockviewTerminalContainer-CTJJUByH.js → DockviewTerminalContainer-DQYYK-79.js} +16 -11
  73. package/dist/server/assets/{TerminalPanel-BiNP-nsL.js → TerminalPanel-TU2tfPvh.js} +1 -1
  74. package/dist/server/assets/{_basePickBy-C563KIXw.js → _basePickBy-BSdtfHB0.js} +2 -2
  75. package/dist/server/assets/{_baseUniq-d93HSS0F.js → _baseUniq-DkSqb3YR.js} +1 -1
  76. package/dist/server/assets/_tanstack-start-manifest_v-CjnZwsJN.js +4 -0
  77. package/dist/server/assets/{arc-jtTutH-i.js → arc-DxGkupwT.js} +1 -1
  78. package/dist/server/assets/{architecture-7HQA4BMR-DQzLgw80.js → architecture-7HQA4BMR-N3irVT54.js} +6 -6
  79. package/dist/server/assets/{architectureDiagram-VXUJARFQ-DrNJMIEJ.js → architectureDiagram-VXUJARFQ-B0sHbG9y.js} +6 -6
  80. package/dist/server/assets/{blockDiagram-VD42YOAC-WUFdSkGk.js → blockDiagram-VD42YOAC-1FtDdqBo.js} +6 -6
  81. package/dist/server/assets/{c4Diagram-YG6GDRKO-B3FexEXR.js → c4Diagram-YG6GDRKO-Bw9IfZMM.js} +2 -2
  82. package/dist/server/assets/{channel-CGY9wImP.js → channel-D4IKgr-x.js} +1 -1
  83. package/dist/server/assets/{chunk-4BX2VUAB-DWhvAfOu.js → chunk-4BX2VUAB-ByMuI7Fp.js} +1 -1
  84. package/dist/server/assets/{chunk-55IACEB6-D9KMaGKQ.js → chunk-55IACEB6-BAdInBZF.js} +1 -1
  85. package/dist/server/assets/{chunk-B4BG7PRW-Bdi0b8I3.js → chunk-B4BG7PRW-C8vV9ouR.js} +4 -4
  86. package/dist/server/assets/{chunk-DI55MBZ5-CvFVKOgG.js → chunk-DI55MBZ5-BnPjxwDt.js} +3 -3
  87. package/dist/server/assets/{chunk-FMBD7UC4-CEf8TJeK.js → chunk-FMBD7UC4-DxER1-MJ.js} +1 -1
  88. package/dist/server/assets/{chunk-QN33PNHL-CmOqP24j.js → chunk-QN33PNHL-DzFGKjvS.js} +1 -1
  89. package/dist/server/assets/{chunk-QZHKN3VN-uFFM4Cjm.js → chunk-QZHKN3VN-DKIreZRT.js} +1 -1
  90. package/dist/server/assets/{chunk-TZMSLE5B-DH8QxQUD.js → chunk-TZMSLE5B-Dyw_E6V-.js} +1 -1
  91. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-Dr94MNeD.js → classDiagram-2ON5EDUG-Bu-X2Gbw.js} +5 -5
  92. package/dist/server/assets/{classDiagram-2ON5EDUG-Dr94MNeD.js → classDiagram-v2-WZHVMYZB-Bu-X2Gbw.js} +5 -5
  93. package/dist/server/assets/{clone-DESSLwZZ.js → clone-CwBTz6wc.js} +1 -1
  94. package/dist/server/assets/{cose-bilkent-S5V4N54A-B-Bym2R2.js → cose-bilkent-S5V4N54A-BsFFjtud.js} +1 -1
  95. package/dist/server/assets/{dagre-6UL2VRFP-CJdhKZlX.js → dagre-6UL2VRFP-CdgGxkBj.js} +6 -6
  96. package/dist/server/assets/{diagram-PSM6KHXK-Bku5j6_i.js → diagram-PSM6KHXK-C-LWq-ju.js} +7 -7
  97. package/dist/server/assets/{diagram-QEK2KX5R-CUdsg8PG.js → diagram-QEK2KX5R-CFa3sLiJ.js} +6 -6
  98. package/dist/server/assets/{diagram-S2PKOQOG-DfZmENnB.js → diagram-S2PKOQOG-CyAHBi5H.js} +6 -6
  99. package/dist/server/assets/{erDiagram-Q2GNP2WA-DgXGwPJi.js → erDiagram-Q2GNP2WA-COrhvUZD.js} +4 -4
  100. package/dist/server/assets/{flowDiagram-NV44I4VS-CCKE-dcR.js → flowDiagram-NV44I4VS-DxR9v2a8.js} +5 -5
  101. package/dist/server/assets/{ganttDiagram-JELNMOA3-Df1I84HD.js → ganttDiagram-JELNMOA3-COoz3lCc.js} +1 -1
  102. package/dist/server/assets/{gitGraph-G5XIXVHT-Da1EJY5L.js → gitGraph-G5XIXVHT-BtVXZr1d.js} +6 -6
  103. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-BoLIFjNj.js → gitGraphDiagram-V2S2FVAM-DrH_1hhd.js} +7 -7
  104. package/dist/server/assets/{graph-CzqmmHH7.js → graph-BqKB55Uo.js} +2 -2
  105. package/dist/server/assets/{highlighted-body-B3W2YXNL-D44laf8J.js → highlighted-body-B3W2YXNL-C6VVTevi.js} +1 -1
  106. package/dist/server/assets/{index-DYATP6mi.js → index-BHRz1U1c.js} +2 -2
  107. package/dist/server/assets/{index-CkCmjvnL.js → index-BUnwtpbx.js} +3 -3
  108. package/dist/server/assets/{index-B9n0dcMw.js → index-Bkx5Foei.js} +4 -4
  109. package/dist/server/assets/{index-DURk6tcR.js → index-BvmYCz2n.js} +2 -2
  110. package/dist/server/assets/{index-BbSejcCZ.js → index-CQ12PKsH.js} +2 -2
  111. package/dist/server/assets/{index-CA1ILOaa.js → index-Cdu8cpPJ.js} +2 -2
  112. package/dist/server/assets/{index-CU2q4Svg.js → index-ChJXmItC.js} +2 -2
  113. package/dist/server/assets/{index-DoPHl__N.js → index-CkbMi8ML.js} +2 -2
  114. package/dist/server/assets/{index-C6mmT4Bf.js → index-DAqzmsPy.js} +1 -1
  115. package/dist/server/assets/{index-CR4BnEcT.js → index-DIZ-5H2r.js} +3 -3
  116. package/dist/server/assets/{index-DM7tck_E.js → index-DLOoQUcR.js} +2 -2
  117. package/dist/server/assets/{index-B-dHru1q.js → index-DeNkOFC0.js} +5 -5
  118. package/dist/server/assets/{index-gZfWBVgm.js → index-DgpTNIz9.js} +2 -2
  119. package/dist/server/assets/{index-DdEGElQC.js → index-Dnp4nLLc.js} +2 -2
  120. package/dist/server/assets/{index-BVZPT41S.js → index-FVQ1p-ZQ.js} +5 -5
  121. package/dist/server/assets/{index-CbnRNXnI.js → index-IxUUG90S.js} +1 -1
  122. package/dist/server/assets/{index-Bgh1V0xV.js → index-fzh31gPI.js} +2 -2
  123. package/dist/server/assets/{index-JQz2Ac_X.js → index-nrGOopfX.js} +2 -2
  124. package/dist/server/assets/{info-VBDWY6EO-CraK2qik.js → info-VBDWY6EO-C1EJd9ah.js} +6 -6
  125. package/dist/server/assets/{infoDiagram-HS3SLOUP-m71IJidm.js → infoDiagram-HS3SLOUP-BgR_JFRD.js} +5 -5
  126. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-Z2B632R6.js → journeyDiagram-XKPGCS4Q-TInLDEBY.js} +4 -4
  127. package/dist/server/assets/{kanban-definition-3W4ZIXB7-B2vyxAFc.js → kanban-definition-3W4ZIXB7-Ds9-Rky6.js} +2 -2
  128. package/dist/server/assets/{layout-Ciol0TI8.js → layout-02chZ-oO.js} +4 -4
  129. package/dist/server/assets/{mermaid-3ZIDBTTL-m_-3aBOO.js → mermaid-3ZIDBTTL-CF0njLRi.js} +1 -1
  130. package/dist/server/assets/{mermaid-parser.core-DsRAodK1.js → mermaid-parser.core-DGyqTX8L.js} +11 -11
  131. package/dist/server/assets/{mindmap-definition-VGOIOE7T-B9LDAkQV.js → mindmap-definition-VGOIOE7T-B2VHBojz.js} +3 -3
  132. package/dist/server/assets/{packet-DYOGHKS2-CU0Rnzfp.js → packet-DYOGHKS2-BPQQ4vpy.js} +6 -6
  133. package/dist/server/assets/{pie-VRWISCQL-DAKQG59I.js → pie-VRWISCQL-D_ISlmZV.js} +6 -6
  134. package/dist/server/assets/{pieDiagram-ADFJNKIX-C895xIIt.js → pieDiagram-ADFJNKIX-DfLOLRYh.js} +7 -7
  135. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-6UAdibo5.js → quadrantDiagram-AYHSOK5B-C-S0tUnS.js} +1 -1
  136. package/dist/server/assets/{radar-ZZBFDIW7-CSkyNl40.js → radar-ZZBFDIW7-Btz0_zMX.js} +6 -6
  137. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-C9qwWXGY.js → requirementDiagram-UZGBJVZJ-CX-LPkZO.js} +3 -3
  138. package/dist/server/assets/{router-B9BGcvPs.js → router-6QHcrvmQ.js} +471 -281
  139. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-BD3BjmcP.js → sankeyDiagram-TZEHDZUN-C3bzmTeJ.js} +1 -1
  140. package/dist/server/assets/{sequenceDiagram-WL72ISMW-CaRznm1o.js → sequenceDiagram-WL72ISMW-BlZBlq8N.js} +3 -3
  141. package/dist/server/assets/{square-terminal-CuW8JOAZ.js → square-terminal-1wS601vv.js} +1 -1
  142. package/dist/server/assets/{stateDiagram-FKZM4ZOC-C7925k-i.js → stateDiagram-FKZM4ZOC-BIRMcaiS.js} +8 -8
  143. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-C0yapgJL.js → stateDiagram-v2-4FDKWEC3-D2NYWxQw.js} +4 -4
  144. package/dist/server/assets/{timeline-definition-IT6M3QCI-DfwL9TFo.js → timeline-definition-IT6M3QCI-BiY_XUAp.js} +2 -2
  145. package/dist/server/assets/{treemap-GDKQZRPO-kKnTHSv2.js → treemap-GDKQZRPO-CYGEAd8a.js} +6 -6
  146. package/dist/server/assets/{workspace._workspaceId-BK83HsBK.js → workspace._workspaceId-CHMs1pW4.js} +1 -1
  147. package/dist/server/assets/{workspace._workspaceId-DEWHh9LI.js → workspace._workspaceId-MLWQzLSj.js} +3 -3
  148. package/dist/server/assets/{xychartDiagram-PRI3JC2R-CfUYiueD.js → xychartDiagram-PRI3JC2R-Cv8buTCr.js} +1 -1
  149. package/dist/server/server.js +2 -2
  150. package/dist/start-server.mjs +69 -6
  151. package/package.json +4 -4
  152. package/dist/client/assets/DockviewTerminalContainer-CnyEPngk.js +0 -2
  153. package/dist/client/assets/channel-mz7YKOQ7.js +0 -1
  154. package/dist/client/assets/classDiagram-2ON5EDUG-khRtU3oZ.js +0 -1
  155. package/dist/client/assets/classDiagram-v2-WZHVMYZB-khRtU3oZ.js +0 -1
  156. package/dist/client/assets/clone-D_zAu_UU.js +0 -1
  157. package/dist/client/assets/main-DOmWiUwE.css +0 -1
  158. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BCaxpIKa.js +0 -1
  159. package/dist/server/assets/_tanstack-start-manifest_v-D7mA2JWN.js +0 -4
@@ -1,5 +1,5 @@
1
1
  var _a, _b, _c;
2
- import { ab as setDiagramTitle, ac as getDiagramTitle, M as setAccDescription, O as getAccDescription, U as setAccTitle, S as getAccTitle, _ as __name, V as getConfig2, ai as defaultConfig2, W as select, bY as ordinal, aX as setupGraphViewbox, ah as clear, a4 as common_default } from "./router-B9BGcvPs.js";
2
+ import { ab as setDiagramTitle, ac as getDiagramTitle, M as setAccDescription, O as getAccDescription, U as setAccTitle, S as getAccTitle, _ as __name, V as getConfig2, ai as defaultConfig2, W as select, bY as ordinal, aX as setupGraphViewbox, ah as clear, a4 as common_default } from "./router-6QHcrvmQ.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -1,7 +1,7 @@
1
1
  var _a;
2
- import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, c as drawEmbeddedImage, e as drawImage } from "./chunk-TZMSLE5B-DH8QxQUD.js";
3
- import { _ as __name, a7 as setConfig2, V as getConfig2, W as select, Y as log, a2 as distExports, Z as configureSvgSize, $ as assignWithDepth_default, a4 as common_default, U as setAccTitle, M as setAccDescription, ab as setDiagramTitle, S as getAccTitle, O as getAccDescription, ac as getDiagramTitle, ad as load, ae as JSON_SCHEMA, ah as clear, a1 as sanitizeText, aa as utils_default, aO as hasKatex, aP as calculateMathMLDimensions, aQ as parseFontSize, aR as ZERO_WIDTH_SPACE, aS as getUrl, aT as renderKatexSanitized, aq as getConfig } from "./router-B9BGcvPs.js";
4
- import { I as ImperativeState } from "./chunk-QZHKN3VN-uFFM4Cjm.js";
2
+ import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, c as drawEmbeddedImage, e as drawImage } from "./chunk-TZMSLE5B-Dyw_E6V-.js";
3
+ import { _ as __name, a7 as setConfig2, V as getConfig2, W as select, Y as log, a2 as distExports, Z as configureSvgSize, $ as assignWithDepth_default, a4 as common_default, U as setAccTitle, M as setAccDescription, ab as setDiagramTitle, S as getAccTitle, O as getAccDescription, ac as getDiagramTitle, ad as load, ae as JSON_SCHEMA, ah as clear, a1 as sanitizeText, aa as utils_default, aO as hasKatex, aP as calculateMathMLDimensions, aQ as parseFontSize, aR as ZERO_WIDTH_SPACE, aS as getUrl, aT as renderKatexSanitized, aq as getConfig } from "./router-6QHcrvmQ.js";
4
+ import { I as ImperativeState } from "./chunk-QZHKN3VN-DKIreZRT.js";
5
5
  import "../server.js";
6
6
  import "node:async_hooks";
7
7
  import "node:stream";
@@ -1,4 +1,4 @@
1
- import { m as createLucideIcon } from "./router-B9BGcvPs.js";
1
+ import { m as createLucideIcon } from "./router-6QHcrvmQ.js";
2
2
  const __iconNode = [
3
3
  ["path", { d: "m7 11 2-2-2-2", key: "1lz0vl" }],
4
4
  ["path", { d: "M11 13h4", key: "1p7l4v" }],
@@ -1,9 +1,9 @@
1
- import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-CvFVKOgG.js";
2
- import { _ as __name, V as getConfig2, W as select, Y as log, Z as configureSvgSize, a4 as common_default, aN as line, aV as curveBasis, aS as getUrl, aa as utils_default } from "./router-B9BGcvPs.js";
3
- import { G as Graph } from "./graph-CzqmmHH7.js";
4
- import { l as layout } from "./layout-Ciol0TI8.js";
5
- import "./chunk-55IACEB6-D9KMaGKQ.js";
6
- import "./chunk-QN33PNHL-CmOqP24j.js";
1
+ import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-BnPjxwDt.js";
2
+ import { _ as __name, V as getConfig2, W as select, Y as log, Z as configureSvgSize, a4 as common_default, aN as line, aV as curveBasis, aS as getUrl, aa as utils_default } from "./router-6QHcrvmQ.js";
3
+ import { G as Graph } from "./graph-BqKB55Uo.js";
4
+ import { l as layout } from "./layout-02chZ-oO.js";
5
+ import "./chunk-55IACEB6-BAdInBZF.js";
6
+ import "./chunk-QN33PNHL-DzFGKjvS.js";
7
7
  import "../server.js";
8
8
  import "node:async_hooks";
9
9
  import "node:stream";
@@ -15,8 +15,8 @@ import "node:stream/web";
15
15
  import "node:process";
16
16
  import "node:path";
17
17
  import "node:url";
18
- import "./_baseUniq-d93HSS0F.js";
19
- import "./_basePickBy-C563KIXw.js";
18
+ import "./_baseUniq-DkSqb3YR.js";
19
+ import "./_basePickBy-BSdtfHB0.js";
20
20
  var drawStartState = /* @__PURE__ */ __name((g) => g.append("circle").attr("class", "start-state").attr("r", getConfig2().state.sizeUnit).attr("cx", getConfig2().state.padding + getConfig2().state.sizeUnit).attr("cy", getConfig2().state.padding + getConfig2().state.sizeUnit), "drawStartState");
21
21
  var drawDivider = /* @__PURE__ */ __name((g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig2().state.textHeight).attr("class", "divider").attr("x2", getConfig2().state.textHeight * 2).attr("y1", 0).attr("y2", 0), "drawDivider");
22
22
  var drawSimpleState = /* @__PURE__ */ __name((g, stateDef) => {
@@ -1,7 +1,7 @@
1
- import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-CvFVKOgG.js";
2
- import { _ as __name } from "./router-B9BGcvPs.js";
3
- import "./chunk-55IACEB6-D9KMaGKQ.js";
4
- import "./chunk-QN33PNHL-CmOqP24j.js";
1
+ import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-BnPjxwDt.js";
2
+ import { _ as __name } from "./router-6QHcrvmQ.js";
3
+ import "./chunk-55IACEB6-BAdInBZF.js";
4
+ import "./chunk-QN33PNHL-DzFGKjvS.js";
5
5
  import "../server.js";
6
6
  import "node:async_hooks";
7
7
  import "node:stream";
@@ -1,5 +1,5 @@
1
- import { _ as __name, V as getConfig2, Y as log, W as select, aX as setupGraphViewbox, aY as isDark, aZ as lighten, a_ as darken, am as __export, a$ as commonDb_exports, ah as clear } from "./router-B9BGcvPs.js";
2
- import { d as d3arc } from "./arc-jtTutH-i.js";
1
+ import { _ as __name, V as getConfig2, Y as log, W as select, aX as setupGraphViewbox, aY as isDark, aZ as lighten, a_ as darken, am as __export, a$ as commonDb_exports, ah as clear } from "./router-6QHcrvmQ.js";
2
+ import { d as d3arc } from "./arc-DxGkupwT.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -1,6 +1,6 @@
1
- import { h as createTreemapServices } from "./mermaid-parser.core-DsRAodK1.js";
2
- import { T } from "./mermaid-parser.core-DsRAodK1.js";
3
- import "./router-B9BGcvPs.js";
1
+ import { h as createTreemapServices } from "./mermaid-parser.core-DGyqTX8L.js";
2
+ import { T } from "./mermaid-parser.core-DGyqTX8L.js";
3
+ import "./router-6QHcrvmQ.js";
4
4
  import "../server.js";
5
5
  import "node:async_hooks";
6
6
  import "node:stream";
@@ -12,9 +12,9 @@ import "node:stream/web";
12
12
  import "node:process";
13
13
  import "node:path";
14
14
  import "node:url";
15
- import "./_baseUniq-d93HSS0F.js";
16
- import "./_basePickBy-C563KIXw.js";
17
- import "./clone-DESSLwZZ.js";
15
+ import "./_baseUniq-DkSqb3YR.js";
16
+ import "./_basePickBy-BSdtfHB0.js";
17
+ import "./clone-CwBTz6wc.js";
18
18
  import "path";
19
19
  import "os";
20
20
  import "net";
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../server.js";
2
- import { R as Route, a as Navigate } from "./router-B9BGcvPs.js";
2
+ import { R as Route, a as Navigate } from "./router-6QHcrvmQ.js";
3
3
  import "node:async_hooks";
4
4
  import "node:stream";
5
5
  import "util";
@@ -1,6 +1,6 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "../server.js";
2
- import { bZ as Root, b_ as Content, b$ as Close, X, c0 as cn, c1 as Title, c2 as Description, c3 as Portal, c4 as Overlay, bS as MessageSquare, c5 as GitCompare, c6 as FolderOpen, R as Route, bT as useIsDesktop, c7 as useDashboardStore, bW as isDesktop, p as trpc, c8 as DesktopDragRegion, c9 as Menu, ca as ChevronsUpDown, cb as DiffView, cc as CodeBrowserView, cd as QuickOpenDialog, ce as SearchFilesDialog, cf as WorkspacePickerDialog, bU as ToolbarOverflowProvider, bQ as DashboardShell, bV as ToolbarActionBar, cg as useDiffTarget, ch as useSettingsQuery, ci as agentTypeSupportsSessionListing, cj as ChatView } from "./router-B9BGcvPs.js";
3
- import { S as SquareTerminal } from "./square-terminal-CuW8JOAZ.js";
2
+ import { bZ as Root, b_ as Content, b$ as Close, X, c0 as cn, c1 as Title, c2 as Description, c3 as Portal, c4 as Overlay, bS as MessageSquare, c5 as GitCompare, c6 as FolderOpen, R as Route, bT as useIsDesktop, c7 as useDashboardStore, bW as isDesktop, p as trpc, c8 as DesktopDragRegion, c9 as Menu, ca as ChevronsUpDown, cb as DiffView, cc as CodeBrowserView, cd as QuickOpenDialog, ce as SearchFilesDialog, cf as WorkspacePickerDialog, bU as ToolbarOverflowProvider, bQ as DashboardShell, bV as ToolbarActionBar, cg as useDiffTarget, ch as useSettingsQuery, ci as agentTypeSupportsSessionListing, cj as ChatView } from "./router-6QHcrvmQ.js";
3
+ import { S as SquareTerminal } from "./square-terminal-1wS601vv.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
6
6
  import "util";
@@ -146,7 +146,7 @@ const SessionListContext = reactExports.createContext({
146
146
  function useSessionListContext() {
147
147
  return reactExports.useContext(SessionListContext);
148
148
  }
149
- const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-CTJJUByH.js").then((m) => ({
149
+ const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-DQYYK-79.js").then((m) => ({
150
150
  default: m.DockviewTerminalContainer
151
151
  })));
152
152
  function useAppHeight() {
@@ -1,5 +1,5 @@
1
1
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2
- import { M as setAccDescription, O as getAccDescription, ac as getDiagramTitle, ab as setDiagramTitle, S as getAccTitle, U as setAccTitle, _ as __name, Y as log, as as selectSvgElement, Z as configureSvgSize, ah as clear, aq as getConfig, a1 as sanitizeText, ao as cleanAndMerge, ap as defaultConfig_default, aK as getThemeVariables3, aL as band, aM as computeDimensionOfText, aJ as linear, aN as line } from "./router-B9BGcvPs.js";
2
+ import { M as setAccDescription, O as getAccDescription, ac as getDiagramTitle, ab as setDiagramTitle, S as getAccTitle, U as setAccTitle, _ as __name, Y as log, as as selectSvgElement, Z as configureSvgSize, ah as clear, aq as getConfig, a1 as sanitizeText, ao as cleanAndMerge, ap as defaultConfig_default, aK as getThemeVariables3, aL as band, aM as computeDimensionOfText, aJ as linear, aN as line } from "./router-6QHcrvmQ.js";
3
3
  import "../server.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
@@ -19381,7 +19381,7 @@ function getResponse() {
19381
19381
  return event.res;
19382
19382
  }
19383
19383
  async function getStartManifest(matchedRoutes) {
19384
- const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-D7mA2JWN.js");
19384
+ const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-CjnZwsJN.js");
19385
19385
  const startManifest = tsrStartManifest();
19386
19386
  const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
19387
19387
  rootRoute.assets = rootRoute.assets || [];
@@ -19957,7 +19957,7 @@ let entriesPromise;
19957
19957
  let baseManifestPromise;
19958
19958
  let cachedFinalManifestPromise;
19959
19959
  async function loadEntries() {
19960
- const routerEntry = await import("./assets/router-B9BGcvPs.js").then((n2) => n2.dT);
19960
+ const routerEntry = await import("./assets/router-6QHcrvmQ.js").then((n2) => n2.dT);
19961
19961
  const startEntry = await import("./assets/start-HYkvq4Ni.js");
19962
19962
  return { startEntry, routerEntry };
19963
19963
  }
@@ -114150,9 +114150,9 @@ var import_jsx_runtime45 = __toESM(require_jsx_runtime(), 1);
114150
114150
  // src/dashboard/components/AgentStatusIndicator.tsx
114151
114151
  var import_lucide_react2 = __toESM(require_lucide_react(), 1);
114152
114152
  var import_jsx_runtime46 = __toESM(require_jsx_runtime(), 1);
114153
- function AgentStatusIndicator({ agent, isActive }) {
114153
+ function AgentStatusIndicator({ agent, isActive, fallback }) {
114154
114154
  if (!agent || agent.status !== "working" && agent.status !== "needs_attention") {
114155
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
114155
+ return fallback ?? /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
114156
114156
  import_lucide_react2.GitBranch,
114157
114157
  {
114158
114158
  className: `size-3 shrink-0 ${isActive ? "text-primary" : "text-muted-foreground"}`
@@ -114164,7 +114164,13 @@ function AgentStatusIndicator({ agent, isActive }) {
114164
114164
  const tooltip = isWorking ? "Agent running..." : "Needs your attention";
114165
114165
  const animation = isWorking ? "" : "animate-status-pulse";
114166
114166
  return /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(Tooltip2, { children: [
114167
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: `inline-block size-2 shrink-0 rounded-full ${color} ${animation}` }) }),
114167
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
114168
+ "span",
114169
+ {
114170
+ "data-testid": "workspace-card__agent-status",
114171
+ className: `inline-block size-2 shrink-0 rounded-full ${color} ${animation}`
114172
+ }
114173
+ ) }),
114168
114174
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TooltipContent2, { side: "top", children: tooltip })
114169
114175
  ] });
114170
114176
  }
@@ -114767,6 +114773,7 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114767
114773
  const gitPush = useDashboardStore((s6) => s6.gitPush);
114768
114774
  const removeWorkspaceMutation = useRemoveWorkspace();
114769
114775
  const isPinned = worktree.pinned;
114776
+ const isRoot = !isPlain && worktree.name === defaultBranch;
114770
114777
  const workspaceId = toWorkspaceId(projectName, worktree.name);
114771
114778
  const isActive = useDashboardStore((s6) => s6.activeWorkspaceId === workspaceId);
114772
114779
  const href = capabilities.getWorkspaceHref?.(workspaceId);
@@ -114832,12 +114839,52 @@ var WorkspaceCard = (0, import_react22.memo)(function WorkspaceCard2({
114832
114839
  /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ContextMenuTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { ...containerProps, children: [
114833
114840
  /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Tooltip2, { delayDuration: 800, children: [
114834
114841
  /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(TooltipTrigger2, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-2 min-w-0 overflow-hidden", children: [
114835
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
114836
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114842
+ isRoot ? (
114843
+ // On the root card the house is AgentStatusIndicator's idle
114844
+ // fallback (the slot other cards use for the branch glyph),
114845
+ // so an active agent's status dot replaces the house rather
114846
+ // than sitting beside it.
114847
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114848
+ AgentStatusIndicator,
114849
+ {
114850
+ agent: status?.agent,
114851
+ isActive,
114852
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114853
+ import_lucide_react5.Home,
114854
+ {
114855
+ "data-testid": "workspace-card__home-icon",
114856
+ className: `size-3.5 shrink-0 ${isActive ? "text-primary" : "text-muted-foreground"}`
114857
+ }
114858
+ )
114859
+ }
114860
+ )
114861
+ ) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AgentStatusIndicator, { agent: status?.agent, isActive }),
114862
+ showProjectName ? (
114863
+ // Pinned section: stack the branch name over the project name
114864
+ // as a compact two-line block so a mixed list of pinned cards
114865
+ // stays scannable without a long, mid-truncated
114866
+ // `project/branch` string on one line.
114867
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col min-w-0 leading-tight", children: [
114868
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114869
+ "span",
114870
+ {
114871
+ className: `text-sm truncate ${isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground"}`,
114872
+ children: worktree.name
114873
+ }
114874
+ ),
114875
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114876
+ "span",
114877
+ {
114878
+ className: `text-xs truncate ${isActive ? "text-foreground/80" : "text-muted-foreground"}`,
114879
+ children: projectName
114880
+ }
114881
+ )
114882
+ ] })
114883
+ ) : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
114837
114884
  "span",
114838
114885
  {
114839
114886
  className: `text-sm truncate ${isActive ? "font-bold text-foreground" : "font-medium text-muted-foreground"}`,
114840
- children: showProjectName ? `${projectName}/${worktree.name}` : worktree.name
114887
+ children: worktree.name
114841
114888
  }
114842
114889
  )
114843
114890
  ] }) }),
@@ -123762,6 +123809,14 @@ var WorkspaceService = class {
123762
123809
  log24.warn({ err, workspaceId }, "teardown script failed");
123763
123810
  }
123764
123811
  }
123812
+ try {
123813
+ await execFileAsync2(command, ["worktree", "unlock", worktreePath], {
123814
+ cwd: projPath,
123815
+ env: gitEnv,
123816
+ encoding: "utf-8"
123817
+ });
123818
+ } catch {
123819
+ }
123765
123820
  try {
123766
123821
  await execFileAsync2(command, ["worktree", "remove", "--force", worktreePath], {
123767
123822
  cwd: projPath,
@@ -123774,6 +123829,14 @@ var WorkspaceService = class {
123774
123829
  } catch (err) {
123775
123830
  log24.warn({ err, workspaceId, worktreePath }, "manual worktree rm failed");
123776
123831
  }
123832
+ try {
123833
+ await execFileAsync2(command, ["worktree", "unlock", worktreePath], {
123834
+ cwd: projPath,
123835
+ env: gitEnv,
123836
+ encoding: "utf-8"
123837
+ });
123838
+ } catch {
123839
+ }
123777
123840
  try {
123778
123841
  await execFileAsync2(command, ["worktree", "prune"], {
123779
123842
  cwd: projPath,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@band-app/server",
3
- "version": "0.25.0",
3
+ "version": "0.26.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "band-server": "./bin/band-server.mjs"
@@ -117,9 +117,9 @@
117
117
  "ws": "^8.18.0",
118
118
  "zod": "^3.25.67",
119
119
  "zustand": "^5.0.0",
120
- "@band-app/coding-agent": "^0.25.0",
121
- "@band-app/ui": "^0.25.0",
122
- "@band-app/logger": "^0.25.0"
120
+ "@band-app/coding-agent": "^0.26.1",
121
+ "@band-app/logger": "^0.26.1",
122
+ "@band-app/ui": "^0.26.1"
123
123
  },
124
124
  "scripts": {
125
125
  "dev": "NODE_ENV=development tsx watch start-server.ts",
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-DIvPtQ0C.js","assets/main-5cZqr4FX.js","assets/main-DOmWiUwE.css"])))=>i.map(i=>d[i]);
2
- import{u as U,n as H,r as o,o as Q,p as h,q as X,v as M,w as F,x as Y,y as W,z as Z,j as f,A as ee,B as te,C as ne,E as re,F as ie,G as ae,X as oe,H as le,J as ce,K as se,_ as ue}from"./main-5cZqr4FX.js";import{S as fe}from"./square-terminal-DKjKKzzC.js";const me=o.lazy(()=>ue(()=>import("./TerminalPanel-DIvPtQ0C.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.TerminalPanel})));function de(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const r=Array.from(e,a=>a.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function A(){return de()}function O(e){return["terminalLayout",e]}const q=new Map;function pe(e){if(typeof e=="object"&&e!==null){const r=e.panels;if(typeof r=="object"&&r!==null)return new Set(Object.keys(r))}return new Set}function K(e,r,a){a?.queryClient&&a.queryClient.setQueryData(O(e),{layout:r,terminalIds:pe(r)});const l=q.get(e);l&&clearTimeout(l),q.set(e,setTimeout(()=>{q.delete(e),h.terminalLayout.save.mutate({workspaceId:e,tree:r}).catch(d=>{console.error("[DockviewTerminalContainer] failed to persist layout:",d)})},500))}function ye(e){if(typeof e!="object"||e===null)return!1;const r=e;return typeof r.grid=="object"&&typeof r.panels=="object"}const he={name:"band",className:"dockview-theme-band dockview-terminal-tabs"};function ge({params:e,api:r}){const{visible:a}=le(),l=o.useCallback(c=>{r.setTitle(c)},[r]);if(!e.workspaceId||!e.terminalId)return null;const d=e.command||e.cwd||e.env?{command:e.command,cwd:e.cwd,env:e.env}:void 0;return f.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden","data-testid":`dockview-terminal-tab__visible-${a?"true":"false"}`,children:f.jsx(o.Suspense,{fallback:null,children:f.jsx(me,{workspaceId:e.workspaceId,terminalId:e.terminalId,visible:a,paneMetadata:d,autoFocus:e.autoFocus,onTitleChange:l})})})}function V(e){const[r,a]=o.useState(e.api.title??"Terminal"),[l,d]=o.useState(e.containerApi.panels.length);o.useEffect(()=>{const y=e.api.onDidTitleChange(()=>{a(e.api.title??"Terminal")});return()=>y.dispose()},[e.api]),o.useEffect(()=>{const y=e.containerApi,v=()=>d(y.panels.length),w=y.onDidAddPanel(v),x=y.onDidRemovePanel(v);return()=>{w.dispose(),x.dispose()}},[e.containerApi]);const c=e.containerApi,p=e.params.terminalId,g=o.useCallback(y=>{y.stopPropagation(),C.get(c.id)?.current?.onClose(p)},[c,p]),R=l>1;return f.jsxs("div",{className:"dv-default-tab",children:[f.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[f.jsx(fe,{className:"size-3.5 shrink-0 text-muted-foreground"}),f.jsx("span",{className:"truncate",children:r})]}),R&&f.jsx("button",{type:"button",className:"ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-colors",onClick:g,title:"Close terminal",children:f.jsx(oe,{className:"size-3"})})]})}const C=new Map,be=ne.memo(function(r){const a=(r.location?.type??"grid")==="grid",l=r.containerApi.id,d=r.group.id;return f.jsxs("div",{className:"flex h-full w-full items-center justify-center","data-testid":a?"dockview-terminal__toolbar":void 0,children:[a&&f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>C.get(l)?.current?.onSplit(d,"right"),title:"Split right",children:f.jsx(re,{className:"size-3.5"})}),f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>C.get(l)?.current?.onSplit(d,"below"),title:"Split down",children:f.jsx(ie,{className:"size-3.5"})})]}),f.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>C.get(l)?.current?.onAdd(d),title:"New terminal",children:f.jsx(ae,{className:"size-4"})})]})}),ve={terminalTab:ge},Te={terminalTab:V};function we({workspaceId:e,visible:r,wsActive:a}){const l=U(),d=H(),c=o.useRef(null),p=o.useRef(!1),g=o.useRef(null),R=o.useRef(a);R.current=a;const y=o.useRef(null),v=o.useRef(null),{data:w}=Q({queryKey:O(e),queryFn:async()=>{const[{tree:t},{terminals:i}]=await Promise.all([h.terminalLayout.get.query({workspaceId:e}).catch(()=>({tree:null})),h.terminal.list.query({workspaceId:e}).catch(()=>({terminals:[]}))]);return{layout:t,terminalIds:new Set(i.map(s=>s.terminalId))}},staleTime:Number.POSITIVE_INFINITY}),x=o.useRef(d);x.current=d;const L=o.useCallback(()=>{if(p.current)return;const t=c.current;t&&K(e,t.toJSON(),{queryClient:x.current})},[e]),D=o.useCallback(()=>{if(p.current||R.current===!1)return;const t=c.current?.activePanel?.id;t&&h.panelFocus.set.mutate({workspaceId:e,panelType:"terminal",panelId:t}).catch(()=>{})},[e]),N=o.useCallback(async t=>{const i=c.current;if(!i)return;const s=A(),m={id:s,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:s,autoFocus:!0}};t&&(m.position={referenceGroup:t}),i.addPanel(m);try{await h.terminal.create.mutate({workspaceId:e,id:s})}catch(n){console.error("[DockviewTerminalContainer] error creating terminal:",n)}},[e]),S=o.useCallback(async(t,i)=>{const s=c.current;if(!s)return;const m=A();s.addPanel({id:m,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:m,autoFocus:!0},position:{referenceGroup:t,direction:i}});try{await h.terminal.create.mutate({workspaceId:e,id:m})}catch(n){console.error("[DockviewTerminalContainer] error creating split terminal:",n)}},[e]),E=o.useCallback(t=>{const i=c.current;if(!i||i.panels.length<=1)return;X(i,t);const s=i.getPanel(t);s&&i.removePanel(s),requestAnimationFrame(()=>{const m=i.activePanel;m&&m.view.content.element.querySelector(".xterm-helper-textarea")?.focus()}),M(t),h.terminal.kill.mutate({terminalId:t}).catch(m=>{console.error("[DockviewTerminalContainer] failed to kill terminal:",m)})},[]);o.useEffect(()=>{if(!r)return;const t=()=>{const n=c.current?.activePanel;n&&n.view.content.element.querySelector(".xterm-helper-textarea")?.focus()},i=n=>{ce(c.current,n,()=>{requestAnimationFrame(t)})},s=n=>{se(c.current,n,()=>{requestAnimationFrame(t)})},m=n=>{if(!g.current?.contains(document.activeElement))return;const u=n.key.toLowerCase();if(n.ctrlKey&&!n.metaKey&&u==="tab"){n.preventDefault(),n.stopPropagation(),i(n.shiftKey?-1:1);return}if(!(n.metaKey||n.ctrlKey))return;if(n.shiftKey&&(u==="["||u==="]")){n.preventDefault(),n.stopPropagation(),i(u==="]"?1:-1);return}if(!n.shiftKey&&(u==="["||u==="]")){n.preventDefault(),n.stopPropagation(),s(u==="]"?1:-1);return}const b=()=>{const P=c.current;if(!P||P.panels.length<=1)return!1;const I=P.activePanel;return I?(E(I.id),!0):!1};if(u==="t"&&!n.shiftKey)n.preventDefault(),n.stopPropagation(),N();else if(u==="w"&&!n.shiftKey)b()&&(n.preventDefault(),n.stopPropagation());else if(u==="d")if(n.metaKey&&!n.ctrlKey){n.preventDefault(),n.stopPropagation();const P=c.current?.activeGroup;if(!P)return;S(P.id,n.shiftKey?"below":"right")}else n.ctrlKey&&!n.metaKey&&!n.shiftKey?b()&&(n.preventDefault(),n.stopPropagation()):(n.preventDefault(),n.stopPropagation())};return window.addEventListener("keydown",m,!0),()=>window.removeEventListener("keydown",m,!0)},[r,E,S,N]),o.useLayoutEffect(()=>{if(!r)return;const t=c.current,i=g.current;if(!t||!i)return;const s=i.getBoundingClientRect();if(s.width>0&&s.height>0){t.layout(Math.round(s.width),Math.round(s.height),!0);return}const m=new ResizeObserver(n=>{const u=n[0];if(!u)return;const{width:T,height:b}=u.contentRect;T<=0||b<=0||(m.disconnect(),t.layout(Math.round(T),Math.round(b),!0))});return m.observe(i),()=>m.disconnect()},[r]),o.useEffect(()=>{if(!r)return;const t=requestAnimationFrame(()=>{const i=c.current?.activePanel;i&&(i.view.content.element.querySelector(".xterm-helper-textarea")?.focus(),D())});return()=>cancelAnimationFrame(t)},[r,D]),o.useEffect(()=>{const t=i=>{const s=i.detail;!s?.terminalId||s.workspaceId!==e||c.current?.getPanel(s.terminalId)?.api.setActive()};return window.addEventListener("band:terminal-insert",t),()=>window.removeEventListener("band:terminal-insert",t)},[e]),o.useEffect(()=>l.subscribeStatusEvents(t=>{if(t.workspaceId!==e)return;const i=c.current;if(i){if(t.kind==="terminal-created"&&typeof t.terminalId=="string"){if(i.getPanel(t.terminalId))return;i.addPanel({id:t.terminalId,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:t.terminalId},position:F(i)})}else if(t.kind==="terminal-killed"&&typeof t.terminalId=="string"){M(t.terminalId);const s=i.getPanel(t.terminalId);s&&(i.removePanel(s),i.panels.length===0&&j(i,e))}}}),[l,e]);const G=o.useRef({onAdd:()=>{},onSplit:()=>{},onClose:()=>{}});G.current={onAdd:N,onSplit:S,onClose:E},o.useEffect(()=>()=>{const t=c.current;t&&C.delete(t.id),y.current?.(),y.current=null,v.current?.(),v.current=null},[]);const k=o.useRef(null);k.current=w?.layout??null;const _=o.useRef(null);_.current=w?.terminalIds??null;const z=o.useRef(r);z.current=r;const $=o.useCallback(t=>{const i=c.current;i&&i.id!==t.api.id&&C.delete(i.id),c.current=t.api,C.set(t.api.id,G);const s=k.current,m=_.current;if(s&&ye(s)){p.current=!0;try{t.api.fromJSON(s)}catch(T){console.error("[DockviewTerminalContainer] fromJSON failed, creating default:",T),j(t.api,e)}let u=0;if(m){const T=t.api.panels.filter(b=>!m.has(b.id));for(const b of T)t.api.removePanel(b),u++;t.api.panels.length===0&&(j(t.api,e),u++)}setTimeout(()=>{p.current=!1},0),u>0&&K(e,t.api.toJSON(),{queryClient:x.current})}else Ce(t.api,e,x.current);Y(t.api),y.current?.(),y.current=W(t.api),v.current?.(),g.current&&(v.current=Z(g.current,t.api));const n=()=>L();if(t.api.onDidLayoutChange(n),t.api.onDidAddPanel(n),t.api.onDidRemovePanel(n),t.api.onDidActivePanelChange(()=>{n(),D()}),t.api.onDidAddGroup(n),t.api.onDidRemoveGroup(n),z.current&&g.current){const u=g.current.getBoundingClientRect();u.width>0&&u.height>0&&t.api.layout(Math.round(u.width),Math.round(u.height),!0)}},[e,L,D]),B=o.useMemo(()=>({visible:r&&a!==!1,wsActive:a!==!1}),[r,a]);return w?f.jsx("div",{ref:g,className:"flex h-full w-full flex-col overflow-hidden",children:f.jsx(ee.Provider,{value:B,children:f.jsx(te,{theme:he,className:"h-full",components:ve,tabComponents:Te,defaultTabComponent:V,onReady:$,rightHeaderActionsComponent:be})})}):f.jsx("div",{className:"flex h-full w-full items-center justify-center"})}function j(e,r){const a=A();e.addPanel({id:a,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:r,terminalId:a},position:F(e)}),h.terminal.create.mutate({workspaceId:r,id:a}).catch(l=>{console.error("[DockviewTerminalContainer] error creating default terminal:",l)})}async function Ce(e,r,a){try{const{config:l}=await h.workspace.getTerminalConfig.query({workspaceId:r});if(l?.layout){const d=J(l.layout);if(d.length>0){for(const c of d)try{const p=A();e.addPanel({id:p,component:"terminalTab",tabComponent:"terminalTab",title:c.name??"Terminal",params:{workspaceId:r,terminalId:p,command:c.command,cwd:c.cwd,env:c.env},position:F(e)}),await h.terminal.create.mutate({workspaceId:r,id:p,command:c.command,cwd:c.cwd,env:c.env})}catch(p){console.error("[DockviewTerminalContainer] error creating terminal from config:",p)}K(r,e.toJSON(),{queryClient:a});return}}}catch{}j(e,r)}function J(e,r=0){if(r>10||typeof e!="object"||e===null)return[];const a=e;if("pane"in a&&typeof a.pane=="object"&&a.pane!==null){const l=a.pane;return[{name:typeof l.name=="string"?l.name:void 0,command:typeof l.command=="string"?l.command:void 0,cwd:typeof l.cwd=="string"?l.cwd:void 0,env:typeof l.env=="object"&&l.env!==null?l.env:void 0}]}if("children"in a&&Array.isArray(a.children)){const l=[];for(const d of a.children)l.push(...J(d,r+1));return l}return[]}export{we as DockviewTerminalContainer,A as newTerminalId};
@@ -1 +0,0 @@
1
- import{an as r,ao as n}from"./main-5cZqr4FX.js";const t=(a,o)=>r.lang.round(n.parse(a)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-BRcHAc7V.js";import{Y as i}from"./main-5cZqr4FX.js";import"./chunk-FMBD7UC4-CelHUigz.js";import"./chunk-55IACEB6-xhCYxBKG.js";import"./chunk-QN33PNHL-nQBPkq6v.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-BRcHAc7V.js";import{Y as i}from"./main-5cZqr4FX.js";import"./chunk-FMBD7UC4-CelHUigz.js";import"./chunk-55IACEB6-xhCYxBKG.js";import"./chunk-QN33PNHL-nQBPkq6v.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./_baseUniq-CISSY9JU.js";var e=4;function a(o){return r(o,e)}export{a as c};