@band-app/server 0.16.8 → 0.16.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/DockviewBrowserContainer-CCBAkU1p.js +5 -0
- package/dist/client/assets/DockviewTerminalContainer-B9hdDoMz.js +2 -0
- package/dist/client/assets/{TerminalPanel-C6VJtwdn.js → TerminalPanel-BKfWmj6W.js} +1 -1
- package/dist/client/assets/_basePickBy-uVqvgsJc.js +1 -0
- package/dist/client/assets/{_baseUniq-K3DMbXu0.js → _baseUniq-7i7L1uNE.js} +1 -1
- package/dist/client/assets/{arc-BkgOQsVG.js → arc-DiYEQGs3.js} +1 -1
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-CD44Dllc.js → architectureDiagram-VXUJARFQ-C5z8L1iK.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-BKiU7fF0.js → blockDiagram-VD42YOAC-CXQSSz3O.js} +1 -1
- package/dist/client/assets/{c4Diagram-YG6GDRKO-CYISxlyF.js → c4Diagram-YG6GDRKO-DplRXCR2.js} +1 -1
- package/dist/client/assets/channel-BnMJuhcI.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-Bphc00nU.js → chunk-4BX2VUAB-B4Mk_d7A.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CfN6hb2c.js → chunk-55IACEB6-B0hf8Eje.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-DltWViHS.js → chunk-B4BG7PRW-DlN9tUxh.js} +1 -1
- package/dist/client/assets/{chunk-DI55MBZ5-51JXB972.js → chunk-DI55MBZ5-a11zyhq4.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CynepQnx.js → chunk-FMBD7UC4-aGGVV1yn.js} +1 -1
- package/dist/client/assets/{chunk-QN33PNHL-B45qeM-p.js → chunk-QN33PNHL-Dit4S-yJ.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-1ObdmeeM.js → chunk-QZHKN3VN-L-h1VSi0.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-CWtn_mgw.js → chunk-TZMSLE5B-DpK-hWaC.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-D89oCSXI.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-D89oCSXI.js +1 -0
- package/dist/client/assets/clone-X7FA7kE2.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-B4IAbafd.js → cose-bilkent-S5V4N54A-CzoIK-3W.js} +1 -1
- package/dist/client/assets/{dagre-6UL2VRFP-BGoRZDH9.js → dagre-6UL2VRFP-BhfXeb7k.js} +1 -1
- package/dist/client/assets/{diagram-PSM6KHXK-DIkN7d-V.js → diagram-PSM6KHXK-BwFVwR1b.js} +1 -1
- package/dist/client/assets/{diagram-QEK2KX5R-B-hPXzou.js → diagram-QEK2KX5R-BO-CEopy.js} +1 -1
- package/dist/client/assets/{diagram-S2PKOQOG-BlUeis_2.js → diagram-S2PKOQOG-BxiH83lN.js} +1 -1
- package/dist/client/assets/{erDiagram-Q2GNP2WA-DZUjamhk.js → erDiagram-Q2GNP2WA-kUd-gmjz.js} +1 -1
- package/dist/client/assets/{flowDiagram-NV44I4VS-oIHer-h-.js → flowDiagram-NV44I4VS-CHbLqCKB.js} +1 -1
- package/dist/client/assets/{ganttDiagram-JELNMOA3-D8LfLthv.js → ganttDiagram-JELNMOA3-B7gBcAFl.js} +4 -4
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-BgFUKaMK.js → gitGraphDiagram-V2S2FVAM-gca_jqKQ.js} +1 -1
- package/dist/client/assets/{graph-r-V7AF54.js → graph-CSi_akmB.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-BHkeGyHR.js → highlighted-body-B3W2YXNL-C2a-lsk8.js} +1 -1
- package/dist/client/assets/{index-fbwZk1fH.js → index-2F-slvqo.js} +1 -1
- package/dist/client/assets/{index-BDQWeqNk.js → index-5X7JRvnK.js} +1 -1
- package/dist/client/assets/{index-u_2V_RF4.js → index-B0ZcEU4c.js} +1 -1
- package/dist/client/assets/{index-CYvgC-U1.js → index-BJP1qdPz.js} +1 -1
- package/dist/client/assets/{index-W1CPMGYX.js → index-BPf6S9f1.js} +1 -1
- package/dist/client/assets/{index-BiUUT09K.js → index-C-3PAt1d.js} +1 -1
- package/dist/client/assets/{index-DQixQE5Y.js → index-C-6dsPog.js} +1 -1
- package/dist/client/assets/{index-DLFTwdhm.js → index-C4PISrIW.js} +1 -1
- package/dist/client/assets/{index-foc9a7eE.js → index-C4ee_PQ0.js} +1 -1
- package/dist/client/assets/{index-BvWkKnfY.js → index-CA1NuCd_.js} +1 -1
- package/dist/client/assets/{index-NMjGSNmU.js → index-CNQHGhCu.js} +1 -1
- package/dist/client/assets/{index-CXHZbHRT.js → index-CiKTedrx.js} +1 -1
- package/dist/client/assets/{index-CNerXIiJ.js → index-DNrK0iIn.js} +1 -1
- package/dist/client/assets/{index-DhTLiwux.js → index-DfHcm4JM.js} +1 -1
- package/dist/client/assets/{index-CdJ3WH3f.js → index-T_1b5WRg.js} +1 -1
- package/dist/client/assets/{index-CFEu-Cf9.js → index-oolizINO.js} +1 -1
- package/dist/client/assets/{index-y0IIofTa.js → index-spwNnd85.js} +1 -1
- package/dist/client/assets/{index-DAMgQMyn.js → index-udv0M-ix.js} +1 -1
- package/dist/client/assets/{infoDiagram-HS3SLOUP-xB0m1ffH.js → infoDiagram-HS3SLOUP-BK3MmhkJ.js} +1 -1
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-E4OGYZo3.js → journeyDiagram-XKPGCS4Q-DIY8FE8Z.js} +1 -1
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-DDOW42i6.js → kanban-definition-3W4ZIXB7-Cd_JJ8FN.js} +1 -1
- package/dist/client/assets/{layout-BU7n9QQq.js → layout-Bhb5FQCr.js} +1 -1
- package/dist/client/assets/{linear-CFFUeqRn.js → linear-Cmk2RyH_.js} +1 -1
- package/dist/client/assets/{main-onb8WwfN.js → main-BlRcPsmZ.js} +231 -235
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-BQlhTP7t.js → mindmap-definition-VGOIOE7T-B-WhBVeY.js} +1 -1
- package/dist/client/assets/{pieDiagram-ADFJNKIX-khlEdX5z.js → pieDiagram-ADFJNKIX-CYoHsaM9.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-D7D_64Ur.js → quadrantDiagram-AYHSOK5B-DHBoMUCQ.js} +1 -1
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-Dd-Qxkau.js → requirementDiagram-UZGBJVZJ-DjS5RONh.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-TZEHDZUN-BxF-L0mm.js → sankeyDiagram-TZEHDZUN-DmhEbBY-.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-UH13bSlf.js → sequenceDiagram-WL72ISMW-CzqbRfb_.js} +1 -1
- package/dist/client/assets/{square-terminal-BgnPkQhG.js → square-terminal-CNHJa6OY.js} +1 -1
- package/dist/client/assets/{stateDiagram-FKZM4ZOC-DJXW-Mwx.js → stateDiagram-FKZM4ZOC-CafvdTb3.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BkKHK-CQ.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-DoLvii7e.js → timeline-definition-IT6M3QCI-CNKMKDwq.js} +1 -1
- package/dist/client/assets/{treemap-GDKQZRPO-C6cooeby.js → treemap-GDKQZRPO-DCEPrZh7.js} +1 -1
- package/dist/client/assets/{useSessionListContext-DJKT08Su.js → useSessionListContext-xer-Wcmf.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-BZyIo0Fq.js → workspace._workspaceId-CgG1n_1x.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId.changes-WzxDrDHA.js → workspace._workspaceId.changes-BKX7lUhX.js} +1 -1
- package/dist/client/assets/workspace._workspaceId.code-BcnxRdZi.js +1 -0
- package/dist/client/assets/{workspace._workspaceId.code._-DjAaAaSY.js → workspace._workspaceId.code._-BbOt6tOD.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId.code.index-D0PytT4F.js → workspace._workspaceId.code.index-DC2535x-.js} +1 -1
- package/dist/client/assets/workspace._workspaceId.index-CNjq1nDf.js +1 -0
- package/dist/client/assets/{workspace._workspaceId.terminal-BeG77FAq.js → workspace._workspaceId.terminal-DhYn8I5t.js} +2 -2
- package/dist/client/assets/{xychartDiagram-PRI3JC2R-DjUMVf0W.js → xychartDiagram-PRI3JC2R-Cr18I3A3.js} +1 -1
- package/dist/openapi.json +17 -12
- package/dist/server/assets/DockviewBrowserContainer-Bm7ARaqd.js +1934 -0
- package/dist/server/assets/{DockviewTerminalContainer-Dl-H-7q5.js → DockviewTerminalContainer-BbMZgBJ8.js} +32 -3
- package/dist/server/assets/{TerminalPanel-Nx4CmvlW.js → TerminalPanel-BmhYCf33.js} +1 -1
- package/dist/server/assets/{_basePickBy-BG2OhlJc.js → _basePickBy-C7CNOUDi.js} +2 -2
- package/dist/server/assets/{_baseUniq-DB6mvOCI.js → _baseUniq-DeF47vVO.js} +1 -1
- package/dist/server/assets/{_tanstack-start-manifest_v-2XlZMknZ.js → _tanstack-start-manifest_v-BNCQ-izx.js} +1 -1
- package/dist/server/assets/{arc-DaVwrLrM.js → arc-P5FY7IYH.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-DIi4TM4E.js → architecture-7HQA4BMR-LvprLHYS.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-DBRmPh1t.js → architectureDiagram-VXUJARFQ-Br4iiUzH.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-CFdPLnD-.js → blockDiagram-VD42YOAC-BahODDhX.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-BJi6gbIt.js → c4Diagram-YG6GDRKO-CQcZX6cr.js} +2 -2
- package/dist/server/assets/{channel-DkntTxx0.js → channel-BmAB_ZKU.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-D2FiW3aP.js → chunk-4BX2VUAB-YUvszr4w.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-jZmh1Z5I.js → chunk-55IACEB6-BUgBPiJd.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-CNZgnxgA.js → chunk-B4BG7PRW-BxuWeZlV.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-q0pODS0a.js → chunk-DI55MBZ5-DuGkdvte.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-C96aN_Us.js → chunk-FMBD7UC4-qY-BVG34.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-Dam5gy0m.js → chunk-QN33PNHL-BM_oi8-e.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-CXCmBbbu.js → chunk-QZHKN3VN-BL6_-at8.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-CbK3gIHb.js → chunk-TZMSLE5B-38NhX5at.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-BHB2vhDs.js → classDiagram-2ON5EDUG-CwIsZ53p.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-BHB2vhDs.js → classDiagram-v2-WZHVMYZB-CwIsZ53p.js} +5 -5
- package/dist/server/assets/{clone-CN5lfg2Z.js → clone-BXHuGM8i.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-Bq-O80sc.js → cose-bilkent-S5V4N54A-D1CdgGvI.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-U80sNC8f.js → dagre-6UL2VRFP-UMvdMLG3.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-5ksUDb2Z.js → diagram-PSM6KHXK-DtOD93m7.js} +7 -7
- package/dist/server/assets/{diagram-QEK2KX5R-COmUOoRU.js → diagram-QEK2KX5R-DViyYq-y.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-BOTznhFu.js → diagram-S2PKOQOG-C42mRVEn.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-CZOlCzBi.js → erDiagram-Q2GNP2WA-D14z9IvB.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-ObYcdqyZ.js → flowDiagram-NV44I4VS-BYBNOZwM.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-6c9A3Tfv.js → ganttDiagram-JELNMOA3-CaG3uoK-.js} +2 -2
- package/dist/server/assets/{gitGraph-G5XIXVHT-Q_zXZbiJ.js → gitGraph-G5XIXVHT-Dsx3dV0R.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-C-GqaejI.js → gitGraphDiagram-V2S2FVAM-CrSfx7b3.js} +7 -7
- package/dist/server/assets/{graph-CGXsNa6T.js → graph-gBFInK6H.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-CjyCfwez.js → highlighted-body-B3W2YXNL-DjTWk17l.js} +1 -1
- package/dist/server/assets/{index-BaYLnq50.js → index-2gWBdIrR.js} +2 -2
- package/dist/server/assets/{index-CAfRymUE.js → index-3wtbr7va.js} +3 -3
- package/dist/server/assets/{index-C0kihLnk.js → index-5N2Gh0ba.js} +2 -2
- package/dist/server/assets/{index-DIdSfU9-.js → index-6Zof9vm8.js} +1 -1
- package/dist/server/assets/{index-DIahp6rS.js → index-B84Urg23.js} +2 -2
- package/dist/server/assets/{index-D_0vKELK.js → index-Bd5jTryJ.js} +2 -2
- package/dist/server/assets/{index-BBvVnzgd.js → index-Bs6a6-xI.js} +5 -5
- package/dist/server/assets/{index-DnWmaxai.js → index-Bw42FDwO.js} +2 -2
- package/dist/server/assets/{index-DKtCHZcS.js → index-C245EJn1.js} +2 -2
- package/dist/server/assets/{index-C-7vS9m8.js → index-C3N_Nx6h.js} +2 -2
- package/dist/server/assets/{index-DU_XVqOC.js → index-CD97pPmc.js} +1 -1
- package/dist/server/assets/{index-BfyUYDbk.js → index-CwQ5qWPC.js} +5 -5
- package/dist/server/assets/{index-C71uG8NB.js → index-DXgP0Lsu.js} +2 -2
- package/dist/server/assets/{index-CxSyZwen.js → index-DZZ6NiTf.js} +3 -3
- package/dist/server/assets/{index-DejplVdQ.js → index-DsGPaWHg.js} +2 -2
- package/dist/server/assets/{index-73YfcfUk.js → index-Dv-16VYI.js} +2 -2
- package/dist/server/assets/{index-B3U9PRLr.js → index-QxgXX0fb.js} +2 -2
- package/dist/server/assets/{index-ukALXr65.js → index-egmIrLx2.js} +4 -4
- package/dist/server/assets/{info-VBDWY6EO-BsWgc-Ym.js → info-VBDWY6EO-CueOsYFZ.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-C04udjz-.js → infoDiagram-HS3SLOUP-CeyMzohL.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-D3MBfJwF.js → journeyDiagram-XKPGCS4Q-ANqeM_TM.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-Czuz4I_Q.js → kanban-definition-3W4ZIXB7-B0RkH45q.js} +2 -2
- package/dist/server/assets/{layout-D6n2z2ff.js → layout-JjP5jdu6.js} +4 -4
- package/dist/server/assets/{linear-BDP9KC1O.js → linear-BJgoq5J4.js} +1 -1
- package/dist/server/assets/{mermaid-3ZIDBTTL-oS_2f_Id.js → mermaid-3ZIDBTTL-CFPuUseQ.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-DRwka5gl.js → mermaid-parser.core-CKKZ1VFr.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-BPhhfr5z.js → mindmap-definition-VGOIOE7T-DlEXF5z8.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-XJIQk327.js → packet-DYOGHKS2-CvyxHTRM.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-BEbH9jgO.js → pie-VRWISCQL-DfpVZlpC.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-oLEFnRFT.js → pieDiagram-ADFJNKIX-CWkrHsNk.js} +7 -7
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-nsrtyikJ.js → quadrantDiagram-AYHSOK5B-C25p2xz7.js} +2 -2
- package/dist/server/assets/{radar-ZZBFDIW7-XJaR0sVv.js → radar-ZZBFDIW7-DWqPsDMi.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-CHkWIv3O.js → requirementDiagram-UZGBJVZJ-ACRVXQGO.js} +3 -3
- package/dist/server/assets/{router-DqGeMR0F.js → router-GhGSLKfP.js} +415 -2225
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-XynupQoy.js → sankeyDiagram-TZEHDZUN-uzNSHudY.js} +1 -1
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-Cnkmy2xq.js → sequenceDiagram-WL72ISMW-C_wFtq8b.js} +3 -3
- package/dist/server/assets/{square-terminal-D7AxF9nB.js → square-terminal-cghvb5Il.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-Chk4nsf_.js → stateDiagram-FKZM4ZOC-B9MGwsuS.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-DNIM2ODr.js → stateDiagram-v2-4FDKWEC3-CLHd8oUa.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-Fz2nlxYj.js → timeline-definition-IT6M3QCI-CqKot5RT.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-DNxd_7q0.js → treemap-GDKQZRPO-mMRojqRQ.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-KoR0msx0.js → workspace._workspaceId-DwsRTXCg.js} +2 -2
- package/dist/server/assets/{workspace._workspaceId.changes-BJoSmFXW.js → workspace._workspaceId.changes-C6vwSbUh.js} +1 -1
- package/dist/server/assets/{workspace._workspaceId.code._-D3Ifnqrr.js → workspace._workspaceId.code._-BJdg1-Gs.js} +1 -1
- package/dist/server/assets/{workspace._workspaceId.code.index-DZZZQ6sT.js → workspace._workspaceId.code.index-CE_CMD_I.js} +1 -1
- package/dist/server/assets/{workspace._workspaceId.index-D1ULJxZJ.js → workspace._workspaceId.index-BPhXMwl8.js} +18 -2
- package/dist/server/assets/{workspace._workspaceId.terminal-BaKW7ZGQ.js → workspace._workspaceId.terminal-BdVDaWNH.js} +2 -2
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-DtoxEUbW.js → xychartDiagram-PRI3JC2R-j8PckQEj.js} +2 -2
- package/dist/server/server.js +2 -2
- package/dist/start-server.mjs +211 -61
- package/package.json +4 -4
- package/dist/client/assets/DockviewTerminalContainer-CfWqm1iB.js +0 -2
- package/dist/client/assets/_basePickBy-CIXRHkYC.js +0 -1
- package/dist/client/assets/channel-DjN8EGMy.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-C3N3Omm0.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-C3N3Omm0.js +0 -1
- package/dist/client/assets/clone-Co6N-TQN.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-BCtCzm2C.js +0 -1
- package/dist/client/assets/workspace._workspaceId.code-DGeXE4KO.js +0 -1
- package/dist/client/assets/workspace._workspaceId.index-DUzba27e.js +0 -1
package/dist/server/assets/{sankeyDiagram-TZEHDZUN-XynupQoy.js → sankeyDiagram-TZEHDZUN-uzNSHudY.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _a, _b, _c;
|
|
2
|
-
import { ai as setDiagramTitle, aj as getDiagramTitle, Z as setAccDescription, _ as getAccDescription, a0 as setAccTitle, $ as getAccTitle, a1 as __name, a2 as getConfig2, ap as defaultConfig2, a3 as select, a$ as setupGraphViewbox, ao as clear, ab as common_default } from "./router-
|
|
2
|
+
import { ai as setDiagramTitle, aj as getDiagramTitle, Z as setAccDescription, _ as getAccDescription, a0 as setAccTitle, $ as getAccTitle, a1 as __name, a2 as getConfig2, ap as defaultConfig2, a3 as select, a$ as setupGraphViewbox, ao as clear, ab as common_default } from "./router-GhGSLKfP.js";
|
|
3
3
|
import { o as ordinal } from "./ordinal-CxptdPJm.js";
|
|
4
4
|
import "../server.js";
|
|
5
5
|
import "node:async_hooks";
|
|
@@ -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-
|
|
3
|
-
import { a1 as __name, ae as setConfig2, a2 as getConfig2, a3 as select, a4 as log, a9 as distExports, a5 as configureSvgSize, a6 as assignWithDepth_default, ab as common_default, a0 as setAccTitle, Z as setAccDescription, ai as setDiagramTitle, $ as getAccTitle, _ as getAccDescription, aj as getDiagramTitle, ak as load, al as JSON_SCHEMA, ao as clear, a8 as sanitizeText, ah as utils_default, aR as hasKatex, aS as calculateMathMLDimensions, aT as parseFontSize, aU as ZERO_WIDTH_SPACE, aV as getUrl, aW as renderKatexSanitized, ax as getConfig } from "./router-
|
|
4
|
-
import { I as ImperativeState } from "./chunk-QZHKN3VN-
|
|
2
|
+
import { a as drawBackgroundRect, b as getTextObj, g as getNoteRect, d as drawRect, c as drawEmbeddedImage, e as drawImage } from "./chunk-TZMSLE5B-38NhX5at.js";
|
|
3
|
+
import { a1 as __name, ae as setConfig2, a2 as getConfig2, a3 as select, a4 as log, a9 as distExports, a5 as configureSvgSize, a6 as assignWithDepth_default, ab as common_default, a0 as setAccTitle, Z as setAccDescription, ai as setDiagramTitle, $ as getAccTitle, _ as getAccDescription, aj as getDiagramTitle, ak as load, al as JSON_SCHEMA, ao as clear, a8 as sanitizeText, ah as utils_default, aR as hasKatex, aS as calculateMathMLDimensions, aT as parseFontSize, aU as ZERO_WIDTH_SPACE, aV as getUrl, aW as renderKatexSanitized, ax as getConfig } from "./router-GhGSLKfP.js";
|
|
4
|
+
import { I as ImperativeState } from "./chunk-QZHKN3VN-BL6_-at8.js";
|
|
5
5
|
import "../server.js";
|
|
6
6
|
import "node:async_hooks";
|
|
7
7
|
import "node:stream";
|
package/dist/server/assets/{stateDiagram-FKZM4ZOC-Chk4nsf_.js → stateDiagram-FKZM4ZOC-B9MGwsuS.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-
|
|
2
|
-
import { a1 as __name, a2 as getConfig2, a3 as select, a4 as log, a5 as configureSvgSize, ab as common_default, aY as line, aZ as curveBasis, aV as getUrl, ah as utils_default } from "./router-
|
|
3
|
-
import { G as Graph } from "./graph-
|
|
4
|
-
import { l as layout } from "./layout-
|
|
5
|
-
import "./chunk-55IACEB6-
|
|
6
|
-
import "./chunk-QN33PNHL-
|
|
1
|
+
import { s as styles_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-DuGkdvte.js";
|
|
2
|
+
import { a1 as __name, a2 as getConfig2, a3 as select, a4 as log, a5 as configureSvgSize, ab as common_default, aY as line, aZ as curveBasis, aV as getUrl, ah as utils_default } from "./router-GhGSLKfP.js";
|
|
3
|
+
import { G as Graph } from "./graph-gBFInK6H.js";
|
|
4
|
+
import { l as layout } from "./layout-JjP5jdu6.js";
|
|
5
|
+
import "./chunk-55IACEB6-BUgBPiJd.js";
|
|
6
|
+
import "./chunk-QN33PNHL-BM_oi8-e.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-
|
|
19
|
-
import "./_basePickBy-
|
|
18
|
+
import "./_baseUniq-DeF47vVO.js";
|
|
19
|
+
import "./_basePickBy-C7CNOUDi.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-
|
|
2
|
-
import { a1 as __name } from "./router-
|
|
3
|
-
import "./chunk-55IACEB6-
|
|
4
|
-
import "./chunk-QN33PNHL-
|
|
1
|
+
import { s as styles_default, b as stateRenderer_v3_unified_default, a as stateDiagram_default, S as StateDB } from "./chunk-DI55MBZ5-DuGkdvte.js";
|
|
2
|
+
import { a1 as __name } from "./router-GhGSLKfP.js";
|
|
3
|
+
import "./chunk-55IACEB6-BUgBPiJd.js";
|
|
4
|
+
import "./chunk-QN33PNHL-BM_oi8-e.js";
|
|
5
5
|
import "../server.js";
|
|
6
6
|
import "node:async_hooks";
|
|
7
7
|
import "node:stream";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a1 as __name, a2 as getConfig2, a4 as log, a3 as select, a$ as setupGraphViewbox, b0 as isDark, b1 as lighten, b2 as darken, at as __export, b3 as commonDb_exports, ao as clear } from "./router-
|
|
2
|
-
import { d as d3arc } from "./arc-
|
|
1
|
+
import { a1 as __name, a2 as getConfig2, a4 as log, a3 as select, a$ as setupGraphViewbox, b0 as isDark, b1 as lighten, b2 as darken, at as __export, b3 as commonDb_exports, ao as clear } from "./router-GhGSLKfP.js";
|
|
2
|
+
import { d as d3arc } from "./arc-P5FY7IYH.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-
|
|
2
|
-
import { T } from "./mermaid-parser.core-
|
|
3
|
-
import "./router-
|
|
1
|
+
import { h as createTreemapServices } from "./mermaid-parser.core-CKKZ1VFr.js";
|
|
2
|
+
import { T } from "./mermaid-parser.core-CKKZ1VFr.js";
|
|
3
|
+
import "./router-GhGSLKfP.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-
|
|
16
|
-
import "./_basePickBy-
|
|
17
|
-
import "./clone-
|
|
15
|
+
import "./_baseUniq-DeF47vVO.js";
|
|
16
|
+
import "./_basePickBy-C7CNOUDi.js";
|
|
17
|
+
import "./clone-BXHuGM8i.js";
|
|
18
18
|
import "path";
|
|
19
19
|
import "os";
|
|
20
20
|
import "net";
|
package/dist/server/assets/{workspace._workspaceId-KoR0msx0.js → workspace._workspaceId-DwsRTXCg.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports, u as useRouterState, O as Outlet } from "../server.js";
|
|
2
|
-
import { be as MessageSquare, bf as GitCompare, bg as FolderOpen, bh as Route, u as useIsDesktop, bi as useDashboardStore, i as isDesktop, f as useNavigate, t as trpc, bj as DesktopDragRegion, bk as ArrowLeft, bl as QuickOpenDialog, bm as SearchFilesDialog, bn as useDiffTarget } from "./router-
|
|
3
|
-
import { S as SquareTerminal } from "./square-terminal-
|
|
2
|
+
import { be as MessageSquare, bf as GitCompare, bg as FolderOpen, bh as Route, u as useIsDesktop, bi as useDashboardStore, i as isDesktop, f as useNavigate, t as trpc, bj as DesktopDragRegion, bk as ArrowLeft, bl as QuickOpenDialog, bm as SearchFilesDialog, bn as useDiffTarget } from "./router-GhGSLKfP.js";
|
|
3
|
+
import { S as SquareTerminal } from "./square-terminal-cghvb5Il.js";
|
|
4
4
|
import { S as SessionListContext, A as AgentSwitcherContext } from "./useSessionListContext-D_vX6E2e.js";
|
|
5
5
|
import "node:async_hooks";
|
|
6
6
|
import "node:stream";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../server.js";
|
|
2
|
-
import { e as Route, f as useNavigate, g as useDiffStatsContext, h as useFindInFileContext, D as DiffView } from "./router-
|
|
2
|
+
import { e as Route, f as useNavigate, g as useDiffStatsContext, h as useFindInFileContext, D as DiffView } from "./router-GhGSLKfP.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../server.js";
|
|
2
|
-
import { l as Route, f as useNavigate, h as useFindInFileContext, k as CodeBrowserView } from "./router-
|
|
2
|
+
import { l as Route, f as useNavigate, h as useFindInFileContext, k as CodeBrowserView } from "./router-GhGSLKfP.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as reactExports, j as jsxRuntimeExports } from "../server.js";
|
|
2
|
-
import { j as Route, f as useNavigate, h as useFindInFileContext, k as CodeBrowserView } from "./router-
|
|
2
|
+
import { j as Route, f as useNavigate, h as useFindInFileContext, k as CodeBrowserView } from "./router-GhGSLKfP.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports } from "../server.js";
|
|
2
|
-
import { R as Route, u as useIsDesktop, a as Navigate, i as isDesktop, b as useSettingsQuery, t as trpc, c as agentTypeSupportsSessionListing, C as ChatView } from "./router-
|
|
2
|
+
import { R as Route, u as useIsDesktop, a as Navigate, i as isDesktop, b as useSettingsQuery, t as trpc, c as agentTypeSupportsSessionListing, C as ChatView } from "./router-GhGSLKfP.js";
|
|
3
3
|
import { u as useSessionListContext, a as useAgentSwitcherContext } from "./useSessionListContext-D_vX6E2e.js";
|
|
4
4
|
import "node:async_hooks";
|
|
5
5
|
import "node:stream";
|
|
@@ -35,6 +35,7 @@ function MobileChatContent({
|
|
|
35
35
|
const [supportsSessionListing, setSupportsSessionListing] = reactExports.useState(false);
|
|
36
36
|
const [initialSessionId, setInitialSessionId] = reactExports.useState(void 0);
|
|
37
37
|
const [sessionQueryDone, setSessionQueryDone] = reactExports.useState(false);
|
|
38
|
+
const [sessionPaneKey, setSessionPaneKey] = reactExports.useState(0);
|
|
38
39
|
const {
|
|
39
40
|
showSessionList,
|
|
40
41
|
setShowSessionList
|
|
@@ -88,8 +89,23 @@ function MobileChatContent({
|
|
|
88
89
|
cancelled = true;
|
|
89
90
|
};
|
|
90
91
|
}, [workspaceId, chatId, chatKey, settings]);
|
|
92
|
+
const onSwitchSession = reactExports.useCallback(async (sessionId) => {
|
|
93
|
+
if (!chatId) return;
|
|
94
|
+
try {
|
|
95
|
+
await trpc.chats.setActiveSession.mutate({
|
|
96
|
+
workspaceId,
|
|
97
|
+
chatId,
|
|
98
|
+
sessionId: sessionId ?? void 0
|
|
99
|
+
});
|
|
100
|
+
} catch (err) {
|
|
101
|
+
console.error("[MobileChatContent] error persisting active session:", err);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
setInitialSessionId(sessionId);
|
|
105
|
+
setSessionPaneKey((k) => k + 1);
|
|
106
|
+
}, [workspaceId, chatId]);
|
|
91
107
|
if (!chatId) return null;
|
|
92
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChatView, { chatKey, workspaceId, chatId, workspaceName: workspaceId, supportsSessionListing, initialSessionId, sessionQueryDone, showSessionList, onShowSessionListChange: setShowSessionList, onStreamingChange: setTaskRunning, onNewSessionRef: newSessionRef, agentType, codingAgentId, onSwitchAgent: switchAgent }, chatKey) });
|
|
108
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "flex min-h-0 flex-1 flex-col", children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChatView, { chatKey, workspaceId, chatId, workspaceName: workspaceId, supportsSessionListing, initialSessionId, sessionQueryDone, showSessionList, onShowSessionListChange: setShowSessionList, onStreamingChange: setTaskRunning, onNewSessionRef: newSessionRef, onSwitchSession, agentType, codingAgentId, onSwitchAgent: switchAgent }, `${chatKey}-${sessionPaneKey}`) });
|
|
93
109
|
}
|
|
94
110
|
export {
|
|
95
111
|
WorkspaceIndex as component
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, r as reactExports } from "../server.js";
|
|
2
|
-
import { d as Route } from "./router-
|
|
2
|
+
import { d as Route } from "./router-GhGSLKfP.js";
|
|
3
3
|
import "node:async_hooks";
|
|
4
4
|
import "node:stream";
|
|
5
5
|
import "util";
|
|
@@ -10,7 +10,7 @@ import "node:stream/web";
|
|
|
10
10
|
import "node:process";
|
|
11
11
|
import "node:path";
|
|
12
12
|
import "node:url";
|
|
13
|
-
const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-
|
|
13
|
+
const DockviewTerminalContainer = reactExports.lazy(() => import("./DockviewTerminalContainer-BbMZgBJ8.js").then((m) => ({
|
|
14
14
|
default: m.DockviewTerminalContainer
|
|
15
15
|
})));
|
|
16
16
|
function WorkspaceTerminal() {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2
|
-
import { Z as setAccDescription, _ as getAccDescription, aj as getDiagramTitle, ai as setDiagramTitle, $ as getAccTitle, a0 as setAccTitle, a1 as __name, a4 as log, az as selectSvgElement, a5 as configureSvgSize, ao as clear, ax as getConfig, a8 as sanitizeText, av as cleanAndMerge, aw as defaultConfig_default, aQ as getThemeVariables3, bY as computeDimensionOfText, aY as line } from "./router-
|
|
2
|
+
import { Z as setAccDescription, _ as getAccDescription, aj as getDiagramTitle, ai as setDiagramTitle, $ as getAccTitle, a0 as setAccTitle, a1 as __name, a4 as log, az as selectSvgElement, a5 as configureSvgSize, ao as clear, ax as getConfig, a8 as sanitizeText, av as cleanAndMerge, aw as defaultConfig_default, aQ as getThemeVariables3, bY as computeDimensionOfText, aY as line } from "./router-GhGSLKfP.js";
|
|
3
3
|
import { i as initRange } from "./init-ZxktEp_H.js";
|
|
4
4
|
import { o as ordinal } from "./ordinal-CxptdPJm.js";
|
|
5
|
-
import { l as linear } from "./linear-
|
|
5
|
+
import { l as linear } from "./linear-BJgoq5J4.js";
|
|
6
6
|
import "../server.js";
|
|
7
7
|
import "node:async_hooks";
|
|
8
8
|
import "node:stream";
|
package/dist/server/server.js
CHANGED
|
@@ -19380,7 +19380,7 @@ function getResponse() {
|
|
|
19380
19380
|
return event.res;
|
|
19381
19381
|
}
|
|
19382
19382
|
async function getStartManifest(matchedRoutes) {
|
|
19383
|
-
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-
|
|
19383
|
+
const { tsrStartManifest } = await import("./assets/_tanstack-start-manifest_v-BNCQ-izx.js");
|
|
19384
19384
|
const startManifest = tsrStartManifest();
|
|
19385
19385
|
const rootRoute = startManifest.routes[rootRouteId] = startManifest.routes[rootRouteId] || {};
|
|
19386
19386
|
rootRoute.assets = rootRoute.assets || [];
|
|
@@ -19956,7 +19956,7 @@ let entriesPromise;
|
|
|
19956
19956
|
let baseManifestPromise;
|
|
19957
19957
|
let cachedFinalManifestPromise;
|
|
19958
19958
|
async function loadEntries() {
|
|
19959
|
-
const routerEntry = await import("./assets/router-
|
|
19959
|
+
const routerEntry = await import("./assets/router-GhGSLKfP.js").then((n2) => n2.dp);
|
|
19960
19960
|
const startEntry = await import("./assets/start-HYkvq4Ni.js");
|
|
19961
19961
|
return { startEntry, routerEntry };
|
|
19962
19962
|
}
|
package/dist/start-server.mjs
CHANGED
|
@@ -118092,6 +118092,19 @@ function getOrCreateDefaultChat(workspaceId) {
|
|
|
118092
118092
|
|
|
118093
118093
|
// src/lib/queued-message-store.ts
|
|
118094
118094
|
import { randomUUID } from "node:crypto";
|
|
118095
|
+
function toWireQueuedMessages(messages) {
|
|
118096
|
+
return messages.map((m11) => ({
|
|
118097
|
+
id: m11.id,
|
|
118098
|
+
text: m11.text,
|
|
118099
|
+
...m11.files && m11.files.length > 0 && {
|
|
118100
|
+
files: m11.files.map((f10) => ({
|
|
118101
|
+
mediaType: f10.mediaType,
|
|
118102
|
+
url: f10.url,
|
|
118103
|
+
...f10.filename !== void 0 && { filename: f10.filename }
|
|
118104
|
+
}))
|
|
118105
|
+
}
|
|
118106
|
+
}));
|
|
118107
|
+
}
|
|
118095
118108
|
var QUEUED_KEY = Symbol.for("band.queued-messages");
|
|
118096
118109
|
var LISTENERS_KEY = Symbol.for("band.queued-messages.listeners");
|
|
118097
118110
|
var g10 = globalThis;
|
|
@@ -118187,7 +118200,7 @@ function clearQueuedMessages(chatId) {
|
|
|
118187
118200
|
// src/lib/task-runner.ts
|
|
118188
118201
|
init_src();
|
|
118189
118202
|
import { mkdirSync as mkdirSync4, readdirSync as readdirSync6 } from "node:fs";
|
|
118190
|
-
import { join as
|
|
118203
|
+
import { join as join15 } from "node:path";
|
|
118191
118204
|
|
|
118192
118205
|
// src/lib/mime-types.ts
|
|
118193
118206
|
import { extname } from "node:path";
|
|
@@ -118420,38 +118433,6 @@ function rowToRecord(row) {
|
|
|
118420
118433
|
};
|
|
118421
118434
|
}
|
|
118422
118435
|
|
|
118423
|
-
// src/lib/upload-utils.ts
|
|
118424
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
118425
|
-
import { join as join15 } from "node:path";
|
|
118426
|
-
async function saveUploadedFilesDetailed(fileParts) {
|
|
118427
|
-
const uploadDir = join15(bandHome(), "uploads");
|
|
118428
|
-
await mkdir(uploadDir, { recursive: true });
|
|
118429
|
-
const baseTimestamp = Date.now();
|
|
118430
|
-
const saved = [];
|
|
118431
|
-
for (let i2 = 0; i2 < fileParts.length; i2++) {
|
|
118432
|
-
const part = fileParts[i2];
|
|
118433
|
-
const dataUrlMatch = part.url.match(/^data:[^;]+;base64,(.+)$/);
|
|
118434
|
-
if (!dataUrlMatch) continue;
|
|
118435
|
-
const buffer = Buffer.from(dataUrlMatch[1], "base64");
|
|
118436
|
-
const filename = part.filename || `file-${baseTimestamp}`;
|
|
118437
|
-
const safeOriginal = filename.replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
118438
|
-
const storedName = `${baseTimestamp}-${i2}-${safeOriginal}`;
|
|
118439
|
-
const filePath = join15(uploadDir, storedName);
|
|
118440
|
-
await writeFile(filePath, buffer);
|
|
118441
|
-
saved.push({
|
|
118442
|
-
path: filePath,
|
|
118443
|
-
storedName,
|
|
118444
|
-
mediaType: part.mediaType,
|
|
118445
|
-
originalName: part.filename
|
|
118446
|
-
});
|
|
118447
|
-
}
|
|
118448
|
-
return saved;
|
|
118449
|
-
}
|
|
118450
|
-
async function saveUploadedFiles(fileParts) {
|
|
118451
|
-
const saved = await saveUploadedFilesDetailed(fileParts);
|
|
118452
|
-
return saved.map((f10) => f10.path);
|
|
118453
|
-
}
|
|
118454
|
-
|
|
118455
118436
|
// src/lib/workspace.ts
|
|
118456
118437
|
function resolveWorkspace(workspaceId) {
|
|
118457
118438
|
const state2 = loadState();
|
|
@@ -118718,7 +118699,7 @@ async function runTask(chatId, task) {
|
|
|
118718
118699
|
updateChatStatus(chatId, "running");
|
|
118719
118700
|
const working = upsertWorkspaceStatus(task.workspaceId, { status: "working" });
|
|
118720
118701
|
emit({ kind: "update", status: working });
|
|
118721
|
-
const sharedDir =
|
|
118702
|
+
const sharedDir = join15(bandHome(), "shared", task.workspaceId);
|
|
118722
118703
|
mkdirSync4(sharedDir, { recursive: true });
|
|
118723
118704
|
const INTERACTIVE_TOOLS = /* @__PURE__ */ new Set(["AskUserQuestion", "ExitPlanMode"]);
|
|
118724
118705
|
let textPartId = "";
|
|
@@ -119030,17 +119011,17 @@ async function runTask(chatId, task) {
|
|
|
119030
119011
|
let agentPrompt;
|
|
119031
119012
|
let displayFiles;
|
|
119032
119013
|
if (queued.files && queued.files.length > 0) {
|
|
119033
|
-
const
|
|
119034
|
-
if (
|
|
119035
|
-
const fileList =
|
|
119014
|
+
const usableFiles = queued.files.filter((f10) => f10.path);
|
|
119015
|
+
if (usableFiles.length > 0) {
|
|
119016
|
+
const fileList = usableFiles.map((f10) => `- ${f10.path}`).join("\n");
|
|
119036
119017
|
agentPrompt = `I'm sharing these files with you:
|
|
119037
119018
|
${fileList}
|
|
119038
119019
|
|
|
119039
119020
|
${queued.text}`;
|
|
119040
|
-
displayFiles =
|
|
119041
|
-
mediaType:
|
|
119042
|
-
url:
|
|
119043
|
-
filename:
|
|
119021
|
+
displayFiles = usableFiles.map((f10) => ({
|
|
119022
|
+
mediaType: f10.mediaType,
|
|
119023
|
+
url: f10.url,
|
|
119024
|
+
filename: f10.filename
|
|
119044
119025
|
}));
|
|
119045
119026
|
}
|
|
119046
119027
|
}
|
|
@@ -119229,7 +119210,7 @@ async function handleChatEvents(req, res, chatId) {
|
|
|
119229
119210
|
});
|
|
119230
119211
|
emit2(writer, {
|
|
119231
119212
|
type: "queue-updated",
|
|
119232
|
-
messages: getQueuedMessages(chatId),
|
|
119213
|
+
messages: toWireQueuedMessages(getQueuedMessages(chatId)),
|
|
119233
119214
|
eventId: nextSyntheticId--
|
|
119234
119215
|
});
|
|
119235
119216
|
if (resolvedSessionId) {
|
|
@@ -119270,7 +119251,7 @@ async function handleChatEvents(req, res, chatId) {
|
|
|
119270
119251
|
if (qChatId !== chatId) return;
|
|
119271
119252
|
queue.push({
|
|
119272
119253
|
type: "queue-updated",
|
|
119273
|
-
messages,
|
|
119254
|
+
messages: toWireQueuedMessages(messages),
|
|
119274
119255
|
eventId: nextSyntheticId--
|
|
119275
119256
|
});
|
|
119276
119257
|
notify2?.();
|
|
@@ -119532,6 +119513,40 @@ function chunkToChatEvent(chunk, _sessionId) {
|
|
|
119532
119513
|
|
|
119533
119514
|
// src/api/chat-submit.ts
|
|
119534
119515
|
init_src();
|
|
119516
|
+
|
|
119517
|
+
// src/lib/upload-utils.ts
|
|
119518
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
119519
|
+
import { join as join16 } from "node:path";
|
|
119520
|
+
async function saveUploadedFilesDetailed(fileParts) {
|
|
119521
|
+
const uploadDir = join16(bandHome(), "uploads");
|
|
119522
|
+
await mkdir(uploadDir, { recursive: true });
|
|
119523
|
+
const baseTimestamp = Date.now();
|
|
119524
|
+
const saved = [];
|
|
119525
|
+
for (let i2 = 0; i2 < fileParts.length; i2++) {
|
|
119526
|
+
const part = fileParts[i2];
|
|
119527
|
+
const dataUrlMatch = part.url.match(/^data:[^;]+;base64,(.+)$/);
|
|
119528
|
+
if (!dataUrlMatch) continue;
|
|
119529
|
+
const buffer = Buffer.from(dataUrlMatch[1], "base64");
|
|
119530
|
+
const filename = part.filename || `file-${baseTimestamp}`;
|
|
119531
|
+
const safeOriginal = filename.replace(/[^a-zA-Z0-9._-]/g, "_");
|
|
119532
|
+
const storedName = `${baseTimestamp}-${i2}-${safeOriginal}`;
|
|
119533
|
+
const filePath = join16(uploadDir, storedName);
|
|
119534
|
+
await writeFile(filePath, buffer);
|
|
119535
|
+
saved.push({
|
|
119536
|
+
path: filePath,
|
|
119537
|
+
storedName,
|
|
119538
|
+
mediaType: part.mediaType,
|
|
119539
|
+
originalName: part.filename
|
|
119540
|
+
});
|
|
119541
|
+
}
|
|
119542
|
+
return saved;
|
|
119543
|
+
}
|
|
119544
|
+
async function saveUploadedFiles(fileParts) {
|
|
119545
|
+
const saved = await saveUploadedFilesDetailed(fileParts);
|
|
119546
|
+
return saved.map((f10) => f10.path);
|
|
119547
|
+
}
|
|
119548
|
+
|
|
119549
|
+
// src/api/chat-submit.ts
|
|
119535
119550
|
var log13 = createLogger("chat-submit");
|
|
119536
119551
|
function readBody(req) {
|
|
119537
119552
|
return new Promise((resolve7, reject) => {
|
|
@@ -119565,15 +119580,22 @@ async function handleChatSubmit(req, res, chatId) {
|
|
|
119565
119580
|
const resumeSessionId = sessionId ?? getChat(chatId)?.activeSessionId;
|
|
119566
119581
|
let agentPrompt;
|
|
119567
119582
|
let displayFiles;
|
|
119583
|
+
let savedFiles = [];
|
|
119568
119584
|
if (files && files.length > 0) {
|
|
119569
|
-
|
|
119570
|
-
if (
|
|
119571
|
-
|
|
119585
|
+
savedFiles = await saveUploadedFilesDetailed(files);
|
|
119586
|
+
if (savedFiles.length !== files.length) {
|
|
119587
|
+
log13.warn(
|
|
119588
|
+
{ chatId, submitted: files.length, saved: savedFiles.length },
|
|
119589
|
+
"chat-submit: some file uploads were dropped (malformed data URL?)"
|
|
119590
|
+
);
|
|
119591
|
+
}
|
|
119592
|
+
if (savedFiles.length > 0) {
|
|
119593
|
+
const fileList = savedFiles.map((s6) => `- ${s6.path}`).join("\n");
|
|
119572
119594
|
agentPrompt = `I'm sharing these files with you:
|
|
119573
119595
|
${fileList}
|
|
119574
119596
|
|
|
119575
119597
|
${text3}`;
|
|
119576
|
-
displayFiles =
|
|
119598
|
+
displayFiles = savedFiles.map((s6) => ({
|
|
119577
119599
|
mediaType: s6.mediaType,
|
|
119578
119600
|
url: `/api/uploads/${s6.storedName}`,
|
|
119579
119601
|
filename: s6.originalName
|
|
@@ -119599,7 +119621,14 @@ ${text3}`;
|
|
|
119599
119621
|
if (err instanceof TaskConflictError) {
|
|
119600
119622
|
pushQueuedMessage(chatId, {
|
|
119601
119623
|
text: text3,
|
|
119602
|
-
...
|
|
119624
|
+
...savedFiles.length > 0 && {
|
|
119625
|
+
files: savedFiles.map((s6) => ({
|
|
119626
|
+
mediaType: s6.mediaType,
|
|
119627
|
+
url: `/api/uploads/${s6.storedName}`,
|
|
119628
|
+
path: s6.path,
|
|
119629
|
+
filename: s6.originalName
|
|
119630
|
+
}))
|
|
119631
|
+
}
|
|
119603
119632
|
});
|
|
119604
119633
|
log13.info({ chatId, workspaceId }, "chat-submit: task busy, message queued");
|
|
119605
119634
|
sendJson(res, 200, { ok: true, queued: true });
|
|
@@ -136826,8 +136855,86 @@ var historyRouter = t2.router({
|
|
|
136826
136855
|
var queuedFileSchema = external_exports.object({
|
|
136827
136856
|
mediaType: external_exports.string(),
|
|
136828
136857
|
url: external_exports.string(),
|
|
136858
|
+
path: external_exports.string().optional(),
|
|
136829
136859
|
filename: external_exports.string().optional()
|
|
136830
136860
|
});
|
|
136861
|
+
function isPathWithinUploadDir(p6) {
|
|
136862
|
+
const uploadDir = join23(bandHome(), "uploads");
|
|
136863
|
+
const normalized = resolve5(p6);
|
|
136864
|
+
if (normalized !== uploadDir && !normalized.startsWith(uploadDir + sep2)) {
|
|
136865
|
+
return false;
|
|
136866
|
+
}
|
|
136867
|
+
try {
|
|
136868
|
+
const canonicalUploadDir = realpathSync5(uploadDir);
|
|
136869
|
+
const canonicalPath = realpathSync5(p6);
|
|
136870
|
+
return canonicalPath === canonicalUploadDir || canonicalPath.startsWith(canonicalUploadDir + sep2);
|
|
136871
|
+
} catch {
|
|
136872
|
+
return true;
|
|
136873
|
+
}
|
|
136874
|
+
}
|
|
136875
|
+
async function resolveQueuedFiles(chatId, files) {
|
|
136876
|
+
if (!files || files.length === 0) return void 0;
|
|
136877
|
+
const resolved = [];
|
|
136878
|
+
const needsSave = [];
|
|
136879
|
+
const needsSaveIdx = [];
|
|
136880
|
+
for (let i2 = 0; i2 < files.length; i2++) {
|
|
136881
|
+
const file = files[i2];
|
|
136882
|
+
const uploadsUrlMatch = file.url.match(/^\/api\/uploads\/(.+)$/);
|
|
136883
|
+
const derivedPath = file.path ?? (uploadsUrlMatch ? join23(bandHome(), "uploads", uploadsUrlMatch[1]) : void 0);
|
|
136884
|
+
if (derivedPath) {
|
|
136885
|
+
if (!isPathWithinUploadDir(derivedPath)) {
|
|
136886
|
+
log28.warn(
|
|
136887
|
+
{ chatId, path: derivedPath, filename: file.filename },
|
|
136888
|
+
"queue: dropping file with path outside uploads directory"
|
|
136889
|
+
);
|
|
136890
|
+
continue;
|
|
136891
|
+
}
|
|
136892
|
+
resolved.push({
|
|
136893
|
+
mediaType: file.mediaType,
|
|
136894
|
+
url: file.url,
|
|
136895
|
+
path: derivedPath,
|
|
136896
|
+
...file.filename !== void 0 && { filename: file.filename }
|
|
136897
|
+
});
|
|
136898
|
+
continue;
|
|
136899
|
+
}
|
|
136900
|
+
if (file.url.startsWith("data:")) {
|
|
136901
|
+
needsSave.push(file);
|
|
136902
|
+
needsSaveIdx.push(resolved.length);
|
|
136903
|
+
resolved.push({
|
|
136904
|
+
mediaType: file.mediaType,
|
|
136905
|
+
url: file.url,
|
|
136906
|
+
path: "",
|
|
136907
|
+
filename: file.filename
|
|
136908
|
+
});
|
|
136909
|
+
continue;
|
|
136910
|
+
}
|
|
136911
|
+
log28.warn(
|
|
136912
|
+
{ chatId, url: file.url, filename: file.filename },
|
|
136913
|
+
"queue: dropping file with no path and non-data URL \u2014 cannot recover disk path"
|
|
136914
|
+
);
|
|
136915
|
+
}
|
|
136916
|
+
if (needsSave.length > 0) {
|
|
136917
|
+
const saved = await saveUploadedFilesDetailed(needsSave);
|
|
136918
|
+
if (saved.length !== needsSave.length) {
|
|
136919
|
+
log28.error(
|
|
136920
|
+
{ chatId, expected: needsSave.length, got: saved.length },
|
|
136921
|
+
"queue: saveUploadedFilesDetailed returned unexpected count \u2014 dropping data-URL files (cannot map 1:1)"
|
|
136922
|
+
);
|
|
136923
|
+
} else {
|
|
136924
|
+
for (let k4 = 0; k4 < saved.length; k4++) {
|
|
136925
|
+
const target = needsSaveIdx[k4];
|
|
136926
|
+
resolved[target] = {
|
|
136927
|
+
mediaType: saved[k4].mediaType,
|
|
136928
|
+
url: `/api/uploads/${saved[k4].storedName}`,
|
|
136929
|
+
path: saved[k4].path,
|
|
136930
|
+
...saved[k4].originalName !== void 0 && { filename: saved[k4].originalName }
|
|
136931
|
+
};
|
|
136932
|
+
}
|
|
136933
|
+
}
|
|
136934
|
+
}
|
|
136935
|
+
const finalized = resolved.filter((f10) => f10.path !== "");
|
|
136936
|
+
return finalized.length > 0 ? finalized : void 0;
|
|
136937
|
+
}
|
|
136831
136938
|
var queueRouter = t2.router({
|
|
136832
136939
|
push: publicProcedure.input(
|
|
136833
136940
|
external_exports.object({
|
|
@@ -136836,10 +136943,24 @@ var queueRouter = t2.router({
|
|
|
136836
136943
|
text: external_exports.string(),
|
|
136837
136944
|
files: external_exports.array(queuedFileSchema).optional()
|
|
136838
136945
|
})
|
|
136839
|
-
).mutation(({ input }) => {
|
|
136946
|
+
).mutation(async ({ input }) => {
|
|
136840
136947
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136841
|
-
|
|
136842
|
-
|
|
136948
|
+
let files;
|
|
136949
|
+
try {
|
|
136950
|
+
files = await resolveQueuedFiles(chatId, input.files);
|
|
136951
|
+
} catch (err) {
|
|
136952
|
+
log28.error(
|
|
136953
|
+
{ chatId, err: err instanceof Error ? err.message : err },
|
|
136954
|
+
"queue.push: failed to persist file uploads; enqueuing text only"
|
|
136955
|
+
);
|
|
136956
|
+
files = void 0;
|
|
136957
|
+
}
|
|
136958
|
+
const message = pushQueuedMessage(chatId, { text: input.text, files });
|
|
136959
|
+
return {
|
|
136960
|
+
ok: true,
|
|
136961
|
+
message: toWireQueuedMessages([message])[0],
|
|
136962
|
+
messages: toWireQueuedMessages(getQueuedMessages(chatId))
|
|
136963
|
+
};
|
|
136843
136964
|
}),
|
|
136844
136965
|
set: publicProcedure.input(
|
|
136845
136966
|
external_exports.object({
|
|
@@ -136853,20 +136974,44 @@ var queueRouter = t2.router({
|
|
|
136853
136974
|
})
|
|
136854
136975
|
)
|
|
136855
136976
|
})
|
|
136856
|
-
).mutation(({ input }) => {
|
|
136977
|
+
).mutation(async ({ input }) => {
|
|
136857
136978
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136858
|
-
|
|
136859
|
-
|
|
136979
|
+
const messages = await Promise.all(
|
|
136980
|
+
input.messages.map(async (m11) => {
|
|
136981
|
+
try {
|
|
136982
|
+
return {
|
|
136983
|
+
...m11.id !== void 0 && { id: m11.id },
|
|
136984
|
+
text: m11.text,
|
|
136985
|
+
files: await resolveQueuedFiles(chatId, m11.files)
|
|
136986
|
+
};
|
|
136987
|
+
} catch (err) {
|
|
136988
|
+
log28.error(
|
|
136989
|
+
{ chatId, messageId: m11.id, err: err instanceof Error ? err.message : err },
|
|
136990
|
+
"queue: failed to resolve files for queued message; dropping its files"
|
|
136991
|
+
);
|
|
136992
|
+
return {
|
|
136993
|
+
...m11.id !== void 0 && { id: m11.id },
|
|
136994
|
+
text: m11.text,
|
|
136995
|
+
files: void 0
|
|
136996
|
+
};
|
|
136997
|
+
}
|
|
136998
|
+
})
|
|
136999
|
+
);
|
|
137000
|
+
setQueuedMessages(chatId, messages);
|
|
137001
|
+
return { ok: true, messages: toWireQueuedMessages(getQueuedMessages(chatId)) };
|
|
136860
137002
|
}),
|
|
136861
137003
|
get: publicProcedure.input(external_exports.object({ workspaceId: external_exports.string(), chatId: external_exports.string().optional() })).query(({ input }) => {
|
|
136862
137004
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136863
|
-
|
|
136864
|
-
return { messages };
|
|
137005
|
+
return { messages: toWireQueuedMessages(getQueuedMessages(chatId)) };
|
|
136865
137006
|
}),
|
|
136866
137007
|
remove: publicProcedure.input(external_exports.object({ workspaceId: external_exports.string(), chatId: external_exports.string().optional(), id: external_exports.string() })).mutation(({ input }) => {
|
|
136867
137008
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136868
137009
|
const removed = removeQueuedMessage(chatId, input.id);
|
|
136869
|
-
return {
|
|
137010
|
+
return {
|
|
137011
|
+
ok: true,
|
|
137012
|
+
removed,
|
|
137013
|
+
messages: toWireQueuedMessages(getQueuedMessages(chatId))
|
|
137014
|
+
};
|
|
136870
137015
|
}),
|
|
136871
137016
|
update: publicProcedure.input(
|
|
136872
137017
|
external_exports.object({
|
|
@@ -136878,12 +137023,16 @@ var queueRouter = t2.router({
|
|
|
136878
137023
|
).mutation(({ input }) => {
|
|
136879
137024
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136880
137025
|
const updated = updateQueuedMessage(chatId, input.id, input.text);
|
|
136881
|
-
return {
|
|
137026
|
+
return {
|
|
137027
|
+
ok: true,
|
|
137028
|
+
updated,
|
|
137029
|
+
messages: toWireQueuedMessages(getQueuedMessages(chatId))
|
|
137030
|
+
};
|
|
136882
137031
|
}),
|
|
136883
137032
|
shift: publicProcedure.input(external_exports.object({ workspaceId: external_exports.string(), chatId: external_exports.string().optional() })).mutation(({ input }) => {
|
|
136884
137033
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
136885
137034
|
const message = shiftQueuedMessage(chatId);
|
|
136886
|
-
return { message };
|
|
137035
|
+
return { message: message ? toWireQueuedMessages([message])[0] : null };
|
|
136887
137036
|
}),
|
|
136888
137037
|
clear: publicProcedure.input(external_exports.object({ workspaceId: external_exports.string(), chatId: external_exports.string().optional() })).mutation(({ input }) => {
|
|
136889
137038
|
const chatId = input.chatId ?? getOrCreateDefaultChat(input.workspaceId).id;
|
|
@@ -136903,12 +137052,13 @@ var queueRouter = t2.router({
|
|
|
136903
137052
|
unsubscribe();
|
|
136904
137053
|
resolve7?.();
|
|
136905
137054
|
});
|
|
136906
|
-
yield { messages: getQueuedMessages(chatId) };
|
|
137055
|
+
yield { messages: toWireQueuedMessages(getQueuedMessages(chatId)) };
|
|
136907
137056
|
queue.length = 0;
|
|
136908
137057
|
try {
|
|
136909
137058
|
while (!opts.signal?.aborted) {
|
|
136910
137059
|
while (queue.length > 0) {
|
|
136911
|
-
|
|
137060
|
+
const update = queue.shift();
|
|
137061
|
+
yield { messages: toWireQueuedMessages(update.messages) };
|
|
136912
137062
|
}
|
|
136913
137063
|
await new Promise((r6) => {
|
|
136914
137064
|
resolve7 = r6;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@band-app/server",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"band-server": "./bin/band-server.mjs"
|
|
@@ -114,9 +114,9 @@
|
|
|
114
114
|
"ws": "^8.18.0",
|
|
115
115
|
"zod": "^3.25.67",
|
|
116
116
|
"zustand": "^5.0.0",
|
|
117
|
-
"@band-app/coding-agent": "^0.16.
|
|
118
|
-
"@band-app/ui": "^0.16.
|
|
119
|
-
"@band-app/logger": "^0.16.
|
|
117
|
+
"@band-app/coding-agent": "^0.16.9",
|
|
118
|
+
"@band-app/ui": "^0.16.9",
|
|
119
|
+
"@band-app/logger": "^0.16.9"
|
|
120
120
|
},
|
|
121
121
|
"scripts": {
|
|
122
122
|
"dev": "NODE_ENV=development tsx watch start-server.ts",
|