@struktoai/mirage-node 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/dist/aliyun-PGI57A43.js +10 -0
  2. package/dist/backblaze-TSPL6Y56.js +10 -0
  3. package/dist/box-7XTZYDSO.js +8 -0
  4. package/dist/cas.lua +15 -0
  5. package/dist/ceph-C265UI5T.js +10 -0
  6. package/dist/{chunk-I5THIMPP.js → chunk-25W4XQJZ.js} +5 -5
  7. package/dist/{chunk-QGRDPSAH.js → chunk-2ERLWAGG.js} +4 -2
  8. package/dist/chunk-2ERLWAGG.js.map +1 -0
  9. package/dist/{chunk-NJMGCT63.js → chunk-2QNPKPZZ.js} +7 -2
  10. package/dist/chunk-2QNPKPZZ.js.map +1 -0
  11. package/dist/{chunk-ZNWVJ6UW.js → chunk-3ASOQTZB.js} +7 -2
  12. package/dist/chunk-3ASOQTZB.js.map +1 -0
  13. package/dist/{chunk-WAR4Q2NM.js → chunk-3JZN3GYO.js} +13 -12
  14. package/dist/chunk-3JZN3GYO.js.map +1 -0
  15. package/dist/{chunk-S5OVP467.js → chunk-4GYB7DGC.js} +294 -705
  16. package/dist/chunk-4GYB7DGC.js.map +1 -0
  17. package/dist/{chunk-HJJMP6IX.js → chunk-4M73WHIE.js} +3 -3
  18. package/dist/{chunk-7CW3BMPH.js → chunk-4X6CLF4F.js} +3 -3
  19. package/dist/{chunk-QQBJC2FQ.js → chunk-5I7Q7RHW.js} +3 -3
  20. package/dist/{chunk-LV2G7VHL.js → chunk-5YRWF5RP.js} +17 -15
  21. package/dist/chunk-5YRWF5RP.js.map +1 -0
  22. package/dist/chunk-5ZHNPNDD.js +944 -0
  23. package/dist/chunk-5ZHNPNDD.js.map +1 -0
  24. package/dist/{chunk-VGLHY6BK.js → chunk-AULFV3KY.js} +1 -2
  25. package/dist/chunk-AULFV3KY.js.map +1 -0
  26. package/dist/{chunk-VWKUT4CW.js → chunk-BWLUBJQG.js} +19 -15
  27. package/dist/chunk-BWLUBJQG.js.map +1 -0
  28. package/dist/{chunk-X5HF2OFP.js → chunk-BWWU5T2D.js} +3 -3
  29. package/dist/chunk-C7TNKIK5.js +39 -0
  30. package/dist/chunk-C7TNKIK5.js.map +1 -0
  31. package/dist/{chunk-MPCCRRE6.js → chunk-CB76WPUS.js} +12 -13
  32. package/dist/chunk-CB76WPUS.js.map +1 -0
  33. package/dist/chunk-CGGO5NKD.js +1194 -0
  34. package/dist/chunk-CGGO5NKD.js.map +1 -0
  35. package/dist/{chunk-B2ZOKNN4.js → chunk-CQCTCW4S.js} +1 -2
  36. package/dist/chunk-CQCTCW4S.js.map +1 -0
  37. package/dist/{chunk-KPULTUOK.js → chunk-CXQGMFI7.js} +3 -3
  38. package/dist/{chunk-LW25LMIH.js → chunk-D3U7VQCG.js} +1 -2
  39. package/dist/{chunk-LW25LMIH.js.map → chunk-D3U7VQCG.js.map} +1 -1
  40. package/dist/{chunk-N5FSLVKO.js → chunk-DXU7NZPH.js} +3 -3
  41. package/dist/{chunk-XGJ2QERC.js → chunk-E3KXVEYI.js} +8 -4
  42. package/dist/chunk-E3KXVEYI.js.map +1 -0
  43. package/dist/{chunk-YAHRT6MB.js → chunk-EGZNOUMH.js} +3 -3
  44. package/dist/{chunk-DNBAMB5J.js → chunk-EVK6HH6Z.js} +1 -2
  45. package/dist/{chunk-DNBAMB5J.js.map → chunk-EVK6HH6Z.js.map} +1 -1
  46. package/dist/{chunk-HGCRXJGP.js → chunk-F5NWRF32.js} +3 -3
  47. package/dist/{chunk-GCFYZSVR.js → chunk-FRGTDZQT.js} +15 -10
  48. package/dist/chunk-FRGTDZQT.js.map +1 -0
  49. package/dist/{chunk-DYXEITK3.js → chunk-GF75O2EN.js} +4 -2
  50. package/dist/chunk-GF75O2EN.js.map +1 -0
  51. package/dist/{chunk-W7FLHT65.js → chunk-GTAS3QVC.js} +1 -2
  52. package/dist/{chunk-W7FLHT65.js.map → chunk-GTAS3QVC.js.map} +1 -1
  53. package/dist/{chunk-RQK5UPMP.js → chunk-H62XQZUM.js} +4 -3
  54. package/dist/chunk-H62XQZUM.js.map +1 -0
  55. package/dist/{chunk-UT2OPSN4.js → chunk-HCU3B6FW.js} +1 -2
  56. package/dist/chunk-HCU3B6FW.js.map +1 -0
  57. package/dist/chunk-HEDE2377.js +754 -0
  58. package/dist/chunk-HEDE2377.js.map +1 -0
  59. package/dist/{chunk-RNQN2FOU.js → chunk-HGIPWY5Y.js} +21 -10
  60. package/dist/chunk-HGIPWY5Y.js.map +1 -0
  61. package/dist/{chunk-Q2IAILVC.js → chunk-HSD24IP2.js} +8 -4
  62. package/dist/chunk-HSD24IP2.js.map +1 -0
  63. package/dist/{chunk-SWCDFEUK.js → chunk-HWQPEBID.js} +18 -14
  64. package/dist/chunk-HWQPEBID.js.map +1 -0
  65. package/dist/{chunk-SFUCUARB.js → chunk-IEHPTILN.js} +4 -4
  66. package/dist/chunk-IEHPTILN.js.map +1 -0
  67. package/dist/{chunk-M5FVUIYP.js → chunk-IEVLWEBO.js} +14 -13
  68. package/dist/chunk-IEVLWEBO.js.map +1 -0
  69. package/dist/{chunk-YUK3X3B4.js → chunk-IKJQOYI4.js} +1 -2
  70. package/dist/{chunk-YUK3X3B4.js.map → chunk-IKJQOYI4.js.map} +1 -1
  71. package/dist/{chunk-TA3WMOMU.js → chunk-IUXXZHY3.js} +16 -22
  72. package/dist/chunk-IUXXZHY3.js.map +1 -0
  73. package/dist/{chunk-EZQ5HBAC.js → chunk-JBDFYIN2.js} +12 -13
  74. package/dist/chunk-JBDFYIN2.js.map +1 -0
  75. package/dist/{chunk-JCC4CU2I.js → chunk-JEBH5APX.js} +14 -14
  76. package/dist/chunk-JEBH5APX.js.map +1 -0
  77. package/dist/{chunk-H3BST2LI.js → chunk-JHI2PHHD.js} +1 -2
  78. package/dist/{chunk-H3BST2LI.js.map → chunk-JHI2PHHD.js.map} +1 -1
  79. package/dist/{chunk-EGB7V74Z.js → chunk-KAWDDS27.js} +1 -3
  80. package/dist/chunk-KAWDDS27.js.map +1 -0
  81. package/dist/{chunk-DP2PP5V2.js → chunk-KGC2OGXI.js} +5 -4
  82. package/dist/chunk-KGC2OGXI.js.map +1 -0
  83. package/dist/{chunk-3WIO7NBR.js → chunk-L4GMDSMB.js} +3 -3
  84. package/dist/{chunk-47AVIIOT.js → chunk-L7FEZ7LU.js} +3 -3
  85. package/dist/{chunk-54NTYJEO.js → chunk-LPDLPRPS.js} +1 -3
  86. package/dist/{chunk-54NTYJEO.js.map → chunk-LPDLPRPS.js.map} +1 -1
  87. package/dist/{chunk-UGK4TAVK.js → chunk-LPLZLSMK.js} +1 -2
  88. package/dist/chunk-LPLZLSMK.js.map +1 -0
  89. package/dist/{chunk-EM4J5EQS.js → chunk-M6E7VK4D.js} +13 -13
  90. package/dist/chunk-M6E7VK4D.js.map +1 -0
  91. package/dist/{chunk-2CC5VW7K.js → chunk-MIQ3ECZM.js} +4 -2
  92. package/dist/chunk-MIQ3ECZM.js.map +1 -0
  93. package/dist/chunk-MRXTUFBZ.js +30 -0
  94. package/dist/chunk-MRXTUFBZ.js.map +1 -0
  95. package/dist/{chunk-RO5IQEDQ.js → chunk-NJ42VNXG.js} +1 -2
  96. package/dist/chunk-NJ42VNXG.js.map +1 -0
  97. package/dist/{chunk-AUHSTJJ3.js → chunk-NLXJMXVE.js} +3 -3
  98. package/dist/{chunk-E2ISWXLB.js → chunk-OQKNDS66.js} +1 -1
  99. package/dist/{chunk-E2ISWXLB.js.map → chunk-OQKNDS66.js.map} +1 -1
  100. package/dist/{chunk-IDYHQQOH.js → chunk-OSVZKYXS.js} +229 -378
  101. package/dist/chunk-OSVZKYXS.js.map +1 -0
  102. package/dist/{chunk-JAGJTM3Q.js → chunk-RHUEV4I7.js} +11 -12
  103. package/dist/chunk-RHUEV4I7.js.map +1 -0
  104. package/dist/{chunk-JALIYI6M.js → chunk-S4KVLPBR.js} +7 -2
  105. package/dist/chunk-S4KVLPBR.js.map +1 -0
  106. package/dist/{chunk-ZEGAMJO2.js → chunk-SAOQW6ZJ.js} +14 -14
  107. package/dist/chunk-SAOQW6ZJ.js.map +1 -0
  108. package/dist/{chunk-NOHWIBRX.js → chunk-SI4GMRXD.js} +13 -14
  109. package/dist/chunk-SI4GMRXD.js.map +1 -0
  110. package/dist/{chunk-X3G37FXT.js → chunk-SYMNWNC3.js} +3 -3
  111. package/dist/{chunk-DM4GSE26.js → chunk-TUNR4VUM.js} +3 -3
  112. package/dist/{chunk-XHCBHYN4.js → chunk-UAJYJP5C.js} +7 -2
  113. package/dist/chunk-UAJYJP5C.js.map +1 -0
  114. package/dist/{chunk-OPYQ5KIO.js → chunk-UYA3XL3J.js} +4 -2
  115. package/dist/chunk-UYA3XL3J.js.map +1 -0
  116. package/dist/{chunk-UINQOUZR.js → chunk-V7JVMG63.js} +3 -3
  117. package/dist/{chunk-LAJJPLEV.js → chunk-VBYIDRNU.js} +7 -3
  118. package/dist/chunk-VBYIDRNU.js.map +1 -0
  119. package/dist/{chunk-GS5AUKUO.js → chunk-VHED2STW.js} +10 -7
  120. package/dist/chunk-VHED2STW.js.map +1 -0
  121. package/dist/{chunk-JZT4QGIP.js → chunk-VIICUPWQ.js} +1 -2
  122. package/dist/{chunk-JZT4QGIP.js.map → chunk-VIICUPWQ.js.map} +1 -1
  123. package/dist/{chunk-QCZ2XUKH.js → chunk-VLRSOWHP.js} +16 -14
  124. package/dist/chunk-VLRSOWHP.js.map +1 -0
  125. package/dist/{chunk-XWVDS66D.js → chunk-W5ZLIQFR.js} +182 -381
  126. package/dist/chunk-W5ZLIQFR.js.map +1 -0
  127. package/dist/{chunk-YGZMVNN5.js → chunk-WTSSEUOZ.js} +7 -2
  128. package/dist/chunk-WTSSEUOZ.js.map +1 -0
  129. package/dist/{chunk-OHROA3FQ.js → chunk-WWP2STF5.js} +7 -2
  130. package/dist/chunk-WWP2STF5.js.map +1 -0
  131. package/dist/{chunk-IK2L4EN3.js → chunk-XADEMW6B.js} +3 -3
  132. package/dist/{chunk-FQ33BYFR.js → chunk-XEMLYWHK.js} +3 -3
  133. package/dist/{chunk-OZAEWZZ3.js → chunk-XFSEADPC.js} +6 -2
  134. package/dist/chunk-XFSEADPC.js.map +1 -0
  135. package/dist/{chunk-TWGVQLG2.js → chunk-XUUSWR4U.js} +1 -2
  136. package/dist/{chunk-TWGVQLG2.js.map → chunk-XUUSWR4U.js.map} +1 -1
  137. package/dist/{chunk-XLQI4IT2.js → chunk-YBVMZ7SR.js} +7 -2
  138. package/dist/chunk-YBVMZ7SR.js.map +1 -0
  139. package/dist/{chunk-A7IVFIOP.js → chunk-YRJICL2Q.js} +14 -14
  140. package/dist/chunk-YRJICL2Q.js.map +1 -0
  141. package/dist/{chunk-ZGSER5TG.js → chunk-ZM44MGC5.js} +3 -3
  142. package/dist/{chunk-G2WCEUQL.js → chunk-ZMREYTHA.js} +15 -14
  143. package/dist/chunk-ZMREYTHA.js.map +1 -0
  144. package/dist/{chunk-H3I2KZIY.js → chunk-ZPB3SLPK.js} +1 -2
  145. package/dist/{chunk-H3I2KZIY.js.map → chunk-ZPB3SLPK.js.map} +1 -1
  146. package/dist/chunk-ZPZQXHW2.js +1230 -0
  147. package/dist/chunk-ZPZQXHW2.js.map +1 -0
  148. package/dist/{config-34LHOGLM.js → config-2LASFFRD.js} +2 -4
  149. package/dist/config-3WDIJPTG.js +9 -0
  150. package/dist/config-4QV4QYI5.js +9 -0
  151. package/dist/{config-ZFJYQZCH.js → config-54USUVSE.js} +2 -4
  152. package/dist/config-5ZXN2T2H.js +9 -0
  153. package/dist/config-A2GQYJDB.js +9 -0
  154. package/dist/config-BBOLI7VE.js +9 -0
  155. package/dist/{config-VM526IKB.js → config-BIBFLUIR.js} +2 -4
  156. package/dist/{config-EO23EY62.js → config-CPYFOUQO.js} +2 -4
  157. package/dist/{config-3IVQJBNW.js → config-DWSJL3NH.js} +2 -4
  158. package/dist/config-E22XAGYN.js +9 -0
  159. package/dist/config-EHE52ZTK.js +9 -0
  160. package/dist/{config-GE4W4ZJC.js → config-EX3ZJTZI.js} +2 -4
  161. package/dist/{config-QNMKWJ4M.js → config-FRK7ZL37.js} +2 -4
  162. package/dist/{config-LHFFXVYI.js → config-HQXNFQZS.js} +2 -4
  163. package/dist/config-HTXOOAOD.js +9 -0
  164. package/dist/{config-HKRMKD76.js → config-IPNWAJHH.js} +2 -4
  165. package/dist/config-J2C53GOT.js +9 -0
  166. package/dist/config-K63RX6EU.js +9 -0
  167. package/dist/config-L7SBSH5L.js +9 -0
  168. package/dist/config-LEALEMKA.js +9 -0
  169. package/dist/{config-IVY5EQQ2.js → config-M3Z47VYU.js} +2 -4
  170. package/dist/{config-EIHSP5DZ.js → config-MZM3IPFM.js} +2 -4
  171. package/dist/{config-GHRUKEQ6.js → config-OJ2BPESH.js} +2 -4
  172. package/dist/{config-WDAZFXYD.js → config-QO2XUME4.js} +2 -4
  173. package/dist/config-QWQGOXQ5.js +9 -0
  174. package/dist/config-RI7IEZUF.js +9 -0
  175. package/dist/{config-CVZ2AGCO.js → config-SPW6NESU.js} +2 -6
  176. package/dist/{config-QAA646XB.js → config-T2IUIU5C.js} +2 -4
  177. package/dist/{config-NV5WXP64.js → config-UU27ALAA.js} +2 -4
  178. package/dist/config-VKKZGC7V.js +9 -0
  179. package/dist/config-W7EVPJNK.js +11 -0
  180. package/dist/config-WKQ3FGTZ.js +9 -0
  181. package/dist/config-WVILHDFV.js +11 -0
  182. package/dist/{config-Q45Y46YT.js → config-XU6D5C7E.js} +2 -4
  183. package/dist/databricks_volume-ETRDJVVQ.js +7 -0
  184. package/dist/digitalocean-QP72DR4J.js +10 -0
  185. package/dist/discord-BSN5RB3E.js +8 -0
  186. package/dist/disk-24NWTN2I.js +7 -0
  187. package/dist/dropbox-OSTZXSIE.js +8 -0
  188. package/dist/email-4ZFPSWIN.js +8 -0
  189. package/dist/gcs-PFWR6MIW.js +10 -0
  190. package/dist/gdocs-GPAZRQG5.js +8 -0
  191. package/dist/gdrive-XSX6A7B3.js +8 -0
  192. package/dist/github-EQ4NXUTA.js +8 -0
  193. package/dist/github_ci-QL5B2Q2N.js +8 -0
  194. package/dist/gmail-2TBT4CVH.js +8 -0
  195. package/dist/gridfs-KZRZ6SIB.js +9 -0
  196. package/dist/gsheets-N53WEXN2.js +8 -0
  197. package/dist/gslides-TATSARTH.js +8 -0
  198. package/dist/hf_buckets-BK7NGJWS.js +10 -0
  199. package/dist/hf_datasets-UQ5QGM4L.js +10 -0
  200. package/dist/hf_models-75LFCQCS.js +10 -0
  201. package/dist/hf_spaces-6T2KB3UC.js +10 -0
  202. package/dist/index.d.ts +494 -40
  203. package/dist/index.js +1193 -388
  204. package/dist/index.js.map +1 -1
  205. package/dist/langfuse-AMQCQWNE.js +8 -0
  206. package/dist/linear-V3TXO6CV.js +8 -0
  207. package/dist/minio-IZRZY4C5.js +10 -0
  208. package/dist/mongodb-VMKPQCPX.js +7 -0
  209. package/dist/nextcloud-5RHQCGDO.js +9 -0
  210. package/dist/notion-6PPNTQFM.js +8 -0
  211. package/dist/oci-CKYBSFZJ.js +10 -0
  212. package/dist/postgres-WIQBVL5M.js +7 -0
  213. package/dist/qingstor-AP4IIPLY.js +10 -0
  214. package/dist/r2-C4XGEWQY.js +10 -0
  215. package/dist/redis-6D55Q2WB.js +8 -0
  216. package/dist/s3-XQBI2CXN.js +8 -0
  217. package/dist/scaleway-SEZJVURB.js +10 -0
  218. package/dist/seaweedfs-3XYIAFU2.js +10 -0
  219. package/dist/slack-ZHXDJQY4.js +8 -0
  220. package/dist/ssh-X2MO7JOV.js +8 -0
  221. package/dist/supabase-BBM44UTM.js +10 -0
  222. package/dist/supabase-BBM44UTM.js.map +1 -0
  223. package/dist/tencent-X72USLJ7.js +10 -0
  224. package/dist/tencent-X72USLJ7.js.map +1 -0
  225. package/dist/trello-EER5NG7L.js +8 -0
  226. package/dist/trello-EER5NG7L.js.map +1 -0
  227. package/dist/wasabi-O4MVIUFG.js +10 -0
  228. package/dist/wasabi-O4MVIUFG.js.map +1 -0
  229. package/package.json +4 -2
  230. package/dist/aliyun-JMJ3PFYY.js +0 -10
  231. package/dist/backblaze-TDFD23QO.js +0 -10
  232. package/dist/box-GQ2U2R6R.js +0 -8
  233. package/dist/ceph-S2VOYO6G.js +0 -10
  234. package/dist/chunk-2CC5VW7K.js.map +0 -1
  235. package/dist/chunk-A7IVFIOP.js.map +0 -1
  236. package/dist/chunk-B2ZOKNN4.js.map +0 -1
  237. package/dist/chunk-DP2PP5V2.js.map +0 -1
  238. package/dist/chunk-DYXEITK3.js.map +0 -1
  239. package/dist/chunk-EGB7V74Z.js.map +0 -1
  240. package/dist/chunk-EM4J5EQS.js.map +0 -1
  241. package/dist/chunk-EZQ5HBAC.js.map +0 -1
  242. package/dist/chunk-G2WCEUQL.js.map +0 -1
  243. package/dist/chunk-GCFYZSVR.js.map +0 -1
  244. package/dist/chunk-GS5AUKUO.js.map +0 -1
  245. package/dist/chunk-IDYHQQOH.js.map +0 -1
  246. package/dist/chunk-JAGJTM3Q.js.map +0 -1
  247. package/dist/chunk-JALIYI6M.js.map +0 -1
  248. package/dist/chunk-JCC4CU2I.js.map +0 -1
  249. package/dist/chunk-LAJJPLEV.js.map +0 -1
  250. package/dist/chunk-LV2G7VHL.js.map +0 -1
  251. package/dist/chunk-M5FVUIYP.js.map +0 -1
  252. package/dist/chunk-MPCCRRE6.js.map +0 -1
  253. package/dist/chunk-NJMGCT63.js.map +0 -1
  254. package/dist/chunk-NOHWIBRX.js.map +0 -1
  255. package/dist/chunk-OHROA3FQ.js.map +0 -1
  256. package/dist/chunk-OPYQ5KIO.js.map +0 -1
  257. package/dist/chunk-OZAEWZZ3.js.map +0 -1
  258. package/dist/chunk-Q2IAILVC.js.map +0 -1
  259. package/dist/chunk-QCZ2XUKH.js.map +0 -1
  260. package/dist/chunk-QGRDPSAH.js.map +0 -1
  261. package/dist/chunk-RNQN2FOU.js.map +0 -1
  262. package/dist/chunk-RO5IQEDQ.js.map +0 -1
  263. package/dist/chunk-RQK5UPMP.js.map +0 -1
  264. package/dist/chunk-S5OVP467.js.map +0 -1
  265. package/dist/chunk-SFUCUARB.js.map +0 -1
  266. package/dist/chunk-SWCDFEUK.js.map +0 -1
  267. package/dist/chunk-TA3WMOMU.js.map +0 -1
  268. package/dist/chunk-TURD42QO.js +0 -1782
  269. package/dist/chunk-TURD42QO.js.map +0 -1
  270. package/dist/chunk-U6QSXTUS.js +0 -7
  271. package/dist/chunk-U6QSXTUS.js.map +0 -1
  272. package/dist/chunk-UGK4TAVK.js.map +0 -1
  273. package/dist/chunk-UT2OPSN4.js.map +0 -1
  274. package/dist/chunk-VGLHY6BK.js.map +0 -1
  275. package/dist/chunk-VWKUT4CW.js.map +0 -1
  276. package/dist/chunk-WAR4Q2NM.js.map +0 -1
  277. package/dist/chunk-WHFUWWI6.js +0 -2097
  278. package/dist/chunk-WHFUWWI6.js.map +0 -1
  279. package/dist/chunk-XGJ2QERC.js.map +0 -1
  280. package/dist/chunk-XHCBHYN4.js.map +0 -1
  281. package/dist/chunk-XLQI4IT2.js.map +0 -1
  282. package/dist/chunk-XWVDS66D.js.map +0 -1
  283. package/dist/chunk-YGZMVNN5.js.map +0 -1
  284. package/dist/chunk-ZEGAMJO2.js.map +0 -1
  285. package/dist/chunk-ZNWVJ6UW.js.map +0 -1
  286. package/dist/config-3BBWD5AB.js +0 -11
  287. package/dist/config-4UDVSUQJ.js +0 -11
  288. package/dist/config-CMDBAPDH.js +0 -11
  289. package/dist/config-D3RLSPNF.js +0 -11
  290. package/dist/config-DG65OEG3.js +0 -11
  291. package/dist/config-GCQK6NJY.js +0 -11
  292. package/dist/config-GVH27UPE.js +0 -11
  293. package/dist/config-HXVYIXP5.js +0 -11
  294. package/dist/config-IDZMEW73.js +0 -11
  295. package/dist/config-IJJXGLBQ.js +0 -11
  296. package/dist/config-KJOLGVB2.js +0 -11
  297. package/dist/config-KMVCVBYN.js +0 -15
  298. package/dist/config-KYTRXAB2.js +0 -15
  299. package/dist/config-OT2TQQCN.js +0 -11
  300. package/dist/config-QWCY3LBQ.js +0 -11
  301. package/dist/config-ZV6G2ZEC.js +0 -11
  302. package/dist/databricks_volume-7XOUYSTY.js +0 -7
  303. package/dist/digitalocean-3CQ4CPPZ.js +0 -10
  304. package/dist/discord-BG7OSRJG.js +0 -8
  305. package/dist/disk-XVLBCVKE.js +0 -8
  306. package/dist/dropbox-74GYLV3R.js +0 -8
  307. package/dist/email-5IZ7OBQ4.js +0 -8
  308. package/dist/gcs-EMEYU2XT.js +0 -10
  309. package/dist/gdocs-R67TDPON.js +0 -8
  310. package/dist/gdrive-PRN2ALRK.js +0 -8
  311. package/dist/github-DV7E6OFV.js +0 -8
  312. package/dist/github_ci-Q554V5PA.js +0 -8
  313. package/dist/gmail-OLN2LT4O.js +0 -8
  314. package/dist/gsheets-H4RYMQJ5.js +0 -8
  315. package/dist/gslides-YLCHKJOM.js +0 -8
  316. package/dist/hf_buckets-DTKXKKFF.js +0 -10
  317. package/dist/hf_datasets-55C4APKR.js +0 -10
  318. package/dist/hf_models-RO5JR36V.js +0 -10
  319. package/dist/hf_spaces-ZVZ3EDRX.js +0 -10
  320. package/dist/langfuse-ACASJZ7O.js +0 -8
  321. package/dist/linear-IC37LZV7.js +0 -8
  322. package/dist/minio-HZ576XFQ.js +0 -10
  323. package/dist/mongodb-JVR62OIO.js +0 -7
  324. package/dist/notion-HKRPQMJS.js +0 -8
  325. package/dist/oci-ZLVECXTW.js +0 -10
  326. package/dist/postgres-P36Z2YN4.js +0 -7
  327. package/dist/qingstor-YLP6K3L4.js +0 -10
  328. package/dist/r2-RPK25ANI.js +0 -10
  329. package/dist/redis-V5ULXULL.js +0 -8
  330. package/dist/s3-4OIOCAAT.js +0 -8
  331. package/dist/scaleway-CCWCLUHB.js +0 -10
  332. package/dist/seaweedfs-QSWKF2FN.js +0 -10
  333. package/dist/slack-YPS7PII3.js +0 -8
  334. package/dist/ssh-YFP3SMTJ.js +0 -9
  335. package/dist/supabase-6CFTOKGZ.js +0 -10
  336. package/dist/tencent-IWZZOSQ4.js +0 -10
  337. package/dist/trello-XYKWZD6P.js +0 -8
  338. package/dist/wasabi-6Z4DC5S5.js +0 -10
  339. /package/dist/{aliyun-JMJ3PFYY.js.map → aliyun-PGI57A43.js.map} +0 -0
  340. /package/dist/{backblaze-TDFD23QO.js.map → backblaze-TSPL6Y56.js.map} +0 -0
  341. /package/dist/{box-GQ2U2R6R.js.map → box-7XTZYDSO.js.map} +0 -0
  342. /package/dist/{ceph-S2VOYO6G.js.map → ceph-C265UI5T.js.map} +0 -0
  343. /package/dist/{chunk-I5THIMPP.js.map → chunk-25W4XQJZ.js.map} +0 -0
  344. /package/dist/{chunk-HJJMP6IX.js.map → chunk-4M73WHIE.js.map} +0 -0
  345. /package/dist/{chunk-7CW3BMPH.js.map → chunk-4X6CLF4F.js.map} +0 -0
  346. /package/dist/{chunk-QQBJC2FQ.js.map → chunk-5I7Q7RHW.js.map} +0 -0
  347. /package/dist/{chunk-X5HF2OFP.js.map → chunk-BWWU5T2D.js.map} +0 -0
  348. /package/dist/{chunk-KPULTUOK.js.map → chunk-CXQGMFI7.js.map} +0 -0
  349. /package/dist/{chunk-N5FSLVKO.js.map → chunk-DXU7NZPH.js.map} +0 -0
  350. /package/dist/{chunk-YAHRT6MB.js.map → chunk-EGZNOUMH.js.map} +0 -0
  351. /package/dist/{chunk-HGCRXJGP.js.map → chunk-F5NWRF32.js.map} +0 -0
  352. /package/dist/{chunk-3WIO7NBR.js.map → chunk-L4GMDSMB.js.map} +0 -0
  353. /package/dist/{chunk-47AVIIOT.js.map → chunk-L7FEZ7LU.js.map} +0 -0
  354. /package/dist/{chunk-AUHSTJJ3.js.map → chunk-NLXJMXVE.js.map} +0 -0
  355. /package/dist/{chunk-X3G37FXT.js.map → chunk-SYMNWNC3.js.map} +0 -0
  356. /package/dist/{chunk-DM4GSE26.js.map → chunk-TUNR4VUM.js.map} +0 -0
  357. /package/dist/{chunk-UINQOUZR.js.map → chunk-V7JVMG63.js.map} +0 -0
  358. /package/dist/{chunk-IK2L4EN3.js.map → chunk-XADEMW6B.js.map} +0 -0
  359. /package/dist/{chunk-FQ33BYFR.js.map → chunk-XEMLYWHK.js.map} +0 -0
  360. /package/dist/{chunk-ZGSER5TG.js.map → chunk-ZM44MGC5.js.map} +0 -0
  361. /package/dist/{config-34LHOGLM.js.map → config-2LASFFRD.js.map} +0 -0
  362. /package/dist/{config-3BBWD5AB.js.map → config-3WDIJPTG.js.map} +0 -0
  363. /package/dist/{config-3IVQJBNW.js.map → config-4QV4QYI5.js.map} +0 -0
  364. /package/dist/{config-4UDVSUQJ.js.map → config-54USUVSE.js.map} +0 -0
  365. /package/dist/{config-CMDBAPDH.js.map → config-5ZXN2T2H.js.map} +0 -0
  366. /package/dist/{config-CVZ2AGCO.js.map → config-A2GQYJDB.js.map} +0 -0
  367. /package/dist/{config-D3RLSPNF.js.map → config-BBOLI7VE.js.map} +0 -0
  368. /package/dist/{config-DG65OEG3.js.map → config-BIBFLUIR.js.map} +0 -0
  369. /package/dist/{config-EIHSP5DZ.js.map → config-CPYFOUQO.js.map} +0 -0
  370. /package/dist/{config-EO23EY62.js.map → config-DWSJL3NH.js.map} +0 -0
  371. /package/dist/{config-GCQK6NJY.js.map → config-E22XAGYN.js.map} +0 -0
  372. /package/dist/{config-GE4W4ZJC.js.map → config-EHE52ZTK.js.map} +0 -0
  373. /package/dist/{config-GHRUKEQ6.js.map → config-EX3ZJTZI.js.map} +0 -0
  374. /package/dist/{config-GVH27UPE.js.map → config-FRK7ZL37.js.map} +0 -0
  375. /package/dist/{config-HKRMKD76.js.map → config-HQXNFQZS.js.map} +0 -0
  376. /package/dist/{config-HXVYIXP5.js.map → config-HTXOOAOD.js.map} +0 -0
  377. /package/dist/{config-IDZMEW73.js.map → config-IPNWAJHH.js.map} +0 -0
  378. /package/dist/{config-IJJXGLBQ.js.map → config-J2C53GOT.js.map} +0 -0
  379. /package/dist/{config-IVY5EQQ2.js.map → config-K63RX6EU.js.map} +0 -0
  380. /package/dist/{config-KJOLGVB2.js.map → config-L7SBSH5L.js.map} +0 -0
  381. /package/dist/{config-KMVCVBYN.js.map → config-LEALEMKA.js.map} +0 -0
  382. /package/dist/{config-KYTRXAB2.js.map → config-M3Z47VYU.js.map} +0 -0
  383. /package/dist/{config-LHFFXVYI.js.map → config-MZM3IPFM.js.map} +0 -0
  384. /package/dist/{config-NV5WXP64.js.map → config-OJ2BPESH.js.map} +0 -0
  385. /package/dist/{config-OT2TQQCN.js.map → config-QO2XUME4.js.map} +0 -0
  386. /package/dist/{config-Q45Y46YT.js.map → config-QWQGOXQ5.js.map} +0 -0
  387. /package/dist/{config-QAA646XB.js.map → config-RI7IEZUF.js.map} +0 -0
  388. /package/dist/{config-QNMKWJ4M.js.map → config-SPW6NESU.js.map} +0 -0
  389. /package/dist/{config-QWCY3LBQ.js.map → config-T2IUIU5C.js.map} +0 -0
  390. /package/dist/{config-VM526IKB.js.map → config-UU27ALAA.js.map} +0 -0
  391. /package/dist/{config-WDAZFXYD.js.map → config-VKKZGC7V.js.map} +0 -0
  392. /package/dist/{config-ZFJYQZCH.js.map → config-W7EVPJNK.js.map} +0 -0
  393. /package/dist/{config-ZV6G2ZEC.js.map → config-WKQ3FGTZ.js.map} +0 -0
  394. /package/dist/{databricks_volume-7XOUYSTY.js.map → config-WVILHDFV.js.map} +0 -0
  395. /package/dist/{digitalocean-3CQ4CPPZ.js.map → config-XU6D5C7E.js.map} +0 -0
  396. /package/dist/{discord-BG7OSRJG.js.map → databricks_volume-ETRDJVVQ.js.map} +0 -0
  397. /package/dist/{disk-XVLBCVKE.js.map → digitalocean-QP72DR4J.js.map} +0 -0
  398. /package/dist/{dropbox-74GYLV3R.js.map → discord-BSN5RB3E.js.map} +0 -0
  399. /package/dist/{email-5IZ7OBQ4.js.map → disk-24NWTN2I.js.map} +0 -0
  400. /package/dist/{gcs-EMEYU2XT.js.map → dropbox-OSTZXSIE.js.map} +0 -0
  401. /package/dist/{gdocs-R67TDPON.js.map → email-4ZFPSWIN.js.map} +0 -0
  402. /package/dist/{gdrive-PRN2ALRK.js.map → gcs-PFWR6MIW.js.map} +0 -0
  403. /package/dist/{github-DV7E6OFV.js.map → gdocs-GPAZRQG5.js.map} +0 -0
  404. /package/dist/{github_ci-Q554V5PA.js.map → gdrive-XSX6A7B3.js.map} +0 -0
  405. /package/dist/{gmail-OLN2LT4O.js.map → github-EQ4NXUTA.js.map} +0 -0
  406. /package/dist/{gsheets-H4RYMQJ5.js.map → github_ci-QL5B2Q2N.js.map} +0 -0
  407. /package/dist/{gslides-YLCHKJOM.js.map → gmail-2TBT4CVH.js.map} +0 -0
  408. /package/dist/{hf_buckets-DTKXKKFF.js.map → gridfs-KZRZ6SIB.js.map} +0 -0
  409. /package/dist/{hf_datasets-55C4APKR.js.map → gsheets-N53WEXN2.js.map} +0 -0
  410. /package/dist/{hf_models-RO5JR36V.js.map → gslides-TATSARTH.js.map} +0 -0
  411. /package/dist/{hf_spaces-ZVZ3EDRX.js.map → hf_buckets-BK7NGJWS.js.map} +0 -0
  412. /package/dist/{langfuse-ACASJZ7O.js.map → hf_datasets-UQ5QGM4L.js.map} +0 -0
  413. /package/dist/{linear-IC37LZV7.js.map → hf_models-75LFCQCS.js.map} +0 -0
  414. /package/dist/{minio-HZ576XFQ.js.map → hf_spaces-6T2KB3UC.js.map} +0 -0
  415. /package/dist/{mongodb-JVR62OIO.js.map → langfuse-AMQCQWNE.js.map} +0 -0
  416. /package/dist/{notion-HKRPQMJS.js.map → linear-V3TXO6CV.js.map} +0 -0
  417. /package/dist/{oci-ZLVECXTW.js.map → minio-IZRZY4C5.js.map} +0 -0
  418. /package/dist/{postgres-P36Z2YN4.js.map → mongodb-VMKPQCPX.js.map} +0 -0
  419. /package/dist/{qingstor-YLP6K3L4.js.map → nextcloud-5RHQCGDO.js.map} +0 -0
  420. /package/dist/{r2-RPK25ANI.js.map → notion-6PPNTQFM.js.map} +0 -0
  421. /package/dist/{redis-V5ULXULL.js.map → oci-CKYBSFZJ.js.map} +0 -0
  422. /package/dist/{s3-4OIOCAAT.js.map → postgres-WIQBVL5M.js.map} +0 -0
  423. /package/dist/{scaleway-CCWCLUHB.js.map → qingstor-AP4IIPLY.js.map} +0 -0
  424. /package/dist/{seaweedfs-QSWKF2FN.js.map → r2-C4XGEWQY.js.map} +0 -0
  425. /package/dist/{slack-YPS7PII3.js.map → redis-6D55Q2WB.js.map} +0 -0
  426. /package/dist/{ssh-YFP3SMTJ.js.map → s3-XQBI2CXN.js.map} +0 -0
  427. /package/dist/{supabase-6CFTOKGZ.js.map → scaleway-SEZJVURB.js.map} +0 -0
  428. /package/dist/{tencent-IWZZOSQ4.js.map → seaweedfs-3XYIAFU2.js.map} +0 -0
  429. /package/dist/{trello-XYKWZD6P.js.map → slack-ZHXDJQY4.js.map} +0 -0
  430. /package/dist/{wasabi-6Z4DC5S5.js.map → ssh-X2MO7JOV.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- import { Resource, MountMode, CommandSafeguard, WorkspaceOptions, Workspace as Workspace$1, ExecuteOptions, ExecuteResult, ProvisionResult, Accessor, BaseResource, RegisteredOp, RegisteredCommand, PathSpec, FileStat, FindOptions, ObserverStore, REDACTED_SECRET, CommandOpts, FileCache, OpRecord, S3Config as S3Config$1, S3ConfigRedacted as S3ConfigRedacted$1, S3Accessor, DatabricksVolumeConfig, DatabricksVolumeAccessor, DatabricksVolumeConfigRedacted, ResourceName, PgDriver, PostgresConfigResolved, PgQueryResult, PostgresAccessor, PostgresConfig, MongoDriver, EntityKind, MongoCollectionSpec, MongoFindOptions, MongoIterOptions, MongoIndexAccess, MongoDBConfigResolved, MongoDBAccessor, MongoDBConfig, LanceDriver, LanceDBConfigResolved, LanceRow, LanceDBAccessor, LanceDBConfig, SlackAccessor, DiscordAccessor, TrelloAccessor, LinearAccessor, NotionAccessor, LangfuseAccessor, GitHubAccessor, GitHubCIAccessor, GDocsAccessor, GSheetsAccessor, GSlidesAccessor, GDriveAccessor, DropboxAccessor, BoxAccessor, GoogleConfig, GmailAccessor, GoogleConfigRedacted } from '@struktoai/mirage-core';
1
+ import { Resource, MountMode, CommandSafeguard, WorkspaceOptions, Workspace as Workspace$1, MountSpec, ExecuteOptions, ExecuteResult, ProvisionResult, Accessor, BaseResource, RegisteredOp, RegisteredCommand, PathSpec, FileStat, FindOptions, ObserverStore, NamespaceStore, NodeFields, SessionStore, SessionFields, WorkspaceStateStore, WorkspaceStateStoreOverrides, WorkspaceFields, REDACTED_SECRET, CommandOpts, FileCache, Session, OpRecord, S3Config as S3Config$1, S3ConfigRedacted as S3ConfigRedacted$1, S3Accessor, DatabricksVolumeConfig, DatabricksVolumeAccessor, DatabricksVolumeConfigRedacted, ResourceName, PgDriver, PostgresConfigResolved, PgQueryResult, PostgresAccessor, PostgresConfig, MongoDriver, EntityKind, MongoCollectionSpec, MongoFindOptions, MongoIterOptions, MongoIndexAccess, MongoDBConfigResolved, MongoDBAccessor, MongoDBConfig, LanceDriver, LanceDBConfigResolved, LanceRow, LanceDBAccessor, LanceDBConfig, SlackAccessor, DiscordAccessor, TrelloAccessor, LinearAccessor, NotionAccessor, LangfuseAccessor, GitHubAccessor, GitHubCIAccessor, GDocsAccessor, GSheetsAccessor, GSlidesAccessor, GDriveAccessor, DropboxAccessor, BoxAccessor, GoogleConfig, GmailAccessor, GoogleConfigRedacted } from '@struktoai/mirage-core';
2
2
  export * from '@struktoai/mirage-core';
3
3
  export { GoogleConfig as GmailConfig, GoogleConfigRedacted as GmailConfigRedacted, normalizeGoogleConfig as normalizeGmailConfig, redactGoogleConfig as redactGmailConfig } from '@struktoai/mirage-core';
4
+ import { FileHandle } from 'node:fs/promises';
4
5
  import { RedisClientType } from 'redis';
6
+ import { MongoClient, Db } from 'mongodb';
5
7
  import { Operator } from 'opendal';
6
8
  import { SFTPWrapper } from 'ssh2';
7
9
  import { ImapFlow } from 'imapflow';
@@ -24,16 +26,21 @@ declare class Workspace extends Workspace$1 {
24
26
  private fuseSetupPromise;
25
27
  private readonly fuseMountpointsMap;
26
28
  private readonly fuseManagers;
27
- constructor(resources: Record<string, Resource | Mount>, options?: NodeWorkspaceOptions);
29
+ constructor(resources: Record<string, MountSpec | Mount>, options?: NodeWorkspaceOptions);
28
30
  private registerFuseMount;
29
31
  /**
30
32
  * Mount a workspace subtree under FUSE and own its lifecycle. Each mount gets
31
33
  * its own {@link FuseManager}, so a workspace can expose any number of FUSE
32
34
  * subtrees at once. A pinned mountpoint is collision-checked BEFORE mounting,
33
35
  * so a clash never leaves a partial kernel mount.
36
+ *
37
+ * A session-bound mount (`sessionId` given) runs every op under that
38
+ * session's mount grants (the kernel-tier primitive: bind-mount the tree
39
+ * into a container and the narrowing travels with it); it is keyed
40
+ * separately so the same prefix can also be exposed unbound.
34
41
  */
35
- addFuseMount(prefix: string, mountpoint?: string): Promise<string>;
36
- removeFuseMount(prefix: string): Promise<void>;
42
+ addFuseMount(prefix: string, mountpoint?: string, sessionId?: string): Promise<string>;
43
+ removeFuseMount(prefix: string, sessionId?: string): Promise<void>;
37
44
  get fuseMountpoints(): Record<string, string>;
38
45
  get fuseMountpoint(): string | null;
39
46
  /** Await the eager per-mount fuse mounts started in the constructor. */
@@ -59,6 +66,7 @@ interface DiskResourceOptions {
59
66
  interface DiskResourceState {
60
67
  type: string;
61
68
  files: Record<string, Uint8Array>;
69
+ modes?: Record<string, number>;
62
70
  }
63
71
  declare class DiskResource extends BaseResource implements Resource {
64
72
  readonly kind: "disk";
@@ -91,7 +99,6 @@ declare class DiskResource extends BaseResource implements Resource {
91
99
  rmR(p: PathSpec): Promise<void>;
92
100
  du(p: PathSpec): Promise<number>;
93
101
  find(p: PathSpec, options?: FindOptions): Promise<string[]>;
94
- fingerprint(p: PathSpec): Promise<string | null>;
95
102
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
96
103
  getState(): Promise<DiskResourceState>;
97
104
  loadState(state: DiskResourceState): Promise<void>;
@@ -146,6 +153,234 @@ declare class RedisObserverStore implements ObserverStore {
146
153
  close(): Promise<void>;
147
154
  }
148
155
 
156
+ /**
157
+ * NamespaceStore backed by one `namespace.json` per workspace.
158
+ *
159
+ * The whole plane is one human-readable record
160
+ * `{"nodes": {path: fields}, "user": ...}`: the namespace is bound to
161
+ * the workspace, so it serializes as one JSON file, not per-node
162
+ * files. Read-modify-writes take the record's lockfile so concurrent
163
+ * local processes never lose a node upsert; the write itself stays
164
+ * tmp-then-rename atomic, so readers never see a torn file. Mirrors
165
+ * the Python DiskNamespaceStore byte-for-byte on disk.
166
+ */
167
+ declare class DiskNamespaceStore extends NamespaceStore {
168
+ private readonly records;
169
+ constructor(root: string);
170
+ private state;
171
+ private write;
172
+ load(): Promise<Map<string, NodeFields>>;
173
+ set(path: string, fields: NodeFields): Promise<void>;
174
+ delete(paths: readonly string[]): Promise<void>;
175
+ replaceAll(entries: Map<string, NodeFields>): Promise<void>;
176
+ loadUser(): Promise<string | null>;
177
+ setUser(user: string): Promise<void>;
178
+ clear(): Promise<void>;
179
+ close(): Promise<void>;
180
+ }
181
+
182
+ interface RedisNamespaceStoreOptions {
183
+ url?: string;
184
+ keyPrefix?: string;
185
+ }
186
+ /**
187
+ * NamespaceStore backed by one Redis hash (path -> JSON fields).
188
+ *
189
+ * Symlinks and attribute overlays survive process restarts and are visible
190
+ * to any workspace pointed at the same key prefix. Writes are
191
+ * single-command (HSET/HDEL) so mutations stay one round trip. Mirrors the
192
+ * Python RedisNamespaceStore.
193
+ */
194
+ declare class RedisNamespaceStore extends NamespaceStore {
195
+ readonly url: string;
196
+ private readonly key;
197
+ private readonly userKey;
198
+ private clientPromise;
199
+ constructor(options?: RedisNamespaceStoreOptions);
200
+ private client;
201
+ load(): Promise<Map<string, NodeFields>>;
202
+ set(path: string, fields: NodeFields): Promise<void>;
203
+ delete(paths: readonly string[]): Promise<void>;
204
+ replaceAll(entries: Map<string, NodeFields>): Promise<void>;
205
+ loadUser(): Promise<string | null>;
206
+ setUser(user: string): Promise<void>;
207
+ clear(): Promise<void>;
208
+ close(): Promise<void>;
209
+ }
210
+
211
+ /**
212
+ * One JSON-record-per-file client with lockfile CAS.
213
+ *
214
+ * The disk twin of `S3RecordClient`: a record is one file at
215
+ * `{root}/{prefix}{name}.json`, written atomically (tmp then rename(2))
216
+ * so readers never see a torn record. The conditional write serializes
217
+ * on a `{record}.lock` created with O_CREAT|O_EXCL, so compare and
218
+ * write hit the same stored version. Record names are percent-encoded
219
+ * into filenames, so any id is safe. Mirrors the Python
220
+ * DiskRecordClient byte-for-byte on disk.
221
+ */
222
+ declare class DiskRecordClient {
223
+ private readonly dir;
224
+ constructor(root: string, prefix: string);
225
+ recordPath(name: string): string;
226
+ get(name: string): Promise<[Record<string, unknown> | null, string]>;
227
+ put(name: string, fields: Record<string, unknown>): Promise<void>;
228
+ /**
229
+ * Write one record iff its stored generation matches.
230
+ *
231
+ * Take the record's lockfile, re-read under the lock, check the
232
+ * generation, then tmp-write + rename. Losing the lock race or the
233
+ * generation check resolves false; the caller adopts and retries.
234
+ */
235
+ casPut(name: string, fields: Record<string, unknown>, expectedGeneration: number): Promise<boolean>;
236
+ listNames(): Promise<string[]>;
237
+ loadAll(): Promise<Map<string, Record<string, unknown>>>;
238
+ delete(names: Iterable<string>): Promise<void>;
239
+ clear(): Promise<void>;
240
+ close(): Promise<void>;
241
+ /**
242
+ * Block until this record's lockfile is held; handle to release.
243
+ *
244
+ * For callers doing a read-modify-write that is not generation-CAS
245
+ * (e.g. the single-file namespace plane); spins past contention and
246
+ * reclaims stale locks, throwing only if a live writer holds the
247
+ * lock for the whole retry budget (~10s).
248
+ */
249
+ lock(name: string): Promise<FileHandle>;
250
+ unlock(name: string, fh: FileHandle): Promise<void>;
251
+ private acquireLock;
252
+ private reclaimStaleLock;
253
+ private releaseLock;
254
+ private writeRecord;
255
+ }
256
+ /**
257
+ * SessionStore backed by per-session files under one directory.
258
+ *
259
+ * One file per session at `{root}/sessions/{session_id}.json`, lockfile
260
+ * CAS per record, so multiple local processes share one session table
261
+ * with the same generation contract as the Redis Lua script, with zero
262
+ * infrastructure. Mirrors the Python DiskSessionStore.
263
+ */
264
+ declare class DiskSessionStore extends SessionStore {
265
+ private readonly records;
266
+ constructor(root: string);
267
+ load(): Promise<Map<string, SessionFields>>;
268
+ set(sessionId: string, fields: SessionFields): Promise<void>;
269
+ casSet(sessionId: string, fields: SessionFields, expectedGeneration: number): Promise<boolean>;
270
+ delete(sessionIds: readonly string[]): Promise<void>;
271
+ replaceAll(entries: Map<string, SessionFields>): Promise<void>;
272
+ clear(): Promise<void>;
273
+ close(): Promise<void>;
274
+ }
275
+
276
+ interface RedisSessionStoreOptions {
277
+ url?: string;
278
+ keyPrefix?: string;
279
+ }
280
+ /**
281
+ * SessionStore backed by one Redis hash (session id -> JSON fields).
282
+ *
283
+ * Sessions and the mount grants they carry survive restarts and are
284
+ * visible to every workspace pointed at the same key prefix — the seam
285
+ * that lets one process create a session and another (a kernel tier, a
286
+ * sibling daemon) bind a mountpoint to it. Writes are single-command
287
+ * (HSET/HDEL) so mutations stay one round trip. Mirrors the Python
288
+ * RedisSessionStore.
289
+ */
290
+ declare class RedisSessionStore extends SessionStore {
291
+ readonly url: string;
292
+ private readonly key;
293
+ private clientPromise;
294
+ constructor(options?: RedisSessionStoreOptions);
295
+ private client;
296
+ casSet(sessionId: string, fields: SessionFields, expectedGeneration: number): Promise<boolean>;
297
+ load(): Promise<Map<string, SessionFields>>;
298
+ set(sessionId: string, fields: SessionFields): Promise<void>;
299
+ delete(sessionIds: readonly string[]): Promise<void>;
300
+ replaceAll(entries: Map<string, SessionFields>): Promise<void>;
301
+ clear(): Promise<void>;
302
+ close(): Promise<void>;
303
+ }
304
+
305
+ declare const DEFAULT_STATE_ROOT = "~/.mirage/state";
306
+ interface DiskWorkspaceStateStoreOptions extends WorkspaceStateStoreOverrides {
307
+ root?: string;
308
+ }
309
+ /**
310
+ * WorkspaceStateStore backed by a directory tree.
311
+ *
312
+ * Each workspace is one self-contained directory (delete a workspace
313
+ * by removing its folder):
314
+ *
315
+ * - `{root}/workspaces/{ws}/workspace.json` — metadata record
316
+ * - `{root}/workspaces/{ws}/sessions/{sid}.json` — session table
317
+ * - `{root}/workspaces/{ws}/namespace.json` — nodes + user, one JSON
318
+ * - `{root}/workspaces/{ws}/history/<day>/<sid>.jsonl` — history
319
+ *
320
+ * The layout mirrors the S3 store file-for-object; mutable records get
321
+ * the same generation-CAS contract via the lockfile protocol
322
+ * (O_CREAT|O_EXCL mutex, tmp write, rename(2)), so multiple local
323
+ * processes share one workspace with zero infrastructure: a CLI-created
324
+ * workspace survives restart like `git init`. Local filesystems only;
325
+ * anything cross-machine belongs on redis or s3. Mirrors the Python
326
+ * DiskWorkspaceStateStore byte-for-byte on disk.
327
+ */
328
+ declare class DiskWorkspaceStateStore extends WorkspaceStateStore {
329
+ private readonly root;
330
+ private readonly meta;
331
+ private readonly namespaces;
332
+ private readonly observers;
333
+ private readonly sessionTables;
334
+ constructor(options?: DiskWorkspaceStateStoreOptions);
335
+ private wsRoot;
336
+ private metaClient;
337
+ protected makeNamespace(workspaceId: string): NamespaceStore;
338
+ protected makeObserver(workspaceId: string): ObserverStore;
339
+ protected makeSessions(workspaceId: string): SessionStore;
340
+ protected readMeta(workspaceId: string): Promise<WorkspaceFields | null>;
341
+ protected writeMeta(workspaceId: string, fields: WorkspaceFields): Promise<void>;
342
+ protected casWriteMeta(workspaceId: string, fields: WorkspaceFields, expectedGeneration: number): Promise<boolean>;
343
+ protected closeSelf(): Promise<void>;
344
+ }
345
+
346
+ interface RedisWorkspaceStateStoreOptions extends WorkspaceStateStoreOverrides {
347
+ url?: string;
348
+ keyPrefix?: string;
349
+ }
350
+ /**
351
+ * WorkspaceStateStore backed by one Redis server.
352
+ *
353
+ * Key layout under one prefix, everything scoped by workspace id:
354
+ *
355
+ * - `{prefix}workspaces` — hash, workspace id -> metadata JSON
356
+ * - `{prefix}{ws}:namespace:nodes` (+ `:user`) — namespace plane
357
+ * - `{prefix}{ws}:observer:*` — observer plane
358
+ * - `{prefix}{ws}:sessions` — session table
359
+ *
360
+ * All plane state survives restarts and is visible to every process
361
+ * pointed at the same url and prefix, so a workspace rebuilt from its
362
+ * config alone gets identical overlays, history, sessions, and grants.
363
+ * Mirrors the Python RedisWorkspaceStateStore.
364
+ */
365
+ declare class RedisWorkspaceStateStore extends WorkspaceStateStore {
366
+ readonly url: string;
367
+ private readonly prefix;
368
+ private readonly metaKey;
369
+ private clientPromise;
370
+ private readonly namespaces;
371
+ private readonly observers;
372
+ private readonly sessionTables;
373
+ constructor(options?: RedisWorkspaceStateStoreOptions);
374
+ private client;
375
+ protected makeNamespace(workspaceId: string): NamespaceStore;
376
+ protected makeObserver(workspaceId: string): ObserverStore;
377
+ protected makeSessions(workspaceId: string): SessionStore;
378
+ protected readMeta(workspaceId: string): Promise<WorkspaceFields | null>;
379
+ protected writeMeta(workspaceId: string, fields: WorkspaceFields): Promise<void>;
380
+ protected casWriteMeta(workspaceId: string, fields: WorkspaceFields, expectedGeneration: number): Promise<boolean>;
381
+ protected closeSelf(): Promise<void>;
382
+ }
383
+
149
384
  /**
150
385
  * Monkey-patch Node's `fs` module so that paths under any mirage mount
151
386
  * route through the workspace. Paths NOT under a mount fall through to
@@ -170,6 +405,7 @@ declare class RedisStore {
170
405
  fk(path: string): string;
171
406
  dk(): string;
172
407
  mk(path: string): string;
408
+ ak(path: string): string;
173
409
  client(): Promise<RedisClientType>;
174
410
  getFile(path: string): Promise<Uint8Array | null>;
175
411
  setFile(path: string, data: Uint8Array): Promise<void>;
@@ -177,7 +413,6 @@ declare class RedisStore {
177
413
  hasFile(path: string): Promise<boolean>;
178
414
  listFiles(prefix?: string): Promise<string[]>;
179
415
  fileLen(path: string): Promise<number>;
180
- getRange(path: string, start: number, end: number): Promise<Uint8Array>;
181
416
  hasDir(path: string): Promise<boolean>;
182
417
  addDir(path: string): Promise<void>;
183
418
  removeDir(path: string): Promise<void>;
@@ -185,6 +420,9 @@ declare class RedisStore {
185
420
  getModified(path: string): Promise<string | null>;
186
421
  setModified(path: string, ts: string): Promise<void>;
187
422
  delModified(path: string): Promise<void>;
423
+ getAttrs(path: string): Promise<Record<string, string>>;
424
+ setAttrs(path: string, fields: Record<string, string>): Promise<void>;
425
+ delAttrs(path: string): Promise<void>;
188
426
  clear(): Promise<void>;
189
427
  close(): Promise<void>;
190
428
  }
@@ -215,6 +453,8 @@ interface RedisResourceState {
215
453
  keyPrefix: string;
216
454
  files: Record<string, Uint8Array>;
217
455
  dirs: string[];
456
+ attrs?: Record<string, Record<string, string>>;
457
+ modified?: Record<string, string>;
218
458
  }
219
459
  declare class RedisResource extends BaseResource implements Resource {
220
460
  readonly kind: string;
@@ -275,9 +515,13 @@ declare class RedisFileCacheStore extends RedisResource implements FileCache {
275
515
  private readonly limit;
276
516
  private readonly dataPrefix;
277
517
  private readonly metaPrefix;
278
- maxDrainBytes: number | null;
518
+ private maxDrainBytesValue;
519
+ readonly drainTasks: Map<string, Promise<void>>;
279
520
  constructor(options?: RedisFileCacheOptions);
280
- readonly cacheSize = 0;
521
+ get maxDrainBytes(): number | null;
522
+ set maxDrainBytes(value: number | null);
523
+ readonly cacheSize: number | null;
524
+ readonly cacheEntries: number | null;
281
525
  get cacheLimit(): number;
282
526
  cacheClient(): Promise<RedisClientType>;
283
527
  get(key: string): Promise<Uint8Array | null>;
@@ -306,9 +550,10 @@ interface FuseHandle {
306
550
  interface MountOptions {
307
551
  /** Caller/deployment-owned mountpoint. Mirage mounts here but does not delete it. */
308
552
  mountpoint?: string;
309
- agentId?: string;
310
553
  /** Scope the mount to a single workspace mount prefix (subtree exposure). */
311
554
  rootPrefix?: string;
555
+ /** Run every op under this session's mount grants (session-bound mountpoint). */
556
+ session?: Session;
312
557
  /**
313
558
  * When true, `@zkochan/fuse-native`'s `autoUnmount` flag is set so the
314
559
  * kernel releases the mount if the process exits abnormally. Defaults to
@@ -317,7 +562,11 @@ interface MountOptions {
317
562
  * FuseManager runs `diskutil unmount force` instead.
318
563
  */
319
564
  autoUnmount?: boolean;
320
- /** Extra options forwarded verbatim to `@zkochan/fuse-native`. */
565
+ /**
566
+ * Extra options forwarded verbatim to `@zkochan/fuse-native`.
567
+ * `directIO: false` additionally skips the `direct_io` mount option that
568
+ * Mirage appends by default (see appendDirectIO).
569
+ */
321
570
  fuseOptions?: Record<string, unknown>;
322
571
  }
323
572
  declare function mount(ws: Workspace$1, options?: MountOptions): Promise<FuseHandle>;
@@ -343,12 +592,17 @@ interface FuseAttr {
343
592
  gid: number;
344
593
  }
345
594
  interface MirageFSOptions {
346
- agentId?: string;
347
595
  rootPrefix?: string;
596
+ /**
597
+ * Bind every FUSE op to this session's mount grants. The kernel-tier
598
+ * primitive: bind-mount the tree into a container and the narrowing
599
+ * travels with it. Enforcement happens inside dispatch/Ops via the
600
+ * session context, so binding at the op entry point is sufficient.
601
+ */
602
+ session?: Session;
348
603
  }
349
604
  declare class MirageFS {
350
605
  private readonly ws;
351
- readonly agentId: string;
352
606
  private readonly now;
353
607
  private readonly root;
354
608
  private readonly prefixes;
@@ -359,21 +613,38 @@ declare class MirageFS {
359
613
  private nextFh;
360
614
  private readonly uid;
361
615
  private readonly gid;
616
+ private readonly session;
362
617
  constructor(ws: Workspace$1, options?: MirageFSOptions);
363
618
  private resolve;
364
- private whoamiContent;
365
619
  private dirStat;
366
620
  private fileStat;
621
+ /**
622
+ * Fold merged stat attributes into a FUSE attr. The workspace stat
623
+ * already carries the namespace overlay (chmod bits, chown ids, touched
624
+ * mtime), so honoring these fields here is what makes metadata ops
625
+ * visible over FUSE. String uid/gid (names) are skipped: FUSE wants
626
+ * numeric ids and there is no user db to map against.
627
+ */
628
+ private applyStatAttrs;
629
+ /**
630
+ * The target to present for a namespace link at a FUSE path, or null
631
+ * when not a link. Relative targets are stored verbatim and returned
632
+ * as-is. Absolute targets name virtual paths, so they are rewritten
633
+ * relative to the link's directory: returned raw, the kernel would
634
+ * resolve them against the host root and escape the mountpoint.
635
+ */
636
+ private linkTarget;
637
+ private linkStat;
367
638
  private isVirtualDir;
368
639
  private virtualChildren;
369
640
  private cachedSize;
370
641
  private cachedData;
371
642
  /**
372
- * Fetch bytes for a size-unknown file and cache them so the immediate
373
- * getattr → open → read burst (and subsequent stats within the TTL) reuse
374
- * the same fetch. Required because @zkochan/fuse-native doesn't expose
375
- * libfuse's `direct_io` flag — without a real size from getattr, the kernel
376
- * decides the file is empty and never issues read().
643
+ * Fetch bytes for a size-unknown file and cache them so the open → read →
644
+ * fstat burst (and subsequent stats within the TTL) reuse the same fetch.
645
+ * With getattr reporting 0 pre-open, this hydration is what lets fgetattr
646
+ * answer with the real byte length after open (mirrors Python's
647
+ * `_prefetch_read`).
377
648
  */
378
649
  private prefetch;
379
650
  /** Drain and return accumulated op records (mirrors Python's drain_ops). */
@@ -387,6 +658,15 @@ declare class MirageFS {
387
658
  private write;
388
659
  private create;
389
660
  private mkdir;
661
+ private readlink;
662
+ /**
663
+ * Create namespace link `dest -> src` (ln -s src dest; libfuse passes
664
+ * the pointee first). Relative sources are stored verbatim (resolved
665
+ * at follow time, exactly like the shell `ln -s`); absolute sources
666
+ * are mapped into virtual space so a scoped mount stores the path it
667
+ * will later follow.
668
+ */
669
+ private symlink;
390
670
  private unlink;
391
671
  private rename;
392
672
  private rmdir;
@@ -452,11 +732,76 @@ declare class S3Resource extends BaseResource implements Resource {
452
732
  du(p: PathSpec): Promise<number>;
453
733
  find(p: PathSpec, options?: FindOptions): Promise<string[]>;
454
734
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
455
- fingerprint(p: PathSpec): Promise<string | null>;
456
735
  getState(): Promise<S3ResourceState>;
457
736
  loadState(_state: S3ResourceState): Promise<void>;
458
737
  }
459
738
 
739
+ interface GridFSConfig {
740
+ uri: string;
741
+ database: string;
742
+ bucket?: string;
743
+ keyPrefix?: string;
744
+ chunkSizeBytes?: number;
745
+ }
746
+ interface GridFSConfigRedacted extends Omit<GridFSConfig, 'uri'> {
747
+ uri?: string;
748
+ }
749
+ /**
750
+ * Translate Python-style snake_case keys (as used in YAML configs and the
751
+ * Python `GridFSConfig`) to the TS-idiomatic camelCase fields, and
752
+ * normalize the key prefix the way the accessor expects.
753
+ */
754
+ declare function normalizeGridFSConfig(input: Record<string, unknown>): GridFSConfig;
755
+
756
+ declare class GridFSAccessor extends Accessor {
757
+ readonly config: GridFSConfig;
758
+ private clientPromise;
759
+ constructor(config: GridFSConfig);
760
+ client(): Promise<MongoClient>;
761
+ db(): Promise<Db>;
762
+ private _connect;
763
+ close(): Promise<void>;
764
+ }
765
+
766
+ interface GridFSResourceState {
767
+ type: string;
768
+ config: GridFSConfigRedacted;
769
+ }
770
+ declare class GridFSResource extends BaseResource implements Resource {
771
+ readonly kind: string;
772
+ readonly cachesReads: boolean;
773
+ readonly supportsSnapshot: boolean;
774
+ readonly indexTtl: number;
775
+ readonly prompt: string;
776
+ readonly config: GridFSConfig;
777
+ readonly accessor: GridFSAccessor;
778
+ readonly opsMap: Record<string, unknown>;
779
+ constructor(config: GridFSConfig);
780
+ open(): Promise<void>;
781
+ close(): Promise<void>;
782
+ commands(): readonly RegisteredCommand[];
783
+ ops(): readonly RegisteredOp[];
784
+ streamPath(p: PathSpec): AsyncIterable<Uint8Array>;
785
+ readFile(p: PathSpec): Promise<Uint8Array>;
786
+ writeFile(p: PathSpec, data: Uint8Array): Promise<void>;
787
+ appendFile(p: PathSpec, data: Uint8Array): Promise<void>;
788
+ readdir(p: PathSpec): Promise<string[]>;
789
+ stat(p: PathSpec): Promise<FileStat>;
790
+ exists(p: PathSpec): Promise<boolean>;
791
+ mkdir(p: PathSpec): Promise<void>;
792
+ rmdir(p: PathSpec): Promise<void>;
793
+ unlink(p: PathSpec): Promise<void>;
794
+ rename(src: PathSpec, dst: PathSpec): Promise<void>;
795
+ truncate(p: PathSpec, length: number): Promise<void>;
796
+ copy(src: PathSpec, dst: PathSpec): Promise<void>;
797
+ rmR(p: PathSpec): Promise<void>;
798
+ du(p: PathSpec): Promise<number>;
799
+ find(p: PathSpec, options?: FindOptions): Promise<string[]>;
800
+ glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
801
+ getState(): Promise<GridFSResourceState>;
802
+ loadState(_state: GridFSResourceState): Promise<void>;
803
+ }
804
+
460
805
  interface DatabricksVolumeResourceState {
461
806
  type: string;
462
807
  config: DatabricksVolumeConfigRedacted;
@@ -510,6 +855,7 @@ interface GCSConfig {
510
855
  region?: string;
511
856
  timeoutMs?: number;
512
857
  forcePathStyle?: boolean;
858
+ keyPrefix?: string;
513
859
  }
514
860
  interface GCSConfigRedacted {
515
861
  bucket: string;
@@ -518,6 +864,8 @@ interface GCSConfigRedacted {
518
864
  endpoint: string;
519
865
  region: string;
520
866
  timeoutMs?: number;
867
+ forcePathStyle?: boolean;
868
+ keyPrefix?: string;
521
869
  }
522
870
  declare function redactGcsConfig(config: GCSConfig): GCSConfigRedacted;
523
871
 
@@ -547,6 +895,7 @@ interface OCIConfig {
547
895
  accessKeyId: string;
548
896
  secretAccessKey: string;
549
897
  endpoint?: string;
898
+ keyPrefix?: string;
550
899
  timeoutMs?: number;
551
900
  }
552
901
  interface OCIConfigRedacted {
@@ -556,6 +905,7 @@ interface OCIConfigRedacted {
556
905
  accessKeyId: string;
557
906
  secretAccessKey: string;
558
907
  endpoint: string;
908
+ keyPrefix?: string;
559
909
  timeoutMs?: number;
560
910
  }
561
911
  declare function redactOciConfig(config: OCIConfig): OCIConfigRedacted;
@@ -587,6 +937,8 @@ interface R2Config {
587
937
  endpoint?: string;
588
938
  region?: string;
589
939
  profile?: string;
940
+ forcePathStyle?: boolean;
941
+ keyPrefix?: string;
590
942
  timeoutMs?: number;
591
943
  }
592
944
  interface R2ConfigRedacted {
@@ -597,6 +949,8 @@ interface R2ConfigRedacted {
597
949
  endpoint: string;
598
950
  region: string;
599
951
  profile?: string;
952
+ forcePathStyle?: boolean;
953
+ keyPrefix?: string;
600
954
  timeoutMs?: number;
601
955
  }
602
956
  declare function redactR2Config(config: R2Config): R2ConfigRedacted;
@@ -628,6 +982,7 @@ interface SupabaseConfig {
628
982
  projectRef?: string;
629
983
  endpoint?: string;
630
984
  sessionToken?: string;
985
+ keyPrefix?: string;
631
986
  timeoutMs?: number;
632
987
  }
633
988
  interface SupabaseConfigRedacted {
@@ -638,6 +993,7 @@ interface SupabaseConfigRedacted {
638
993
  accessKeyId: string;
639
994
  secretAccessKey: string;
640
995
  sessionToken?: string;
996
+ keyPrefix?: string;
641
997
  timeoutMs?: number;
642
998
  }
643
999
  declare function resolvedSupabaseEndpoint(config: SupabaseConfig): string;
@@ -755,7 +1111,6 @@ declare abstract class HfResource extends BaseResource implements Resource {
755
1111
  du(p: PathSpec): Promise<number>;
756
1112
  find(p: PathSpec, options?: FindOptions): Promise<string[]>;
757
1113
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
758
- fingerprint(p: PathSpec): Promise<string | null>;
759
1114
  loadState(_state: unknown): Promise<void>;
760
1115
  }
761
1116
 
@@ -835,6 +1190,7 @@ interface MinIOConfig {
835
1190
  secretAccessKey: string;
836
1191
  region?: string;
837
1192
  forcePathStyle?: boolean;
1193
+ keyPrefix?: string;
838
1194
  timeoutMs?: number;
839
1195
  }
840
1196
  interface MinIOConfigRedacted {
@@ -844,6 +1200,7 @@ interface MinIOConfigRedacted {
844
1200
  secretAccessKey: string;
845
1201
  region: string;
846
1202
  forcePathStyle: boolean;
1203
+ keyPrefix?: string;
847
1204
  timeoutMs?: number;
848
1205
  }
849
1206
  declare function redactMinIOConfig(config: MinIOConfig): MinIOConfigRedacted;
@@ -874,6 +1231,7 @@ interface SeaweedFSConfig {
874
1231
  secretAccessKey: string;
875
1232
  region?: string;
876
1233
  forcePathStyle?: boolean;
1234
+ keyPrefix?: string;
877
1235
  timeoutMs?: number;
878
1236
  }
879
1237
  interface SeaweedFSConfigRedacted {
@@ -883,6 +1241,7 @@ interface SeaweedFSConfigRedacted {
883
1241
  secretAccessKey: string;
884
1242
  region: string;
885
1243
  forcePathStyle: boolean;
1244
+ keyPrefix?: string;
886
1245
  timeoutMs?: number;
887
1246
  }
888
1247
  declare function redactSeaweedFSConfig(config: SeaweedFSConfig): SeaweedFSConfigRedacted;
@@ -913,6 +1272,7 @@ interface CephConfig {
913
1272
  secretAccessKey: string;
914
1273
  region?: string;
915
1274
  forcePathStyle?: boolean;
1275
+ keyPrefix?: string;
916
1276
  timeoutMs?: number;
917
1277
  }
918
1278
  interface CephConfigRedacted {
@@ -922,6 +1282,7 @@ interface CephConfigRedacted {
922
1282
  secretAccessKey: string;
923
1283
  region: string;
924
1284
  forcePathStyle: boolean;
1285
+ keyPrefix?: string;
925
1286
  timeoutMs?: number;
926
1287
  }
927
1288
  declare function redactCephConfig(config: CephConfig): CephConfigRedacted;
@@ -951,6 +1312,8 @@ interface WasabiConfig {
951
1312
  secretAccessKey: string;
952
1313
  region?: string;
953
1314
  endpoint?: string;
1315
+ forcePathStyle?: boolean;
1316
+ keyPrefix?: string;
954
1317
  timeoutMs?: number;
955
1318
  }
956
1319
  interface WasabiConfigRedacted {
@@ -959,6 +1322,8 @@ interface WasabiConfigRedacted {
959
1322
  secretAccessKey: string;
960
1323
  region: string;
961
1324
  endpoint: string;
1325
+ forcePathStyle?: boolean;
1326
+ keyPrefix?: string;
962
1327
  timeoutMs?: number;
963
1328
  }
964
1329
  declare function resolvedWasabiEndpoint(config: WasabiConfig): string;
@@ -989,6 +1354,8 @@ interface BackblazeConfig {
989
1354
  secretAccessKey: string;
990
1355
  region: string;
991
1356
  endpoint?: string;
1357
+ forcePathStyle?: boolean;
1358
+ keyPrefix?: string;
992
1359
  timeoutMs?: number;
993
1360
  }
994
1361
  interface BackblazeConfigRedacted {
@@ -997,6 +1364,8 @@ interface BackblazeConfigRedacted {
997
1364
  secretAccessKey: string;
998
1365
  region: string;
999
1366
  endpoint: string;
1367
+ forcePathStyle?: boolean;
1368
+ keyPrefix?: string;
1000
1369
  timeoutMs?: number;
1001
1370
  }
1002
1371
  declare function resolvedBackblazeEndpoint(config: BackblazeConfig): string;
@@ -1027,6 +1396,8 @@ interface DigitalOceanConfig {
1027
1396
  secretAccessKey: string;
1028
1397
  region: string;
1029
1398
  endpoint?: string;
1399
+ forcePathStyle?: boolean;
1400
+ keyPrefix?: string;
1030
1401
  timeoutMs?: number;
1031
1402
  }
1032
1403
  interface DigitalOceanConfigRedacted {
@@ -1035,6 +1406,8 @@ interface DigitalOceanConfigRedacted {
1035
1406
  secretAccessKey: string;
1036
1407
  region: string;
1037
1408
  endpoint: string;
1409
+ forcePathStyle?: boolean;
1410
+ keyPrefix?: string;
1038
1411
  timeoutMs?: number;
1039
1412
  }
1040
1413
  declare function resolvedDigitalOceanEndpoint(config: DigitalOceanConfig): string;
@@ -1065,6 +1438,8 @@ interface TencentConfig {
1065
1438
  secretAccessKey: string;
1066
1439
  region: string;
1067
1440
  endpoint?: string;
1441
+ forcePathStyle?: boolean;
1442
+ keyPrefix?: string;
1068
1443
  timeoutMs?: number;
1069
1444
  }
1070
1445
  interface TencentConfigRedacted {
@@ -1073,6 +1448,8 @@ interface TencentConfigRedacted {
1073
1448
  secretAccessKey: string;
1074
1449
  region: string;
1075
1450
  endpoint: string;
1451
+ forcePathStyle?: boolean;
1452
+ keyPrefix?: string;
1076
1453
  timeoutMs?: number;
1077
1454
  }
1078
1455
  declare function resolvedTencentEndpoint(config: TencentConfig): string;
@@ -1103,6 +1480,8 @@ interface AliyunConfig {
1103
1480
  secretAccessKey: string;
1104
1481
  region: string;
1105
1482
  endpoint?: string;
1483
+ forcePathStyle?: boolean;
1484
+ keyPrefix?: string;
1106
1485
  timeoutMs?: number;
1107
1486
  }
1108
1487
  interface AliyunConfigRedacted {
@@ -1111,6 +1490,8 @@ interface AliyunConfigRedacted {
1111
1490
  secretAccessKey: string;
1112
1491
  region: string;
1113
1492
  endpoint: string;
1493
+ forcePathStyle?: boolean;
1494
+ keyPrefix?: string;
1114
1495
  timeoutMs?: number;
1115
1496
  }
1116
1497
  declare function resolvedAliyunEndpoint(config: AliyunConfig): string;
@@ -1141,6 +1522,8 @@ interface ScalewayConfig {
1141
1522
  secretAccessKey: string;
1142
1523
  region: string;
1143
1524
  endpoint?: string;
1525
+ forcePathStyle?: boolean;
1526
+ keyPrefix?: string;
1144
1527
  timeoutMs?: number;
1145
1528
  }
1146
1529
  interface ScalewayConfigRedacted {
@@ -1149,6 +1532,8 @@ interface ScalewayConfigRedacted {
1149
1532
  secretAccessKey: string;
1150
1533
  region: string;
1151
1534
  endpoint: string;
1535
+ forcePathStyle?: boolean;
1536
+ keyPrefix?: string;
1152
1537
  timeoutMs?: number;
1153
1538
  }
1154
1539
  declare function resolvedScalewayEndpoint(config: ScalewayConfig): string;
@@ -1179,6 +1564,8 @@ interface QingStorConfig {
1179
1564
  secretAccessKey: string;
1180
1565
  region: string;
1181
1566
  endpoint?: string;
1567
+ forcePathStyle?: boolean;
1568
+ keyPrefix?: string;
1182
1569
  timeoutMs?: number;
1183
1570
  }
1184
1571
  interface QingStorConfigRedacted {
@@ -1187,6 +1574,8 @@ interface QingStorConfigRedacted {
1187
1574
  secretAccessKey: string;
1188
1575
  region: string;
1189
1576
  endpoint: string;
1577
+ forcePathStyle?: boolean;
1578
+ keyPrefix?: string;
1190
1579
  timeoutMs?: number;
1191
1580
  }
1192
1581
  declare function resolvedQingStorEndpoint(config: QingStorConfig): string;
@@ -1382,10 +1771,12 @@ declare class LanceDBResource extends BaseResource implements Resource {
1382
1771
  interface SlackConfig {
1383
1772
  token: string;
1384
1773
  searchToken?: string;
1774
+ baseUrl?: string;
1385
1775
  }
1386
1776
  interface SlackConfigRedacted {
1387
1777
  token: '<REDACTED>';
1388
1778
  searchToken?: '<REDACTED>';
1779
+ baseUrl?: string;
1389
1780
  }
1390
1781
  declare function redactSlackConfig(config: SlackConfig): SlackConfigRedacted;
1391
1782
  declare function normalizeSlackConfig(input: Record<string, unknown>): SlackConfig;
@@ -1410,7 +1801,6 @@ declare class SlackResource extends BaseResource implements Resource {
1410
1801
  readFile(p: PathSpec): Promise<Uint8Array>;
1411
1802
  readdir(p: PathSpec): Promise<string[]>;
1412
1803
  stat(p: PathSpec): Promise<FileStat>;
1413
- fingerprint(p: PathSpec): Promise<string | null>;
1414
1804
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1415
1805
  getState(): Promise<SlackResourceState>;
1416
1806
  loadState(_state: SlackResourceState): Promise<void>;
@@ -1489,7 +1879,6 @@ declare class SSHResource extends BaseResource implements Resource {
1489
1879
  rmR(p: PathSpec): Promise<void>;
1490
1880
  du(p: PathSpec): Promise<number>;
1491
1881
  find(p: PathSpec, options?: FindOptions): Promise<string[]>;
1492
- fingerprint(p: PathSpec): Promise<string | null>;
1493
1882
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1494
1883
  getState(): Promise<SSHResourceState>;
1495
1884
  loadState(_state: SSHResourceState): Promise<void>;
@@ -1501,6 +1890,72 @@ declare const SSH_COMMANDS: readonly RegisteredCommand[];
1501
1890
 
1502
1891
  declare const SSH_OPS: readonly RegisteredOp[];
1503
1892
 
1893
+ interface NextcloudConfig {
1894
+ url: string;
1895
+ username?: string;
1896
+ password?: string;
1897
+ verifySsl?: boolean;
1898
+ timeout?: number;
1899
+ }
1900
+ interface NextcloudConfigRedacted extends Omit<NextcloudConfig, 'password'> {
1901
+ password?: '<REDACTED>';
1902
+ }
1903
+ declare function normalizeNextcloudConfig(config: Record<string, unknown>): NextcloudConfig;
1904
+ declare function redactNextcloudConfig(config: NextcloudConfig): NextcloudConfigRedacted;
1905
+
1906
+ declare class NextcloudAccessor extends Accessor {
1907
+ readonly config: NextcloudConfig;
1908
+ readonly resourceName: "nextcloud";
1909
+ private operatorPromise;
1910
+ constructor(config: NextcloudConfig);
1911
+ operator(): Promise<Operator>;
1912
+ private createOperator;
1913
+ }
1914
+
1915
+ interface NextcloudResourceState {
1916
+ type: string;
1917
+ config: NextcloudConfigRedacted;
1918
+ }
1919
+ declare class NextcloudResource extends BaseResource implements Resource {
1920
+ readonly config: NextcloudConfig;
1921
+ readonly kind: "nextcloud";
1922
+ readonly cachesReads = true;
1923
+ readonly supportsSnapshot = true;
1924
+ readonly prompt = "You have access to files stored in Nextcloud.";
1925
+ readonly accessor: NextcloudAccessor;
1926
+ readonly opsMap: Record<string, unknown>;
1927
+ constructor(config: NextcloudConfig);
1928
+ open(): Promise<void>;
1929
+ close(): Promise<void>;
1930
+ commands(): readonly RegisteredCommand[];
1931
+ ops(): readonly RegisteredOp[];
1932
+ streamPath(path: PathSpec): AsyncIterable<Uint8Array>;
1933
+ readFile(path: PathSpec): Promise<Uint8Array>;
1934
+ writeFile(path: PathSpec, data: Uint8Array): Promise<void>;
1935
+ appendFile(path: PathSpec, data: Uint8Array): Promise<void>;
1936
+ readdir(path: PathSpec): Promise<string[]>;
1937
+ stat(path: PathSpec): Promise<FileStat>;
1938
+ exists(path: PathSpec): Promise<boolean>;
1939
+ mkdir(path: PathSpec): Promise<void>;
1940
+ rmdir(path: PathSpec): Promise<void>;
1941
+ unlink(path: PathSpec): Promise<void>;
1942
+ rename(source: PathSpec, destination: PathSpec): Promise<void>;
1943
+ truncate(path: PathSpec, length: number): Promise<void>;
1944
+ copy(source: PathSpec, destination: PathSpec): Promise<void>;
1945
+ rmR(path: PathSpec): Promise<void>;
1946
+ du(path: PathSpec): Promise<number>;
1947
+ find(path: PathSpec, options?: FindOptions): Promise<string[]>;
1948
+ glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1949
+ getState(): Promise<NextcloudResourceState>;
1950
+ loadState(_state: NextcloudResourceState): Promise<void>;
1951
+ }
1952
+
1953
+ declare const NEXTCLOUD_PROMPT = "You have access to files stored in Nextcloud.";
1954
+
1955
+ declare const NEXTCLOUD_COMMANDS: readonly RegisteredCommand[];
1956
+
1957
+ declare const NEXTCLOUD_OPS: readonly RegisteredOp[];
1958
+
1504
1959
  interface DiscordConfig {
1505
1960
  token: string;
1506
1961
  }
@@ -1530,7 +1985,6 @@ declare class DiscordResource extends BaseResource implements Resource {
1530
1985
  readFile(p: PathSpec): Promise<Uint8Array>;
1531
1986
  readdir(p: PathSpec): Promise<string[]>;
1532
1987
  stat(p: PathSpec): Promise<FileStat>;
1533
- fingerprint(p: PathSpec): Promise<string | null>;
1534
1988
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1535
1989
  getState(): Promise<DiscordResourceState>;
1536
1990
  loadState(_state: DiscordResourceState): Promise<void>;
@@ -1574,7 +2028,6 @@ declare class TrelloResource extends BaseResource implements Resource {
1574
2028
  readFile(p: PathSpec): Promise<Uint8Array>;
1575
2029
  readdir(p: PathSpec): Promise<string[]>;
1576
2030
  stat(p: PathSpec): Promise<FileStat>;
1577
- fingerprint(p: PathSpec): Promise<string | null>;
1578
2031
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1579
2032
  getState(): Promise<TrelloResourceState>;
1580
2033
  loadState(_state: TrelloResourceState): Promise<void>;
@@ -1616,7 +2069,6 @@ declare class LinearResource extends BaseResource implements Resource {
1616
2069
  readFile(p: PathSpec): Promise<Uint8Array>;
1617
2070
  readdir(p: PathSpec): Promise<string[]>;
1618
2071
  stat(p: PathSpec): Promise<FileStat>;
1619
- fingerprint(p: PathSpec): Promise<string | null>;
1620
2072
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1621
2073
  getState(): Promise<LinearResourceState>;
1622
2074
  loadState(_state: LinearResourceState): Promise<void>;
@@ -1653,7 +2105,6 @@ declare class NotionResource extends BaseResource implements Resource {
1653
2105
  readFile(p: PathSpec): Promise<Uint8Array>;
1654
2106
  readdir(p: PathSpec): Promise<string[]>;
1655
2107
  stat(p: PathSpec): Promise<FileStat>;
1656
- fingerprint(p: PathSpec): Promise<string | null>;
1657
2108
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1658
2109
  getState(): Promise<NotionResourceState>;
1659
2110
  loadState(_state: NotionResourceState): Promise<void>;
@@ -1697,7 +2148,6 @@ declare class LangfuseResource extends BaseResource implements Resource {
1697
2148
  readFile(p: PathSpec): Promise<Uint8Array>;
1698
2149
  readdir(p: PathSpec): Promise<string[]>;
1699
2150
  stat(p: PathSpec): Promise<FileStat>;
1700
- fingerprint(_p: PathSpec): Promise<string | null>;
1701
2151
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1702
2152
  getState(): Promise<LangfuseResourceState>;
1703
2153
  loadState(_state: LangfuseResourceState): Promise<void>;
@@ -1729,6 +2179,7 @@ interface GitHubResourceState {
1729
2179
  declare class GitHubResource extends BaseResource implements Resource {
1730
2180
  readonly kind: string;
1731
2181
  readonly cachesReads: boolean;
2182
+ readonly supportsSnapshot: boolean;
1732
2183
  readonly indexTtl: number;
1733
2184
  readonly config: GitHubConfig;
1734
2185
  readonly accessor: GitHubAccessor;
@@ -1741,7 +2192,6 @@ declare class GitHubResource extends BaseResource implements Resource {
1741
2192
  readFile(p: PathSpec): Promise<Uint8Array>;
1742
2193
  readdir(p: PathSpec): Promise<string[]>;
1743
2194
  stat(p: PathSpec): Promise<FileStat>;
1744
- fingerprint(p: PathSpec): Promise<string | null>;
1745
2195
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1746
2196
  getState(): Promise<GitHubResourceState>;
1747
2197
  loadState(_state: GitHubResourceState): Promise<void>;
@@ -1785,7 +2235,6 @@ declare class GitHubCIResource extends BaseResource implements Resource {
1785
2235
  readFile(p: PathSpec): Promise<Uint8Array>;
1786
2236
  readdir(p: PathSpec): Promise<string[]>;
1787
2237
  stat(p: PathSpec): Promise<FileStat>;
1788
- fingerprint(p: PathSpec): Promise<string | null>;
1789
2238
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1790
2239
  getState(): Promise<GitHubCIResourceState>;
1791
2240
  loadState(_state: GitHubCIResourceState): Promise<void>;
@@ -1828,7 +2277,6 @@ declare class GDocsResource extends BaseResource implements Resource {
1828
2277
  readFile(p: PathSpec): Promise<Uint8Array>;
1829
2278
  readdir(p: PathSpec): Promise<string[]>;
1830
2279
  stat(p: PathSpec): Promise<FileStat>;
1831
- fingerprint(p: PathSpec): Promise<string | null>;
1832
2280
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1833
2281
  getState(): Promise<GDocsResourceState>;
1834
2282
  loadState(_state: GDocsResourceState): Promise<void>;
@@ -1871,7 +2319,6 @@ declare class GSheetsResource extends BaseResource implements Resource {
1871
2319
  readFile(p: PathSpec): Promise<Uint8Array>;
1872
2320
  readdir(p: PathSpec): Promise<string[]>;
1873
2321
  stat(p: PathSpec): Promise<FileStat>;
1874
- fingerprint(p: PathSpec): Promise<string | null>;
1875
2322
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1876
2323
  getState(): Promise<GSheetsResourceState>;
1877
2324
  loadState(_state: GSheetsResourceState): Promise<void>;
@@ -1914,7 +2361,6 @@ declare class GSlidesResource extends BaseResource implements Resource {
1914
2361
  readFile(p: PathSpec): Promise<Uint8Array>;
1915
2362
  readdir(p: PathSpec): Promise<string[]>;
1916
2363
  stat(p: PathSpec): Promise<FileStat>;
1917
- fingerprint(p: PathSpec): Promise<string | null>;
1918
2364
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1919
2365
  getState(): Promise<GSlidesResourceState>;
1920
2366
  loadState(_state: GSlidesResourceState): Promise<void>;
@@ -1928,6 +2374,7 @@ interface GDriveConfig {
1928
2374
  accessToken: string;
1929
2375
  expiresIn: number;
1930
2376
  }>;
2377
+ folderId?: string;
1931
2378
  }
1932
2379
  interface GDriveConfigRedacted {
1933
2380
  clientId: string;
@@ -1944,6 +2391,7 @@ interface GDriveResourceState {
1944
2391
  declare class GDriveResource extends BaseResource implements Resource {
1945
2392
  readonly kind: string;
1946
2393
  readonly cachesReads: boolean;
2394
+ readonly supportsSnapshot: boolean;
1947
2395
  readonly indexTtl: number;
1948
2396
  readonly prompt: string;
1949
2397
  readonly config: GDriveConfig;
@@ -1956,7 +2404,6 @@ declare class GDriveResource extends BaseResource implements Resource {
1956
2404
  readFile(p: PathSpec): Promise<Uint8Array>;
1957
2405
  readdir(p: PathSpec): Promise<string[]>;
1958
2406
  stat(p: PathSpec): Promise<FileStat>;
1959
- fingerprint(p: PathSpec): Promise<string | null>;
1960
2407
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
1961
2408
  getState(): Promise<GDriveResourceState>;
1962
2409
  loadState(_state: GDriveResourceState): Promise<void>;
@@ -1966,6 +2413,9 @@ interface DropboxConfig {
1966
2413
  clientId: string;
1967
2414
  clientSecret: string;
1968
2415
  refreshToken: string;
2416
+ rootPath?: string;
2417
+ contentSearch?: boolean;
2418
+ endpoint?: string;
1969
2419
  refreshFn?: (refreshToken: string) => Promise<{
1970
2420
  accessToken: string;
1971
2421
  expiresIn: number;
@@ -1975,6 +2425,9 @@ interface DropboxConfigRedacted {
1975
2425
  clientId: string;
1976
2426
  clientSecret: '<REDACTED>';
1977
2427
  refreshToken: '<REDACTED>';
2428
+ rootPath?: string;
2429
+ contentSearch?: boolean;
2430
+ endpoint?: string;
1978
2431
  }
1979
2432
  declare function redactDropboxConfig(config: DropboxConfig): DropboxConfigRedacted;
1980
2433
  declare function normalizeDropboxConfig(input: Record<string, unknown>): DropboxConfig;
@@ -1998,13 +2451,15 @@ declare class DropboxResource extends BaseResource implements Resource {
1998
2451
  readFile(p: PathSpec): Promise<Uint8Array>;
1999
2452
  readdir(p: PathSpec): Promise<string[]>;
2000
2453
  stat(p: PathSpec): Promise<FileStat>;
2001
- fingerprint(p: PathSpec): Promise<string | null>;
2002
2454
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2003
2455
  getState(): Promise<DropboxResourceState>;
2004
2456
  loadState(_state: DropboxResourceState): Promise<void>;
2005
2457
  }
2006
2458
 
2007
2459
  interface BoxConfig {
2460
+ endpoint?: string;
2461
+ rootFolderId?: string;
2462
+ contentSearch?: boolean;
2008
2463
  clientId?: string;
2009
2464
  clientSecret?: string;
2010
2465
  refreshToken?: string;
@@ -2018,6 +2473,8 @@ interface BoxConfig {
2018
2473
  onRefreshTokenRotated?: (newRefreshToken: string) => void | Promise<void>;
2019
2474
  }
2020
2475
  interface BoxConfigRedacted {
2476
+ endpoint?: string;
2477
+ rootFolderId?: string;
2021
2478
  clientId?: string;
2022
2479
  clientSecret?: '<REDACTED>';
2023
2480
  refreshToken?: '<REDACTED>';
@@ -2046,7 +2503,6 @@ declare class BoxResource extends BaseResource implements Resource {
2046
2503
  readFile(p: PathSpec): Promise<Uint8Array>;
2047
2504
  readdir(p: PathSpec): Promise<string[]>;
2048
2505
  stat(p: PathSpec): Promise<FileStat>;
2049
- fingerprint(p: PathSpec): Promise<string | null>;
2050
2506
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2051
2507
  getState(): Promise<BoxResourceState>;
2052
2508
  loadState(_state: BoxResourceState): Promise<void>;
@@ -2072,7 +2528,6 @@ declare class GmailResource extends BaseResource implements Resource {
2072
2528
  readFile(p: PathSpec): Promise<Uint8Array>;
2073
2529
  readdir(p: PathSpec): Promise<string[]>;
2074
2530
  stat(p: PathSpec): Promise<FileStat>;
2075
- fingerprint(p: PathSpec): Promise<string | null>;
2076
2531
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2077
2532
  getState(): Promise<GmailResourceState>;
2078
2533
  loadState(_state: GmailResourceState): Promise<void>;
@@ -2132,14 +2587,13 @@ declare class EmailResource extends BaseResource implements Resource {
2132
2587
  readFile(p: PathSpec): Promise<Uint8Array>;
2133
2588
  readdir(p: PathSpec): Promise<string[]>;
2134
2589
  stat(p: PathSpec): Promise<FileStat>;
2135
- fingerprint(p: PathSpec): Promise<string | null>;
2136
2590
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2137
2591
  getState(): Promise<EmailResourceState>;
2138
2592
  loadState(_state: EmailResourceState): Promise<void>;
2139
2593
  }
2140
2594
 
2141
- declare const EMAIL_PROMPT = "{prefix}\n <folder>/\n <yyyy-mm-dd>/\n <subject>__<uid>.email.json\n <subject>__<uid>/ # if attachments exist\n <attachment-filename>\n Folders include: INBOX, Sent, Drafts, etc. cat shows email as JSON.";
2142
- declare const EMAIL_WRITE_PROMPT = " Write commands:\n email-send \"to@email.com\" \"subject\" \"body\"\n email-reply <email-path> \"reply body\"\n email-forward <email-path> \"to@email.com\"";
2595
+ declare const EMAIL_PROMPT = "{prefix}\n <folder>/\n <yyyy-mm-dd>/\n <subject>__<uid>.email.json\n <subject>__<uid>/ # if attachments exist\n <attachment-filename>\n Folders include: INBOX, Sent, Drafts, etc. cat shows email as JSON.\n\n Read commands:\n himalaya envelope list --folder INBOX --unseen # id/from/subject/date\n himalaya message read --folder INBOX --uid <uid> # one message as JSON";
2596
+ declare const EMAIL_WRITE_PROMPT = " Write commands:\n himalaya message send --to \"to@email.com\" --subject \"Hi\" --body \"...\"\n himalaya message reply --folder INBOX --uid <uid> --body \"...\" [--all]\n himalaya message forward --folder INBOX --uid <uid> --to \"to@email.com\"";
2143
2597
 
2144
2598
  declare const EMAIL_COMMANDS: readonly RegisteredCommand[];
2145
2599
 
@@ -2179,4 +2633,4 @@ declare const DISK_COMMANDS: readonly RegisteredCommand[];
2179
2633
 
2180
2634
  declare const REDIS_COMMANDS: readonly RegisteredCommand[];
2181
2635
 
2182
- export { ALIYUN_PROMPT, type AliyunConfig, type AliyunConfigRedacted, AliyunResource, type AliyunResourceState, BACKBLAZE_PROMPT, type BackblazeConfig, type BackblazeConfigRedacted, BackblazeResource, type BackblazeResourceState, type BoxConfig, type BoxConfigRedacted, BoxResource, type BoxResourceState, CEPH_PROMPT, type CephConfig, type CephConfigRedacted, CephResource, type CephResourceState, DIGITALOCEAN_PROMPT, DISK_COMMANDS, DISK_OPS, DISK_PROMPT, type DatabricksProfile, DatabricksVolumeResource, type DatabricksVolumeResourceState, type DigitalOceanConfig, type DigitalOceanConfigRedacted, DigitalOceanResource, type DigitalOceanResourceState, type DiscordConfig, type DiscordConfigRedacted, DiscordResource, type DiscordResourceState, DiskObserverStore, DiskResource, type DiskResourceOptions, type DiskResourceState, type DropboxConfig, type DropboxConfigRedacted, DropboxResource, type DropboxResourceState, EMAIL_COMMANDS, EMAIL_OPS, EMAIL_PROMPT, EMAIL_WRITE_PROMPT, EmailAccessor, type EmailConfig, type EmailConfigInput, type EmailConfigRedacted, EmailResource, type EmailResourceState, type FuseAttr, type FuseHandle, FuseManager, type MountOptions as FuseMountOptions, type GCSConfig, type GCSConfigRedacted, GCSResource, type GCSResourceState, GCS_ENDPOINT, GCS_PROMPT, type GDocsConfig, type GDocsConfigRedacted, GDocsResource, type GDocsResourceState, type GDriveConfig, type GDriveConfigRedacted, GDriveResource, type GDriveResourceState, type GSheetsConfig, type GSheetsConfigRedacted, GSheetsResource, type GSheetsResourceState, type GSlidesConfig, type GSlidesConfigRedacted, GSlidesResource, type GSlidesResourceState, type GitHubCIConfig, type GitHubCIConfigRedacted, GitHubCIResource, type GitHubCIResourceState, type GitHubConfig, type GitHubConfigRedacted, GitHubResource, type GitHubResourceState, GmailResource, type GmailResourceState, HF_BUCKETS_PROMPT, HF_COMMANDS, HF_DATASETS_PROMPT, HF_ENDPOINT, HF_MODELS_PROMPT, HF_OPS, HF_RESOURCES, HF_SPACES_PROMPT, HfAccessor, HfBucketsAccessor, type HfBucketsConfig, type HfBucketsConfigRedacted, HfBucketsResource, type HfBucketsResourceState, HfDatasetsAccessor, HfDatasetsResource, type HfDatasetsResourceState, HfModelsAccessor, type HfModelsConfig, type HfModelsConfigRedacted, HfModelsResource, type HfModelsResourceState, type HfRepoConfig, type HfRepoConfigRedacted, HfSpacesAccessor, HfSpacesResource, type HfSpacesResourceState, LanceDBResource, type LanceDBResourceOptions, LanceDBStore, type LangfuseConfig, type LangfuseConfigRedacted, LangfuseResource, type LangfuseResourceState, type LinearConfig, type LinearConfigRedacted, LinearResource, type LinearResourceState, MINIO_PROMPT, type MinIOConfig, type MinIOConfigRedacted, MinIOResource, type MinIOResourceState, MirageFS, type MirageFSOptions, MongoDBResource, type MongoDBResourceOptions, MongoDBStore, Mount, type MountSpecOptions, type NodeWorkspaceOptions, type NotionConfig, type NotionConfigRedacted, NotionResource, type NotionResourceState, type OCIConfig, type OCIConfigRedacted, OCIResource, type OCIResourceState, OCI_PROMPT, PostgresResource, type PostgresResourceOptions, PostgresStore, QINGSTOR_PROMPT, type QingStorConfig, type QingStorConfigRedacted, QingStorResource, type QingStorResourceState, type R2Config, type R2ConfigRedacted, R2Resource, type R2ResourceState, R2_PROMPT, REDIS_COMMANDS, REDIS_OPS, REDIS_PROMPT, RedisAccessor, type RedisFileCacheOptions, RedisFileCacheStore, RedisObserverStore, type RedisObserverStoreOptions, RedisResource, type RedisResourceLike, type RedisResourceOptions, type RedisResourceState, RedisStore, type RedisStoreOptions, type ResourceFactory, type S3Config, type S3ConfigRedacted, S3Resource, type S3ResourceState, SCALEWAY_PROMPT, SEAWEEDFS_PROMPT, SSHAccessor, type SSHConfig, type SSHConfigRedacted, SSHResource, type SSHResourceState, SSH_COMMANDS, SSH_OPS, SSH_PROMPT, SUPABASE_PROMPT, type ScalewayConfig, type ScalewayConfigRedacted, ScalewayResource, type ScalewayResourceState, type SeaweedFSConfig, type SeaweedFSConfigRedacted, SeaweedFSResource, type SeaweedFSResourceState, type SlackConfig, type SlackConfigRedacted, SlackResource, type SlackResourceState, type SupabaseConfig, type SupabaseConfigRedacted, SupabaseResource, type SupabaseResourceState, TENCENT_PROMPT, type TencentConfig, type TencentConfigRedacted, TencentResource, type TencentResourceState, type TrelloConfig, type TrelloConfigRedacted, TrelloResource, type TrelloResourceState, WASABI_PROMPT, type WasabiConfig, type WasabiConfigRedacted, WasabiResource, type WasabiResourceState, Workspace, assertHfRepoId, buildEmailConfig, buildResource, fileReadProvision, mount as fuseMount, mountBackground as fuseMountBackground, headTailProvision, isMacosMetadata, knownResources, loadDatabricksProfile, metadataProvision, normalizeBoxConfig, normalizeDiscordConfig, normalizeDropboxConfig, normalizeEmailConfig, normalizeGDocsConfig, normalizeGDriveConfig, normalizeGSheetsConfig, normalizeGSlidesConfig, normalizeGitHubCIConfig, normalizeGitHubConfig, normalizeHfBucketsConfig, normalizeHfModelsConfig, normalizeHfRepoConfig, normalizeLangfuseConfig, normalizeLinearConfig, normalizeNotionConfig, normalizeSlackConfig, normalizeSshConfig, normalizeTrelloConfig, parseDatabricksCfg, patchNodeFs, redactAliyunConfig, redactBackblazeConfig, redactBoxConfig, redactCephConfig, redactDigitalOceanConfig, redactDiscordConfig, redactDropboxConfig, redactEmailConfig, redactGDocsConfig, redactGDriveConfig, redactGSheetsConfig, redactGSlidesConfig, redactGcsConfig, redactGitHubCIConfig, redactGitHubConfig, redactHfBucketsConfig, redactHfModelsConfig, redactHfRepoConfig, redactLangfuseConfig, redactLinearConfig, redactMinIOConfig, redactNotionConfig, redactOciConfig, redactQingStorConfig, redactR2Config, redactConfig as redactS3Config, redactScalewayConfig, redactSeaweedFSConfig, redactSlackConfig, redactSshConfig, redactSupabaseConfig, redactTencentConfig, redactTrelloConfig, redactWasabiConfig, register as registerResourceFactory, resolvedAliyunEndpoint, resolvedBackblazeEndpoint, resolvedDigitalOceanEndpoint, resolvedQingStorEndpoint, resolvedScalewayEndpoint, resolvedSupabaseEndpoint, resolvedTencentEndpoint, resolvedWasabiEndpoint };
2636
+ export { ALIYUN_PROMPT, type AliyunConfig, type AliyunConfigRedacted, AliyunResource, type AliyunResourceState, BACKBLAZE_PROMPT, type BackblazeConfig, type BackblazeConfigRedacted, BackblazeResource, type BackblazeResourceState, type BoxConfig, type BoxConfigRedacted, BoxResource, type BoxResourceState, CEPH_PROMPT, type CephConfig, type CephConfigRedacted, CephResource, type CephResourceState, DEFAULT_STATE_ROOT, DIGITALOCEAN_PROMPT, DISK_COMMANDS, DISK_OPS, DISK_PROMPT, type DatabricksProfile, DatabricksVolumeResource, type DatabricksVolumeResourceState, type DigitalOceanConfig, type DigitalOceanConfigRedacted, DigitalOceanResource, type DigitalOceanResourceState, type DiscordConfig, type DiscordConfigRedacted, DiscordResource, type DiscordResourceState, DiskNamespaceStore, DiskObserverStore, DiskRecordClient, DiskResource, type DiskResourceOptions, type DiskResourceState, DiskSessionStore, DiskWorkspaceStateStore, type DiskWorkspaceStateStoreOptions, type DropboxConfig, type DropboxConfigRedacted, DropboxResource, type DropboxResourceState, EMAIL_COMMANDS, EMAIL_OPS, EMAIL_PROMPT, EMAIL_WRITE_PROMPT, EmailAccessor, type EmailConfig, type EmailConfigInput, type EmailConfigRedacted, EmailResource, type EmailResourceState, type FuseAttr, type FuseHandle, FuseManager, type MountOptions as FuseMountOptions, type GCSConfig, type GCSConfigRedacted, GCSResource, type GCSResourceState, GCS_ENDPOINT, GCS_PROMPT, type GDocsConfig, type GDocsConfigRedacted, GDocsResource, type GDocsResourceState, type GDriveConfig, type GDriveConfigRedacted, GDriveResource, type GDriveResourceState, type GSheetsConfig, type GSheetsConfigRedacted, GSheetsResource, type GSheetsResourceState, type GSlidesConfig, type GSlidesConfigRedacted, GSlidesResource, type GSlidesResourceState, type GitHubCIConfig, type GitHubCIConfigRedacted, GitHubCIResource, type GitHubCIResourceState, type GitHubConfig, type GitHubConfigRedacted, GitHubResource, type GitHubResourceState, GmailResource, type GmailResourceState, GridFSAccessor, type GridFSConfig, type GridFSConfigRedacted, GridFSResource, type GridFSResourceState, HF_BUCKETS_PROMPT, HF_COMMANDS, HF_DATASETS_PROMPT, HF_ENDPOINT, HF_MODELS_PROMPT, HF_OPS, HF_RESOURCES, HF_SPACES_PROMPT, HfAccessor, HfBucketsAccessor, type HfBucketsConfig, type HfBucketsConfigRedacted, HfBucketsResource, type HfBucketsResourceState, HfDatasetsAccessor, HfDatasetsResource, type HfDatasetsResourceState, HfModelsAccessor, type HfModelsConfig, type HfModelsConfigRedacted, HfModelsResource, type HfModelsResourceState, type HfRepoConfig, type HfRepoConfigRedacted, HfSpacesAccessor, HfSpacesResource, type HfSpacesResourceState, LanceDBResource, type LanceDBResourceOptions, LanceDBStore, type LangfuseConfig, type LangfuseConfigRedacted, LangfuseResource, type LangfuseResourceState, type LinearConfig, type LinearConfigRedacted, LinearResource, type LinearResourceState, MINIO_PROMPT, type MinIOConfig, type MinIOConfigRedacted, MinIOResource, type MinIOResourceState, MirageFS, type MirageFSOptions, MongoDBResource, type MongoDBResourceOptions, MongoDBStore, Mount, type MountSpecOptions, NEXTCLOUD_COMMANDS, NEXTCLOUD_OPS, NEXTCLOUD_PROMPT, NextcloudAccessor, type NextcloudConfig, type NextcloudConfigRedacted, NextcloudResource, type NextcloudResourceState, type NodeWorkspaceOptions, type NotionConfig, type NotionConfigRedacted, NotionResource, type NotionResourceState, type OCIConfig, type OCIConfigRedacted, OCIResource, type OCIResourceState, OCI_PROMPT, PostgresResource, type PostgresResourceOptions, PostgresStore, QINGSTOR_PROMPT, type QingStorConfig, type QingStorConfigRedacted, QingStorResource, type QingStorResourceState, type R2Config, type R2ConfigRedacted, R2Resource, type R2ResourceState, R2_PROMPT, REDIS_COMMANDS, REDIS_OPS, REDIS_PROMPT, RedisAccessor, type RedisFileCacheOptions, RedisFileCacheStore, RedisNamespaceStore, type RedisNamespaceStoreOptions, RedisObserverStore, type RedisObserverStoreOptions, RedisResource, type RedisResourceLike, type RedisResourceOptions, type RedisResourceState, RedisSessionStore, type RedisSessionStoreOptions, RedisStore, type RedisStoreOptions, RedisWorkspaceStateStore, type RedisWorkspaceStateStoreOptions, type ResourceFactory, type S3Config, type S3ConfigRedacted, S3Resource, type S3ResourceState, SCALEWAY_PROMPT, SEAWEEDFS_PROMPT, SSHAccessor, type SSHConfig, type SSHConfigRedacted, SSHResource, type SSHResourceState, SSH_COMMANDS, SSH_OPS, SSH_PROMPT, SUPABASE_PROMPT, type ScalewayConfig, type ScalewayConfigRedacted, ScalewayResource, type ScalewayResourceState, type SeaweedFSConfig, type SeaweedFSConfigRedacted, SeaweedFSResource, type SeaweedFSResourceState, type SlackConfig, type SlackConfigRedacted, SlackResource, type SlackResourceState, type SupabaseConfig, type SupabaseConfigRedacted, SupabaseResource, type SupabaseResourceState, TENCENT_PROMPT, type TencentConfig, type TencentConfigRedacted, TencentResource, type TencentResourceState, type TrelloConfig, type TrelloConfigRedacted, TrelloResource, type TrelloResourceState, WASABI_PROMPT, type WasabiConfig, type WasabiConfigRedacted, WasabiResource, type WasabiResourceState, Workspace, assertHfRepoId, buildEmailConfig, buildResource, fileReadProvision, mount as fuseMount, mountBackground as fuseMountBackground, headTailProvision, isMacosMetadata, knownResources, loadDatabricksProfile, metadataProvision, normalizeBoxConfig, normalizeDiscordConfig, normalizeDropboxConfig, normalizeEmailConfig, normalizeGDocsConfig, normalizeGDriveConfig, normalizeGSheetsConfig, normalizeGSlidesConfig, normalizeGitHubCIConfig, normalizeGitHubConfig, normalizeGridFSConfig, normalizeHfBucketsConfig, normalizeHfModelsConfig, normalizeHfRepoConfig, normalizeLangfuseConfig, normalizeLinearConfig, normalizeNextcloudConfig, normalizeNotionConfig, normalizeSlackConfig, normalizeSshConfig, normalizeTrelloConfig, parseDatabricksCfg, patchNodeFs, redactAliyunConfig, redactBackblazeConfig, redactBoxConfig, redactCephConfig, redactDigitalOceanConfig, redactDiscordConfig, redactDropboxConfig, redactEmailConfig, redactGDocsConfig, redactGDriveConfig, redactGSheetsConfig, redactGSlidesConfig, redactGcsConfig, redactGitHubCIConfig, redactGitHubConfig, redactHfBucketsConfig, redactHfModelsConfig, redactHfRepoConfig, redactLangfuseConfig, redactLinearConfig, redactMinIOConfig, redactNextcloudConfig, redactNotionConfig, redactOciConfig, redactQingStorConfig, redactR2Config, redactConfig as redactS3Config, redactScalewayConfig, redactSeaweedFSConfig, redactSlackConfig, redactSshConfig, redactSupabaseConfig, redactTencentConfig, redactTrelloConfig, redactWasabiConfig, register as registerResourceFactory, resolvedAliyunEndpoint, resolvedBackblazeEndpoint, resolvedDigitalOceanEndpoint, resolvedQingStorEndpoint, resolvedScalewayEndpoint, resolvedSupabaseEndpoint, resolvedTencentEndpoint, resolvedWasabiEndpoint };