@sheetxl/mcp 0.0.0-stage → 0.8.0-beta.15
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/LICENSE.md +11 -0
- package/README.md +72 -2
- package/agent/instructions.md +66 -0
- package/assets/9U9XCqqdn-q3i2fj.js +123 -0
- package/assets/B-MqXm_7luDLwazY.js +596 -0
- package/assets/B2Ek-DWpZMGJ0V1Z.js +18 -0
- package/assets/B2udpZ-uIaql3AUh.js +104 -0
- package/assets/B4VnJacrzr1x4PHR.js +402 -0
- package/assets/B5lHOOQ_rkP4Mi2r.js +638 -0
- package/assets/B7gUyrfLln3TiyKM.js +14 -0
- package/assets/B9US2ZrF93KOjmAx.js +22 -0
- package/assets/BBb_3gEGzmEzbTIk.js +359 -0
- package/assets/BCy1zP97fsiIcvj6.js +18 -0
- package/assets/BFXeoFUbuc4IKTz9.js +28 -0
- package/assets/BFdeov2e_xUQPEY_.js +202 -0
- package/assets/BG5kgbDRXMc0re6W.js +242 -0
- package/assets/BJxfinOazQqqByc-.js +105 -0
- package/assets/BOPsJmq7v7HOKUkO.js +32 -0
- package/assets/BPwmBu_aouERJjiW.js +45 -0
- package/assets/BQMDOjNBMjAx9WiW.js +3011 -0
- package/assets/BQbF1RkUH8WyXqSD.js +780 -0
- package/assets/BRzp6DEIYUgM3NkN.js +369 -0
- package/assets/BSxTn2BhkEEeF9x_.js +2346 -0
- package/assets/BTQhJQ3e0hsiousD.js +28 -0
- package/assets/BZPTaa0WjpoUAbgZ.js +35 -0
- package/assets/BbAmA46MhQSu3ZF_.js +119 -0
- package/assets/BbcUxIZe3YXywsQR.js +28 -0
- package/assets/BeLr36oL3jmeXFFi.js +58 -0
- package/assets/Bg95xYj5siqhHVEz.js +594 -0
- package/assets/Bh0PNKlrR4VAqnP8.js +60500 -0
- package/assets/BjqQjxBuoXza8oqg.js +362 -0
- package/assets/BlPubAFi7DY7VrAo.js +33 -0
- package/assets/BleMG0hAQgjE8fTa.js +7 -0
- package/assets/Bn8D2bebQ2tFfwQt.js +310 -0
- package/assets/BrcQmHcE7Hcr1erJ.js +24 -0
- package/assets/BsQZI1vXTRE63Zy-.js +2368 -0
- package/assets/BtjqpAKczftx91BQ.js +96 -0
- package/assets/Btys7KwtvV3hz2F6.js +656 -0
- package/assets/BuUEsifnQALe49uk.js +857 -0
- package/assets/By-7OWXShMlFFejV.js +119 -0
- package/assets/C0CiMKC3lWK1z9p5.js +449 -0
- package/assets/C2OrZ8LZ-TI6eYG0.js +22 -0
- package/assets/C4z2IilWTuu2TWXw.js +3917 -0
- package/assets/C7ONfuYIWRmDu_vs.js +319 -0
- package/assets/C7Z1li2XjWi6bkrp.js +1556 -0
- package/assets/C97xDe_wBbLZh_uW.js +35 -0
- package/assets/CGBGyaCGdlZFQYK0.js +447 -0
- package/assets/CJ5WQnaoCsdr5gf4.js +1783 -0
- package/assets/CMK6tIDVqYYvK4GZ.js +55 -0
- package/assets/CMWAsUQ66V8fYrME.js +223 -0
- package/assets/CNz3LdmvsOEJoLO9.js +12 -0
- package/assets/CWVWdbY1B1-WLl9k.js +199 -0
- package/assets/CWl6oHiJxkNKRixk.js +17 -0
- package/assets/CXHslDxkWCuEcCSQ.js +13 -0
- package/assets/CZTSZL3T_f-vSXqM.js +7 -0
- package/assets/CduNzsdbTigxH-ZK.js +5220 -0
- package/assets/CecTe22WURiXbVdY.js +2260 -0
- package/assets/Cf2dcwmmmf13Rywg.js +146 -0
- package/assets/Cf9LpgZz-W5blzy_.js +27 -0
- package/assets/Cfhv_Yw_LT8VzAMt.js +255 -0
- package/assets/Cg51xaLRUkVOMdCZ.js +144 -0
- package/assets/ChWpsFGl-BYOnX_A.js +142 -0
- package/assets/ClNQN3vEg5b5qUDp.js +10289 -0
- package/assets/Crt2kLdGIlBHANgg.js +28 -0
- package/assets/CudNpUD78SrtJIiy.js +610 -0
- package/assets/CvngwB17_ve4W49b.js +639 -0
- package/assets/CwPBmcY6xSP8dNlh.js +51 -0
- package/assets/CxjchwpiqxPM1XKd.js +304 -0
- package/assets/D-ffk16w8c5w0mxI.js +71 -0
- package/assets/D0CHDsemn0S31ltt.js +32 -0
- package/assets/D7oUtYjetuykGhQ5.js +18 -0
- package/assets/D8J14MLlN2HRXdXB.js +20 -0
- package/assets/DA_ar3QKLKtJ9fJD.js +37 -0
- package/assets/DB-tkqI6wFXDKEfB.js +118 -0
- package/assets/DD8HNAUFroTCuD-b.js +7514 -0
- package/assets/DDnwKPJSznyfYDZS.js +49 -0
- package/assets/DEW2GxfGYqVFvrfg.js +23 -0
- package/assets/DH7sGHzxUqIQkDnd.js +16 -0
- package/assets/DJiLWtmPR2OQNjzi.js +19 -0
- package/assets/DKLm4nWzynGw1Kr9.js +15 -0
- package/assets/DPCKMM7sgWbrtB8z.js +81 -0
- package/assets/DTfl-4Iboi6TQU5m.js +37 -0
- package/assets/DVchxwp6w6lu2Ihu.js +7 -0
- package/assets/DaoSWy3EFlqpZaLr.js +4437 -0
- package/assets/DcWTBOi_iBFc6U4J.js +8338 -0
- package/assets/Dht2mcOSyYlPY32b.js +14 -0
- package/assets/Diee6f_qAmcZBd2_.js +52 -0
- package/assets/DkibD_CEVePaoj_y.js +7 -0
- package/assets/DlBdhv6NHgrNp5Yo.js +7 -0
- package/assets/DoILAmhKUOlKWRVw.js +12 -0
- package/assets/DpdHDTFOeuzDVNEe.js +405 -0
- package/assets/DsCI_ZYm_jDjXF3J.js +12996 -0
- package/assets/DvUUArnZwoYOKOuk.js +12 -0
- package/assets/DwLZpYUp85UHBE3H.js +63 -0
- package/assets/DwWngYJTgC0KLbih.js +184 -0
- package/assets/Dz8UUJ7Xc2oN5PBG.js +45 -0
- package/assets/FS9NbEKgQvz5wqvZ.js +1135 -0
- package/assets/F_f0jJqM5MrXGbwC.js +86 -0
- package/assets/FzNG48GE_wso6RII.js +173 -0
- package/assets/JO3zH9hupFSV6vj2.js +15 -0
- package/assets/LEJp05fjmflKgyqF.js +1760 -0
- package/assets/LyLlBk--VJD2V-f8.js +351 -0
- package/assets/OVRdpPUzR0-ueTxE.js +1860 -0
- package/assets/PpFbmF0DFeUdpb9I.js +145 -0
- package/assets/S16s2h9qoYVBlVEa.js +9137 -0
- package/assets/SHZe9VOU1prGs1F9.js +19 -0
- package/assets/U1XXGEPuuqIAzYl1.js +8 -0
- package/assets/ZuYfVKlp41IJnrOS.js +540 -0
- package/assets/_d5XJ7dn1CKKYrep.js +1131 -0
- package/assets/_fUXIv6nKvgZkhxn.js +23 -0
- package/assets/fDMpDhXp36CatF-G.js +23 -0
- package/assets/hulrR0PldUxMJm_F.js +504 -0
- package/assets/iujMYIEPx_v3sdPf.js +9109 -0
- package/assets/jPUOH4FHF4b-rapv.js +171 -0
- package/assets/jadLBUNBVR9mbZ35.js +4036 -0
- package/assets/jiEe5eKV3BFPBWfi.js +6294 -0
- package/assets/oxjm7Yr7u7MeaO5P.js +37 -0
- package/assets/vZZi_iKYHm05gAye.js +30 -0
- package/assets/wfVh0olISLRWdv9Q.js +47 -0
- package/assets/xmTQJJVyCrcq77WR.js +63 -0
- package/assets/xnhBSX6lAcmBM65y.js +32 -0
- package/index.js +8070 -0
- package/lib.js +7 -0
- package/licenses/dependencies.txt +1552 -0
- package/package.json +44 -3
- package/resources/contents.json +333 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
- package/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
- package/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
- package/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
- package/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/contents.json +646 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
- package/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
- package/resources/locales/@sheetxl/formulas/contents.json +9 -0
- package/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
- package/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
- package/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
- package/resources/locales/@sheetxl/sdk/contents.json +19 -0
- package/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
- package/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
- package/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
- package/screenshot-page/assets/-cpi3yOZYn6GsYN4.js +9 -0
- package/screenshot-page/assets/-i_fTASJeu9NdNH_.js +7 -0
- package/screenshot-page/assets/0MTaPYjKud2Q9QG9.js +1 -0
- package/screenshot-page/assets/21oAESJyBGXeHegm.js +2 -0
- package/screenshot-page/assets/3Ls_kOvlQseMV8Q0.js +1 -0
- package/screenshot-page/assets/4qZpl2QCzneWdmJO.js +1 -0
- package/screenshot-page/assets/6IEV7KeOEbBdrthj.js +1 -0
- package/screenshot-page/assets/8QrkTrKHDnMBb7q4.js +1 -0
- package/screenshot-page/assets/9w0ECZmzGUyk3F_O.js +1 -0
- package/screenshot-page/assets/AjS2PipZDIH3BXB2.js +1 -0
- package/screenshot-page/assets/B-KIwD5F_5S-NsPg.js +1 -0
- package/screenshot-page/assets/B-sAzW5ROrhvMGM4.js +1 -0
- package/screenshot-page/assets/B0FQypGas6gbGT_U.js +1 -0
- package/screenshot-page/assets/B2IQMVqTZT1rUnib.js +1 -0
- package/screenshot-page/assets/B2MJPcMcsuv6FekC.js +1 -0
- package/screenshot-page/assets/B2g3jiFIQ4Qjh5gG.js +1 -0
- package/screenshot-page/assets/B4PbXdzBe9BsoZ0e.js +2 -0
- package/screenshot-page/assets/B5GO9v4p9L70Xb9i.js +1 -0
- package/screenshot-page/assets/B8y_eLNCGnXLEIaE.js +1 -0
- package/screenshot-page/assets/BEuMvXYIa9A1JacY.js +1 -0
- package/screenshot-page/assets/BEwl-ucV9Jfr0RoC.js +1 -0
- package/screenshot-page/assets/BFaiQZKle44Rhyou.js +1 -0
- package/screenshot-page/assets/BHqg55S-4_OoAu3P.js +2 -0
- package/screenshot-page/assets/BNgLvS2bLOYKRguv.js +1 -0
- package/screenshot-page/assets/BQAN82ftWBiLJT3r.js +1 -0
- package/screenshot-page/assets/BQfe-XTIOGeUnD9B.js +1 -0
- package/screenshot-page/assets/BQnELVV0uR4T4ItQ.js +1 -0
- package/screenshot-page/assets/BRVZJ0OGJg9XJro6.js +1 -0
- package/screenshot-page/assets/BSdFVGZNhU6YHbMI.js +2 -0
- package/screenshot-page/assets/BTMW3ukmc44U2fy7.js +1 -0
- package/screenshot-page/assets/BTOQaSn9DDyJPUlX.js +1 -0
- package/screenshot-page/assets/BTboCICZ-951XWsi.js +1 -0
- package/screenshot-page/assets/BUGXf2DEBog16Slb.js +2 -0
- package/screenshot-page/assets/BUjI304IvdJnFXH3.js +1 -0
- package/screenshot-page/assets/B_W2QroTKADz3ABp.js +2 -0
- package/screenshot-page/assets/Baz0SC2AgGyxMX72.js +1 -0
- package/screenshot-page/assets/BbP9KThfrodyosvn.js +1 -0
- package/screenshot-page/assets/BcOdl17EeFSxnAiq.js +1 -0
- package/screenshot-page/assets/BclKeOKIOBjijhsu.js +1 -0
- package/screenshot-page/assets/Bf7xq8PyF4ohjMzP.js +2 -0
- package/screenshot-page/assets/BimyzECCZl-NESff.js +1 -0
- package/screenshot-page/assets/Bj-vfAT28PK-tWWa.js +2 -0
- package/screenshot-page/assets/BkLH7JH3A93TXFJi.js +1 -0
- package/screenshot-page/assets/BksaQEoZr5OWq-_d.js +3 -0
- package/screenshot-page/assets/BnoVwUBEor8NgQNs.js +4 -0
- package/screenshot-page/assets/BowRIybLgENunTOT.js +1 -0
- package/screenshot-page/assets/Bp7se0JaDGrzfSA_.js +1 -0
- package/screenshot-page/assets/Bx61vmiWY0Xvx9qs.js +1 -0
- package/screenshot-page/assets/ByY3fmwyDPAyOLdo.js +1 -0
- package/screenshot-page/assets/Bz5V1tmiy5gbT9ys.js +1 -0
- package/screenshot-page/assets/Bz9v1lgjvbu4QnOs.js +2 -0
- package/screenshot-page/assets/BzQ5GyiXq8gTz-H-.js +1 -0
- package/screenshot-page/assets/C1k_VrZqlpiUigCP.js +1 -0
- package/screenshot-page/assets/C2Wh2h27c7FUb8Yk.js +1 -0
- package/screenshot-page/assets/C6oLDVnuCS9LGkkH.js +1 -0
- package/screenshot-page/assets/C81mK8aZKZAAS-AB.js +1 -0
- package/screenshot-page/assets/C9SC-cEIt6gdhZRw.js +1 -0
- package/screenshot-page/assets/CE8MCCIiwjOVwBBW.js +1 -0
- package/screenshot-page/assets/CG3ynup87FmG-kkX.js +1 -0
- package/screenshot-page/assets/CHlWgOAlcRCjVuhg.js +1 -0
- package/screenshot-page/assets/CIged53b3hHKxa-o.js +1 -0
- package/screenshot-page/assets/CNQczIR5xcE5u5fT.js +1 -0
- package/screenshot-page/assets/CSUd8n1H0VBfREnk.js +2 -0
- package/screenshot-page/assets/CSlBTkRDITCC8JRB.js +1 -0
- package/screenshot-page/assets/CV2jr9hpQOG2OG0C.js +1 -0
- package/screenshot-page/assets/CXGgKVbVXjWzE0p6.js +1 -0
- package/screenshot-page/assets/CXKCmZ_TRyGaB9Ob.js +1 -0
- package/screenshot-page/assets/CXUO3vYip3JPSJ7A.js +1 -0
- package/screenshot-page/assets/CXwbGzavyvYgDbWU.js +1 -0
- package/screenshot-page/assets/CZf9s6otzzoaBlSs.js +1 -0
- package/screenshot-page/assets/CZvwQEeVhBilgKLG.js +1 -0
- package/screenshot-page/assets/Ca6nxdhEuLLty3d7.js +2 -0
- package/screenshot-page/assets/CbUDukmvDZmVfhJH.js +1 -0
- package/screenshot-page/assets/CbXtAM7H-Jg_J0dk.js +1 -0
- package/screenshot-page/assets/CctIRGMFmARVi2KT.js +1 -0
- package/screenshot-page/assets/Cenh1POxiGMxIQlv.js +1 -0
- package/screenshot-page/assets/ChSvXfVMLxZsP9zG.js +8 -0
- package/screenshot-page/assets/Ci5NtzhJLll1kxGf.js +10 -0
- package/screenshot-page/assets/CjngjJNheGaVRvZp.js +1 -0
- package/screenshot-page/assets/ClzdIJrFdInttVJA.js +1 -0
- package/screenshot-page/assets/CnPgk3HcIziOcskY.js +10 -0
- package/screenshot-page/assets/CnXLpFE_vFrJ5Jbf.js +1 -0
- package/screenshot-page/assets/CpbohdgEaEsVDi9J.js +1 -0
- package/screenshot-page/assets/CqR3hGrC956TkCMj.js +20 -0
- package/screenshot-page/assets/Cr1tQKUBVKOQl3QC.js +1 -0
- package/screenshot-page/assets/CwqNb7JYzC03lCj0.js +1 -0
- package/screenshot-page/assets/CykecBozGGFl26KA.js +3940 -0
- package/screenshot-page/assets/CzTizxHhb-CI_ajE.js +1 -0
- package/screenshot-page/assets/CzhH7lTYQrYGHct6.js +1 -0
- package/screenshot-page/assets/CzzEl3lAkZopkwhC.js +1 -0
- package/screenshot-page/assets/D-LgRj0s-PAVqY-L.js +1 -0
- package/screenshot-page/assets/D-XR1MGhwn7Jqj60.js +1 -0
- package/screenshot-page/assets/D47ePD4x1lVazNdl.js +7 -0
- package/screenshot-page/assets/D66vSE1ConAuENmB.js +586 -0
- package/screenshot-page/assets/D6Jpaz2YkhOfzxDB.js +1 -0
- package/screenshot-page/assets/D9zCVZpnJBfNSNO2.js +1 -0
- package/screenshot-page/assets/DCVUZ_ayOXFwV2d_.js +3 -0
- package/screenshot-page/assets/DDQWM8rNYCYzKa9R.js +1 -0
- package/screenshot-page/assets/DFE-fKq5NV7_O8V6.js +1 -0
- package/screenshot-page/assets/DGXDfjkGZjMRAXPg.js +5 -0
- package/screenshot-page/assets/DHa5_U58lSwCnpmG.js +1 -0
- package/screenshot-page/assets/DKVB6ddRfDJatYid.js +1 -0
- package/screenshot-page/assets/DK_QSosKV62NDcuT.js +42 -0
- package/screenshot-page/assets/DM9U7u7FQK0jcwh4.js +1 -0
- package/screenshot-page/assets/DNDaHmkQrQTaCHhV.js +1 -0
- package/screenshot-page/assets/DQ0kGd99-fXxuNYk.js +1 -0
- package/screenshot-page/assets/DQWHkaQeNXft9j8b.js +2 -0
- package/screenshot-page/assets/DRVfGdmVBvktrZ1t.js +1 -0
- package/screenshot-page/assets/DRrM-dY9nM7nDRpV.js +1 -0
- package/screenshot-page/assets/DT2x1gO3f2G5NfeB.js +1 -0
- package/screenshot-page/assets/DTFRGj188QuLKEXw.js +1 -0
- package/screenshot-page/assets/DU3FmyUH0RjPIBd-.js +1 -0
- package/screenshot-page/assets/DVueE--eOrZPrqrm.js +1 -0
- package/screenshot-page/assets/DXQLzGmxoyN3kfQi.js +27 -0
- package/screenshot-page/assets/DXWWyJlMSWgDFxs1.js +10 -0
- package/screenshot-page/assets/DYJSIlNxrNw8qk-w.js +1 -0
- package/screenshot-page/assets/DYRbCudWTaiE_Sjc.js +1 -0
- package/screenshot-page/assets/DZDRRw-62D6Zw7qs.js +1 -0
- package/screenshot-page/assets/DaKZ4-Li_ULIIwnK.js +1 -0
- package/screenshot-page/assets/DadZXeaVK5UXSHIi.js +1 -0
- package/screenshot-page/assets/Db_VGqQo2G2JgXWW.js +1 -0
- package/screenshot-page/assets/DceNHPrRLok2At-X.js +1 -0
- package/screenshot-page/assets/DcrVJCyDwGKeil2U.js +1 -0
- package/screenshot-page/assets/DeAKjatTVaZ0u_FY.js +1 -0
- package/screenshot-page/assets/DmMZ4pd492HPw_3_.js +1 -0
- package/screenshot-page/assets/DmbuCapSSCYIa3yk.js +1 -0
- package/screenshot-page/assets/Dpepompn_NhpSncR.js +1 -0
- package/screenshot-page/assets/DqYhS4mcQfOe96hU.js +1 -0
- package/screenshot-page/assets/Dsx0NUmGIxS7SvZ8.js +1 -0
- package/screenshot-page/assets/DyGpT6t96jrvgJes.js +1 -0
- package/screenshot-page/assets/DyLWQxXXTw5uwPVy.js +30 -0
- package/screenshot-page/assets/DyYVf8O1rhg3YmjW.js +1 -0
- package/screenshot-page/assets/DyxJBLjUkeDuu96F.js +1 -0
- package/screenshot-page/assets/HclGiUj8dZXDFmoM.js +1 -0
- package/screenshot-page/assets/IRtoU5oVgBWu9rnK.js +2 -0
- package/screenshot-page/assets/J73KTOmdZGNmnq-z.js +1 -0
- package/screenshot-page/assets/J_xJVgE7YlmeU-ZO.js +6 -0
- package/screenshot-page/assets/KoxRo2J_cwB_yOd5.js +2 -0
- package/screenshot-page/assets/LVtV_IPhPQroHRui.js +1 -0
- package/screenshot-page/assets/MNoPOsydrUv1UGU8.js +2 -0
- package/screenshot-page/assets/Q5EKmzoJZCE81Om-.js +2 -0
- package/screenshot-page/assets/TfhknTx8vxQkw4zV.js +2 -0
- package/screenshot-page/assets/VvqAh6BWzaD5OUPF.js +1 -0
- package/screenshot-page/assets/fGlPAximvsxzPzGA.js +1 -0
- package/screenshot-page/assets/gG0AFZ45VxS_moMw.js +2 -0
- package/screenshot-page/assets/hp_-JA1DMK4Yoztn.js +57 -0
- package/screenshot-page/assets/l32n8O_A78Qqduv3.js +1 -0
- package/screenshot-page/assets/nHThFXCAZFOM_npq.js +1 -0
- package/screenshot-page/assets/pRykm05ElquZBk_a.js +1 -0
- package/screenshot-page/assets/rPOkVKdPbFpTG6AY.js +1 -0
- package/screenshot-page/assets/sHBomL5R4-_px8rD.js +1 -0
- package/screenshot-page/assets/skRJ2qjA7kcmnOsh.js +39 -0
- package/screenshot-page/assets/w3bV7wggRayUYTd-.js +1 -0
- package/screenshot-page/assets/zFbb8ESzwR_bE7IQ.js +1 -0
- package/screenshot-page/index.html +44 -0
- package/screenshot-page/resources/contents.json +333 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.hinted.json +124 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-display-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-narrow-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.metrics.json +221 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/aptos-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.metrics.json +139 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/arial-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.hinted.json +122 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.hinted.json +122 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.hinted.json +121 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.hinted.json +121 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.metrics.json +137 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/calibri-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.hinted.json +105 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.hinted.json +108 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.hinted.json +102 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.hinted.json +110 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.metrics.json +66 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/cambria-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/contents.json +646 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.hinted.json +11 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/courier-new-regular.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-bold.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.metrics.json +143 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-italic.rows.json +8 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.hinted.json +125 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.metrics.json +141 -0
- package/screenshot-page/resources/fonts/@sheetxl/sdk/times-new-roman-regular.rows.json +8 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas/contents.json +9 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas/de/functions.json +298 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas-extended/contents.json +9 -0
- package/screenshot-page/resources/locales/@sheetxl/formulas-extended/de/functions.json +59 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/contents.json +19 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/de/grammar.json +16 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/de/model.msg.json +710 -0
- package/screenshot-page/resources/locales/@sheetxl/sdk/en/model.msg.json +732 -0
- package/types/index.d.ts +1 -0
- package/types/lib.d.ts +2 -0
- package/types/scripting-api.json +10855 -0
- package/types/scripting-enums.json +1339 -0
- package/types/scripting.d.ts +49295 -0
- package/types/src/SessionRegistry.d.ts +630 -0
- package/types/src/index.d.ts +3 -0
- package/types/src/instances.d.ts +104 -0
- package/types/src/lib/Types.d.ts +17 -0
- package/types/src/lib/index.d.ts +2 -0
- package/types/src/lib/runReport.d.ts +158 -0
- package/types/src/lib.d.ts +2 -0
- package/types/src/prepareRun.d.ts +56 -0
- package/types/src/relay.d.ts +102 -0
- package/types/src/screenshot.d.ts +23 -0
- package/types/src/server.d.ts +37 -0
- package/types/src/taskStore.d.ts +28 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ToolLogRecord } from '@sheetxl/utils-node';
|
|
2
|
+
export interface InstanceRecord {
|
|
3
|
+
/** The instance token, matching the one embedded in this process's sandbox ids. */
|
|
4
|
+
readonly instance: string;
|
|
5
|
+
readonly pid: number;
|
|
6
|
+
/** The process that launched this server — the MCP client session. Absent on older records. */
|
|
7
|
+
readonly ppid?: number;
|
|
8
|
+
/** ISO 8601. */
|
|
9
|
+
readonly startedAt: string;
|
|
10
|
+
readonly workspace: string;
|
|
11
|
+
/** The tool log this process appends to, when logging is on — where its crashed calls are written. */
|
|
12
|
+
readonly logPath?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface InstanceCensus {
|
|
15
|
+
/** The workspace this census was taken for — what {@link liveSiblings} re-asks about. */
|
|
16
|
+
readonly workspace: string;
|
|
17
|
+
/**
|
|
18
|
+
* Other LIVE servers for this workspace AT STARTUP — other client sessions, a duplicate
|
|
19
|
+
* registration ({@link isSameClient}), or a predecessor still exiting when this one started. A
|
|
20
|
+
* snapshot: anything reported later asks {@link liveSiblings} instead.
|
|
21
|
+
*/
|
|
22
|
+
readonly siblings: readonly InstanceRecord[];
|
|
23
|
+
/** The most recent dead predecessor for this workspace, if it ran recently enough to matter. */
|
|
24
|
+
readonly replaced: InstanceRecord | null;
|
|
25
|
+
/** The calls {@link replaced} was running when it died — empty when it was not mid-call. */
|
|
26
|
+
readonly crashedCalls: readonly ToolLogRecord[];
|
|
27
|
+
}
|
|
28
|
+
/** `12s` / `4m` / `2h` — an age, for a report that must date itself rather than read as timeless. */
|
|
29
|
+
export declare function ago(from: Date): string;
|
|
30
|
+
/**
|
|
31
|
+
* Record this process and report what it found: live siblings, and the instance it replaced.
|
|
32
|
+
*
|
|
33
|
+
* @remarks
|
|
34
|
+
* **There is deliberately no matching `unregister`.** A record is removed by the NEXT start, not by
|
|
35
|
+
* its own exit, for two reasons: a killed extension host never runs an exit handler — which is
|
|
36
|
+
* exactly the abrupt restart worth reporting — and deleting on a graceful shutdown would erase the
|
|
37
|
+
* evidence that a restart happened at all, making the tidy case the one that reports nothing. Dead
|
|
38
|
+
* records cost one `kill(pid, 0)` each and are pruned here, with their calls markers: a call still
|
|
39
|
+
* marked is written to the dead process's tool log as `crashed`, whatever its workspace.
|
|
40
|
+
*
|
|
41
|
+
* Synchronous: it runs once, before the transport connects.
|
|
42
|
+
*
|
|
43
|
+
* @param logPath The tool log this process appends to, if logging is on.
|
|
44
|
+
*/
|
|
45
|
+
export declare function registerInstance(instance: string, workspace: string, startedAt: Date, logPath?: string | null): InstanceCensus;
|
|
46
|
+
/**
|
|
47
|
+
* Marks a call as running until the returned function is called — on its answer, or its failure.
|
|
48
|
+
*
|
|
49
|
+
* @remarks
|
|
50
|
+
* Written synchronously, before the call starts, because a server that runs out of memory dies
|
|
51
|
+
* inside the call: an async write queued at its start is still queued when the process goes. What
|
|
52
|
+
* a successor finds in the marker is the call that never returned ({@link registerInstance}).
|
|
53
|
+
*
|
|
54
|
+
* @param record The call as the tool log would record it, without its outcome.
|
|
55
|
+
*/
|
|
56
|
+
export declare function beginCall(record: ToolLogRecord): () => void;
|
|
57
|
+
/**
|
|
58
|
+
* The other servers for `workspace` that are alive NOW.
|
|
59
|
+
*
|
|
60
|
+
* @remarks
|
|
61
|
+
* The startup census cannot answer this for long. A server started while its predecessor is still
|
|
62
|
+
* exiting — the normal shape of a VS Code restart — sees that predecessor as a live sibling, and a
|
|
63
|
+
* snapshot would go on reporting two servers long after it is gone. A sibling started AFTER this one
|
|
64
|
+
* is in no snapshot at all. So a report re-reads the directory, the same way startup does.
|
|
65
|
+
*
|
|
66
|
+
* Read-only: dead records are left for the next start to prune, because to it they are the evidence
|
|
67
|
+
* of a restart (see {@link registerInstance}).
|
|
68
|
+
*/
|
|
69
|
+
export declare function liveSiblings(workspace: string): InstanceRecord[];
|
|
70
|
+
/**
|
|
71
|
+
* Whether a sibling was launched by the same client session as this process — a duplicate
|
|
72
|
+
* registration rather than a second chat.
|
|
73
|
+
*
|
|
74
|
+
* @remarks
|
|
75
|
+
* Judged by parent pid. A client that launches the server through a wrapper (`npx`, `cmd /c`) gives
|
|
76
|
+
* each copy its own parent, so a duplicate behind a wrapper reads as two sessions and goes
|
|
77
|
+
* unreported. That is the cheaper mistake: the alternative warned about every second chat, which is
|
|
78
|
+
* the common case and needs no fix. A record without a `ppid` predates it and is not judged.
|
|
79
|
+
*/
|
|
80
|
+
export declare function isSameClient(record: InstanceRecord): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* `census` as it stands NOW: siblings re-read with {@link liveSiblings}, and a startup sibling that
|
|
83
|
+
* has since exited counted as the instance this one replaced.
|
|
84
|
+
*
|
|
85
|
+
* @remarks
|
|
86
|
+
* A predecessor still exiting when this server started is a sibling to the startup census, not a
|
|
87
|
+
* replaced instance — startup only reads replacement from a DEAD record. Once it is gone it is
|
|
88
|
+
* exactly the restart the agent needs to hear about, and dropping it from the siblings alone would
|
|
89
|
+
* report nothing at all. Matched on `instance`, not pid: a recycled pid is a different server.
|
|
90
|
+
*/
|
|
91
|
+
export declare function recount(census: InstanceCensus): InstanceCensus;
|
|
92
|
+
/**
|
|
93
|
+
* The one-shot notice for the first tool call of this process, or `null` when there is nothing an
|
|
94
|
+
* agent needs to un-believe.
|
|
95
|
+
*
|
|
96
|
+
* @remarks
|
|
97
|
+
* Phrased as *what is now false*, not as *what happened*: an agent resuming a conversation across a
|
|
98
|
+
* restart does not need an event log, it needs to know which of the ids and answers it is holding
|
|
99
|
+
* have stopped being true. It rides a tool RESULT rather than the handshake because a resumed
|
|
100
|
+
* conversation replays as [instructions][old turns][now] — a warning in the instructions sits
|
|
101
|
+
* before the beliefs it is meant to correct, and is read as older than they are.
|
|
102
|
+
*/
|
|
103
|
+
export declare function staleStateNotice(census: InstanceCensus, startedAt: Date): string | null;
|
|
104
|
+
//# sourceMappingURL=instances.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface McpRequestPayload {
|
|
2
|
+
id: string;
|
|
3
|
+
/**
|
|
4
|
+
* The relay command vocabulary (mirrored in the extension's `src/shared/protocol.ts` — edit
|
|
5
|
+
* both). `tool` executes a `TOOLS` descriptor by name; `rangeSelect` is host-initiated only
|
|
6
|
+
* (the `vscode://…/select` deep link) — no MCP tool drives it.
|
|
7
|
+
*/
|
|
8
|
+
cmd: 'tool' | 'rangeSelect' | 'run' | 'revert' | 'restore' | 'listCommits' | 'serialize' | 'highlight' | 'prompt';
|
|
9
|
+
args?: Record<string, string>;
|
|
10
|
+
workbookId?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface McpResponsePayload {
|
|
13
|
+
id: string;
|
|
14
|
+
result?: unknown;
|
|
15
|
+
error?: string;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Types.d.ts.map
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ScriptingApi } from '@sheetxl/sdk';
|
|
3
|
+
import { RunDelta } from '@sheetxl/query';
|
|
4
|
+
/**
|
|
5
|
+
* A minimal, valid starting-point macro embedded in the `macro_run` tool description so every agent
|
|
6
|
+
* has a correct template to copy. Conventions it demonstrates:
|
|
7
|
+
* - a NAMED `export default` entry (anonymous trips SXL1002),
|
|
8
|
+
* - ONE parameter, the runtime context (`ctx: SheetXL.IScript.ScriptContext`), with the workbook
|
|
9
|
+
* reached through `ctx.wb`. This is the portable signature: the identical entry also runs as a
|
|
10
|
+
* CLI script, where the runner passes its own context. NB: ScriptContext is nested under IScript,
|
|
11
|
+
* so `SheetXL.ScriptContext` is NOT valid.
|
|
12
|
+
* - the SheetXL API is ambient (auto-imported `SheetXL` namespace; no `import` needed),
|
|
13
|
+
* - read via the workbook API, write output via `ctx.log`.
|
|
14
|
+
*
|
|
15
|
+
* The older target-first form (`(workbook: SheetXL.IWorkbook, ctx: …)`) remains valid — a macro may
|
|
16
|
+
* still ask for the selected sheet or range as its first parameter.
|
|
17
|
+
*
|
|
18
|
+
* Covered by a test (`runReport.test.ts`) so this template is guaranteed to compile + run.
|
|
19
|
+
*/
|
|
20
|
+
export declare const EXAMPLE_SCRIPT = "/** Reads A1 and logs its value. */\nexport default function main(ctx: SheetXL.IScript.ScriptContext): void {\n const value = ctx.wb.getWorksheet().getRange('A1').getValue();\n ctx.log(`A1 = ${value}`);\n}\n";
|
|
21
|
+
/**
|
|
22
|
+
* One positioned diagnostic in a {@link runOutputShape} report. Offsets from the compiler are
|
|
23
|
+
* resolved to 1-based line/column against the submitted source so the agent can pinpoint the fix.
|
|
24
|
+
*/
|
|
25
|
+
export declare const runDiagnosticShape: {
|
|
26
|
+
severity: z.ZodEnum<{
|
|
27
|
+
error: "error";
|
|
28
|
+
warning: "warning";
|
|
29
|
+
}>;
|
|
30
|
+
code: z.ZodString;
|
|
31
|
+
line: z.ZodNumber;
|
|
32
|
+
column: z.ZodNumber;
|
|
33
|
+
message: z.ZodString;
|
|
34
|
+
/** An actionable suggestion the agent can apply to resolve the diagnostic (the MCP "quick fix"). */
|
|
35
|
+
fix: z.ZodOptional<z.ZodString>;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Structured result of `run`. This is the agent's primary write path - it is intentionally
|
|
39
|
+
* machine-parseable AND mirrored in human-readable text. `status` tells the agent how to react:
|
|
40
|
+
* `compile_error` → fix the source and call again; `runtime_error` → the run threw; `ok` → done
|
|
41
|
+
* (use `commitId` with `session_revert`), and its `delta` says what the commit changed.
|
|
42
|
+
*/
|
|
43
|
+
export declare const runOutputShape: {
|
|
44
|
+
status: z.ZodEnum<{
|
|
45
|
+
ok: "ok";
|
|
46
|
+
compile_error: "compile_error";
|
|
47
|
+
runtime_error: "runtime_error";
|
|
48
|
+
drift: "drift";
|
|
49
|
+
}>;
|
|
50
|
+
/** How the source ran — decided by the code itself (default export = script), reported so the inference stays observable. */
|
|
51
|
+
form: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
snippet: "snippet";
|
|
53
|
+
script: "script";
|
|
54
|
+
}>>;
|
|
55
|
+
/** The session the source ran against — echoed so a write to the wrong workbook is visible. */
|
|
56
|
+
sessionId: z.ZodOptional<z.ZodString>;
|
|
57
|
+
commitId: z.ZodOptional<z.ZodString>;
|
|
58
|
+
result: z.ZodOptional<z.ZodUnknown>;
|
|
59
|
+
/** The result rendered as markdown — the final expression of a snippet, or a script's return value. */
|
|
60
|
+
resultMarkdown: z.ZodOptional<z.ZodString>;
|
|
61
|
+
logs: z.ZodOptional<z.ZodString>;
|
|
62
|
+
diagnostics: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
63
|
+
severity: z.ZodEnum<{
|
|
64
|
+
error: "error";
|
|
65
|
+
warning: "warning";
|
|
66
|
+
}>;
|
|
67
|
+
code: z.ZodString;
|
|
68
|
+
line: z.ZodNumber;
|
|
69
|
+
column: z.ZodNumber;
|
|
70
|
+
message: z.ZodString;
|
|
71
|
+
fix: z.ZodOptional<z.ZodString>;
|
|
72
|
+
}, z.core.$strip>>>;
|
|
73
|
+
error: z.ZodOptional<z.ZodString>;
|
|
74
|
+
/**
|
|
75
|
+
* What the run's commit changed: written ranges and what they replaced, formulas with their
|
|
76
|
+
* results, dependents, errors, and the names, rules and charts over them (`RunDelta` from
|
|
77
|
+
* `@sheetxl/query`). Present on an `ok` run that wrote cells.
|
|
78
|
+
*/
|
|
79
|
+
delta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
80
|
+
};
|
|
81
|
+
/** A compiler diagnostic as it arrives on `RunResults.diagnostics` (character offset + length). */
|
|
82
|
+
export interface RawDiagnostic {
|
|
83
|
+
severity: 'error' | 'warning';
|
|
84
|
+
code: string;
|
|
85
|
+
start: number;
|
|
86
|
+
message: string;
|
|
87
|
+
}
|
|
88
|
+
/** The subset of `IScript.RunResults` this builder consumes. */
|
|
89
|
+
export interface RunResultLike {
|
|
90
|
+
ok: boolean;
|
|
91
|
+
result?: unknown;
|
|
92
|
+
commitId?: string;
|
|
93
|
+
error?: any;
|
|
94
|
+
/** The error's `name`, from a session that can only send the error as its message. */
|
|
95
|
+
errorName?: string;
|
|
96
|
+
diagnostics?: RawDiagnostic[];
|
|
97
|
+
/**
|
|
98
|
+
* The result rendered as markdown, produced WHERE THE RESULT LIVES — the sandbox session
|
|
99
|
+
* in-process, or the webview for an attended session — because a live SDK object cannot cross a
|
|
100
|
+
* JSON boundary and render afterwards.
|
|
101
|
+
*/
|
|
102
|
+
resultMarkdown?: string;
|
|
103
|
+
/**
|
|
104
|
+
* What the run's commit changed, read where the workbook lives once the calculation settled,
|
|
105
|
+
* for the same reason as {@link resultMarkdown}. JSON-safe.
|
|
106
|
+
*/
|
|
107
|
+
delta?: RunDelta;
|
|
108
|
+
/** {@link delta} as the report's lines; or, when it could not be read, why. */
|
|
109
|
+
deltaMarkdown?: string;
|
|
110
|
+
}
|
|
111
|
+
/** Context {@link buildRunReport} needs to attribute a run correctly. */
|
|
112
|
+
export interface RunReportOptions {
|
|
113
|
+
/** How the source ran; reported in the text so the inference is observable. */
|
|
114
|
+
form?: 'snippet' | 'script';
|
|
115
|
+
/**
|
|
116
|
+
* The session the run targeted, echoed on every outcome. `resolvedFrom` names the token the
|
|
117
|
+
* caller passed when it was not the id itself.
|
|
118
|
+
*/
|
|
119
|
+
session?: {
|
|
120
|
+
id: string;
|
|
121
|
+
resolvedFrom?: string;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* The scripting API index. Given, a member the code used and the API does not have is answered
|
|
125
|
+
* with the nearest ones, inline — the lookup the agent would make next.
|
|
126
|
+
*/
|
|
127
|
+
api?: ScriptingApi.Index;
|
|
128
|
+
}
|
|
129
|
+
/** A positioned diagnostic in the report (1-based line/column). */
|
|
130
|
+
export interface RunDiagnostic {
|
|
131
|
+
severity: 'error' | 'warning';
|
|
132
|
+
code: string;
|
|
133
|
+
line: number;
|
|
134
|
+
column: number;
|
|
135
|
+
message: string;
|
|
136
|
+
fix?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface RunReport {
|
|
139
|
+
content: {
|
|
140
|
+
type: 'text';
|
|
141
|
+
text: string;
|
|
142
|
+
}[];
|
|
143
|
+
structuredContent: Record<string, unknown>;
|
|
144
|
+
isError?: boolean;
|
|
145
|
+
[key: string]: unknown;
|
|
146
|
+
}
|
|
147
|
+
/** Resolves a character offset into 1-based line/column using the source text. */
|
|
148
|
+
export declare function offsetToLineCol(source: string, offset: number): {
|
|
149
|
+
line: number;
|
|
150
|
+
column: number;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* Builds the dual (text + structured) `run` report from a {@link RunResultLike} and the
|
|
154
|
+
* captured logs. The payload order is the contract's: status first, diagnostics and logs in the
|
|
155
|
+
* middle, the result LAST.
|
|
156
|
+
*/
|
|
157
|
+
export declare function buildRunReport(source: string, result: RunResultLike, logs: string, options?: RunReportOptions): RunReport;
|
|
158
|
+
//# sourceMappingURL=runReport.d.ts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { IModule } from '@sheetxl/sdk';
|
|
2
|
+
import { Diagnostic } from '@sheetxl/scripting';
|
|
3
|
+
import { Snippet } from '@sheetxl/runner';
|
|
4
|
+
import { RunResultLike } from './lib/runReport';
|
|
5
|
+
/** The environment variable that sets `run`'s time limit, in seconds; `0` turns the limit off. */
|
|
6
|
+
export declare const RUN_TIMEOUT_ENV = "SHEETXL_RUN_TIMEOUT";
|
|
7
|
+
/** `run`'s time limit in ms from `SHEETXL_RUN_TIMEOUT` (seconds), or `null` when it is off. */
|
|
8
|
+
export declare function resolveRunTimeoutMs(value?: string | undefined): number | null;
|
|
9
|
+
/**
|
|
10
|
+
* A source prepared for execution: classified, wrapped when it is a snippet, and compiled.
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* This is the MCP half of the shared snippet contract (`@sheetxl/runner`'s {@link Snippet}): the
|
|
14
|
+
* CLI hands the same wrapper to its module loader; here it goes through the `ScriptCompiler`,
|
|
15
|
+
* because both session kinds execute a compiled module — a sandbox in-process, an attended session in
|
|
16
|
+
* the webview (whose CSP blocks the compiler).
|
|
17
|
+
*/
|
|
18
|
+
export interface PreparedRun {
|
|
19
|
+
/** How the source ran — decided by the code itself (default export = script), never declared. */
|
|
20
|
+
form: Snippet.SourceForm;
|
|
21
|
+
/** The compiled module, or `null` when nothing compiled (see {@link diagnostics}). */
|
|
22
|
+
module: IModule.JSON | null;
|
|
23
|
+
/**
|
|
24
|
+
* This compile's diagnostics, positioned in the SUBMITTED source — the one coordinate system the
|
|
25
|
+
* caller has. A snippet is compiled inside a generated wrapper whose statements are rewritten,
|
|
26
|
+
* so its offsets are translated here, once, rather than handed on for every reader to undo.
|
|
27
|
+
*/
|
|
28
|
+
diagnostics: Diagnostic[];
|
|
29
|
+
/**
|
|
30
|
+
* Set only when the snippet ran without implicit await or a result value. Worth surfacing — a
|
|
31
|
+
* snippet quietly returning `undefined` is worse than one that failed.
|
|
32
|
+
*/
|
|
33
|
+
warning?: string;
|
|
34
|
+
/**
|
|
35
|
+
* The run's stop-check key (see `RunGuard`), or `undefined` when the time limit is off. The
|
|
36
|
+
* caller aborts with it when the client cancels, and releases it when the run is over.
|
|
37
|
+
*/
|
|
38
|
+
runKey?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Classifies, wraps and compiles a `run` source.
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* A snippet is rewritten exactly once, from its parsed top-level statements: implicit await on each,
|
|
45
|
+
* final expression as the result. A source that does not parse is wrapped verbatim, so the compiler
|
|
46
|
+
* reports the syntax error against the user's own code rather than a transform's guess at it. The
|
|
47
|
+
* compiler is loaded lazily, the first time a run actually happens.
|
|
48
|
+
*/
|
|
49
|
+
export declare function prepareRun(source: string, timeoutMs?: number | null): Promise<PreparedRun>;
|
|
50
|
+
/**
|
|
51
|
+
* The type-check findings that explain how a run went wrong, positioned in the submitted source:
|
|
52
|
+
* errors for a run that threw, warnings for a snippet whose answer was `undefined`. Empty for a
|
|
53
|
+
* run with neither symptom, which is never checked.
|
|
54
|
+
*/
|
|
55
|
+
export declare function diagnoseOutcome(source: string, result: RunResultLike): Promise<Diagnostic[]>;
|
|
56
|
+
//# sourceMappingURL=prepareRun.d.ts.map
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { IWorkbook, IModule } from '@sheetxl/sdk';
|
|
2
|
+
import { ToolLogRecord } from '@sheetxl/utils-node';
|
|
3
|
+
import { CommitEntry, ListCommitsOptions, SessionInfo, RunOutcome, Highlight, HighlightResult, PromptSpec, PromptResult } from './SessionRegistry.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Finds the relay server, or null when no client UI is running → sandboxes only.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Lock discovery itself lives in `@sheetxl/utils-node` (`discoverRelay`), because presence is not an
|
|
9
|
+
* MCP fact: `sheetxl info` reads the same locks to answer attended/unattended without a server
|
|
10
|
+
* in the picture. Two copies of the lock protocol would drift, and the surface that drifted
|
|
11
|
+
* would report "nobody is watching" while somebody was. What stays here is the protocol layered
|
|
12
|
+
* over the endpoint — macros, presence, prompts.
|
|
13
|
+
*/
|
|
14
|
+
export declare function findRelay(): Promise<RelayClient | null>;
|
|
15
|
+
/**
|
|
16
|
+
* A prompt that ended because the editor went away, not because the user answered or dismissed it.
|
|
17
|
+
* Its message is written for the agent: what happened and what to do next.
|
|
18
|
+
*/
|
|
19
|
+
export declare class EditorClosedError extends Error {
|
|
20
|
+
readonly name = "EditorClosedError";
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `err` is the relay being unreachable — Node's `fetch` rejects with a bare `TypeError:
|
|
24
|
+
* fetch failed` and puts the socket error on `cause`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isUnreachable(err: unknown): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* HTTP client for the relay running inside a client UI (the VS Code extension host). The MCP child
|
|
29
|
+
* process has no direct access to UI state, so attended-session operations are forwarded over HTTP to
|
|
30
|
+
* the relay, which owns the webview registry and routes by `workbookId` (or its active workbook).
|
|
31
|
+
*/
|
|
32
|
+
export declare class RelayClient {
|
|
33
|
+
private readonly port;
|
|
34
|
+
private readonly token;
|
|
35
|
+
constructor(port: number, token: string);
|
|
36
|
+
/** The endpoint fields, for the discovery helpers in `@sheetxl/utils-node`. */
|
|
37
|
+
private get endpoint();
|
|
38
|
+
/**
|
|
39
|
+
* Execute a `TOOLS` descriptor (grep, …) in the webview that owns the workbook — the only place
|
|
40
|
+
* an attended session's live `IWorkbook` exists. `args` is JSON-encoded because the relay's args
|
|
41
|
+
* are string→string; the webview parses it back and resolves the descriptor by name.
|
|
42
|
+
*/
|
|
43
|
+
tool(name: string, args: Record<string, unknown>, workbookId?: string): Promise<string>;
|
|
44
|
+
/**
|
|
45
|
+
* Executes an **already-compiled** macro against an attended workbook. The MCP server compiles on Node
|
|
46
|
+
* (the webview's CSP blocks the compiler) and ships the {@link IModule.JSON} artifact; the webview
|
|
47
|
+
* loads it via a `data:` URL and runs the entry as one transaction.
|
|
48
|
+
*/
|
|
49
|
+
run(compiled: IModule.JSON, opts: {
|
|
50
|
+
description?: string;
|
|
51
|
+
originalCommitId?: string;
|
|
52
|
+
args?: Record<string, any>;
|
|
53
|
+
}, workbookId?: string): Promise<RunOutcome>;
|
|
54
|
+
/**
|
|
55
|
+
* Mark ranges in the webview's grid. Declarative — replaces the prior highlight; an empty
|
|
56
|
+
* `ranges` clears it. `ranges` is JSON-encoded because the relay's `args` are string→string.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* The webview RESOLVES each address against the live workbook before marking anything, so an
|
|
60
|
+
* unparseable range rejects here (the dispatch throws) instead of failing silently at render
|
|
61
|
+
* time. What comes back is what the grid resolved — sheet-qualified and normalized — and that,
|
|
62
|
+
* not the request, is what the caller is told.
|
|
63
|
+
*/
|
|
64
|
+
highlight(highlight: Highlight, workbookId?: string): Promise<HighlightResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Show a grid prompt and resolve when the user answers — the MCP `prompt` task's internal channel.
|
|
67
|
+
* "Show" is a quick acked request (NOT held); the answer is then **polled** from the relay's
|
|
68
|
+
* answer-store. No held connection ⇒ no ~5-min fetch ceiling, so a wait of minutes/hours is fine.
|
|
69
|
+
* The agent meanwhile polls `tasks/get` and the LLM is idle. Terminates on answer, on the workbook
|
|
70
|
+
* closing (`gone`), or a 1h safety cap.
|
|
71
|
+
*/
|
|
72
|
+
prompt(spec: PromptSpec, workbookId?: string, opts?: {
|
|
73
|
+
signal?: AbortSignal;
|
|
74
|
+
}): Promise<PromptResult>;
|
|
75
|
+
revert(commitId: string, workbookId?: string): Promise<void>;
|
|
76
|
+
/** The attended session's commit log (newest first), read from the webview's live store. */
|
|
77
|
+
listCommits(opts: ListCommitsOptions, workbookId?: string): Promise<CommitEntry[]>;
|
|
78
|
+
restore(commitId: string, workbookId?: string): Promise<void>;
|
|
79
|
+
/** Asks the webview to serialize its live workbook to JSON (the fork-from-attended path). */
|
|
80
|
+
serialize(workbookId?: string): Promise<IWorkbook.JSON>;
|
|
81
|
+
/**
|
|
82
|
+
* The attended sessions currently open in the client UI, as {@link SessionInfo} for the registry.
|
|
83
|
+
* Attended sessions are owned by a webview (they have a live view) and are opened-from-file today.
|
|
84
|
+
*/
|
|
85
|
+
listAttendedSessions(): Promise<SessionInfo[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Mirror one tool-call record into the client UI's live log (VS Code's SheetXL output channel).
|
|
88
|
+
* The record is the same one the JSONL sink would write — see `setToolLogMirror` in
|
|
89
|
+
* `@sheetxl/utils-node`; the UI decides how much of it to show.
|
|
90
|
+
*
|
|
91
|
+
* @remarks
|
|
92
|
+
* Fire-and-forget in both directions: it is not awaited (the call it describes has already
|
|
93
|
+
* finished — tracing must not add latency to it), and a failure is dropped rather than raised. A
|
|
94
|
+
* dead endpoint is normal here: the UI restarts, and this is the one channel that must not care.
|
|
95
|
+
*
|
|
96
|
+
* This is also why the trace covers **sandbox** sessions, which never otherwise touch the relay —
|
|
97
|
+
* a headless session's work was invisible in the UI even while the user watched it happen.
|
|
98
|
+
*/
|
|
99
|
+
trace(record: ToolLogRecord): void;
|
|
100
|
+
private dispatch;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=relay.d.ts.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IWorkbook } from '@sheetxl/sdk';
|
|
2
|
+
import { ScreenshotOptions, ScreenshotResult } from '@sheetxl/screenshot';
|
|
3
|
+
/**
|
|
4
|
+
* One headless browser per server, started on the first screenshot and closed after a minute
|
|
5
|
+
* without one. A browser that exited is replaced on the next call.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ScreenshotService {
|
|
8
|
+
private _screenshotter;
|
|
9
|
+
private _idle;
|
|
10
|
+
private _active;
|
|
11
|
+
/**
|
|
12
|
+
* Render a range of a workbook snapshot.
|
|
13
|
+
*
|
|
14
|
+
* @throws {@link ScreenshotUnavailableError} when this machine has no usable browser.
|
|
15
|
+
*/
|
|
16
|
+
capture(json: IWorkbook.JSON, options: ScreenshotOptions): Promise<ScreenshotResult>;
|
|
17
|
+
/** Close the browser, if one is running. */
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
private _acquire;
|
|
20
|
+
private _armIdle;
|
|
21
|
+
private _clearIdle;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=screenshot.d.ts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import { InstanceCensus } from './instances.ts';
|
|
3
|
+
import { PromptResult, PromptSpec, SessionRegistry } from './SessionRegistry.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Normalize the `prompt` tool's two shapes — one question (`message`/`options`/`range`) or several
|
|
6
|
+
* (`questions`) — into one list of questions. Throws, with what to change, when the call is neither
|
|
7
|
+
* or both, or repeats a question id.
|
|
8
|
+
*/
|
|
9
|
+
export declare function toPromptSpec(args: {
|
|
10
|
+
message?: string;
|
|
11
|
+
options?: {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
}[];
|
|
16
|
+
range?: string;
|
|
17
|
+
questions?: {
|
|
18
|
+
id: string;
|
|
19
|
+
header?: string;
|
|
20
|
+
message: string;
|
|
21
|
+
options?: {
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
}[];
|
|
26
|
+
range?: string;
|
|
27
|
+
}[];
|
|
28
|
+
}): PromptSpec;
|
|
29
|
+
/** The agent-facing text for a prompt's outcome. A single `message` question reads as it always has. */
|
|
30
|
+
export declare function describePromptResult(spec: PromptSpec, result: PromptResult, single: boolean): string;
|
|
31
|
+
/**
|
|
32
|
+
* The single MCP server. There is no connected-vs-direct mode: the server owns sandbox sessions
|
|
33
|
+
* in-process and surfaces attended sessions from the relay (via the {@link SessionRegistry}).
|
|
34
|
+
* Every tool routes by `session_id`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createServer(registry: SessionRegistry, census?: InstanceCensus): McpServer;
|
|
37
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { InMemoryTaskStore } from '@modelcontextprotocol/sdk/experimental/tasks';
|
|
2
|
+
import { Result, Task } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* An {@link InMemoryTaskStore} that surfaces a **failed** task's reason in `statusMessage`.
|
|
5
|
+
*
|
|
6
|
+
* The base store records the error only in the task *result*, so the `Task` object — and thus
|
|
7
|
+
* `tasks/get` and `notifications/tasks/status` — carries no `statusMessage`. Clients then see
|
|
8
|
+
* "failed" with "No additional information". Here we copy the failed result's text into
|
|
9
|
+
* `statusMessage` so the reason for **any** failure (not just one specific path) is legible without
|
|
10
|
+
* a separate `tasks/result` fetch.
|
|
11
|
+
*
|
|
12
|
+
* Implementation note: a terminal task can't be mutated via `updateTaskStatus` (it rejects terminal
|
|
13
|
+
* transitions), and `getTask` returns a copy — so we set the message while the task is still
|
|
14
|
+
* `working` (a no-op status change that records `statusMessage`), then let `super.storeTaskResult`
|
|
15
|
+
* move it to `failed`. `storeTaskResult` does not clear `statusMessage`, so it persists.
|
|
16
|
+
*/
|
|
17
|
+
export declare class StatusMessageTaskStore extends InMemoryTaskStore {
|
|
18
|
+
/** Per-task cancellation controllers, fired when a task transitions to `cancelled`. */
|
|
19
|
+
private readonly cancels;
|
|
20
|
+
/**
|
|
21
|
+
* An `AbortSignal` that fires when this task is cancelled (e.g. via `tasks/cancel`). The prompt
|
|
22
|
+
* task's background work waits on it to stop polling and clear the grid. Idempotent per task.
|
|
23
|
+
*/
|
|
24
|
+
cancelSignal(taskId: string): AbortSignal;
|
|
25
|
+
storeTaskResult(taskId: string, status: 'completed' | 'failed', result: Result, sessionId?: string): Promise<void>;
|
|
26
|
+
updateTaskStatus(taskId: string, status: Task['status'], statusMessage?: string, sessionId?: string): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=taskStore.d.ts.map
|