@band-app/server 0.21.1 → 0.21.2

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 (155) hide show
  1. package/dist/client/assets/{DockviewBrowserContainer-DzbC1Mt8.js → DockviewBrowserContainer-6vGRAPMq.js} +1 -1
  2. package/dist/client/assets/{DockviewTerminalContainer-CIr-N0ci.js → DockviewTerminalContainer-COlPnAN7.js} +2 -2
  3. package/dist/client/assets/{TerminalPanel-DSjCJfRV.js → TerminalPanel-DNBLPQEb.js} +1 -1
  4. package/dist/client/assets/{_basePickBy-DafwSyTH.js → _basePickBy-D17RbSpA.js} +1 -1
  5. package/dist/client/assets/{_baseUniq-BTf1vKsV.js → _baseUniq-9xolxnuZ.js} +1 -1
  6. package/dist/client/assets/{arc-t7jPB3j2.js → arc-CrFKrBMt.js} +1 -1
  7. package/dist/client/assets/{architectureDiagram-VXUJARFQ-HZ_0v8ps.js → architectureDiagram-VXUJARFQ-Ke3p_Mqb.js} +1 -1
  8. package/dist/client/assets/{blockDiagram-VD42YOAC-DR_bU1nI.js → blockDiagram-VD42YOAC-TqBKFyqZ.js} +1 -1
  9. package/dist/client/assets/{c4Diagram-YG6GDRKO-D_Gybysd.js → c4Diagram-YG6GDRKO-BEH8KTZ4.js} +1 -1
  10. package/dist/client/assets/channel-Cx_aQUiM.js +1 -0
  11. package/dist/client/assets/{chunk-4BX2VUAB-CkLKUGFs.js → chunk-4BX2VUAB-CtLV-I7X.js} +1 -1
  12. package/dist/client/assets/{chunk-55IACEB6-DD5joSGW.js → chunk-55IACEB6-DNYJbC9p.js} +1 -1
  13. package/dist/client/assets/{chunk-B4BG7PRW-DbcDvN95.js → chunk-B4BG7PRW-C9SV78wP.js} +1 -1
  14. package/dist/client/assets/{chunk-DI55MBZ5-D7NtzYbv.js → chunk-DI55MBZ5-BA6YDHhu.js} +1 -1
  15. package/dist/client/assets/{chunk-FMBD7UC4-BcNswQs0.js → chunk-FMBD7UC4-xclQ8Cf4.js} +1 -1
  16. package/dist/client/assets/{chunk-QN33PNHL-DmBX24F0.js → chunk-QN33PNHL-CbKttxM9.js} +1 -1
  17. package/dist/client/assets/{chunk-QZHKN3VN-KyUXOWGI.js → chunk-QZHKN3VN-Bx8-ojjW.js} +1 -1
  18. package/dist/client/assets/{chunk-TZMSLE5B-3_MTPooQ.js → chunk-TZMSLE5B-C2ws4lNY.js} +1 -1
  19. package/dist/client/assets/classDiagram-2ON5EDUG-CDZ4gS0y.js +1 -0
  20. package/dist/client/assets/classDiagram-v2-WZHVMYZB-CDZ4gS0y.js +1 -0
  21. package/dist/client/assets/clone-CNiiW5Ay.js +1 -0
  22. package/dist/client/assets/{cose-bilkent-S5V4N54A-ByN5eQeA.js → cose-bilkent-S5V4N54A-CvTq6GKB.js} +1 -1
  23. package/dist/client/assets/{dagre-6UL2VRFP-BFZ14GjZ.js → dagre-6UL2VRFP-CvAkVLYR.js} +1 -1
  24. package/dist/client/assets/{diagram-PSM6KHXK-Scd140Xl.js → diagram-PSM6KHXK-CjqPnfjV.js} +1 -1
  25. package/dist/client/assets/{diagram-QEK2KX5R-DqhKBtSh.js → diagram-QEK2KX5R-CAbD5at_.js} +1 -1
  26. package/dist/client/assets/{diagram-S2PKOQOG-CQINlirF.js → diagram-S2PKOQOG-npaoXBaA.js} +1 -1
  27. package/dist/client/assets/{erDiagram-Q2GNP2WA-DkDQNNPC.js → erDiagram-Q2GNP2WA-B7Ii4ixk.js} +1 -1
  28. package/dist/client/assets/{flowDiagram-NV44I4VS-CQueazw-.js → flowDiagram-NV44I4VS-CWJlEjhJ.js} +1 -1
  29. package/dist/client/assets/{ganttDiagram-JELNMOA3-BoocCscm.js → ganttDiagram-JELNMOA3-DpzdgJxa.js} +1 -1
  30. package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-CslyESbd.js → gitGraphDiagram-V2S2FVAM-6unjAycz.js} +1 -1
  31. package/dist/client/assets/{graph-Dwc0TYWS.js → graph-VXOljtS_.js} +1 -1
  32. package/dist/client/assets/{highlighted-body-B3W2YXNL-D1NcORBv.js → highlighted-body-B3W2YXNL-Dr38PYps.js} +1 -1
  33. package/dist/client/assets/{index-BGeVMQ-5.js → index-0smwvcI5.js} +1 -1
  34. package/dist/client/assets/{index-D3UB8uPq.js → index-1bfqbPx4.js} +1 -1
  35. package/dist/client/assets/{index-DsVgH_r6.js → index-B-If-Bxk.js} +1 -1
  36. package/dist/client/assets/{index-BN5d2SAU.js → index-B5eNC7JU.js} +1 -1
  37. package/dist/client/assets/{index-5MVxNnyO.js → index-BH6O4VK4.js} +1 -1
  38. package/dist/client/assets/{index-96su48Th.js → index-BeL8lEkE.js} +1 -1
  39. package/dist/client/assets/{index-B-XFygGO.js → index-C5S6lhjM.js} +1 -1
  40. package/dist/client/assets/{index-zc6xiNyn.js → index-C8JM5Fw6.js} +1 -1
  41. package/dist/client/assets/{index-CvTgLN0b.js → index-CDZv1r4Q.js} +1 -1
  42. package/dist/client/assets/{index-cgWsIlxk.js → index-CN_mH_uK.js} +1 -1
  43. package/dist/client/assets/{index-vNkFH7CI.js → index-Cyigja8G.js} +1 -1
  44. package/dist/client/assets/{index-Z6azf1Sz.js → index-D7HqwOng.js} +1 -1
  45. package/dist/client/assets/{index-U8DwLRsF.js → index-Dt4yFYKg.js} +1 -1
  46. package/dist/client/assets/{index-0T3OIZel.js → index-GAorhXcd.js} +1 -1
  47. package/dist/client/assets/{index-yE4BQbMZ.js → index-Gsci2MjP.js} +1 -1
  48. package/dist/client/assets/{index-vj3FMJ85.js → index-WAvNcNBw.js} +1 -1
  49. package/dist/client/assets/{index-DzTJ3LiE.js → index-sO-gKrgS.js} +1 -1
  50. package/dist/client/assets/{index-C9STKbES.js → index-vsxjm_hQ.js} +1 -1
  51. package/dist/client/assets/{infoDiagram-HS3SLOUP-Cv7jIGhe.js → infoDiagram-HS3SLOUP-CSXE28ng.js} +1 -1
  52. package/dist/client/assets/{journeyDiagram-XKPGCS4Q-BhAKULNd.js → journeyDiagram-XKPGCS4Q-C22Q_X0X.js} +1 -1
  53. package/dist/client/assets/{kanban-definition-3W4ZIXB7-B0XkC-vg.js → kanban-definition-3W4ZIXB7-DY-wTFE4.js} +1 -1
  54. package/dist/client/assets/{layout-Bfr8bXLK.js → layout-Dc5Px3_i.js} +1 -1
  55. package/dist/client/assets/{main-BlnV6QZf.js → main-3W4_bdX9.js} +154 -154
  56. package/dist/client/assets/{mindmap-definition-VGOIOE7T-D5OYhCsu.js → mindmap-definition-VGOIOE7T-DjlIeb28.js} +1 -1
  57. package/dist/client/assets/{pieDiagram-ADFJNKIX-7K0Tdlq6.js → pieDiagram-ADFJNKIX-CAYazJeR.js} +1 -1
  58. package/dist/client/assets/{quadrantDiagram-AYHSOK5B-pJUjscyl.js → quadrantDiagram-AYHSOK5B-DqOUuCMa.js} +1 -1
  59. package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DKf8Shq_.js → requirementDiagram-UZGBJVZJ-ga9OYiX3.js} +1 -1
  60. package/dist/client/assets/{sankeyDiagram-TZEHDZUN-B5MIvrte.js → sankeyDiagram-TZEHDZUN-DT4gli4B.js} +1 -1
  61. package/dist/client/assets/{sequenceDiagram-WL72ISMW-_g2o1nWx.js → sequenceDiagram-WL72ISMW-DaZ5nFau.js} +1 -1
  62. package/dist/client/assets/{square-terminal-CpaVnWZI.js → square-terminal-DH5KC33k.js} +1 -1
  63. package/dist/client/assets/{stateDiagram-FKZM4ZOC-XRcP-869.js → stateDiagram-FKZM4ZOC-CKKdKiLu.js} +1 -1
  64. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-CSXqjPLc.js +1 -0
  65. package/dist/client/assets/{timeline-definition-IT6M3QCI-DAj7fIjN.js → timeline-definition-IT6M3QCI-BwdepkjX.js} +1 -1
  66. package/dist/client/assets/{treemap-GDKQZRPO-COeKauiP.js → treemap-GDKQZRPO-CHiLww4s.js} +1 -1
  67. package/dist/client/assets/{workspace._workspaceId-CbzvY_UQ.js → workspace._workspaceId-D1BWy1Ur.js} +1 -1
  68. package/dist/client/assets/{workspace._workspaceId-Dx_x5wRO.js → workspace._workspaceId-Quiswnjw.js} +2 -2
  69. package/dist/client/assets/{xychartDiagram-PRI3JC2R-C4fnE7uB.js → xychartDiagram-PRI3JC2R-DawkS0Sm.js} +1 -1
  70. package/dist/server/assets/{DockviewBrowserContainer-CqDANKB4.js → DockviewBrowserContainer-SjtAFOaO.js} +1 -1
  71. package/dist/server/assets/{DockviewTerminalContainer-DbD2CvFz.js → DockviewTerminalContainer-D6-3suIN.js} +3 -3
  72. package/dist/server/assets/{TerminalPanel-DmZ4CBdM.js → TerminalPanel-DA2GjlrE.js} +1 -1
  73. package/dist/server/assets/{_basePickBy-3wIPceeI.js → _basePickBy-mQwpcWuA.js} +2 -2
  74. package/dist/server/assets/{_baseUniq-m9JhNSig.js → _baseUniq-BqTMAIfp.js} +1 -1
  75. package/dist/server/assets/{_tanstack-start-manifest_v-CtVENsS-.js → _tanstack-start-manifest_v-PthNKGfG.js} +1 -1
  76. package/dist/server/assets/{arc-CN-vyvUj.js → arc-CfotX0XO.js} +1 -1
  77. package/dist/server/assets/{architecture-7HQA4BMR-BNv0yNka.js → architecture-7HQA4BMR-w7SRxWR3.js} +6 -6
  78. package/dist/server/assets/{architectureDiagram-VXUJARFQ-CxI1sFRU.js → architectureDiagram-VXUJARFQ-DJFhyyCh.js} +6 -6
  79. package/dist/server/assets/{blockDiagram-VD42YOAC-BPuqqD38.js → blockDiagram-VD42YOAC-6rxJggh1.js} +6 -6
  80. package/dist/server/assets/{c4Diagram-YG6GDRKO-t3K9Gv7l.js → c4Diagram-YG6GDRKO-D3y86IYm.js} +2 -2
  81. package/dist/server/assets/{channel-wf57PI9V.js → channel-BvsPpLae.js} +1 -1
  82. package/dist/server/assets/{chunk-4BX2VUAB-Hg_VjrJT.js → chunk-4BX2VUAB-BhVS4SR2.js} +1 -1
  83. package/dist/server/assets/{chunk-55IACEB6-CeYefPsA.js → chunk-55IACEB6-DKZQfAUk.js} +1 -1
  84. package/dist/server/assets/{chunk-B4BG7PRW-BxMgdayn.js → chunk-B4BG7PRW-CTFHJOgm.js} +4 -4
  85. package/dist/server/assets/{chunk-DI55MBZ5-4Yy6M4GO.js → chunk-DI55MBZ5-D4oMyPFU.js} +3 -3
  86. package/dist/server/assets/{chunk-FMBD7UC4-Cwd78rUv.js → chunk-FMBD7UC4-C--TorDk.js} +1 -1
  87. package/dist/server/assets/{chunk-QN33PNHL-wzqaO6CO.js → chunk-QN33PNHL-Bq5t-J27.js} +1 -1
  88. package/dist/server/assets/{chunk-QZHKN3VN-C43eiH0R.js → chunk-QZHKN3VN-D9QKIA24.js} +1 -1
  89. package/dist/server/assets/{chunk-TZMSLE5B-4CxMH9Q-.js → chunk-TZMSLE5B-DsPVSWvD.js} +1 -1
  90. package/dist/server/assets/{classDiagram-v2-WZHVMYZB-CzKcVZJc.js → classDiagram-2ON5EDUG-BDvFA_gY.js} +5 -5
  91. package/dist/server/assets/{classDiagram-2ON5EDUG-CzKcVZJc.js → classDiagram-v2-WZHVMYZB-BDvFA_gY.js} +5 -5
  92. package/dist/server/assets/{clone-Co9W0CCe.js → clone-CCgsMGyI.js} +1 -1
  93. package/dist/server/assets/{cose-bilkent-S5V4N54A-CemnHiuy.js → cose-bilkent-S5V4N54A-6FhE7VMC.js} +1 -1
  94. package/dist/server/assets/{dagre-6UL2VRFP-D-BLVjoL.js → dagre-6UL2VRFP-B2XCzgyl.js} +6 -6
  95. package/dist/server/assets/{diagram-PSM6KHXK-k6pYzUY5.js → diagram-PSM6KHXK-C3a4H4k4.js} +7 -7
  96. package/dist/server/assets/{diagram-QEK2KX5R-CscZyCx4.js → diagram-QEK2KX5R-Cr2uQFcl.js} +6 -6
  97. package/dist/server/assets/{diagram-S2PKOQOG-EPfaInlF.js → diagram-S2PKOQOG-B02qDgDh.js} +6 -6
  98. package/dist/server/assets/{erDiagram-Q2GNP2WA-CxKqSr3v.js → erDiagram-Q2GNP2WA-COfTfgT3.js} +4 -4
  99. package/dist/server/assets/{flowDiagram-NV44I4VS-CmRcqums.js → flowDiagram-NV44I4VS-DMHyjH0P.js} +5 -5
  100. package/dist/server/assets/{ganttDiagram-JELNMOA3-YaNWnEH7.js → ganttDiagram-JELNMOA3-tZWVaeIh.js} +1 -1
  101. package/dist/server/assets/{gitGraph-G5XIXVHT-B8qpYmFU.js → gitGraph-G5XIXVHT-CZ_Z3kfk.js} +6 -6
  102. package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-Cyxw_T7Z.js → gitGraphDiagram-V2S2FVAM-BE9qq2Q5.js} +7 -7
  103. package/dist/server/assets/{graph-6l2y48Sb.js → graph-BzW4XaDV.js} +2 -2
  104. package/dist/server/assets/{highlighted-body-B3W2YXNL-BaoNsTjY.js → highlighted-body-B3W2YXNL-D0yX7NC8.js} +1 -1
  105. package/dist/server/assets/{index-BDNTG33i.js → index-BHpOY7Dw.js} +5 -5
  106. package/dist/server/assets/{index-BbPBh6H3.js → index-BNF8mJRP.js} +2 -2
  107. package/dist/server/assets/{index-Dwrj_nBm.js → index-BXnk_LSs.js} +1 -1
  108. package/dist/server/assets/{index-CjxzboN7.js → index-BddxWcBo.js} +4 -4
  109. package/dist/server/assets/{index-q4_fEkML.js → index-BhGU4xre.js} +2 -2
  110. package/dist/server/assets/{index-ByjS99eX.js → index-BjZusA5s.js} +2 -2
  111. package/dist/server/assets/{index-Oxi8joDg.js → index-BkVmoV0_.js} +2 -2
  112. package/dist/server/assets/{index-CvjKE7Ta.js → index-CEEnohTX.js} +2 -2
  113. package/dist/server/assets/{index-D9p_mZDJ.js → index-CSJXca8g.js} +2 -2
  114. package/dist/server/assets/{index-D2tc61J7.js → index-D3IdMBz4.js} +2 -2
  115. package/dist/server/assets/{index-BRQW2GDV.js → index-DHC4nyMa.js} +5 -5
  116. package/dist/server/assets/{index-BA9bc05g.js → index-DLYVbCsD.js} +2 -2
  117. package/dist/server/assets/{index--Ibvlxfb.js → index-DSjoHOQR.js} +2 -2
  118. package/dist/server/assets/{index-DOVCz7M5.js → index-DXdGHSqq.js} +3 -3
  119. package/dist/server/assets/{index-DFn6sCXI.js → index-Dgiv8n6K.js} +2 -2
  120. package/dist/server/assets/{index-DgJkTCJ8.js → index-DrE9X1gh.js} +3 -3
  121. package/dist/server/assets/{index-Bveos8k-.js → index-GYPGaDq3.js} +2 -2
  122. package/dist/server/assets/{index-DPjPbgde.js → index-WDxgib-p.js} +1 -1
  123. package/dist/server/assets/{info-VBDWY6EO-_ifiEvcG.js → info-VBDWY6EO-DaBZazBe.js} +6 -6
  124. package/dist/server/assets/{infoDiagram-HS3SLOUP-BzEF0J3M.js → infoDiagram-HS3SLOUP-Bu1EpnUn.js} +5 -5
  125. package/dist/server/assets/{journeyDiagram-XKPGCS4Q-D03SsiQq.js → journeyDiagram-XKPGCS4Q-C2IfyEys.js} +4 -4
  126. package/dist/server/assets/{kanban-definition-3W4ZIXB7-BeOJMgU2.js → kanban-definition-3W4ZIXB7-Dmos0qrE.js} +2 -2
  127. package/dist/server/assets/{layout-D6q-OdoG.js → layout-B_sWGtIR.js} +4 -4
  128. package/dist/server/assets/{mermaid-3ZIDBTTL-B2g4ZyRb.js → mermaid-3ZIDBTTL-BW1cNMu3.js} +1 -1
  129. package/dist/server/assets/{mermaid-parser.core-CHdH9gLY.js → mermaid-parser.core-C0KGu9_Y.js} +11 -11
  130. package/dist/server/assets/{mindmap-definition-VGOIOE7T-CBCJSqB-.js → mindmap-definition-VGOIOE7T-C_mzYt-R.js} +3 -3
  131. package/dist/server/assets/{packet-DYOGHKS2-DOlmItCg.js → packet-DYOGHKS2-DYttG_nQ.js} +6 -6
  132. package/dist/server/assets/{pie-VRWISCQL-IJ6xSr-v.js → pie-VRWISCQL-BuhC4M0x.js} +6 -6
  133. package/dist/server/assets/{pieDiagram-ADFJNKIX-BIeXI33r.js → pieDiagram-ADFJNKIX-DexUC2dZ.js} +7 -7
  134. package/dist/server/assets/{quadrantDiagram-AYHSOK5B-BpezLOWq.js → quadrantDiagram-AYHSOK5B-I-ZcwW4o.js} +1 -1
  135. package/dist/server/assets/{radar-ZZBFDIW7-DbXuafW3.js → radar-ZZBFDIW7-CotKU5eu.js} +6 -6
  136. package/dist/server/assets/{requirementDiagram-UZGBJVZJ-ChbE328t.js → requirementDiagram-UZGBJVZJ-Ea8SMq7y.js} +3 -3
  137. package/dist/server/assets/{router-D0RjRa7t.js → router-Cp26PX4S.js} +102 -57
  138. package/dist/server/assets/{sankeyDiagram-TZEHDZUN-CXtOdCUH.js → sankeyDiagram-TZEHDZUN-qAb9c_VI.js} +1 -1
  139. package/dist/server/assets/{sequenceDiagram-WL72ISMW-CSNNYC4e.js → sequenceDiagram-WL72ISMW-DhHw376S.js} +3 -3
  140. package/dist/server/assets/{square-terminal-BxqNxeMz.js → square-terminal-urq6IDN2.js} +1 -1
  141. package/dist/server/assets/{stateDiagram-FKZM4ZOC-DvfH1oWR.js → stateDiagram-FKZM4ZOC-AZXk6dET.js} +8 -8
  142. package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-CgJsyTfA.js → stateDiagram-v2-4FDKWEC3-C8Sgtsj6.js} +4 -4
  143. package/dist/server/assets/{timeline-definition-IT6M3QCI-CYIrja4N.js → timeline-definition-IT6M3QCI-D34GNHxa.js} +2 -2
  144. package/dist/server/assets/{treemap-GDKQZRPO-BSJm6_BX.js → treemap-GDKQZRPO-CfD3pUzb.js} +6 -6
  145. package/dist/server/assets/{workspace._workspaceId-DSIpOEcg.js → workspace._workspaceId-CweIY_H0.js} +3 -3
  146. package/dist/server/assets/{workspace._workspaceId-Bie30-IB.js → workspace._workspaceId-D87t1HVW.js} +1 -1
  147. package/dist/server/assets/{xychartDiagram-PRI3JC2R-C1JcOjo8.js → xychartDiagram-PRI3JC2R-CWxcKTdW.js} +1 -1
  148. package/dist/server/server.js +2 -2
  149. package/dist/start-server.mjs +61 -257
  150. package/package.json +4 -4
  151. package/dist/client/assets/channel-DhpHVfC-.js +0 -1
  152. package/dist/client/assets/classDiagram-2ON5EDUG-Dm-2ttX_.js +0 -1
  153. package/dist/client/assets/classDiagram-v2-WZHVMYZB-Dm-2ttX_.js +0 -1
  154. package/dist/client/assets/clone-BHQ3Yw6J.js +0 -1
  155. package/dist/client/assets/stateDiagram-v2-4FDKWEC3-7jPvKV-L.js +0 -1
@@ -1,6 +1,6 @@
1
- import { h as createTreemapServices } from "./mermaid-parser.core-CHdH9gLY.js";
2
- import { T } from "./mermaid-parser.core-CHdH9gLY.js";
3
- import "./router-D0RjRa7t.js";
1
+ import { h as createTreemapServices } from "./mermaid-parser.core-C0KGu9_Y.js";
2
+ import { T } from "./mermaid-parser.core-C0KGu9_Y.js";
3
+ import "./router-Cp26PX4S.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-m9JhNSig.js";
16
- import "./_basePickBy-3wIPceeI.js";
17
- import "./clone-Co9W0CCe.js";
15
+ import "./_baseUniq-BqTMAIfp.js";
16
+ import "./_basePickBy-mQwpcWuA.js";
17
+ import "./clone-CCgsMGyI.js";
18
18
  import "path";
19
19
  import "os";
20
20
  import "net";
@@ -1,6 +1,6 @@
1
1
  import { j as jsxRuntimeExports, r as reactExports } from "../server.js";
2
- import { bN as MessageSquare, bS as GitCompare, bT as FolderOpen, R as Route, bO as useIsDesktop, bU as useDashboardStore, bR as isDesktop, bV as useNavigate, p as trpc, bW as DesktopDragRegion, bX as ArrowLeft, bY as ChevronsUpDown, bZ as DiffView, b_ as CodeBrowserView, b$ as QuickOpenDialog, c0 as SearchFilesDialog, c1 as WorkspacePickerDialog, c2 as useDiffTarget, c3 as useSettingsQuery, c4 as agentTypeSupportsSessionListing, c5 as ChatView } from "./router-D0RjRa7t.js";
3
- import { S as SquareTerminal } from "./square-terminal-BxqNxeMz.js";
2
+ import { bN as MessageSquare, bS as GitCompare, bT as FolderOpen, R as Route, bO as useIsDesktop, bU as useDashboardStore, bR as isDesktop, bV as useNavigate, p as trpc, bW as DesktopDragRegion, bX as ArrowLeft, bY as ChevronsUpDown, bZ as DiffView, b_ as CodeBrowserView, b$ as QuickOpenDialog, c0 as SearchFilesDialog, c1 as WorkspacePickerDialog, c2 as useDiffTarget, c3 as useSettingsQuery, c4 as agentTypeSupportsSessionListing, c5 as ChatView } from "./router-Cp26PX4S.js";
3
+ import { S as SquareTerminal } from "./square-terminal-urq6IDN2.js";
4
4
  import "node:async_hooks";
5
5
  import "node:stream";
6
6
  import "util";
@@ -56,7 +56,7 @@ const SessionListContext = reactExports.createContext({
56
56
  function useSessionListContext() {
57
57
  return reactExports.useContext(SessionListContext);
58
58
  }
59
- const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-DbD2CvFz.js").then((m) => ({
59
+ const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-D6-3suIN.js").then((m) => ({
60
60
  default: m.DockviewTerminalContainer
61
61
  })));
62
62
  function useAppHeight() {
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../server.js";
2
- import { R as Route, a as Navigate } from "./router-D0RjRa7t.js";
2
+ import { R as Route, a as Navigate } from "./router-Cp26PX4S.js";
3
3
  import "node:async_hooks";
4
4
  import "node:stream";
5
5
  import "util";
@@ -1,5 +1,5 @@
1
1
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2
- import { J as setAccDescription, M as getAccDescription, ab as getDiagramTitle, aa as setDiagramTitle, O as getAccTitle, S as setAccTitle, _ as __name, W as log, ar as selectSvgElement, Y as configureSvgSize, ag as clear, ap as getConfig, a0 as sanitizeText, an as cleanAndMerge, ao as defaultConfig_default, aJ as getThemeVariables3, aK as band, aL as computeDimensionOfText, aI as linear, aM as line } from "./router-D0RjRa7t.js";
2
+ import { J as setAccDescription, M as getAccDescription, ab as getDiagramTitle, aa as setDiagramTitle, O as getAccTitle, S as setAccTitle, _ as __name, W as log, ar as selectSvgElement, Y as configureSvgSize, ag as clear, ap as getConfig, a0 as sanitizeText, an as cleanAndMerge, ao as defaultConfig_default, aJ as getThemeVariables3, aK as band, aL as computeDimensionOfText, aI as linear, aM as line } from "./router-Cp26PX4S.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-CtVENsS-.js");
19384
+ const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-PthNKGfG.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-D0RjRa7t.js").then((n2) => n2.dJ);
19960
+ const routerEntry = await import("./assets/router-Cp26PX4S.js").then((n2) => n2.dJ);
19961
19961
  const startEntry = await import("./assets/start-HYkvq4Ni.js");
19962
19962
  return { startEntry, routerEntry };
19963
19963
  }
@@ -29871,7 +29871,8 @@ function* mapClaudeCodeEvent(message, state) {
29871
29871
  toolCallId,
29872
29872
  toolName,
29873
29873
  displayTitle: formatToolTitle(toolName, input),
29874
- input
29874
+ input,
29875
+ interactive: INTERACTIVE_TOOLS.has(toolName)
29875
29876
  };
29876
29877
  processedUpTo = i2 + 1;
29877
29878
  } else {
@@ -29953,10 +29954,10 @@ function* mapClaudeCodeEvent(message, state) {
29953
29954
  function mapClaudeCodeHookStatus(payload) {
29954
29955
  const hookEvent = typeof payload.hook_event_name === "string" ? payload.hook_event_name : "";
29955
29956
  const toolName = typeof payload.tool_name === "string" ? payload.tool_name : "";
29956
- if (hookEvent === "Stop" || hookEvent === "PermissionRequest") {
29957
+ if (hookEvent === "Stop") {
29957
29958
  return "needs_attention";
29958
29959
  }
29959
- if (hookEvent === "PreToolUse" && (toolName === "AskUserQuestion" || toolName === "ExitPlanMode")) {
29960
+ if ((hookEvent === "PreToolUse" || hookEvent === "PermissionRequest") && INTERACTIVE_TOOLS.has(toolName)) {
29960
29961
  return "needs_attention";
29961
29962
  }
29962
29963
  return "working";
@@ -29978,7 +29979,7 @@ function discoverClaudeSkills(workspaceDir) {
29978
29979
  }
29979
29980
  return Array.from(skillMap.values()).sort((a6, b10) => a6.name.localeCompare(b10.name));
29980
29981
  }
29981
- var log2, SESSION_TAIL_BYTES, cumulativeUsageBySession, MAX_CUMULATIVE_SESSIONS, ClaudeCodeAdapter, CLAUDE_CODE_DEFAULT_BINARY;
29982
+ var log2, INTERACTIVE_TOOLS, SESSION_TAIL_BYTES, cumulativeUsageBySession, MAX_CUMULATIVE_SESSIONS, ClaudeCodeAdapter, CLAUDE_CODE_DEFAULT_BINARY;
29982
29983
  var init_claude_code = __esm({
29983
29984
  "../../packages/coding-agent/src/adapters/claude-code.ts"() {
29984
29985
  init_sdk();
@@ -29987,6 +29988,7 @@ var init_claude_code = __esm({
29987
29988
  init_pricing();
29988
29989
  init_skills();
29989
29990
  log2 = createLogger("coding-agent:claude-code");
29991
+ INTERACTIVE_TOOLS = /* @__PURE__ */ new Set(["AskUserQuestion", "ExitPlanMode"]);
29990
29992
  SESSION_TAIL_BYTES = 64 * 1024;
29991
29993
  cumulativeUsageBySession = /* @__PURE__ */ new Map();
29992
29994
  MAX_CUMULATIVE_SESSIONS = 500;
@@ -30034,7 +30036,6 @@ var init_claude_code = __esm({
30034
30036
  },
30035
30037
  "runSession starting"
30036
30038
  );
30037
- const INTERACTIVE_TOOLS = /* @__PURE__ */ new Set(["AskUserQuestion", "ExitPlanMode"]);
30038
30039
  const canUseTool = async (toolName, input, options3) => {
30039
30040
  if (!INTERACTIVE_TOOLS.has(toolName) || !this.onUserInputNeeded) {
30040
30041
  return { behavior: "allow", updatedInput: input };
@@ -89697,7 +89698,7 @@ var require_dist5 = __commonJS({
89697
89698
  });
89698
89699
 
89699
89700
  // start-server.ts
89700
- import { appendFileSync as appendFileSync2, createReadStream as createReadStream3, mkdirSync as mkdirSync9, readFileSync as readFileSync10, statSync as statSync10 } from "node:fs";
89701
+ import { appendFileSync as appendFileSync2, createReadStream as createReadStream3, mkdirSync as mkdirSync8, readFileSync as readFileSync9, statSync as statSync10 } from "node:fs";
89701
89702
  import { createServer } from "node:http";
89702
89703
  import { basename as basename3, join as join32, resolve as resolve11, sep as sep8 } from "node:path";
89703
89704
 
@@ -93897,46 +93898,9 @@ async function mapHookPayloadToStatus(agentType, payload) {
93897
93898
  // ../../packages/coding-agent/src/install-skills.ts
93898
93899
  import { homedir as homedir5 } from "node:os";
93899
93900
  import { join as join8 } from "node:path";
93900
- async function getInstallSkillsDir(type, home = homedir5()) {
93901
- switch (type) {
93902
- case "claude-code": {
93903
- const { getClaudeCodeInstallSkillsDir: getClaudeCodeInstallSkillsDir2 } = await Promise.resolve().then(() => (init_claude_code(), claude_code_exports));
93904
- return getClaudeCodeInstallSkillsDir2(home);
93905
- }
93906
- case "codex": {
93907
- const { getCodexInstallSkillsDir: getCodexInstallSkillsDir2 } = await Promise.resolve().then(() => (init_codex(), codex_exports));
93908
- return getCodexInstallSkillsDir2(home);
93909
- }
93910
- case "gemini-cli": {
93911
- const { getGeminiCliInstallSkillsDir: getGeminiCliInstallSkillsDir2 } = await Promise.resolve().then(() => (init_gemini_cli(), gemini_cli_exports));
93912
- return getGeminiCliInstallSkillsDir2(home);
93913
- }
93914
- case "opencode": {
93915
- const { getOpenCodeInstallSkillsDir: getOpenCodeInstallSkillsDir2 } = await Promise.resolve().then(() => (init_opencode(), opencode_exports));
93916
- return getOpenCodeInstallSkillsDir2(home);
93917
- }
93918
- default:
93919
- return null;
93920
- }
93921
- }
93922
93901
  function getSharedSkillsDir(home = homedir5()) {
93923
93902
  return join8(home, ".agents", "skills");
93924
93903
  }
93925
- var SUPPORTED_AGENT_TYPES = ["claude-code", "codex", "gemini-cli", "opencode"];
93926
- function getAgentConfigDir(type, home = homedir5()) {
93927
- switch (type) {
93928
- case "claude-code":
93929
- return join8(home, ".claude");
93930
- case "codex":
93931
- return process.env.CODEX_HOME || join8(home, ".codex");
93932
- case "gemini-cli":
93933
- return join8(home, ".gemini");
93934
- case "opencode":
93935
- return join8(home, ".config", "opencode");
93936
- default:
93937
- return null;
93938
- }
93939
- }
93940
93904
 
93941
93905
  // ../../packages/coding-agent/src/index.ts
93942
93906
  init_pricing();
@@ -124169,7 +124133,6 @@ async function runTask(chatId, task) {
124169
124133
  emit({ kind: "update", status: working });
124170
124134
  const sharedDir = join21(bandHome(), "shared", task.workspaceId);
124171
124135
  mkdirSync6(sharedDir, { recursive: true });
124172
- const INTERACTIVE_TOOLS = /* @__PURE__ */ new Set(["AskUserQuestion", "ExitPlanMode"]);
124173
124136
  let textPartId = "";
124174
124137
  let textStarted = false;
124175
124138
  let finished = false;
@@ -124259,7 +124222,7 @@ async function runTask(chatId, task) {
124259
124222
  case "tool-use": {
124260
124223
  endText();
124261
124224
  announcedToolCalls.add(event.toolCallId);
124262
- if (!INTERACTIVE_TOOLS.has(event.toolName)) {
124225
+ if (!event.interactive) {
124263
124226
  broadcast(chatId, {
124264
124227
  type: "tool-input-available",
124265
124228
  toolCallId: event.toolCallId,
@@ -137213,14 +137176,14 @@ import { platform as platform2 } from "node:os";
137213
137176
  import { dirname as dirname4, join as join23, resolve as resolve5 } from "node:path";
137214
137177
  var SYMLINK_PATH = "/usr/local/bin/band";
137215
137178
  function findCliBinaryAt(opts) {
137216
- const { cwd, dirname: dirname9 } = opts;
137179
+ const { cwd, dirname: dirname8 } = opts;
137217
137180
  const appsStrategies = [
137218
137181
  // cwd = apps/web/ (Vite dev and production server)
137219
137182
  resolve5(cwd, ".."),
137220
137183
  // cwd = project root (fallback)
137221
137184
  resolve5(cwd, "apps"),
137222
137185
  // From this source file in dev (apps/web/src/server/services/ → apps/)
137223
- resolve5(dirname9, "..", "..", "..", ".."),
137186
+ resolve5(dirname8, "..", "..", "..", ".."),
137224
137187
  // From bundled `dist/` file (<Resources>/web/dist/ → <Resources>/) only
137225
137188
  // — in dev mode this resolves to `apps/web/src/`, which has no
137226
137189
  // `cli/target/<profile>/band` and is harmless; the four-level walk
@@ -137228,7 +137191,7 @@ function findCliBinaryAt(opts) {
137228
137191
  // layout under <Resources>/cli/ would still resolve. Today's Electron
137229
137192
  // bundle ships the binary under `binaries/` (handled by Strategy B),
137230
137193
  // so this strategy never hits in production either.
137231
- resolve5(dirname9, "..", "..", "..")
137194
+ resolve5(dirname8, "..", "..", "..")
137232
137195
  ];
137233
137196
  for (const appsDir of appsStrategies) {
137234
137197
  for (const profile of ["release", "debug"]) {
@@ -137246,7 +137209,7 @@ function findCliBinaryAt(opts) {
137246
137209
  resolve5(cwd, "..", "binaries", exe),
137247
137210
  // From the bundled dist file (<Resources>/web/dist/start-server.mjs)
137248
137211
  // → <Resources>/binaries/band
137249
- resolve5(dirname9, "..", "..", "binaries", exe)
137212
+ resolve5(dirname8, "..", "..", "binaries", exe)
137250
137213
  ];
137251
137214
  for (const p6 of electronCandidates) {
137252
137215
  try {
@@ -143028,21 +142991,9 @@ init_src();
143028
142991
 
143029
142992
  // src/server/services/cli-skills-service.ts
143030
142993
  import { execFile as execFile10 } from "node:child_process";
143031
- import {
143032
- existsSync as existsSync14,
143033
- lstatSync as lstatSync3,
143034
- mkdirSync as mkdirSync8,
143035
- mkdtempSync,
143036
- readFileSync as readFileSync9,
143037
- readlinkSync as readlinkSync2,
143038
- realpathSync as realpathSync7,
143039
- rmSync as rmSync2,
143040
- statSync as statSync9,
143041
- symlinkSync as symlinkSync3,
143042
- writeFileSync as writeFileSync4
143043
- } from "node:fs";
143044
- import { homedir as homedir9, tmpdir as tmpdir2 } from "node:os";
143045
- import { dirname as dirname8, join as join31 } from "node:path";
142994
+ import { statSync as statSync9 } from "node:fs";
142995
+ import { homedir as homedir9 } from "node:os";
142996
+ import { join as join31 } from "node:path";
143046
142997
  var BAND_SKILL_NAMES = [
143047
142998
  "band",
143048
142999
  "band-chat",
@@ -143052,26 +143003,6 @@ var BAND_SKILL_NAMES = [
143052
143003
  "band-loop"
143053
143004
  ];
143054
143005
  var SKILL_FILE = "SKILL.md";
143055
- async function resolveSkillTargets(home = homedir9()) {
143056
- const seen = /* @__PURE__ */ new Set();
143057
- const out = [];
143058
- for (const type of SUPPORTED_AGENT_TYPES) {
143059
- const configDir = getAgentConfigDir(type, home);
143060
- if (!configDir) continue;
143061
- try {
143062
- const stat5 = statSync9(configDir);
143063
- if (!stat5.isDirectory()) continue;
143064
- } catch {
143065
- continue;
143066
- }
143067
- const skillsDir = await getInstallSkillsDir(type, home);
143068
- if (!skillsDir) continue;
143069
- if (seen.has(skillsDir)) continue;
143070
- seen.add(skillsDir);
143071
- out.push({ agentType: type, skillsDir });
143072
- }
143073
- return out;
143074
- }
143075
143006
  async function findBandBinary() {
143076
143007
  try {
143077
143008
  const stat5 = statSync9("/usr/local/bin/band");
@@ -143082,19 +143013,19 @@ async function findBandBinary() {
143082
143013
  if (onPath) return onPath;
143083
143014
  return findCliBinary();
143084
143015
  }
143085
- async function generateSkills(bandPath, outputDir) {
143086
- await new Promise((resolve12, reject) => {
143016
+ async function runBandSkillsInstall(bandPath, home) {
143017
+ return new Promise((resolve12, reject) => {
143087
143018
  execFile10(
143088
143019
  bandPath,
143089
- ["generate-skills", "--output-dir", outputDir],
143020
+ ["--output", "json", "skills", "install", "--home", home],
143090
143021
  { timeout: 3e4 },
143091
- (err, _stdout, stderr) => {
143022
+ (err, stdout, stderr) => {
143092
143023
  if (err) {
143093
143024
  const detail = stderr?.toString().trim();
143094
143025
  reject(new Error(detail ? `${err.message}: ${detail}` : err.message));
143095
143026
  return;
143096
143027
  }
143097
- resolve12();
143028
+ resolve12(stdout.toString());
143098
143029
  }
143099
143030
  );
143100
143031
  });
@@ -143111,185 +143042,58 @@ async function installSkills(opts = {}) {
143111
143042
  };
143112
143043
  const home = opts.home ?? homedir9();
143113
143044
  const sharedDir = getSharedSkillsDir(home);
143114
- const targets = await resolveSkillTargets(home);
143045
+ const markAllSkipped = () => {
143046
+ for (const name3 of BAND_SKILL_NAMES) {
143047
+ result.skipped.push(join31(sharedDir, name3, SKILL_FILE));
143048
+ }
143049
+ };
143115
143050
  const bandPath = await findBandBinary();
143116
143051
  if (!bandPath) {
143117
143052
  opts.log?.warn(
143118
143053
  "Skipping CLI skills sync \u2014 band binary not found (no symlink, not on PATH, no bundled sidecar)"
143119
143054
  );
143120
- for (const name3 of BAND_SKILL_NAMES) {
143121
- result.skipped.push(join31(sharedDir, name3, SKILL_FILE));
143122
- }
143055
+ markAllSkipped();
143123
143056
  return result;
143124
143057
  }
143125
- const stagingDir = mkdtempSync(join31(tmpdir2(), "band-skills-"));
143058
+ let raw;
143126
143059
  try {
143127
- await generateSkills(bandPath, stagingDir);
143128
- for (const name3 of BAND_SKILL_NAMES) {
143129
- const sourcePath = join31(stagingDir, name3, SKILL_FILE);
143130
- const destPath = join31(sharedDir, name3, SKILL_FILE);
143131
- if (!existsSync14(sourcePath)) {
143132
- opts.log?.warn("Generated skill missing from staging dir: %s (skipping)", sourcePath);
143133
- result.skipped.push(destPath);
143134
- continue;
143135
- }
143136
- const sourceContent = readFileSync9(sourcePath);
143137
- let existingContent = null;
143138
- try {
143139
- existingContent = readFileSync9(destPath);
143140
- } catch (err) {
143141
- const code = err.code;
143142
- if (code !== "ENOENT") {
143143
- opts.log?.warn(
143144
- "Failed to read existing shared skill at %s: %s \u2014 overwriting",
143145
- destPath,
143146
- err instanceof Error ? err.message : String(err)
143147
- );
143148
- }
143149
- }
143150
- if (existingContent?.equals(sourceContent)) {
143151
- result.unchanged.push(destPath);
143152
- continue;
143153
- }
143154
- mkdirSync8(dirname8(destPath), { recursive: true });
143155
- writeFileSync4(destPath, sourceContent);
143156
- if (existingContent) {
143157
- result.updated.push(destPath);
143158
- opts.log?.info(
143159
- "Updated %s skill at %s (content differed \u2014 local edits, if any, were overwritten)",
143160
- name3,
143161
- destPath
143162
- );
143163
- } else {
143164
- result.written.push(destPath);
143165
- opts.log?.info("Installed %s skill at %s", name3, destPath);
143166
- }
143167
- }
143168
- if (targets.length === 0) {
143169
- opts.log?.info(
143170
- "No supported coding agents detected on host \u2014 skills installed to %s but no agent symlinks created",
143171
- sharedDir
143172
- );
143173
- return result;
143174
- }
143175
- for (const target of targets) {
143176
- for (const name3 of BAND_SKILL_NAMES) {
143177
- const shared2 = join31(sharedDir, name3);
143178
- const link2 = join31(target.skillsDir, name3);
143179
- if (!existsSync14(shared2)) {
143180
- result.skipped.push(link2);
143181
- continue;
143182
- }
143183
- const outcome = ensureSymlink({ link: link2, target: shared2, log: opts.log });
143184
- switch (outcome.kind) {
143185
- case "created":
143186
- result.linked.push(link2);
143187
- opts.log?.info("Linked %s skills/%s \u2192 %s", target.agentType, name3, shared2);
143188
- break;
143189
- case "already":
143190
- result.alreadyLinked.push(link2);
143191
- break;
143192
- case "conflict":
143193
- result.conflicts.push(`${link2}: ${outcome.reason}`);
143194
- opts.log?.warn(
143195
- "Skill symlink conflict at %s \u2014 %s (leaving as-is; remove it manually to re-link)",
143196
- link2,
143197
- outcome.reason
143198
- );
143199
- break;
143200
- }
143201
- }
143202
- }
143203
- } finally {
143204
- try {
143205
- rmSync2(stagingDir, { recursive: true, force: true });
143206
- } catch {
143207
- }
143060
+ raw = await runBandSkillsInstall(bandPath, home);
143061
+ } catch (err) {
143062
+ opts.log?.warn(
143063
+ "Skipping CLI skills sync \u2014 `band skills install` failed: %s",
143064
+ err instanceof Error ? err.message : String(err)
143065
+ );
143066
+ markAllSkipped();
143067
+ return result;
143208
143068
  }
143209
- return result;
143210
- }
143211
- function ensureSymlink(args) {
143212
- return ensureSymlinkInner(args, false);
143213
- }
143214
- function ensureSymlinkInner(args, retried) {
143215
- const { link: link2, target } = args;
143216
- mkdirSync8(dirname8(link2), { recursive: true });
143217
- let existing = null;
143069
+ let parsed;
143218
143070
  try {
143219
- existing = lstatSync3(link2);
143071
+ parsed = JSON.parse(raw);
143220
143072
  } catch (err) {
143221
- const code = err.code;
143222
- if (code !== "ENOENT") {
143223
- return {
143224
- kind: "conflict",
143225
- reason: `lstat failed: ${err instanceof Error ? err.message : String(err)}`
143226
- };
143227
- }
143228
- }
143229
- if (existing === null) {
143230
- try {
143231
- symlinkSync3(target, link2, "dir");
143232
- return { kind: "created" };
143233
- } catch (err) {
143234
- if (err.code === "EEXIST") {
143235
- if (retried) {
143236
- return {
143237
- kind: "conflict",
143238
- reason: "EEXIST after retry \u2014 filesystem state is inconsistent"
143239
- };
143240
- }
143241
- return ensureSymlinkInner(args, true);
143242
- }
143243
- return {
143244
- kind: "conflict",
143245
- reason: `failed to create symlink: ${err instanceof Error ? err.message : String(err)}`
143246
- };
143247
- }
143248
- }
143249
- if (existing.isSymbolicLink()) {
143250
- let pointsAt;
143251
- try {
143252
- pointsAt = realpathSync7(link2);
143253
- } catch (err) {
143254
- return {
143255
- kind: "conflict",
143256
- reason: `existing symlink is broken (${err instanceof Error ? err.message : String(err)})`
143257
- };
143258
- }
143259
- let targetReal;
143260
- try {
143261
- targetReal = realpathSync7(target);
143262
- } catch (err) {
143263
- return {
143264
- kind: "conflict",
143265
- reason: `target unreadable (${err instanceof Error ? err.message : String(err)})`
143266
- };
143267
- }
143268
- if (pointsAt === targetReal) {
143269
- return { kind: "already" };
143270
- }
143271
- return {
143272
- kind: "conflict",
143273
- reason: `symlink points to ${readlinkSafe(link2)} (expected ${target})`
143274
- };
143275
- }
143276
- if (existing.isDirectory()) {
143277
- return {
143278
- kind: "conflict",
143279
- reason: "path is a real directory (not a symlink)"
143280
- };
143073
+ opts.log?.warn(
143074
+ "Skipping CLI skills sync \u2014 `band skills install` returned invalid JSON: %s",
143075
+ err instanceof Error ? err.message : String(err)
143076
+ );
143077
+ markAllSkipped();
143078
+ return result;
143281
143079
  }
143282
- return {
143283
- kind: "conflict",
143284
- reason: "path is a regular file (not a directory or symlink)"
143285
- };
143286
- }
143287
- function readlinkSafe(p6) {
143288
- try {
143289
- return readlinkSync2(p6);
143290
- } catch {
143291
- return "<unreadable>";
143080
+ result.written = parsed.shared?.written ?? [];
143081
+ result.updated = parsed.shared?.updated ?? [];
143082
+ result.unchanged = parsed.shared?.unchanged ?? [];
143083
+ result.linked = parsed.symlinks?.linked ?? [];
143084
+ result.alreadyLinked = parsed.symlinks?.alreadyLinked ?? [];
143085
+ result.conflicts = (parsed.symlinks?.conflicts ?? []).map((c2) => `${c2.path}: ${c2.reason}`);
143086
+ for (const path3 of result.written) opts.log?.info("Installed skill at %s", path3);
143087
+ for (const path3 of result.updated) {
143088
+ opts.log?.info("Updated skill at %s (content differed \u2014 shipped version reinstalled)", path3);
143089
+ }
143090
+ for (const conflict of result.conflicts) {
143091
+ opts.log?.warn(
143092
+ "Skill symlink conflict \u2014 %s (left as-is; remove it manually to re-link)",
143093
+ conflict
143094
+ );
143292
143095
  }
143096
+ return result;
143293
143097
  }
143294
143098
 
143295
143099
  // src/server/services/setup-service.ts
@@ -143460,7 +143264,7 @@ var setupService = new SetupService();
143460
143264
  // start-server.ts
143461
143265
  function logCrash(message) {
143462
143266
  try {
143463
- mkdirSync9(bandHome(), { recursive: true });
143267
+ mkdirSync8(bandHome(), { recursive: true });
143464
143268
  appendFileSync2(join32(bandHome(), "server.log"), message, "utf-8");
143465
143269
  } catch {
143466
143270
  }
@@ -143527,7 +143331,7 @@ function getOpenApiSpec() {
143527
143331
  doc2.servers = [{ url: "/trpc" }];
143528
143332
  return JSON.stringify(doc2, null, 2);
143529
143333
  }
143530
- const openApiDoc = JSON.parse(readFileSync10(join32(SERVER_ROOT, "openapi.json"), "utf-8"));
143334
+ const openApiDoc = JSON.parse(readFileSync9(join32(SERVER_ROOT, "openapi.json"), "utf-8"));
143531
143335
  openApiDoc.servers = [{ url: "/trpc" }];
143532
143336
  return JSON.stringify(openApiDoc, null, 2);
143533
143337
  })().catch((err) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@band-app/server",
3
- "version": "0.21.1",
3
+ "version": "0.21.2",
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.21.1",
121
- "@band-app/ui": "^0.21.1",
122
- "@band-app/logger": "^0.21.1"
120
+ "@band-app/coding-agent": "^0.21.2",
121
+ "@band-app/ui": "^0.21.2",
122
+ "@band-app/logger": "^0.21.2"
123
123
  },
124
124
  "scripts": {
125
125
  "dev": "NODE_ENV=development tsx watch start-server.ts",
@@ -1 +0,0 @@
1
- import{am as n,an as o}from"./main-BlnV6QZf.js";const t=(a,r)=>n.lang.round(o.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-DbcDvN95.js";import{W as i}from"./main-BlnV6QZf.js";import"./chunk-FMBD7UC4-BcNswQs0.js";import"./chunk-55IACEB6-DD5joSGW.js";import"./chunk-QN33PNHL-DmBX24F0.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-DbcDvN95.js";import{W as i}from"./main-BlnV6QZf.js";import"./chunk-FMBD7UC4-BcNswQs0.js";import"./chunk-55IACEB6-DD5joSGW.js";import"./chunk-QN33PNHL-DmBX24F0.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-BTf1vKsV.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- import{s as t,b as r,a,S as s}from"./chunk-DI55MBZ5-D7NtzYbv.js";import{W as i}from"./main-BlnV6QZf.js";import"./chunk-55IACEB6-DD5joSGW.js";import"./chunk-QN33PNHL-DmBX24F0.js";var u={parser:a,get db(){return new s(2)},renderer:r,styles:t,init:i(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{u as diagram};