@marimo-team/islands 0.16.5 → 0.17.0

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 (549) hide show
  1. package/dist/{ConnectedDataExplorerComponent-D96i9G-X.js → ConnectedDataExplorerComponent-DJEUH6Bb.js} +78 -100
  2. package/dist/{_baseIsEqual-oN7pRNcM.js → _baseIsEqual-CN4oFUZ4.js} +20 -20
  3. package/dist/{_basePickBy-CYvzhRjy.js → _basePickBy-CzSvE_-f.js} +3 -3
  4. package/dist/{_baseProperty-DGUdIBuu.js → _baseProperty-DbbUiyUD.js} +5 -5
  5. package/dist/{_baseUniq-B5gfSl8S.js → _baseUniq-DwoC-LVO.js} +4 -4
  6. package/dist/any-language-editor-CEXn1vFs.js +156 -0
  7. package/dist/apl-DuVfHsPc.js +4 -0
  8. package/dist/architecture-O4VJ6CD3-lp-opOaL.js +21 -0
  9. package/dist/{architectureDiagram-W76B3OCA-DkEhipkW.js → architectureDiagram-W76B3OCA-CoBORy6u.js} +34 -34
  10. package/dist/asciiarmor-qIVWsi4F.js +4 -0
  11. package/dist/asn1-BjPqARr7.js +4 -0
  12. package/dist/assets/__vite-browser-external-lX-sn9m2.js +1 -0
  13. package/dist/assets/worker-vPn7gxWj.js +54 -0
  14. package/dist/{blockDiagram-QIGZ2CNN-DZOqLMYa.js → blockDiagram-QIGZ2CNN-0yzoLIar.js} +75 -86
  15. package/dist/brainfuck-DPGTVfkE.js +4 -0
  16. package/dist/{button-CEcjneWG.js → button-DcnBVpVa.js} +11 -14
  17. package/dist/{c4Diagram-FPNF74CW-DVaR7c9q.js → c4Diagram-FPNF74CW-CKsIA_DD.js} +27 -51
  18. package/dist/{channel-Uh0KpgGW.js → channel-3LVvQZcD.js} +1 -1
  19. package/dist/{check-BK9zDfQk.js → check-D7ifz5op.js} +1 -1
  20. package/dist/{chunk-3AY6CYHV-Dk2R2-S1.js → chunk-3AY6CYHV-B2C-aVc3.js} +35 -35
  21. package/dist/{chunk-4BX2VUAB-CqO6zUIz.js → chunk-4BX2VUAB-DEd4VI9L.js} +1 -1
  22. package/dist/{chunk-4KMFLZZN-CloTfTwP.js → chunk-4KMFLZZN-DnvP3O4K.js} +216 -325
  23. package/dist/{chunk-55IACEB6-I0rmqTua.js → chunk-55IACEB6-BcCzwOOl.js} +1 -1
  24. package/dist/{chunk-6OXUPJBA-BuROSTmo.js → chunk-6OXUPJBA-eNAAfJ3Q.js} +7 -7
  25. package/dist/{chunk-7GE3RBXV-B1-tsIPP.js → chunk-7GE3RBXV-CSAeQvLz.js} +1 -1
  26. package/dist/{chunk-ABZYJK2D-CLlso8tj.js → chunk-ABZYJK2D-CZcb_1iM.js} +16 -20
  27. package/dist/{chunk-BN7GFLIU-Db2-FjLn.js → chunk-BN7GFLIU-pBc5O5Rh.js} +1 -1
  28. package/dist/{chunk-CVBHYZKI-BONeiloK.js → chunk-CVBHYZKI-CivHZg9P.js} +3 -3
  29. package/dist/{chunk-CXMOBAN2-U9GJSP1d.js → chunk-CXMOBAN2-Dd0E6qb0.js} +46 -54
  30. package/dist/chunk-EXTU4WIE-GQ2ZWfJo.js +10 -0
  31. package/dist/{chunk-FMBD7UC4-DyV3BR_I.js → chunk-FMBD7UC4-C6YcisV6.js} +1 -1
  32. package/dist/{chunk-JA3XYJ7Z-C9A1076P.js → chunk-JA3XYJ7Z-DYeQaT57.js} +21 -25
  33. package/dist/{chunk-JEIROHC2-BGnFkSVq.js → chunk-JEIROHC2-B-EZMP4V.js} +1 -1
  34. package/dist/{chunk-K7UQS3LO-033LOsjK.js → chunk-K7UQS3LO-DENzlS-M.js} +7 -7
  35. package/dist/{chunk-KMC2YHZD-DT4Sq4Ld.js → chunk-KMC2YHZD-SckhHdEh.js} +1 -1
  36. package/dist/{chunk-QN33PNHL-gs44MZla.js → chunk-QN33PNHL-Cjq5b604.js} +2 -2
  37. package/dist/{chunk-QYVHNE3D-B8BO1AnT.js → chunk-QYVHNE3D-CNUuivie.js} +3 -4
  38. package/dist/{chunk-QZHKN3VN-CeN_GkU6.js → chunk-QZHKN3VN-DugEU_bA.js} +1 -1
  39. package/dist/chunk-S3R3BYOJ-itCT6Vif.js +380 -0
  40. package/dist/{chunk-T44TD3VJ-BwzD6YE0.js → chunk-T44TD3VJ-BLdfTX8J.js} +1 -1
  41. package/dist/{chunk-TVAH2DTR-Bi6jpQJQ.js → chunk-TVAH2DTR-BOnwF9d8.js} +7 -8
  42. package/dist/{chunk-TZMSLE5B-D8klz2H_.js → chunk-TZMSLE5B-DGs66AlL.js} +4 -5
  43. package/dist/{chunk-WFRQ32O7-CzSwSlN0.js → chunk-WFRQ32O7-CPsipkmJ.js} +1 -1
  44. package/dist/{chunk-WFWHJNB7-DN_cavM6.js → chunk-WFWHJNB7-Cmed18Pk.js} +1 -1
  45. package/dist/{chunk-XRWGC2XP-Bb5eGNM2.js → chunk-XRWGC2XP-DH5GDaY8.js} +1 -1
  46. package/dist/{chunk-ZPAFE4SF-S5UYNb0V.js → chunk-ZPAFE4SF-DPDwaqZm.js} +22 -22
  47. package/dist/classDiagram-KNZD7YFC-azuS_99k.js +39 -0
  48. package/dist/classDiagram-v2-RKCZMP56-CQpyQQOR.js +39 -0
  49. package/dist/{click-outside-container-DE4e7p1p.js → click-outside-container-CL_FkgGY.js} +7 -12
  50. package/dist/{clike-CxAz4p9E.js → clike-DYfRWWXk.js} +1 -1
  51. package/dist/{clike-Cg_DBrJ0.js → clike-bzZTreP4.js} +1 -1
  52. package/dist/clojure-ATksAecl.js +4 -0
  53. package/dist/{clone-Dk4FkKH0.js → clone-Msbhmn2a.js} +1 -1
  54. package/dist/cmake-CWylaz2C.js +4 -0
  55. package/dist/cobol-BiLLCZIQ.js +4 -0
  56. package/dist/coffeescript-Ca4jipi8.js +4 -0
  57. package/dist/commonlisp-BwFjyEC7.js +4 -0
  58. package/dist/{constants-Cjd_3kwd.js → constants-BCOEQoEQ.js} +3 -3
  59. package/dist/{copy-C5RFg7ok.js → copy-BkZ8PkBM.js} +6 -2
  60. package/dist/{cose-bilkent-S5V4N54A-B3iOTGu5.js → cose-bilkent-S5V4N54A-BZnbwyVD.js} +20 -20
  61. package/dist/crystal-BhUsQHbh.js +4 -0
  62. package/dist/css-Cf4wlIyV.js +5 -0
  63. package/dist/cypher-Dj8Hzgxa.js +4 -0
  64. package/dist/{cytoscape.esm-DTDV0Nbj.js → cytoscape.esm-BTpRoPd2.js} +586 -661
  65. package/dist/d-DZI7tbTy.js +4 -0
  66. package/dist/{dagre-5GWH7T2D-KM4Z11yT.js → dagre-5GWH7T2D-BGaiSZZO.js} +32 -37
  67. package/dist/{dagre-B0u1urxE.js → dagre-pyfDIOWJ.js} +57 -76
  68. package/dist/data-grid-overlay-editor-867aBz0Y.js +133 -0
  69. package/dist/{diagram-N5W7TBWH-CtO7az4G.js → diagram-N5W7TBWH-CzLE0jZB.js} +35 -51
  70. package/dist/diagram-QEK2KX5R-AGS60xEZ.js +245 -0
  71. package/dist/{diagram-S2PKOQOG-CiXElLNQ.js → diagram-S2PKOQOG-BxRoG6yW.js} +28 -28
  72. package/dist/diff-WQISUHG5.js +4 -0
  73. package/dist/{dist-CdE2C2In.js → dist-2Ne-33Xy.js} +15 -20
  74. package/dist/{dist-DKFaZRVk.js → dist-B0YD1aXi.js} +2 -2
  75. package/dist/{dist-DBhzmFyH.js → dist-B1Dv8Sdk.js} +3 -3
  76. package/dist/{dist-CGIZPq3J.js → dist-BFkr6kAQ.js} +2 -2
  77. package/dist/{dist-DL_ci7Yc.js → dist-BL2DSY0P.js} +1 -1
  78. package/dist/dist-BawZu0ix.js +10 -0
  79. package/dist/{dist-Bar1QnNM.js → dist-BhVFggab.js} +3 -3
  80. package/dist/{textile-Cy55fYGC.js → dist-BiOF7987.js} +4 -2
  81. package/dist/{dist-BQmQQqFH.js → dist-BpzZrRd6.js} +1 -1
  82. package/dist/{dist-CxD5E6Sh.js → dist-C7zhQ7K0.js} +24 -22
  83. package/dist/{dist-BqgkUnEN.js → dist-CBhnQKQ4.js} +3 -3
  84. package/dist/{dist-Dzk1C8l5.js → dist-CId4IPXu.js} +10 -13
  85. package/dist/{dist-CUnh_3Ii.js → dist-CYhQCVru.js} +2 -2
  86. package/dist/{dist-BBlFk9ki.js → dist-CZq5-ZyD.js} +1 -1
  87. package/dist/{dist-elblfNXO.js → dist-Cacac5HV.js} +2 -2
  88. package/dist/{dist-CChOkSUg.js → dist-CfQHSIQC.js} +3 -3
  89. package/dist/{dist-JCAky9ND.js → dist-CkvGMBAS.js} +17 -22
  90. package/dist/dist-Cs3McXEj.js +6 -0
  91. package/dist/{dist-o7fhJC7U.js → dist-CvyfRaIr.js} +3 -3
  92. package/dist/{dist-CZfRM7pE.js → dist-D-3fICwh.js} +2 -2
  93. package/dist/dist-D3aaithT.js +6 -0
  94. package/dist/{dist-CutXTm8t.js → dist-DBhEu3-F.js} +1 -1
  95. package/dist/dist-DELcMSpJ.js +6 -0
  96. package/dist/{dist-C7ASiFxI.js → dist-DMxl6Qbu.js} +273 -263
  97. package/dist/{dist-CLvpViod.js → dist-DS6nuHYK.js} +2 -3
  98. package/dist/dist-Dgts3WXd.js +6 -0
  99. package/dist/{dist--I6Htnlv.js → dist-DlHkZUnY.js} +5 -5
  100. package/dist/dist-Doiq_KIP.js +15 -0
  101. package/dist/dist-DtpUiDG_.js +6 -0
  102. package/dist/{dist-DzOpMdwb.js → dist-NUdHX0XE.js} +4 -4
  103. package/dist/{dist-C3WYsf4K.js → dist-PGgOcwbF.js} +4 -10
  104. package/dist/{dist-DNnYAdRE.js → dist-RdxOJbBw.js} +2 -2
  105. package/dist/{dist-BEvIw5Nh.js → dist-RwqAqkpG.js} +1 -1
  106. package/dist/dist-ZjnJq_jD.js +10 -0
  107. package/dist/{dist-CbRkrKrP.js → dist-biZ846D9.js} +5 -5
  108. package/dist/{dist-DW9er3Zq.js → dist-d5NxvX2s.js} +44 -23
  109. package/dist/{dist-C3QUag__.js → dist-ivwkJchV.js} +3 -3
  110. package/dist/dist-mof3iuBu.js +12 -0
  111. package/dist/{dist-Cib4sGDA.js → dist-reo2kYlN.js} +2 -2
  112. package/dist/{dist-BZBitvuL.js → dist-wHVprCkn.js} +1 -1
  113. package/dist/{dist-C5zMs_n5.js → dist-y8uoXYaE.js} +3 -3
  114. package/dist/{dist-DPF5TTUg.js → dist-z_iuDES7.js} +126 -115
  115. package/dist/{dockerfile-Dum_1b-5.js → dockerfile-sZMPcXVY.js} +1 -1
  116. package/dist/dtd-B2M8dhfC.js +4 -0
  117. package/dist/dylan-CU3Vt8SC.js +4 -0
  118. package/dist/ecl-B8ESAVq4.js +4 -0
  119. package/dist/eiffel-DDfMIKeA.js +4 -0
  120. package/dist/elm-Bj6rj8jf.js +4 -0
  121. package/dist/{erDiagram-AWTI2OKA-ZTIl9iQO.js → erDiagram-AWTI2OKA-CTxzb-U8.js} +20 -20
  122. package/dist/erlang-BxyshZUq.js +4 -0
  123. package/dist/{error-banner-OQIGTqFR.js → error-banner-npbEfanI.js} +13 -13
  124. package/dist/{esm-DxFkg7a6.js → esm-BdiY4QsX.js} +1528 -1492
  125. package/dist/{esm-d0g2RsOH.js → esm-CAWW9sum.js} +6 -8
  126. package/dist/{esm-1_Mp6VD2.js → esm-YY5zh7KV.js} +324 -395
  127. package/dist/{esm-BO9n_s6u.js → esm-svAVli9f.js} +5 -5
  128. package/dist/{factor-CdgiDGiu.js → factor-CRFTmP_a.js} +1 -1
  129. package/dist/factor-CYk6XT8r.js +5 -0
  130. package/dist/{flowDiagram-PVAE7QVJ-DsbofOzu.js → flowDiagram-PVAE7QVJ-Dck2hiJe.js} +22 -22
  131. package/dist/{formats-ChrNdVdJ.js → formats-BnqXUb1V.js} +13 -17
  132. package/dist/forth-fcoJkd-f.js +4 -0
  133. package/dist/fortran-IxZHu4wc.js +4 -0
  134. package/dist/{fullscreen-D1yTiBlu.js → fullscreen-blsKUrtN.js} +741 -744
  135. package/dist/{ganttDiagram-OWAHRB6G-FnCH1Yj3.js → ganttDiagram-OWAHRB6G-AWzfzpup.js} +9 -9
  136. package/dist/gas-B8rmKcim.js +4 -0
  137. package/dist/gherkin-BTm-jIdJ.js +4 -0
  138. package/dist/gitGraph-ZV4HHKMB-DFg_OLQb.js +21 -0
  139. package/dist/{gitGraphDiagram-NY62KEGX-B0wvMNqU.js → gitGraphDiagram-NY62KEGX-GyNboWSV.js} +31 -34
  140. package/dist/{glide-data-editor-D_kEsT07.js → glide-data-editor-DHuN8kQ8.js} +1650 -1720
  141. package/dist/{graphlib-BGmr7CYF.js → graphlib-hb3zmtVD.js} +5 -5
  142. package/dist/groovy-01kRHFMD.js +4 -0
  143. package/dist/haskell-B3PhE05w.js +4 -0
  144. package/dist/haxe-DEoAm8oA.js +5 -0
  145. package/dist/{hotkeys-yFrUwyJK.js → hotkeys-Ct2T3e9O.js} +4 -7
  146. package/dist/idl-DsDJU9cV.js +4 -0
  147. package/dist/info-63CPKGFF-D3DZmDBa.js +21 -0
  148. package/dist/infoDiagram-STP46IZ2-ec08vi_U.js +44 -0
  149. package/dist/{isArrayLikeObject-DiDsNamC.js → isArrayLikeObject-BlvK28do.js} +3 -5
  150. package/dist/{isEmpty-BBG-u1GM.js → isEmpty--odfYjh1.js} +2 -2
  151. package/dist/{isSymbol-BxF-_8BA.js → isSymbol-Cb1f2HgO.js} +1 -1
  152. package/dist/{javascript-Dfq1qI35.js → javascript-BfCTmOnk.js} +2 -2
  153. package/dist/javascript-gwczVhuU.js +5 -0
  154. package/dist/jinja2-AkZRdFk3.js +4 -0
  155. package/dist/{journeyDiagram-BIP6EPQ6-B3PotfAW.js → journeyDiagram-BIP6EPQ6-TmXYCUbT.js} +23 -24
  156. package/dist/julia-_s6qe3bf.js +4 -0
  157. package/dist/{kanban-definition-6OIFK2YF-BTrQZ3LN.js → kanban-definition-6OIFK2YF-B6ozleHo.js} +15 -15
  158. package/dist/{katex-dN__NFdn.js → katex-mPzRsXEy.js} +1 -1
  159. package/dist/{katex-BE4xflfm.js → katex-mkWmhPUh.js} +149 -173
  160. package/dist/{label-BinTsX-u.js → label-VVRKZmrP.js} +21 -24
  161. package/dist/{linear-DyTdUIqX.js → linear-iebAbJVD.js} +1 -1
  162. package/dist/livescript-CwPHQdv5.js +4 -0
  163. package/dist/{loader-Dijti3y4.js → loader-CM0VALo9.js} +19 -26
  164. package/dist/lua-s7nRxkCP.js +4 -0
  165. package/dist/main.js +8161 -8431
  166. package/dist/{marked.esm-3RjvXPoO.js → marked.esm-DJM8la36.js} +5 -5
  167. package/dist/mathematica-Ci36yd1q.js +4 -0
  168. package/dist/mbox-DbOYMNCO.js +4 -0
  169. package/dist/{memoize-Dq87l1O_.js → memoize-DYoRBSLn.js} +1 -1
  170. package/dist/{merge-BPDCIm8P.js → merge-BjuR6j_w.js} +1 -1
  171. package/dist/{mermaid-MWiyXDcI.js → mermaid-YPPMBmhk.js} +58 -76
  172. package/dist/{mermaid-parser.core-CSFx6MQ7.js → mermaid-parser.core-BLkyTSZj.js} +8 -8
  173. package/dist/{mhchem-DZ68WS0G.js → mhchem-Dw7wvXtr.js} +1 -1
  174. package/dist/{min-BzhKOmZo.js → min-B_i2ahn4.js} +7 -7
  175. package/dist/{mindmap-definition-Q6HEUPPD-9hhnrO1k.js → mindmap-definition-Q6HEUPPD-F6-JnXwq.js} +17 -17
  176. package/dist/mirc-VmNe8AwF.js +4 -0
  177. package/dist/mllike-BdD7SJEa.js +6 -0
  178. package/dist/modelica-BA4VqzC3.js +4 -0
  179. package/dist/mscgen-DF-5WHJm.js +6 -0
  180. package/dist/mumps-c_Uia_QN.js +4 -0
  181. package/dist/{node-sql-parser-13oju30e.js → node-sql-parser-BqKV-TpL.js} +14343 -14351
  182. package/dist/{now-DVBcRCoE.js → now-CwRqw0nS.js} +1 -1
  183. package/dist/nsis-BAANGODV.js +5 -0
  184. package/dist/{nsis-BW6_XagK.js → nsis-BWJEeUyS.js} +1 -1
  185. package/dist/ntriples-Bslqh2Ki.js +4 -0
  186. package/dist/{number-overlay-editor-D1YdiOrm.js → number-overlay-editor-CeyruAX4.js} +17 -23
  187. package/dist/octave-DYn5ltia.js +4 -0
  188. package/dist/oz-B_N-StZq.js +4 -0
  189. package/dist/packet-HUATNLJX-CkqjFdAv.js +21 -0
  190. package/dist/pascal-DU4CtAUu.js +4 -0
  191. package/dist/perl-Bae6k32u.js +4 -0
  192. package/dist/pie-WTHONI2E-D0rWwX5P.js +21 -0
  193. package/dist/{pieDiagram-ADFJNKIX-CSBC0ZgF.js → pieDiagram-ADFJNKIX-C5dSQVCn.js} +28 -28
  194. package/dist/pig-DSIxUEgX.js +4 -0
  195. package/dist/powershell-31lcPgIF.js +4 -0
  196. package/dist/powershell-BZx53Ujw.js +236 -0
  197. package/dist/properties-lmYbntDG.js +4 -0
  198. package/dist/protobuf-BTYoCEpV.js +4 -0
  199. package/dist/pug-DMFM7zzO.js +5 -0
  200. package/dist/{pug-Bmups_z0.js → pug-PJh82u1M.js} +1 -1
  201. package/dist/puppet-B0ub07d-.js +4 -0
  202. package/dist/python-C4jT87Nt.js +5 -0
  203. package/dist/{q-BzWcnVri.js → q-CMoUHJ5Q.js} +3 -2
  204. package/dist/q-YbPYlqRI.js +4 -0
  205. package/dist/{quadrantDiagram-LMRXKWRM-h7nHf8xG.js → quadrantDiagram-LMRXKWRM-DlahxNiy.js} +7 -7
  206. package/dist/r-OfNu6HAI.js +4 -0
  207. package/dist/radar-NJJJXTRR-Bxqv4O5a.js +21 -0
  208. package/dist/{range-CgK0-PEw.js → range-DxfkexCE.js} +3 -3
  209. package/dist/{react-plotly-BZakcxdv.js → react-plotly-D_IAfR8f.js} +4364 -4705
  210. package/dist/{requirementDiagram-4UW4RH46-BGEurQYq.js → requirementDiagram-4UW4RH46-DTkinyvU.js} +17 -17
  211. package/dist/rpm-D_3b5peD.js +5 -0
  212. package/dist/ruby-CehsJy_T.js +4 -0
  213. package/dist/{sankeyDiagram-GR3RE2ED-CxeJ_jfl.js → sankeyDiagram-GR3RE2ED-CsLnEnnq.js} +3 -3
  214. package/dist/sas-DwQHzPoF.js +4 -0
  215. package/dist/scheme-B6ArxiQu.js +4 -0
  216. package/dist/{sequenceDiagram-C3RYC4MD-CbFxwyr_.js → sequenceDiagram-C3RYC4MD-BdEOR6SC.js} +20 -30
  217. package/dist/shell-AHmQgDfc.js +4 -0
  218. package/dist/sieve-CgodKOcx.js +4 -0
  219. package/dist/{simple-mode-Cgyya8F-.js → simple-mode-BP3Jd4vf.js} +1 -1
  220. package/dist/{slides-component-BEyG25AH.js → slides-component-2bbal1YJ.js} +24 -46
  221. package/dist/smalltalk-BeFzDkbo.js +4 -0
  222. package/dist/sparql-BWxq-Lnx.js +4 -0
  223. package/dist/{src-BNNJRxz3.js → src-DZkaBUmt.js} +6 -6
  224. package/dist/{stateDiagram-KXAO66HF-A61bMf29.js → stateDiagram-KXAO66HF-DQLH2jhP.js} +39 -41
  225. package/dist/stateDiagram-v2-UMBNRL4Z-D9v8fKjF.js +38 -0
  226. package/dist/stex-Dvaq0qsm.js +5 -0
  227. package/dist/style.css +1 -1
  228. package/dist/stylus-Ge0ofWlZ.js +4 -0
  229. package/dist/swift-CjQfbVxV.js +4 -0
  230. package/dist/tcl-CAGDF11K.js +4 -0
  231. package/dist/textile-CrXreJtf.js +4 -0
  232. package/dist/{time-D3tzCqJ6.js → time-CFkXkVrt.js} +1 -1
  233. package/dist/{timeline-definition-XQNQX7LJ-BwdsB7CR.js → timeline-definition-XQNQX7LJ-bToVq14i.js} +4 -5
  234. package/dist/{timer-D3Zlu9ow.js → timer-CzOhIJuk.js} +2 -2
  235. package/dist/{toNumber-efKT08hh.js → toNumber-EFF1Z9T1.js} +2 -2
  236. package/dist/{toString-BvCd3yJc.js → toString-C2mCkasT.js} +2 -2
  237. package/dist/toml-AdLXKwEi.js +4 -0
  238. package/dist/{toml-CIUkU1CP.js → toml-eSl4PUAH.js} +6 -2
  239. package/dist/treemap-75Q7IDZK-Da9Jv6a_.js +21 -0
  240. package/dist/troff-C-LaM2ex.js +4 -0
  241. package/dist/ttcn-DTclUi6T.js +4 -0
  242. package/dist/ttcn-cfg-BtBPbmLX.js +4 -0
  243. package/dist/turtle-BODDDg5O.js +4 -0
  244. package/dist/{types-1X1uZB4y.js → types-CRXV0KD5.js} +84 -95
  245. package/dist/{useAsyncData-C4IqQK0g.js → useAsyncData-uMVTsDI9.js} +1 -1
  246. package/dist/{useDateFormatter-BCsBqetx.js → useDateFormatter-Dcz7jstn.js} +6 -6
  247. package/dist/{useTheme-C2pgJzDH.js → useTheme-NbEx-ZNV.js} +13 -10
  248. package/dist/vb-Cb1HQHii.js +4 -0
  249. package/dist/vbscript-CpXOP4wZ.js +4 -0
  250. package/dist/{vega-component-Cv4J8CHz.js → vega-component-hegVmfuS.js} +21 -21
  251. package/dist/{vega-loader.browser.module-Bi3ttvdj.js → vega-loader.browser.module-DcW8jnKp.js} +1 -2
  252. package/dist/velocity-Dz0rBQIk.js +4 -0
  253. package/dist/verilog-6Di9aLKw.js +4 -0
  254. package/dist/vhdl-BRNesXYc.js +4 -0
  255. package/dist/webidl-BpRNYIYn.js +4 -0
  256. package/dist/xquery-DXWcJ7b6.js +4 -0
  257. package/dist/{xychartDiagram-6GGTOJPD-BJRRi5HC.js → xychartDiagram-6GGTOJPD-C7Bhm_yt.js} +12 -13
  258. package/dist/yacas-DbSARPz4.js +4 -0
  259. package/dist/z80-DzslPj_l.js +4 -0
  260. package/dist/{zod-UPQf9SGn.js → zod-ChY6miG5.js} +71 -81
  261. package/package.json +12 -12
  262. package/src/__mocks__/requests.ts +2 -0
  263. package/src/components/app-config/user-config-form.tsx +29 -25
  264. package/src/components/chat/chat-utils.ts +11 -4
  265. package/src/components/data-table/__tests__/header-items.test.tsx +117 -0
  266. package/src/components/data-table/column-header.tsx +4 -2
  267. package/src/components/data-table/columns.tsx +2 -1
  268. package/src/components/data-table/data-table.tsx +7 -2
  269. package/src/components/data-table/header-items.tsx +63 -10
  270. package/src/components/dependency-graph/custom-node.tsx +11 -11
  271. package/src/components/dependency-graph/elements.ts +9 -4
  272. package/src/components/dependency-graph/panels.tsx +6 -4
  273. package/src/components/editor/Output.tsx +6 -1
  274. package/src/components/editor/ai/ai-completion-editor.tsx +135 -5
  275. package/src/components/editor/ai/completion-handlers.tsx +106 -22
  276. package/src/components/editor/cell/code/cell-editor.tsx +5 -0
  277. package/src/components/editor/chrome/panels/cache-panel.tsx +216 -0
  278. package/src/components/editor/chrome/panels/empty-state.tsx +3 -1
  279. package/src/components/editor/chrome/types.ts +66 -22
  280. package/src/components/editor/chrome/wrapper/app-chrome.tsx +2 -0
  281. package/src/components/editor/errors/auto-fix.tsx +138 -32
  282. package/src/components/editor/errors/fix-mode.ts +15 -0
  283. package/src/components/editor/navigation/__tests__/clipboard.test.ts +0 -5
  284. package/src/components/editor/navigation/clipboard.ts +2 -1
  285. package/src/components/editor/notebook-cell.tsx +20 -7
  286. package/src/components/editor/output/ConsoleOutput.tsx +27 -33
  287. package/src/components/editor/output/JsonOutput.tsx +9 -0
  288. package/src/components/editor/output/MarimoTracebackOutput.tsx +10 -7
  289. package/src/components/editor/output/__tests__/json-output.test.ts +43 -0
  290. package/src/components/editor/package-alert.tsx +3 -0
  291. package/src/components/forms/__tests__/form-utils.test.ts +4 -2
  292. package/src/components/icons/copy-icon.tsx +11 -5
  293. package/src/components/shortcuts/renderShortcut.tsx +3 -1
  294. package/src/components/ui/button.tsx +2 -0
  295. package/src/components/ui/confirmation-button.tsx +85 -0
  296. package/src/components/ui/switch.tsx +2 -0
  297. package/src/core/ai/context/providers/__tests__/datasource.test.ts +9 -1
  298. package/src/core/ai/context/providers/datasource.ts +25 -1
  299. package/src/core/ai/state.ts +6 -3
  300. package/src/core/ai/tools/__tests__/registry.test.ts +33 -8
  301. package/src/core/ai/tools/base.ts +81 -1
  302. package/src/core/ai/tools/registry.ts +36 -10
  303. package/src/core/ai/tools/sample-tool.ts +44 -8
  304. package/src/core/cache/requests.ts +5 -0
  305. package/src/core/cells/cells.ts +1 -1
  306. package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +2 -0
  307. package/src/core/codemirror/__tests__/replace-editor-content.test.ts +336 -0
  308. package/src/core/codemirror/find-replace/navigate.ts +2 -2
  309. package/src/core/codemirror/format.ts +2 -9
  310. package/src/core/codemirror/language/__tests__/sql.test.ts +24 -6
  311. package/src/core/codemirror/language/languages/python.ts +1 -3
  312. package/src/core/codemirror/language/languages/sql/sql.ts +23 -13
  313. package/src/core/codemirror/language/panel/panel.tsx +1 -6
  314. package/src/core/codemirror/language/utils.ts +3 -8
  315. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +21 -14
  316. package/src/core/codemirror/lsp/federated-lsp.ts +20 -9
  317. package/src/core/codemirror/lsp/notebook-lsp.ts +35 -29
  318. package/src/core/codemirror/lsp/types.ts +0 -13
  319. package/src/core/codemirror/replace-editor-content.ts +87 -0
  320. package/src/core/config/__tests__/config-schema.test.ts +3 -0
  321. package/src/core/config/config-schema.ts +8 -0
  322. package/src/core/config/feature-flag.tsx +2 -4
  323. package/src/core/errors/__tests__/errors.test.ts +1 -0
  324. package/src/core/errors/errors.ts +20 -6
  325. package/src/core/islands/bridge.ts +2 -0
  326. package/src/core/islands/main.ts +4 -0
  327. package/src/core/kernel/messages.ts +1 -0
  328. package/src/core/network/requests-network.ts +14 -0
  329. package/src/core/network/requests-static.ts +2 -0
  330. package/src/core/network/requests-toasting.ts +2 -0
  331. package/src/core/network/types.ts +5 -0
  332. package/src/core/saving/save-component.tsx +43 -36
  333. package/src/core/wasm/bridge.ts +2 -0
  334. package/src/core/websocket/useMarimoWebSocket.tsx +8 -0
  335. package/src/css/app/codemirror-completions.css +1 -1
  336. package/src/custom.d.ts +2 -0
  337. package/src/plugins/core/registerReactComponent.tsx +5 -1
  338. package/src/plugins/impl/DataTablePlugin.tsx +19 -19
  339. package/src/plugins/impl/__tests__/DateTimePickerPlugin.test.tsx +32 -0
  340. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
  341. package/src/plugins/impl/chat/chat-ui.tsx +17 -2
  342. package/src/plugins/impl/chat/types.ts +1 -1
  343. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +7 -2
  344. package/src/plugins/impl/plotly/__tests__/parse-from-template.test.ts +17 -0
  345. package/src/plugins/impl/plotly/parse-from-template.ts +2 -1
  346. package/src/utils/__tests__/formatting.test.ts +107 -0
  347. package/src/utils/__tests__/json-parser.test.ts +13 -0
  348. package/src/utils/copy.ts +6 -0
  349. package/src/utils/formatting.ts +51 -0
  350. package/src/utils/json/json-parser.ts +28 -3
  351. package/dist/any-language-editor-CVFQlioK.js +0 -156
  352. package/dist/apl-ChlaBfxB.js +0 -4
  353. package/dist/architecture-O4VJ6CD3-BVeaxUcM.js +0 -21
  354. package/dist/asciiarmor-CcJmm3l_.js +0 -4
  355. package/dist/asn1-ThRYxoBE.js +0 -4
  356. package/dist/assets/__vite-browser-external-Dv_SHu1h.js +0 -1
  357. package/dist/assets/worker-DVOR9oZG.js +0 -54
  358. package/dist/brainfuck-CEM0JgDn.js +0 -4
  359. package/dist/chunk-EXTU4WIE-DECT9AAK.js +0 -14
  360. package/dist/chunk-S3R3BYOJ-DMQ1yeyq.js +0 -386
  361. package/dist/classDiagram-KNZD7YFC-BG53O6Jt.js +0 -39
  362. package/dist/classDiagram-v2-RKCZMP56-BmKILsGU.js +0 -39
  363. package/dist/clojure-B7RHyE9t.js +0 -4
  364. package/dist/cmake-TeTMP4I5.js +0 -4
  365. package/dist/cobol-DI-mxUER.js +0 -4
  366. package/dist/coffeescript-DHUFLqWp.js +0 -4
  367. package/dist/commonlisp-SLiUrh1m.js +0 -4
  368. package/dist/crystal-B4fY1ZfJ.js +0 -4
  369. package/dist/css-Bdoq3TzK.js +0 -5
  370. package/dist/cypher-CBU182fp.js +0 -4
  371. package/dist/d-D8myDZeH.js +0 -4
  372. package/dist/data-grid-overlay-editor-qNmJk2x0.js +0 -135
  373. package/dist/diagram-QEK2KX5R-fu8Noi3H.js +0 -245
  374. package/dist/diff-DJF_UB7H.js +0 -4
  375. package/dist/dist-52-_pKoy.js +0 -6
  376. package/dist/dist-6DOMStFn.js +0 -6
  377. package/dist/dist-B334aW7p.js +0 -10
  378. package/dist/dist-BOI9lUz-.js +0 -12
  379. package/dist/dist-C06uhBzF.js +0 -6
  380. package/dist/dist-CGkpguCB.js +0 -6
  381. package/dist/dist-CrApzUED.js +0 -6
  382. package/dist/dist-Dp2GLdCl.js +0 -14
  383. package/dist/dist-WHFsbMDr.js +0 -6
  384. package/dist/dist-hyKcTPG9.js +0 -10
  385. package/dist/dtd-DY8q65lC.js +0 -4
  386. package/dist/dylan-CBLcjWCi.js +0 -4
  387. package/dist/ecl-BSXPNfOw.js +0 -4
  388. package/dist/eiffel-BJf0PQX-.js +0 -4
  389. package/dist/elm-DWQwPCZS.js +0 -4
  390. package/dist/erlang-BWBaGZ5e.js +0 -4
  391. package/dist/factor-DT1-MBPl.js +0 -5
  392. package/dist/forth-D9GDt3FB.js +0 -4
  393. package/dist/fortran-DHkRhDWw.js +0 -4
  394. package/dist/gas-7lQEOM0H.js +0 -4
  395. package/dist/gherkin-BLLyroYi.js +0 -4
  396. package/dist/gitGraph-ZV4HHKMB-z2v_cInC.js +0 -21
  397. package/dist/groovy-C-wabwj0.js +0 -4
  398. package/dist/haskell-DaxVQ_d1.js +0 -4
  399. package/dist/haxe-C2yLoC7h.js +0 -5
  400. package/dist/idl-DQBP8i7k.js +0 -4
  401. package/dist/info-63CPKGFF-GS4w6pCB.js +0 -21
  402. package/dist/infoDiagram-STP46IZ2-DE9YYPFg.js +0 -44
  403. package/dist/javascript-DRwFV9r5.js +0 -5
  404. package/dist/jinja2-CNoIpVmN.js +0 -4
  405. package/dist/julia-DXDf-GhP.js +0 -4
  406. package/dist/livescript-S2uhJQx7.js +0 -4
  407. package/dist/lua-Bvgs0y2G.js +0 -4
  408. package/dist/mathematica-D2zqfwIg.js +0 -4
  409. package/dist/mbox-SBcPaDuZ.js +0 -4
  410. package/dist/mirc-hkQc7sVF.js +0 -4
  411. package/dist/mllike-DRWPBlr9.js +0 -6
  412. package/dist/modelica-CO2ROGlP.js +0 -4
  413. package/dist/mscgen-BpX61bO6.js +0 -6
  414. package/dist/mumps-BCnFeIn6.js +0 -4
  415. package/dist/nsis-BaTOxlD1.js +0 -5
  416. package/dist/ntriples-zEo5BWjr.js +0 -4
  417. package/dist/octave-BE0RnCM9.js +0 -4
  418. package/dist/oz-C4_2Ttul.js +0 -4
  419. package/dist/packet-HUATNLJX-CjHqJIqk.js +0 -21
  420. package/dist/pascal-Q3jJucpw.js +0 -4
  421. package/dist/perl-DkXZIWHF.js +0 -4
  422. package/dist/pie-WTHONI2E-D67gLWtR.js +0 -21
  423. package/dist/pig-DCgEHdsu.js +0 -4
  424. package/dist/powershell-3rK_nRRJ.js +0 -236
  425. package/dist/powershell-Eo2-7MoM.js +0 -4
  426. package/dist/properties-C0IOX8WR.js +0 -4
  427. package/dist/protobuf--lGQUSRO.js +0 -4
  428. package/dist/pug-Cf8AQHMJ.js +0 -5
  429. package/dist/puppet-D7Z3dTJn.js +0 -4
  430. package/dist/python-FHIx_i8Y.js +0 -5
  431. package/dist/q-B7UA1feM.js +0 -4
  432. package/dist/r-Cc9R2A7N.js +0 -4
  433. package/dist/radar-NJJJXTRR-C-AZP_Te.js +0 -21
  434. package/dist/rpm-vhJNlrQ6.js +0 -5
  435. package/dist/ruby-CVluPY0M.js +0 -4
  436. package/dist/sas-A8DL8oy3.js +0 -4
  437. package/dist/scheme-6xHHcSXC.js +0 -4
  438. package/dist/shell-DHN-e5rf.js +0 -4
  439. package/dist/sieve-BuQwLY02.js +0 -4
  440. package/dist/smalltalk-BA4HPg2H.js +0 -4
  441. package/dist/sparql-Bf4yCuy3.js +0 -4
  442. package/dist/stateDiagram-v2-UMBNRL4Z-C_0FUzzk.js +0 -38
  443. package/dist/stex-D-I1cYeE.js +0 -5
  444. package/dist/stylus-BMeped2l.js +0 -4
  445. package/dist/swift-lwEdlZoC.js +0 -4
  446. package/dist/tcl-B03ipeqv.js +0 -4
  447. package/dist/toml-BLgrVtfu.js +0 -4
  448. package/dist/treemap-75Q7IDZK-DTvwfpWt.js +0 -21
  449. package/dist/troff-g6EjN2O2.js +0 -4
  450. package/dist/ttcn-Dzvba8jK.js +0 -4
  451. package/dist/ttcn-cfg-CadG0p1K.js +0 -4
  452. package/dist/turtle-DkXAMWo9.js +0 -4
  453. package/dist/vb-C5dCiel8.js +0 -4
  454. package/dist/vbscript-I4bDEQln.js +0 -4
  455. package/dist/velocity-mt0fDwFH.js +0 -4
  456. package/dist/verilog-Dxq3KJkc.js +0 -4
  457. package/dist/vhdl-Km0QUlV-.js +0 -4
  458. package/dist/webidl-B3lJ2MRL.js +0 -4
  459. package/dist/xquery-CcIxNPEe.js +0 -4
  460. package/dist/yacas-oMa-f-tN.js +0 -4
  461. package/dist/z80-D03Nvn6l.js +0 -4
  462. /package/dist/{apl-DZqo8Elt.js → apl-CEHentF4.js} +0 -0
  463. /package/dist/{asciiarmor-DTzHAIeX.js → asciiarmor-DURYiCS0.js} +0 -0
  464. /package/dist/{asn1-DrAXKsZH.js → asn1-ETAiEoXY.js} +0 -0
  465. /package/dist/{asterisk-oF4U3h48.js → asterisk-DTpbbXPb.js} +0 -0
  466. /package/dist/{brainfuck-BYgLey30.js → brainfuck-BWQep-SA.js} +0 -0
  467. /package/dist/{clojure-Bs2M3OUY.js → clojure-BzFapDkA.js} +0 -0
  468. /package/dist/{cmake-DpI8vxJN.js → cmake-DvlbIC8x.js} +0 -0
  469. /package/dist/{cobol-BQyrWo72.js → cobol-BrEI4cPR.js} +0 -0
  470. /package/dist/{coffeescript-9ke9UHmw.js → coffeescript-B6cvu8mO.js} +0 -0
  471. /package/dist/{common-keywords-BzgeAvH1.js → common-keywords-WqQm7W8t.js} +0 -0
  472. /package/dist/{commonlisp-DghUdrUH.js → commonlisp-BIT8PQqi.js} +0 -0
  473. /package/dist/{crystal-DEf_SInh.js → crystal-B_UcPArT.js} +0 -0
  474. /package/dist/{css-BzTU9lNO.js → css-dHbnt_zl.js} +0 -0
  475. /package/dist/{cypher-a2v0c11S.js → cypher-Dh3FOpL7.js} +0 -0
  476. /package/dist/{d-SAswny-M.js → d-CQD1IHee.js} +0 -0
  477. /package/dist/{diff-OJ-xLXcG.js → diff-CpF_IDx0.js} +0 -0
  478. /package/dist/{dtd-BsUf-rer.js → dtd-DYoNpy6c.js} +0 -0
  479. /package/dist/{duckdb-keywords-B0NOra5o.js → duckdb-keywords-CdIsl9L0.js} +0 -0
  480. /package/dist/{dylan-C0ZYngjn.js → dylan-Bc_2G1E-.js} +0 -0
  481. /package/dist/{ebnf-DF1xx0b_.js → ebnf-jGVT_YpN.js} +0 -0
  482. /package/dist/{ecl-Bsuvoouq.js → ecl-UIU-P-Ar.js} +0 -0
  483. /package/dist/{eiffel-DgfSpLi-.js → eiffel-C90Oyuix.js} +0 -0
  484. /package/dist/{elm-GNxDj-5E.js → elm-B9fWSySj.js} +0 -0
  485. /package/dist/{erlang-Ds3uY1kL.js → erlang-Ccff0UAn.js} +0 -0
  486. /package/dist/{fcl-CqBgSioc.js → fcl-CGR8NxAg.js} +0 -0
  487. /package/dist/{forth-JCaLysGk.js → forth-U1ROGcBY.js} +0 -0
  488. /package/dist/{fortran-Dc2AoKAl.js → fortran-3nOkjDmc.js} +0 -0
  489. /package/dist/{gas-Q4Uz82YW.js → gas-B_4H5FzV.js} +0 -0
  490. /package/dist/{gherkin-Dpxe49sQ.js → gherkin-B0eru5Uz.js} +0 -0
  491. /package/dist/{groovy-D8mTRCu6.js → groovy-dqjtZUVf.js} +0 -0
  492. /package/dist/{haskell-2_8cC4wY.js → haskell-DFzCCQzo.js} +0 -0
  493. /package/dist/{haxe-Bl9zkZlz.js → haxe-Da8Pj5RT.js} +0 -0
  494. /package/dist/{http-DKCqY6yS.js → http-1HACL_9s.js} +0 -0
  495. /package/dist/{idl-Dn-HNfGW.js → idl-D3NXs5iM.js} +0 -0
  496. /package/dist/{jinja2-JjFiAGKk.js → jinja2-gBHAxUdF.js} +0 -0
  497. /package/dist/{julia-R5wne8eu.js → julia-bG-6nJ-_.js} +0 -0
  498. /package/dist/{livescript-DSwokrYj.js → livescript-BlsRC8UJ.js} +0 -0
  499. /package/dist/{lua-CgXfrp2-.js → lua-BbDC0_5w.js} +0 -0
  500. /package/dist/{mathematica-BVli92MR.js → mathematica-YZTe3-PF.js} +0 -0
  501. /package/dist/{mbox-CMFlocdS.js → mbox-CY5idp08.js} +0 -0
  502. /package/dist/{mirc-BkW04Zpc.js → mirc-CbQuFZKk.js} +0 -0
  503. /package/dist/{mllike-DEjvHvNV.js → mllike-DsbHMX-5.js} +0 -0
  504. /package/dist/{modelica-CxDn-oje.js → modelica-CQuvsOQk.js} +0 -0
  505. /package/dist/{mscgen-D78wmE-w.js → mscgen-LIpBP9VR.js} +0 -0
  506. /package/dist/{mumps-Bi0IvPOV.js → mumps-Ct5NXoaG.js} +0 -0
  507. /package/dist/{nginx-DErPZFhX.js → nginx-Dvc62C8z.js} +0 -0
  508. /package/dist/{ntriples-Btyp6wRL.js → ntriples-jVkxWUuv.js} +0 -0
  509. /package/dist/{octave-CZA6-2F8.js → octave-jGOImUB0.js} +0 -0
  510. /package/dist/{oz-Bm6LSNfE.js → oz-Y0FKDMS2.js} +0 -0
  511. /package/dist/{pascal-B4J6a9BH.js → pascal-BaLtPWWB.js} +0 -0
  512. /package/dist/{perl-CzVqxS08.js → perl-CjfE0JLo.js} +0 -0
  513. /package/dist/{pig-Clh03cnn.js → pig-DE4epV99.js} +0 -0
  514. /package/dist/{properties-D7ch1Wyb.js → properties-CLyCG5C-.js} +0 -0
  515. /package/dist/{protobuf-DrkdrMPK.js → protobuf-BjBBs_V4.js} +0 -0
  516. /package/dist/{puppet-BtZG8zdO.js → puppet-ZImLuomA.js} +0 -0
  517. /package/dist/{python-B6FKOVIv.js → python-C9YN71pR.js} +0 -0
  518. /package/dist/{r-Dnvo5-96.js → r-DILmKWWW.js} +0 -0
  519. /package/dist/{rpm-B1DrgfnX.js → rpm-fpIsm1Kr.js} +0 -0
  520. /package/dist/{ruby-CelfUg17.js → ruby-BuiQI41h.js} +0 -0
  521. /package/dist/{sas-DfSQFMWG.js → sas-C76sJ1zF.js} +0 -0
  522. /package/dist/{scheme-BplhaWuO.js → scheme-DHjM-txv.js} +0 -0
  523. /package/dist/{shell-DqU5OS2c.js → shell--7NmGJ9p.js} +0 -0
  524. /package/dist/{sieve-BE4_IyGa.js → sieve-DaPvBv1M.js} +0 -0
  525. /package/dist/{smalltalk-B_WPL8Nx.js → smalltalk-KPvwrjCs.js} +0 -0
  526. /package/dist/{solr-DlJFg7H5.js → solr-PvZUtEDb.js} +0 -0
  527. /package/dist/{sparql-7XIlcOgW.js → sparql-CXSUIQer.js} +0 -0
  528. /package/dist/{spreadsheet-BdZSVwVp.js → spreadsheet-DPJdGPkx.js} +0 -0
  529. /package/dist/{sql-CCrq7lfJ.js → sql-Dp4ZLSIa.js} +0 -0
  530. /package/dist/{stex-BiFc8QAu.js → stex-CeXW4zzk.js} +0 -0
  531. /package/dist/{stylus-DlSH9xpH.js → stylus-BXcmrg9w.js} +0 -0
  532. /package/dist/{swift-e3tMTZgJ.js → swift-DD8I7hKP.js} +0 -0
  533. /package/dist/{tcl-DfZMC20G.js → tcl-B9Lp4GtA.js} +0 -0
  534. /package/dist/{textile-DaSeca5U.js → textile-qdiY0teq.js} +0 -0
  535. /package/dist/{tiddlywiki-dfoiz8pS.js → tiddlywiki-t32lkubq.js} +0 -0
  536. /package/dist/{tiki-yJbQzhma.js → tiki-B0qKrSMl.js} +0 -0
  537. /package/dist/{troff-FN_FrCXR.js → troff-105XJOEu.js} +0 -0
  538. /package/dist/{ttcn-7_i4HlyB.js → ttcn-1_BxDcM8.js} +0 -0
  539. /package/dist/{ttcn-cfg-B46AlBUV.js → ttcn-cfg-Cn_XgXiw.js} +0 -0
  540. /package/dist/{turtle-QQfeFveR.js → turtle-BI6LyfEu.js} +0 -0
  541. /package/dist/{vb-DToPVnLa.js → vb-BecoBfmr.js} +0 -0
  542. /package/dist/{vbscript-CtsNaTz4.js → vbscript-De-zpA4i.js} +0 -0
  543. /package/dist/{velocity-CAoNe6ns.js → velocity-DhlYJTrD.js} +0 -0
  544. /package/dist/{verilog-DrDOMiJq.js → verilog-BDZgxDOW.js} +0 -0
  545. /package/dist/{vhdl-DnO0OEPh.js → vhdl-CV0OKTbp.js} +0 -0
  546. /package/dist/{webidl-Or6d1ZfA.js → webidl-BOM1Fs0O.js} +0 -0
  547. /package/dist/{xquery-CEp_Mcpr.js → xquery-CltP_CGh.js} +0 -0
  548. /package/dist/{yacas-DgnYrSlp.js → yacas-Dch4E2Dg.js} +0 -0
  549. /package/dist/{z80-DlG_kyeB.js → z80-B5Yly27o.js} +0 -0
@@ -195,35 +195,36 @@ describe("createNotebookLens", () => {
195
195
  });
196
196
 
197
197
  describe("NotebookLanguageServerClient", () => {
198
- let plugins: any[] = [];
199
198
  let mockClient: Mocked<ILanguageServerClient>;
200
199
  let notebookClient: NotebookLanguageServerClient;
201
200
 
202
201
  beforeEach(() => {
203
- plugins = [];
204
202
  mockClient = {
205
- plugins,
206
203
  ready: true,
207
204
  capabilities: {},
208
205
  initializePromise: Promise.resolve(),
206
+ clientCapabilities: {},
207
+ completionItemResolve: vi.fn(),
209
208
  initialize: vi.fn(),
210
209
  close: vi.fn(),
211
- detachPlugin: vi.fn().mockImplementation((plugin) => {
212
- plugins = plugins.filter((p) => p !== plugin);
213
- }),
214
- attachPlugin: vi.fn().mockImplementation((plugin) => {
215
- plugins.push(plugin);
216
- }),
210
+ onNotification: vi.fn(),
217
211
  textDocumentDidOpen: vi.fn(),
218
212
  textDocumentDidChange: vi.fn(),
219
213
  textDocumentHover: vi.fn(),
220
214
  textDocumentCompletion: vi.fn(),
215
+ textDocumentDefinition: vi.fn(),
216
+ textDocumentPrepareRename: vi.fn(),
217
+ textDocumentCodeAction: vi.fn(),
218
+ textDocumentSignatureHelp: vi.fn(),
221
219
  textDocumentRename: vi.fn(),
222
- processNotification: vi.fn(),
223
- notify: vi.fn(),
224
- request: vi.fn(),
225
- } as unknown as Mocked<ILanguageServerClient>;
226
- notebookClient = new NotebookLanguageServerClient(mockClient, {});
220
+ };
221
+ (mockClient as any).processNotification = vi.fn();
222
+ (mockClient as any).notify = vi.fn();
223
+ notebookClient = new NotebookLanguageServerClient(mockClient, {}, () => ({
224
+ [Cells.cell1]: new EditorView({ doc: "# this is a comment" }),
225
+ [Cells.cell2]: new EditorView({ doc: "import math\nimport numpy" }),
226
+ [Cells.cell3]: new EditorView({ doc: "print(math.sqrt(4))" }),
227
+ }));
227
228
 
228
229
  // Mock the atom instead of the instance method
229
230
  vi.spyOn(store, "get").mockImplementation((atom) => {
@@ -404,6 +405,12 @@ describe("NotebookLanguageServerClient", () => {
404
405
  });
405
406
  expect(mockView3.state.doc.toString()).toBe("print(math.sqrt(4))");
406
407
 
408
+ (notebookClient as any).getNotebookEditors = () => ({
409
+ [Cells.cell1]: mockView1,
410
+ [Cells.cell2]: mockView2,
411
+ [Cells.cell3]: mockView3,
412
+ });
413
+
407
414
  // Setup rename params
408
415
  const renameParams: LSP.RenameParams = {
409
416
  textDocument: { uri: CellDocumentUri.of(Cells.cell2) },
@@ -1,6 +1,5 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { LanguageServerPlugin } from "@marimo-team/codemirror-languageserver";
4
3
  import type * as LSP from "vscode-languageserver-protocol";
5
4
  import { Objects } from "@/utils/objects";
6
5
  import type { ILanguageServerClient } from "./types";
@@ -24,6 +23,26 @@ export class FederatedLanguageServerClient implements ILanguageServerClient {
24
23
  this.documentUri = getLSPDocument();
25
24
  }
26
25
 
26
+ onNotification(
27
+ listener: (n: {
28
+ jsonrpc: "2.0";
29
+ id?: null | undefined;
30
+ method: "textDocument/publishDiagnostics";
31
+ params: LSP.PublishDiagnosticsParams;
32
+ }) => void,
33
+ ): () => boolean {
34
+ const callbacks: Array<() => boolean> = [];
35
+ for (const client of this.clients) {
36
+ callbacks.push(client.onNotification(listener));
37
+ }
38
+ return () => {
39
+ for (const cb of callbacks) {
40
+ cb();
41
+ }
42
+ return true;
43
+ };
44
+ }
45
+
27
46
  get clientCapabilities(): LSP.ClientCapabilities | undefined {
28
47
  const capabilities = this.clients
29
48
  .map((client) => {
@@ -153,14 +172,6 @@ export class FederatedLanguageServerClient implements ILanguageServerClient {
153
172
  return null;
154
173
  }
155
174
 
156
- attachPlugin(plugin: LanguageServerPlugin): void {
157
- this.clients.forEach((client) => client.attachPlugin(plugin));
158
- }
159
-
160
- detachPlugin(plugin: LanguageServerPlugin): void {
161
- this.clients.forEach((client) => client.detachPlugin(plugin));
162
- }
163
-
164
175
  // Merge completions from all clients
165
176
  async textDocumentCompletion(
166
177
  params: LSP.CompletionParams,
@@ -1,18 +1,20 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
+ import type { EditorView } from "@codemirror/view";
3
4
  import type * as LSP from "vscode-languageserver-protocol";
5
+ import { getNotebook } from "@/core/cells/cells";
4
6
  import type { CellId } from "@/core/cells/ids";
5
7
  import { store } from "@/core/state/jotai";
6
8
  import { invariant } from "@/utils/invariant";
7
9
  import { Logger } from "@/utils/Logger";
8
10
  import { LRUCache } from "@/utils/lru";
11
+ import { Objects } from "@/utils/objects";
9
12
  import { topologicalCodesAtom } from "../copilot/getCodes";
10
13
  import { createNotebookLens, type NotebookLens } from "./lens";
11
14
  import {
12
15
  CellDocumentUri,
13
16
  type ILanguageServerClient,
14
17
  isClientWithNotify,
15
- isClientWithPlugins,
16
18
  } from "./types";
17
19
  import { getLSPDocument } from "./utils";
18
20
 
@@ -84,18 +86,32 @@ class Snapshotter {
84
86
  }
85
87
  }
86
88
 
89
+ const defaultGetNotebookEditors = () => {
90
+ const evs = getNotebook().cellHandles;
91
+ return Objects.mapValues(evs, (r) => r.current?.editorViewOrNull);
92
+ };
93
+
87
94
  export class NotebookLanguageServerClient implements ILanguageServerClient {
88
95
  public readonly documentUri: LSP.DocumentUri;
89
96
  private readonly client: ILanguageServerClient;
90
97
  private readonly snapshotter: Snapshotter;
98
+ private readonly getNotebookEditors: () => Record<
99
+ CellId,
100
+ EditorView | null | undefined
101
+ >;
91
102
 
92
103
  private static readonly SEEN_CELL_DOCUMENT_URIS = new Set<CellDocumentUri>();
93
104
 
94
105
  constructor(
95
106
  client: ILanguageServerClient,
96
107
  initialSettings: Record<string, unknown>,
108
+ getNotebookEditors: () => Record<
109
+ CellId,
110
+ EditorView | null | undefined
111
+ > = defaultGetNotebookEditors,
97
112
  ) {
98
113
  this.documentUri = getLSPDocument();
114
+ this.getNotebookEditors = getNotebookEditors;
99
115
 
100
116
  this.client = client;
101
117
  this.patchProcessNotification();
@@ -114,6 +130,17 @@ export class NotebookLanguageServerClient implements ILanguageServerClient {
114
130
  this.snapshotter = new Snapshotter(this.getNotebookCode.bind(this));
115
131
  }
116
132
 
133
+ onNotification(
134
+ listener: (n: {
135
+ jsonrpc: "2.0";
136
+ id?: null | undefined;
137
+ method: "textDocument/publishDiagnostics";
138
+ params: LSP.PublishDiagnosticsParams;
139
+ }) => void,
140
+ ): () => boolean {
141
+ return this.client.onNotification(listener);
142
+ }
143
+
117
144
  get ready(): boolean {
118
145
  return this.client.ready;
119
146
  }
@@ -150,16 +177,6 @@ export class NotebookLanguageServerClient implements ILanguageServerClient {
150
177
  this.client.close();
151
178
  }
152
179
 
153
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
154
- detachPlugin(plugin: any): void {
155
- this.client.detachPlugin(plugin);
156
- }
157
-
158
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
159
- attachPlugin(plugin: any): void {
160
- this.client.attachPlugin(plugin);
161
- }
162
-
163
180
  private getNotebookCode() {
164
181
  return store.get(topologicalCodesAtom);
165
182
  }
@@ -371,37 +388,26 @@ export class NotebookLanguageServerClient implements ILanguageServerClient {
371
388
  const newEdits = lens.getEditsForNewText(edit.newText);
372
389
  const editsToNewCode = new Map(newEdits.map((e) => [e.cellId, e.text]));
373
390
 
374
- invariant(
375
- isClientWithPlugins(this.client),
376
- "Expected client with plugins.",
377
- );
378
-
379
391
  // Update the code in the plugins manually
380
- for (const plugin of this.client.plugins) {
381
- const documentUri: string = plugin.documentUri;
382
- if (!CellDocumentUri.is(documentUri)) {
383
- Logger.warn("Invalid cell document URI", documentUri);
384
- continue;
385
- }
386
-
387
- const cellId = CellDocumentUri.parse(documentUri);
392
+ const editors = this.getNotebookEditors();
393
+ for (const [cellId, ev] of Objects.entries(editors)) {
388
394
  const newCode = editsToNewCode.get(cellId);
389
395
  if (newCode == null) {
390
396
  Logger.warn("No new code for cell", cellId);
391
397
  continue;
392
398
  }
393
399
 
394
- if (!plugin.view) {
395
- Logger.warn("No view for plugin", plugin);
400
+ if (!ev) {
401
+ Logger.warn("No view for plugin", cellId);
396
402
  continue;
397
403
  }
398
404
 
399
405
  // Only update if it has changed
400
- if (plugin.view.state.doc.toString() !== newCode) {
401
- plugin.view.dispatch({
406
+ if (ev.state.doc.toString() !== newCode) {
407
+ ev.dispatch({
402
408
  changes: {
403
409
  from: 0,
404
- to: plugin.view.state.doc.length,
410
+ to: ev.state.doc.length,
405
411
  insert: newCode,
406
412
  },
407
413
  });
@@ -1,6 +1,5 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
 
3
- import type { EditorView } from "@codemirror/view";
4
3
  import type { LanguageServerClient } from "@marimo-team/codemirror-languageserver";
5
4
  import type { DocumentUri } from "vscode-languageserver-protocol";
6
5
  import type { CellId } from "@/core/cells/ids";
@@ -41,15 +40,3 @@ export function isClientWithNotify(
41
40
  } {
42
41
  return "notify" in client;
43
42
  }
44
-
45
- /**
46
- * Plugins are a @private on `LanguageServerClient`,
47
- * hiding public use with TypeScript.
48
- */
49
- export function isClientWithPlugins(
50
- client: ILanguageServerClient,
51
- ): client is ILanguageServerClient & {
52
- plugins: { documentUri: string; view?: EditorView }[];
53
- } {
54
- return "plugins" in client;
55
- }
@@ -0,0 +1,87 @@
1
+ /* Copyright 2024 Marimo. All rights reserved. */
2
+
3
+ import type { TransactionSpec } from "@codemirror/state";
4
+ import type { EditorView } from "@codemirror/view";
5
+
6
+ /**
7
+ * Replace the entire content of the editor with new content.
8
+ *
9
+ * When the editor has focus, this function attempts to preserve the cursor position
10
+ * by keeping it on the same line and column. If the line no longer exists or shrinks,
11
+ * the cursor is adjusted accordingly. This prevents the cursor from jumping during
12
+ * external updates (e.g., auto-formatting or external edits).
13
+ *
14
+ * When the editor doesn't have focus, the content is replaced without any special handling.
15
+ *
16
+ * @param editor - The CodeMirror editor view
17
+ * @param newContent - The new content to replace the editor with
18
+ * @param options - Optional configuration
19
+ * @param options.preserveCursor - Whether to preserve cursor position when focused (default: true)
20
+ * @param options.effects - Additional effects to apply to the transaction
21
+ * @param options.userEvent - User event string for the transaction
22
+ */
23
+ export function replaceEditorContent(
24
+ editor: EditorView,
25
+ newContent: string,
26
+ options: {
27
+ preserveCursor?: boolean;
28
+ effects?: TransactionSpec["effects"];
29
+ userEvent?: string;
30
+ } = {},
31
+ ): void {
32
+ const { preserveCursor = true, effects, userEvent } = options;
33
+ const doc = editor.state.doc;
34
+ const currentContent = doc.toString();
35
+
36
+ // Noop if content is the same
37
+ if (currentContent === newContent) {
38
+ return;
39
+ }
40
+
41
+ // If editor has focus and we want to preserve cursor, try to maintain position
42
+ if (preserveCursor && editor.hasFocus) {
43
+ const cursorPos = editor.state.selection.main.head;
44
+
45
+ // Get the current line and column
46
+ const currentLine = doc.lineAt(cursorPos);
47
+ const lineNumber = currentLine.number; // 1-based line number
48
+ const columnInLine = cursorPos - currentLine.from; // 0-based column in line
49
+
50
+ // Calculate new cursor position based on line-aware logic
51
+ const newDoc = editor.state.update({
52
+ changes: { from: 0, to: doc.length, insert: newContent },
53
+ }).state.doc;
54
+
55
+ let newCursorPos: number;
56
+
57
+ if (lineNumber <= newDoc.lines) {
58
+ // Line still exists in new document
59
+ const newLine = newDoc.line(lineNumber);
60
+ const newLineLength = newLine.length;
61
+
62
+ // Keep same column, but clamp to line length if line shrank
63
+ newCursorPos = newLine.from + Math.min(columnInLine, newLineLength);
64
+ } else {
65
+ // Line no longer exists, move to the end of the last line
66
+ const lastLine = newDoc.line(newDoc.lines);
67
+ newCursorPos = lastLine.to;
68
+ }
69
+
70
+ // Apply changes with preserved cursor position
71
+ editor.dispatch({
72
+ changes: { from: 0, to: doc.length, insert: newContent },
73
+ selection: {
74
+ anchor: newCursorPos,
75
+ },
76
+ effects,
77
+ userEvent,
78
+ });
79
+ } else {
80
+ // Editor doesn't have focus or we don't want to preserve cursor
81
+ editor.dispatch({
82
+ changes: { from: 0, to: doc.length, insert: newContent },
83
+ effects,
84
+ userEvent,
85
+ });
86
+ }
87
+ }
@@ -57,6 +57,7 @@ test("default UserConfig - empty", () => {
57
57
  "activate_on_typing": true,
58
58
  "copilot": false,
59
59
  },
60
+ "diagnostics": {},
60
61
  "display": {
61
62
  "cell_output": "above",
62
63
  "code_editor_font_size": 14,
@@ -123,6 +124,7 @@ test("default UserConfig - one level", () => {
123
124
  "activate_on_typing": true,
124
125
  "copilot": false,
125
126
  },
127
+ "diagnostics": {},
126
128
  "display": {
127
129
  "cell_output": "above",
128
130
  "code_editor_font_size": 14,
@@ -172,6 +174,7 @@ test("default UserConfig - one level", () => {
172
174
  runtime: {},
173
175
  display: {},
174
176
  experimental: {},
177
+ diagnostics: {},
175
178
  }),
176
179
  ).toEqual(UserConfigSchema.parse({}));
177
180
  });
@@ -183,6 +183,12 @@ export const UserConfigSchema = z
183
183
  // Pass through so that we don't remove any extra keys that the user has added.
184
184
  .prefault(() => ({})),
185
185
  server: z.looseObject({}).prefault(() => ({})),
186
+ diagnostics: z
187
+ .looseObject({
188
+ enabled: z.boolean().optional(),
189
+ sql_linter: z.boolean().optional(),
190
+ })
191
+ .prefault(() => ({})),
186
192
  sharing: z
187
193
  .looseObject({
188
194
  html: z.boolean().optional(),
@@ -204,6 +210,7 @@ export const UserConfigSchema = z
204
210
  keymap: {},
205
211
  runtime: {},
206
212
  display: {},
213
+ diagnostics: {},
207
214
  experimental: {},
208
215
  server: {},
209
216
  ai: {},
@@ -307,6 +314,7 @@ export function defaultUserConfig(): UserConfig {
307
314
  keymap: {},
308
315
  runtime: {},
309
316
  display: {},
317
+ diagnostics: {},
310
318
  experimental: {},
311
319
  server: {},
312
320
  ai: {},
@@ -11,9 +11,8 @@ export interface ExperimentalFeatures {
11
11
  rtc_v2: boolean;
12
12
  performant_table_charts: boolean;
13
13
  chat_modes: boolean;
14
- sql_linter: boolean;
14
+ cache_panel: boolean;
15
15
  external_agents: boolean;
16
- sql_mode: boolean;
17
16
  // Add new feature flags here
18
17
  }
19
18
 
@@ -23,9 +22,8 @@ const defaultValues: ExperimentalFeatures = {
23
22
  rtc_v2: false,
24
23
  performant_table_charts: false,
25
24
  chat_modes: false,
26
- sql_linter: true,
25
+ cache_panel: false,
27
26
  external_agents: import.meta.env.DEV,
28
- sql_mode: false,
29
27
  };
30
28
 
31
29
  export function getFeatureFlag<T extends keyof ExperimentalFeatures>(
@@ -57,6 +57,7 @@ describe("getAutoFixes", () => {
57
57
  expect(fixes).toHaveLength(1);
58
58
  expect(fixes[0].title).toBe("Fix with AI");
59
59
 
60
+ // No fixes without AI
60
61
  expect(getAutoFixes(error, { aiEnabled: false })).toHaveLength(0);
61
62
  });
62
63
 
@@ -1,21 +1,26 @@
1
1
  /* Copyright 2024 Marimo. All rights reserved. */
2
2
  import type { EditorView } from "@codemirror/view";
3
3
  import { invariant } from "@/utils/invariant";
4
+ import { getDatasourceContext } from "../ai/context/providers/datasource";
5
+ import type { AiCompletionCell } from "../ai/state";
4
6
  import type { CellId } from "../cells/ids";
5
7
  import type { MarimoError } from "../kernel/messages";
6
8
  import { wrapInFunction } from "./utils";
7
9
 
10
+ interface AIFix {
11
+ setAiCompletionCell: (opts: AiCompletionCell) => void;
12
+ triggerFix: boolean;
13
+ }
14
+
8
15
  export interface AutoFix {
9
16
  title: string;
10
17
  description: string;
18
+ fixType: "manual" | "ai";
11
19
  onFix: (ctx: {
12
20
  addCodeBelow: (code: string) => void;
13
21
  editor: EditorView | undefined;
14
22
  cellId: CellId;
15
- setAiCompletionCell?: (cell: {
16
- cellId: CellId;
17
- initialPrompt?: string;
18
- }) => void;
23
+ aiFix?: AIFix;
19
24
  }) => Promise<void>;
20
25
  }
21
26
 
@@ -31,6 +36,7 @@ export function getAutoFixes(
31
36
  title: "Fix: Wrap in a function",
32
37
  description:
33
38
  "Make this cell's variables local by wrapping the cell in a function.",
39
+ fixType: "manual",
34
40
  onFix: async (ctx) => {
35
41
  invariant(ctx.editor, "Editor is null");
36
42
  const code = wrapInFunction(ctx.editor.state.doc.toString());
@@ -59,6 +65,7 @@ export function getAutoFixes(
59
65
  {
60
66
  title: `Fix: Add '${cellCode}'`,
61
67
  description: "Add a new cell for the missing import",
68
+ fixType: "manual",
62
69
  onFix: async (ctx) => {
63
70
  ctx.addCodeBelow(cellCode);
64
71
  },
@@ -75,10 +82,17 @@ export function getAutoFixes(
75
82
  {
76
83
  title: "Fix with AI",
77
84
  description: "Fix the SQL statement",
85
+ fixType: "ai",
78
86
  onFix: async (ctx) => {
79
- ctx.setAiCompletionCell?.({
87
+ const datasourceContext = getDatasourceContext(ctx.cellId);
88
+ let initialPrompt = `Fix the SQL statement: ${error.msg}.`;
89
+ if (datasourceContext) {
90
+ initialPrompt += `\nDatabase schema: ${datasourceContext}`;
91
+ }
92
+ ctx.aiFix?.setAiCompletionCell({
80
93
  cellId: ctx.cellId,
81
- initialPrompt: `Fix the SQL statement: ${error.msg}`,
94
+ initialPrompt: initialPrompt,
95
+ triggerImmediately: ctx.aiFix.triggerFix,
82
96
  });
83
97
  },
84
98
  },
@@ -180,6 +180,8 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
180
180
  listSecretKeys = throwNotImplemented;
181
181
  writeSecret = throwNotImplemented;
182
182
  invokeAiTool = throwNotImplemented;
183
+ clearCache = throwNotImplemented;
184
+ getCacheInfo = throwNotImplemented;
183
185
 
184
186
  private async putControlRequest(operation: object) {
185
187
  await this.rpc.proxy.request.bridge({
@@ -185,6 +185,10 @@ export async function initialize() {
185
185
  return;
186
186
  case "reconnected":
187
187
  return;
188
+ case "cache-cleared":
189
+ return;
190
+ case "cache-info-fetched":
191
+ return;
188
192
  default:
189
193
  logNever(msg.data);
190
194
  }
@@ -43,6 +43,7 @@ export type SecretKeysResult = OperationMessageData<"secret-keys-result">;
43
43
  export type StartupLogs = OperationMessageData<"startup-logs">;
44
44
  export type CellMessage = OperationMessageData<"cell-op">;
45
45
  export type Capabilities = OperationMessageData<"kernel-ready">["capabilities"];
46
+ export type CacheInfoFetched = OperationMessageData<"cache-info-fetched">;
46
47
 
47
48
  export type MessageOperationUnion = schemas["KnownUnions"]["operation"];
48
49
 
@@ -409,5 +409,19 @@ export function createNetworkRequests(): EditRequests & RunRequests {
409
409
  })
410
410
  .then(handleResponse);
411
411
  },
412
+ clearCache: async () => {
413
+ return getClient()
414
+ .POST("/api/cache/clear", {
415
+ body: {},
416
+ })
417
+ .then(handleResponseReturnNull);
418
+ },
419
+ getCacheInfo: async () => {
420
+ return getClient()
421
+ .POST("/api/cache/info", {
422
+ body: {},
423
+ })
424
+ .then(handleResponseReturnNull);
425
+ },
412
426
  };
413
427
  }
@@ -86,5 +86,7 @@ export function createStaticRequests(): EditRequests & RunRequests {
86
86
  listSecretKeys: throwNotInEditMode,
87
87
  writeSecret: throwNotInEditMode,
88
88
  invokeAiTool: throwNotInEditMode,
89
+ clearCache: throwNotInEditMode,
90
+ getCacheInfo: throwNotInEditMode,
89
91
  };
90
92
  }
@@ -64,6 +64,8 @@ export function createErrorToastingRequests(
64
64
  listSecretKeys: "Failed to fetch secrets",
65
65
  writeSecret: "Failed to write secret",
66
66
  invokeAiTool: "Failed to invoke AI tool",
67
+ clearCache: "Failed to clear cache",
68
+ getCacheInfo: "", // No toast
67
69
  };
68
70
 
69
71
  const handlers = {} as EditRequests & RunRequests;
@@ -99,6 +99,8 @@ export type OpenTutorialRequest = schemas["OpenTutorialRequest"];
99
99
  export type TutorialId = OpenTutorialRequest["tutorialId"];
100
100
  export type InvokeAiToolRequest = schemas["InvokeAiToolRequest"];
101
101
  export type InvokeAiToolResponse = schemas["InvokeAiToolResponse"];
102
+ export type ClearCacheRequest = schemas["ClearCacheRequest"];
103
+ export type GetCacheInfoRequest = schemas["GetCacheInfoRequest"];
102
104
 
103
105
  /**
104
106
  * Requests sent to the BE during run/edit mode.
@@ -188,6 +190,9 @@ export interface EditRequests {
188
190
  writeSecret: (request: CreateSecretRequest) => Promise<null>;
189
191
  // AI Tool requests
190
192
  invokeAiTool: (request: InvokeAiToolRequest) => Promise<InvokeAiToolResponse>;
193
+ // Cache requests
194
+ clearCache: () => Promise<null>;
195
+ getCacheInfo: () => Promise<null>;
191
196
  }
192
197
 
193
198
  export type RequestKey = keyof (EditRequests & RunRequests);