excalidrop 0.1.4 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/README.md +70 -125
  2. package/dist/cli.d.ts +7 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +936 -389
  5. package/dist/cli.js.map +1 -1
  6. package/dist/frontend/assets/{advancedFormat-tiBAHNGo.js → advancedFormat-Be4KR5mp.js} +1 -1
  7. package/dist/frontend/assets/{ar-SA-G6X2FPQ2-DVxiWV5Z.js → ar-SA-G6X2FPQ2-B6ekz3Ba.js} +1 -1
  8. package/dist/frontend/assets/arc-DlgXyGPj.js +1 -0
  9. package/dist/frontend/assets/{az-AZ-76LH7QW2-Z_2BqDo-.js → az-AZ-76LH7QW2-01MDUsF0.js} +1 -1
  10. package/dist/frontend/assets/{bg-BG-XCXSNQG7-DrxGJZOG.js → bg-BG-XCXSNQG7--fArB8Ao.js} +1 -1
  11. package/dist/frontend/assets/{blockDiagram-38ab4fdb-CDnkTFfP.js → blockDiagram-38ab4fdb-CmsVhOwi.js} +1 -1
  12. package/dist/frontend/assets/{blockDiagram-68f4deed-Bb0W6mxN.js → blockDiagram-68f4deed-DU_wNYlO.js} +6 -6
  13. package/dist/frontend/assets/{bn-BD-2XOGV67Q-BkGJ-w8k.js → bn-BD-2XOGV67Q-h8juqzfQ.js} +1 -1
  14. package/dist/frontend/assets/{c4Diagram-15b5d702-ByRV0tka.js → c4Diagram-15b5d702-ClZalz0L.js} +1 -1
  15. package/dist/frontend/assets/{c4Diagram-3d4e48cf-QSVnzYYK.js → c4Diagram-3d4e48cf-BkFVM0tP.js} +1 -1
  16. package/dist/frontend/assets/{ca-ES-6MX7JW3Y-BBJvOPE1.js → ca-ES-6MX7JW3Y-DMBR3qVX.js} +1 -1
  17. package/dist/frontend/assets/channel-BxFR7168.js +1 -0
  18. package/dist/frontend/assets/{classDiagram-70f12bd4-DDFBNGUt.js → classDiagram-70f12bd4-BXAJnakg.js} +1 -1
  19. package/dist/frontend/assets/{classDiagram-d40c83e7-cgC3s7Nz.js → classDiagram-d40c83e7-DVhipa45.js} +1 -1
  20. package/dist/frontend/assets/classDiagram-v2-d5a6b087-CiHMsbhj.js +2 -0
  21. package/dist/frontend/assets/{classDiagram-v2-f2320105-Dtywkpeg.js → classDiagram-v2-f2320105-1CqIxWOB.js} +2 -2
  22. package/dist/frontend/assets/clone-CMl85WSi.js +1 -0
  23. package/dist/frontend/assets/{createText-2e5e7dd3-CqY00v-4.js → createText-2e5e7dd3-D3kSz3YE.js} +1 -1
  24. package/dist/frontend/assets/{createText-d213de94-D59sBfqq.js → createText-d213de94-DvJeLlQX.js} +4 -4
  25. package/dist/frontend/assets/{cs-CZ-2BRQDIVT-CK09MAsg.js → cs-CZ-2BRQDIVT-BUcdPrAr.js} +1 -1
  26. package/dist/frontend/assets/{cytoscape-cose-bilkent-CKy_tuGZ.js → cytoscape-cose-bilkent-CKoSm_2z.js} +1 -1
  27. package/dist/frontend/assets/{da-DK-5WZEPLOC-V4hdLKuT.js → da-DK-5WZEPLOC-C1nkchuC.js} +1 -1
  28. package/dist/frontend/assets/{de-DE-XR44H4JA-Dw8qkP9g.js → de-DE-XR44H4JA-DO2_bO1X.js} +1 -1
  29. package/dist/frontend/assets/{edges-332bd1c7-D-u0KMZB.js → edges-332bd1c7-C5qM1sDU.js} +1 -1
  30. package/dist/frontend/assets/{edges-e0da2a9e-B3UFqLqY.js → edges-e0da2a9e-BRt7qomS.js} +1 -1
  31. package/dist/frontend/assets/{el-GR-BZB4AONW-BUdBQbYg.js → el-GR-BZB4AONW-CrjSdaU2.js} +1 -1
  32. package/dist/frontend/assets/{elk.bundled-BZA3Xcoo.js → elk.bundled-Dmec6Rq6.js} +1 -1
  33. package/dist/frontend/assets/{erDiagram-880f2ed8-CNxm7e1x.js → erDiagram-880f2ed8-BI7kP523.js} +4 -4
  34. package/dist/frontend/assets/{erDiagram-9861fffd-C2u_ziAM.js → erDiagram-9861fffd-DMyCDrgI.js} +1 -1
  35. package/dist/frontend/assets/{es-ES-U4NZUMDT-DS0FAZqX.js → es-ES-U4NZUMDT-rrdjPi-M.js} +1 -1
  36. package/dist/frontend/assets/{eu-ES-A7QVB2H4-D-D5uidc.js → eu-ES-A7QVB2H4-uYn3S3D5.js} +1 -1
  37. package/dist/frontend/assets/{fa-IR-HGAKTJCU-mAW_2-jg.js → fa-IR-HGAKTJCU-DWW_BVFR.js} +1 -1
  38. package/dist/frontend/assets/{fi-FI-Z5N7JZ37-B9mW6nxS.js → fi-FI-Z5N7JZ37-CMXxeZ4W.js} +1 -1
  39. package/dist/frontend/assets/{flowDb-7c981674-6JB2gd0I.js → flowDb-7c981674-Dsj6xMzr.js} +1 -1
  40. package/dist/frontend/assets/{flowDb-956e92f1-BbpkWRi7.js → flowDb-956e92f1-26g7kJju.js} +1 -1
  41. package/dist/frontend/assets/{flowDiagram-66a62f08-DrhrQuXc.js → flowDiagram-66a62f08-C9eQZtdf.js} +1 -1
  42. package/dist/frontend/assets/{flowDiagram-cbd28bf7-BmNY7bvJ.js → flowDiagram-cbd28bf7-D051xFrI.js} +3 -3
  43. package/dist/frontend/assets/flowDiagram-v2-96b9c2cf-DIa4RdMh.js +1 -0
  44. package/dist/frontend/assets/flowDiagram-v2-ffc7f31a-CnvFT8HV.js +1 -0
  45. package/dist/frontend/assets/{flowchart-elk-definition-36e2d292-4G1YiIlk.js → flowchart-elk-definition-36e2d292-C9fsvhV-.js} +2 -2
  46. package/dist/frontend/assets/{flowchart-elk-definition-4a651766-Cm94SrrQ.js → flowchart-elk-definition-4a651766-BkVNuJOw.js} +1 -1
  47. package/dist/frontend/assets/{fr-FR-RHASNOE6-BXnmUxTA.js → fr-FR-RHASNOE6-DIfK_rjW.js} +1 -1
  48. package/dist/frontend/assets/{ganttDiagram-04f9e578-X0BweAnG.js → ganttDiagram-04f9e578-CZeF2a4Y.js} +1 -1
  49. package/dist/frontend/assets/{ganttDiagram-c361ad54-D3vxZ5MQ.js → ganttDiagram-c361ad54-DbkIZ-wU.js} +1 -1
  50. package/dist/frontend/assets/{gitGraphDiagram-21fc4d3e-wznrpRWn.js → gitGraphDiagram-21fc4d3e-CLqlSEuE.js} +6 -6
  51. package/dist/frontend/assets/{gitGraphDiagram-72cf32ee-B9zCS3Pw.js → gitGraphDiagram-72cf32ee-Cvf9uYWB.js} +1 -1
  52. package/dist/frontend/assets/{gl-ES-HMX3MZ6V-CrUx-ab6.js → gl-ES-HMX3MZ6V-CCxCH2oK.js} +1 -1
  53. package/dist/frontend/assets/{graph-BQZ6SIVr.js → graph-MptL1QoF.js} +1 -1
  54. package/dist/frontend/assets/{graph-Cda8xSTx.js → graph-Mzuu2QFH.js} +1 -1
  55. package/dist/frontend/assets/{he-IL-6SHJWFNN-D33eaw6-.js → he-IL-6SHJWFNN-CJuJutJZ.js} +1 -1
  56. package/dist/frontend/assets/{hi-IN-IWLTKZ5I-DEnStF-g.js → hi-IN-IWLTKZ5I-BORPH6vU.js} +1 -1
  57. package/dist/frontend/assets/{hu-HU-A5ZG7DT2-BjH2w8Sn.js → hu-HU-A5ZG7DT2-Dr7UDbjo.js} +1 -1
  58. package/dist/frontend/assets/{id-ID-SAP4L64H-Bc6R-JEz.js → id-ID-SAP4L64H-D0Widkq7.js} +1 -1
  59. package/dist/frontend/assets/{index-3862675e-CpYfS3Db.js → index-3862675e-DVT5-vN2.js} +1 -1
  60. package/dist/frontend/assets/{index-6079d271-Y2bgyRpa.js → index-6079d271-R4KRnW5Z.js} +1 -1
  61. package/dist/frontend/assets/{index-D7eYnAQp.js → index-B45XzZiR.js} +4 -4
  62. package/dist/frontend/assets/index-Bd-8869C.js +349 -0
  63. package/dist/frontend/assets/{infoDiagram-4a4f5b27-Bm3Oq-Rq.js → infoDiagram-4a4f5b27-BvY1qS17.js} +3 -3
  64. package/dist/frontend/assets/{infoDiagram-f8f76790-oNVitBKM.js → infoDiagram-f8f76790-D60YvG33.js} +1 -1
  65. package/dist/frontend/assets/{it-IT-JPQ66NNP-BcxQABF2.js → it-IT-JPQ66NNP-C08Vu0BG.js} +1 -1
  66. package/dist/frontend/assets/{ja-JP-DBVTYXUO-D1zIM-nt.js → ja-JP-DBVTYXUO-Ciu7LaRi.js} +1 -1
  67. package/dist/frontend/assets/{journeyDiagram-29694f62-CamPk_3P.js → journeyDiagram-29694f62-DvrnJXsd.js} +5 -5
  68. package/dist/frontend/assets/{journeyDiagram-49397b02-D6w3tLtf.js → journeyDiagram-49397b02-Dy9LU86E.js} +1 -1
  69. package/dist/frontend/assets/{kaa-6HZHGXH3-CoILysVg.js → kaa-6HZHGXH3-GhGTIjpu.js} +1 -1
  70. package/dist/frontend/assets/{kab-KAB-ZGHBKWFO-B9ZbybBt.js → kab-KAB-ZGHBKWFO-B3q4BqYw.js} +1 -1
  71. package/dist/frontend/assets/{kk-KZ-P5N5QNE5-Dxi4GIQ7.js → kk-KZ-P5N5QNE5-GWoLZvco.js} +1 -1
  72. package/dist/frontend/assets/{km-KH-HSX4SM5Z-DaJ7EtO2.js → km-KH-HSX4SM5Z-CnAQJCYr.js} +1 -1
  73. package/dist/frontend/assets/{ko-KR-MTYHY66A-DG57Ah12.js → ko-KR-MTYHY66A-B2Rh9krp.js} +1 -1
  74. package/dist/frontend/assets/{ku-TR-6OUDTVRD-DnDf9E8a.js → ku-TR-6OUDTVRD-C27elmON.js} +1 -1
  75. package/dist/frontend/assets/{layout-Drr-66M9.js → layout-D1hl6oKi.js} +1 -1
  76. package/dist/frontend/assets/{layout-BsWfhUAF.js → layout-c-hOA8zE.js} +1 -1
  77. package/dist/frontend/assets/{line-DwQObOhP.js → line-DtMz1ssZ.js} +1 -1
  78. package/dist/frontend/assets/{linear-C36MjJps.js → linear-D-Y4WtO_.js} +1 -1
  79. package/dist/frontend/assets/{lt-LT-XHIRWOB4-D_zqS0yg.js → lt-LT-XHIRWOB4-B6jd693w.js} +1 -1
  80. package/dist/frontend/assets/{lv-LV-5QDEKY6T-owIsIh1b.js → lv-LV-5QDEKY6T-sXB-8i6R.js} +1 -1
  81. package/dist/frontend/assets/{mindmap-definition-ac74a2e8-Cf9JbrBJ.js → mindmap-definition-ac74a2e8-CawO9I_f.js} +6 -6
  82. package/dist/frontend/assets/{mindmap-definition-fc14e90a-BpsNCNCp.js → mindmap-definition-fc14e90a-CXMNA68v.js} +4 -4
  83. package/dist/frontend/assets/{mr-IN-CRQNXWMA-CS9XUj74.js → mr-IN-CRQNXWMA-BJ6QSiPi.js} +1 -1
  84. package/dist/frontend/assets/{my-MM-5M5IBNSE-BKB060k9.js → my-MM-5M5IBNSE-BMdOIRP5.js} +1 -1
  85. package/dist/frontend/assets/{nb-NO-T6EIAALU-CkmLUrvm.js → nb-NO-T6EIAALU-BVG6JUMN.js} +1 -1
  86. package/dist/frontend/assets/{nl-NL-IS3SIHDZ-DdiLyJoz.js → nl-NL-IS3SIHDZ-ZprCvTYR.js} +1 -1
  87. package/dist/frontend/assets/{nn-NO-6E72VCQL-Yevp6f_Y.js → nn-NO-6E72VCQL-CcljFAGy.js} +1 -1
  88. package/dist/frontend/assets/{oc-FR-POXYY2M6-D_M6GHup.js → oc-FR-POXYY2M6-zCuu6Ns2.js} +1 -1
  89. package/dist/frontend/assets/{pa-IN-N4M65BXN-1vuACN9n.js → pa-IN-N4M65BXN-D_iftL9v.js} +1 -1
  90. package/dist/frontend/assets/{pica-DDDx0iqx.js → pica-DsW4eP6T.js} +1 -1
  91. package/dist/frontend/assets/{pie-CFIpuQMO.js → pie-U_uHwWsL.js} +1 -1
  92. package/dist/frontend/assets/{pieDiagram-421022e6-DO7e_Qgw.js → pieDiagram-421022e6-naaI7HiE.js} +5 -5
  93. package/dist/frontend/assets/{pieDiagram-8a3498a8-BEoqChXo.js → pieDiagram-8a3498a8-m6nTf1O_.js} +1 -1
  94. package/dist/frontend/assets/{pl-PL-T2D74RX3-Cc6Q5nSh.js → pl-PL-T2D74RX3-CRQQfZUe.js} +1 -1
  95. package/dist/frontend/assets/{pt-BR-5N22H2LF-3eEiAax3.js → pt-BR-5N22H2LF-DLvfG7RR.js} +1 -1
  96. package/dist/frontend/assets/{pt-PT-UZXXM6DQ-CgnF0Le7.js → pt-PT-UZXXM6DQ-Chkg6-JC.js} +1 -1
  97. package/dist/frontend/assets/{quadrantDiagram-0957ecba-C1Eo-ZUY.js → quadrantDiagram-0957ecba-BJR82kAx.js} +3 -3
  98. package/dist/frontend/assets/{quadrantDiagram-120e2f19-Bdfsl_O7.js → quadrantDiagram-120e2f19-CsWgLp5e.js} +1 -1
  99. package/dist/frontend/assets/relay-BSVGqyIy.js +2 -0
  100. package/dist/frontend/assets/{requirementDiagram-23d650b8-DiOK6QW3.js → requirementDiagram-23d650b8-CHmg-ycX.js} +1 -1
  101. package/dist/frontend/assets/{requirementDiagram-deff3bca-BDJ-7T4h.js → requirementDiagram-deff3bca-LIsyxsZZ.js} +1 -1
  102. package/dist/frontend/assets/{ro-RO-JPDTUUEW-CbJ3IB7a.js → ro-RO-JPDTUUEW-B_a5A5-x.js} +1 -1
  103. package/dist/frontend/assets/{ru-RU-B4JR7IUQ-PQGmeGG4.js → ru-RU-B4JR7IUQ-CY5sI1Ru.js} +1 -1
  104. package/dist/frontend/assets/{sankeyDiagram-04a897e0-DV25bgN2.js → sankeyDiagram-04a897e0-DN5e16d0.js} +1 -1
  105. package/dist/frontend/assets/{sankeyDiagram-23345273-szSb_Sei.js → sankeyDiagram-23345273-BBjQCtHz.js} +1 -1
  106. package/dist/frontend/assets/{selectAll-DsrPvhqV.js → selectAll-Dcq-dC_E.js} +1 -1
  107. package/dist/frontend/assets/{sequenceDiagram-17ac3bff-Dg88bSlc.js → sequenceDiagram-17ac3bff-CIXyQiN6.js} +1 -1
  108. package/dist/frontend/assets/{sequenceDiagram-704730f1-DRIjLCxx.js → sequenceDiagram-704730f1-BmDwBhsF.js} +1 -1
  109. package/dist/frontend/assets/{si-LK-N5RQ5JYF-BtIIudm3.js → si-LK-N5RQ5JYF-DEPKL_1i.js} +1 -1
  110. package/dist/frontend/assets/{sk-SK-C5VTKIMK-CIwXticU.js → sk-SK-C5VTKIMK-XqrGDM2K.js} +1 -1
  111. package/dist/frontend/assets/{sl-SI-NN7IZMDC-CXEdg57y.js → sl-SI-NN7IZMDC-Dia3d1Yy.js} +1 -1
  112. package/dist/frontend/assets/{stateDiagram-587899a1-BwRwgRo6.js → stateDiagram-587899a1-CY1BCaUa.js} +1 -1
  113. package/dist/frontend/assets/{stateDiagram-9c5f0230-C8n96rER.js → stateDiagram-9c5f0230-gyjWQtSe.js} +1 -1
  114. package/dist/frontend/assets/{stateDiagram-v2-51a3dcff-B7e5E4J7.js → stateDiagram-v2-51a3dcff-CAIiXqRE.js} +1 -1
  115. package/dist/frontend/assets/{stateDiagram-v2-d93cdb3a-B18iZQLw.js → stateDiagram-v2-d93cdb3a-DvUpzRiQ.js} +1 -1
  116. package/dist/frontend/assets/{styles-2ab5d517-CfWubwio.js → styles-2ab5d517-BE3yBf4Z.js} +3 -3
  117. package/dist/frontend/assets/{styles-5f03d8d2-C-_n19AB.js → styles-5f03d8d2-CGBEZiW_.js} +3 -3
  118. package/dist/frontend/assets/{styles-6aaf32cf-Dh-DHkVP.js → styles-6aaf32cf-JdIhb4_Y.js} +1 -1
  119. package/dist/frontend/assets/{styles-9a916d00-Boy0hUEG.js → styles-9a916d00-DRmxoyEF.js} +1 -1
  120. package/dist/frontend/assets/{styles-c10674c1-BfxiK3Ns.js → styles-c10674c1-C3TEvIjw.js} +1 -1
  121. package/dist/frontend/assets/{styles-edf9a4b0-T7mKViRF.js → styles-edf9a4b0-B_FeyXdP.js} +1 -1
  122. package/dist/frontend/assets/subset-shared.chunk.js +9 -9
  123. package/dist/frontend/assets/subset-worker.chunk.js +1 -1
  124. package/dist/frontend/assets/{sv-SE-XGPEYMSR-dVrUAqld.js → sv-SE-XGPEYMSR-CBrvnOWh.js} +1 -1
  125. package/dist/frontend/assets/{svgDrawCommon-08f97a94-fsWk6SQc.js → svgDrawCommon-08f97a94-DI4ZG6xI.js} +1 -1
  126. package/dist/frontend/assets/{svgDrawCommon-3ba9043b-BJ8X3qS-.js → svgDrawCommon-3ba9043b-Dl5HsA0X.js} +1 -1
  127. package/dist/frontend/assets/{ta-IN-2NMHFXQM-CtVVZfIT.js → ta-IN-2NMHFXQM-DGYl9sGK.js} +1 -1
  128. package/dist/frontend/assets/{th-TH-HPSO5L25-Do90CyDN.js → th-TH-HPSO5L25-Bq3K3L0F.js} +1 -1
  129. package/dist/frontend/assets/{timeline-definition-7e6b55e7-D_iHA485.js → timeline-definition-7e6b55e7-DWL-fZtL.js} +3 -3
  130. package/dist/frontend/assets/{timeline-definition-85554ec2-nhT8QMsO.js → timeline-definition-85554ec2-C14kwDFd.js} +1 -1
  131. package/dist/frontend/assets/{tr-TR-DEFEU3FU-MfR-IQke.js → tr-TR-DEFEU3FU-CSwI35xw.js} +1 -1
  132. package/dist/frontend/assets/{uk-UA-QMV73CPH-CPet8B1O.js → uk-UA-QMV73CPH-Dxy7prmb.js} +1 -1
  133. package/dist/frontend/assets/{union-BgYwhB7T.js → union-DQ7m6Pel.js} +1 -1
  134. package/dist/frontend/assets/{vi-VN-M7AON7JQ-3HD06T_8.js → vi-VN-M7AON7JQ-BNyYTgjT.js} +1 -1
  135. package/dist/frontend/assets/{xychartDiagram-b6496bcd-D5vSaFT2.js → xychartDiagram-b6496bcd-DWKYL0ZD.js} +4 -4
  136. package/dist/frontend/assets/{xychartDiagram-e933f94c-DLIHXsUi.js → xychartDiagram-e933f94c-Bw4brW9l.js} +1 -1
  137. package/dist/frontend/assets/youtubeResume-DPG81gOQ.js +1 -0
  138. package/dist/frontend/assets/{zh-CN-LNUGB5OW-t2RyWPw2.js → zh-CN-LNUGB5OW-BNhZCPEt.js} +1 -1
  139. package/dist/frontend/assets/{zh-HK-E62DVLB3-Bj22hc7e.js → zh-HK-E62DVLB3-D_rDALSq.js} +1 -1
  140. package/dist/frontend/assets/{zh-TW-RAJ6MFWO-CBRhqhU1.js → zh-TW-RAJ6MFWO-rUlbmCTA.js} +1 -1
  141. package/dist/frontend/assets/zipObject-Db5-6vIz.js +1 -0
  142. package/dist/frontend/index.html +172 -236
  143. package/dist/{index.d.ts → mcp.d.ts} +1 -1
  144. package/dist/mcp.d.ts.map +1 -0
  145. package/dist/mcp.js +1183 -0
  146. package/dist/mcp.js.map +1 -0
  147. package/package.json +19 -34
  148. package/skills/excalidraw-skill/SKILL.md +42 -55
  149. package/skills/excalidraw-skill/references/cheatsheet.md +23 -56
  150. package/skills/excalidraw-skill/scripts/clear-canvas.cjs +9 -32
  151. package/skills/excalidraw-skill/scripts/create-element.cjs +18 -61
  152. package/skills/excalidraw-skill/scripts/delete-element.cjs +12 -42
  153. package/skills/excalidraw-skill/scripts/export-elements.cjs +17 -44
  154. package/skills/excalidraw-skill/scripts/gh-helper.cjs +58 -0
  155. package/skills/excalidraw-skill/scripts/healthcheck.cjs +8 -29
  156. package/skills/excalidraw-skill/scripts/import-elements.cjs +20 -70
  157. package/skills/excalidraw-skill/scripts/update-element.cjs +19 -63
  158. package/tsconfig.json +3 -2
  159. package/vite.config.js +3 -10
  160. package/dist/frontend/assets/arc-Cc3ncJ1n.js +0 -1
  161. package/dist/frontend/assets/channel-BQSIb3i3.js +0 -1
  162. package/dist/frontend/assets/classDiagram-v2-d5a6b087-BgB8AG2e.js +0 -2
  163. package/dist/frontend/assets/clone-BoZziNL9.js +0 -1
  164. package/dist/frontend/assets/flowDiagram-v2-96b9c2cf-Z3H2d3Wj.js +0 -1
  165. package/dist/frontend/assets/flowDiagram-v2-ffc7f31a-CIQOMghC.js +0 -1
  166. package/dist/frontend/assets/index-DIz4WrSB.js +0 -349
  167. package/dist/frontend/assets/zipObject-DMfHW2o8.js +0 -1
  168. package/dist/index.d.ts.map +0 -1
  169. package/dist/index.js +0 -2279
  170. package/dist/index.js.map +0 -1
  171. package/dist/remote.d.ts +0 -5
  172. package/dist/remote.d.ts.map +0 -1
  173. package/dist/remote.js +0 -129
  174. package/dist/remote.js.map +0 -1
  175. package/dist/server.d.ts +0 -4
  176. package/dist/server.d.ts.map +0 -1
  177. package/dist/server.js +0 -1208
  178. package/dist/server.js.map +0 -1
  179. package/dist/target.d.ts +0 -38
  180. package/dist/target.d.ts.map +0 -1
  181. package/dist/target.js +0 -225
  182. package/dist/target.js.map +0 -1
  183. package/dist/types.d.ts +0 -228
  184. package/dist/types.d.ts.map +0 -1
  185. package/dist/types.js +0 -45
  186. package/dist/types.js.map +0 -1
  187. package/dist/utils/auth.d.ts +0 -14
  188. package/dist/utils/auth.d.ts.map +0 -1
  189. package/dist/utils/auth.js +0 -67
  190. package/dist/utils/auth.js.map +0 -1
  191. package/dist/utils/github.d.ts +0 -24
  192. package/dist/utils/github.d.ts.map +0 -1
  193. package/dist/utils/github.js +0 -132
  194. package/dist/utils/github.js.map +0 -1
  195. package/dist/utils/logger.d.ts +0 -4
  196. package/dist/utils/logger.d.ts.map +0 -1
  197. package/dist/utils/logger.js +0 -25
  198. package/dist/utils/logger.js.map +0 -1
  199. package/dist/utils/r2store.d.ts +0 -12
  200. package/dist/utils/r2store.d.ts.map +0 -1
  201. package/dist/utils/r2store.js +0 -75
  202. package/dist/utils/r2store.js.map +0 -1
  203. package/frontend/drop.png +0 -0
  204. package/frontend/index.html +0 -339
  205. package/frontend/src/App.tsx +0 -1091
  206. package/frontend/src/main.tsx +0 -15
  207. package/frontend/src/utils/ghSync.ts +0 -234
  208. package/frontend/src/utils/mermaidConverter.ts +0 -43
  209. package/frontend/src/utils/webmcp.ts +0 -265
  210. package/scripts/check-local-bind.mjs +0 -164
  211. package/scripts/postinstall.mjs +0 -23
  212. package/scripts/publish-pages.sh +0 -39
  213. package/scripts/seed-r2.mjs +0 -9
  214. package/src/cli.ts +0 -528
  215. package/src/index.ts +0 -2538
  216. package/src/remote.ts +0 -92
  217. package/src/server.ts +0 -1349
  218. package/src/target.ts +0 -198
  219. package/src/types.ts +0 -336
  220. package/src/utils/auth.ts +0 -61
  221. package/src/utils/github.ts +0 -121
  222. package/src/utils/logger.ts +0 -35
  223. package/src/utils/r2store.ts +0 -70
package/README.md CHANGED
@@ -38,10 +38,10 @@ Keywords: Excalidraw agent skill, Excalidraw MCP server, AI diagramming, Claude
38
38
 
39
39
  ## What It Is
40
40
 
41
- This repo contains two separate processes:
41
+ Remote-only: GitHub is the canvas. No local server, no ports.
42
42
 
43
- - Canvas server: web UI + REST API + WebSocket updates (default `http://127.0.0.1:3000`)
44
- - MCP server: exposes MCP tools over stdio; syncs to the canvas via `EXPRESS_SERVER_URL`
43
+ - Viewer: static Excalidraw app on GitHub Pages (public repos) or Cloudflare Pages (private repos), reads `canvas.excalidraw` from the `excalidrop` branch
44
+ - MCP server: remote-only stdio (`npx -y excalidrop@latest mcp --repo owner/repo`); draws via GitHub Contents API, screenshots via shared relay when a viewer tab is open
45
45
 
46
46
  ## How We Differ from the Official Excalidraw MCP
47
47
 
@@ -70,60 +70,57 @@ Excalidraw now has an [official MCP](https://github.com/excalidraw/excalidraw-mc
70
70
  ## Quick Start
71
71
 
72
72
  ```bash
73
- npm i -D excalidrop
74
- npx excalidrop setup # gh auth check → publishes viewer to gh-pages → app-install link → verifies live
73
+ npx excalidrop # interactive TUI: repo → auth → host → editor
74
+ # or one-shot:
75
+ npx excalidrop setup owner/repo [--target pages|cloudflare]
75
76
  ```
76
77
 
77
78
  `setup` walks you through the whole flow on **any repo you own or can access**:
78
79
 
79
- 1. **Checks `gh auth`** (log in with `gh auth login` first — 2FA via GitHub).
80
- 2. **Publishes an empty canvas** to your repo's `gh-pages` branch and enables Pages.
81
- 3. **Prints the one-time app-install link** (`github.com/apps/<app>/installations/new`) — installing the GitHub App on the repo is what grants canvas access. Repo access == canvas access: collaborators with write can edit, readers get view-only, everyone else gets a login wall.
82
- 4. **Verifies** the viewer + scene are actually serving.
83
- 5. Prints your canvas URL. In your agent, run `switch_remote { target: "<that URL>" }` once — it's remembered per-project in `.excalidrop.json`, so subsequent sessions skip it and draw directly. Commits land on GitHub; the viewer updates itself. Human edits in the browser autosync every 10s with a force-save on close.
80
+ 1. **Checks `gh auth`** (log in with `gh auth login` first — 2FA via GitHub, or `npx excalidrop login` device flow).
81
+ 2. **Picks a host** (recommended from visibility: public→GitHub Pages, private→Cloudflare Pages; override with `--target`). Publishes the viewer once — later saves never redeploy.
82
+ 3. Repo access == canvas access: collaborators with write can edit, readers get view-only, everyone else gets a login wall.
83
+ 4. Writes `.mcp.json` + remembers the repo in `.excalidrop.json`, so the MCP preloads it and subsequent sessions draw directly. Commits land on GitHub; the viewer updates itself.
84
84
 
85
- Prefer local-only? `npx excalidrop init` (free port + agent install prompt) then `npx excalidrop up`.
86
-
87
- Each project gets its own port (scanned free from 3030), so several checkouts run concurrently. Agent config needs no hardcoded port — same pattern as `chrome-devtools-mcp`:
85
+ No install needed — editors run the MCP straight from npm:
88
86
 
89
87
  ```bash
90
- claude mcp add excalidrop --scope project -- npx -y excalidrop mcp
91
- codex mcp add excalidrop -- npx -y excalidrop mcp
88
+ claude mcp add excalidrop --scope project -- npx -y excalidrop@latest mcp --repo owner/repo
89
+ codex mcp add excalidrop -- npx -y excalidrop@latest mcp --repo owner/repo
92
90
  ```
93
91
 
94
- ## Quick Start (Local)
92
+ Screenshots / viewport / mermaid need one viewer tab open (shared relay at `excalidrop.wtf403.workers.dev`); drawing works headless.
95
93
 
96
- Prereqs: Node >= 18, npm
94
+ ### Migrating public↔private
97
95
 
98
- ```bash
99
- npm ci
100
- npm run build
101
- ```
96
+ Flipping repo visibility doesn't move canvas data (it stays on the `excalidrop` branch) — only the viewer host changes. GitHub Pages serves private repos only on paid plans, so private repos use Cloudflare Pages. The TUI detects the flip (stored target in `.excalidrop.json` vs current visibility) and pre-selects the right host.
102
97
 
103
- Terminal 1: start the canvas
104
- ```bash
105
- PORT=3000 npm run canvas
106
- ```
98
+ **Public → private:**
107
99
 
108
- > **Security note:** The server defaults to binding on `127.0.0.1` only. If you need to expose it on a network interface (e.g. Docker, remote access), set `HOST=0.0.0.0` — but ensure you have network-level access controls in place, as the API has no built-in authentication.
100
+ 1. `gh repo edit owner/repo --visibility private` (or repo Settings).
101
+ 2. `npx excalidrop setup owner/repo --target cloudflare` (needs `wrangler login` once). New URL: `https://excalidrop-owner-repo.pages.dev/?repo=owner/repo`.
102
+ 3. Anonymous viewing ends: private scenes need a token, so every viewer must log in and the Excalidrop app must be installed on the repo.
103
+ 4. Add the new `https://<project>.pages.dev/` callback URL in your GitHub App / OAuth App settings (exact match).
104
+ 5. The old `owner.github.io/repo` URL 404s — optionally disable Pages (Settings → Pages) to avoid confusion.
109
105
 
110
- Open `http://127.0.0.1:3000`.
106
+ **Private → public:**
111
107
 
112
- Terminal 2: run the MCP server (stdio)
113
- ```bash
114
- EXPRESS_SERVER_URL=http://127.0.0.1:3000 node dist/index.js
115
- ```
108
+ 1. `gh repo edit owner/repo --visibility public`.
109
+ 2. Either stay on Cloudflare (keeps working; anonymous reads start working once public) or move back to zero-config: `npx excalidrop setup owner/repo --target pages`.
110
+ 3. If you move back, optionally delete the Cloudflare project (`npx -y wrangler@4 pages project delete <project>`) so two live URLs don't drift.
116
111
 
117
112
  ## Configure MCP Clients
118
113
 
119
- The MCP server runs over stdio and can be configured with any MCP-compatible client. The recommended path is `npm i -D excalidrop && npx excalidrop init` (per-project canvas + generated `.mcp.json`), which replaces the manual setups below.
114
+ The MCP server runs over stdio (remote-only) and can be configured with any MCP-compatible client. The recommended path is `npx excalidrop setup owner/repo` (writes `.mcp.json` + auto-installs), which replaces the manual setups below.
120
115
 
121
116
  ### Environment Variables
122
117
 
123
118
  | Variable | Description | Default |
124
119
  |----------|-------------|---------|
125
- | `EXPRESS_SERVER_URL` | URL of the canvas server | `http://127.0.0.1:3000` |
126
- | `ENABLE_CANVAS_SYNC` | Enable real-time canvas sync | `true` |
120
+ | `EXCALIDROP_REPO` | Repo canvas (`owner/repo`), alternative to `--repo=` | git remote / `.excalidrop.json` |
121
+ | `GITHUB_TOKEN` | GitHub token (else `gh auth token` / stored device token) | — |
122
+ | `EXCALIDROP_RELAY_URL` | Screenshot/viewport relay | `https://excalidrop.wtf403.workers.dev` |
123
+ | `EXCALIDROP_NO_RELAY` | Set `1` to use GitHub command-queue instead of relay | unset |
127
124
 
128
125
  ---
129
126
 
@@ -134,17 +131,12 @@ Config location:
134
131
  - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
135
132
  - Linux: `~/.config/Claude/claude_desktop_config.json`
136
133
 
137
- **Local (node)**
138
134
  ```json
139
135
  {
140
136
  "mcpServers": {
141
- "excalidraw": {
142
- "command": "node",
143
- "args": ["/absolute/path/to/mcp_excalidraw/dist/index.js"],
144
- "env": {
145
- "EXPRESS_SERVER_URL": "http://127.0.0.1:3000",
146
- "ENABLE_CANVAS_SYNC": "true"
147
- }
137
+ "excalidrop": {
138
+ "command": "npx",
139
+ "args": ["-y", "excalidrop@latest", "mcp", "--repo", "owner/repo"]
148
140
  }
149
141
  }
150
142
  }
@@ -154,28 +146,17 @@ Config location:
154
146
 
155
147
  ### Claude Code
156
148
 
157
- Use the `claude mcp add` command to register the MCP server.
158
-
159
- **Local (node)** - User-level (available across all projects):
160
149
  ```bash
161
- claude mcp add excalidraw --scope user \
162
- -e EXPRESS_SERVER_URL=http://127.0.0.1:3000 \
163
- -e ENABLE_CANVAS_SYNC=true \
164
- -- node /absolute/path/to/mcp_excalidraw/dist/index.js
165
- ```
166
-
167
- **Local (node)** - Project-level (shared via `.mcp.json`):
168
- ```bash
169
- claude mcp add excalidraw --scope project \
170
- -e EXPRESS_SERVER_URL=http://127.0.0.1:3000 \
171
- -e ENABLE_CANVAS_SYNC=true \
172
- -- node /absolute/path/to/mcp_excalidraw/dist/index.js
150
+ # Project-level (shared via .mcp.json — written automatically by setup):
151
+ claude mcp add excalidrop --scope project -- npx -y excalidrop@latest mcp --repo owner/repo
152
+ # User-level (all projects):
153
+ claude mcp add excalidrop --scope user -- npx -y excalidrop@latest mcp --repo owner/repo
173
154
  ```
174
155
 
175
156
  **Manage servers:**
176
157
  ```bash
177
- claude mcp list # List configured servers
178
- claude mcp remove excalidraw # Remove a server
158
+ claude mcp list # List configured servers
159
+ claude mcp remove excalidrop # Remove a server
179
160
  ```
180
161
 
181
162
  ---
@@ -184,17 +165,12 @@ claude mcp remove excalidraw # Remove a server
184
165
 
185
166
  Config location: `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` for global config)
186
167
 
187
- **Local (node)**
188
168
  ```json
189
169
  {
190
170
  "mcpServers": {
191
- "excalidraw": {
192
- "command": "node",
193
- "args": ["/absolute/path/to/mcp_excalidraw/dist/index.js"],
194
- "env": {
195
- "EXPRESS_SERVER_URL": "http://127.0.0.1:3000",
196
- "ENABLE_CANVAS_SYNC": "true"
197
- }
171
+ "excalidrop": {
172
+ "command": "npx",
173
+ "args": ["-y", "excalidrop@latest", "mcp", "--repo", "owner/repo"]
198
174
  }
199
175
  }
200
176
  }
@@ -204,20 +180,14 @@ Config location: `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json
204
180
 
205
181
  ### Codex CLI
206
182
 
207
- Use the `codex mcp add` command to register the MCP server.
208
-
209
- **Local (node)**
210
183
  ```bash
211
- codex mcp add excalidraw \
212
- --env EXPRESS_SERVER_URL=http://127.0.0.1:3000 \
213
- --env ENABLE_CANVAS_SYNC=true \
214
- -- node /absolute/path/to/mcp_excalidraw/dist/index.js
184
+ codex mcp add excalidrop -- npx -y excalidrop@latest mcp --repo owner/repo
215
185
  ```
216
186
 
217
187
  **Manage servers:**
218
188
  ```bash
219
189
  codex mcp list # List configured servers
220
- codex mcp remove excalidraw # Remove a server
190
+ codex mcp remove excalidrop # Remove a server
221
191
  ```
222
192
 
223
193
  ---
@@ -226,19 +196,14 @@ codex mcp remove excalidraw # Remove a server
226
196
 
227
197
  Config location: `~/.config/opencode/opencode.json` or project-level `opencode.json`
228
198
 
229
- **Local (node)**
230
199
  ```json
231
200
  {
232
201
  "$schema": "https://opencode.ai/config.json",
233
202
  "mcp": {
234
- "excalidraw": {
203
+ "excalidrop": {
235
204
  "type": "local",
236
- "command": ["node", "/absolute/path/to/mcp_excalidraw/dist/index.js"],
237
- "enabled": true,
238
- "environment": {
239
- "EXPRESS_SERVER_URL": "http://127.0.0.1:3000",
240
- "ENABLE_CANVAS_SYNC": "true"
241
- }
205
+ "command": ["npx", "-y", "excalidrop@latest", "mcp", "--repo", "owner/repo"],
206
+ "enabled": true
242
207
  }
243
208
  }
244
209
  }
@@ -250,17 +215,12 @@ Config location: `~/.config/opencode/opencode.json` or project-level `opencode.j
250
215
 
251
216
  Config location: `~/.gemini/antigravity/mcp_config.json`
252
217
 
253
- **Local (node)**
254
218
  ```json
255
219
  {
256
220
  "mcpServers": {
257
- "excalidraw": {
258
- "command": "node",
259
- "args": ["/absolute/path/to/mcp_excalidraw/dist/index.js"],
260
- "env": {
261
- "EXPRESS_SERVER_URL": "http://127.0.0.1:3000",
262
- "ENABLE_CANVAS_SYNC": "true"
263
- }
221
+ "excalidrop": {
222
+ "command": "npx",
223
+ "args": ["-y", "excalidrop@latest", "mcp", "--repo", "owner/repo"]
264
224
  }
265
225
  }
266
226
  }
@@ -270,9 +230,9 @@ Config location: `~/.gemini/antigravity/mcp_config.json`
270
230
 
271
231
  ### Notes
272
232
 
273
- - **Canvas server**: Must be running before the MCP server connects. Start it with `npx excalidrop up`.
274
- - **Absolute paths**: When using local node setup, replace `/absolute/path/to/mcp_excalidraw` with the actual path where you cloned and built the repo.
275
- - **In-memory storage**: The canvas server stores elements in memory. Restarting the server will clear all elements. Use the export/import scripts if you need persistence.
233
+ - **No install, no local server**: replace `owner/repo` with your canvas repo. Auth via `GITHUB_TOKEN`, `gh auth`, or `npx excalidrop login`.
234
+ - **Scene storage**: `canvas.excalidraw` on the repo's `excalidrop` branch (+ `snapshots/*.json`). Nothing lives in memory to lose.
235
+ - **Screenshots** (`get_canvas_screenshot`, `export_to_image`, `set_viewport`) need one viewer tab open (relay); everything else works headless.
276
236
 
277
237
  ## Agent Skill (Optional)
278
238
 
@@ -313,12 +273,12 @@ To update an existing installation, remove the old folder first then re-copy.
313
273
 
314
274
  ### Use The Skill Scripts
315
275
 
316
- All scripts respect `EXPRESS_SERVER_URL` (default `http://127.0.0.1:3000`) or accept `--url`.
276
+ Skill scripts talk to the remote canvas via `gh` auth (no local server):
317
277
 
318
278
  ```bash
319
- EXPRESS_SERVER_URL=http://127.0.0.1:3000 node skills/excalidraw-skill/scripts/healthcheck.cjs
320
- EXPRESS_SERVER_URL=http://127.0.0.1:3000 node skills/excalidraw-skill/scripts/export-elements.cjs --out diagram.elements.json
321
- EXPRESS_SERVER_URL=http://127.0.0.1:3000 node skills/excalidraw-skill/scripts/import-elements.cjs --in diagram.elements.json --mode batch
279
+ node skills/excalidraw-skill/scripts/healthcheck.cjs --repo owner/repo
280
+ node skills/excalidraw-skill/scripts/export-elements.cjs --repo owner/repo --out diagram.elements.json
281
+ node skills/excalidraw-skill/scripts/import-elements.cjs --repo owner/repo --in diagram.elements.json --mode batch
322
282
  ```
323
283
 
324
284
  ### When The Skill Is Useful
@@ -330,7 +290,7 @@ EXPRESS_SERVER_URL=http://127.0.0.1:3000 node skills/excalidraw-skill/scripts/im
330
290
 
331
291
  See `skills/excalidraw-skill/SKILL.md` and `skills/excalidraw-skill/references/cheatsheet.md`.
332
292
 
333
- ## MCP Tools (26 Total)
293
+ ## MCP Tools (31 Total, remote-only)
334
294
 
335
295
  | Category | Tools |
336
296
  |---|---|
@@ -347,51 +307,36 @@ Full schemas are discoverable via `tools/list` or in `skills/excalidraw-skill/re
347
307
 
348
308
  ## Testing
349
309
 
350
- ### Canvas Smoke Test (HTTP)
310
+ ### Status
351
311
 
352
312
  ```bash
353
- curl http://127.0.0.1:3000/health
354
- ```
355
-
356
- ### Local Bind Regression Test
357
-
358
- ```bash
359
- npm run test:bind
313
+ npx excalidrop status # repo + auth + scene element count
360
314
  ```
361
315
 
362
316
  ### MCP Smoke Test (MCP Inspector)
363
317
 
364
318
  List tools:
365
319
  ```bash
366
- npx @modelcontextprotocol/inspector --cli \
367
- -e EXPRESS_SERVER_URL=http://127.0.0.1:3000 \
368
- -e ENABLE_CANVAS_SYNC=true -- \
369
- node dist/index.js --method tools/list
320
+ npx @modelcontextprotocol/inspector --cli -- node dist/mcp.js --repo owner/repo --method tools/list
370
321
  ```
371
322
 
372
- Create a rectangle:
323
+ Create a rectangle (commits to the repo's `excalidrop` branch):
373
324
  ```bash
374
- npx @modelcontextprotocol/inspector --cli \
375
- -e EXPRESS_SERVER_URL=http://127.0.0.1:3000 \
376
- -e ENABLE_CANVAS_SYNC=true -- \
377
- node dist/index.js --method tools/call --tool-name create_element \
325
+ npx @modelcontextprotocol/inspector --cli -- node dist/mcp.js --repo owner/repo \
326
+ --method tools/call --tool-name create_element \
378
327
  --tool-arg type=rectangle --tool-arg x=100 --tool-arg y=100 \
379
328
  --tool-arg width=300 --tool-arg height=200
380
329
  ```
381
330
 
382
- ### Frontend Screenshots (agent-browser)
331
+ ### Viewer screenshots
383
332
 
384
- If you use `agent-browser` for UI checks:
385
- ```bash
386
- agent-browser install
387
- agent-browser open http://127.0.0.1:3000
388
- agent-browser wait --load networkidle
389
- agent-browser screenshot /tmp/canvas.png
390
- ```
333
+ Open the canvas URL once, then call `get_canvas_screenshot` — it renders via the shared relay (`EXCALIDROP_RELAY_URL`, `--no-relay` falls back to the GitHub command queue).
391
334
 
392
335
  ## Troubleshooting
393
336
 
394
- - Canvas not updating: confirm `EXPRESS_SERVER_URL` points at the running canvas server.
337
+ - `No repo selected`: pass `--repo=owner/repo`, set `EXCALIDROP_REPO`, or run `npx excalidrop setup owner/repo`.
338
+ - `No GitHub token`: run `gh auth login` or `npx excalidrop login`.
339
+ - Screenshot `503 no viewer connected`: open the canvas URL in a browser first.
395
340
  - Updates/deletes fail after batch creation: ensure you are on a build that includes the batch id preservation fix (merged via PR #34).
396
341
 
397
342
  ## Known Issues / TODO
package/dist/cli.d.ts CHANGED
@@ -1,3 +1,9 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ /** Accept owner/repo, a GitHub URL, or git@ SSH — always returns owner/repo or ''. */
3
+ export declare function normalizeRepoSlug(input: string): string;
4
+ export type EditorStatus = {
5
+ status: 'current' | 'stale' | 'missing';
6
+ repo: string | null;
7
+ where: string;
8
+ };
3
9
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../cli.ts"],"names":[],"mappings":";AAiOA,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASvD;AAuHD,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}