@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.
- package/dist/{ConnectedDataExplorerComponent-D96i9G-X.js → ConnectedDataExplorerComponent-DJEUH6Bb.js} +78 -100
- package/dist/{_baseIsEqual-oN7pRNcM.js → _baseIsEqual-CN4oFUZ4.js} +20 -20
- package/dist/{_basePickBy-CYvzhRjy.js → _basePickBy-CzSvE_-f.js} +3 -3
- package/dist/{_baseProperty-DGUdIBuu.js → _baseProperty-DbbUiyUD.js} +5 -5
- package/dist/{_baseUniq-B5gfSl8S.js → _baseUniq-DwoC-LVO.js} +4 -4
- package/dist/any-language-editor-CEXn1vFs.js +156 -0
- package/dist/apl-DuVfHsPc.js +4 -0
- package/dist/architecture-O4VJ6CD3-lp-opOaL.js +21 -0
- package/dist/{architectureDiagram-W76B3OCA-DkEhipkW.js → architectureDiagram-W76B3OCA-CoBORy6u.js} +34 -34
- package/dist/asciiarmor-qIVWsi4F.js +4 -0
- package/dist/asn1-BjPqARr7.js +4 -0
- package/dist/assets/__vite-browser-external-lX-sn9m2.js +1 -0
- package/dist/assets/worker-vPn7gxWj.js +54 -0
- package/dist/{blockDiagram-QIGZ2CNN-DZOqLMYa.js → blockDiagram-QIGZ2CNN-0yzoLIar.js} +75 -86
- package/dist/brainfuck-DPGTVfkE.js +4 -0
- package/dist/{button-CEcjneWG.js → button-DcnBVpVa.js} +11 -14
- package/dist/{c4Diagram-FPNF74CW-DVaR7c9q.js → c4Diagram-FPNF74CW-CKsIA_DD.js} +27 -51
- package/dist/{channel-Uh0KpgGW.js → channel-3LVvQZcD.js} +1 -1
- package/dist/{check-BK9zDfQk.js → check-D7ifz5op.js} +1 -1
- package/dist/{chunk-3AY6CYHV-Dk2R2-S1.js → chunk-3AY6CYHV-B2C-aVc3.js} +35 -35
- package/dist/{chunk-4BX2VUAB-CqO6zUIz.js → chunk-4BX2VUAB-DEd4VI9L.js} +1 -1
- package/dist/{chunk-4KMFLZZN-CloTfTwP.js → chunk-4KMFLZZN-DnvP3O4K.js} +216 -325
- package/dist/{chunk-55IACEB6-I0rmqTua.js → chunk-55IACEB6-BcCzwOOl.js} +1 -1
- package/dist/{chunk-6OXUPJBA-BuROSTmo.js → chunk-6OXUPJBA-eNAAfJ3Q.js} +7 -7
- package/dist/{chunk-7GE3RBXV-B1-tsIPP.js → chunk-7GE3RBXV-CSAeQvLz.js} +1 -1
- package/dist/{chunk-ABZYJK2D-CLlso8tj.js → chunk-ABZYJK2D-CZcb_1iM.js} +16 -20
- package/dist/{chunk-BN7GFLIU-Db2-FjLn.js → chunk-BN7GFLIU-pBc5O5Rh.js} +1 -1
- package/dist/{chunk-CVBHYZKI-BONeiloK.js → chunk-CVBHYZKI-CivHZg9P.js} +3 -3
- package/dist/{chunk-CXMOBAN2-U9GJSP1d.js → chunk-CXMOBAN2-Dd0E6qb0.js} +46 -54
- package/dist/chunk-EXTU4WIE-GQ2ZWfJo.js +10 -0
- package/dist/{chunk-FMBD7UC4-DyV3BR_I.js → chunk-FMBD7UC4-C6YcisV6.js} +1 -1
- package/dist/{chunk-JA3XYJ7Z-C9A1076P.js → chunk-JA3XYJ7Z-DYeQaT57.js} +21 -25
- package/dist/{chunk-JEIROHC2-BGnFkSVq.js → chunk-JEIROHC2-B-EZMP4V.js} +1 -1
- package/dist/{chunk-K7UQS3LO-033LOsjK.js → chunk-K7UQS3LO-DENzlS-M.js} +7 -7
- package/dist/{chunk-KMC2YHZD-DT4Sq4Ld.js → chunk-KMC2YHZD-SckhHdEh.js} +1 -1
- package/dist/{chunk-QN33PNHL-gs44MZla.js → chunk-QN33PNHL-Cjq5b604.js} +2 -2
- package/dist/{chunk-QYVHNE3D-B8BO1AnT.js → chunk-QYVHNE3D-CNUuivie.js} +3 -4
- package/dist/{chunk-QZHKN3VN-CeN_GkU6.js → chunk-QZHKN3VN-DugEU_bA.js} +1 -1
- package/dist/chunk-S3R3BYOJ-itCT6Vif.js +380 -0
- package/dist/{chunk-T44TD3VJ-BwzD6YE0.js → chunk-T44TD3VJ-BLdfTX8J.js} +1 -1
- package/dist/{chunk-TVAH2DTR-Bi6jpQJQ.js → chunk-TVAH2DTR-BOnwF9d8.js} +7 -8
- package/dist/{chunk-TZMSLE5B-D8klz2H_.js → chunk-TZMSLE5B-DGs66AlL.js} +4 -5
- package/dist/{chunk-WFRQ32O7-CzSwSlN0.js → chunk-WFRQ32O7-CPsipkmJ.js} +1 -1
- package/dist/{chunk-WFWHJNB7-DN_cavM6.js → chunk-WFWHJNB7-Cmed18Pk.js} +1 -1
- package/dist/{chunk-XRWGC2XP-Bb5eGNM2.js → chunk-XRWGC2XP-DH5GDaY8.js} +1 -1
- package/dist/{chunk-ZPAFE4SF-S5UYNb0V.js → chunk-ZPAFE4SF-DPDwaqZm.js} +22 -22
- package/dist/classDiagram-KNZD7YFC-azuS_99k.js +39 -0
- package/dist/classDiagram-v2-RKCZMP56-CQpyQQOR.js +39 -0
- package/dist/{click-outside-container-DE4e7p1p.js → click-outside-container-CL_FkgGY.js} +7 -12
- package/dist/{clike-CxAz4p9E.js → clike-DYfRWWXk.js} +1 -1
- package/dist/{clike-Cg_DBrJ0.js → clike-bzZTreP4.js} +1 -1
- package/dist/clojure-ATksAecl.js +4 -0
- package/dist/{clone-Dk4FkKH0.js → clone-Msbhmn2a.js} +1 -1
- package/dist/cmake-CWylaz2C.js +4 -0
- package/dist/cobol-BiLLCZIQ.js +4 -0
- package/dist/coffeescript-Ca4jipi8.js +4 -0
- package/dist/commonlisp-BwFjyEC7.js +4 -0
- package/dist/{constants-Cjd_3kwd.js → constants-BCOEQoEQ.js} +3 -3
- package/dist/{copy-C5RFg7ok.js → copy-BkZ8PkBM.js} +6 -2
- package/dist/{cose-bilkent-S5V4N54A-B3iOTGu5.js → cose-bilkent-S5V4N54A-BZnbwyVD.js} +20 -20
- package/dist/crystal-BhUsQHbh.js +4 -0
- package/dist/css-Cf4wlIyV.js +5 -0
- package/dist/cypher-Dj8Hzgxa.js +4 -0
- package/dist/{cytoscape.esm-DTDV0Nbj.js → cytoscape.esm-BTpRoPd2.js} +586 -661
- package/dist/d-DZI7tbTy.js +4 -0
- package/dist/{dagre-5GWH7T2D-KM4Z11yT.js → dagre-5GWH7T2D-BGaiSZZO.js} +32 -37
- package/dist/{dagre-B0u1urxE.js → dagre-pyfDIOWJ.js} +57 -76
- package/dist/data-grid-overlay-editor-867aBz0Y.js +133 -0
- package/dist/{diagram-N5W7TBWH-CtO7az4G.js → diagram-N5W7TBWH-CzLE0jZB.js} +35 -51
- package/dist/diagram-QEK2KX5R-AGS60xEZ.js +245 -0
- package/dist/{diagram-S2PKOQOG-CiXElLNQ.js → diagram-S2PKOQOG-BxRoG6yW.js} +28 -28
- package/dist/diff-WQISUHG5.js +4 -0
- package/dist/{dist-CdE2C2In.js → dist-2Ne-33Xy.js} +15 -20
- package/dist/{dist-DKFaZRVk.js → dist-B0YD1aXi.js} +2 -2
- package/dist/{dist-DBhzmFyH.js → dist-B1Dv8Sdk.js} +3 -3
- package/dist/{dist-CGIZPq3J.js → dist-BFkr6kAQ.js} +2 -2
- package/dist/{dist-DL_ci7Yc.js → dist-BL2DSY0P.js} +1 -1
- package/dist/dist-BawZu0ix.js +10 -0
- package/dist/{dist-Bar1QnNM.js → dist-BhVFggab.js} +3 -3
- package/dist/{textile-Cy55fYGC.js → dist-BiOF7987.js} +4 -2
- package/dist/{dist-BQmQQqFH.js → dist-BpzZrRd6.js} +1 -1
- package/dist/{dist-CxD5E6Sh.js → dist-C7zhQ7K0.js} +24 -22
- package/dist/{dist-BqgkUnEN.js → dist-CBhnQKQ4.js} +3 -3
- package/dist/{dist-Dzk1C8l5.js → dist-CId4IPXu.js} +10 -13
- package/dist/{dist-CUnh_3Ii.js → dist-CYhQCVru.js} +2 -2
- package/dist/{dist-BBlFk9ki.js → dist-CZq5-ZyD.js} +1 -1
- package/dist/{dist-elblfNXO.js → dist-Cacac5HV.js} +2 -2
- package/dist/{dist-CChOkSUg.js → dist-CfQHSIQC.js} +3 -3
- package/dist/{dist-JCAky9ND.js → dist-CkvGMBAS.js} +17 -22
- package/dist/dist-Cs3McXEj.js +6 -0
- package/dist/{dist-o7fhJC7U.js → dist-CvyfRaIr.js} +3 -3
- package/dist/{dist-CZfRM7pE.js → dist-D-3fICwh.js} +2 -2
- package/dist/dist-D3aaithT.js +6 -0
- package/dist/{dist-CutXTm8t.js → dist-DBhEu3-F.js} +1 -1
- package/dist/dist-DELcMSpJ.js +6 -0
- package/dist/{dist-C7ASiFxI.js → dist-DMxl6Qbu.js} +273 -263
- package/dist/{dist-CLvpViod.js → dist-DS6nuHYK.js} +2 -3
- package/dist/dist-Dgts3WXd.js +6 -0
- package/dist/{dist--I6Htnlv.js → dist-DlHkZUnY.js} +5 -5
- package/dist/dist-Doiq_KIP.js +15 -0
- package/dist/dist-DtpUiDG_.js +6 -0
- package/dist/{dist-DzOpMdwb.js → dist-NUdHX0XE.js} +4 -4
- package/dist/{dist-C3WYsf4K.js → dist-PGgOcwbF.js} +4 -10
- package/dist/{dist-DNnYAdRE.js → dist-RdxOJbBw.js} +2 -2
- package/dist/{dist-BEvIw5Nh.js → dist-RwqAqkpG.js} +1 -1
- package/dist/dist-ZjnJq_jD.js +10 -0
- package/dist/{dist-CbRkrKrP.js → dist-biZ846D9.js} +5 -5
- package/dist/{dist-DW9er3Zq.js → dist-d5NxvX2s.js} +44 -23
- package/dist/{dist-C3QUag__.js → dist-ivwkJchV.js} +3 -3
- package/dist/dist-mof3iuBu.js +12 -0
- package/dist/{dist-Cib4sGDA.js → dist-reo2kYlN.js} +2 -2
- package/dist/{dist-BZBitvuL.js → dist-wHVprCkn.js} +1 -1
- package/dist/{dist-C5zMs_n5.js → dist-y8uoXYaE.js} +3 -3
- package/dist/{dist-DPF5TTUg.js → dist-z_iuDES7.js} +126 -115
- package/dist/{dockerfile-Dum_1b-5.js → dockerfile-sZMPcXVY.js} +1 -1
- package/dist/dtd-B2M8dhfC.js +4 -0
- package/dist/dylan-CU3Vt8SC.js +4 -0
- package/dist/ecl-B8ESAVq4.js +4 -0
- package/dist/eiffel-DDfMIKeA.js +4 -0
- package/dist/elm-Bj6rj8jf.js +4 -0
- package/dist/{erDiagram-AWTI2OKA-ZTIl9iQO.js → erDiagram-AWTI2OKA-CTxzb-U8.js} +20 -20
- package/dist/erlang-BxyshZUq.js +4 -0
- package/dist/{error-banner-OQIGTqFR.js → error-banner-npbEfanI.js} +13 -13
- package/dist/{esm-DxFkg7a6.js → esm-BdiY4QsX.js} +1528 -1492
- package/dist/{esm-d0g2RsOH.js → esm-CAWW9sum.js} +6 -8
- package/dist/{esm-1_Mp6VD2.js → esm-YY5zh7KV.js} +324 -395
- package/dist/{esm-BO9n_s6u.js → esm-svAVli9f.js} +5 -5
- package/dist/{factor-CdgiDGiu.js → factor-CRFTmP_a.js} +1 -1
- package/dist/factor-CYk6XT8r.js +5 -0
- package/dist/{flowDiagram-PVAE7QVJ-DsbofOzu.js → flowDiagram-PVAE7QVJ-Dck2hiJe.js} +22 -22
- package/dist/{formats-ChrNdVdJ.js → formats-BnqXUb1V.js} +13 -17
- package/dist/forth-fcoJkd-f.js +4 -0
- package/dist/fortran-IxZHu4wc.js +4 -0
- package/dist/{fullscreen-D1yTiBlu.js → fullscreen-blsKUrtN.js} +741 -744
- package/dist/{ganttDiagram-OWAHRB6G-FnCH1Yj3.js → ganttDiagram-OWAHRB6G-AWzfzpup.js} +9 -9
- package/dist/gas-B8rmKcim.js +4 -0
- package/dist/gherkin-BTm-jIdJ.js +4 -0
- package/dist/gitGraph-ZV4HHKMB-DFg_OLQb.js +21 -0
- package/dist/{gitGraphDiagram-NY62KEGX-B0wvMNqU.js → gitGraphDiagram-NY62KEGX-GyNboWSV.js} +31 -34
- package/dist/{glide-data-editor-D_kEsT07.js → glide-data-editor-DHuN8kQ8.js} +1650 -1720
- package/dist/{graphlib-BGmr7CYF.js → graphlib-hb3zmtVD.js} +5 -5
- package/dist/groovy-01kRHFMD.js +4 -0
- package/dist/haskell-B3PhE05w.js +4 -0
- package/dist/haxe-DEoAm8oA.js +5 -0
- package/dist/{hotkeys-yFrUwyJK.js → hotkeys-Ct2T3e9O.js} +4 -7
- package/dist/idl-DsDJU9cV.js +4 -0
- package/dist/info-63CPKGFF-D3DZmDBa.js +21 -0
- package/dist/infoDiagram-STP46IZ2-ec08vi_U.js +44 -0
- package/dist/{isArrayLikeObject-DiDsNamC.js → isArrayLikeObject-BlvK28do.js} +3 -5
- package/dist/{isEmpty-BBG-u1GM.js → isEmpty--odfYjh1.js} +2 -2
- package/dist/{isSymbol-BxF-_8BA.js → isSymbol-Cb1f2HgO.js} +1 -1
- package/dist/{javascript-Dfq1qI35.js → javascript-BfCTmOnk.js} +2 -2
- package/dist/javascript-gwczVhuU.js +5 -0
- package/dist/jinja2-AkZRdFk3.js +4 -0
- package/dist/{journeyDiagram-BIP6EPQ6-B3PotfAW.js → journeyDiagram-BIP6EPQ6-TmXYCUbT.js} +23 -24
- package/dist/julia-_s6qe3bf.js +4 -0
- package/dist/{kanban-definition-6OIFK2YF-BTrQZ3LN.js → kanban-definition-6OIFK2YF-B6ozleHo.js} +15 -15
- package/dist/{katex-dN__NFdn.js → katex-mPzRsXEy.js} +1 -1
- package/dist/{katex-BE4xflfm.js → katex-mkWmhPUh.js} +149 -173
- package/dist/{label-BinTsX-u.js → label-VVRKZmrP.js} +21 -24
- package/dist/{linear-DyTdUIqX.js → linear-iebAbJVD.js} +1 -1
- package/dist/livescript-CwPHQdv5.js +4 -0
- package/dist/{loader-Dijti3y4.js → loader-CM0VALo9.js} +19 -26
- package/dist/lua-s7nRxkCP.js +4 -0
- package/dist/main.js +8161 -8431
- package/dist/{marked.esm-3RjvXPoO.js → marked.esm-DJM8la36.js} +5 -5
- package/dist/mathematica-Ci36yd1q.js +4 -0
- package/dist/mbox-DbOYMNCO.js +4 -0
- package/dist/{memoize-Dq87l1O_.js → memoize-DYoRBSLn.js} +1 -1
- package/dist/{merge-BPDCIm8P.js → merge-BjuR6j_w.js} +1 -1
- package/dist/{mermaid-MWiyXDcI.js → mermaid-YPPMBmhk.js} +58 -76
- package/dist/{mermaid-parser.core-CSFx6MQ7.js → mermaid-parser.core-BLkyTSZj.js} +8 -8
- package/dist/{mhchem-DZ68WS0G.js → mhchem-Dw7wvXtr.js} +1 -1
- package/dist/{min-BzhKOmZo.js → min-B_i2ahn4.js} +7 -7
- package/dist/{mindmap-definition-Q6HEUPPD-9hhnrO1k.js → mindmap-definition-Q6HEUPPD-F6-JnXwq.js} +17 -17
- package/dist/mirc-VmNe8AwF.js +4 -0
- package/dist/mllike-BdD7SJEa.js +6 -0
- package/dist/modelica-BA4VqzC3.js +4 -0
- package/dist/mscgen-DF-5WHJm.js +6 -0
- package/dist/mumps-c_Uia_QN.js +4 -0
- package/dist/{node-sql-parser-13oju30e.js → node-sql-parser-BqKV-TpL.js} +14343 -14351
- package/dist/{now-DVBcRCoE.js → now-CwRqw0nS.js} +1 -1
- package/dist/nsis-BAANGODV.js +5 -0
- package/dist/{nsis-BW6_XagK.js → nsis-BWJEeUyS.js} +1 -1
- package/dist/ntriples-Bslqh2Ki.js +4 -0
- package/dist/{number-overlay-editor-D1YdiOrm.js → number-overlay-editor-CeyruAX4.js} +17 -23
- package/dist/octave-DYn5ltia.js +4 -0
- package/dist/oz-B_N-StZq.js +4 -0
- package/dist/packet-HUATNLJX-CkqjFdAv.js +21 -0
- package/dist/pascal-DU4CtAUu.js +4 -0
- package/dist/perl-Bae6k32u.js +4 -0
- package/dist/pie-WTHONI2E-D0rWwX5P.js +21 -0
- package/dist/{pieDiagram-ADFJNKIX-CSBC0ZgF.js → pieDiagram-ADFJNKIX-C5dSQVCn.js} +28 -28
- package/dist/pig-DSIxUEgX.js +4 -0
- package/dist/powershell-31lcPgIF.js +4 -0
- package/dist/powershell-BZx53Ujw.js +236 -0
- package/dist/properties-lmYbntDG.js +4 -0
- package/dist/protobuf-BTYoCEpV.js +4 -0
- package/dist/pug-DMFM7zzO.js +5 -0
- package/dist/{pug-Bmups_z0.js → pug-PJh82u1M.js} +1 -1
- package/dist/puppet-B0ub07d-.js +4 -0
- package/dist/python-C4jT87Nt.js +5 -0
- package/dist/{q-BzWcnVri.js → q-CMoUHJ5Q.js} +3 -2
- package/dist/q-YbPYlqRI.js +4 -0
- package/dist/{quadrantDiagram-LMRXKWRM-h7nHf8xG.js → quadrantDiagram-LMRXKWRM-DlahxNiy.js} +7 -7
- package/dist/r-OfNu6HAI.js +4 -0
- package/dist/radar-NJJJXTRR-Bxqv4O5a.js +21 -0
- package/dist/{range-CgK0-PEw.js → range-DxfkexCE.js} +3 -3
- package/dist/{react-plotly-BZakcxdv.js → react-plotly-D_IAfR8f.js} +4364 -4705
- package/dist/{requirementDiagram-4UW4RH46-BGEurQYq.js → requirementDiagram-4UW4RH46-DTkinyvU.js} +17 -17
- package/dist/rpm-D_3b5peD.js +5 -0
- package/dist/ruby-CehsJy_T.js +4 -0
- package/dist/{sankeyDiagram-GR3RE2ED-CxeJ_jfl.js → sankeyDiagram-GR3RE2ED-CsLnEnnq.js} +3 -3
- package/dist/sas-DwQHzPoF.js +4 -0
- package/dist/scheme-B6ArxiQu.js +4 -0
- package/dist/{sequenceDiagram-C3RYC4MD-CbFxwyr_.js → sequenceDiagram-C3RYC4MD-BdEOR6SC.js} +20 -30
- package/dist/shell-AHmQgDfc.js +4 -0
- package/dist/sieve-CgodKOcx.js +4 -0
- package/dist/{simple-mode-Cgyya8F-.js → simple-mode-BP3Jd4vf.js} +1 -1
- package/dist/{slides-component-BEyG25AH.js → slides-component-2bbal1YJ.js} +24 -46
- package/dist/smalltalk-BeFzDkbo.js +4 -0
- package/dist/sparql-BWxq-Lnx.js +4 -0
- package/dist/{src-BNNJRxz3.js → src-DZkaBUmt.js} +6 -6
- package/dist/{stateDiagram-KXAO66HF-A61bMf29.js → stateDiagram-KXAO66HF-DQLH2jhP.js} +39 -41
- package/dist/stateDiagram-v2-UMBNRL4Z-D9v8fKjF.js +38 -0
- package/dist/stex-Dvaq0qsm.js +5 -0
- package/dist/style.css +1 -1
- package/dist/stylus-Ge0ofWlZ.js +4 -0
- package/dist/swift-CjQfbVxV.js +4 -0
- package/dist/tcl-CAGDF11K.js +4 -0
- package/dist/textile-CrXreJtf.js +4 -0
- package/dist/{time-D3tzCqJ6.js → time-CFkXkVrt.js} +1 -1
- package/dist/{timeline-definition-XQNQX7LJ-BwdsB7CR.js → timeline-definition-XQNQX7LJ-bToVq14i.js} +4 -5
- package/dist/{timer-D3Zlu9ow.js → timer-CzOhIJuk.js} +2 -2
- package/dist/{toNumber-efKT08hh.js → toNumber-EFF1Z9T1.js} +2 -2
- package/dist/{toString-BvCd3yJc.js → toString-C2mCkasT.js} +2 -2
- package/dist/toml-AdLXKwEi.js +4 -0
- package/dist/{toml-CIUkU1CP.js → toml-eSl4PUAH.js} +6 -2
- package/dist/treemap-75Q7IDZK-Da9Jv6a_.js +21 -0
- package/dist/troff-C-LaM2ex.js +4 -0
- package/dist/ttcn-DTclUi6T.js +4 -0
- package/dist/ttcn-cfg-BtBPbmLX.js +4 -0
- package/dist/turtle-BODDDg5O.js +4 -0
- package/dist/{types-1X1uZB4y.js → types-CRXV0KD5.js} +84 -95
- package/dist/{useAsyncData-C4IqQK0g.js → useAsyncData-uMVTsDI9.js} +1 -1
- package/dist/{useDateFormatter-BCsBqetx.js → useDateFormatter-Dcz7jstn.js} +6 -6
- package/dist/{useTheme-C2pgJzDH.js → useTheme-NbEx-ZNV.js} +13 -10
- package/dist/vb-Cb1HQHii.js +4 -0
- package/dist/vbscript-CpXOP4wZ.js +4 -0
- package/dist/{vega-component-Cv4J8CHz.js → vega-component-hegVmfuS.js} +21 -21
- package/dist/{vega-loader.browser.module-Bi3ttvdj.js → vega-loader.browser.module-DcW8jnKp.js} +1 -2
- package/dist/velocity-Dz0rBQIk.js +4 -0
- package/dist/verilog-6Di9aLKw.js +4 -0
- package/dist/vhdl-BRNesXYc.js +4 -0
- package/dist/webidl-BpRNYIYn.js +4 -0
- package/dist/xquery-DXWcJ7b6.js +4 -0
- package/dist/{xychartDiagram-6GGTOJPD-BJRRi5HC.js → xychartDiagram-6GGTOJPD-C7Bhm_yt.js} +12 -13
- package/dist/yacas-DbSARPz4.js +4 -0
- package/dist/z80-DzslPj_l.js +4 -0
- package/dist/{zod-UPQf9SGn.js → zod-ChY6miG5.js} +71 -81
- package/package.json +12 -12
- package/src/__mocks__/requests.ts +2 -0
- package/src/components/app-config/user-config-form.tsx +29 -25
- package/src/components/chat/chat-utils.ts +11 -4
- package/src/components/data-table/__tests__/header-items.test.tsx +117 -0
- package/src/components/data-table/column-header.tsx +4 -2
- package/src/components/data-table/columns.tsx +2 -1
- package/src/components/data-table/data-table.tsx +7 -2
- package/src/components/data-table/header-items.tsx +63 -10
- package/src/components/dependency-graph/custom-node.tsx +11 -11
- package/src/components/dependency-graph/elements.ts +9 -4
- package/src/components/dependency-graph/panels.tsx +6 -4
- package/src/components/editor/Output.tsx +6 -1
- package/src/components/editor/ai/ai-completion-editor.tsx +135 -5
- package/src/components/editor/ai/completion-handlers.tsx +106 -22
- package/src/components/editor/cell/code/cell-editor.tsx +5 -0
- package/src/components/editor/chrome/panels/cache-panel.tsx +216 -0
- package/src/components/editor/chrome/panels/empty-state.tsx +3 -1
- package/src/components/editor/chrome/types.ts +66 -22
- package/src/components/editor/chrome/wrapper/app-chrome.tsx +2 -0
- package/src/components/editor/errors/auto-fix.tsx +138 -32
- package/src/components/editor/errors/fix-mode.ts +15 -0
- package/src/components/editor/navigation/__tests__/clipboard.test.ts +0 -5
- package/src/components/editor/navigation/clipboard.ts +2 -1
- package/src/components/editor/notebook-cell.tsx +20 -7
- package/src/components/editor/output/ConsoleOutput.tsx +27 -33
- package/src/components/editor/output/JsonOutput.tsx +9 -0
- package/src/components/editor/output/MarimoTracebackOutput.tsx +10 -7
- package/src/components/editor/output/__tests__/json-output.test.ts +43 -0
- package/src/components/editor/package-alert.tsx +3 -0
- package/src/components/forms/__tests__/form-utils.test.ts +4 -2
- package/src/components/icons/copy-icon.tsx +11 -5
- package/src/components/shortcuts/renderShortcut.tsx +3 -1
- package/src/components/ui/button.tsx +2 -0
- package/src/components/ui/confirmation-button.tsx +85 -0
- package/src/components/ui/switch.tsx +2 -0
- package/src/core/ai/context/providers/__tests__/datasource.test.ts +9 -1
- package/src/core/ai/context/providers/datasource.ts +25 -1
- package/src/core/ai/state.ts +6 -3
- package/src/core/ai/tools/__tests__/registry.test.ts +33 -8
- package/src/core/ai/tools/base.ts +81 -1
- package/src/core/ai/tools/registry.ts +36 -10
- package/src/core/ai/tools/sample-tool.ts +44 -8
- package/src/core/cache/requests.ts +5 -0
- package/src/core/cells/cells.ts +1 -1
- package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +2 -0
- package/src/core/codemirror/__tests__/replace-editor-content.test.ts +336 -0
- package/src/core/codemirror/find-replace/navigate.ts +2 -2
- package/src/core/codemirror/format.ts +2 -9
- package/src/core/codemirror/language/__tests__/sql.test.ts +24 -6
- package/src/core/codemirror/language/languages/python.ts +1 -3
- package/src/core/codemirror/language/languages/sql/sql.ts +23 -13
- package/src/core/codemirror/language/panel/panel.tsx +1 -6
- package/src/core/codemirror/language/utils.ts +3 -8
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +21 -14
- package/src/core/codemirror/lsp/federated-lsp.ts +20 -9
- package/src/core/codemirror/lsp/notebook-lsp.ts +35 -29
- package/src/core/codemirror/lsp/types.ts +0 -13
- package/src/core/codemirror/replace-editor-content.ts +87 -0
- package/src/core/config/__tests__/config-schema.test.ts +3 -0
- package/src/core/config/config-schema.ts +8 -0
- package/src/core/config/feature-flag.tsx +2 -4
- package/src/core/errors/__tests__/errors.test.ts +1 -0
- package/src/core/errors/errors.ts +20 -6
- package/src/core/islands/bridge.ts +2 -0
- package/src/core/islands/main.ts +4 -0
- package/src/core/kernel/messages.ts +1 -0
- package/src/core/network/requests-network.ts +14 -0
- package/src/core/network/requests-static.ts +2 -0
- package/src/core/network/requests-toasting.ts +2 -0
- package/src/core/network/types.ts +5 -0
- package/src/core/saving/save-component.tsx +43 -36
- package/src/core/wasm/bridge.ts +2 -0
- package/src/core/websocket/useMarimoWebSocket.tsx +8 -0
- package/src/css/app/codemirror-completions.css +1 -1
- package/src/custom.d.ts +2 -0
- package/src/plugins/core/registerReactComponent.tsx +5 -1
- package/src/plugins/impl/DataTablePlugin.tsx +19 -19
- package/src/plugins/impl/__tests__/DateTimePickerPlugin.test.tsx +32 -0
- package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
- package/src/plugins/impl/chat/chat-ui.tsx +17 -2
- package/src/plugins/impl/chat/types.ts +1 -1
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +7 -2
- package/src/plugins/impl/plotly/__tests__/parse-from-template.test.ts +17 -0
- package/src/plugins/impl/plotly/parse-from-template.ts +2 -1
- package/src/utils/__tests__/formatting.test.ts +107 -0
- package/src/utils/__tests__/json-parser.test.ts +13 -0
- package/src/utils/copy.ts +6 -0
- package/src/utils/formatting.ts +51 -0
- package/src/utils/json/json-parser.ts +28 -3
- package/dist/any-language-editor-CVFQlioK.js +0 -156
- package/dist/apl-ChlaBfxB.js +0 -4
- package/dist/architecture-O4VJ6CD3-BVeaxUcM.js +0 -21
- package/dist/asciiarmor-CcJmm3l_.js +0 -4
- package/dist/asn1-ThRYxoBE.js +0 -4
- package/dist/assets/__vite-browser-external-Dv_SHu1h.js +0 -1
- package/dist/assets/worker-DVOR9oZG.js +0 -54
- package/dist/brainfuck-CEM0JgDn.js +0 -4
- package/dist/chunk-EXTU4WIE-DECT9AAK.js +0 -14
- package/dist/chunk-S3R3BYOJ-DMQ1yeyq.js +0 -386
- package/dist/classDiagram-KNZD7YFC-BG53O6Jt.js +0 -39
- package/dist/classDiagram-v2-RKCZMP56-BmKILsGU.js +0 -39
- package/dist/clojure-B7RHyE9t.js +0 -4
- package/dist/cmake-TeTMP4I5.js +0 -4
- package/dist/cobol-DI-mxUER.js +0 -4
- package/dist/coffeescript-DHUFLqWp.js +0 -4
- package/dist/commonlisp-SLiUrh1m.js +0 -4
- package/dist/crystal-B4fY1ZfJ.js +0 -4
- package/dist/css-Bdoq3TzK.js +0 -5
- package/dist/cypher-CBU182fp.js +0 -4
- package/dist/d-D8myDZeH.js +0 -4
- package/dist/data-grid-overlay-editor-qNmJk2x0.js +0 -135
- package/dist/diagram-QEK2KX5R-fu8Noi3H.js +0 -245
- package/dist/diff-DJF_UB7H.js +0 -4
- package/dist/dist-52-_pKoy.js +0 -6
- package/dist/dist-6DOMStFn.js +0 -6
- package/dist/dist-B334aW7p.js +0 -10
- package/dist/dist-BOI9lUz-.js +0 -12
- package/dist/dist-C06uhBzF.js +0 -6
- package/dist/dist-CGkpguCB.js +0 -6
- package/dist/dist-CrApzUED.js +0 -6
- package/dist/dist-Dp2GLdCl.js +0 -14
- package/dist/dist-WHFsbMDr.js +0 -6
- package/dist/dist-hyKcTPG9.js +0 -10
- package/dist/dtd-DY8q65lC.js +0 -4
- package/dist/dylan-CBLcjWCi.js +0 -4
- package/dist/ecl-BSXPNfOw.js +0 -4
- package/dist/eiffel-BJf0PQX-.js +0 -4
- package/dist/elm-DWQwPCZS.js +0 -4
- package/dist/erlang-BWBaGZ5e.js +0 -4
- package/dist/factor-DT1-MBPl.js +0 -5
- package/dist/forth-D9GDt3FB.js +0 -4
- package/dist/fortran-DHkRhDWw.js +0 -4
- package/dist/gas-7lQEOM0H.js +0 -4
- package/dist/gherkin-BLLyroYi.js +0 -4
- package/dist/gitGraph-ZV4HHKMB-z2v_cInC.js +0 -21
- package/dist/groovy-C-wabwj0.js +0 -4
- package/dist/haskell-DaxVQ_d1.js +0 -4
- package/dist/haxe-C2yLoC7h.js +0 -5
- package/dist/idl-DQBP8i7k.js +0 -4
- package/dist/info-63CPKGFF-GS4w6pCB.js +0 -21
- package/dist/infoDiagram-STP46IZ2-DE9YYPFg.js +0 -44
- package/dist/javascript-DRwFV9r5.js +0 -5
- package/dist/jinja2-CNoIpVmN.js +0 -4
- package/dist/julia-DXDf-GhP.js +0 -4
- package/dist/livescript-S2uhJQx7.js +0 -4
- package/dist/lua-Bvgs0y2G.js +0 -4
- package/dist/mathematica-D2zqfwIg.js +0 -4
- package/dist/mbox-SBcPaDuZ.js +0 -4
- package/dist/mirc-hkQc7sVF.js +0 -4
- package/dist/mllike-DRWPBlr9.js +0 -6
- package/dist/modelica-CO2ROGlP.js +0 -4
- package/dist/mscgen-BpX61bO6.js +0 -6
- package/dist/mumps-BCnFeIn6.js +0 -4
- package/dist/nsis-BaTOxlD1.js +0 -5
- package/dist/ntriples-zEo5BWjr.js +0 -4
- package/dist/octave-BE0RnCM9.js +0 -4
- package/dist/oz-C4_2Ttul.js +0 -4
- package/dist/packet-HUATNLJX-CjHqJIqk.js +0 -21
- package/dist/pascal-Q3jJucpw.js +0 -4
- package/dist/perl-DkXZIWHF.js +0 -4
- package/dist/pie-WTHONI2E-D67gLWtR.js +0 -21
- package/dist/pig-DCgEHdsu.js +0 -4
- package/dist/powershell-3rK_nRRJ.js +0 -236
- package/dist/powershell-Eo2-7MoM.js +0 -4
- package/dist/properties-C0IOX8WR.js +0 -4
- package/dist/protobuf--lGQUSRO.js +0 -4
- package/dist/pug-Cf8AQHMJ.js +0 -5
- package/dist/puppet-D7Z3dTJn.js +0 -4
- package/dist/python-FHIx_i8Y.js +0 -5
- package/dist/q-B7UA1feM.js +0 -4
- package/dist/r-Cc9R2A7N.js +0 -4
- package/dist/radar-NJJJXTRR-C-AZP_Te.js +0 -21
- package/dist/rpm-vhJNlrQ6.js +0 -5
- package/dist/ruby-CVluPY0M.js +0 -4
- package/dist/sas-A8DL8oy3.js +0 -4
- package/dist/scheme-6xHHcSXC.js +0 -4
- package/dist/shell-DHN-e5rf.js +0 -4
- package/dist/sieve-BuQwLY02.js +0 -4
- package/dist/smalltalk-BA4HPg2H.js +0 -4
- package/dist/sparql-Bf4yCuy3.js +0 -4
- package/dist/stateDiagram-v2-UMBNRL4Z-C_0FUzzk.js +0 -38
- package/dist/stex-D-I1cYeE.js +0 -5
- package/dist/stylus-BMeped2l.js +0 -4
- package/dist/swift-lwEdlZoC.js +0 -4
- package/dist/tcl-B03ipeqv.js +0 -4
- package/dist/toml-BLgrVtfu.js +0 -4
- package/dist/treemap-75Q7IDZK-DTvwfpWt.js +0 -21
- package/dist/troff-g6EjN2O2.js +0 -4
- package/dist/ttcn-Dzvba8jK.js +0 -4
- package/dist/ttcn-cfg-CadG0p1K.js +0 -4
- package/dist/turtle-DkXAMWo9.js +0 -4
- package/dist/vb-C5dCiel8.js +0 -4
- package/dist/vbscript-I4bDEQln.js +0 -4
- package/dist/velocity-mt0fDwFH.js +0 -4
- package/dist/verilog-Dxq3KJkc.js +0 -4
- package/dist/vhdl-Km0QUlV-.js +0 -4
- package/dist/webidl-B3lJ2MRL.js +0 -4
- package/dist/xquery-CcIxNPEe.js +0 -4
- package/dist/yacas-oMa-f-tN.js +0 -4
- package/dist/z80-D03Nvn6l.js +0 -4
- /package/dist/{apl-DZqo8Elt.js → apl-CEHentF4.js} +0 -0
- /package/dist/{asciiarmor-DTzHAIeX.js → asciiarmor-DURYiCS0.js} +0 -0
- /package/dist/{asn1-DrAXKsZH.js → asn1-ETAiEoXY.js} +0 -0
- /package/dist/{asterisk-oF4U3h48.js → asterisk-DTpbbXPb.js} +0 -0
- /package/dist/{brainfuck-BYgLey30.js → brainfuck-BWQep-SA.js} +0 -0
- /package/dist/{clojure-Bs2M3OUY.js → clojure-BzFapDkA.js} +0 -0
- /package/dist/{cmake-DpI8vxJN.js → cmake-DvlbIC8x.js} +0 -0
- /package/dist/{cobol-BQyrWo72.js → cobol-BrEI4cPR.js} +0 -0
- /package/dist/{coffeescript-9ke9UHmw.js → coffeescript-B6cvu8mO.js} +0 -0
- /package/dist/{common-keywords-BzgeAvH1.js → common-keywords-WqQm7W8t.js} +0 -0
- /package/dist/{commonlisp-DghUdrUH.js → commonlisp-BIT8PQqi.js} +0 -0
- /package/dist/{crystal-DEf_SInh.js → crystal-B_UcPArT.js} +0 -0
- /package/dist/{css-BzTU9lNO.js → css-dHbnt_zl.js} +0 -0
- /package/dist/{cypher-a2v0c11S.js → cypher-Dh3FOpL7.js} +0 -0
- /package/dist/{d-SAswny-M.js → d-CQD1IHee.js} +0 -0
- /package/dist/{diff-OJ-xLXcG.js → diff-CpF_IDx0.js} +0 -0
- /package/dist/{dtd-BsUf-rer.js → dtd-DYoNpy6c.js} +0 -0
- /package/dist/{duckdb-keywords-B0NOra5o.js → duckdb-keywords-CdIsl9L0.js} +0 -0
- /package/dist/{dylan-C0ZYngjn.js → dylan-Bc_2G1E-.js} +0 -0
- /package/dist/{ebnf-DF1xx0b_.js → ebnf-jGVT_YpN.js} +0 -0
- /package/dist/{ecl-Bsuvoouq.js → ecl-UIU-P-Ar.js} +0 -0
- /package/dist/{eiffel-DgfSpLi-.js → eiffel-C90Oyuix.js} +0 -0
- /package/dist/{elm-GNxDj-5E.js → elm-B9fWSySj.js} +0 -0
- /package/dist/{erlang-Ds3uY1kL.js → erlang-Ccff0UAn.js} +0 -0
- /package/dist/{fcl-CqBgSioc.js → fcl-CGR8NxAg.js} +0 -0
- /package/dist/{forth-JCaLysGk.js → forth-U1ROGcBY.js} +0 -0
- /package/dist/{fortran-Dc2AoKAl.js → fortran-3nOkjDmc.js} +0 -0
- /package/dist/{gas-Q4Uz82YW.js → gas-B_4H5FzV.js} +0 -0
- /package/dist/{gherkin-Dpxe49sQ.js → gherkin-B0eru5Uz.js} +0 -0
- /package/dist/{groovy-D8mTRCu6.js → groovy-dqjtZUVf.js} +0 -0
- /package/dist/{haskell-2_8cC4wY.js → haskell-DFzCCQzo.js} +0 -0
- /package/dist/{haxe-Bl9zkZlz.js → haxe-Da8Pj5RT.js} +0 -0
- /package/dist/{http-DKCqY6yS.js → http-1HACL_9s.js} +0 -0
- /package/dist/{idl-Dn-HNfGW.js → idl-D3NXs5iM.js} +0 -0
- /package/dist/{jinja2-JjFiAGKk.js → jinja2-gBHAxUdF.js} +0 -0
- /package/dist/{julia-R5wne8eu.js → julia-bG-6nJ-_.js} +0 -0
- /package/dist/{livescript-DSwokrYj.js → livescript-BlsRC8UJ.js} +0 -0
- /package/dist/{lua-CgXfrp2-.js → lua-BbDC0_5w.js} +0 -0
- /package/dist/{mathematica-BVli92MR.js → mathematica-YZTe3-PF.js} +0 -0
- /package/dist/{mbox-CMFlocdS.js → mbox-CY5idp08.js} +0 -0
- /package/dist/{mirc-BkW04Zpc.js → mirc-CbQuFZKk.js} +0 -0
- /package/dist/{mllike-DEjvHvNV.js → mllike-DsbHMX-5.js} +0 -0
- /package/dist/{modelica-CxDn-oje.js → modelica-CQuvsOQk.js} +0 -0
- /package/dist/{mscgen-D78wmE-w.js → mscgen-LIpBP9VR.js} +0 -0
- /package/dist/{mumps-Bi0IvPOV.js → mumps-Ct5NXoaG.js} +0 -0
- /package/dist/{nginx-DErPZFhX.js → nginx-Dvc62C8z.js} +0 -0
- /package/dist/{ntriples-Btyp6wRL.js → ntriples-jVkxWUuv.js} +0 -0
- /package/dist/{octave-CZA6-2F8.js → octave-jGOImUB0.js} +0 -0
- /package/dist/{oz-Bm6LSNfE.js → oz-Y0FKDMS2.js} +0 -0
- /package/dist/{pascal-B4J6a9BH.js → pascal-BaLtPWWB.js} +0 -0
- /package/dist/{perl-CzVqxS08.js → perl-CjfE0JLo.js} +0 -0
- /package/dist/{pig-Clh03cnn.js → pig-DE4epV99.js} +0 -0
- /package/dist/{properties-D7ch1Wyb.js → properties-CLyCG5C-.js} +0 -0
- /package/dist/{protobuf-DrkdrMPK.js → protobuf-BjBBs_V4.js} +0 -0
- /package/dist/{puppet-BtZG8zdO.js → puppet-ZImLuomA.js} +0 -0
- /package/dist/{python-B6FKOVIv.js → python-C9YN71pR.js} +0 -0
- /package/dist/{r-Dnvo5-96.js → r-DILmKWWW.js} +0 -0
- /package/dist/{rpm-B1DrgfnX.js → rpm-fpIsm1Kr.js} +0 -0
- /package/dist/{ruby-CelfUg17.js → ruby-BuiQI41h.js} +0 -0
- /package/dist/{sas-DfSQFMWG.js → sas-C76sJ1zF.js} +0 -0
- /package/dist/{scheme-BplhaWuO.js → scheme-DHjM-txv.js} +0 -0
- /package/dist/{shell-DqU5OS2c.js → shell--7NmGJ9p.js} +0 -0
- /package/dist/{sieve-BE4_IyGa.js → sieve-DaPvBv1M.js} +0 -0
- /package/dist/{smalltalk-B_WPL8Nx.js → smalltalk-KPvwrjCs.js} +0 -0
- /package/dist/{solr-DlJFg7H5.js → solr-PvZUtEDb.js} +0 -0
- /package/dist/{sparql-7XIlcOgW.js → sparql-CXSUIQer.js} +0 -0
- /package/dist/{spreadsheet-BdZSVwVp.js → spreadsheet-DPJdGPkx.js} +0 -0
- /package/dist/{sql-CCrq7lfJ.js → sql-Dp4ZLSIa.js} +0 -0
- /package/dist/{stex-BiFc8QAu.js → stex-CeXW4zzk.js} +0 -0
- /package/dist/{stylus-DlSH9xpH.js → stylus-BXcmrg9w.js} +0 -0
- /package/dist/{swift-e3tMTZgJ.js → swift-DD8I7hKP.js} +0 -0
- /package/dist/{tcl-DfZMC20G.js → tcl-B9Lp4GtA.js} +0 -0
- /package/dist/{textile-DaSeca5U.js → textile-qdiY0teq.js} +0 -0
- /package/dist/{tiddlywiki-dfoiz8pS.js → tiddlywiki-t32lkubq.js} +0 -0
- /package/dist/{tiki-yJbQzhma.js → tiki-B0qKrSMl.js} +0 -0
- /package/dist/{troff-FN_FrCXR.js → troff-105XJOEu.js} +0 -0
- /package/dist/{ttcn-7_i4HlyB.js → ttcn-1_BxDcM8.js} +0 -0
- /package/dist/{ttcn-cfg-B46AlBUV.js → ttcn-cfg-Cn_XgXiw.js} +0 -0
- /package/dist/{turtle-QQfeFveR.js → turtle-BI6LyfEu.js} +0 -0
- /package/dist/{vb-DToPVnLa.js → vb-BecoBfmr.js} +0 -0
- /package/dist/{vbscript-CtsNaTz4.js → vbscript-De-zpA4i.js} +0 -0
- /package/dist/{velocity-CAoNe6ns.js → velocity-DhlYJTrD.js} +0 -0
- /package/dist/{verilog-DrDOMiJq.js → verilog-BDZgxDOW.js} +0 -0
- /package/dist/{vhdl-DnO0OEPh.js → vhdl-CV0OKTbp.js} +0 -0
- /package/dist/{webidl-Or6d1ZfA.js → webidl-BOM1Fs0O.js} +0 -0
- /package/dist/{xquery-CEp_Mcpr.js → xquery-CltP_CGh.js} +0 -0
- /package/dist/{yacas-DgnYrSlp.js → yacas-Dch4E2Dg.js} +0 -0
- /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
|
-
|
|
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
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
}
|
|
226
|
-
|
|
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
|
-
|
|
381
|
-
|
|
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 (!
|
|
395
|
-
Logger.warn("No view for 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 (
|
|
401
|
-
|
|
406
|
+
if (ev.state.doc.toString() !== newCode) {
|
|
407
|
+
ev.dispatch({
|
|
402
408
|
changes: {
|
|
403
409
|
from: 0,
|
|
404
|
-
to:
|
|
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
|
-
|
|
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
|
-
|
|
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>(
|
|
@@ -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
|
-
|
|
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.
|
|
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:
|
|
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({
|
package/src/core/islands/main.ts
CHANGED
|
@@ -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);
|