collabmd 0.1.51 → 0.1.52
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/README.md +1 -1
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-BEz2BKN1.js +1 -0
- package/dist/client/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/client/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/client/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/client/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/client/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/client/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/client/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/client/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/client/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/client/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/client/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/client/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/client/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/client/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/client/assets/Middleware-DUgFSleI.js +1 -0
- package/dist/client/assets/_basePickBy-QJXUw_pr.js +1 -0
- package/dist/client/assets/_baseUniq-DR4vVjyC.js +1 -0
- package/dist/client/assets/abnfDiagram-O67JEVCF-Dwt6a0Ds.js +1 -0
- package/dist/client/assets/abnfDiagram-VCTEODGH-DxNxad6-.js +1 -0
- package/dist/client/assets/architecture-7GRP2DOG-BBwRXFv3.js +1 -0
- package/dist/client/assets/architecture-7GRP2DOG-DJVtYNt-.js +1 -0
- package/dist/client/assets/architectureDiagram-5GKGNRK7-C1uvg5id.js +36 -0
- package/dist/client/assets/architectureDiagram-NJMV4G6O-D5CGiX3G.js +36 -0
- package/dist/client/assets/{babel-CY5KOv-I.js → babel-Bi_28hhi.js} +1 -1
- package/dist/client/assets/band-D-Cum8PO.js +1 -0
- package/dist/client/assets/blockDiagram-BEXU5L5S-BgTM0var.js +140 -0
- package/dist/client/assets/blockDiagram-I7D4REHJ-B2YonsoG.js +129 -0
- package/dist/client/assets/{browser-BKLM0ThC-IxjwuOIz-DyJcVMFR.js → browser-BKLM0ThC-IxjwuOIz-C0mP17s1.js} +1 -1
- package/dist/client/assets/{browser-utils-DbXSMI-6.js → browser-utils-vlHL9goC.js} +1 -1
- package/dist/client/assets/{c4Diagram-7LVT6UL2-VAk1HPmz.js → c4Diagram-7LVT6UL2-r4IwomZm.js} +2 -2
- package/dist/client/assets/c4Diagram-YGBWAQC7-_xZPrNkB.js +38 -0
- package/dist/client/assets/channel-CgcHBnmr.js +1 -0
- package/dist/client/assets/chunk-2E4U76K2-CIQUuV9n.js +1 -0
- package/dist/client/assets/chunk-2Q5K7J3B-BMFG3ur0.js +1 -0
- package/dist/client/assets/{chunk-2ZTRR5NV-C2qZJila.js → chunk-2ZTRR5NV-CnDP55cn.js} +1 -1
- package/dist/client/assets/chunk-2ZTRR5NV-DcPRfelM.js +2 -0
- package/dist/client/assets/chunk-3FUC2YCW-8tZlhTGX.js +1 -0
- package/dist/client/assets/{chunk-3Z5EZCMW-DMniOlPd.js → chunk-3Z5EZCMW-BAnA6eQ7.js} +1 -1
- package/dist/client/assets/chunk-3Z5EZCMW-Yx4Q5AcN.js +1 -0
- package/dist/client/assets/chunk-4HAMMTFA-q0ldNVvr.js +62 -0
- package/dist/client/assets/chunk-4SOEAONT-C3fufoVl.js +40 -0
- package/dist/client/assets/chunk-5DYCD2WN-BKWCKnK-.js +1 -0
- package/dist/client/assets/{chunk-5V3GS4D5-i-ZDOEnP.js → chunk-5V3GS4D5-B5uC2oxu.js} +1 -1
- package/dist/client/assets/chunk-5V3GS4D5-BR7kgIgJ.js +1 -0
- package/dist/client/assets/chunk-5VM5RSS4-hE9rU_bl.js +15 -0
- package/dist/client/assets/chunk-6AEJRKK7-DTVZj5bY.js +1 -0
- package/dist/client/assets/{chunk-6AZGARVD-BB6FqMl-.js → chunk-6AZGARVD--pTGpDnx.js} +1 -1
- package/dist/client/assets/chunk-6AZGARVD-CnZDr4Cj.js +1 -0
- package/dist/client/assets/{chunk-6EIED4P4-DdUJkP0f.js → chunk-6EIED4P4-Bp8dpTvX.js} +1 -1
- package/dist/client/assets/chunk-6EIED4P4-DBVWq7Tz.js +1 -0
- package/dist/client/assets/{chunk-6K3QC6MW-CqVsVn-y.js → chunk-6K3QC6MW-DGVRzL6v.js} +1 -1
- package/dist/client/assets/chunk-6K3QC6MW-JnuvEGV4.js +1 -0
- package/dist/client/assets/{chunk-6TQVIW2G-DKlLbNIP.js → chunk-6TQVIW2G-BSj0l_pu.js} +1 -1
- package/dist/client/assets/chunk-6TQVIW2G-DgBX-Pv0.js +1 -0
- package/dist/client/assets/chunk-742MDFTN-D1nh6vNv.js +1 -0
- package/dist/client/assets/{chunk-747NJXEK-BFkZPlab.js → chunk-747NJXEK-BjqqAsS9.js} +1 -1
- package/dist/client/assets/chunk-747NJXEK-Cur1aosP.js +2 -0
- package/dist/client/assets/chunk-75Z2AOVW-DitkSoSG.js +2 -0
- package/dist/client/assets/chunk-7INBJB4K-CDmiHbaX.js +62 -0
- package/dist/client/assets/chunk-7M6MHVWA-BDakkknV.js +213 -0
- package/dist/client/assets/chunk-7PRAP22T-9uTvtc_-.js +1 -0
- package/dist/client/assets/{chunk-CLGD4ZFX-Cmtx89ht.js → chunk-CLGD4ZFX-BfYJtJm1.js} +1 -1
- package/dist/client/assets/chunk-DU6HZSFF-CWlP1Dk_.js +125 -0
- package/dist/client/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/client/assets/chunk-DYU5D34O-DN0WQZBm.js +1 -0
- package/dist/client/assets/{chunk-F27PBJKO-Dg3H6KLL.js → chunk-F27PBJKO-DPcsPcEs.js} +1 -1
- package/dist/client/assets/{chunk-FOHPRMQF-DHwB1DNv.js → chunk-FOHPRMQF-Dmmo5Kak.js} +9 -9
- package/dist/client/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
- package/dist/client/assets/chunk-GMAD6QVW-Bgk8qnty.js +8 -0
- package/dist/client/assets/chunk-GNY47TPC-CTrH5O5R.js +1 -0
- package/dist/client/assets/{chunk-SVP7TREG-XlsB_ZMZ.js → chunk-GTNCS2PH-ChgkzEIi.js} +1 -1
- package/dist/client/assets/chunk-GVQU2GXP-CQ8cl-Uu.js +1 -0
- package/dist/client/assets/chunk-GWA4HPMP-CGmv2yIq.js +1 -0
- package/dist/client/assets/{chunk-I5DQTOEV-Hm2LfiYI.js → chunk-I5DQTOEV-B98XA8VK.js} +1 -1
- package/dist/client/assets/chunk-I5DQTOEV-aBZooNp1.js +1 -0
- package/dist/client/assets/{chunk-ICYGCRZG-749o-pGJ.js → chunk-ICYGCRZG-D97UeqJs.js} +1 -1
- package/dist/client/assets/chunk-ICYGCRZG-odvlDZyA.js +1 -0
- package/dist/client/assets/{chunk-IH6LHLGP-CC6I9F3i.js → chunk-IH6LHLGP-BNevEHZK.js} +1 -1
- package/dist/client/assets/chunk-IH6LHLGP-CvXe34hB.js +1 -0
- package/dist/client/assets/{chunk-IMKFNOWR-3F6NhHUP.js → chunk-IMKFNOWR-CBqxfpcP.js} +2 -2
- package/dist/client/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/client/assets/chunk-JWPE2WC7-GDilnS5Y.js +1 -0
- package/dist/client/assets/{chunk-KI3K4JFJ-Rma-0k_M.js → chunk-KI3K4JFJ-D5XCPRZv.js} +1 -1
- package/dist/client/assets/chunk-KI3K4JFJ-FTtDwx3-.js +1 -0
- package/dist/client/assets/chunk-L3NEJ4N5-BflzkdTI.js +1 -0
- package/dist/client/assets/{chunk-LNGE3PJU-DWpGwHrW.js → chunk-LNGE3PJU-5-SxdO55.js} +1 -1
- package/dist/client/assets/chunk-LNGE3PJU-5nWSl6jJ.js +34 -0
- package/dist/client/assets/chunk-MBY4JIJT-DTJ4UcAm.js +8 -0
- package/dist/client/assets/chunk-NETBCI7D-CmUwDWUZ.js +1 -0
- package/dist/client/assets/chunk-O7XYJQB3-D0_ZY2za.js +126 -0
- package/dist/client/assets/chunk-OSK3NFVY-DqeKV_pg.js +10 -0
- package/dist/client/assets/{chunk-OUJLGHUK-D0j2JRSg.js → chunk-OUJLGHUK-75UXlPjl.js} +1 -1
- package/dist/client/assets/chunk-OUJLGHUK-DA95-S9B.js +2 -0
- package/dist/client/assets/{chunk-P2QGCYS3-Du8EtwOa.js → chunk-P2QGCYS3-BA--DhpW.js} +1 -1
- package/dist/client/assets/chunk-POPQ4Y6H-V_NEc45n.js +1 -0
- package/dist/client/assets/chunk-PWAF6VOD-D_kLse-N.js +1 -0
- package/dist/client/assets/{chunk-ZPMXAHWN-Dt0TxJa6.js → chunk-RUX4WMZV-BGnd3s_C.js} +4 -4
- package/dist/client/assets/{chunk-SHT3W25Y-BKaI8jZO.js → chunk-SHT3W25Y-YM3S-A_M.js} +5 -5
- package/dist/client/assets/chunk-SVP7TREG-DdNhDOmW.js +88 -0
- package/dist/client/assets/{chunk-TICWLB2K-Cpp2z8yK.js → chunk-TICWLB2K-BGGgCr4x.js} +3 -3
- package/dist/client/assets/chunk-TLUHSLCS-DCZhIDYA.js +1 -0
- package/dist/client/assets/chunk-UA2S7LBM-DicYDjDM.js +1 -0
- package/dist/client/assets/{chunk-UY3FDG6J-CnmaAkG5.js → chunk-UY3FDG6J-DqSM_0FB.js} +1 -1
- package/dist/client/assets/chunk-UY3FDG6J-QT-rkt0y.js +1 -0
- package/dist/client/assets/chunk-WEXAMYUT-DDlVNp8J.js +1 -0
- package/dist/client/assets/chunk-X3CZISLH-BixgQztF.js +1 -0
- package/dist/client/assets/chunk-X3CZISLH-DwWpRaN8.js +1 -0
- package/dist/client/assets/{chunk-XHIXRSVI-BFQ6B8BE.js → chunk-XHIXRSVI-BSN7JlfK.js} +1 -1
- package/dist/client/assets/chunk-XHIXRSVI-DN_fEwws.js +1 -0
- package/dist/client/assets/chunk-XXDRQBXY-C7hQHDmQ.js +1 -0
- package/dist/client/assets/{chunk-XXDRQBXY-BvKO0v-W.js → chunk-XXDRQBXY-CdRN9Akd.js} +1 -1
- package/dist/client/assets/chunk-Y2CYZVJY-BbRBGnmc.js +1 -0
- package/dist/client/assets/chunk-Z7XXMR3K-P4Vaq8hD.js +10 -0
- package/dist/client/assets/chunk-ZIGJFQKS-b8OUHKK5.js +2 -0
- package/dist/client/assets/classDiagram-ZZMXUADV-QLbh_Nkf.js +1 -0
- package/dist/client/assets/classDiagram-v2-NBCMYWYE-3TQORq33.js +217 -0
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-QLbh_Nkf.js +1 -0
- package/dist/client/assets/clone-C1hp9FUh.js +1 -0
- package/dist/client/assets/comment-markdown-renderer-Bxi_JRSR.js +1 -0
- package/dist/client/assets/comment-thread-store-CHvy8GF8.js +1 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-Czr0rwGr.js +1 -0
- package/dist/client/assets/cose-bilkent-JH36ORCC-DLmEf9HS.js +1 -0
- package/dist/client/assets/cynefin-OW5HDTMX-CF3N9j1_.js +1 -0
- package/dist/client/assets/cynefin-OW5HDTMX-e-Quc9Yl.js +1 -0
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-DTnLZaO7.js +62 -0
- package/dist/client/assets/cynefinDiagram-VND7K2PF-DwfMZ3vk.js +62 -0
- package/dist/client/assets/cytoscape-cose-bilkent-NdTYBUiT.js +1 -0
- package/dist/client/assets/cytoscape-fcose-DE9_QRG_.js +1 -0
- package/dist/client/assets/cytoscape.esm-EK2DW5Qr.js +321 -0
- package/dist/client/assets/dagre-6A5THRUB-DewyAGK6.js +4 -0
- package/dist/client/assets/dagre-D7FiCLLP.js +1 -0
- package/dist/client/assets/{dagre-GXQ25YYZ-BSfKCfy7.js → dagre-GXQ25YYZ-Vtyx08Qh.js} +2 -2
- package/dist/client/assets/deferred-collab-D4cxEdad.css +1 -0
- package/dist/client/assets/deferred-preview-BAXYgf4T.css +1 -0
- package/dist/client/assets/diagram-22UHCM2B-DbZirFfl.js +200 -0
- package/dist/client/assets/diagram-3UASUU5V-DmhdYv6_.js +24 -0
- package/dist/client/assets/diagram-ATOU4E4O-B5uX-jVO.js +3 -0
- package/dist/client/assets/diagram-CDSNMT55-D_qyS11R.js +30 -0
- package/dist/client/assets/diagram-MLGK6HIB-DIBG6Ivu.js +24 -0
- package/dist/client/assets/diagram-MPIPVDR6-D9XsALDV.js +41 -0
- package/dist/client/assets/{diagram-S7CK7UJ4-D7KaM9yj.js → diagram-S7CK7UJ4-CGTzfo2f.js} +3 -3
- package/dist/client/assets/diagram-UQ7AKVKN-CWZS8QtB.js +41 -0
- package/dist/client/assets/{diagram-VSXAHHWV-B3-U-Q2E.js → diagram-VSXAHHWV-DaO1nOZF.js} +3 -3
- package/dist/client/assets/diagram-VX7I27RA-B54P6Cyf.js +24 -0
- package/dist/client/assets/diagram-Z3DM3KII-Cl2EXiXp.js +24 -0
- package/dist/client/assets/direct-engine-DdrQKpgq-4QysbH_V.js +5 -0
- package/dist/client/assets/dist-B7fBbwrO.js +1 -0
- package/dist/client/assets/{dist-DVXzbeDx.js → dist-BVCNc-Es.js} +1 -1
- package/dist/client/assets/dist-BYBF4LtZ.js +1 -0
- package/dist/client/assets/{dist-B_B4XLmq.js → dist-B_1hMrc6.js} +1 -1
- package/dist/client/assets/{dist-EWJYvBK1.js → dist-BfpAc922.js} +1 -1
- package/dist/client/assets/dist-BnVaoRgZ.js +1 -0
- package/dist/client/assets/{dist-kiD2GIsD.js → dist-Bog8M5U3.js} +6 -6
- package/dist/client/assets/dist-CAG5sIOj.js +1 -0
- package/dist/client/assets/{dist-CrWzIWEE.js → dist-CKf7LlAo.js} +1 -1
- package/dist/client/assets/{dist-CqXVyYoH.js → dist-CUsXdnU4.js} +1 -1
- package/dist/client/assets/{dist-B7XMN9AT.js → dist-CXOUa90Q.js} +1 -1
- package/dist/client/assets/dist-CYMCikZo.js +1 -0
- package/dist/client/assets/dist-CYfPeupF.js +1 -0
- package/dist/client/assets/dist-Ch6Sr9KF.js +28 -0
- package/dist/client/assets/dist-Ck-B8onw.js +2 -0
- package/dist/client/assets/dist-CrkYYcOU.js +1 -0
- package/dist/client/assets/{dist-BR81yxMt.js → dist-CsQTfQFi.js} +1 -1
- package/dist/client/assets/dist-Cu5Ze2cs.js +6 -0
- package/dist/client/assets/{dist-Drv_wZYC.js → dist-CvVoyTRF.js} +1 -1
- package/dist/client/assets/{dist-CbDyXgCo.js → dist-D4kDR0g8.js} +1 -1
- package/dist/client/assets/dist-D8LnhZzy.js +1 -0
- package/dist/client/assets/{dist-CELhfKzh.js → dist-DGa-2MNX.js} +2 -2
- package/dist/client/assets/{dist-CO0-4CuV.js → dist-DI6c02Da.js} +8 -8
- package/dist/client/assets/{dist-DJAMplZI.js → dist-DNONgI1P.js} +2 -2
- package/dist/client/assets/dist-DVBYH83t.js +1 -0
- package/dist/client/assets/dist-DX6qtdxv.js +1 -0
- package/dist/client/assets/{dist-Bx3QkS-3.js → dist-Da-jLrCf.js} +1 -1
- package/dist/client/assets/dist-DofvCYzJ.js +1 -0
- package/dist/client/assets/{dist-BzFSJM0U.js → dist-Dx37MHWs.js} +1 -1
- package/dist/client/assets/{dist-Bdy9ZRzd.js → dist-GTGhtpyW.js} +1 -1
- package/dist/client/assets/{dist-nxQErAaK.js → dist-W0FoeIxk.js} +9 -9
- package/dist/client/assets/{dist-By7ieqAf.js → dist-Y6zYRI-A.js} +1 -1
- package/dist/client/assets/{dist-Bfxzlnrf.js → dist-jVKfryIL.js} +1 -1
- package/dist/client/assets/{dist-DCpIH3-_.js → dist-zHDLm1oE.js} +1 -1
- package/dist/client/assets/{document-formatter-Qdiq9uJs.js → document-formatter-gO8qM2qY.js} +1 -1
- package/dist/client/assets/{drawioEditor-CHf1vtdQ.js → drawioEditor-DCkWweiy.js} +2 -2
- package/dist/client/assets/duration-BiuFXtXd.js +1 -0
- package/dist/client/assets/ebnfDiagram-PWID7BFC-PfC84FyI.js +1 -0
- package/dist/client/assets/ebnfDiagram-ZINNZB2B-DYvm_QtE.js +1 -0
- package/dist/client/assets/editor-session-DxRyr4EM.js +14 -0
- package/dist/client/assets/elk-276RUBZZ-B8LB3Pac.js +27 -0
- package/dist/client/assets/embedded-editor-base-elU0Avik.css +1 -0
- package/dist/client/assets/{embedpdf-DA4bA119-E8wZ11J2.js → embedpdf-DA4bA119-DsoNiPlQ.js} +4 -4
- package/dist/client/assets/{embedpdf-LUXDBD3-.js → embedpdf-DyOonRvx.js} +1 -1
- package/dist/client/assets/{en-2RFA324Y-BsuNJTcL.js → en-GNC3RJIS-CEy_oGTd.js} +1 -1
- package/dist/client/assets/erDiagram-OPXOYQCR-o8GRv8A_.js +99 -0
- package/dist/client/assets/{erDiagram-RLTQ6QDP-CWrH1UJ9.js → erDiagram-RLTQ6QDP-C9cJl5NB.js} +2 -2
- package/dist/client/assets/esm-BzZ1JFVo.js +65 -0
- package/dist/client/assets/{estree-CuT_pB8K.js → estree-DCT3Jm65.js} +4 -4
- package/dist/client/assets/eventmodeling-NTZA5JFV-CDy1bN6j.js +1 -0
- package/dist/client/assets/eventmodeling-NTZA5JFV-Dxtv5D-P.js +1 -0
- package/dist/client/assets/{excalidraw-element-link-iA6zo0_f.js → excalidraw-element-link-CGZ5934B.js} +1 -1
- package/dist/client/assets/{excalidrawEditor-DDE0n1Pk.css → excalidrawEditor-BCTFp_CV.css} +1 -1
- package/dist/client/assets/excalidrawEditor-BVfSxjSO.js +9 -0
- package/dist/client/assets/export-page-BCo_e15t.js +46 -0
- package/dist/client/assets/exportDocument-Ba-n1X4U.css +1 -0
- package/dist/client/assets/exportDocument-DP6oE_or.js +2 -0
- package/dist/client/assets/{fa-IR-FIYUE2GQ-C865Nx3X.js → fa-IR-I4JNTJHK-CFtHZqoT.js} +1 -1
- package/dist/client/assets/file-search-3hYF4cYa.js +1 -0
- package/dist/client/assets/flowDiagram-HODETNUW-Bq4470NR.js +1 -0
- package/dist/client/assets/flowDiagram-KWPJA3E3-DQG9qGiU.js +1 -0
- package/dist/client/assets/forth-D6RzAl64.js +1 -0
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-x40PW0Ah.js +292 -0
- package/dist/client/assets/ganttDiagram-FUAMR5RP-BQpsI7gQ.js +292 -0
- package/dist/client/assets/gitGraph-4MIJSDKK-B-rpDYbz.js +1 -0
- package/dist/client/assets/gitGraph-4MIJSDKK-ZaBIE4Lb.js +1 -0
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-ahsNaZsp.js +106 -0
- package/dist/client/assets/gitGraphDiagram-X574FWY7-wbs_2m9f.js +106 -0
- package/dist/client/assets/graphlib-C9Tl7QrK.js +1 -0
- package/dist/client/assets/{html-Cdnr2qzU.js → html-CBXMuS97.js} +2 -2
- package/dist/client/assets/html-DTuc_pxj.js +1 -0
- package/dist/client/assets/{id-ID-EOMR5R3I-CGQwUjoL.js → id-ID-2WY7E4VX-CCAeQpPr.js} +2 -2
- package/dist/client/assets/image-EJJKRVD3-BQfi5nWJ.js +1 -0
- package/dist/client/assets/{image-blob-reduce.esm-Dj7YBvMv.js → image-blob-reduce.esm-BFq-Mx5V.js} +2 -2
- package/dist/client/assets/index-BxAuGDoN.css +1 -0
- package/dist/client/assets/index-uw9O0z1c.js +1112 -0
- package/dist/client/assets/info-A6RAGUB7-BcGxhjED.js +1 -0
- package/dist/client/assets/info-A6RAGUB7-BlutK7BT.js +1 -0
- package/dist/client/assets/infoDiagram-27XIBGKW-MrZyptIy.js +2 -0
- package/dist/client/assets/infoDiagram-VRGFBTTK-KkUjDRAQ.js +2 -0
- package/dist/client/assets/{ishikawaDiagram-5VMMS53U-CRy9vIS5.js → ishikawaDiagram-5VMMS53U-Bnt9yM0O.js} +2 -2
- package/dist/client/assets/ishikawaDiagram-OU5B5YK6-Di9BcpOY.js +70 -0
- package/dist/client/assets/{it-IT-FC2VTM3L-KTijNcUe.js → it-IT-INVHSAJF-DytAgndh.js} +1 -1
- package/dist/client/assets/javascript-B9I2pbsP.js +1 -0
- package/dist/client/assets/javascript-DctB8BJo.js +1 -0
- package/dist/client/assets/{journeyDiagram-3NMN7TZE-D4ZR_s9J.js → journeyDiagram-3NMN7TZE-Bl0abK1r.js} +1 -1
- package/dist/client/assets/journeyDiagram-ZHPQQLJL-J-sGrs9e.js +139 -0
- package/dist/client/assets/jsx-runtime-DKj5X9O4.js +1 -0
- package/dist/client/assets/kanban-definition-PNTS6WVX-5ZDV_yIa.js +89 -0
- package/dist/client/assets/{kanban-definition-UXKFOSKX-CIDTmu5g.js → kanban-definition-UXKFOSKX-DMgUfNt0.js} +10 -10
- package/dist/client/assets/{katex-CXMH3UgJ.js → katex-9NBMfU68.js} +2 -2
- package/dist/client/assets/katex-ZlcWpGUi.js +257 -0
- package/dist/client/assets/line-DEbP8Ok6.js +1 -0
- package/dist/client/assets/linear-DExL6ILt.js +1 -0
- package/dist/client/assets/{lobby-presence-Rdjnc0_0.js → lobby-presence-Cz5jGOPg.js} +1 -1
- package/dist/client/assets/{lua-CL1SqxuB.js → lua-zbJo2mq3.js} +1 -1
- package/dist/client/assets/{markdown-CByV-4CU.js → markdown-Bo71X2X2.js} +8 -8
- package/dist/client/assets/markdown-it-DpvIRaVq.js +13 -0
- package/dist/client/assets/markdown-math-CyyBVuDO.js +517 -0
- package/dist/client/assets/merge-CALoRt3l.js +1 -0
- package/dist/client/assets/{mermaid-parser.core-DrdLA3p0.js → mermaid-parser.core-Bpogunsh.js} +1 -1
- package/dist/client/assets/mermaid-parser.core-DBy--Jc0.js +3 -0
- package/dist/client/assets/mermaid.core-BeOUPE3Q.js +10 -0
- package/dist/client/assets/mindmap-definition-NLK3R4M7-ByVb-0vj.js +96 -0
- package/dist/client/assets/{mindmap-definition-YA3MSWOX-DO8NB9VH.js → mindmap-definition-YA3MSWOX-DBZN5_GH.js} +29 -29
- package/dist/client/assets/{nginx-BMaDbqW3.js → nginx-8H7HVH4w.js} +1 -1
- package/dist/client/assets/packet-AYTQ26CC-CqpSjTWl.js +1 -0
- package/dist/client/assets/packet-AYTQ26CC-DvbY8dI6.js +1 -0
- package/dist/client/assets/pegDiagram-GJSIUBJH-aost1sSO.js +1 -0
- package/dist/client/assets/pegDiagram-XKGWAZYB-DRo8CZu3.js +1 -0
- package/dist/client/assets/percentages-LWOC67ZH-VhvllE7L.js +1 -0
- package/dist/client/assets/{pica-xkWDouSg.js → pica-BPrp-GK1.js} +1 -1
- package/dist/client/assets/pie-DzWLGKAD.js +1 -0
- package/dist/client/assets/pie-WAS4IAKB-Bg2eCNl5.js +1 -0
- package/dist/client/assets/pie-WAS4IAKB-DWSm9SSD.js +1 -0
- package/dist/client/assets/pieDiagram-5QR66LMP-BICdpEuz.js +39 -0
- package/dist/client/assets/pieDiagram-E7YTZNPT-CZThaHsc.js +39 -0
- package/dist/client/assets/{preload-helper-CtT0-S4g.js → preload-helper-BAlEavIC.js} +1 -1
- package/dist/client/assets/preview-render-compiler-ktU0SXxY.js +43 -0
- package/dist/client/assets/preview-render-profile-D652PAjA.js +1 -0
- package/dist/client/assets/preview-render-worker-BI2bFVqM.js +575 -0
- package/dist/client/assets/prod-DU-0VfI7.js +145 -0
- package/dist/client/assets/prod-cXUNdmYV.js +1 -0
- package/dist/client/assets/{pug-Wky5Dnfy.js → pug-CqqUmdG7.js} +1 -1
- package/dist/client/assets/purify.es-go7v6Te-.js +3 -0
- package/dist/client/assets/{quadrantDiagram-AXDQQJYC-fJE7iAxt.js → quadrantDiagram-AXDQQJYC-C5iowkl_.js} +3 -3
- package/dist/client/assets/quadrantDiagram-O4NWA36T-Bgx5bF97.js +7 -0
- package/dist/client/assets/quick-switcher-controller-DSlOwOsU.js +1 -0
- package/dist/client/assets/radar-RG4KPBEZ-BfNQUEQy.js +1 -0
- package/dist/client/assets/radar-RG4KPBEZ-DxExotg6.js +1 -0
- package/dist/client/assets/railroad-74A4TZTK-BaQ6U6eJ.js +1 -0
- package/dist/client/assets/railroad-74A4TZTK-FfHmeIQk.js +1 -0
- package/dist/client/assets/railroad-abnf-HS5TGJTU-BJ3KZw7J.js +1 -0
- package/dist/client/assets/railroad-abnf-HS5TGJTU-CLkdDRsJ.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-B162zvcG.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-DA0sEq7w.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-CGs5GeJ5.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-DCmlICzO.js +1 -0
- package/dist/client/assets/railroadDiagram-O6MQD6OU-BTt_rKjT.js +1 -0
- package/dist/client/assets/railroadDiagram-XR7U4H2S-DbVoNgSz.js +1 -0
- package/dist/client/assets/{requirementDiagram-BXWQKSXE-Balm0WW8.js → requirementDiagram-BXWQKSXE-BkvazG7r.js} +1 -1
- package/dist/client/assets/requirementDiagram-PLB6GJNP-BT0j9C40.js +84 -0
- package/dist/client/assets/sankeyDiagram-IPEJSGJF-X1BCUIrf.js +40 -0
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-C_IemB9h.js +40 -0
- package/dist/client/assets/sankeyLinkHorizontal-usjP1-Cg.js +1 -0
- package/dist/client/assets/sequenceDiagram-PO4LG4MO-B-2QfXhV.js +169 -0
- package/dist/client/assets/{sequenceDiagram-WJ2MYXX4-BL1j3Sn-.js → sequenceDiagram-WJ2MYXX4-CxFBgLGd.js} +3 -3
- package/dist/client/assets/{sieve-BAxa3IjF.js → sieve-tLWDfEkZ.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-DrzwYt5z.js +1 -0
- package/dist/client/assets/sl-SI-QY5KCFGA-RZhwMpQL.js +8 -0
- package/dist/client/assets/solr-B78wSQJQ.js +1 -0
- package/dist/client/assets/src-XiVvaevx.js +1 -0
- package/dist/client/assets/stateDiagram-D77RDMKH-BaSQ6Owj.js +1 -0
- package/dist/client/assets/stateDiagram-v2-GCMORJYK-CsVcfwVp.js +291 -0
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-CLlwrdvU.js +1 -0
- package/dist/client/assets/sv-SE-O3OFCY3J-DnS86_7q.js +12 -0
- package/dist/client/assets/swimlanes-2SLR337P-CnYTVqRX.js +1 -0
- package/dist/client/assets/swimlanes-42K2YHIH-CALFEmiS.js +1 -0
- package/dist/client/assets/swimlanesDiagram-TC7HE7FX-Bh4tmz27.js +8 -0
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-xhehUG9e.js +8 -0
- package/dist/client/assets/th-TH-WLSZUSBX-DHehoYR2.js +1 -0
- package/dist/client/assets/{timeline-definition-24CTP7MA-7pch5JAr.js → timeline-definition-24CTP7MA-zse-5Dbm.js} +5 -5
- package/dist/client/assets/timeline-definition-EJHVYXUP-BhqPlKkN.js +120 -0
- package/dist/client/assets/treeView-Q6P3EWNA-BvHOzbu9.js +1 -0
- package/dist/client/assets/treeView-Q6P3EWNA-Cccy0ngL.js +1 -0
- package/dist/client/assets/treemap-CxZTjHiH.js +1 -0
- package/dist/client/assets/treemap-WGGIJYW6-oety7paS.js +1 -0
- package/dist/client/assets/treemap-WGGIJYW6-sMRCjCtX.js +1 -0
- package/dist/client/assets/usecaseDiagram-POWQR4AR-DR2LHQYs.js +328 -0
- package/dist/client/assets/v4-DDdyfk2q.js +1 -0
- package/dist/client/assets/{vault-api-client-QjZ_T03l.js → vault-api-client-BQxLVPeF.js} +1 -1
- package/dist/client/assets/vault-paths-BT-6nztu.js +1 -0
- package/dist/client/assets/venn.esm-C5rDfA9t.js +7 -0
- package/dist/client/assets/vennDiagram-4TSXK5OY-DgHr6cJD.js +28 -0
- package/dist/client/assets/vennDiagram-UO4OBE2U-BRwLn2Q1.js +28 -0
- package/dist/client/assets/{verilog-7LoJAqYT.js → verilog-CjI9Y6RI.js} +1 -1
- package/dist/client/assets/wardley-WFR3VGLG-BdwDpX_I.js +1 -0
- package/dist/client/assets/wardley-WFR3VGLG-Y7xty_3m.js +1 -0
- package/dist/client/assets/{wardleyDiagram-VM6X3IG4-BbSlUwuM.js → wardleyDiagram-VM6X3IG4-9A60XZis.js} +3 -3
- package/dist/client/assets/wardleyDiagram-VNRHLVJA-B_tMcVFG.js +78 -0
- package/dist/client/assets/wiki-link-resolver-Dch88erO.js +1 -0
- package/dist/client/assets/{worker-engine-m0rlHn8R-eSDcDGEI.js → worker-engine-m0rlHn8R-5h66k403.js} +1 -1
- package/dist/client/assets/{workspace-sync-client-D4nblH_2.js → workspace-sync-client-C2pdaQUN.js} +1 -1
- package/dist/client/assets/xychartDiagram-PMCCYNJV-fRpZ1MA5.js +7 -0
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-D00iy-wB.js +7 -0
- package/dist/client/assets/{yaml-9ltHPDNO.js → yaml-BcZaqAz8.js} +1 -1
- package/dist/client/assets/{yjs-provider-reset-guard-R43MnLNc.js → yjs-provider-reset-guard-DpntzUDR.js} +1 -1
- package/dist/client/drawio-editor.html +6 -5
- package/dist/client/excalidraw-editor.html +39 -32
- package/dist/client/export-document.html +4 -3
- package/dist/client/index.html +21 -14
- package/package.json +12 -9
- package/src/client/app/drawio-editor.html +1 -0
- package/src/client/app/excalidraw-editor.html +1 -0
- package/src/client/app/export-document-entry.js +1 -0
- package/src/client/app/export-document.html +1 -0
- package/src/client/app/index.html +19 -12
- package/src/client/application/app-shell/ui-feature-shell.js +20 -1
- package/src/client/application/app-shell-elements.js +2 -0
- package/src/client/application/diagram-preview-hydrator.js +7 -0
- package/src/client/application/mermaid-preview-hydrator.js +89 -3
- package/src/client/application/preview-diagram-utils.js +1 -0
- package/src/client/application/preview-render-compiler.js +2 -0
- package/src/client/application/preview-render-executor.js +4 -1
- package/src/client/application/preview-render-profile.js +8 -12
- package/src/client/application/preview-renderer.js +3 -0
- package/src/client/bootstrap/collabmd-app-shell.js +16 -7
- package/src/client/browser-utils.js +1 -1
- package/src/client/domain/excalidraw-scene.js +0 -11
- package/src/client/domain/file-search.js +1 -0
- package/src/client/domain/highlight-runtime.js +30 -3
- package/src/client/domain/markdown-math.js +14 -0
- package/src/client/export/export-host.js +3 -7
- package/src/client/export/export-pipeline.js +208 -21
- package/src/client/infrastructure/browser-preferences-port.js +8 -0
- package/src/client/infrastructure/editor-session.js +20 -0
- package/src/client/infrastructure/editor-view-adapter.js +8 -7
- package/src/client/infrastructure/excalidraw-room-client.js +2 -45
- package/src/client/infrastructure/git-api-client.js +5 -0
- package/src/client/infrastructure/tab-activity-lock.js +8 -4
- package/src/client/infrastructure/webmcp-tool-registry.js +12 -5
- package/src/client/presentation/bases-preview-controller.js +2 -1
- package/src/client/presentation/comment-markdown-renderer.js +2 -0
- package/src/client/presentation/comment-ui-controller.js +21 -30
- package/src/client/presentation/create-menu-presenter.js +16 -18
- package/src/client/presentation/drawio-embed-controller.js +55 -7
- package/src/client/presentation/excalidraw-embed-controller.js +11 -3
- package/src/client/presentation/file-explorer-controller.js +1 -0
- package/src/client/presentation/file-explorer-view.js +32 -2
- package/src/client/presentation/file-history-view-controller.js +6 -0
- package/src/client/presentation/git-diff-view-controller.js +3 -2
- package/src/client/presentation/git-panel-controller.js +6 -5
- package/src/client/presentation/image-lightbox-controller.js +7 -6
- package/src/client/presentation/outline-controller.js +0 -86
- package/src/client/presentation/quick-switcher-controller.js +50 -13
- package/src/client/presentation/scroll-sync-controller.js +69 -21
- package/src/client/styles/components/navigation.css +2 -2
- package/src/client/styles/deferred-collab.css +1 -0
- package/src/client/styles/deferred-preview.css +1 -0
- package/src/client/styles/features/diagram-preview.css +1 -0
- package/src/client/styles/features/preview-markdown.css +4 -4
- package/src/client/styles/foundation/themes.css +56 -271
- package/src/client/styles/layout/editor-page.css +0 -1
- package/src/client/styles/layout/shell.css +6 -0
- package/src/client/styles/layout/sidebar.css +3 -0
- package/src/client/styles/surfaces/landing-page.css +260 -0
- package/src/domain/agent-tool-definitions.js +45 -13
- package/src/domain/collabmd-content-capabilities.js +59 -4
- package/src/domain/collaboration-protocol.js +2 -0
- package/src/domain/markdown-outline.js +35 -0
- package/src/server/application/agent-connection-service.js +6 -2
- package/src/server/application/agent-content-service.js +124 -56
- package/src/server/auth/create-auth-service.js +40 -12
- package/src/server/auth/session-cookie.js +49 -38
- package/src/server/config/env.js +1 -1
- package/src/server/domain/backlink-index.js +1 -11
- package/src/server/domain/bases/base-query-results.js +7 -3
- package/src/server/domain/bases/base-query-service.js +2 -7
- package/src/server/domain/collaboration/collaboration-room.js +54 -16
- package/src/server/domain/docx-exporter.js +256 -2
- package/src/server/domain/hosted-workspace-contract.js +7 -0
- package/src/server/domain/hosted-workspace.js +29 -62
- package/src/server/domain/ripgrep-search-service.js +44 -28
- package/src/server/infrastructure/git/diff-service.js +15 -11
- package/src/server/infrastructure/git/git-service.js +4 -0
- package/src/server/infrastructure/git/image-mime.js +4 -3
- package/src/server/infrastructure/git/status-service.js +10 -6
- package/src/server/infrastructure/http/create-git-api-query-handler.js +25 -0
- package/src/server/infrastructure/http/create-vault-api-query-handler.js +13 -53
- package/src/server/infrastructure/http/http-response.js +2 -0
- package/src/server/infrastructure/persistence/hosted-metadata-store.js +42 -5
- package/src/server/infrastructure/persistence/path-utils.js +23 -3
- package/src/server/infrastructure/persistence/pull-backup-store.js +52 -42
- package/src/server/infrastructure/persistence/sidecar-store.js +7 -4
- package/src/server/infrastructure/persistence/vault-file-store.js +55 -168
- package/src/server/infrastructure/plantuml/plantuml-renderer.js +33 -0
- package/src/server/infrastructure/structurizr/structurizr-workspace-service.js +24 -10
- package/src/server/infrastructure/websocket/attach-collaboration-gateway.js +7 -3
- package/src/server/infrastructure/websocket/client-socket-session.js +32 -4
- package/src/server/infrastructure/workspace/file-system-sync-service.js +4 -2
- package/dist/client/assets/CodeMirrorEditor-UCMRAMCV-Crf9Y3Q6.js +0 -1
- package/dist/client/assets/abnfDiagram-VCTEODGH-PuinKbSQ.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-BMOPAkUC.js +0 -1
- package/dist/client/assets/architectureDiagram-5GKGNRK7-46hPkrZv.js +0 -36
- package/dist/client/assets/blockDiagram-I7D4REHJ-C1S5Bzf8.js +0 -129
- package/dist/client/assets/channel-jwdhnPiV.js +0 -1
- package/dist/client/assets/chunk-2E4U76K2-Ba8Wf22k.js +0 -1
- package/dist/client/assets/chunk-4HAMMTFA-Ht-73lsT.js +0 -62
- package/dist/client/assets/chunk-5XKZK2GL-D4UAZSOJ.js +0 -1
- package/dist/client/assets/chunk-75Z2AOVW-B2cZexqK.js +0 -2
- package/dist/client/assets/chunk-DU6HZSFF-C6d6PJfE.js +0 -127
- package/dist/client/assets/chunk-GMAD6QVW-DUfjx_d5.js +0 -72
- package/dist/client/assets/chunk-GVQU2GXP-D1l7oRGR.js +0 -1
- package/dist/client/assets/chunk-L3NEJ4N5-BmCVn4y-.js +0 -1
- package/dist/client/assets/chunk-OSK3NFVY-CWHXAmfx.js +0 -10
- package/dist/client/assets/chunk-POPQ4Y6H-B5yJIrZE.js +0 -1
- package/dist/client/assets/chunk-PWAF6VOD-B3gML4ps.js +0 -1
- package/dist/client/assets/chunk-TLUHSLCS-Yl7B0Vrz.js +0 -1
- package/dist/client/assets/chunk-ZNVOA63L-BmCQjhx-.js +0 -40
- package/dist/client/assets/classDiagram-ZZMXUADV-BRw9vo8U.js +0 -1
- package/dist/client/assets/classDiagram-v2-VYDZK3BY-BRw9vo8U.js +0 -1
- package/dist/client/assets/comment-markdown-renderer-B9_vPc3F.js +0 -1
- package/dist/client/assets/comment-thread-store-NNHqRVsX.js +0 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-Cm_QF_yb.js +0 -1
- package/dist/client/assets/cynefin-OW5HDTMX-7tP7QfM3.js +0 -1
- package/dist/client/assets/cynefinDiagram-5FMLGOSQ-BRoCEoZM.js +0 -62
- package/dist/client/assets/cytoscape.esm-B-NFISlW.js +0 -321
- package/dist/client/assets/dagre-PrKaheQc.js +0 -1
- package/dist/client/assets/deferred-collab-rBe4nuQ2.css +0 -1
- package/dist/client/assets/deferred-preview-pe7Iwwx3.css +0 -1
- package/dist/client/assets/diagram-UQ7AKVKN-JevUZuYi.js +0 -41
- package/dist/client/assets/diagram-VX7I27RA-pSD4HMh1.js +0 -24
- package/dist/client/assets/diagram-Z3DM3KII-D8r1_CIb.js +0 -24
- package/dist/client/assets/direct-engine-DdrQKpgq-B5zIoeQw.js +0 -5
- package/dist/client/assets/dist-B3HdUPsK.js +0 -1
- package/dist/client/assets/dist-BIRygGYH.js +0 -1
- package/dist/client/assets/dist-BPyOlNLY.js +0 -2
- package/dist/client/assets/dist-ByhQbe-x.js +0 -1
- package/dist/client/assets/dist-C5NkYKAa.js +0 -1
- package/dist/client/assets/dist-CEirJSxk.js +0 -1
- package/dist/client/assets/dist-CRnJ0D9h.js +0 -1
- package/dist/client/assets/dist-CyNrloSI.js +0 -1
- package/dist/client/assets/dist-D60_kdpQ.js +0 -1
- package/dist/client/assets/dist-Hdhj3L3t.js +0 -1
- package/dist/client/assets/dist-gRRhmB-2.js +0 -6
- package/dist/client/assets/dist-kWb2d1CH.js +0 -1
- package/dist/client/assets/dist-l-56SowH.js +0 -19
- package/dist/client/assets/dist-sLzRQQk7.js +0 -1
- package/dist/client/assets/ebnfDiagram-PWID7BFC-UJ0Fz5ci.js +0 -1
- package/dist/client/assets/editor-session-4Bn81iWm.js +0 -14
- package/dist/client/assets/embedded-editor-base-jK221GC8.css +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-BR2FzK4R.js +0 -1
- package/dist/client/assets/excalidrawEditor-WIuguTz7.js +0 -9
- package/dist/client/assets/export-page-AN-wI5p4.js +0 -56
- package/dist/client/assets/exportDocument-B7IagJhQ.css +0 -1
- package/dist/client/assets/exportDocument-B9xNKpQe.js +0 -2
- package/dist/client/assets/file-search-DDLyyLDU.js +0 -1
- package/dist/client/assets/flowDiagram-HODETNUW-kb1lUSBo.js +0 -1
- package/dist/client/assets/forth-Cezjo90N.js +0 -1
- package/dist/client/assets/ganttDiagram-EL5Y4UJY-BBNzDfaV.js +0 -292
- package/dist/client/assets/gitGraph-4MIJSDKK-DYlXv_yJ.js +0 -1
- package/dist/client/assets/gitGraphDiagram-WWUBYQGX-Csf0Dm_1.js +0 -106
- package/dist/client/assets/graphlib-DS17s2tU.js +0 -1
- package/dist/client/assets/image-2QKV3NAF-BUbX0y5Y.js +0 -1
- package/dist/client/assets/index-BAmZnTFV.css +0 -1
- package/dist/client/assets/index-mWiw418b.js +0 -1111
- package/dist/client/assets/info-A6RAGUB7-BlU-8_xu.js +0 -1
- package/dist/client/assets/infoDiagram-27XIBGKW-Bzy6kCbb.js +0 -2
- package/dist/client/assets/javascript-BWjar7HY.js +0 -1
- package/dist/client/assets/javascript-D-FtdkNC.js +0 -1
- package/dist/client/assets/jsx-runtime-BpzPEenQ.js +0 -1
- package/dist/client/assets/line-DSWLHgpx.js +0 -1
- package/dist/client/assets/linear-n-3HSMUF.js +0 -1
- package/dist/client/assets/markdown-it-CocJWnjv.js +0 -13
- package/dist/client/assets/mermaid.core-C_FK-7n4.js +0 -1
- package/dist/client/assets/mermaid.core-D0cMM4Rl.js +0 -10
- package/dist/client/assets/packet-AYTQ26CC-BSJEH9Lb.js +0 -1
- package/dist/client/assets/pegDiagram-XKGWAZYB-DS6Ab21R.js +0 -1
- package/dist/client/assets/percentages-Q7USCRWZ-DWE6uvTs.js +0 -1
- package/dist/client/assets/pie-WAS4IAKB-qxv01Y8W.js +0 -1
- package/dist/client/assets/pieDiagram-E7YTZNPT-BbFe6Tgs.js +0 -39
- package/dist/client/assets/preview-render-compiler-C_7J7eia.js +0 -43
- package/dist/client/assets/preview-render-compiler-DzJ1KR_M.js +0 -1
- package/dist/client/assets/preview-render-worker-1DoIDllV.js +0 -59
- package/dist/client/assets/prod-D5TxmmoB.js +0 -1
- package/dist/client/assets/prod-pbFU4TaM.js +0 -145
- package/dist/client/assets/quick-switcher-controller-CUajuy78.js +0 -1
- package/dist/client/assets/radar-RG4KPBEZ-B6h6pWOs.js +0 -1
- package/dist/client/assets/railroad-74A4TZTK-CGtTWdGc.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-Cq7y22IA.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-V0aQVv9m.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-BQiIsX_p.js +0 -1
- package/dist/client/assets/railroadDiagram-O6MQD6OU-CUQKqbCK.js +0 -1
- package/dist/client/assets/sankeyDiagram-P5KCCOFB-CcbMqrlQ.js +0 -40
- package/dist/client/assets/sl-SI-JRML4FIH-D53L_0S2.js +0 -6
- package/dist/client/assets/solr-BBopId9w.js +0 -1
- package/dist/client/assets/src-oBChb5qS.js +0 -1
- package/dist/client/assets/stateDiagram-D77RDMKH-DNi924hh.js +0 -1
- package/dist/client/assets/stateDiagram-v2-MP3YSRHH-C62JEwak.js +0 -1
- package/dist/client/assets/sv-SE-4ZPKFFXF-DT-G7RCI.js +0 -12
- package/dist/client/assets/swimlanes-42K2YHIH-ColgjSH4.js +0 -1
- package/dist/client/assets/swimlanesDiagram-VR7AAH4N-B9UZhEj4.js +0 -8
- package/dist/client/assets/th-TH-P7CTMGDK-6sy0NO7K.js +0 -1
- package/dist/client/assets/treeView-Q6P3EWNA-BTTYcvrF.js +0 -1
- package/dist/client/assets/treemap-WGGIJYW6-Cg7tyfH8.js +0 -1
- package/dist/client/assets/vennDiagram-4TSXK5OY-C5taziCX.js +0 -34
- package/dist/client/assets/wardley-WFR3VGLG-C6N1rULY.js +0 -1
- package/dist/client/assets/wiki-link-resolver-C2P_WmTV.js +0 -1
- package/dist/client/assets/xychartDiagram-S5SC5T6Z-D06X1arY.js +0 -7
- package/src/server/domain/collaboration/protocol.js +0 -6
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/* Standalone landing page. Loaded only by landing/styles.css. */
|
|
2
|
+
:root {
|
|
3
|
+
--landing-font: 'Avenir Next', 'Segoe UI', system-ui, sans-serif;
|
|
4
|
+
--landing-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
8
|
+
* { margin: 0; }
|
|
9
|
+
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
|
|
10
|
+
body { background: var(--color-bg); color: var(--color-text); font: 16px/1.65 var(--landing-font); -webkit-font-smoothing: antialiased; }
|
|
11
|
+
a { color: inherit; text-decoration: none; }
|
|
12
|
+
button { font: inherit; cursor: pointer; }
|
|
13
|
+
img, video { display: block; width: 100%; height: auto; }
|
|
14
|
+
svg { display: block; }
|
|
15
|
+
button, a { -webkit-tap-highlight-color: transparent; }
|
|
16
|
+
:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 5px; }
|
|
17
|
+
::selection { background: var(--color-primary-highlight); }
|
|
18
|
+
[hidden] { display: none !important; }
|
|
19
|
+
.wrap { width: min(1320px, 100% - 96px); margin-inline: auto; }
|
|
20
|
+
.skip-link { position: fixed; top: 12px; left: 16px; padding: 10px 16px; background: var(--color-text); color: var(--color-text-inverse); z-index: 200; transform: translateY(-180%); }
|
|
21
|
+
.skip-link:focus { transform: none; }
|
|
22
|
+
.eyebrow, .feature-index, .preview-label { font: 11px/1.5 var(--landing-mono); letter-spacing: .075em; text-transform: uppercase; }
|
|
23
|
+
.eyebrow { color: var(--color-primary); margin-bottom: 20px; }
|
|
24
|
+
h1, h2, h3 { line-height: 1.1; letter-spacing: -.045em; font-weight: 650; text-wrap: balance; }
|
|
25
|
+
h2 { font-size: clamp(30px, 3.1vw, 46px); }
|
|
26
|
+
h3 { font-size: 23px; }
|
|
27
|
+
p { text-wrap: pretty; }
|
|
28
|
+
.section { padding-block: 104px; }
|
|
29
|
+
.section-head { margin-bottom: 44px; }
|
|
30
|
+
.section-head > p:not(.eyebrow) { max-width: 43ch; margin-top: 24px; color: var(--color-text-muted); }
|
|
31
|
+
.text-link { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; }
|
|
32
|
+
.text-link > span { transition: transform .2s; }
|
|
33
|
+
.text-link:hover { color: var(--color-primary); }
|
|
34
|
+
.text-link:hover > span { transform: translateX(4px); }
|
|
35
|
+
.landing-button { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 48px; padding: 12px 22px; border: 1px solid transparent; border-radius: 5px; font-size: 14px; font-weight: 600; transition: background .2s, transform .2s; }
|
|
36
|
+
.landing-button:hover { transform: translateY(-2px); }
|
|
37
|
+
.landing-button-primary { background: var(--color-primary); color: var(--color-primary-contrast); }
|
|
38
|
+
.landing-button-primary:hover { background: var(--color-primary-hover); }
|
|
39
|
+
.landing-button-secondary { background: var(--color-surface); border-color: var(--color-border); color: var(--color-text); }
|
|
40
|
+
.landing-button-secondary:hover { background: var(--color-surface-offset); }
|
|
41
|
+
|
|
42
|
+
/* Navigation */
|
|
43
|
+
.nav { position: sticky; top: 0; z-index: 100; background: var(--surface-overlay-raised); backdrop-filter: blur(16px); border-bottom: 1px solid var(--color-divider); }
|
|
44
|
+
.nav-inner { display: flex; align-items: center; gap: 26px; height: 80px; }
|
|
45
|
+
.nav-brand { display: inline-flex; align-items: center; gap: 9px; font-size: 22px; font-weight: 750; letter-spacing: -.055em; }
|
|
46
|
+
.nav-mark { width: 30px; height: 30px; color: var(--color-primary); }
|
|
47
|
+
.nav-links { display: flex; gap: 26px; margin-left: auto; }
|
|
48
|
+
.nav-links a, .nav-github { padding-block: 12px; font-size: 13px; font-weight: 550; color: var(--color-text-muted); }
|
|
49
|
+
.nav-links a:hover, .nav-links .is-active, .nav-github:hover { color: var(--color-primary); }
|
|
50
|
+
.nav-links .is-active { box-shadow: inset 0 -2px var(--color-primary); }
|
|
51
|
+
.nav-github { margin-left: 20px; }
|
|
52
|
+
.nav-demo { min-height: 42px; padding: 9px 16px; font-size: 13px; }
|
|
53
|
+
.nav-menu-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--color-border); border-radius: 5px; background: var(--color-surface); color: var(--color-text); font-size: 22px; }
|
|
54
|
+
|
|
55
|
+
/* One visual plane: the promise and the actual workspace. */
|
|
56
|
+
.hero { overflow: clip; background: var(--surface-accent-subtle); border-bottom: 1px solid var(--color-divider); }
|
|
57
|
+
.hero-inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 44px; align-items: center; min-height: min(740px, calc(100svh - 80px)); padding-block: 48px; }
|
|
58
|
+
.hero-title { font-size: clamp(66px, 7.2vw, 108px); letter-spacing: -.075em; margin-left: -.045em; }
|
|
59
|
+
.hero-promise { margin-top: 26px; font-size: clamp(34px, 3.4vw, 49px); font-weight: 550; line-height: 1.12; letter-spacing: -.05em; }
|
|
60
|
+
.hero-promise em { font-style: normal; color: var(--color-primary); }
|
|
61
|
+
.hero-sub { max-width: 38ch; margin-top: 24px; color: var(--color-text-muted); font-size: 16px; }
|
|
62
|
+
.hero-actions { display: flex; align-items: center; gap: 24px; margin-top: 32px; }
|
|
63
|
+
.hero-note { font-size: 12px; margin-top: 22px; color: var(--color-text-muted); }
|
|
64
|
+
.hero-shot { width: 125%; margin-top: 26px; }
|
|
65
|
+
.preview-label { display: flex; justify-content: space-between; padding-bottom: 16px; color: var(--color-text-muted); }
|
|
66
|
+
.hero-shot img { border: 1px solid var(--color-border); border-radius: 7px; box-shadow: var(--shadow-media-stage); }
|
|
67
|
+
figcaption { margin-top: 20px; font-size: 11px; color: var(--color-text-muted); }
|
|
68
|
+
.hero-shot figcaption { max-width: 70%; }
|
|
69
|
+
|
|
70
|
+
/* Outcomes and the supported workflow. */
|
|
71
|
+
.benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
|
|
72
|
+
.benefit { padding-top: 24px; border-top: 1px solid var(--color-border); }
|
|
73
|
+
.feature-index { display: block; color: var(--color-text-muted); margin-bottom: 26px; }
|
|
74
|
+
.benefit p { margin-top: 18px; color: var(--color-text-muted); font-size: 14px; }
|
|
75
|
+
.benefit .benefit-detail { font-size: 12px; }
|
|
76
|
+
.benefit .text-link { margin-top: 22px; color: var(--color-primary); }
|
|
77
|
+
.workflow-detail { margin-top: 76px; padding: 40px; display: grid; grid-template-columns: 1fr 1.3fr; gap: 60px; background: var(--color-surface-offset-2); }
|
|
78
|
+
.workflow-detail h3 { font-size: 33px; }
|
|
79
|
+
.workflow-detail p:not(.eyebrow) { max-width: 36ch; color: var(--color-text-muted); font-size: 14px; margin-top: 18px; }
|
|
80
|
+
.format-list { align-self: center; }
|
|
81
|
+
.format-list > div { display: grid; grid-template-columns: 150px 1fr; gap: 22px; padding-block: 20px; }
|
|
82
|
+
.format-list > div + div { border-top: 1px solid var(--color-border); }
|
|
83
|
+
.format-list dt { font-size: 14px; font-weight: 600; }
|
|
84
|
+
.format-list dd { font-size: 13px; color: var(--color-text-muted); }
|
|
85
|
+
.capability-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; margin-top: 48px; }
|
|
86
|
+
.capability .eyebrow { margin-bottom: 16px; }
|
|
87
|
+
.capability h3 { font-size: 20px; }
|
|
88
|
+
.capability > p:last-child { margin-top: 14px; color: var(--color-text-muted); font-size: 13px; }
|
|
89
|
+
|
|
90
|
+
/* The existing recording provides product proof. */
|
|
91
|
+
.demo-section { background: var(--color-surface); border-block: 1px solid var(--color-divider); }
|
|
92
|
+
.demo-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 64px; align-items: center; }
|
|
93
|
+
.demo-copy > p:not(.eyebrow) { margin-top: 24px; color: var(--color-text-muted); max-width: 36ch; font-size: 15px; }
|
|
94
|
+
.demo-copy .landing-button { margin-top: 28px; }
|
|
95
|
+
.demo-copy .demo-note { font-size: 12px; }
|
|
96
|
+
.demo-note a { text-decoration: underline; text-underline-offset: 3px; }
|
|
97
|
+
.demo-frame video { border-radius: 7px; border: 1px solid var(--color-border); background: var(--color-surface-ink); aspect-ratio: 16 / 10; }
|
|
98
|
+
|
|
99
|
+
/* Setup: reuse the existing keyboard-accessible install tabs. */
|
|
100
|
+
.install-layout, .docs-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 80px; }
|
|
101
|
+
.install-layout .section-head, .docs-layout .section-head { margin: 0; }
|
|
102
|
+
.section-head .install-requirements { font-size: 12px; margin-top: 20px; }
|
|
103
|
+
.install-layout .text-link { margin-top: 24px; color: var(--color-primary); }
|
|
104
|
+
.install { border: 1px solid var(--color-border); border-radius: 7px; background: var(--color-surface); overflow: hidden; }
|
|
105
|
+
.install-tabs { display: flex; gap: 24px; padding-inline: 24px; border-bottom: 1px solid var(--color-divider); }
|
|
106
|
+
.install-tab { min-height: 56px; padding: 12px 0; border: 0; background: transparent; color: var(--color-text-muted); font-size: 13px; }
|
|
107
|
+
.install-tab.is-active { color: var(--color-primary); box-shadow: inset 0 -2px var(--color-primary); }
|
|
108
|
+
.install-panel { padding: 26px; min-height: 184px; }
|
|
109
|
+
.install-code { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 22px; }
|
|
110
|
+
.install-code pre { min-width: 0; max-width: 100%; overflow-x: auto; font: 12px/1.9 var(--landing-mono); }
|
|
111
|
+
code { font-family: var(--landing-mono); font-size: .9em; }
|
|
112
|
+
.install-code pre code { font-size: inherit; }
|
|
113
|
+
.copy-btn { min-height: 36px; padding: 7px 12px; font-size: 12px; gap: 6px; }
|
|
114
|
+
.icon { width: 14px; height: 14px; }
|
|
115
|
+
.install-note, .share-note { margin-top: 22px; font-size: 12px; color: var(--color-text-muted); }
|
|
116
|
+
.share-note a { text-decoration: underline; text-underline-offset: 3px; }
|
|
117
|
+
.clipboard-fallback { position: fixed; left: -9999px; opacity: 0; }
|
|
118
|
+
html:not(.copy-ready) .copy-btn, html:not(.tabs-ready) .install-tabs { display: none; }
|
|
119
|
+
html:not(.tabs-ready) .install-panel[hidden] { display: block !important; }
|
|
120
|
+
html:not(.tabs-ready) .install-panel + .install-panel { border-top: 1px solid var(--color-divider); }
|
|
121
|
+
|
|
122
|
+
/* Docs are routes to maintained guides, not duplicated reference content. */
|
|
123
|
+
.docs-section { padding-top: 72px; border-top: 1px solid var(--color-divider); }
|
|
124
|
+
.docs-layout .section-head { align-self: start; position: sticky; top: 128px; }
|
|
125
|
+
.docs-source { display: inline-block; font-size: 11px; color: var(--color-text-muted); margin-top: 28px; }
|
|
126
|
+
.docs-list { border-top: 1px solid var(--color-border); }
|
|
127
|
+
.docs-list a { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--color-border); transition: color .2s; }
|
|
128
|
+
.docs-list a:hover { color: var(--color-primary); }
|
|
129
|
+
.docs-list strong { font-size: 17px; font-weight: 600; letter-spacing: -.02em; }
|
|
130
|
+
.docs-list small { display: block; color: var(--color-text-muted); font-size: 12px; margin-top: 3px; }
|
|
131
|
+
.docs-list a > span:last-child { color: var(--color-primary); font-size: 22px; }
|
|
132
|
+
.closing { padding-block: 76px; background: var(--surface-accent-subtle); border-top: 1px solid var(--color-divider); }
|
|
133
|
+
.closing-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
|
|
134
|
+
.closing h2 { font-size: clamp(38px, 4.5vw, 64px); }
|
|
135
|
+
.closing-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; }
|
|
136
|
+
.footer { padding-block: 34px; border-top: 1px solid var(--color-divider); }
|
|
137
|
+
.footer-inner { display: flex; align-items: center; gap: 24px; }
|
|
138
|
+
.footer p { font-size: 11px; color: var(--color-text-muted); }
|
|
139
|
+
.footer nav { display: flex; gap: 24px; margin-left: auto; font-size: 12px; }
|
|
140
|
+
.footer nav a:hover { color: var(--color-primary); }
|
|
141
|
+
|
|
142
|
+
/* Progressive enhancement: content is visible until observers are ready. */
|
|
143
|
+
.reveal-ready .reveal { opacity: 0; transform: translateY(16px); transition: opacity .65s ease, transform .65s ease; }
|
|
144
|
+
.reveal-ready .reveal.is-visible { opacity: 1; transform: none; }
|
|
145
|
+
|
|
146
|
+
/* A single arrival: the pages meet, then the workspace comes into view. */
|
|
147
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
148
|
+
.nav-mark { overflow: visible; }
|
|
149
|
+
.nav-mark > * { transform-origin: center; animation: landing-page-front .8s cubic-bezier(.16, 1, .3, 1) backwards; }
|
|
150
|
+
.nav-mark > :first-child { animation-name: landing-page-back; }
|
|
151
|
+
.hero-enter { animation: landing-enter .7s cubic-bezier(.16, 1, .3, 1) backwards; }
|
|
152
|
+
.hero-copy > :nth-child(2) { animation-delay: .08s; }
|
|
153
|
+
.hero-copy > :nth-child(3) { animation-delay: .16s; }
|
|
154
|
+
.hero-copy > :nth-child(4) { animation-delay: .24s; }
|
|
155
|
+
.hero-copy > :nth-child(5) { animation-delay: .32s; }
|
|
156
|
+
.hero-copy > :nth-child(6) { animation-delay: .4s; }
|
|
157
|
+
.hero-shot { animation-name: landing-preview-enter; animation-duration: .9s; animation-delay: .28s; }
|
|
158
|
+
.hero-enter:focus-within { animation: none; }
|
|
159
|
+
}
|
|
160
|
+
@keyframes landing-page-back {
|
|
161
|
+
from { transform: translateX(-6px) rotate(-12deg); }
|
|
162
|
+
to { transform: none; }
|
|
163
|
+
}
|
|
164
|
+
@keyframes landing-page-front {
|
|
165
|
+
from { transform: translateX(6px) rotate(12deg); }
|
|
166
|
+
to { transform: none; }
|
|
167
|
+
}
|
|
168
|
+
@keyframes landing-enter {
|
|
169
|
+
from { opacity: 0; transform: translateY(14px); }
|
|
170
|
+
to { opacity: 1; transform: none; }
|
|
171
|
+
}
|
|
172
|
+
@keyframes landing-preview-enter {
|
|
173
|
+
from { opacity: 0; transform: translate(24px, 12px) scale(.985); }
|
|
174
|
+
to { opacity: 1; transform: none; }
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (min-width: 1600px) {
|
|
178
|
+
.hero-shot { width: 112%; }
|
|
179
|
+
}
|
|
180
|
+
@media (min-width: 901px) and (max-height: 800px) {
|
|
181
|
+
.hero-inner { padding-block: 24px; }
|
|
182
|
+
}
|
|
183
|
+
@media (max-width: 1100px) {
|
|
184
|
+
.wrap { width: calc(100% - 64px); }
|
|
185
|
+
.nav-inner { gap: 20px; }
|
|
186
|
+
.nav-links { gap: 20px; }
|
|
187
|
+
.nav-github { display: none; }
|
|
188
|
+
.hero-inner { gap: 24px; }
|
|
189
|
+
.hero-title { font-size: 76px; }
|
|
190
|
+
.hero-promise { font-size: 37px; }
|
|
191
|
+
.hero-actions { gap: 18px; }
|
|
192
|
+
.benefits, .capability-rail { gap: 26px; }
|
|
193
|
+
.demo-layout, .install-layout, .docs-layout { gap: 40px; }
|
|
194
|
+
.workflow-detail { gap: 32px; padding: 32px; }
|
|
195
|
+
.format-list > div { grid-template-columns: 120px 1fr; gap: 16px; }
|
|
196
|
+
}
|
|
197
|
+
@media (max-width: 900px) {
|
|
198
|
+
.hero-inner { grid-template-columns: 1fr; min-height: auto; padding-block: 48px; }
|
|
199
|
+
.hero-copy { max-width: 600px; }
|
|
200
|
+
.hero-title { font-size: clamp(66px, 12vw, 100px); }
|
|
201
|
+
.hero-promise { font-size: 38px; }
|
|
202
|
+
.hero-sub { max-width: 44ch; }
|
|
203
|
+
.hero-shot { width: 100%; margin-top: 18px; }
|
|
204
|
+
.hero-shot figcaption { max-width: none; }
|
|
205
|
+
.benefits { grid-template-columns: 1fr; gap: 32px; }
|
|
206
|
+
.feature-index { margin-bottom: 16px; }
|
|
207
|
+
.benefit p { max-width: 64ch; }
|
|
208
|
+
.workflow-detail { grid-template-columns: 1fr; }
|
|
209
|
+
.format-list > div { grid-template-columns: 150px 1fr; }
|
|
210
|
+
.capability-rail { grid-template-columns: 1fr; gap: 32px; }
|
|
211
|
+
.capability { border-bottom: 1px solid var(--color-divider); padding-bottom: 24px; }
|
|
212
|
+
.demo-layout, .install-layout, .docs-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
|
|
213
|
+
.docs-layout .section-head { position: static; }
|
|
214
|
+
.demo-copy > p:not(.eyebrow) { max-width: 52ch; }
|
|
215
|
+
.footer-inner { flex-wrap: wrap; }
|
|
216
|
+
.footer nav { width: 100%; margin: 0; }
|
|
217
|
+
}
|
|
218
|
+
@media (max-width: 700px) {
|
|
219
|
+
.wrap { width: calc(100% - 40px); }
|
|
220
|
+
.nav-inner { height: 68px; gap: 12px; }
|
|
221
|
+
.nav-brand { font-size: 20px; }
|
|
222
|
+
.nav-mark { width: 25px; height: 25px; }
|
|
223
|
+
.nav-demo { margin-left: auto; font-size: 11px; gap: 8px; padding-inline: 12px; }
|
|
224
|
+
.nav-menu-toggle { display: flex; }
|
|
225
|
+
.nav-links { display: none; }
|
|
226
|
+
.nav.is-menu-open .nav-links { position: absolute; display: grid; gap: 0; inset: 100% 0 auto; padding: 12px 20px; background: var(--color-surface); border-bottom: 1px solid var(--color-border); box-shadow: var(--shadow-md); }
|
|
227
|
+
.nav-links a { padding: 13px 8px; }
|
|
228
|
+
.section { padding-block: 64px; }
|
|
229
|
+
.section-head { margin-bottom: 32px; }
|
|
230
|
+
.hero-inner { padding-block: 36px; gap: 24px; }
|
|
231
|
+
.hero-copy .eyebrow { font-size: 10px; margin-bottom: 18px; }
|
|
232
|
+
.hero-title { font-size: clamp(56px, 14.5vw, 86px); }
|
|
233
|
+
.hero-promise { margin-top: 18px; font-size: 34px; }
|
|
234
|
+
.hero-sub { font-size: 14px; margin-top: 18px; }
|
|
235
|
+
.hero-actions { margin-top: 24px; gap: 20px; flex-wrap: wrap; }
|
|
236
|
+
.hero-actions .landing-button { padding-inline: 18px; }
|
|
237
|
+
.hero-actions .text-link { font-size: 13px; }
|
|
238
|
+
.hero-note { font-size: 10px; margin-top: 16px; }
|
|
239
|
+
.hero-shot { margin-top: 0; }
|
|
240
|
+
.preview-label { font-size: 9px; padding-bottom: 10px; }
|
|
241
|
+
figcaption { font-size: 10px; margin-top: 14px; }
|
|
242
|
+
.hero-shot img { box-shadow: var(--shadow-lg); }
|
|
243
|
+
.workflow-detail { padding: 24px; margin-top: 40px; gap: 16px; }
|
|
244
|
+
.workflow-detail h3 { font-size: 29px; }
|
|
245
|
+
.format-list > div { grid-template-columns: 1fr; gap: 5px; padding-block: 16px; }
|
|
246
|
+
.install-tabs { padding-inline: 18px; }
|
|
247
|
+
.install-panel { padding: 22px 18px; }
|
|
248
|
+
.install-code pre { font-size: 11px; }
|
|
249
|
+
.closing { padding-block: 56px; }
|
|
250
|
+
.closing-inner { flex-direction: column; align-items: flex-start; }
|
|
251
|
+
.closing-actions { gap: 20px; }
|
|
252
|
+
.footer-inner { gap: 16px; }
|
|
253
|
+
.footer p { font-size: 10px; }
|
|
254
|
+
.footer nav { gap: 22px; }
|
|
255
|
+
}
|
|
256
|
+
@media (prefers-reduced-motion: reduce) {
|
|
257
|
+
html { scroll-behavior: auto; }
|
|
258
|
+
*, *::before, *::after { transition: none !important; animation: none !important; }
|
|
259
|
+
.reveal-ready .reveal { opacity: 1; transform: none; }
|
|
260
|
+
}
|
|
@@ -49,6 +49,15 @@ const VALIDATION_ISSUE_SCHEMA = objectSchema({
|
|
|
49
49
|
target: { type: 'string' },
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
+
const MARKDOWN_VALIDATION_SCHEMA = objectSchema({
|
|
53
|
+
issues: { items: VALIDATION_ISSUE_SCHEMA, type: 'array' },
|
|
54
|
+
valid: { type: 'boolean' },
|
|
55
|
+
});
|
|
56
|
+
const VALIDATE_MARKDOWN_INPUT = {
|
|
57
|
+
description: 'Return reference validation for the exact saved revision. Markdown only; validation issues do not roll back the save.',
|
|
58
|
+
type: 'boolean',
|
|
59
|
+
};
|
|
60
|
+
|
|
52
61
|
const DIAGRAM_RENDER_OUTPUT_PROPERTIES = {
|
|
53
62
|
endLine: { minimum: 1, type: 'integer' },
|
|
54
63
|
format: { enum: ['png', 'svg'], type: 'string' },
|
|
@@ -382,16 +391,18 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
382
391
|
|
|
383
392
|
{
|
|
384
393
|
annotations: { idempotentHint: true, readOnlyHint: true },
|
|
385
|
-
description: 'Search current Vault text with one
|
|
394
|
+
description: 'Search current Vault text with one literal case-insensitive phrase, not a natural-language question. Defaults to 10 files and 2 snippets each. Read relevant ranges before answering and cite path:line evidence. Narrow prefix or query when truncated; no matches do not prove a topic is absent.',
|
|
386
395
|
inputSchema: objectSchema({
|
|
387
396
|
limit: {
|
|
388
|
-
|
|
397
|
+
default: 10,
|
|
398
|
+
description: 'Maximum matching documents to return (default 10).',
|
|
389
399
|
maximum: 50,
|
|
390
400
|
minimum: 1,
|
|
391
401
|
type: 'integer',
|
|
392
402
|
},
|
|
393
403
|
maxSnippetsPerFile: {
|
|
394
|
-
|
|
404
|
+
default: 2,
|
|
405
|
+
description: 'Maximum matching snippets returned per document (default 2).',
|
|
395
406
|
maximum: 10,
|
|
396
407
|
minimum: 1,
|
|
397
408
|
type: 'integer',
|
|
@@ -437,7 +448,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
437
448
|
required: ['available', 'backend', 'minQueryLength', 'unavailableReason', 'version'],
|
|
438
449
|
type: 'object',
|
|
439
450
|
},
|
|
440
|
-
truncated: { type: 'boolean' },
|
|
451
|
+
truncated: { description: 'True when documents or snippets were omitted, or the search was incomplete. Counts cover observed matches, not necessarily all Vault matches.', type: 'boolean' },
|
|
441
452
|
}),
|
|
442
453
|
scope: 'vault:read',
|
|
443
454
|
untrustedContentHint: true,
|
|
@@ -445,14 +456,21 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
445
456
|
},
|
|
446
457
|
{
|
|
447
458
|
annotations: { idempotentHint: true, readOnlyHint: true },
|
|
448
|
-
description: 'Read
|
|
459
|
+
description: 'Read current text (default 80 lines) or a compact Markdown outline with full-document revision. Follow nextStartLine for more. Read content immediately before exact edits; on revision conflict reread and recompute. Maximum source size is 1000000 characters; a single content line over 100000 characters fails explicitly.',
|
|
449
460
|
inputSchema: objectSchema({
|
|
450
461
|
lineCount: {
|
|
451
|
-
|
|
462
|
+
default: 80,
|
|
463
|
+
description: 'Maximum content lines or outline headings to return (default 80).',
|
|
452
464
|
maximum: 500,
|
|
453
465
|
minimum: 1,
|
|
454
466
|
type: 'integer',
|
|
455
467
|
},
|
|
468
|
+
mode: {
|
|
469
|
+
default: 'content',
|
|
470
|
+
description: 'Outline returns top-level ATX and single-line Setext headings, excluding fenced code and frontmatter. Heading text is capped at 200 characters.',
|
|
471
|
+
enum: ['content', 'outline'],
|
|
472
|
+
type: 'string',
|
|
473
|
+
},
|
|
456
474
|
path: {
|
|
457
475
|
description: 'Vault-relative document path.',
|
|
458
476
|
maxLength: 1024,
|
|
@@ -470,13 +488,23 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
470
488
|
outputSchema: objectSchema({
|
|
471
489
|
content: { type: 'string' },
|
|
472
490
|
endLine: { minimum: 1, type: 'integer' },
|
|
491
|
+
headings: {
|
|
492
|
+
items: objectSchema({
|
|
493
|
+
level: { minimum: 1, maximum: 6, type: 'integer' },
|
|
494
|
+
line: { minimum: 1, type: 'integer' },
|
|
495
|
+
text: { type: 'string' },
|
|
496
|
+
truncated: { type: 'boolean' },
|
|
497
|
+
}),
|
|
498
|
+
type: 'array',
|
|
499
|
+
},
|
|
500
|
+
nextStartLine: { type: ['integer', 'null'], minimum: 1 },
|
|
473
501
|
kind: { type: 'string' },
|
|
474
502
|
path: { type: 'string' },
|
|
475
503
|
revision: REVISION_SCHEMA,
|
|
476
504
|
startLine: { minimum: 1, type: 'integer' },
|
|
477
505
|
totalLines: { minimum: 1, type: 'integer' },
|
|
478
506
|
truncated: { type: 'boolean' },
|
|
479
|
-
}),
|
|
507
|
+
}, ['content', 'endLine', 'kind', 'nextStartLine', 'path', 'revision', 'startLine', 'totalLines', 'truncated']),
|
|
480
508
|
scope: 'vault:read',
|
|
481
509
|
untrustedContentHint: true,
|
|
482
510
|
webMcp: true,
|
|
@@ -676,7 +704,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
676
704
|
},
|
|
677
705
|
{
|
|
678
706
|
annotations: { destructiveHint: false, idempotentHint: true, readOnlyHint: false },
|
|
679
|
-
description: 'Create
|
|
707
|
+
description: 'Create an editable .excalidraw scene. Before the first diagram in a task, call get_collabmd_syntax with kind="excalidraw" for design guidance and valid examples. Request inline inspection/rendering and examine the image before finishing.',
|
|
680
708
|
inputSchema: objectSchema({
|
|
681
709
|
elements: {
|
|
682
710
|
description: 'One to 200 basic Excalidraw elements in back-to-front order. Text may bind to a container with containerId; groupIds define atomic movement groups. Arrows may bind with startElementId and endElementId. beforeElementId or afterElementId sets explicit placement.',
|
|
@@ -707,7 +735,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
707
735
|
},
|
|
708
736
|
{
|
|
709
737
|
annotations: { destructiveHint: false, idempotentHint: false, readOnlyHint: false },
|
|
710
|
-
description: '
|
|
738
|
+
description: 'Edit an existing .excalidraw scene only when its revision matches. Before the first diagram edit in a task, consult get_collabmd_syntax with kind="excalidraw". Inspect first, preserve existing style and unrelated elements, then verify the result. Supports create, update, replace, translate, reorder, and delete; bound-text metric edits reflow automatically.',
|
|
711
739
|
inputSchema: objectSchema({
|
|
712
740
|
create: {
|
|
713
741
|
items: EXCALIDRAW_ELEMENT_INPUT_SCHEMA,
|
|
@@ -782,7 +810,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
782
810
|
},
|
|
783
811
|
{
|
|
784
812
|
annotations: { destructiveHint: false, idempotentHint: false, readOnlyHint: false },
|
|
785
|
-
description: 'Apply
|
|
813
|
+
description: 'Apply up to 20 unique, non-overlapping exact replacements against the revision from a fresh content read. Combined old/new text is limited to 50000 characters. On conflict reread; on ambiguous matches include more surrounding text. Optional Markdown validation checks the saved revision.',
|
|
786
814
|
inputSchema: objectSchema({
|
|
787
815
|
path: {
|
|
788
816
|
description: 'Vault-relative path returned by read_document.',
|
|
@@ -813,6 +841,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
813
841
|
type: 'array',
|
|
814
842
|
},
|
|
815
843
|
revision: REVISION_SCHEMA,
|
|
844
|
+
validate: VALIDATE_MARKDOWN_INPUT,
|
|
816
845
|
}, ['path', 'revision', 'replacements']),
|
|
817
846
|
method: 'applyTextEdits',
|
|
818
847
|
name: 'apply_text_edits',
|
|
@@ -820,13 +849,14 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
820
849
|
path: { type: 'string' },
|
|
821
850
|
replacementCount: { minimum: 1, type: 'integer' },
|
|
822
851
|
revision: REVISION_SCHEMA,
|
|
823
|
-
|
|
852
|
+
validation: MARKDOWN_VALIDATION_SCHEMA,
|
|
853
|
+
}, ['path', 'replacementCount', 'revision']),
|
|
824
854
|
scope: 'vault:edit',
|
|
825
855
|
webMcp: true,
|
|
826
856
|
},
|
|
827
857
|
{
|
|
828
858
|
annotations: { destructiveHint: false, idempotentHint: true, readOnlyHint: false },
|
|
829
|
-
description: 'Create a new supported
|
|
859
|
+
description: 'Create a new supported text document (up to 200000 characters). Inspect nearby naming/style and consult get_collabmd_syntax for unfamiliar kinds. Identical retries succeed; different content at an existing path fails. Optional Markdown validation checks the saved revision.',
|
|
830
860
|
inputSchema: objectSchema({
|
|
831
861
|
content: {
|
|
832
862
|
description: 'Initial document text, normalized to LF line endings.',
|
|
@@ -839,6 +869,7 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
839
869
|
minLength: 1,
|
|
840
870
|
type: 'string',
|
|
841
871
|
},
|
|
872
|
+
validate: VALIDATE_MARKDOWN_INPUT,
|
|
842
873
|
}, ['path', 'content']),
|
|
843
874
|
method: 'createDocument',
|
|
844
875
|
name: 'create_document',
|
|
@@ -846,7 +877,8 @@ export const AGENT_TOOL_DEFINITIONS = Object.freeze([
|
|
|
846
877
|
kind: { type: 'string' },
|
|
847
878
|
path: { type: 'string' },
|
|
848
879
|
revision: REVISION_SCHEMA,
|
|
849
|
-
|
|
880
|
+
validation: MARKDOWN_VALIDATION_SCHEMA,
|
|
881
|
+
}, ['kind', 'path', 'revision']),
|
|
850
882
|
scope: 'vault:edit',
|
|
851
883
|
webMcp: true,
|
|
852
884
|
},
|
|
@@ -13,6 +13,56 @@ import {
|
|
|
13
13
|
supportsCommentsForFilePath,
|
|
14
14
|
} from './file-kind.js';
|
|
15
15
|
|
|
16
|
+
const EXCALIDRAW_DESIGN_GUIDE = [
|
|
17
|
+
'Plan: State the question the diagram answers, its audience, the essential entities, and what each connection means. Choose a flowchart for steps/decisions or a layered layout for responsibilities/dependencies. Keep one main idea per diagram; split dense detail into another diagram. Do not invent relationships to fill space.',
|
|
18
|
+
'Layout: Choose left-to-right or top-to-bottom reading order. Place containers before labels and connectors. Align related nodes and use consistent sizes and gaps. As starting points, use 200 x 88 nodes, 80-120 units between columns, and 60-80 between rows; enlarge these for the actual text. Reserve clear connector lanes. Route arrows around unrelated shapes, minimize crossings, and make direction unambiguous. These are defaults, not constraints on an existing design.',
|
|
19
|
+
'Labels and bindings: Prefer short entity names and verb phrases for relationships. Start around 20-unit body text and 28-unit titles, with one font family. Enlarge the container or add deliberate line breaks instead of shrinking text to fit. Create labels as separate text elements using containerId; creation still requires explicit x/y and correctly sized bounds. Bind connectors with startElementId/endElementId and set points relative to the arrow x/y, near the appropriate shape edges. Binding identifies the relationship; it does not plan the route. Allow padding around labels and keep relationship labels away from arrowheads.',
|
|
20
|
+
'Visual hierarchy: Use a clear title, restrained strokes, and at most two or three semantic fill colors with readable dark labels on light fills. Use shape, position, or text as well as color to distinguish roles. Reuse colors for the same meaning. Give related elements groupIds when they should move together. Keep text above its container in paint order. Avoid decorative elements that compete with the information.',
|
|
21
|
+
'Existing diagrams: In WebMCP, get active context first. Inspect the existing scene and preserve its style, IDs, layout, and unrelated elements. Use edit_excalidraw with the returned revision. Prefer translate for moving containers/groups and their related text; inspect attached connector routes after movement. Use reorder for paint order and same-ID replace for a type change. Bound-text placement normalization re-centers labels; use it only when that is intended. On a revision conflict, inspect again and reconsider the edit.',
|
|
22
|
+
'Verify and refine: Create or edit with verify: { render: true } to receive inspection and an image for that exact revision. Check diagnostics for clipping, unintended overlaps, occlusion, text placement, and connectors crossing components. Examine the image for reading order, legibility, correct relationships, and clear arrow direction; structural validity alone does not establish visual quality. Fix concrete problems with revision-guarded edits and verify again. Use verify: { render: false } for intermediate create/edit checks when an image would add no information; use verify_excalidraw with render: true for the final image. Stop when the requested meaning is clear and no material layout issue remains; do not redraw solely to chase cosmetic variation.',
|
|
23
|
+
'Rendering limits: Remote collabmd-basic-svg previews approximate Excalidraw and report preview-not-pixel-identical; WebMCP uses the official browser renderer. If an image is unavailable, report that visual quality was not checked instead of claiming it was verified.',
|
|
24
|
+
'Examples below are complete MCP tools/call payloads using this server\'s schema. Choose a new Vault-relative path and adapt labels, geometry, and relationships. For WebMCP, call the corresponding collabmd_ tool with the arguments object. Reuse this guide during the task; fetching it before every edit is unnecessary.',
|
|
25
|
+
].join('\n\n');
|
|
26
|
+
|
|
27
|
+
const EXCALIDRAW_CREATION_EXAMPLES = [
|
|
28
|
+
{
|
|
29
|
+
name: 'create_excalidraw',
|
|
30
|
+
arguments: {
|
|
31
|
+
path: 'diagrams/request-flow.excalidraw',
|
|
32
|
+
elements: [
|
|
33
|
+
{ id: 'title', type: 'text', x: 40, y: 32, text: 'Request review', fontSize: 28 },
|
|
34
|
+
{ id: 'request', type: 'rectangle', x: 40, y: 96, width: 200, height: 88, backgroundColor: '#e7f5ff' },
|
|
35
|
+
{ id: 'review', type: 'rectangle', x: 360, y: 96, width: 200, height: 88, backgroundColor: '#e7f5ff' },
|
|
36
|
+
{ id: 'respond', type: 'rectangle', x: 680, y: 96, width: 200, height: 88, backgroundColor: '#e7f5ff' },
|
|
37
|
+
{ id: 'request-label', type: 'text', x: 98, y: 127.5, text: 'Request', containerId: 'request' },
|
|
38
|
+
{ id: 'review-label', type: 'text', x: 424, y: 127.5, text: 'Review', containerId: 'review' },
|
|
39
|
+
{ id: 'respond-label', type: 'text', x: 738, y: 127.5, text: 'Respond', containerId: 'respond' },
|
|
40
|
+
{ id: 'request-review', type: 'arrow', x: 244, y: 140, points: [[0, 0], [112, 0]], startElementId: 'request', endElementId: 'review' },
|
|
41
|
+
{ id: 'review-respond', type: 'arrow', x: 564, y: 140, points: [[0, 0], [112, 0]], startElementId: 'review', endElementId: 'respond' },
|
|
42
|
+
],
|
|
43
|
+
verify: { render: true },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'create_excalidraw',
|
|
48
|
+
arguments: {
|
|
49
|
+
path: 'diagrams/service-layers.excalidraw',
|
|
50
|
+
elements: [
|
|
51
|
+
{ id: 'title', type: 'text', x: 40, y: 32, text: 'Service layers', fontSize: 28 },
|
|
52
|
+
{ id: 'presentation', type: 'rectangle', x: 40, y: 96, width: 360, height: 96, backgroundColor: '#e7f5ff' },
|
|
53
|
+
{ id: 'application', type: 'rectangle', x: 40, y: 256, width: 360, height: 96, backgroundColor: '#e7f5ff' },
|
|
54
|
+
{ id: 'storage', type: 'rectangle', x: 40, y: 416, width: 360, height: 96, backgroundColor: '#e7f5ff' },
|
|
55
|
+
{ id: 'presentation-label', type: 'text', x: 148, y: 131.5, text: 'Presentation', containerId: 'presentation' },
|
|
56
|
+
{ id: 'application-label', type: 'text', x: 154, y: 291.5, text: 'Application', containerId: 'application' },
|
|
57
|
+
{ id: 'storage-label', type: 'text', x: 178, y: 451.5, text: 'Storage', containerId: 'storage' },
|
|
58
|
+
{ id: 'presentation-application', type: 'arrow', x: 220, y: 196, points: [[0, 0], [0, 56]], startElementId: 'presentation', endElementId: 'application' },
|
|
59
|
+
{ id: 'application-storage', type: 'arrow', x: 220, y: 356, points: [[0, 0], [0, 56]], startElementId: 'application', endElementId: 'storage' },
|
|
60
|
+
],
|
|
61
|
+
verify: { render: true },
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
].map((example) => JSON.stringify(example));
|
|
65
|
+
|
|
16
66
|
const CAPABILITIES = Object.freeze({
|
|
17
67
|
base: {
|
|
18
68
|
agentCreatable: true,
|
|
@@ -35,7 +85,7 @@ const CAPABILITIES = Object.freeze({
|
|
|
35
85
|
agentEditable: true,
|
|
36
86
|
editable: true,
|
|
37
87
|
extensions: [EXCALIDRAW_FILE_EXTENSION],
|
|
38
|
-
guide: 'Excalidraw scene JSON managed by the canvas editor. Use create_excalidraw and edit_excalidraw rather than raw text edits. Element order is back-to-front; create supports beforeElementId and afterElementId, while edit supports relationship-aware translation, reorder, same-ID
|
|
88
|
+
guide: 'Excalidraw scene JSON managed by the canvas editor. Use create_excalidraw and edit_excalidraw rather than raw text edits. Element order is back-to-front; create supports beforeElementId and afterElementId, while edit supports relationship-aware translation, reorder, same-ID replacement, and bound-text placement normalization. Container or group translation also moves bound text and grouped members. Standalone auto-resizing text recalculates its bounds when text metrics change; bound text whose font, size, line height, or content changes is re-centered and remeasured vertically. Line, arrow, and freedraw dimensions are derived from points. Creation and editing support inline inspection and optional rendering; verify_excalidraw can return compact layout diagnostics without an image. Remote fallback renders report preview-not-pixel-identical. Supported agent element types: rectangle, ellipse, diamond, text, arrow, line, and freedraw. Embed with ![[drawing.excalidraw]].',
|
|
39
89
|
examples: ['![[drawing.excalidraw]]'],
|
|
40
90
|
},
|
|
41
91
|
html: {
|
|
@@ -59,12 +109,13 @@ const CAPABILITIES = Object.freeze({
|
|
|
59
109
|
agentEditable: true,
|
|
60
110
|
editable: true,
|
|
61
111
|
extensions: [...MARKDOWN_FILE_EXTENSIONS],
|
|
62
|
-
guide: 'Markdown-it syntax with YAML frontmatter, headings, tables, task lists, fenced code, linkified URLs, [[wiki-links]], aliases, and embeds. Use ![[file.ext]] for Base, draw.io, Excalidraw, Mermaid, or PlantUML Vault embeds. Use  for public video embeds: valid YouTube URLs or direct public HTTPS URLs ending in .mp4, .webm, or .ogg. Use relative Markdown image paths for Vault image attachments. Raw HTML is disabled.',
|
|
112
|
+
guide: 'Markdown-it syntax with YAML frontmatter, headings, tables, task lists, fenced code, linkified URLs, [[wiki-links]], aliases, and embeds. Use $...$ for inline math and $$...$$ on its own lines for display math (KaTeX). Use ![[file.ext]] for Base, draw.io, Excalidraw, Mermaid, or PlantUML Vault embeds. Use  for public video embeds: valid YouTube URLs or direct public HTTPS URLs ending in .mp4, .webm, or .ogg. Use relative Markdown image paths for Vault image attachments. Raw HTML is disabled.',
|
|
63
113
|
examples: [
|
|
64
114
|
'---\ntags: [docs]\n---\n# Title\n\n- [ ] Task\n\n[[Other Note|Alias]]',
|
|
65
115
|
'![[diagram.mmd]]\n![[diagram.puml]]\n![[drawing.excalidraw]]\n![[architecture.drawio]]\n![[query.base]]',
|
|
66
116
|
'\n\n',
|
|
67
117
|
'```mermaid\nflowchart LR\n A --> B\n```\n\n```plantuml\n@startuml\nAlice -> Bob\n@enduml\n```',
|
|
118
|
+
'Inline math $E = mc^2$ and display math:\n\n$$\n\\frac{a}{b}\n$$',
|
|
68
119
|
],
|
|
69
120
|
},
|
|
70
121
|
mermaid: {
|
|
@@ -127,9 +178,13 @@ export function listCollabMdContentCapabilities() {
|
|
|
127
178
|
export function getCollabMdSyntaxGuide(kind) {
|
|
128
179
|
const capability = getCollabMdContentCapability(kind);
|
|
129
180
|
return capability ? {
|
|
130
|
-
examples: capability.
|
|
181
|
+
examples: capability.kind === 'excalidraw'
|
|
182
|
+
? [...EXCALIDRAW_CREATION_EXAMPLES, ...capability.examples]
|
|
183
|
+
: capability.examples,
|
|
131
184
|
extensions: capability.extensions,
|
|
132
|
-
guide: capability.
|
|
185
|
+
guide: capability.kind === 'excalidraw'
|
|
186
|
+
? `${capability.guide}\n\n${EXCALIDRAW_DESIGN_GUIDE}`
|
|
187
|
+
: capability.guide,
|
|
133
188
|
kind: capability.kind,
|
|
134
189
|
} : null;
|
|
135
190
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { extractYamlFrontmatter } from './yaml-frontmatter.js';
|
|
2
|
+
|
|
3
|
+
// ponytail: top-level ATX and single-line Setext headings only; use a shared full parser if nested outlines are needed.
|
|
4
|
+
export function collectMarkdownOutline(content) {
|
|
5
|
+
const lines = (extractYamlFrontmatter(content)?.bodyMarkdown ?? content).split(/\r?\n/u);
|
|
6
|
+
const headings = [];
|
|
7
|
+
let fence = null;
|
|
8
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
9
|
+
const line = lines[index];
|
|
10
|
+
const marker = line.match(/^ {0,3}(`{3,}|~{3,})(.*)$/u);
|
|
11
|
+
if (fence) {
|
|
12
|
+
if (marker && marker[1][0] === fence[0] && marker[1].length >= fence.length && !marker[2].trim()) {
|
|
13
|
+
fence = null;
|
|
14
|
+
}
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
if (marker && (marker[1][0] !== '`' || !marker[2].includes('`'))) {
|
|
18
|
+
fence = marker[1];
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
const atx = line.match(/^ {0,3}(#{1,6})(?:[\t ]+(.*)|$)/u);
|
|
22
|
+
const setext = !atx && /^ {0,3}\S/u.test(line) && !/^ {0,3}(?:>|[-+*]\s|\d+[.)]\s)/u.test(line)
|
|
23
|
+
&& lines[index + 1]?.match(/^ {0,3}(=+|-+)[\t ]*$/u);
|
|
24
|
+
if (!atx && !setext) continue;
|
|
25
|
+
const text = atx ? (atx[2] ?? '').replace(/(?:^|[\t ]+)#+[\t ]*$/u, '').trim() : line.trim();
|
|
26
|
+
headings.push({
|
|
27
|
+
level: atx ? atx[1].length : setext[1][0] === '=' ? 1 : 2,
|
|
28
|
+
line: index + 1,
|
|
29
|
+
text: text.slice(0, 200),
|
|
30
|
+
truncated: text.length > 200,
|
|
31
|
+
});
|
|
32
|
+
if (setext) index += 1;
|
|
33
|
+
}
|
|
34
|
+
return headings;
|
|
35
|
+
}
|
|
@@ -158,12 +158,16 @@ export class AgentConnectionService {
|
|
|
158
158
|
throw createAccessError('AGENT_TOKEN_INVALID', 'Agent Connection token is invalid or expired', 401);
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
if (this.hostedWorkspaceService?.enabled && connection.subjectType !== 'hosted_membership') {
|
|
162
|
+
throw createAccessError('AGENT_MEMBERSHIP_REQUIRED', 'Create a new Agent Connection for this Team Membership', 403);
|
|
163
|
+
}
|
|
164
|
+
|
|
161
165
|
let collaborator = connection.subjectEmail
|
|
162
166
|
? { email: connection.subjectEmail, name: connection.subjectEmail }
|
|
163
167
|
: null;
|
|
164
168
|
if (connection.subjectType === 'hosted_membership') {
|
|
165
|
-
const access = await this.hostedWorkspaceService
|
|
166
|
-
if (!access
|
|
169
|
+
const access = await this.hostedWorkspaceService?.authorizeWorkspaceAccess({ user: collaborator });
|
|
170
|
+
if (!access?.ok || access.membership?.id !== connection.subjectId) {
|
|
167
171
|
throw createAccessError('AGENT_MEMBERSHIP_REQUIRED', 'Team Membership is no longer active', 403);
|
|
168
172
|
}
|
|
169
173
|
collaborator = access.membership;
|