termdock 1.4.357 → 1.4.358
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/{AndroidMirrorView-BGagwKtL.js → AndroidMirrorView-COoPljXi.js} +1 -1
- package/dist/client/assets/AndroidMirrorView-COoPljXi.js.br +0 -0
- package/dist/client/assets/AndroidMirrorView-COoPljXi.js.gz +0 -0
- package/dist/client/assets/{App-DpMhxwYW.js → App-7BA7Jt-V.js} +46 -46
- package/dist/client/assets/App-7BA7Jt-V.js.br +0 -0
- package/dist/client/assets/App-7BA7Jt-V.js.gz +0 -0
- package/dist/client/assets/{ArchitecturePanel-Bd_l74EC.js → ArchitecturePanel-B51eVL3I.js} +2 -2
- package/dist/client/assets/ArchitecturePanel-B51eVL3I.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-B51eVL3I.js.gz +0 -0
- package/dist/client/assets/{ChangeWalkthroughPanel-6DN-2BdR.js → ChangeWalkthroughPanel-ZGMybE0m.js} +1 -1
- package/dist/client/assets/ChangeWalkthroughPanel-ZGMybE0m.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-ZGMybE0m.js.gz +0 -0
- package/dist/client/assets/{ChatRichContent-DjwpmW7d.js → ChatRichContent-KkN7aIGv.js} +3 -3
- package/dist/client/assets/ChatRichContent-KkN7aIGv.js.br +0 -0
- package/dist/client/assets/ChatRichContent-KkN7aIGv.js.gz +0 -0
- package/dist/client/assets/{CollaborationMainWorkspace-DPTJ9pCt.js → CollaborationMainWorkspace-BVeBgGMT.js} +1 -1
- package/dist/client/assets/CollaborationMainWorkspace-BVeBgGMT.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-BVeBgGMT.js.gz +0 -0
- package/dist/client/assets/CollaborationTaskContent-C3Od6xQy.js +1 -0
- package/dist/client/assets/{ComputerControlView-CwB-wQqB.js → ComputerControlView-CnaeZBuh.js} +3 -3
- package/dist/client/assets/ComputerControlView-CnaeZBuh.js.br +0 -0
- package/dist/client/assets/{ComputerControlView-CwB-wQqB.js.gz → ComputerControlView-CnaeZBuh.js.gz} +0 -0
- package/dist/client/assets/{DagPlayground-DMn9Gyrw.js → DagPlayground-E7wKGgTF.js} +1 -1
- package/dist/client/assets/DagPlayground-E7wKGgTF.js.br +0 -0
- package/dist/client/assets/DagPlayground-E7wKGgTF.js.gz +0 -0
- package/dist/client/assets/{DiffLab-YBWlCU2T.js → DiffLab-BMXY4mRl.js} +1 -1
- package/dist/client/assets/DiffLab-BMXY4mRl.js.br +0 -0
- package/dist/client/assets/DiffLab-BMXY4mRl.js.gz +0 -0
- package/dist/client/assets/{DiffReview-YOPDWqhv.js → DiffReview-DHi_V-SX.js} +1 -1
- package/dist/client/assets/DiffReview-DHi_V-SX.js.br +0 -0
- package/dist/client/assets/DiffReview-DHi_V-SX.js.gz +0 -0
- package/dist/client/assets/{DiffReviewLab-SYomq14c.js → DiffReviewLab-nhoosNZM.js} +1 -1
- package/dist/client/assets/DiffReviewLab-nhoosNZM.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-nhoosNZM.js.gz +0 -0
- package/dist/client/assets/{DiffViewer-mh9cBl5v.js → DiffViewer-CyDc8WOB.js} +1 -1
- package/dist/client/assets/DiffViewer-CyDc8WOB.js.br +0 -0
- package/dist/client/assets/DiffViewer-CyDc8WOB.js.gz +0 -0
- package/dist/client/assets/{GitLoadingSkeleton-DKRTc5sz.js → GitLoadingSkeleton-RRbTeMuA.js} +1 -1
- package/dist/client/assets/GitLoadingSkeleton-RRbTeMuA.js.br +0 -0
- package/dist/client/assets/GitLoadingSkeleton-RRbTeMuA.js.gz +0 -0
- package/dist/client/assets/{Markdown-C8OP1j-g.js → Markdown-Ip0FYCJ1.js} +2 -2
- package/dist/client/assets/Markdown-Ip0FYCJ1.js.br +0 -0
- package/dist/client/assets/Markdown-Ip0FYCJ1.js.gz +0 -0
- package/dist/client/assets/{ModelPreview-CsZry3Wd.js → ModelPreview-DuwBl4st.js} +1 -1
- package/dist/client/assets/ModelPreview-DuwBl4st.js.br +0 -0
- package/dist/client/assets/ModelPreview-DuwBl4st.js.gz +0 -0
- package/dist/client/assets/{RecordingSaveDialog-CoRGi97z.js → RecordingSaveDialog-Czkjuaeu.js} +1 -1
- package/dist/client/assets/RecordingSaveDialog-Czkjuaeu.js.br +0 -0
- package/dist/client/assets/RecordingSaveDialog-Czkjuaeu.js.gz +0 -0
- package/dist/client/assets/{RightSidebar-DNY2kC6B.js → RightSidebar-BvYh2_n2.js} +3 -3
- package/dist/client/assets/RightSidebar-BvYh2_n2.js.br +0 -0
- package/dist/client/assets/RightSidebar-BvYh2_n2.js.gz +0 -0
- package/dist/client/assets/SessionChatView-hFOVLdHC.js +13 -0
- package/dist/client/assets/SessionChatView-hFOVLdHC.js.br +0 -0
- package/dist/client/assets/SessionChatView-hFOVLdHC.js.gz +0 -0
- package/dist/client/assets/{SessionResourceSidebar-B_379HBJ.js → SessionResourceSidebar-D-VXNdmE.js} +2 -2
- package/dist/client/assets/SessionResourceSidebar-D-VXNdmE.js.br +0 -0
- package/dist/client/assets/SessionResourceSidebar-D-VXNdmE.js.gz +0 -0
- package/dist/client/assets/{TodoWorkspace-DfwGOAHB.js → TodoWorkspace-CCL-wZTu.js} +1 -1
- package/dist/client/assets/TodoWorkspace-CCL-wZTu.js.br +0 -0
- package/dist/client/assets/TodoWorkspace-CCL-wZTu.js.gz +0 -0
- package/dist/client/assets/{abnfDiagram-VCTEODGH-C9M0gnl-.js → abnfDiagram-VCTEODGH-CdEUK_s_.js} +1 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-CdEUK_s_.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-CdEUK_s_.js.gz +0 -0
- package/dist/client/assets/{app-CovJYQoW.js → app-DZ6mCJiW.js} +4 -4
- package/dist/client/assets/app-DZ6mCJiW.js.br +0 -0
- package/dist/client/assets/app-DZ6mCJiW.js.gz +0 -0
- package/dist/client/assets/{arc-q4wfkQcT.js → arc-Dmbeqzc-.js} +1 -1
- package/dist/client/assets/arc-Dmbeqzc-.js.br +0 -0
- package/dist/client/assets/arc-Dmbeqzc-.js.gz +0 -0
- package/dist/client/assets/{architectureDiagram-5GKGNRK7-CCuna3ab.js → architectureDiagram-5GKGNRK7-CZcdXQrP.js} +1 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CZcdXQrP.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CZcdXQrP.js.gz +0 -0
- package/dist/client/assets/{arrow-down-WyzmLXwQ.js → arrow-down-Ty3zwcgl.js} +1 -1
- package/dist/client/assets/{blockDiagram-I7D4REHJ-BXK68Qyt.js → blockDiagram-I7D4REHJ-D9jFhXcb.js} +1 -1
- package/dist/client/assets/blockDiagram-I7D4REHJ-D9jFhXcb.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-D9jFhXcb.js.gz +0 -0
- package/dist/client/assets/{c4Diagram-7LVT6UL2-BqwmmVmS.js → c4Diagram-7LVT6UL2-c9o0rNTP.js} +1 -1
- package/dist/client/assets/c4Diagram-7LVT6UL2-c9o0rNTP.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-c9o0rNTP.js.gz +0 -0
- package/dist/client/assets/channel-BzD84hIE.js +1 -0
- package/dist/client/assets/{chevron-left-CxeWIsDK.js → chevron-left-CVjGQZf0.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-esKGR38U.js → chunk-2Q5K7J3B-Bl_5wWZ4.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-B3InxqDA.js → chunk-5VM5RSS4-D9XQn27m.js} +1 -1
- package/dist/client/assets/{chunk-F27PBJKO-CjUVyF-E.js → chunk-F27PBJKO-DWyskKWD.js} +1 -1
- package/dist/client/assets/chunk-F27PBJKO-DWyskKWD.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-DWyskKWD.js.gz +0 -0
- package/dist/client/assets/{chunk-IMKFNOWR-BR8mmBs7.js → chunk-IMKFNOWR-DrWbExPc.js} +1 -1
- package/dist/client/assets/chunk-IMKFNOWR-DrWbExPc.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-DrWbExPc.js.gz +0 -0
- package/dist/client/assets/{chunk-JWPE2WC7-CplXNOA7.js → chunk-JWPE2WC7-B7O1zrh6.js} +1 -1
- package/dist/client/assets/{chunk-POPQ4Y6H-D0JWCGnb.js → chunk-POPQ4Y6H-D7TlizKK.js} +1 -1
- package/dist/client/assets/{chunk-SVP7TREG-BdJtJSmy.js → chunk-SVP7TREG-DNK10F6v.js} +1 -1
- package/dist/client/assets/chunk-SVP7TREG-DNK10F6v.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-DNK10F6v.js.gz +0 -0
- package/dist/client/assets/{chunk-TICWLB2K-CoevFj8I.js → chunk-TICWLB2K-zVD9YIYY.js} +1 -1
- package/dist/client/assets/chunk-TICWLB2K-zVD9YIYY.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-zVD9YIYY.js.gz +0 -0
- package/dist/client/assets/{chunk-XXDRQBXY-D7qYRhMH.js → chunk-XXDRQBXY-bRScHSGz.js} +1 -1
- package/dist/client/assets/{circle-xgKDXpwG.js → circle-BIJQEbCa.js} +1 -1
- package/dist/client/assets/classDiagram-ZZMXUADV-DNwfONVW.js +1 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-DNwfONVW.js +1 -0
- package/dist/client/assets/{clipboard-DeK6pJD3.js → clipboard-DV8t7tww.js} +1 -1
- package/dist/client/assets/clipboardText-C4QKbGHg.css +1 -0
- package/dist/client/assets/clipboardText-C4QKbGHg.css.br +0 -0
- package/dist/client/assets/clipboardText-C4QKbGHg.css.gz +0 -0
- package/dist/client/assets/clipboardText-DoB9NjH8.js +1 -0
- package/dist/client/assets/clipboardText-DoB9NjH8.js.br +0 -0
- package/dist/client/assets/clipboardText-DoB9NjH8.js.gz +0 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-CvnsiaWP.js → cose-bilkent-JH36ORCC-Bf6IObhf.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-Bf6IObhf.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-Bf6IObhf.js.gz +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-BSGz8Olu.js → cynefin-OW5HDTMX-DAtjde93.js} +1 -1
- package/dist/client/assets/cynefin-OW5HDTMX-DAtjde93.js.br +0 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-BSGz8Olu.js.gz → cynefin-OW5HDTMX-DAtjde93.js.gz} +0 -0
- package/dist/client/assets/{cynefinDiagram-5FMLGOSQ-DYYT0AHs.js → cynefinDiagram-5FMLGOSQ-Bwoin99V.js} +1 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Bwoin99V.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-Bwoin99V.js.gz +0 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-BM883MN7.js → dagre-GXQ25YYZ-dxPzSob9.js} +1 -1
- package/dist/client/assets/dagre-GXQ25YYZ-dxPzSob9.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-dxPzSob9.js.gz +0 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-CYnxXy7R.js → diagram-S7CK7UJ4-BXdiLivz.js} +1 -1
- package/dist/client/assets/diagram-S7CK7UJ4-BXdiLivz.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-BXdiLivz.js.gz +0 -0
- package/dist/client/assets/{diagram-UQ7AKVKN-UOIBVxRf.js → diagram-UQ7AKVKN-DXveP3fg.js} +1 -1
- package/dist/client/assets/diagram-UQ7AKVKN-DXveP3fg.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-DXveP3fg.js.gz +0 -0
- package/dist/client/assets/{diagram-VSXAHHWV-CqTJzfmm.js → diagram-VSXAHHWV-BAZtoQue.js} +1 -1
- package/dist/client/assets/diagram-VSXAHHWV-BAZtoQue.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-BAZtoQue.js.gz +0 -0
- package/dist/client/assets/{diagram-VX7I27RA-T9Y88CFB.js → diagram-VX7I27RA-Bhc7cKpk.js} +1 -1
- package/dist/client/assets/diagram-VX7I27RA-Bhc7cKpk.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-Bhc7cKpk.js.gz +0 -0
- package/dist/client/assets/{diagram-Z3DM3KII-kIQDy7E0.js → diagram-Z3DM3KII-DWIa_F-y.js} +1 -1
- package/dist/client/assets/diagram-Z3DM3KII-DWIa_F-y.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-DWIa_F-y.js.gz +0 -0
- package/dist/client/assets/{ebnfDiagram-PWID7BFC-z_VqR_JE.js → ebnfDiagram-PWID7BFC-B3LDILSm.js} +1 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-B3LDILSm.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-B3LDILSm.js.gz +0 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-0q52Z-pm.js → erDiagram-RLTQ6QDP-Cfu95bMX.js} +1 -1
- package/dist/client/assets/erDiagram-RLTQ6QDP-Cfu95bMX.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-Cfu95bMX.js.gz +0 -0
- package/dist/client/assets/{external-link-CsydVmO1.js → external-link-DodqgrCc.js} +1 -1
- package/dist/client/assets/{flowDiagram-HODETNUW-BrGqcUWn.js → flowDiagram-HODETNUW-DVtO6aQE.js} +1 -1
- package/dist/client/assets/flowDiagram-HODETNUW-DVtO6aQE.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-DVtO6aQE.js.gz +0 -0
- package/dist/client/assets/{ganttDiagram-EL5Y4UJY-CHAN6vQv.js → ganttDiagram-EL5Y4UJY-Bh1TvYzb.js} +1 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-Bh1TvYzb.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-Bh1TvYzb.js.gz +0 -0
- package/dist/client/assets/{git-compare-BmKAtQTt.js → git-compare-KkbucDhN.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js → gitGraphDiagram-WWUBYQGX-BKbRxPsF.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BKbRxPsF.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-BKbRxPsF.js.gz +0 -0
- package/dist/client/assets/{infoDiagram-27XIBGKW-CrLj9y1o.js → infoDiagram-27XIBGKW-CLhO8B16.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-BxGvUfLX.js → ishikawaDiagram-5VMMS53U-BwchGTP9.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BwchGTP9.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BwchGTP9.js.gz +0 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-rW9xlQ8G.js → journeyDiagram-3NMN7TZE-eWBpuyMm.js} +1 -1
- package/dist/client/assets/journeyDiagram-3NMN7TZE-eWBpuyMm.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-eWBpuyMm.js.gz +0 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-CFI5iv9R.js → kanban-definition-UXKFOSKX-Sik-RHYc.js} +1 -1
- package/dist/client/assets/kanban-definition-UXKFOSKX-Sik-RHYc.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-Sik-RHYc.js.gz +0 -0
- package/dist/client/assets/{layout-Ct_an5XT.js → layout-BJX2CDWF.js} +1 -1
- package/dist/client/assets/layout-BJX2CDWF.js.br +0 -0
- package/dist/client/assets/layout-BJX2CDWF.js.gz +0 -0
- package/dist/client/assets/{linear-DpEFOA9l.js → linear-0FKHr918.js} +1 -1
- package/dist/client/assets/linear-0FKHr918.js.br +0 -0
- package/dist/client/assets/linear-0FKHr918.js.gz +0 -0
- package/dist/client/assets/{link-34ChBc4F.js → link-DWUQqMDL.js} +1 -1
- package/dist/client/assets/link-DWUQqMDL.js.br +0 -0
- package/dist/client/assets/link-DWUQqMDL.js.gz +0 -0
- package/dist/client/assets/{list-tree-48dzbuUh.js → list-tree-DxdLnXUB.js} +1 -1
- package/dist/client/assets/{maximize-2-CbvSsu7O.js → maximize-2-Clx4ktqB.js} +1 -1
- package/dist/client/assets/{mermaid.core-DnVKnMmy.js → mermaid.core-DWoaNsig.js} +5 -5
- package/dist/client/assets/mermaid.core-DWoaNsig.js.br +0 -0
- package/dist/client/assets/mermaid.core-DWoaNsig.js.gz +0 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-C6shupTY.js → mindmap-definition-YA3MSWOX-kFqW8-1C.js} +1 -1
- package/dist/client/assets/mindmap-definition-YA3MSWOX-kFqW8-1C.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-kFqW8-1C.js.gz +0 -0
- package/dist/client/assets/{passwordBootstrap-Doe50DSa.js → passwordBootstrap-ZDVK8UPE.js} +1 -1
- package/dist/client/assets/passwordBootstrap-ZDVK8UPE.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-ZDVK8UPE.js.gz +0 -0
- package/dist/client/assets/{pegDiagram-XKGWAZYB-CDcnrvKX.js → pegDiagram-XKGWAZYB-CndGmUtZ.js} +1 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-CndGmUtZ.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-CndGmUtZ.js.gz +0 -0
- package/dist/client/assets/{pieDiagram-E7YTZNPT-CrGc03Tg.js → pieDiagram-E7YTZNPT-Q550203T.js} +1 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-Q550203T.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-Q550203T.js.gz +0 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-3-aldwKj.js → quadrantDiagram-AXDQQJYC-BrjlUGzZ.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-3-aldwKj.js.br → quadrantDiagram-AXDQQJYC-BrjlUGzZ.js.br} +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-BrjlUGzZ.js.gz +0 -0
- package/dist/client/assets/{quote-B5GeKEq1.js → quote-B9G-yF_k.js} +1 -1
- package/dist/client/assets/{railroadDiagram-O6MQD6OU-51uKwR2_.js → railroadDiagram-O6MQD6OU-CSqOaX_w.js} +1 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-CSqOaX_w.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-CSqOaX_w.js.gz +0 -0
- package/dist/client/assets/{rdpSession-ocpkj4XY.js → rdpSession-DdqSmi-Z.js} +1 -1
- package/dist/client/assets/rdpSession-DdqSmi-Z.js.br +0 -0
- package/dist/client/assets/rdpSession-DdqSmi-Z.js.gz +0 -0
- package/dist/client/assets/{referenceSelection-fvfRDbgp.js → referenceSelection-0uCpJjt2.js} +1 -1
- package/dist/client/assets/referenceSelection-0uCpJjt2.js.br +0 -0
- package/dist/client/assets/referenceSelection-0uCpJjt2.js.gz +0 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-CY6kp0_Y.js → requirementDiagram-BXWQKSXE-NGPth3Pf.js} +1 -1
- package/dist/client/assets/requirementDiagram-BXWQKSXE-NGPth3Pf.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-NGPth3Pf.js.gz +0 -0
- package/dist/client/assets/{sankeyDiagram-P5KCCOFB-BsA0NkHG.js → sankeyDiagram-P5KCCOFB-CbxpJ6iI.js} +1 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CbxpJ6iI.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CbxpJ6iI.js.gz +0 -0
- package/dist/client/assets/{search-CbpNLSpd.js → search-DAQ_AOVP.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-BDzn7N2D.js → sequenceDiagram-WJ2MYXX4-D3gJOK25.js} +1 -1
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D3gJOK25.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-D3gJOK25.js.gz +0 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-gxtam7nc.js → sizeCapture-INFHLROL-D4D1KI0n.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-D4D1KI0n.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-D4D1KI0n.js.gz +0 -0
- package/dist/client/assets/{stateDiagram-D77RDMKH-C4XjYLZR.js → stateDiagram-D77RDMKH-BjtgjBg5.js} +1 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-BjtgjBg5.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BjtgjBg5.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BkFsvhZ0.js +1 -0
- package/dist/client/assets/{sun-CMXn_ntS.js → sun-DvwMJkda.js} +1 -1
- package/dist/client/assets/{swimlanes-42K2YHIH--a1wkQO8.js → swimlanes-42K2YHIH-C17jwdFo.js} +1 -1
- package/dist/client/assets/swimlanes-42K2YHIH-C17jwdFo.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH-C17jwdFo.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-Bcw2hbFj.js +8 -0
- package/dist/client/assets/{swiper-CTPycjLq.js → swiper-BaumVgFd.js} +1 -1
- package/dist/client/assets/swiper-BaumVgFd.js.br +0 -0
- package/dist/client/assets/swiper-BaumVgFd.js.gz +0 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-DFmXXUuU.js → timeline-definition-24CTP7MA-CtdHmPoC.js} +1 -1
- package/dist/client/assets/timeline-definition-24CTP7MA-CtdHmPoC.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-CtdHmPoC.js.gz +0 -0
- package/dist/client/assets/{triangle-alert-DgGU_xB4.js → triangle-alert-D-tt7pA2.js} +1 -1
- package/dist/client/assets/{unplug-CnZtWzVW.js → unplug-BQxOculv.js} +1 -1
- package/dist/client/assets/{use-gesture-react.esm-DHU0wi7Q.js → use-gesture-react.esm-CM42s15B.js} +1 -1
- package/dist/client/assets/use-gesture-react.esm-CM42s15B.js.br +0 -0
- package/dist/client/assets/use-gesture-react.esm-CM42s15B.js.gz +0 -0
- package/dist/client/assets/{vennDiagram-4TSXK5OY-DgR4zroQ.js → vennDiagram-4TSXK5OY-DhwCFaVe.js} +1 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-DhwCFaVe.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DhwCFaVe.js.gz +0 -0
- package/dist/client/assets/{videoCompression-CcffRZdP.js → videoCompression-BFhMaMl7.js} +1 -1
- package/dist/client/assets/videoCompression-BFhMaMl7.js.br +0 -0
- package/dist/client/assets/videoCompression-BFhMaMl7.js.gz +0 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-CY4SVUkf.js → wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js} +1 -1
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-BP4Z-QQ4.js.gz +0 -0
- package/dist/client/assets/{xychartDiagram-S5SC5T6Z-PblQhR-b.js → xychartDiagram-S5SC5T6Z-CEPWf1tk.js} +1 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-CEPWf1tk.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-CEPWf1tk.js.gz +0 -0
- package/dist/client/index.html +1 -1
- package/dist/client/index.html.br +0 -0
- package/dist/client/index.html.gz +0 -0
- package/dist/client/sw.js +1 -1
- package/dist/client/sw.js.br +0 -0
- package/dist/client/sw.js.gz +0 -0
- package/package.json +2 -1
- package/runtime-manifest.json +2 -2
- package/dist/client/assets/AndroidMirrorView-BGagwKtL.js.br +0 -0
- package/dist/client/assets/AndroidMirrorView-BGagwKtL.js.gz +0 -0
- package/dist/client/assets/App-DpMhxwYW.js.br +0 -0
- package/dist/client/assets/App-DpMhxwYW.js.gz +0 -0
- package/dist/client/assets/ArchitecturePanel-Bd_l74EC.js.br +0 -0
- package/dist/client/assets/ArchitecturePanel-Bd_l74EC.js.gz +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-6DN-2BdR.js.br +0 -0
- package/dist/client/assets/ChangeWalkthroughPanel-6DN-2BdR.js.gz +0 -0
- package/dist/client/assets/ChatRichContent-DjwpmW7d.js.br +0 -0
- package/dist/client/assets/ChatRichContent-DjwpmW7d.js.gz +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-DPTJ9pCt.js.br +0 -0
- package/dist/client/assets/CollaborationMainWorkspace-DPTJ9pCt.js.gz +0 -0
- package/dist/client/assets/CollaborationTaskContent-Cbu1Bjl0.js +0 -1
- package/dist/client/assets/ComputerControlView-CwB-wQqB.js.br +0 -0
- package/dist/client/assets/DagPlayground-DMn9Gyrw.js.br +0 -0
- package/dist/client/assets/DagPlayground-DMn9Gyrw.js.gz +0 -0
- package/dist/client/assets/DiffLab-YBWlCU2T.js.br +0 -0
- package/dist/client/assets/DiffLab-YBWlCU2T.js.gz +0 -0
- package/dist/client/assets/DiffReview-YOPDWqhv.js.br +0 -0
- package/dist/client/assets/DiffReview-YOPDWqhv.js.gz +0 -0
- package/dist/client/assets/DiffReviewLab-SYomq14c.js.br +0 -0
- package/dist/client/assets/DiffReviewLab-SYomq14c.js.gz +0 -0
- package/dist/client/assets/DiffViewer-mh9cBl5v.js.br +0 -0
- package/dist/client/assets/DiffViewer-mh9cBl5v.js.gz +0 -0
- package/dist/client/assets/GitLoadingSkeleton-DKRTc5sz.js.br +0 -0
- package/dist/client/assets/GitLoadingSkeleton-DKRTc5sz.js.gz +0 -0
- package/dist/client/assets/Markdown-C8OP1j-g.js.br +0 -0
- package/dist/client/assets/Markdown-C8OP1j-g.js.gz +0 -0
- package/dist/client/assets/ModelPreview-CsZry3Wd.js.br +0 -0
- package/dist/client/assets/ModelPreview-CsZry3Wd.js.gz +0 -0
- package/dist/client/assets/RecordingSaveDialog-CoRGi97z.js.br +0 -0
- package/dist/client/assets/RecordingSaveDialog-CoRGi97z.js.gz +0 -0
- package/dist/client/assets/RightSidebar-DNY2kC6B.js.br +0 -0
- package/dist/client/assets/RightSidebar-DNY2kC6B.js.gz +0 -0
- package/dist/client/assets/SessionChatView-DXNpYUrk.js +0 -13
- package/dist/client/assets/SessionChatView-DXNpYUrk.js.br +0 -0
- package/dist/client/assets/SessionChatView-DXNpYUrk.js.gz +0 -0
- package/dist/client/assets/SessionResourceSidebar-B_379HBJ.js.br +0 -0
- package/dist/client/assets/SessionResourceSidebar-B_379HBJ.js.gz +0 -0
- package/dist/client/assets/TodoWorkspace-DfwGOAHB.js.br +0 -0
- package/dist/client/assets/TodoWorkspace-DfwGOAHB.js.gz +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-C9M0gnl-.js.br +0 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-C9M0gnl-.js.gz +0 -0
- package/dist/client/assets/app-CovJYQoW.js.br +0 -0
- package/dist/client/assets/app-CovJYQoW.js.gz +0 -0
- package/dist/client/assets/arc-q4wfkQcT.js.br +0 -0
- package/dist/client/assets/arc-q4wfkQcT.js.gz +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CCuna3ab.js.br +0 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-CCuna3ab.js.gz +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-BXK68Qyt.js.br +0 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-BXK68Qyt.js.gz +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-BqwmmVmS.js.br +0 -0
- package/dist/client/assets/c4Diagram-7LVT6UL2-BqwmmVmS.js.gz +0 -0
- package/dist/client/assets/channel-Dd6WQGB7.js +0 -1
- package/dist/client/assets/chunk-F27PBJKO-CjUVyF-E.js.br +0 -0
- package/dist/client/assets/chunk-F27PBJKO-CjUVyF-E.js.gz +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BR8mmBs7.js.br +0 -0
- package/dist/client/assets/chunk-IMKFNOWR-BR8mmBs7.js.gz +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BdJtJSmy.js.br +0 -0
- package/dist/client/assets/chunk-SVP7TREG-BdJtJSmy.js.gz +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CoevFj8I.js.br +0 -0
- package/dist/client/assets/chunk-TICWLB2K-CoevFj8I.js.gz +0 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-BdIUq_D7.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BdIUq_D7.js +0 -1
- package/dist/client/assets/clipboardText-BWOwer6N.js +0 -1
- package/dist/client/assets/clipboardText-BWOwer6N.js.br +0 -0
- package/dist/client/assets/clipboardText-BWOwer6N.js.gz +0 -0
- package/dist/client/assets/clipboardText-vX90C7eX.css +0 -1
- package/dist/client/assets/clipboardText-vX90C7eX.css.br +0 -0
- package/dist/client/assets/clipboardText-vX90C7eX.css.gz +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CvnsiaWP.js.br +0 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-CvnsiaWP.js.gz +0 -0
- package/dist/client/assets/cynefin-OW5HDTMX-BSGz8Olu.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DYYT0AHs.js.br +0 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DYYT0AHs.js.gz +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-BM883MN7.js.br +0 -0
- package/dist/client/assets/dagre-GXQ25YYZ-BM883MN7.js.gz +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-CYnxXy7R.js.br +0 -0
- package/dist/client/assets/diagram-S7CK7UJ4-CYnxXy7R.js.gz +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-UOIBVxRf.js.br +0 -0
- package/dist/client/assets/diagram-UQ7AKVKN-UOIBVxRf.js.gz +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CqTJzfmm.js.br +0 -0
- package/dist/client/assets/diagram-VSXAHHWV-CqTJzfmm.js.gz +0 -0
- package/dist/client/assets/diagram-VX7I27RA-T9Y88CFB.js.br +0 -0
- package/dist/client/assets/diagram-VX7I27RA-T9Y88CFB.js.gz +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-kIQDy7E0.js.br +0 -0
- package/dist/client/assets/diagram-Z3DM3KII-kIQDy7E0.js.gz +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-z_VqR_JE.js.br +0 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-z_VqR_JE.js.gz +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-0q52Z-pm.js.br +0 -0
- package/dist/client/assets/erDiagram-RLTQ6QDP-0q52Z-pm.js.gz +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BrGqcUWn.js.br +0 -0
- package/dist/client/assets/flowDiagram-HODETNUW-BrGqcUWn.js.gz +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHAN6vQv.js.br +0 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-CHAN6vQv.js.gz +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js.br +0 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-C0ZV4FeB.js.gz +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BxGvUfLX.js.br +0 -0
- package/dist/client/assets/ishikawaDiagram-5VMMS53U-BxGvUfLX.js.gz +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-rW9xlQ8G.js.br +0 -0
- package/dist/client/assets/journeyDiagram-3NMN7TZE-rW9xlQ8G.js.gz +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-CFI5iv9R.js.br +0 -0
- package/dist/client/assets/kanban-definition-UXKFOSKX-CFI5iv9R.js.gz +0 -0
- package/dist/client/assets/layout-Ct_an5XT.js.br +0 -0
- package/dist/client/assets/layout-Ct_an5XT.js.gz +0 -0
- package/dist/client/assets/linear-DpEFOA9l.js.br +0 -0
- package/dist/client/assets/linear-DpEFOA9l.js.gz +0 -0
- package/dist/client/assets/link-34ChBc4F.js.br +0 -0
- package/dist/client/assets/link-34ChBc4F.js.gz +0 -0
- package/dist/client/assets/mermaid.core-DnVKnMmy.js.br +0 -0
- package/dist/client/assets/mermaid.core-DnVKnMmy.js.gz +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-C6shupTY.js.br +0 -0
- package/dist/client/assets/mindmap-definition-YA3MSWOX-C6shupTY.js.gz +0 -0
- package/dist/client/assets/passwordBootstrap-Doe50DSa.js.br +0 -0
- package/dist/client/assets/passwordBootstrap-Doe50DSa.js.gz +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-CDcnrvKX.js.br +0 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-CDcnrvKX.js.gz +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CrGc03Tg.js.br +0 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CrGc03Tg.js.gz +0 -0
- package/dist/client/assets/quadrantDiagram-AXDQQJYC-3-aldwKj.js.gz +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-51uKwR2_.js.br +0 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-51uKwR2_.js.gz +0 -0
- package/dist/client/assets/rdpSession-ocpkj4XY.js.br +0 -0
- package/dist/client/assets/rdpSession-ocpkj4XY.js.gz +0 -0
- package/dist/client/assets/referenceSelection-fvfRDbgp.js.br +0 -0
- package/dist/client/assets/referenceSelection-fvfRDbgp.js.gz +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-CY6kp0_Y.js.br +0 -0
- package/dist/client/assets/requirementDiagram-BXWQKSXE-CY6kp0_Y.js.gz +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-BsA0NkHG.js.br +0 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-BsA0NkHG.js.gz +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BDzn7N2D.js.br +0 -0
- package/dist/client/assets/sequenceDiagram-WJ2MYXX4-BDzn7N2D.js.gz +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-gxtam7nc.js.br +0 -0
- package/dist/client/assets/sizeCapture-INFHLROL-gxtam7nc.js.gz +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-C4XjYLZR.js.br +0 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-C4XjYLZR.js.gz +0 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-BfHWFf-I.js +0 -1
- package/dist/client/assets/swimlanes-42K2YHIH--a1wkQO8.js.br +0 -0
- package/dist/client/assets/swimlanes-42K2YHIH--a1wkQO8.js.gz +0 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-DsiDF1XD.js +0 -8
- package/dist/client/assets/swiper-CTPycjLq.js.br +0 -0
- package/dist/client/assets/swiper-CTPycjLq.js.gz +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-DFmXXUuU.js.br +0 -0
- package/dist/client/assets/timeline-definition-24CTP7MA-DFmXXUuU.js.gz +0 -0
- package/dist/client/assets/use-gesture-react.esm-DHU0wi7Q.js.br +0 -0
- package/dist/client/assets/use-gesture-react.esm-DHU0wi7Q.js.gz +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DgR4zroQ.js.br +0 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DgR4zroQ.js.gz +0 -0
- package/dist/client/assets/videoCompression-CcffRZdP.js.br +0 -0
- package/dist/client/assets/videoCompression-CcffRZdP.js.gz +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-CY4SVUkf.js.br +0 -0
- package/dist/client/assets/wardleyDiagram-VM6X3IG4-CY4SVUkf.js.gz +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-PblQhR-b.js.br +0 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-PblQhR-b.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ChatRichContent-DjwpmW7d.js","assets/app-CovJYQoW.js","assets/react-XDCjal2T.js","assets/dnd-BCFAPC0L.js","assets/terminal-DaiFCKy_.js","assets/index-DEAMSl55.css","assets/circle-xgKDXpwG.js","assets/search-CbpNLSpd.js","assets/external-link-CsydVmO1.js","assets/clipboardText-BWOwer6N.js","assets/clipboardText-vX90C7eX.css","assets/Markdown-C8OP1j-g.js","assets/swiper-CTPycjLq.js","assets/swiper-C2J0D0kV.css","assets/use-gesture-react.esm-DHU0wi7Q.js","assets/referenceSelection-fvfRDbgp.js","assets/list-tree-48dzbuUh.js","assets/Markdown-DKQhs57e.css","assets/quote-B5GeKEq1.js","assets/arrow-down-WyzmLXwQ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a9 as Tt,a4 as Xe,cd as Ot,cq as t,C as Ze,m as et,f as Dt,a8 as $e,es as It,er as Mt,be as zt,dG as tt,b2 as $,bm as Ee,dD as mt,eE as Pt,et as rt,eJ as $t,S as nt,G as Ft,R as qt,w as st,Z as at,bW as it,cY as Ht,ak as Wt}from"./app-CovJYQoW.js";import{f as _t,d as Vt,e as Ut,r as je,c as ot,s as Bt,w as Kt,C as Jt,P as ct,a as Gt}from"./clipboardText-BWOwer6N.js";import{b as r}from"./dnd-BCFAPC0L.js";import{M as Yt}from"./Markdown-C8OP1j-g.js";import{Q as qe}from"./quote-B5GeKEq1.js";import{A as Qt}from"./arrow-down-WyzmLXwQ.js";import{A as Xt}from"./use-gesture-react.esm-DHU0wi7Q.js";function Zt(s){const n=[];for(const i of s){const a=n[n.length-1];i.role==="assistant"&&a?.role==="assistant"?a.messages.push(i):n.push({id:i.id,role:i.role,messages:[i]})}return n}function er(s){const n=s.slice().reverse().find(i=>i.role==="user");return!n||["failed","expired"].includes(n.status)?!1:!s.some(i=>i.role==="assistant"&&i.replyTo===n.id&&!["ack","progress"].includes(i.responseKind||""))}function tr(s){return{pending:"已发送",delivered:"已发送",stored:"已发送",failed:"发送失败",expired:"发送失败"}[s]||"待确认"}function rr(s,n){const i=new Map(s.map(d=>[d.id,d]));let a=!1;for(const d of n){const g=i.get(d.id);(!g||JSON.stringify(g)!==JSON.stringify(d))&&(i.set(d.id,d),a=!0)}return a?[...i.values()].sort((d,g)=>(d.sequence??d.createdAt)-(g.sequence??g.createdAt)):s}let ht;const nr=()=>ht?.ChatRichContent;let lt;function ut(){return lt??=Tt(()=>import("./ChatRichContent-DjwpmW7d.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])).then(s=>(ht=s,s)).catch(s=>{throw lt=void 0,s})}const ze=new Set;function sr(s){const[n,i]=r.useState(!1);return r.useLayoutEffect(()=>{if(!s){i(!1);return}const a=Symbol("chat-viewport");ze.add(a);const d=document.documentElement,g=()=>{const j=Number.parseFloat(d.style.getPropertyValue("--kb-height"))>=80;d.dataset.termdockChatViewport="true",d.dataset.termdockChatKeyboard=String(j),i(E=>E===j?E:j)};return g(),document.addEventListener(Xe,g),document.addEventListener("termdock:viewport-keyboard-change",g),()=>{document.removeEventListener(Xe,g),document.removeEventListener("termdock:viewport-keyboard-change",g),ze.delete(a),ze.size||(delete d.dataset.termdockChatViewport,delete d.dataset.termdockChatKeyboard)}},[s]),n}function ar(s,n){r.useLayoutEffect(()=>{const i=s.current;if(!n||!i||!Ot())return;let a,d;const g=()=>{if(a!==void 0&&cancelAnimationFrame(a),!d){const O=i.style.opacity,x=i.style.transition;d=()=>{i.style.opacity=O,i.style.transition=x,d=void 0}}i.style.transition="none",i.style.opacity="0",a=requestAnimationFrame(()=>{a=void 0,d?.()})},j=i.focus,E=Object.getOwnPropertyDescriptor(i,"focus");return i.focus=O=>{g(),j.call(i,{...O,preventScroll:!0})},i.addEventListener("pointerdown",g,!0),i.addEventListener("focus",g,!0),()=>{E?Object.defineProperty(i,"focus",E):Reflect.deleteProperty(i,"focus"),i.removeEventListener("pointerdown",g,!0),i.removeEventListener("focus",g,!0),a!==void 0&&cancelAnimationFrame(a),d?.()}},[s,n])}function dt(s,n){return n?`> ${n.author.replace(/[\r\n]/g," ")} · ${n.time}
|
|
3
|
-
${n.text.replace(/\r\n?/g,`
|
|
4
|
-
`).split(`
|
|
5
|
-
`).map(i=>`> ${i}`).join(`
|
|
6
|
-
`)}
|
|
7
|
-
|
|
8
|
-
${s.trim()}`:s.trim()}function Fe(s){const n=s.split(`
|
|
9
|
-
`),i=n[0].match(/^> (.+) · (\d{2}:\d{2})$/);if(!i)return{text:s,reference:null};let a=1;for(;a<n.length&&n[a].startsWith(">");)a++;return a<2||n[a]!==""?{text:s,reference:null}:{text:n.slice(a+1).join(`
|
|
10
|
-
`),reference:{author:i[1],time:i[2],text:n.slice(1,a).map(d=>d.replace(/^> ?/,"")).join(`
|
|
11
|
-
`)}}}function ft({id:s,root:n,heights:i,estimate:a,eager:d,preserve:g,nearby:j,children:E}){const[O,x]=r.useState(()=>!n||typeof IntersectionObserver>"u"||d),F=r.useRef(null),W=r.useRef(i?.get(s)??a);return r.useEffect(()=>{const l=n?.current,u=F.current;if(!l||!u||typeof IntersectionObserver>"u")return;const y=new IntersectionObserver(h=>{if(!l.clientHeight)return;const S=h.find(N=>N.target===u);if(S){if(S.isIntersecting?j?.add(s):j?.delete(s),S.isIntersecting)x(!0);else if(!g&&!u.contains(document.activeElement)){const N=window.getSelection();(!N?.toString()||!u.contains(N.anchorNode)&&!u.contains(N.focusNode))&&x(!1)}}},{root:l,rootMargin:`${l.clientHeight}px 0px`});return y.observe(u),()=>y.disconnect()},[n,g,j,s]),r.useLayoutEffect(()=>{const l=F.current;if(!O||!l)return;const u=()=>{const h=l.getBoundingClientRect().height;if(h<=0)return;const S=W.current,N=n?.current;N?.clientHeight&&l.getBoundingClientRect().top+S<=N.getBoundingClientRect().top+1&&(N.scrollTop+=h-S),W.current=h,i?.set(s,h)};if(u(),typeof ResizeObserver>"u")return;const y=new ResizeObserver(u);return y.observe(l),()=>y.disconnect()},[O,E,s,n,i]),t.jsx("div",{ref:F,"data-chat-viewport-row":s,style:O?void 0:{height:W.current},children:O?E:t.jsxs("div",{"aria-hidden":"true",className:"space-y-3 py-3",children:[t.jsx("div",{className:"chat-loading-skeleton h-3 w-3/4 rounded bg-surface-2"}),t.jsx("div",{className:"chat-loading-skeleton h-3 w-1/2 rounded bg-surface-2"})]})})}const ir=r.memo(function({content:n}){return t.jsx(Yt,{content:n})}),He=s=>new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hourCycle:"h23"}),or=new Set(["amp","claude","codex","copilot","cursor","droid","gemini","goose","grok","kimi","opencode"]);function pt({name:s,slug:n}){const i=n&&or.has(n)?`url(/icons/agents/${n}.svg) center / contain no-repeat`:void 0;return t.jsxs("span",{className:"inline-flex items-center gap-2 font-medium text-foreground/75",children:[i?t.jsx("span",{"aria-hidden":"true",className:"h-4 w-4 shrink-0 bg-current",style:{mask:i,WebkitMask:i}}):t.jsx(Dt,{size:15,"aria-hidden":"true"}),t.jsx("span",{children:s})]})}function gt({reference:s,onRemove:n}){return t.jsxs("blockquote",{className:"mb-2 min-w-0 rounded-lg border-l-2 border-primary/50 bg-surface px-3 py-2 text-left",children:[t.jsxs("div",{className:"flex items-center gap-2 text-[11px] leading-5 text-muted-foreground",children:[t.jsx(qe,{size:12}),t.jsxs("span",{className:"min-w-0 flex-1 truncate",children:[s.author," · ",s.time]}),n&&t.jsx("button",{type:"button","aria-label":"移除消息引用",title:"移除引用",className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md hover:bg-surface-2",onPointerDown:i=>i.preventDefault(),onClick:n,children:t.jsx($e,{size:13})})]}),t.jsx("p",{className:"line-clamp-3 whitespace-pre-wrap break-words text-[13px] leading-6 text-foreground/75",title:s.text,children:s.text})]})}function cr({content:s}){const n=Fe(s);return t.jsxs(t.Fragment,{children:[n.reference&&t.jsx(gt,{reference:n.reference}),t.jsx("p",{className:"whitespace-pre-wrap break-words text-[15px] leading-7 sm:text-base",children:n.text})]})}function xt({content:s,createdAt:n,status:i,messageId:a,actionsOpen:d,children:g}){return t.jsxs("article",{"data-chat-turn":"user","data-chat-message":a,"data-actions-open":d||void 0,className:"ml-auto flex w-fit max-w-[88%] flex-col items-end sm:max-w-[85%]",children:[t.jsx("div",{"data-chat-user-bubble":!0,className:"w-fit max-w-full rounded-2xl bg-surface-2 px-4 py-3",children:t.jsx(cr,{content:s})}),t.jsxs("div",{"data-chat-message-actions":!0,className:"chat-user-meta mt-1 flex min-h-8 flex-wrap items-center justify-end gap-2 text-[10px] text-muted-foreground",children:[t.jsx("span",{children:i}),t.jsx("time",{dateTime:new Date(n).toISOString(),title:new Date(n).toLocaleString(),className:"opacity-60",children:He(n)}),g]})]})}const Pe="chat-message-action inline-flex h-8 min-w-8 items-center justify-center gap-1 rounded-lg text-muted-foreground/60 transition hover:bg-surface-2 hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring",lr=r.memo(function({messages:n,agentName:i,agentSlug:a,canWrite:d,copied:g,onCopy:j,onReference:E,sessionId:O,uiWritable:x,onAction:F,pendingMessage:W,scrollRoot:l,rowHeights:u,nearbyIds:y,initialVisibleIds:h}){const S=r.useMemo(()=>new Set([...h??[],...n.slice(-6).map(f=>f.id)]),[n,h]),N=f=>Math.min(1200,Math.max(80,Math.ceil(f.content.length/65)*28+40)),A=nr(),ne=r.useRef(new Map),_=r.useMemo(()=>Zt(n).map(f=>{if(f.role==="user")return f;const w=f.messages.map(L=>ne.current.get(L.id)).find(Boolean)||f.id;for(const L of f.messages)ne.current.set(L.id,w);return{...f,id:w}}),[n]),[K,M]=r.useState(null),Q=r.useRef(null),X=r.useRef("");return r.useEffect(()=>{const f=L=>{L.target instanceof Node&&!Q.current?.contains(L.target)&&M(null)},w=L=>{L.key==="Escape"&&M(null)};return document.addEventListener("pointerdown",f),document.addEventListener("keydown",w),()=>{document.removeEventListener("pointerdown",f),document.removeEventListener("keydown",w)}},[]),t.jsxs("div",{ref:Q,className:"space-y-6 sm:space-y-7",onPointerDownCapture:f=>{X.current=f.pointerType},onClick:f=>{if(!f.detail||X.current!=="touch"&&!window.matchMedia?.("(hover: none)").matches)return;const w=f.target instanceof Element?f.target:null;if(!w||w.closest('button, a, input, textarea, select, label, summary, [role="button"], [contenteditable="true"]')||window.getSelection()?.toString().trim())return;const L=w.closest("[data-chat-message]")?.dataset.chatMessage;M(V=>L&&V!==L?L:null)},children:[_.map(f=>{const w=f.messages[f.messages.length-1],L=f.role==="user",V=f.messages.map(v=>v.content).join(`
|
|
12
|
-
|
|
13
|
-
`),de=v=>d&&t.jsx("button",{type:"button","aria-label":"引用消息",title:"引用这条消息",className:`${Pe} shrink-0`,onPointerDown:Z=>Z.preventDefault(),onClick:()=>{M(null),E(v)},children:t.jsx(qe,{size:13})});return L?t.jsx(ft,{id:f.id,root:l,heights:u,nearby:y,estimate:N(w),eager:S.has(w.id),children:t.jsx(xt,{messageId:f.id,actionsOpen:K===f.id,content:V,createdAt:w.createdAt,status:tr(w.status),children:t.jsxs("span",{className:"chat-message-tools",children:[de(w),t.jsxs("button",{type:"button",className:Pe,"aria-label":"复制消息",title:"复制",onClick:()=>j(V,f.id),children:[g===f.id?t.jsx(Ze,{size:13}):t.jsx(et,{size:13}),g===f.id&&t.jsx("span",{className:"text-[10px]",children:"已复制"})]})]})})},f.id):t.jsxs("article",{"data-chat-turn":"assistant",className:"w-full",children:[t.jsx("div",{className:"mb-2 flex min-h-8 items-center text-[11px] leading-4",children:t.jsx(pt,{name:i,slug:a})}),t.jsx("div",{className:"chat-replies min-w-0",children:f.messages.map((v,Z)=>t.jsx(ft,{id:v.id,root:l,heights:u,nearby:y,estimate:N(v),eager:S.has(v.id),preserve:!!v.ui,children:t.jsxs("div",{"data-chat-message":v.id,"data-actions-open":K===v.id||void 0,className:"chat-reply min-w-0",children:[t.jsx("div",{className:"session-chat-markdown min-w-0 break-words",children:v.ui&&A?t.jsx(A,{message:v,sessionId:O,canWrite:x,onAction:F},v.id):t.jsx(ir,{content:v.content})}),t.jsxs("div",{"data-chat-message-actions":!0,className:"chat-reply-meta flex items-center justify-between gap-2",children:[t.jsxs("span",{className:"chat-message-tools",children:[de(v),t.jsxs("button",{type:"button",className:Pe,"aria-label":"复制回复",title:"复制",onClick:()=>j(v.content,v.id),children:[g===v.id?t.jsx(Ze,{size:13}):t.jsx(et,{size:13}),g===v.id&&t.jsx("span",{className:"text-[10px]",children:"已复制"})]})]}),Z<f.messages.length-1&&t.jsx("span",{"aria-hidden":"true",className:"chat-reply-divider min-w-0 flex-1"}),t.jsx("time",{className:"shrink-0 text-[11px] tabular-nums text-muted-foreground/60",dateTime:new Date(v.createdAt).toISOString(),title:new Date(v.createdAt).toLocaleString(),children:He(v.createdAt)})]})]})},v.id))})]},f.id)}),W]})});function ur(s){const n=r.useRef(s);n.current=s;const[i,a]=r.useState(null),d=r.useRef(null),g=r.useRef(!0),j=r.useCallback(()=>{d.current?.controller.abort();const l=n.current,u=tt(),y=$(),h=Ee(),S=document.activeElement,N=new AbortController,A={controller:N,current:()=>g.current&&!N.signal.aborted&&d.current===A&&n.current.active&&n.current.canWrite&&n.current.sessionId===l.sessionId&&tt()===u&&$()===y&&!y?.closed&&Ee()===h,focus:()=>document.activeElement===S||document.activeElement===l.input.current||document.activeElement===document.body};return d.current=A,A},[]);r.useEffect(()=>{const l=()=>{d.current&&!d.current.current()&&(d.current.controller.abort(),d.current=null,a(null))};l();const u=()=>{d.current?.controller.abort(),d.current=null,a(null)};return window.addEventListener("termdock:secure-state",l),window.addEventListener("auth:unauthorized",u),document.addEventListener("focusin",l),()=>{window.removeEventListener("termdock:secure-state",l),window.removeEventListener("auth:unauthorized",u),document.removeEventListener("focusin",l)}},[s.active,s.canWrite,s.sessionId]),r.useEffect(()=>(g.current=!0,()=>{g.current=!1,d.current?.controller.abort()}),[]);const E=r.useCallback(async(l,u,y=[])=>{if(l.current()){a({stage:"uploading",percent:u.length?0:void 0,files:u,paths:y}),n.current.error("");try{if(u.length&&!n.current.directory&&!n.current.sessionAttachments)throw new Error("附件上传暂不可用,请重试");const h=A=>{l.current()&&a({stage:"uploading",percent:Math.round(A),files:u,paths:y})},S=u.length?n.current.sessionAttachments?await It(n.current.sessionId,u,l.controller.signal,h,l.current):await Mt(n.current.directory,u,l.controller.signal,h,l.current):{files:[]};if(!l.current())return;if(S.files.length!==u.length||S.files.some(A=>!A.path))throw new Error("部分文件未上传成功,请重试");const N=[...y,...S.files.map(A=>A.path)];if(!N.length)throw new Error("没有可添加的文件");n.current.insert(`${N.map(zt).join(" ")} `,l.focus()),a(null),d.current=null}catch(h){if(!l.current())return;a({stage:"failed",files:u,paths:y}),n.current.error(h instanceof Error?h.message:"文件上传失败,请重试")}}},[]),O=r.useCallback(l=>{!n.current.active||!n.current.canWrite||!l.length||E(j(),l)},[j,E]),x=r.useCallback(async l=>{if(!n.current.active||!n.current.canWrite)return;const u=j();a({stage:"reading"}),n.current.error("");const y=h=>{u.current()&&(n.current.insert(h,u.focus()),a(null),d.current=null)};try{const h=await _t(l,u.current);if(h.kind==="text"){y(h.text);return}if(h.kind==="files"){const S=h.files.length===1&&h.files[0].type.startsWith("image/")?[Vt(h.files[0])]:h.files;return await E(u,S,h.paths)}throw new Error("剪贴板没有可读取的内容,请使用系统粘贴或选择文件")}catch(h){u.current()&&(a(null),n.current.error(h instanceof Error?h.message:"粘贴失败,请重试"))}},[j,E]);return{transfer:i,addFiles:O,paste:x,cancel:()=>{d.current?.controller.abort(),d.current=null,a(l=>l?{...l,stage:"cancelled"}:null)},retry:()=>{(i?.files?.length||i?.paths?.length)&&E(j(),i.files||[],i.paths)},dismiss:()=>a(null),busy:i?.stage==="reading"||i?.stage==="uploading"}}const Ne="inline-flex min-h-11 items-center justify-center gap-2 rounded-xl px-3 text-sm transition hover:bg-surface-2 disabled:opacity-40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";function dr({sessionId:s,name:n="当前会话",canWrite:i=!0,active:a=!0,terminalLink:d=!1,onKeyboardChange:g,onReadyChange:j,onTerminal:E}){const O=Pt(),x=i&&O.has("session.input");r.useEffect(()=>(j?.(!0),()=>j?.(!1)),[j]);const F=sr(a),W=r.useRef(g);W.current=g,r.useEffect(()=>{W.current?.(a&&F)},[a,F]);const l=`termdock:chat:${mt()?.targetPeerId||location.origin}:${s}`,[u]=r.useState(()=>Ut(l)),[y,h]=r.useState(u?.hasOlder??!1),[S,N]=r.useState(!1),[A,ne]=r.useState(u?.replyPending),[_,K]=r.useState(()=>{try{return sessionStorage.getItem(`${l}:draft`)||""}catch{return""}}),[M,Q]=r.useState(()=>{try{const e=JSON.parse(sessionStorage.getItem(`${l}:reference`)||"null");return e&&typeof e.author=="string"&&typeof e.time=="string"&&typeof e.text=="string"?e:null}catch{return null}}),[X,f]=r.useState(null),[w,L]=r.useState(u?.agentName??"助手"),[V,de]=r.useState(u?.agentSlug),[v,Z]=r.useState(!1),[k,fe]=r.useState(()=>{try{return JSON.parse(sessionStorage.getItem(`${l}:pending`)||"null")}catch{return null}}),[z,We]=r.useState(u?.messages??[]),[bt,Se]=r.useState(!u),[J,yt]=r.useState(u?.agentAvailable),[ke,G]=r.useState(""),[vt,te]=r.useState(!1),[wt,_e]=r.useState(!!u);rt(a&&vt?{tone:"recovering",message:"正在恢复对话同步…"}:null),rt(a&&ke?{message:ke}:null);const[me,Ve]=r.useState(!1),[jt,Ce]=r.useState(!1),[Nt,Et]=r.useState(""),U=r.useRef(null),q=r.useRef(null);ar(q,a);const H=r.useRef(u?.nearBottom??!0),Re=r.useRef(!1),se=r.useRef(0),Ae=r.useRef(0),Le=r.useRef(null),Te=r.useRef(null),Ue=r.useRef(null),ae=r.useRef(0),Oe=r.useRef(k);Oe.current=k;const De=r.useRef(),ie=r.useRef(z);ie.current=z;const D=r.useRef({hasOlder:u?.hasOlder??!1,hasNewer:u?.hasNewer??!1}),he=r.useRef(!1),re=r.useRef(),pe=r.useRef(0),Ie=r.useRef(0),Be=r.useRef(null),[ge]=r.useState(()=>new Set(u?.visibleMessageIds)),[Ke]=r.useState(()=>new Map(u?.rowHeights)),oe=r.useRef(u?.scrollTop??0),ce=r.useRef(),P=r.useRef({active:a,canWrite:x,sessionId:s});P.current={active:a,canWrite:x,sessionId:s};const Me=$t(),ee=r.useCallback((e,c=!0)=>{const o=q.current,b=o?.selectionStart,m=o?.selectionEnd,R=P.current,T=$(),p=Ee();K(B=>{const Y=Math.min(b??B.length,B.length),ve=Math.min(m??Y,B.length),we=B.slice(0,Y)+e+B.slice(ve);return requestAnimationFrame(()=>{o?.isConnected&&o.value===we&&P.current.active&&P.current.canWrite&&P.current.sessionId===R.sessionId&&$()===T&&Ee()===p&&(c&&o.focus({preventScroll:!0}),o.setSelectionRange(Y+e.length,Y+e.length))}),we})},[]),C=ur({sessionId:s,active:a,canWrite:x,input:q,insert:ee,error:G,sessionAttachments:!!Me,directory:Me?Me.directories?.find(e=>e.access==="write")?.path:"/tmp"}),Je=r.useCallback((e,c)=>{if(!a||!x)return;const o=c||Fe(e.content).text;if(new TextEncoder().encode(o).byteLength>8e3){G("这条消息较长,请选中需要引用的内容。");return}f(null),Q({author:e.role==="user"?"用户":w,time:He(e.createdAt),text:o}),G(""),window.getSelection()?.removeAllRanges(),q.current?.focus({preventScroll:!0})},[a,x,w]);r.useEffect(()=>{if(!a||!x){f(null);return}const e=()=>{const c=window.getSelection(),o=c?.toString().trim(),b=p=>p instanceof Element?p:p?.parentElement,m=b(c?.anchorNode)?.closest("[data-chat-message]"),R=b(c?.focusNode)?.closest("[data-chat-message]"),T=o&&m===R&&m&&Te.current?.contains(m)?{id:m.dataset.chatMessage,text:o}:null;f(p=>p?.id===T?.id&&p?.text===T?.text?p:T)};return document.addEventListener("selectionchange",e),()=>document.removeEventListener("selectionchange",e)},[a,x]),r.useEffect(()=>{try{M?sessionStorage.setItem(`${l}:reference`,JSON.stringify(M)):sessionStorage.removeItem(`${l}:reference`)}catch{}},[l,M]);const St=`/api/terminal/${encodeURIComponent(s)}/chat`,xe=r.useCallback((e,c=!1)=>{const o=rr(c?[]:ie.current,e);ie.current=o,We(o)},[]),be=r.useCallback(async(e,c=!1)=>{e=AbortSignal.any([...e?[e]:[],AbortSignal.timeout(15e3)]);const o=++Ae.current,b=$(),m=ie.current,R=c?void 0:m[m.length-1]?.id,T=Oe.current?{requestId:Oe.current.requestId}:{};let p;try{p=await je(s,e,c?void 0:De.current,{...R?{after:R}:{},...T})}catch(I){if(!R||I.status!==404)throw I;p=await je(s,e,void 0,T),c=!0}if(e.aborted||o!==Ae.current||$()!==b)return;if(p.unchanged&&p.revision&&p.revision===De.current){Se(!1),te(!1),_e(!0);return}p.page?.hasNewer&&H.current&&!D.current.hasNewer&&(p=await je(s,e,void 0,T),c=!0);const B=p.messages;if(!Array.isArray(B)||p.updates!==void 0&&!Array.isArray(p.updates))throw new Error("暂时无法读取对话,请重试");const Y=[...p.updates??[],...B];if(Y.some(I=>I.ui)&&await ut(),e.aborted||o!==Ae.current||$()!==b)return;yt(p.agentAvailable===!0),L(typeof p.agent?.displayName=="string"&&p.agent.displayName.trim()?p.agent.displayName:"助手"),de(typeof p.agent?.slug=="string"?p.agent.slug:void 0),De.current=typeof p.revision=="string"?p.revision:void 0;const ve=c||m.length===0;ve&&(ge.clear(),Ie.current++,re.current?.abort(),D.current.hasOlder=p.page?.hasOlder===!0,h(D.current.hasOlder)),ne(p.replyPending),D.current.hasNewer=p.page?.hasNewer===!0;const we=new Set(m.map(I=>I.id));(D.current.hasNewer||m.length&&!H.current&&B.some(I=>!we.has(I.id)))&&Ce(!0),xe(Y,ve),fe(I=>I&&(p.confirmedRequestId===I.requestId||Y.some(Lt=>Lt.requestId===I.requestId))?null:I),Se(!1),te(!1),_e(!0)},[s,xe,ge]),ye=r.useCallback(async()=>{const e=ie.current[0]?.id;if(!P.current.active||!D.current.hasOlder||!e||he.current||Date.now()<pe.current)return;const c=new AbortController,o=$(),b=Ie.current;re.current=c,he.current=!0,N(!0);try{const m=await je(s,c.signal,void 0,{before:e});if(!Array.isArray(m.messages))throw new Error("对话分页无效");if(m.messages.some(T=>T.ui)&&await ut(),c.signal.aborted||$()!==o||b!==Ie.current||!P.current.active)return;const R=U.current;R&&(ce.current={top:R.scrollTop,height:R.scrollHeight}),D.current.hasOlder=m.page?.hasOlder===!0,h(D.current.hasOlder),xe(m.messages),pe.current=0}catch(m){c.signal.aborted||(m.status===404?(D.current.hasOlder=!1,h(!1)):(pe.current=Date.now()+5e3,te(!0)))}finally{re.current===c&&(he.current=!1,re.current=void 0,P.current.active&&N(!1))}},[s,xe]);r.useEffect(()=>{const e=Be.current,c=U.current;if(!a||!y||!e||!c)return;const o=()=>{pe.current=0,c.scrollTop<c.clientHeight&&ye()};window.addEventListener("online",o);const b=typeof IntersectionObserver>"u"?void 0:new IntersectionObserver(m=>{m.some(R=>R.isIntersecting)&&ye()},{root:c,rootMargin:`${c.clientHeight}px 0px`});return b?.observe(e),()=>{b?.disconnect(),window.removeEventListener("online",o)}},[a,y,z.length,ye]),r.useEffect(()=>(a||N(!1),()=>{re.current?.abort(),re.current=void 0,he.current=!1}),[a]),r.useEffect(()=>{if(!a)return;const e=new AbortController;let c=!1,o=0,b;const m=async()=>{if(!(c||document.visibilityState==="hidden")){clearTimeout(b),c=!0;try{await be(e.signal),o=0}catch{e.signal.aborted||(o++,te(!0),Se(!1))}finally{c=!1,e.signal.aborted||(b=setTimeout(()=>{m()},Math.min(3e4,2500*2**o)))}}};return m(),window.addEventListener("online",m),window.addEventListener(nt,m),document.addEventListener("visibilitychange",m),()=>{e.abort(),clearTimeout(b),window.removeEventListener("online",m),window.removeEventListener(nt,m),document.removeEventListener("visibilitychange",m)}},[a,be]),r.useEffect(()=>()=>{se.current++},[]),r.useEffect(()=>{try{sessionStorage.setItem(`${l}:draft`,_)}catch{}},[l,_]),r.useEffect(()=>{try{k?sessionStorage.setItem(`${l}:pending`,JSON.stringify(k)):sessionStorage.removeItem(`${l}:pending`)}catch{}},[l,k]);const le=r.useCallback(()=>{const e=U.current;e&&e.clientHeight&&(e.scrollTop=e.scrollHeight,oe.current=e.scrollTop,H.current=!0,D.current.hasNewer||Ce(!1))},[]);r.useEffect(()=>{if(!Le.current||typeof ResizeObserver>"u")return;const e=new ResizeObserver(()=>{P.current.active&&H.current&&le()});return e.observe(Le.current),U.current&&e.observe(U.current),()=>e.disconnect()},[le]),r.useLayoutEffect(()=>{const e=U.current;!a||!e||(ce.current?(e.scrollTop=ce.current.top+e.scrollHeight-ce.current.height,oe.current=e.scrollTop,ce.current=void 0):H.current?le():e.scrollTop=oe.current)},[z,k,a,y,le]);const Ge=r.useRef({messages:z,agentName:w,agentSlug:V,agentAvailable:J,replyPending:A,hasOlder:y,hasNewer:D.current.hasNewer});Ge.current={messages:z,agentName:w,agentSlug:V,agentAvailable:J,replyPending:A,hasOlder:y,hasNewer:D.current.hasNewer},r.useEffect(()=>{const e=$(),c=ot();return()=>{const o=Ge.current;o.agentAvailable!==void 0&&$()===e&&c===ot()&&Bt(l,{...o,agentAvailable:o.agentAvailable,scrollTop:oe.current,nearBottom:H.current,rowHeights:[...Ke],visibleMessageIds:[...ge]})}},[l]),r.useLayoutEffect(()=>{const e=q.current;e&&(e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,176)}px`)},[_,a]),r.useEffect(()=>{const e=q.current;if(!e||typeof ResizeObserver>"u")return;let c=0;const o=new ResizeObserver(()=>{e.clientWidth!==c&&(c=e.clientWidth,e.style.height="auto",e.style.height=`${Math.min(e.scrollHeight,176)}px`)});return o.observe(e),()=>o.disconnect()},[]);const ue=async(e,c)=>{if(Re.current||C.busy||!P.current.active||!P.current.canWrite||J!==!0)return!1;const o=e||{content:c??dt(_,M),requestId:crypto.randomUUID(),createdAt:Date.now()};if(!o.content||new TextEncoder().encode(o.content).byteLength>32e3)return!1;Re.current=!0,Ve(!0),G(""),ne(void 0),fe(o),H.current=!0,!e&&c===void 0&&(K(""),Q(null));const b=se.current;try{const m=await fetch(St,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:o.content,requestId:o.requestId}),signal:AbortSignal.timeout(2e4)}),R=await m.json();if(!m.ok)throw new Error("发送失败,请重试。");if(b!==se.current)return!1;fe(null),We(T=>T.some(p=>p.id===R.id)?T:[...T,{...o,id:R.id,role:"user",status:R.status}]);try{await be()}catch{te(!0)}return!0}catch(m){return b===se.current&&G(m instanceof Error&&m.name==="TimeoutError"?"发送状态待确认,请重试。":"发送失败,请重试。"),!1}finally{Re.current=!1,b===se.current&&Ve(!1)}};r.useEffect(()=>{const e=c=>{const o=c.detail;a&&x&&o.sessionId===s&&ee(o.text)};return window.addEventListener("termdock:chat-insert",e),()=>window.removeEventListener("termdock:chat-insert",e)},[s,a,x,ee]),r.useEffect(()=>{if(!a)return;const e=c=>{const o=c.detail;if(!o?.text||o.sessionId!==s)return;c.stopImmediatePropagation();const b=x&&(!o.ownedPaste||!!Wt(o,s));b&&ee(o.text,o.focus!==!1),o.nonce&&window.dispatchEvent(new CustomEvent("termdock-insert-reference-ack",{detail:{nonce:o.nonce,ok:b}}))};return window.addEventListener("termdock-insert-reference",e,!0),()=>window.removeEventListener("termdock-insert-reference",e,!0)},[s,a,x,ee]);const Ye=r.useRef(ue);Ye.current=ue;const kt=r.useCallback(e=>Ye.current(void 0,e),[]),Ct=r.useCallback((e,c)=>{Kt(e,()=>Te.current?.isConnected===!0).then(o=>{o?Et(c):G("复制失败,请选择正文复制")})},[]),Rt=async()=>{if(D.current.hasNewer){H.current=!0;try{await be(void 0,!0)}catch{te(!0)}}le()},At=J===!0&&!k&&(A??er(z)),Qe=new TextEncoder().encode(dt(_,M)).byteLength>32e3;return t.jsxs("section",{ref:Te,"data-session-chat":!0,onDragEnter:e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),ae.current++,x&&Z(!0))},onDragOver:e=>{e.dataTransfer.types.includes("Files")&&(e.preventDefault(),e.dataTransfer.dropEffect=x?"copy":"none")},onDragLeave:e=>{e.dataTransfer.types.includes("Files")&&(ae.current=Math.max(0,ae.current-1),ae.current||Z(!1))},onDrop:e=>{let c;try{c=Ht(e.dataTransfer)}catch(b){e.preventDefault(),G(b instanceof Error?b.message:"文件引用无效");return}if(c&&x){e.preventDefault(),e.stopPropagation(),ee(c);return}const o=Array.from(e.dataTransfer.files);if(o.length)e.preventDefault(),e.stopPropagation(),Z(!1),ae.current=0,C.addFiles(o);else if(x&&e.target.closest("[data-chat-composer]")){const b=e.dataTransfer.getData("text/plain");b&&(e.preventDefault(),ee(b))}},onKeyDown:e=>e.stopPropagation(),className:"session-chat relative flex h-full min-h-0 flex-col overflow-hidden bg-[var(--chrome-bg)] text-foreground","aria-label":`${n}对话`,children:[t.jsxs("div",{ref:U,className:"min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 [overflow-anchor:none] sm:px-8",onScroll:()=>{const e=U.current;!a||!e.clientHeight||(oe.current=e.scrollTop,H.current=e.scrollHeight-e.scrollTop-e.clientHeight<96,H.current&&!D.current.hasNewer&&Ce(!1),e.scrollTop<e.clientHeight&&ye())},children:[t.jsxs("div",{ref:Le,className:"mx-auto flex min-h-full w-full max-w-screen-2xl flex-col py-5 sm:py-8",children:[y&&t.jsx("div",{ref:Be,"data-chat-older-edge":!0,"aria-hidden":"true",className:"h-12 shrink-0",children:S&&t.jsxs("div",{className:"space-y-2 py-2",children:[t.jsx("div",{className:"chat-loading-skeleton h-3 w-3/4 rounded bg-surface-2"}),t.jsx("div",{className:"chat-loading-skeleton h-3 w-1/2 rounded bg-surface-2"})]})}),(bt||!wt)&&!z.length&&!k?t.jsx(Jt,{}):!z.length&&!k?t.jsxs("div",{className:"my-auto py-6",children:[t.jsx(Ft,{size:27,strokeWidth:1.5,className:"mb-4 text-primary"}),t.jsx("h2",{className:"text-xl font-semibold tracking-tight sm:text-2xl",children:"想一起完成什么?"}),t.jsx("p",{className:"mt-2 max-w-md text-[15px] leading-7 text-muted-foreground",children:"直接描述你的目标,或从一个问题开始。"}),t.jsx("div",{className:"mt-5 flex flex-wrap gap-2",children:["帮我梳理一下当前工作","请解释一下刚才的结果","我们继续下一步"].map(e=>t.jsx("button",{type:"button",className:`${Ne} border border-border/60 text-left text-xs text-muted-foreground`,disabled:!x,onClick:()=>{K(e),q.current?.focus({preventScroll:!0})},children:e},e))})]}):t.jsx(lr,{pendingMessage:k&&t.jsx(xt,{content:k.content,createdAt:k.createdAt,status:me?"发送中…":"待重试",children:!me&&t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"min-h-9 rounded-lg px-2 hover:bg-surface-2",onClick:()=>{const e=Fe(k.content);K(e.text),Q(e.reference),fe(null),G(""),q.current?.focus({preventScroll:!0})},children:"修改草稿"}),t.jsxs("button",{type:"button",className:"inline-flex min-h-9 items-center gap-1 rounded-lg px-2 text-primary hover:bg-surface-2",disabled:!x||J!==!0,onClick:()=>{ue(k)},children:[t.jsx(qt,{size:12}),"重试发送"]})]})}),sessionId:s,uiWritable:a&&x&&!k&&!me&&J===!0,onAction:kt,messages:z,scrollRoot:U,rowHeights:Ke,nearbyIds:ge,initialVisibleIds:u?.visibleMessageIds,agentName:w,agentSlug:V,canWrite:x,copied:Nt,onReference:Je,onCopy:Ct}),At&&!ke&&t.jsxs("div",{"data-chat-reply-status":!0,role:"status","aria-label":`${w}工作中`,"aria-live":"polite",className:"mt-6 inline-flex w-fit max-w-full items-center gap-3 self-start rounded-lg border border-border/50 bg-[color-mix(in_srgb,var(--surface)_35%,var(--chrome-bg))] px-3 py-2 text-xs text-muted-foreground",children:[t.jsx(pt,{name:w,slug:V}),t.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1.5",children:[t.jsx(st,{size:14,className:"animate-spin text-primary motion-reduce:animate-none"}),t.jsx("span",{children:"工作中…"})]})]})]}),(z.length>0||k)&&t.jsx("div",{"aria-hidden":"true",className:"session-chat-keyboard-spacer"})]}),v&&t.jsxs("div",{className:"pointer-events-none absolute inset-3 z-20 flex items-center justify-center rounded-2xl border-2 border-dashed border-primary bg-surface/95 text-sm text-primary",children:[t.jsx(ct,{size:18,className:"mr-2"}),"松开以添加文件"]}),t.jsxs("div",{className:"session-chat-composer relative shrink-0 px-3 pb-3 pt-1 sm:px-8 sm:pb-4",children:[jt&&t.jsx("div",{className:"flex justify-center pb-2",children:t.jsxs("button",{type:"button",className:`${Ne} rounded-full border border-border bg-surface text-xs shadow-lg`,onClick:()=>{Rt()},children:[t.jsx(Qt,{size:14}),"查看新消息"]})}),t.jsxs("div",{className:"relative mx-auto max-w-screen-2xl",children:[J===!1&&t.jsxs("div",{role:"status",className:"mb-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[t.jsx("span",{children:"当前对话暂不可用。"}),t.jsxs("button",{type:"button",className:Ne,onClick:E,children:[t.jsx(at,{size:14}),"打开终端"]})]}),X&&t.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-full z-20 mb-2 flex justify-center",children:t.jsxs("div",{className:"pointer-events-auto flex max-w-full items-center overflow-hidden rounded-xl border border-border bg-surface-2 shadow-lg transition-colors hover:bg-surface-elevated focus-within:bg-surface-elevated",children:[t.jsxs("button",{type:"button","aria-label":"引用选中内容",className:"inline-flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-l-xl px-3 py-1 text-left text-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",onPointerDown:e=>e.preventDefault(),onClick:()=>{const e=z.find(c=>c.id===X.id);e&&Je(e,X.text)},children:[t.jsx(qe,{size:13,className:"shrink-0 text-primary"}),t.jsx("span",{className:"shrink-0 text-primary",children:"引用选中内容"}),t.jsx("span",{className:"hidden min-w-0 max-w-sm truncate text-muted-foreground sm:block",children:X.text})]}),t.jsx("button",{type:"button","aria-label":"取消选中引用",className:"inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-r-xl text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",onClick:()=>{f(null),window.getSelection()?.removeAllRanges()},children:t.jsx($e,{size:13})})]})}),C.transfer&&t.jsxs("div",{role:"status",className:"mb-2 flex min-h-9 items-center gap-2 px-1 text-xs text-muted-foreground",children:[C.busy&&t.jsx(st,{size:13,className:"animate-spin text-primary"}),t.jsx("span",{className:"min-w-0 flex-1",children:C.transfer.stage==="reading"?"正在读取剪贴板…":C.transfer.stage==="uploading"?`正在上传文件${C.transfer.percent===void 0?"…":` · ${C.transfer.percent}%`}`:C.transfer.stage==="cancelled"?"已取消上传":"上传未完成,文件尚未添加"}),C.busy?t.jsx("button",{type:"button",className:"min-h-9 px-2",onClick:C.cancel,children:"取消"}):t.jsxs(t.Fragment,{children:[t.jsx("button",{type:"button",className:"min-h-9 px-2 text-primary",onClick:C.retry,children:"重试上传"}),t.jsx("button",{type:"button","aria-label":"关闭上传提示",className:"min-h-9 px-2",onClick:C.dismiss,children:t.jsx($e,{size:13})})]})]}),t.jsxs("form",{"data-chat-composer":!0,className:"rounded-2xl border border-border bg-surface p-2.5 transition-colors focus-within:border-primary/60",onSubmit:e=>{e.preventDefault(),k||ue()},children:[M&&t.jsx(gt,{reference:M,onRemove:()=>Q(null)}),t.jsxs("div",{className:"flex items-end gap-2",children:[t.jsx("input",{ref:Ue,type:"file",multiple:!0,tabIndex:-1,className:"hidden","aria-label":"选择附件",onChange:e=>{C.addFiles(Array.from(e.currentTarget.files||[])),e.currentTarget.value=""}}),t.jsx("button",{type:"button","aria-label":"添加文件",title:"添加文件,也可拖入或粘贴",className:"mb-0.5 inline-flex h-10 w-8 shrink-0 items-center justify-center rounded-lg text-muted-foreground transition hover:bg-surface-2 disabled:opacity-30",disabled:!x||C.busy,onPointerDown:e=>e.preventDefault(),onClick:()=>Ue.current?.click(),children:t.jsx(ct,{size:18})}),t.jsx("textarea",{ref:q,onFocus:()=>f(null),onPaste:e=>{const{files:c,text:o}=Gt(e.clipboardData);(c.length||it()?.readClipboardFiles||!o&&(it()||typeof navigator.clipboard?.read=="function"))&&(e.preventDefault(),C.paste({files:c,text:o}))},rows:1,autoComplete:"off",className:"session-chat-input min-w-0 flex-1 resize-none bg-transparent px-1 py-2 text-base leading-7 outline-none placeholder:text-muted-foreground/60","aria-label":`给${w}的消息`,placeholder:x?"输入消息…":"此会话仅允许查看",value:_,disabled:!x,onChange:e=>K(e.target.value),onKeyDown:e=>{e.stopPropagation(),e.key==="Enter"&&!e.shiftKey&&!e.altKey&&!e.nativeEvent.isComposing&&e.nativeEvent.keyCode!==229&&(e.preventDefault(),k||ue())}}),t.jsx("button",{type:"submit","aria-label":"发送消息",onPointerDown:e=>{document.activeElement===q.current&&e.preventDefault()},className:"mb-0.5 inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary text-primary-foreground transition hover:opacity-90 disabled:opacity-30",disabled:me||C.busy||!!k||!_.trim()||Qe||!x||J!==!0,children:t.jsx(Xt,{size:19})})]})]}),Qe?t.jsx("p",{className:"mt-2 px-1 text-xs text-destructive",children:"消息过长,请缩短后发送。"}):x?!F&&t.jsx("p",{className:"session-chat-keyboard-hint mt-2 hidden px-1 text-[11px] text-muted-foreground/60 sm:block",children:"Enter 发送 · Shift + Enter 换行"}):t.jsx("p",{className:"mt-2 px-1 text-[11px] text-muted-foreground",children:"仅查看"}),d&&t.jsx("div",{className:"mt-1 flex justify-end",children:t.jsxs("button",{type:"button",className:`${Ne} min-h-9 px-2 text-xs text-muted-foreground`,onClick:E,children:[t.jsx(at,{size:13}),"查看终端"]})})]})]})]})}function fr(s){return t.jsx(dr,{...s},`${mt()?.targetPeerId||location.origin}:${s.sessionId}`)}const vr=Object.freeze(Object.defineProperty({__proto__:null,SessionChatView:fr},Symbol.toStringTag,{value:"Module"}));export{ir as C,vr as S};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as a,C as n}from"./mermaid.core-DnVKnMmy.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-TICWLB2K-CoevFj8I.js";import{d as i}from"./mermaid.core-DnVKnMmy.js";import"./chunk-5VM5RSS4-B3InxqDA.js";import"./chunk-XXDRQBXY-D7qYRhMH.js";import"./chunk-POPQ4Y6H-D0JWCGnb.js";import"./chunk-F27PBJKO-CjUVyF-E.js";import"./purify.es-4eNOHKSq.js";import"./app-CovJYQoW.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-DaiFCKy_.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,a as s,c as t,C as e}from"./chunk-TICWLB2K-CoevFj8I.js";import{d as i}from"./mermaid.core-DnVKnMmy.js";import"./chunk-5VM5RSS4-B3InxqDA.js";import"./chunk-XXDRQBXY-D7qYRhMH.js";import"./chunk-POPQ4Y6H-D0JWCGnb.js";import"./chunk-F27PBJKO-CjUVyF-E.js";import"./purify.es-4eNOHKSq.js";import"./app-CovJYQoW.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-DaiFCKy_.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a$ as S,dG as b,bW as y,er as C,b2 as u,dD as $,cq as l,dM as D}from"./app-CovJYQoW.js";const N=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],_=S("paperclip",N);class g extends Error{}function F(e){if(!e.type.startsWith("image/")||e.size===0)throw new Error("Clipboard image is empty");const n=e.type==="image/jpeg"?"jpg":e.type.split("/")[1].replace(/[^a-z0-9]/gi,"")||"png";return new File([e],`termdock-clipboard-${Date.now()}-${crypto.randomUUID()}.${n}`,{type:e.type})}async function H(e,n){const{files:t}=await C("/tmp",[F(e)],n);if(!t[0]?.path)throw new Error("Upload did not return an image path");return t[0].path}async function x(e){const n=y();if(n?.readClipboardImage){const t=await n.readClipboardImage();return t?.byteLength?new File([t],"clipboard.png",{type:"image/png"}):null}if(typeof e?.read!="function")return null;for(const t of await e.read()){const r=t.types.find(i=>i.startsWith("image/"));if(!r)continue;const a=await t.getType(r),o=r==="image/jpeg"?"jpg":r.split("/")[1].replace(/[^a-z0-9]/gi,"")||"png";return new File([a],`termdock-clipboard-${Date.now()}.${o}`,{type:r})}return null}async function L(e){if(typeof e?.read!="function")return[];const n=[],t={"video/mp4":"mp4","video/quicktime":"mov","video/x-m4v":"m4v","video/webm":"webm","video/ogg":"ogv","video/mpeg":"mpeg","video/x-msvideo":"avi","video/x-matroska":"mkv","video/3gpp":"3gp","video/3gpp2":"3g2"};for(const r of await e.read()){const a=r.types.find(s=>s.startsWith("video/"));if(!a)continue;const o=await r.getType(a);if(!o.size)throw new Error("Clipboard video is empty");const i=a.split(";")[0].toLowerCase(),c=t[i]||i.slice(6).replace(/[^a-z0-9]/g,"")||"mp4";n.push(new File([o],`termdock-clipboard-${Date.now()}-${crypto.randomUUID()}.${c}`,{type:a}))}return n}async function A(){const e=b()?.targetPeerId;let n;try{n=await y()?.readClipboardFiles?.({localServiceId:e})}catch(a){const o=a instanceof Error?a.message:String(a),i="TERMDOCK_CLIPBOARD_VIDEO_ERROR:",c=o.indexOf(i);if(c!==-1)throw new g(o.slice(c+i.length).trim());const s=o.match(/execution error: Error: (复制来源未提供可读取的视频数据[^\r\n]*|无法读取剪贴板视频)(?:\s*\(-\d+\))?\s*$/);throw s?new g(s[1]):a}if(b()?.targetPeerId!==e)throw new Error("目标服务已切换,请重新粘贴");const t=[],r=[];for(const a of n??[])if(a.path&&e)r.push(a.path);else if(a.bytes){if(a.type?.startsWith("video/")&&a.bytes.byteLength===0)throw new g("复制来源未提供可读取的视频数据,请重新复制视频或选择文件上传");t.push(new File([a.bytes],a.name,{type:a.type||"application/octet-stream"}))}else throw new Error("剪贴板未提供可读取的文件");return{files:t,paths:r}}async function M(e,n){if(!e.length)return[];const{files:t}=await C("/tmp",e,n);if(t.length!==e.length||t.some(r=>!r.path))throw new Error("Upload did not return every file path");return t.map(r=>r.path)}function q(e){return{files:e.files.length?Array.from(e.files):Array.from(e.items||[]).filter(t=>t.kind==="file").map(t=>t.getAsFile()).filter(t=>!!t),text:e.getData("text/plain")}}async function W(e,n=()=>!0){const t=o=>{if(!n())throw new DOMException("目标服务已切换或粘贴操作已取消,请重新粘贴","AbortError");return o};t(null);const r=y();let a;if(r?.readClipboardFiles)try{const o=t(await A());if(o.files.length||o.paths.length)return{kind:"files",...o}}catch(o){if(t(null),o instanceof g)throw o;a=o}if(e?.files.length)return t({kind:"files",files:e.files,paths:[]});if(e?.text)return t({kind:"text",text:e.text});if(!r?.readClipboardImage&&typeof navigator.clipboard?.read=="function"){const o=t(await navigator.clipboard.read()),i={read:async()=>o},c=t(await L(i));if(c.length)return{kind:"files",files:c,paths:[]};const s=t(await x(i));if(s)return{kind:"files",files:[s],paths:[]};for(const m of o)if(m.types.includes("text/plain"))return{kind:"text",text:t(await t(await m.getType("text/plain")).text())}}else if(r?.readClipboardImage){const o=t(await x());if(o)return{kind:"files",files:[o],paths:[]}}if(navigator.clipboard?.readText){const o=t(await navigator.clipboard.readText());if(o)return{kind:"text",text:o}}if(a)throw a;return{kind:"empty"}}const d=new Map;let v=u(),f=0,k=0;const K=()=>k;function E(){d.clear(),f=0,k++}function T(){v!==u()&&(E(),v=u())}function O(e){T();const n=d.get(e);if(n&&(d.delete(e),f-=n.bytes,!(Date.now()-n.at>5*6e4)))return d.set(e,n),f+=n.bytes,n.value}function V(e,n){T();const t=d.get(e);t&&(f-=t.bytes,d.delete(e));const r=JSON.stringify(n.messages).length*2;if(!(r>4*1024*1024))for(d.set(e,{value:n,at:Date.now(),bytes:r}),f+=r;d.size>12||f>8*1024*1024;){const a=d.keys().next().value;f-=d.get(a).bytes,d.delete(a)}}typeof window<"u"&&window.addEventListener("auth:unauthorized",E);const R=30,p=new Map,h=e=>`${$()?.targetPeerId||location.origin}:${e}`;function I(e,n,t=!1,r={}){const a=JSON.stringify(r),o=h(e),i=p.get(o);if(i&&i.client===u()&&!i.controller.signal.aborted&&(t&&i.consumed||!i.consumed&&i.queryKey===a))return i;i&&(i.client!==u()||!i.consumed&&i.queryKey!==a)&&i.controller.abort();const c=new AbortController,s={queryKey:a,client:u(),controller:c,warm:!1,consumed:!1,promise:void 0},m=new URLSearchParams({limit:String(R),...r,...n?{revision:n}:{}}),j=`/api/terminal/${encodeURIComponent(e)}/chat?${m}`;return s.promise=(async()=>{const w=await fetch(j,{signal:AbortSignal.any([c.signal,AbortSignal.timeout(15e3)])});if(!w.ok)throw Object.assign(new Error("暂时无法读取对话,请重试"),{status:w.status});return await w.json()})().finally(()=>{(!s.warm||s.consumed||c.signal.aborted)&&p.get(o)===s&&p.delete(o)}),s.promise.catch(()=>{}),p.set(o,s),s}function G(e){const n=h(e);if(O(`termdock:chat:${n}`))return()=>{};const t=I(e,void 0,!0);return t.consumed?()=>{}:(t.warm=!0,()=>{t.consumed||(t.controller.abort(),p.get(n)===t&&p.delete(n))})}async function B(e,n,t,r){if(n.aborted)throw n.reason;const a=I(e,t,!1,r);a.consumed=!0;const o=()=>a.controller.abort(n.reason);n.addEventListener("abort",o,{once:!0});try{return await a.promise}finally{n.removeEventListener("abort",o),p.get(h(e))===a&&p.delete(h(e))}}function z(){for(const e of p.values())e.controller.abort();p.clear()}typeof window<"u"&&window.addEventListener("auth:unauthorized",z);function J(){return l.jsx("div",{"data-chat-loading":!0,role:"status","aria-label":"正在加载对话",className:"py-4",children:l.jsxs("div",{"aria-hidden":"true",className:"space-y-6",children:[l.jsx("div",{className:"chat-loading-skeleton ml-auto h-11 w-[48%] max-w-md rounded-2xl bg-surface-2"}),l.jsxs("div",{className:"space-y-3",children:[l.jsx("div",{className:"chat-loading-skeleton h-4 w-20 rounded bg-surface-2"}),l.jsx("div",{className:"chat-loading-skeleton h-3 w-[88%] rounded bg-surface-2"}),l.jsx("div",{className:"chat-loading-skeleton h-3 w-[72%] rounded bg-surface-2"}),l.jsx("div",{className:"chat-loading-skeleton h-3 w-[54%] rounded bg-surface-2"})]}),l.jsxs("div",{className:"space-y-3",children:[l.jsx("div",{className:"chat-loading-skeleton h-3 w-[80%] rounded bg-surface-2"}),l.jsx("div",{className:"chat-loading-skeleton h-3 w-[62%] rounded bg-surface-2"})]})]})})}async function P(e,n=()=>!0){if(!e||!n())return!1;const t=y();if(t?.writeClipboardText)try{return await t.writeClipboardText(e),n()}catch{return!1}try{return await navigator.clipboard.writeText(e),n()}catch{if(!n())return!1;const r=document.activeElement,a=document.createElement("textarea");a.value=e,a.readOnly=!0,a.style.position="fixed",a.style.left="-9999px",document.body.append(a);try{return a.select(),n()&&document.execCommand("copy")}catch{return!1}finally{a.remove(),r instanceof HTMLElement&&r.isConnected&&r.focus({preventScroll:!0})}}}async function Y(e,n){if(!n())return!1;const t=await D(e,{action:"copy-selection"});if(!n())return!1;const r=t.selection;if(!t.success||!r||!["copied","empty"].includes(r.status)||typeof r.text!="string"||typeof r.paneId!="string"||!/^%[0-9]+$/.test(r.paneId)||new TextEncoder().encode(r.text).length!==r.bytes||r.bytes>262144)throw new Error("服务未返回有效的终端选区,请更新服务后重试。");if(r.status==="empty")return!1;if(!r.bytes)throw new Error("终端选区为空。");return P(r.text,n)}export{J as C,_ as P,q as a,Y as b,K as c,F as d,O as e,W as f,H as g,G as p,B as r,V as s,M as u,P as w};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.swiper.session-chat-swiper{touch-action:pan-x pan-y}.session-chat-input{min-height:44px;max-height:min(176px,calc(var(--app-visual-vh, 100dvh) * .35));transition:none}html[data-termdock-touch-viewport=true] .session-chat-composer{transform:translateY(var(--kb-translate-y, 0px));transition:none;background:var(--chrome-bg);z-index:20}html[data-termdock-touch-viewport=true] .session-chat-keyboard-hint{display:none}html[data-termdock-touch-viewport=true] .session-chat-keyboard-spacer{height:var(--kb-height, 0px)}.chat-loading-skeleton{position:relative;overflow:hidden}.chat-loading-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--foreground) 6%,transparent),transparent);transform:translate(-100%);animation:chat-skeleton-sweep 1.8s ease-in-out infinite}@keyframes chat-skeleton-sweep{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.chat-loading-skeleton:after{animation:none}}.chat-reply+.chat-reply{margin-top:12px}.chat-reply-meta{height:24px;margin-top:2px}.chat-reply-meta>.chat-message-tools{height:24px}.chat-reply-meta .chat-message-action{height:24px;min-height:24px;min-width:28px}.chat-reply-divider{height:1px;background:color-mix(in srgb,var(--border) 45%,transparent)}.chat-message-tools{display:inline-flex;align-items:center;gap:4px;opacity:0;pointer-events:none;transition:opacity .12s ease}[data-chat-message]:focus-within>[data-chat-message-actions]>.chat-message-tools,[data-chat-message][data-actions-open]>[data-chat-message-actions]>.chat-message-tools{opacity:1;pointer-events:auto}@media(hover:hover){[data-chat-message]:hover>[data-chat-message-actions]>.chat-message-tools{opacity:1;pointer-events:auto}}@media(hover:none),(pointer:coarse){.chat-reply-meta,.chat-reply-meta>.chat-message-tools{height:32px}.chat-user-meta{min-height:44px}.chat-message-action{min-height:44px;min-width:44px}.chat-reply-meta .chat-message-action{height:32px;min-height:32px;min-width:32px}.chat-reply+.chat-reply{margin-top:12px}}@media(prefers-reduced-motion:reduce){.chat-message-tools{transition:none}}.chat-replies>[data-chat-viewport-row]+[data-chat-viewport-row]{margin-top:4px}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r,a as e,s as a,S as i}from"./chunk-IMKFNOWR-BR8mmBs7.js";import{d as s}from"./mermaid.core-DnVKnMmy.js";import"./chunk-XXDRQBXY-D7qYRhMH.js";import"./chunk-POPQ4Y6H-D0JWCGnb.js";import"./chunk-F27PBJKO-CjUVyF-E.js";import"./purify.es-4eNOHKSq.js";import"./app-CovJYQoW.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-DaiFCKy_.js";var g={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:s(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{g as diagram};
|
|
Binary file
|
|
Binary file
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{c as r,s as e}from"./flowDiagram-HODETNUW-BrGqcUWn.js";import{d as o}from"./mermaid.core-DnVKnMmy.js";import"./chunk-5VM5RSS4-B3InxqDA.js";import"./chunk-XXDRQBXY-D7qYRhMH.js";import"./chunk-POPQ4Y6H-D0JWCGnb.js";import"./chunk-F27PBJKO-CjUVyF-E.js";import"./purify.es-4eNOHKSq.js";import"./channel-Dd6WQGB7.js";import"./app-CovJYQoW.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-DaiFCKy_.js";var a=o(t=>`${e(t)}
|
|
2
|
-
.swimlane.cluster rect {
|
|
3
|
-
stroke: ${t.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,"getStyles"),m=a,v=r({defaultLayout:"swimlane",styles:m});export{v as diagram};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|