@struktoai/mirage-node 0.0.4 → 0.0.5

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 (447) hide show
  1. package/README.md +2 -1
  2. package/dist/aliyun-S62BR3TB.js +11 -0
  3. package/dist/append.lua +17 -0
  4. package/dist/backblaze-4EKSW63F.js +11 -0
  5. package/dist/box-ZPLZAGMK.js +8 -0
  6. package/dist/ceph-ALKLD3MO.js +11 -0
  7. package/dist/{chunk-VLRSOWHP.js → chunk-2A4YGVBM.js} +5 -14
  8. package/dist/chunk-2A4YGVBM.js.map +1 -0
  9. package/dist/chunk-2HCYLVGY.js +28 -0
  10. package/dist/chunk-2HCYLVGY.js.map +1 -0
  11. package/dist/chunk-2VPZAH5Q.js +20 -0
  12. package/dist/chunk-2VPZAH5Q.js.map +1 -0
  13. package/dist/{chunk-HCU3B6FW.js → chunk-3JZQ6VSZ.js} +5 -4
  14. package/dist/chunk-3JZQ6VSZ.js.map +1 -0
  15. package/dist/chunk-4IF4TGAI.js +11 -0
  16. package/dist/chunk-4IF4TGAI.js.map +1 -0
  17. package/dist/{chunk-L7FEZ7LU.js → chunk-5H6KNEPP.js} +4 -5
  18. package/dist/{chunk-L7FEZ7LU.js.map → chunk-5H6KNEPP.js.map} +1 -1
  19. package/dist/{chunk-25W4XQJZ.js → chunk-5K2MWDCE.js} +4 -5
  20. package/dist/{chunk-25W4XQJZ.js.map → chunk-5K2MWDCE.js.map} +1 -1
  21. package/dist/{chunk-L4GMDSMB.js → chunk-6SVXWRKX.js} +4 -5
  22. package/dist/{chunk-L4GMDSMB.js.map → chunk-6SVXWRKX.js.map} +1 -1
  23. package/dist/{chunk-H62XQZUM.js → chunk-6VOIUGAD.js} +22 -10
  24. package/dist/chunk-6VOIUGAD.js.map +1 -0
  25. package/dist/{chunk-SI4GMRXD.js → chunk-7JYHFXXC.js} +4 -8
  26. package/dist/chunk-7JYHFXXC.js.map +1 -0
  27. package/dist/chunk-7VQQFWV6.js +20 -0
  28. package/dist/chunk-7VQQFWV6.js.map +1 -0
  29. package/dist/chunk-7ZP6TPHX.js +87 -0
  30. package/dist/chunk-7ZP6TPHX.js.map +1 -0
  31. package/dist/{chunk-HWQPEBID.js → chunk-ADEXNSYU.js} +6 -12
  32. package/dist/chunk-ADEXNSYU.js.map +1 -0
  33. package/dist/chunk-AQSYAXL4.js +16 -0
  34. package/dist/chunk-AQSYAXL4.js.map +1 -0
  35. package/dist/{chunk-NJ42VNXG.js → chunk-ATLXMNKD.js} +8 -3
  36. package/dist/chunk-ATLXMNKD.js.map +1 -0
  37. package/dist/{chunk-CB76WPUS.js → chunk-BYCUGFRF.js} +5 -4
  38. package/dist/chunk-BYCUGFRF.js.map +1 -0
  39. package/dist/{chunk-4M73WHIE.js → chunk-BZTVYOES.js} +3 -3
  40. package/dist/{chunk-CQCTCW4S.js → chunk-CRC4YWXB.js} +28 -9
  41. package/dist/chunk-CRC4YWXB.js.map +1 -0
  42. package/dist/{chunk-C7TNKIK5.js → chunk-CTGXJHO5.js} +1 -1
  43. package/dist/chunk-CTGXJHO5.js.map +1 -0
  44. package/dist/{chunk-HSD24IP2.js → chunk-DCDBIXVZ.js} +7 -2
  45. package/dist/chunk-DCDBIXVZ.js.map +1 -0
  46. package/dist/{chunk-HEDE2377.js → chunk-DDAFNROK.js} +318 -322
  47. package/dist/chunk-DDAFNROK.js.map +1 -0
  48. package/dist/chunk-DQIEWEAW.js +85 -0
  49. package/dist/chunk-DQIEWEAW.js.map +1 -0
  50. package/dist/{chunk-2ERLWAGG.js → chunk-EBI4IHDC.js} +20 -11
  51. package/dist/chunk-EBI4IHDC.js.map +1 -0
  52. package/dist/{chunk-RHUEV4I7.js → chunk-EIUTZ6N7.js} +10 -24
  53. package/dist/chunk-EIUTZ6N7.js.map +1 -0
  54. package/dist/{chunk-IUXXZHY3.js → chunk-EJZG5VUF.js} +24 -12
  55. package/dist/chunk-EJZG5VUF.js.map +1 -0
  56. package/dist/{chunk-BWWU5T2D.js → chunk-ENW5BVYN.js} +3 -3
  57. package/dist/{chunk-F5NWRF32.js → chunk-ETIAW4YD.js} +3 -3
  58. package/dist/chunk-EUPXAYPB.js +20 -0
  59. package/dist/chunk-EUPXAYPB.js.map +1 -0
  60. package/dist/{chunk-EGZNOUMH.js → chunk-FA6YNU75.js} +4 -5
  61. package/dist/{chunk-EGZNOUMH.js.map → chunk-FA6YNU75.js.map} +1 -1
  62. package/dist/{chunk-XUUSWR4U.js → chunk-FFH6R5VQ.js} +7 -2
  63. package/dist/{chunk-XUUSWR4U.js.map → chunk-FFH6R5VQ.js.map} +1 -1
  64. package/dist/{chunk-JEBH5APX.js → chunk-GE6H2COM.js} +5 -13
  65. package/dist/chunk-GE6H2COM.js.map +1 -0
  66. package/dist/{chunk-TUNR4VUM.js → chunk-GMMQ3ZK4.js} +3 -3
  67. package/dist/{chunk-SAOQW6ZJ.js → chunk-GSGE3M5P.js} +5 -13
  68. package/dist/chunk-GSGE3M5P.js.map +1 -0
  69. package/dist/{chunk-DXU7NZPH.js → chunk-HCRYAFBI.js} +3 -3
  70. package/dist/{chunk-OSVZKYXS.js → chunk-HOPUP6LA.js} +192 -156
  71. package/dist/chunk-HOPUP6LA.js.map +1 -0
  72. package/dist/chunk-HS24BL6W.js +160 -0
  73. package/dist/chunk-HS24BL6W.js.map +1 -0
  74. package/dist/chunk-HVYVG5KQ.js +16 -0
  75. package/dist/chunk-HVYVG5KQ.js.map +1 -0
  76. package/dist/{chunk-XEMLYWHK.js → chunk-I7CPLZNW.js} +4 -5
  77. package/dist/{chunk-XEMLYWHK.js.map → chunk-I7CPLZNW.js.map} +1 -1
  78. package/dist/{chunk-AULFV3KY.js → chunk-IFUCGI4I.js} +7 -2
  79. package/dist/chunk-IFUCGI4I.js.map +1 -0
  80. package/dist/{chunk-HGIPWY5Y.js → chunk-IFYXSSKR.js} +6 -6
  81. package/dist/chunk-IFYXSSKR.js.map +1 -0
  82. package/dist/chunk-IXA4DQE4.js +20 -0
  83. package/dist/chunk-IXA4DQE4.js.map +1 -0
  84. package/dist/chunk-IZMKMD3O.js +11 -0
  85. package/dist/chunk-IZMKMD3O.js.map +1 -0
  86. package/dist/{chunk-4X6CLF4F.js → chunk-JJERW2BI.js} +4 -5
  87. package/dist/{chunk-4X6CLF4F.js.map → chunk-JJERW2BI.js.map} +1 -1
  88. package/dist/{chunk-M6E7VK4D.js → chunk-JQR4HVUX.js} +2 -5
  89. package/dist/chunk-JQR4HVUX.js.map +1 -0
  90. package/dist/{chunk-BWLUBJQG.js → chunk-JXOMDLFS.js} +6 -15
  91. package/dist/chunk-JXOMDLFS.js.map +1 -0
  92. package/dist/{chunk-5ZHNPNDD.js → chunk-KIX6N7NT.js} +198 -141
  93. package/dist/chunk-KIX6N7NT.js.map +1 -0
  94. package/dist/{chunk-XFSEADPC.js → chunk-L42UTDFK.js} +7 -2
  95. package/dist/chunk-L42UTDFK.js.map +1 -0
  96. package/dist/chunk-M2UF2JHJ.js +11 -0
  97. package/dist/chunk-M2UF2JHJ.js.map +1 -0
  98. package/dist/{chunk-LPLZLSMK.js → chunk-MONC734W.js} +7 -2
  99. package/dist/chunk-MONC734W.js.map +1 -0
  100. package/dist/{chunk-XADEMW6B.js → chunk-N72RLCMU.js} +4 -5
  101. package/dist/{chunk-XADEMW6B.js.map → chunk-N72RLCMU.js.map} +1 -1
  102. package/dist/{chunk-ZPB3SLPK.js → chunk-ND4IWJ4V.js} +7 -2
  103. package/dist/chunk-ND4IWJ4V.js.map +1 -0
  104. package/dist/{chunk-ZPZQXHW2.js → chunk-NZ3EKGW4.js} +260 -178
  105. package/dist/chunk-NZ3EKGW4.js.map +1 -0
  106. package/dist/{chunk-E3KXVEYI.js → chunk-OAE57MNL.js} +22 -10
  107. package/dist/chunk-OAE57MNL.js.map +1 -0
  108. package/dist/{chunk-JBDFYIN2.js → chunk-OHKGIQB4.js} +2 -5
  109. package/dist/chunk-OHKGIQB4.js.map +1 -0
  110. package/dist/{chunk-V7JVMG63.js → chunk-OXEQSPND.js} +3 -3
  111. package/dist/{chunk-YRJICL2Q.js → chunk-PKNE5J2B.js} +5 -13
  112. package/dist/chunk-PKNE5J2B.js.map +1 -0
  113. package/dist/chunk-PSXXEGYQ.js +16 -0
  114. package/dist/chunk-PSXXEGYQ.js.map +1 -0
  115. package/dist/{chunk-KAWDDS27.js → chunk-QAOVABCR.js} +7 -2
  116. package/dist/chunk-QAOVABCR.js.map +1 -0
  117. package/dist/{chunk-SYMNWNC3.js → chunk-QQ7FP4GD.js} +4 -5
  118. package/dist/{chunk-SYMNWNC3.js.map → chunk-QQ7FP4GD.js.map} +1 -1
  119. package/dist/{chunk-3JZN3GYO.js → chunk-QYLVMC6B.js} +2 -5
  120. package/dist/chunk-QYLVMC6B.js.map +1 -0
  121. package/dist/{chunk-CXQGMFI7.js → chunk-RX3XR65X.js} +4 -5
  122. package/dist/{chunk-CXQGMFI7.js.map → chunk-RX3XR65X.js.map} +1 -1
  123. package/dist/{chunk-MRXTUFBZ.js → chunk-RYQJJB4C.js} +1 -1
  124. package/dist/chunk-RYQJJB4C.js.map +1 -0
  125. package/dist/{chunk-5I7Q7RHW.js → chunk-TUF7TCN7.js} +4 -5
  126. package/dist/{chunk-5I7Q7RHW.js.map → chunk-TUF7TCN7.js.map} +1 -1
  127. package/dist/{chunk-NLXJMXVE.js → chunk-TUX36JY5.js} +4 -5
  128. package/dist/{chunk-NLXJMXVE.js.map → chunk-TUX36JY5.js.map} +1 -1
  129. package/dist/{chunk-4GYB7DGC.js → chunk-TWRQCQWU.js} +327 -558
  130. package/dist/chunk-TWRQCQWU.js.map +1 -0
  131. package/dist/chunk-U6DFQRG3.js +20 -0
  132. package/dist/chunk-U6DFQRG3.js.map +1 -0
  133. package/dist/chunk-VI5YTKNY.js +20 -0
  134. package/dist/chunk-VI5YTKNY.js.map +1 -0
  135. package/dist/{chunk-FRGTDZQT.js → chunk-VQDF2UH5.js} +19 -5
  136. package/dist/chunk-VQDF2UH5.js.map +1 -0
  137. package/dist/{chunk-W5ZLIQFR.js → chunk-WG5YS6TC.js} +308 -200
  138. package/dist/chunk-WG5YS6TC.js.map +1 -0
  139. package/dist/{chunk-ZM44MGC5.js → chunk-WMJJ4WGF.js} +4 -5
  140. package/dist/{chunk-ZM44MGC5.js.map → chunk-WMJJ4WGF.js.map} +1 -1
  141. package/dist/{chunk-5YRWF5RP.js → chunk-WY4FNH42.js} +6 -5
  142. package/dist/chunk-WY4FNH42.js.map +1 -0
  143. package/dist/{chunk-VBYIDRNU.js → chunk-XIG5BWWH.js} +19 -10
  144. package/dist/chunk-XIG5BWWH.js.map +1 -0
  145. package/dist/chunk-XJBC3OYX.js +11 -0
  146. package/dist/chunk-XJBC3OYX.js.map +1 -0
  147. package/dist/{chunk-ZMREYTHA.js → chunk-XPRDXWK7.js} +8 -8
  148. package/dist/chunk-XPRDXWK7.js.map +1 -0
  149. package/dist/chunk-YKRQSZS7.js +96 -0
  150. package/dist/chunk-YKRQSZS7.js.map +1 -0
  151. package/dist/{chunk-IEVLWEBO.js → chunk-YMBL3VJB.js} +9 -8
  152. package/dist/chunk-YMBL3VJB.js.map +1 -0
  153. package/dist/{chunk-CGGO5NKD.js → chunk-YUJBXFYK.js} +357 -346
  154. package/dist/chunk-YUJBXFYK.js.map +1 -0
  155. package/dist/{chunk-S4KVLPBR.js → chunk-YZ4ZJNOL.js} +22 -10
  156. package/dist/chunk-YZ4ZJNOL.js.map +1 -0
  157. package/dist/chunk-ZTHVEXIV.js +11 -0
  158. package/dist/chunk-ZTHVEXIV.js.map +1 -0
  159. package/dist/{chunk-VHED2STW.js → chunk-ZVSYUCYS.js} +2 -1
  160. package/dist/chunk-ZVSYUCYS.js.map +1 -0
  161. package/dist/{config-T2IUIU5C.js → config-2YBCHU2W.js} +2 -2
  162. package/dist/{config-M3Z47VYU.js → config-3YRGRW72.js} +3 -2
  163. package/dist/config-4GSOMUMF.js +9 -0
  164. package/dist/config-5YBUWFUP.js +9 -0
  165. package/dist/{config-2LASFFRD.js → config-5ZRKJTKG.js} +3 -2
  166. package/dist/{config-W7EVPJNK.js → config-A25LTL5W.js} +2 -2
  167. package/dist/{config-WKQ3FGTZ.js → config-CLU7JABG.js} +2 -2
  168. package/dist/{config-E22XAGYN.js → config-D2RF7L3N.js} +2 -2
  169. package/dist/{config-HQXNFQZS.js → config-E55TKM6K.js} +2 -2
  170. package/dist/config-ELDOFRJW.js +9 -0
  171. package/dist/{config-EX3ZJTZI.js → config-FPC3RBFD.js} +2 -2
  172. package/dist/config-FPM3LAW7.js +9 -0
  173. package/dist/{config-IPNWAJHH.js → config-G3F54CS4.js} +3 -2
  174. package/dist/{config-BBOLI7VE.js → config-G43HRUI3.js} +2 -2
  175. package/dist/{config-QO2XUME4.js → config-GG3WO5PB.js} +3 -2
  176. package/dist/{config-QWQGOXQ5.js → config-JUYBWAZE.js} +2 -2
  177. package/dist/{config-SPW6NESU.js → config-LJ5T6TVA.js} +2 -2
  178. package/dist/{config-WVILHDFV.js → config-MDSAE4O3.js} +2 -2
  179. package/dist/{config-MZM3IPFM.js → config-NRIOKK5T.js} +2 -2
  180. package/dist/{config-L7SBSH5L.js → config-OYK2BSJK.js} +2 -2
  181. package/dist/config-PB3KA2CE.js +9 -0
  182. package/dist/{config-54USUVSE.js → config-QY4IL3PH.js} +3 -2
  183. package/dist/{config-VKKZGC7V.js → config-R4LAOEDS.js} +2 -2
  184. package/dist/{config-FRK7ZL37.js → config-RIAAD6RW.js} +3 -2
  185. package/dist/{config-J2C53GOT.js → config-SYNEQAUB.js} +2 -2
  186. package/dist/{config-XU6D5C7E.js → config-TJKGYA2B.js} +3 -2
  187. package/dist/{config-DWSJL3NH.js → config-UURRGA7U.js} +4 -2
  188. package/dist/{config-BIBFLUIR.js → config-VPLHQXVE.js} +2 -2
  189. package/dist/config-WRACCRPN.js +9 -0
  190. package/dist/{config-OJ2BPESH.js → config-WVHKXEVE.js} +3 -2
  191. package/dist/{config-CPYFOUQO.js → config-XU7R36IE.js} +3 -2
  192. package/dist/{config-A2GQYJDB.js → config-Y2KOUYSS.js} +2 -2
  193. package/dist/databricks_volume-CNCPTZHS.js +7 -0
  194. package/dist/digitalocean-DJZOUB6Q.js +11 -0
  195. package/dist/discord-ETB2CADR.js +7 -0
  196. package/dist/disk-WEHSTK3F.js +7 -0
  197. package/dist/dropbox-XN6PGLNE.js +8 -0
  198. package/dist/email-OV7XCP3T.js +8 -0
  199. package/dist/gcal-P56MRCGU.js +8 -0
  200. package/dist/gcs-HFBIAE2C.js +10 -0
  201. package/dist/gdocs-LQ3UXP3J.js +8 -0
  202. package/dist/gdrive-N6UBYLON.js +8 -0
  203. package/dist/github-BPZREGPI.js +8 -0
  204. package/dist/github_ci-7A4LUIZ7.js +8 -0
  205. package/dist/{gmail-2TBT4CVH.js → gmail-YED2MF6H.js} +2 -2
  206. package/dist/gridfs-CPLQ4G62.js +9 -0
  207. package/dist/gsheets-4BNIJPQ6.js +8 -0
  208. package/dist/gslides-GDBYLO5A.js +8 -0
  209. package/dist/hf_buckets-FTJITQ3P.js +10 -0
  210. package/dist/hf_datasets-6GXVKQD7.js +10 -0
  211. package/dist/hf_models-PJPGZAC5.js +10 -0
  212. package/dist/hf_spaces-LFNFOLBF.js +10 -0
  213. package/dist/index.d.ts +897 -609
  214. package/dist/index.js +2371 -781
  215. package/dist/index.js.map +1 -1
  216. package/dist/jaeger-GCA6MJ6E.js +8 -0
  217. package/dist/lancedb-TJ5YSJY5.js +7 -0
  218. package/dist/langfuse-RUMTUMXS.js +8 -0
  219. package/dist/linear-BCE4KEAC.js +7 -0
  220. package/dist/minio-5SO6KBTK.js +11 -0
  221. package/dist/mongodb-7C5MBESV.js +7 -0
  222. package/dist/nextcloud-4O2LZVW2.js +9 -0
  223. package/dist/notion-RVKEAQ2M.js +7 -0
  224. package/dist/oci-OQXOIC62.js +10 -0
  225. package/dist/postgres-AV45GNRS.js +7 -0
  226. package/dist/qingstor-W277YA4K.js +11 -0
  227. package/dist/r2-FUA4IORE.js +10 -0
  228. package/dist/{redis-6D55Q2WB.js → redis-LPS357NF.js} +2 -2
  229. package/dist/s3-FPNWWIVM.js +8 -0
  230. package/dist/scaleway-BP3732U7.js +11 -0
  231. package/dist/seaweedfs-MC6HIEP4.js +11 -0
  232. package/dist/slack-JFGW7VLN.js +7 -0
  233. package/dist/ssh-UYPG42LM.js +8 -0
  234. package/dist/supabase-A3KUFMDC.js +10 -0
  235. package/dist/tencent-5464UQ2X.js +11 -0
  236. package/dist/trello-O2KB3FUO.js +8 -0
  237. package/dist/wasabi-2IKBIWNO.js +10 -0
  238. package/dist/wasabi-2IKBIWNO.js.map +1 -0
  239. package/package.json +15 -3
  240. package/dist/aliyun-PGI57A43.js +0 -10
  241. package/dist/backblaze-TSPL6Y56.js +0 -10
  242. package/dist/box-7XTZYDSO.js +0 -8
  243. package/dist/ceph-C265UI5T.js +0 -10
  244. package/dist/chunk-2ERLWAGG.js.map +0 -1
  245. package/dist/chunk-2QNPKPZZ.js +0 -59
  246. package/dist/chunk-2QNPKPZZ.js.map +0 -1
  247. package/dist/chunk-3ASOQTZB.js +0 -59
  248. package/dist/chunk-3ASOQTZB.js.map +0 -1
  249. package/dist/chunk-3JZN3GYO.js.map +0 -1
  250. package/dist/chunk-4GYB7DGC.js.map +0 -1
  251. package/dist/chunk-5YRWF5RP.js.map +0 -1
  252. package/dist/chunk-5ZHNPNDD.js.map +0 -1
  253. package/dist/chunk-AULFV3KY.js.map +0 -1
  254. package/dist/chunk-BWLUBJQG.js.map +0 -1
  255. package/dist/chunk-C7TNKIK5.js.map +0 -1
  256. package/dist/chunk-CB76WPUS.js.map +0 -1
  257. package/dist/chunk-CGGO5NKD.js.map +0 -1
  258. package/dist/chunk-CQCTCW4S.js.map +0 -1
  259. package/dist/chunk-D3U7VQCG.js +0 -25
  260. package/dist/chunk-D3U7VQCG.js.map +0 -1
  261. package/dist/chunk-E3KXVEYI.js.map +0 -1
  262. package/dist/chunk-EVK6HH6Z.js +0 -17
  263. package/dist/chunk-EVK6HH6Z.js.map +0 -1
  264. package/dist/chunk-FRGTDZQT.js.map +0 -1
  265. package/dist/chunk-GF75O2EN.js +0 -54
  266. package/dist/chunk-GF75O2EN.js.map +0 -1
  267. package/dist/chunk-GTAS3QVC.js +0 -25
  268. package/dist/chunk-GTAS3QVC.js.map +0 -1
  269. package/dist/chunk-H62XQZUM.js.map +0 -1
  270. package/dist/chunk-HCU3B6FW.js.map +0 -1
  271. package/dist/chunk-HEDE2377.js.map +0 -1
  272. package/dist/chunk-HGIPWY5Y.js.map +0 -1
  273. package/dist/chunk-HSD24IP2.js.map +0 -1
  274. package/dist/chunk-HWQPEBID.js.map +0 -1
  275. package/dist/chunk-IEHPTILN.js +0 -21
  276. package/dist/chunk-IEHPTILN.js.map +0 -1
  277. package/dist/chunk-IEVLWEBO.js.map +0 -1
  278. package/dist/chunk-IKJQOYI4.js +0 -26
  279. package/dist/chunk-IKJQOYI4.js.map +0 -1
  280. package/dist/chunk-IUXXZHY3.js.map +0 -1
  281. package/dist/chunk-JBDFYIN2.js.map +0 -1
  282. package/dist/chunk-JEBH5APX.js.map +0 -1
  283. package/dist/chunk-JHI2PHHD.js +0 -25
  284. package/dist/chunk-JHI2PHHD.js.map +0 -1
  285. package/dist/chunk-KAWDDS27.js.map +0 -1
  286. package/dist/chunk-KGC2OGXI.js +0 -27
  287. package/dist/chunk-KGC2OGXI.js.map +0 -1
  288. package/dist/chunk-LPLZLSMK.js.map +0 -1
  289. package/dist/chunk-M6E7VK4D.js.map +0 -1
  290. package/dist/chunk-MIQ3ECZM.js +0 -54
  291. package/dist/chunk-MIQ3ECZM.js.map +0 -1
  292. package/dist/chunk-MRXTUFBZ.js.map +0 -1
  293. package/dist/chunk-NJ42VNXG.js.map +0 -1
  294. package/dist/chunk-OSVZKYXS.js.map +0 -1
  295. package/dist/chunk-RHUEV4I7.js.map +0 -1
  296. package/dist/chunk-S4KVLPBR.js.map +0 -1
  297. package/dist/chunk-SAOQW6ZJ.js.map +0 -1
  298. package/dist/chunk-SI4GMRXD.js.map +0 -1
  299. package/dist/chunk-UAJYJP5C.js +0 -59
  300. package/dist/chunk-UAJYJP5C.js.map +0 -1
  301. package/dist/chunk-UYA3XL3J.js +0 -54
  302. package/dist/chunk-UYA3XL3J.js.map +0 -1
  303. package/dist/chunk-VBYIDRNU.js.map +0 -1
  304. package/dist/chunk-VHED2STW.js.map +0 -1
  305. package/dist/chunk-VIICUPWQ.js +0 -23
  306. package/dist/chunk-VIICUPWQ.js.map +0 -1
  307. package/dist/chunk-VLRSOWHP.js.map +0 -1
  308. package/dist/chunk-W5ZLIQFR.js.map +0 -1
  309. package/dist/chunk-WTSSEUOZ.js +0 -59
  310. package/dist/chunk-WTSSEUOZ.js.map +0 -1
  311. package/dist/chunk-WWP2STF5.js +0 -59
  312. package/dist/chunk-WWP2STF5.js.map +0 -1
  313. package/dist/chunk-XFSEADPC.js.map +0 -1
  314. package/dist/chunk-YBVMZ7SR.js +0 -59
  315. package/dist/chunk-YBVMZ7SR.js.map +0 -1
  316. package/dist/chunk-YRJICL2Q.js.map +0 -1
  317. package/dist/chunk-ZMREYTHA.js.map +0 -1
  318. package/dist/chunk-ZPB3SLPK.js.map +0 -1
  319. package/dist/chunk-ZPZQXHW2.js.map +0 -1
  320. package/dist/config-3WDIJPTG.js +0 -9
  321. package/dist/config-4QV4QYI5.js +0 -9
  322. package/dist/config-5ZXN2T2H.js +0 -9
  323. package/dist/config-EHE52ZTK.js +0 -9
  324. package/dist/config-HTXOOAOD.js +0 -9
  325. package/dist/config-K63RX6EU.js +0 -9
  326. package/dist/config-LEALEMKA.js +0 -9
  327. package/dist/config-RI7IEZUF.js +0 -9
  328. package/dist/databricks_volume-ETRDJVVQ.js +0 -7
  329. package/dist/digitalocean-QP72DR4J.js +0 -10
  330. package/dist/discord-BSN5RB3E.js +0 -8
  331. package/dist/disk-24NWTN2I.js +0 -7
  332. package/dist/dropbox-OSTZXSIE.js +0 -8
  333. package/dist/email-4ZFPSWIN.js +0 -8
  334. package/dist/gcs-PFWR6MIW.js +0 -10
  335. package/dist/gdocs-GPAZRQG5.js +0 -8
  336. package/dist/gdrive-XSX6A7B3.js +0 -8
  337. package/dist/github-EQ4NXUTA.js +0 -8
  338. package/dist/github_ci-QL5B2Q2N.js +0 -8
  339. package/dist/gridfs-KZRZ6SIB.js +0 -9
  340. package/dist/gsheets-N53WEXN2.js +0 -8
  341. package/dist/gslides-TATSARTH.js +0 -8
  342. package/dist/hf_buckets-BK7NGJWS.js +0 -10
  343. package/dist/hf_datasets-UQ5QGM4L.js +0 -10
  344. package/dist/hf_models-75LFCQCS.js +0 -10
  345. package/dist/hf_spaces-6T2KB3UC.js +0 -10
  346. package/dist/langfuse-AMQCQWNE.js +0 -8
  347. package/dist/linear-V3TXO6CV.js +0 -8
  348. package/dist/minio-IZRZY4C5.js +0 -10
  349. package/dist/mongodb-VMKPQCPX.js +0 -7
  350. package/dist/nextcloud-5RHQCGDO.js +0 -9
  351. package/dist/notion-6PPNTQFM.js +0 -8
  352. package/dist/oci-CKYBSFZJ.js +0 -10
  353. package/dist/postgres-WIQBVL5M.js +0 -7
  354. package/dist/qingstor-AP4IIPLY.js +0 -10
  355. package/dist/r2-C4XGEWQY.js +0 -10
  356. package/dist/s3-XQBI2CXN.js +0 -8
  357. package/dist/scaleway-SEZJVURB.js +0 -10
  358. package/dist/seaweedfs-3XYIAFU2.js +0 -10
  359. package/dist/slack-ZHXDJQY4.js +0 -8
  360. package/dist/ssh-X2MO7JOV.js +0 -8
  361. package/dist/supabase-BBM44UTM.js +0 -10
  362. package/dist/tencent-X72USLJ7.js +0 -10
  363. package/dist/trello-EER5NG7L.js +0 -8
  364. package/dist/wasabi-O4MVIUFG.js +0 -10
  365. /package/dist/{aliyun-PGI57A43.js.map → aliyun-S62BR3TB.js.map} +0 -0
  366. /package/dist/{backblaze-TSPL6Y56.js.map → backblaze-4EKSW63F.js.map} +0 -0
  367. /package/dist/{box-7XTZYDSO.js.map → box-ZPLZAGMK.js.map} +0 -0
  368. /package/dist/{ceph-C265UI5T.js.map → ceph-ALKLD3MO.js.map} +0 -0
  369. /package/dist/{chunk-4M73WHIE.js.map → chunk-BZTVYOES.js.map} +0 -0
  370. /package/dist/{chunk-BWWU5T2D.js.map → chunk-ENW5BVYN.js.map} +0 -0
  371. /package/dist/{chunk-F5NWRF32.js.map → chunk-ETIAW4YD.js.map} +0 -0
  372. /package/dist/{chunk-TUNR4VUM.js.map → chunk-GMMQ3ZK4.js.map} +0 -0
  373. /package/dist/{chunk-DXU7NZPH.js.map → chunk-HCRYAFBI.js.map} +0 -0
  374. /package/dist/{chunk-V7JVMG63.js.map → chunk-OXEQSPND.js.map} +0 -0
  375. /package/dist/{config-2LASFFRD.js.map → config-2YBCHU2W.js.map} +0 -0
  376. /package/dist/{config-3WDIJPTG.js.map → config-3YRGRW72.js.map} +0 -0
  377. /package/dist/{config-4QV4QYI5.js.map → config-4GSOMUMF.js.map} +0 -0
  378. /package/dist/{config-54USUVSE.js.map → config-5YBUWFUP.js.map} +0 -0
  379. /package/dist/{config-5ZXN2T2H.js.map → config-5ZRKJTKG.js.map} +0 -0
  380. /package/dist/{config-A2GQYJDB.js.map → config-A25LTL5W.js.map} +0 -0
  381. /package/dist/{config-BBOLI7VE.js.map → config-CLU7JABG.js.map} +0 -0
  382. /package/dist/{config-BIBFLUIR.js.map → config-D2RF7L3N.js.map} +0 -0
  383. /package/dist/{config-CPYFOUQO.js.map → config-E55TKM6K.js.map} +0 -0
  384. /package/dist/{config-DWSJL3NH.js.map → config-ELDOFRJW.js.map} +0 -0
  385. /package/dist/{config-E22XAGYN.js.map → config-FPC3RBFD.js.map} +0 -0
  386. /package/dist/{config-EHE52ZTK.js.map → config-FPM3LAW7.js.map} +0 -0
  387. /package/dist/{config-EX3ZJTZI.js.map → config-G3F54CS4.js.map} +0 -0
  388. /package/dist/{config-FRK7ZL37.js.map → config-G43HRUI3.js.map} +0 -0
  389. /package/dist/{config-HQXNFQZS.js.map → config-GG3WO5PB.js.map} +0 -0
  390. /package/dist/{config-HTXOOAOD.js.map → config-JUYBWAZE.js.map} +0 -0
  391. /package/dist/{config-IPNWAJHH.js.map → config-LJ5T6TVA.js.map} +0 -0
  392. /package/dist/{config-J2C53GOT.js.map → config-MDSAE4O3.js.map} +0 -0
  393. /package/dist/{config-K63RX6EU.js.map → config-NRIOKK5T.js.map} +0 -0
  394. /package/dist/{config-L7SBSH5L.js.map → config-OYK2BSJK.js.map} +0 -0
  395. /package/dist/{config-LEALEMKA.js.map → config-PB3KA2CE.js.map} +0 -0
  396. /package/dist/{config-M3Z47VYU.js.map → config-QY4IL3PH.js.map} +0 -0
  397. /package/dist/{config-MZM3IPFM.js.map → config-R4LAOEDS.js.map} +0 -0
  398. /package/dist/{config-OJ2BPESH.js.map → config-RIAAD6RW.js.map} +0 -0
  399. /package/dist/{config-QO2XUME4.js.map → config-SYNEQAUB.js.map} +0 -0
  400. /package/dist/{config-QWQGOXQ5.js.map → config-TJKGYA2B.js.map} +0 -0
  401. /package/dist/{config-RI7IEZUF.js.map → config-UURRGA7U.js.map} +0 -0
  402. /package/dist/{config-SPW6NESU.js.map → config-VPLHQXVE.js.map} +0 -0
  403. /package/dist/{config-T2IUIU5C.js.map → config-WRACCRPN.js.map} +0 -0
  404. /package/dist/{config-VKKZGC7V.js.map → config-WVHKXEVE.js.map} +0 -0
  405. /package/dist/{config-W7EVPJNK.js.map → config-XU7R36IE.js.map} +0 -0
  406. /package/dist/{config-WKQ3FGTZ.js.map → config-Y2KOUYSS.js.map} +0 -0
  407. /package/dist/{config-WVILHDFV.js.map → databricks_volume-CNCPTZHS.js.map} +0 -0
  408. /package/dist/{config-XU6D5C7E.js.map → digitalocean-DJZOUB6Q.js.map} +0 -0
  409. /package/dist/{databricks_volume-ETRDJVVQ.js.map → discord-ETB2CADR.js.map} +0 -0
  410. /package/dist/{digitalocean-QP72DR4J.js.map → disk-WEHSTK3F.js.map} +0 -0
  411. /package/dist/{discord-BSN5RB3E.js.map → dropbox-XN6PGLNE.js.map} +0 -0
  412. /package/dist/{disk-24NWTN2I.js.map → email-OV7XCP3T.js.map} +0 -0
  413. /package/dist/{dropbox-OSTZXSIE.js.map → gcal-P56MRCGU.js.map} +0 -0
  414. /package/dist/{email-4ZFPSWIN.js.map → gcs-HFBIAE2C.js.map} +0 -0
  415. /package/dist/{gcs-PFWR6MIW.js.map → gdocs-LQ3UXP3J.js.map} +0 -0
  416. /package/dist/{gdocs-GPAZRQG5.js.map → gdrive-N6UBYLON.js.map} +0 -0
  417. /package/dist/{gdrive-XSX6A7B3.js.map → github-BPZREGPI.js.map} +0 -0
  418. /package/dist/{github-EQ4NXUTA.js.map → github_ci-7A4LUIZ7.js.map} +0 -0
  419. /package/dist/{github_ci-QL5B2Q2N.js.map → gmail-YED2MF6H.js.map} +0 -0
  420. /package/dist/{gmail-2TBT4CVH.js.map → gridfs-CPLQ4G62.js.map} +0 -0
  421. /package/dist/{gridfs-KZRZ6SIB.js.map → gsheets-4BNIJPQ6.js.map} +0 -0
  422. /package/dist/{gsheets-N53WEXN2.js.map → gslides-GDBYLO5A.js.map} +0 -0
  423. /package/dist/{gslides-TATSARTH.js.map → hf_buckets-FTJITQ3P.js.map} +0 -0
  424. /package/dist/{hf_buckets-BK7NGJWS.js.map → hf_datasets-6GXVKQD7.js.map} +0 -0
  425. /package/dist/{hf_datasets-UQ5QGM4L.js.map → hf_models-PJPGZAC5.js.map} +0 -0
  426. /package/dist/{hf_models-75LFCQCS.js.map → hf_spaces-LFNFOLBF.js.map} +0 -0
  427. /package/dist/{hf_spaces-6T2KB3UC.js.map → jaeger-GCA6MJ6E.js.map} +0 -0
  428. /package/dist/{langfuse-AMQCQWNE.js.map → lancedb-TJ5YSJY5.js.map} +0 -0
  429. /package/dist/{linear-V3TXO6CV.js.map → langfuse-RUMTUMXS.js.map} +0 -0
  430. /package/dist/{minio-IZRZY4C5.js.map → linear-BCE4KEAC.js.map} +0 -0
  431. /package/dist/{mongodb-VMKPQCPX.js.map → minio-5SO6KBTK.js.map} +0 -0
  432. /package/dist/{nextcloud-5RHQCGDO.js.map → mongodb-7C5MBESV.js.map} +0 -0
  433. /package/dist/{notion-6PPNTQFM.js.map → nextcloud-4O2LZVW2.js.map} +0 -0
  434. /package/dist/{oci-CKYBSFZJ.js.map → notion-RVKEAQ2M.js.map} +0 -0
  435. /package/dist/{postgres-WIQBVL5M.js.map → oci-OQXOIC62.js.map} +0 -0
  436. /package/dist/{qingstor-AP4IIPLY.js.map → postgres-AV45GNRS.js.map} +0 -0
  437. /package/dist/{r2-C4XGEWQY.js.map → qingstor-W277YA4K.js.map} +0 -0
  438. /package/dist/{redis-6D55Q2WB.js.map → r2-FUA4IORE.js.map} +0 -0
  439. /package/dist/{s3-XQBI2CXN.js.map → redis-LPS357NF.js.map} +0 -0
  440. /package/dist/{scaleway-SEZJVURB.js.map → s3-FPNWWIVM.js.map} +0 -0
  441. /package/dist/{seaweedfs-3XYIAFU2.js.map → scaleway-BP3732U7.js.map} +0 -0
  442. /package/dist/{slack-ZHXDJQY4.js.map → seaweedfs-MC6HIEP4.js.map} +0 -0
  443. /package/dist/{ssh-X2MO7JOV.js.map → slack-JFGW7VLN.js.map} +0 -0
  444. /package/dist/{supabase-BBM44UTM.js.map → ssh-UYPG42LM.js.map} +0 -0
  445. /package/dist/{tencent-X72USLJ7.js.map → supabase-A3KUFMDC.js.map} +0 -0
  446. /package/dist/{trello-EER5NG7L.js.map → tencent-5464UQ2X.js.map} +0 -0
  447. /package/dist/{wasabi-O4MVIUFG.js.map → trello-O2KB3FUO.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,19 +1,30 @@
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';
1
+ import * as _struktoai_mirage_core from '@struktoai/mirage-core';
2
+ import { Resource, MountMode, MountBackend, Limit, SandboxConfig, RemoteSandbox, RuntimeOptions, RunResult, WorkspaceOptions, Workspace as Workspace$1, MountSpec, ExecuteOptions, ExecuteResult, ProvisionResult, Accessor, BaseResource, CapacityResult, RegisteredOp, RegisteredCommand, PathSpec, FileStat, FindOptions, ObserverStoreBase, ConsoleStore, Channel, ConsoleChunk, ReadResult, NamespaceStore, NodeFields, SessionStore, SessionFields, WorkspaceStateStore, WorkspaceStateStoreOverrides, ObserverStore, WorkspaceFields, REDACTED_SECRET, CommandOpts, FileCache, Session, Ops, FileTable, OpRecord, S3Config as S3Config$1, RedactedConfig, ConfigOf, z, S3Accessor, DatabricksVolumeConfig, DatabricksVolumeAccessor, DatabricksVolumeConfigRedacted, ResourceName, PgDriver, PostgresConfigResolved, PgQueryResult, PostgresAccessor, PostgresConfig, MongoDriver, EntityKind, MongoCollectionSpec, MongoFindOptions, MongoIterOptions, MongoIndexAccess, MongoDBConfigResolved, MongoDBAccessor, MongoDBConfig, LanceDriver, LanceDBConfigResolved, LanceRow, LanceDBAccessor, LanceDBConfig, SlackConfig, SlackAccessor, SlackConfigRedacted, DeltaHook, WalkEntry, DiscordConfig, DiscordAccessor, DiscordConfigRedacted, TrelloAccessor, LinearConfig, LinearAccessor, LinearConfigRedacted, NotionConfig, NotionAccessor, NotionConfigRedacted, LangfuseAccessor, JaegerAccessor, GitHubAccessor, GitHubCIAccessor, GoogleConfig, GDocsAccessor, GoogleConfigRedacted, GSheetsAccessor, GSlidesAccessor, GDriveAccessor, DropboxAccessor, BoxAccessor, GmailAccessor, GCalAccessor, CLISpec, PythonRuntime, RunArgs } from '@struktoai/mirage-core';
2
3
  export * from '@struktoai/mirage-core';
3
- export { GoogleConfig as GmailConfig, GoogleConfigRedacted as GmailConfigRedacted, normalizeGoogleConfig as normalizeGmailConfig, redactGoogleConfig as redactGmailConfig } from '@struktoai/mirage-core';
4
+ export { DiscordConfig, DiscordConfigRedacted, GoogleConfig as GCalConfig, GoogleConfigRedacted as GCalConfigRedacted, GoogleConfig as GDocsConfig, GoogleConfigRedacted as GDocsConfigRedacted, GoogleConfig as GDriveConfig, GoogleConfigRedacted as GDriveConfigRedacted, GoogleConfig as GSheetsConfig, GoogleConfigRedacted as GSheetsConfigRedacted, GoogleConfig as GSlidesConfig, GoogleConfigRedacted as GSlidesConfigRedacted, GoogleConfig as GmailConfig, GoogleConfigRedacted as GmailConfigRedacted, LinearConfig, LinearConfigRedacted, Mem0Config, Mem0Resource, NotionConfig, NotionConfigRedacted, OneDriveConfig, OneDriveResource, SharePointConfig, SharePointResource, SlackConfig, SlackConfigRedacted, normalizeDiscordConfig, normalizeGoogleConfig as normalizeGCalConfig, normalizeGoogleConfig as normalizeGDocsConfig, normalizeGoogleConfig as normalizeGDriveConfig, normalizeGoogleConfig as normalizeGSheetsConfig, normalizeGoogleConfig as normalizeGSlidesConfig, normalizeGoogleConfig as normalizeGmailConfig, normalizeLinearConfig, normalizeNotionConfig, normalizeSlackConfig, redactDiscordConfig, redactGoogleConfig as redactGCalConfig, redactGoogleConfig as redactGDocsConfig, redactGoogleConfig as redactGDriveConfig, redactGoogleConfig as redactGSheetsConfig, redactGoogleConfig as redactGSlidesConfig, redactGoogleConfig as redactGmailConfig, redactLinearConfig, redactNotionConfig, redactSlackConfig } from '@struktoai/mirage-core';
4
5
  import { FileHandle } from 'node:fs/promises';
5
6
  import { RedisClientType } from 'redis';
6
7
  import { MongoClient, Db } from 'mongodb';
7
8
  import { Operator } from 'opendal';
8
9
  import { SFTPWrapper } from 'ssh2';
9
10
  import { ImapFlow } from 'imapflow';
11
+ import * as daytonaSdk from '@daytonaio/sdk';
12
+ import * as e2bSdk from 'e2b';
10
13
 
11
14
  interface MountSpecOptions {
12
15
  /** Per-mount mode override; falls back to the workspace default when unset. */
13
16
  mode?: MountMode;
14
- /** `true` mounts at a temp dir; a string pins the mountpoint to that path. */
15
- fuse?: boolean | string;
16
- commandSafeguards?: Record<string, CommandSafeguard>;
17
+ /**
18
+ * How the mount is exposed. `vfs` (the default) keeps it inside mirage's
19
+ * own filesystem; `fuse` and `fskit` also register a real mountpoint.
20
+ */
21
+ backend?: MountBackend;
22
+ /**
23
+ * Where to mount, for the kernel backends. Omitted picks a temporary
24
+ * directory appropriate for the backend. Ignored when backend is `vfs`.
25
+ */
26
+ mountpoint?: string;
27
+ commandLimits?: Record<string, Limit>;
17
28
  }
18
29
  declare class Mount {
19
30
  readonly resource: Resource;
@@ -21,6 +32,43 @@ declare class Mount {
21
32
  constructor(resource: Resource, options?: MountSpecOptions);
22
33
  }
23
34
 
35
+ /** How to reach the user's live Daytona sandbox. */
36
+ interface DaytonaConfig extends SandboxConfig {
37
+ /**
38
+ * Id of a sandbox you created (dashboard, `daytona sandbox create`,
39
+ * or the SDK). Boot it from an image or snapshot with fuse3 and
40
+ * mirage installed.
41
+ */
42
+ sandboxId: string;
43
+ /** Daytona credential; absent reads DAYTONA_API_KEY. */
44
+ apiKey?: string;
45
+ }
46
+ declare const DAYTONA_CONFIG_KEYS: readonly string[];
47
+
48
+ type DaytonaSdk = typeof daytonaSdk;
49
+ /**
50
+ * A Daytona sandbox the user runs as a whole-line runtime.
51
+ *
52
+ * You create the sandbox yourself (dashboard, `daytona sandbox
53
+ * create`, or the SDK); mirage only connects by `sandboxId` and execs
54
+ * lines. `apiKey` falls back to DAYTONA_API_KEY. Daytona's exec has
55
+ * no stdin and reports combined output, so piped bytes are uploaded
56
+ * and redirected in, and stderr comes back null. close() releases the
57
+ * SDK client and never touches the sandbox.
58
+ */
59
+ declare class DaytonaRuntime extends RemoteSandbox<DaytonaConfig> {
60
+ readonly name = "daytona";
61
+ private client;
62
+ private sandbox;
63
+ constructor(options?: RuntimeOptions<DaytonaConfig> | Record<string, unknown>);
64
+ protected loadSdk(): Promise<DaytonaSdk>;
65
+ connect(): Promise<void>;
66
+ execLine(line: string, stdin: Uint8Array | null, env: Record<string, string>, cwd: string): Promise<RunResult>;
67
+ private upload;
68
+ /** Release the SDK client; the sandbox itself is the user's. */
69
+ close(): Promise<void>;
70
+ }
71
+
24
72
  type NodeWorkspaceOptions = WorkspaceOptions;
25
73
  declare class Workspace extends Workspace$1 {
26
74
  private fuseSetupPromise;
@@ -39,7 +87,7 @@ declare class Workspace extends Workspace$1 {
39
87
  * into a container and the narrowing travels with it); it is keyed
40
88
  * separately so the same prefix can also be exposed unbound.
41
89
  */
42
- addFuseMount(prefix: string, mountpoint?: string, sessionId?: string): Promise<string>;
90
+ addFuseMount(prefix: string, mountpoint?: string, sessionId?: string, backend?: MountBackend): Promise<string>;
43
91
  removeFuseMount(prefix: string, sessionId?: string): Promise<void>;
44
92
  get fuseMountpoints(): Record<string, string>;
45
93
  get fuseMountpoint(): string | null;
@@ -71,14 +119,16 @@ interface DiskResourceState {
71
119
  declare class DiskResource extends BaseResource implements Resource {
72
120
  readonly kind: "disk";
73
121
  readonly cachesReads: boolean;
122
+ readonly sizesAlwaysKnown: boolean;
74
123
  readonly indexTtl: number;
75
124
  readonly prompt = "{prefix}\n Local disk filesystem. Mirrors the configured root directory.\n Standard commands: ls, cat, head, tail, grep, wc, find, tree, mkdir, touch, cp, mv, rm, tee.";
76
125
  readonly root: string;
77
126
  readonly accessor: DiskAccessor;
78
127
  readonly opsMap: Record<string, unknown>;
79
128
  constructor(options: DiskResourceOptions);
129
+ storageId(): string;
80
130
  open(): Promise<void>;
81
- close(): Promise<void>;
131
+ statfs(): Promise<CapacityResult>;
82
132
  ops(): readonly RegisteredOp[];
83
133
  commands(): readonly RegisteredCommand[];
84
134
  streamPath(p: PathSpec): AsyncIterable<Uint8Array>;
@@ -112,16 +162,15 @@ declare const DISK_OPS: readonly RegisteredOp[];
112
162
  * ObserverStore backed by a directory of JSONL files. Created lazily on
113
163
  * first append. Mirrors the Python DiskObserverStore.
114
164
  */
115
- declare class DiskObserverStore implements ObserverStore {
165
+ declare class DiskObserverStore extends ObserverStoreBase {
116
166
  private readonly root;
117
167
  constructor(root: string);
118
168
  private abs;
119
169
  append(key: string, data: Uint8Array): Promise<void>;
120
170
  write(key: string, data: Uint8Array): Promise<void>;
121
- readAll(): Promise<Map<string, Uint8Array>>;
122
171
  readMatching(suffix: string): Promise<Map<string, Uint8Array>>;
123
172
  clear(): Promise<void>;
124
- close(): Promise<void>;
173
+ private rootIsDir;
125
174
  private walk;
126
175
  }
127
176
 
@@ -136,7 +185,7 @@ interface RedisObserverStoreOptions {
136
185
  * file keys exist so readAll needs no SCAN. Mirrors the Python
137
186
  * RedisObserverStore.
138
187
  */
139
- declare class RedisObserverStore implements ObserverStore {
188
+ declare class RedisObserverStore extends ObserverStoreBase {
140
189
  readonly url: string;
141
190
  private readonly prefix;
142
191
  private readonly indexKey;
@@ -145,7 +194,6 @@ declare class RedisObserverStore implements ObserverStore {
145
194
  private client;
146
195
  append(key: string, data: Uint8Array): Promise<void>;
147
196
  write(key: string, data: Uint8Array): Promise<void>;
148
- readAll(): Promise<Map<string, Uint8Array>>;
149
197
  readMatching(suffix: string): Promise<Map<string, Uint8Array>>;
150
198
  private indexedPaths;
151
199
  private readPaths;
@@ -153,6 +201,71 @@ declare class RedisObserverStore implements ObserverStore {
153
201
  close(): Promise<void>;
154
202
  }
155
203
 
204
+ interface RedisConsoleStoreOptions {
205
+ url?: string;
206
+ keyPrefix?: string;
207
+ /** Expire the keys this long after the last append; absent keeps them. */
208
+ ttlSeconds?: number;
209
+ }
210
+ /**
211
+ * Console storage on a Redis stream, for readers in other processes.
212
+ *
213
+ * One stream per job: chunk seq maps to stream id `(seq+1)-0`, with the
214
+ * channel, payload and timestamp as entry fields (`c`/`d`/`t`). The
215
+ * job's process appends through its store instance; a reader anywhere
216
+ * else attaches its own instance on the same keyPrefix and follows
217
+ * live, which is what RAM cannot offer. The schema matches the Python
218
+ * RedisConsoleStore byte for byte, so the reader does not have to be
219
+ * the writer's language.
220
+ *
221
+ * The job owns its keys: a factory must hand every job a prefix nothing
222
+ * else has written, because a reused stream replays the previous job's
223
+ * chunks, ending chunk included. `keyPrefix` stays public because it is
224
+ * the console's address: an embedder reads it off a job's store and
225
+ * hands it to the process that should attach.
226
+ *
227
+ * The ending chunk is terminal in the store itself, not only in this
228
+ * process: the append script refuses any append once a CONTROL chunk
229
+ * landed, so an emit that raced a kill past `JobConsole`'s local guard
230
+ * is dropped server-side instead of landing after the ending.
231
+ *
232
+ * `wait` polls the seq counter rather than blocking server-side the way
233
+ * Python's XREAD BLOCK does: node-redis serializes commands on one
234
+ * connection, so a blocking read would wedge the job's own appends
235
+ * behind it, and a second connection costs more than a short poll.
236
+ * There is no retention trim, so readFrom never reports a truncated
237
+ * cursor; retention is bounded by `ttlSeconds` instead, refreshed on
238
+ * every append, so a console expires that long after its job's last
239
+ * write.
240
+ */
241
+ declare class RedisConsoleStore implements ConsoleStore {
242
+ readonly url: string;
243
+ readonly keyPrefix: string;
244
+ private readonly streamKey;
245
+ private readonly counterKey;
246
+ private readonly endedKey;
247
+ private readonly ttlSeconds;
248
+ private clientPromise;
249
+ private isClosed;
250
+ constructor(options?: RedisConsoleStoreOptions);
251
+ get closed(): boolean;
252
+ private client;
253
+ /**
254
+ * Append one chunk, atomically against the console's ending.
255
+ *
256
+ * A dropped append (the console already ended) reports the last real
257
+ * chunk's seq; `JobConsole.emit` ignores the return and the drop is
258
+ * exactly its documented after-the-ending semantics.
259
+ */
260
+ append(channel: Channel, data: Uint8Array): Promise<ConsoleChunk>;
261
+ readFrom(seq: number, limit?: number): Promise<ReadResult>;
262
+ wait(seq: number): Promise<void>;
263
+ close(): Promise<void>;
264
+ /** Delete the console's keys (test and integ teardown only). */
265
+ clear(): Promise<void>;
266
+ private chunk;
267
+ }
268
+
156
269
  /**
157
270
  * NamespaceStore backed by one `namespace.json` per workspace.
158
271
  *
@@ -253,6 +366,7 @@ declare class DiskRecordClient {
253
366
  private releaseLock;
254
367
  private writeRecord;
255
368
  }
369
+
256
370
  /**
257
371
  * SessionStore backed by per-session files under one directory.
258
372
  *
@@ -459,6 +573,7 @@ interface RedisResourceState {
459
573
  declare class RedisResource extends BaseResource implements Resource {
460
574
  readonly kind: string;
461
575
  readonly cachesReads: boolean;
576
+ readonly sizesAlwaysKnown: boolean;
462
577
  readonly indexTtl: number;
463
578
  readonly prompt: string;
464
579
  readonly url: string;
@@ -467,6 +582,7 @@ declare class RedisResource extends BaseResource implements Resource {
467
582
  readonly accessor: RedisAccessor;
468
583
  readonly opsMap: Record<string, unknown>;
469
584
  constructor(options?: RedisResourceOptions);
585
+ storageId(): string;
470
586
  open(): Promise<void>;
471
587
  close(): Promise<void>;
472
588
  client(): Promise<RedisClientType>;
@@ -536,6 +652,8 @@ declare class RedisFileCacheStore extends RedisResource implements FileCache {
536
652
  remove(key: string): Promise<void>;
537
653
  exists(key: string | PathSpec): Promise<boolean>;
538
654
  isFresh(key: string, remoteFingerprint: string): Promise<boolean>;
655
+ evictPrefix(prefix: string): Promise<void>;
656
+ evictPaths(_paths: Iterable<string>): void;
539
657
  clear(): Promise<void>;
540
658
  allCached(keys: readonly string[]): Promise<boolean>;
541
659
  multiGet(keys: readonly string[]): Promise<(Uint8Array | null)[]>;
@@ -568,6 +686,13 @@ interface MountOptions {
568
686
  * Mirage appends by default (see appendDirectIO).
569
687
  */
570
688
  fuseOptions?: Record<string, unknown>;
689
+ /**
690
+ * Which kernel interface serves the mount: 'fuse' (default) or 'fskit'.
691
+ * 'fskit' routes through macFUSE 5.x's FSKit backend (no kernel
692
+ * extension); macOS-only, mounts under /Volumes, and every mounted
693
+ * resource must report exact sizes. See backend.ts for the guards.
694
+ */
695
+ backend?: MountBackend;
571
696
  }
572
697
  declare function mount(ws: Workspace$1, options?: MountOptions): Promise<FuseHandle>;
573
698
  declare function mountBackground(ws: Workspace$1, options?: MountOptions): Promise<FuseHandle>;
@@ -591,65 +716,149 @@ interface FuseAttr {
591
716
  uid: number;
592
717
  gid: number;
593
718
  }
594
- interface MirageFSOptions {
719
+ interface Handle {
720
+ path: string;
721
+ data?: Uint8Array;
722
+ writeBuf?: [number, Uint8Array][];
723
+ }
724
+ interface PrefetchEntry {
725
+ data: Uint8Array;
726
+ expires: number;
727
+ }
728
+ interface MountCoreOptions {
595
729
  rootPrefix?: string;
596
730
  /**
597
- * Bind every FUSE op to this session's mount grants. The kernel-tier
731
+ * Bind every op to this session's mount grants. The kernel-tier
598
732
  * primitive: bind-mount the tree into a container and the narrowing
599
733
  * travels with it. Enforcement happens inside dispatch/Ops via the
600
734
  * session context, so binding at the op entry point is sufficient.
601
735
  */
602
736
  session?: Session;
603
737
  }
604
- declare class MirageFS {
605
- private readonly ws;
738
+ /**
739
+ * Protocol-neutral mount logic shared by every kernel adapter.
740
+ *
741
+ * Everything here is expressed in POSIX terms (attribute records, ordinary
742
+ * thrown errors) and imports nothing from `@zkochan/fuse-native`, so it is
743
+ * reusable by a non-FUSE adapter and unit-testable without a kernel.
744
+ *
745
+ * The division of labour: this class decides *what* the filesystem
746
+ * contains, an adapter decides *how* to say it to a particular kernel
747
+ * interface. Adapters translate the errors thrown here into their own
748
+ * error codes with `classifyErrno`. Mirrors Python's `MountCore`.
749
+ *
750
+ * Every op goes through `ws.fs`, which delegates to the dispatcher, so
751
+ * a mount walks the same door as a shell line (mount modes, policies,
752
+ * cache, invalidation) and every op it runs lands in `ws.records` for
753
+ * `drainOps`. Reaching `ws.dispatch` from here instead would skip the
754
+ * record; reaching a backend directly would skip the door.
755
+ */
756
+ declare class MountCore {
757
+ readonly ops: Ops;
758
+ readonly session: Session | null;
606
759
  private readonly now;
607
760
  private readonly root;
608
- private readonly prefixes;
609
- private readonly handles;
610
- private readonly xattrs;
611
- private readonly prefetchCache;
761
+ readonly handles: FileTable<Handle>;
762
+ readonly xattrs: Map<string, Map<string, Buffer<ArrayBufferLike>>>;
763
+ readonly prefetchCache: Map<string, PrefetchEntry>;
612
764
  private readonly prefetchInflight;
613
- private nextFh;
614
765
  private readonly uid;
615
766
  private readonly gid;
616
- private readonly session;
617
- constructor(ws: Workspace$1, options?: MirageFSOptions);
618
- private resolve;
619
- private dirStat;
620
- private fileStat;
767
+ constructor(ops: Ops, options?: MountCoreOptions);
768
+ resolve(path: string): string;
769
+ dirStat(): FuseAttr;
770
+ fileStat(size: number): FuseAttr;
621
771
  /**
622
- * Fold merged stat attributes into a FUSE attr. The workspace stat
772
+ * Fold merged stat attributes into an attr record. The workspace stat
623
773
  * already carries the namespace overlay (chmod bits, chown ids, touched
624
774
  * 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.
775
+ * visible through a mount. String uid/gid (names) are skipped: the kernel
776
+ * wants numeric ids and there is no user db to map against.
627
777
  */
628
- private applyStatAttrs;
778
+ applyStatAttrs(entry: FuseAttr, s: FileStat): FuseAttr;
629
779
  /**
630
- * The target to present for a namespace link at a FUSE path, or null
780
+ * The target to present for a namespace link at a mount path, or null
631
781
  * when not a link. Relative targets are stored verbatim and returned
632
782
  * as-is. Absolute targets name virtual paths, so they are rewritten
633
783
  * relative to the link's directory: returned raw, the kernel would
634
784
  * resolve them against the host root and escape the mountpoint.
635
785
  */
636
- private linkTarget;
637
- private linkStat;
638
- private isVirtualDir;
639
- private virtualChildren;
640
- private cachedSize;
641
- private cachedData;
786
+ linkTarget(path: string): string | null;
787
+ linkStat(target: string): FuseAttr;
788
+ cachedSize(path: string): number | null;
789
+ cachedData(path: string): Uint8Array | null;
642
790
  /**
643
791
  * Fetch bytes for a size-unknown file and cache them so the open → read →
644
792
  * fstat burst (and subsequent stats within the TTL) reuse the same fetch.
645
793
  * With getattr reporting 0 pre-open, this hydration is what lets fgetattr
646
794
  * answer with the real byte length after open (mirrors Python's
647
- * `_prefetch_read`).
795
+ * `prefetch_read`).
648
796
  */
649
- private prefetch;
650
- /** Drain and return accumulated op records (mirrors Python's drain_ops). */
797
+ prefetch(path: string): Promise<Uint8Array | null>;
798
+ /** Drain and return accumulated op records (mirrors Python's drainOps). */
651
799
  drainOps(): OpRecord[];
652
800
  private writeFile;
801
+ /**
802
+ * Merge buffered writes over the raw base and persist the result.
803
+ * The base is read raw so a flush never stores a rendered view back
804
+ * into the mount.
805
+ */
806
+ private applyWrites;
807
+ getattr(path: string): Promise<FuseAttr>;
808
+ /** Attributes through an open handle, or path-based when not hydrated. */
809
+ fgetattr(path: string, fd: number): Promise<FuseAttr>;
810
+ readdir(path: string): Promise<string[]>;
811
+ read(path: string, fd: number, pos: number, len: number): Promise<Uint8Array>;
812
+ /** Buffer a write on its handle, or apply it directly when there is none. */
813
+ write(path: string, fd: number, data: Uint8Array, pos: number): Promise<void>;
814
+ create(path: string): Promise<number>;
815
+ mkdir(path: string): Promise<void>;
816
+ readlink(path: string): string;
817
+ /**
818
+ * Create namespace link `dest -> src` (ln -s src dest; libfuse passes
819
+ * the pointee first). Relative sources are stored verbatim (resolved
820
+ * at follow time, exactly like the shell `ln -s`); absolute sources
821
+ * are mapped into virtual space so a scoped mount stores the path it
822
+ * will later follow.
823
+ */
824
+ symlink(src: string, dest: string): Promise<void>;
825
+ unlink(path: string): Promise<void>;
826
+ rename(src: string, dst: string): Promise<void>;
827
+ rmdir(path: string): Promise<void>;
828
+ truncate(path: string, size: number): Promise<void>;
829
+ statfs(): Record<string, number>;
830
+ setxattr(path: string, name: string, value: Buffer): void;
831
+ getxattr(path: string, name: string): Buffer | undefined;
832
+ listxattr(path: string): string[];
833
+ removexattr(path: string, name: string): void;
834
+ open(path: string): Promise<number>;
835
+ release(fd: number): Promise<void>;
836
+ flush(path: string, fd: number): Promise<void>;
837
+ }
838
+
839
+ interface MirageFSOptions {
840
+ rootPrefix?: string;
841
+ /**
842
+ * Bind every FUSE op to this session's mount grants. The kernel-tier
843
+ * primitive: bind-mount the tree into a container and the narrowing
844
+ * travels with it. Enforcement happens inside dispatch/Ops via the
845
+ * session context, so binding at the op entry point is sufficient.
846
+ */
847
+ session?: Session;
848
+ }
849
+ /**
850
+ * libfuse adapter over MountCore.
851
+ *
852
+ * Owns exactly the FUSE-specific concerns: the `@zkochan/fuse-native`
853
+ * callback signatures and the translation of mirage-native errors into
854
+ * negative errno codes. All filesystem semantics live in MountCore, so a
855
+ * non-FUSE adapter can reuse them unchanged. Mirrors Python's `MirageFS`.
856
+ */
857
+ declare class MirageFS {
858
+ readonly core: MountCore;
859
+ constructor(ops: Ops, options?: MirageFSOptions);
860
+ /** Drain and return accumulated op records (mirrors Python's drainOps). */
861
+ drainOps(): OpRecord[];
653
862
  ops(): Record<string, unknown>;
654
863
  private getattr;
655
864
  private fgetattr;
@@ -659,13 +868,6 @@ declare class MirageFS {
659
868
  private create;
660
869
  private mkdir;
661
870
  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
871
  private symlink;
670
872
  private unlink;
671
873
  private rename;
@@ -680,22 +882,123 @@ declare class MirageFS {
680
882
  private getxattr;
681
883
  private listxattr;
682
884
  private removexattr;
683
- private getattrValidate;
885
+ private validate;
684
886
  private open;
685
887
  private release;
686
888
  private flush;
687
889
  private fsync;
688
890
  }
689
891
 
892
+ /**
893
+ * Map a mirage-native error onto a positive POSIX errno.
894
+ *
895
+ * Mirrors Python's `mirage.fuse.errors.classify_error` so both languages
896
+ * report the same errno for the same backend failure. The naming lives in
897
+ * core's `classify` (shared with the wasi shim and the monty encoders);
898
+ * this adapter only renders the condition in host numbers. A stamped code
899
+ * outside the vocabulary is passed through in the host's own numbering
900
+ * (Python's raw OSError.errno passthrough), and the message needles are a
901
+ * last resort for unstamped errors, not a classification channel.
902
+ */
903
+ declare function classifyErrno(err: unknown): number;
904
+ /** Same classification, negated for `@zkochan/fuse-native` callbacks. */
905
+ declare function classifyError(err: unknown): number;
906
+
907
+ /**
908
+ * FSKit mounts only under /Volumes. Anywhere else the mount fails with an
909
+ * opaque driver error, so the rule is enforced up front rather than
910
+ * discovered at run time (github.com/strukto-ai/mirage#82).
911
+ */
912
+ declare const FSKIT_MOUNT_ROOT = "/Volumes";
913
+ /**
914
+ * Coerce a user-supplied backend name into a MountBackend.
915
+ *
916
+ * Missing means vfs, everywhere: an absent `backend` in YAML, `undefined`
917
+ * here, and the `MountSpecOptions` default all resolve to the same thing.
918
+ * Callers that need a kernel mount say so explicitly rather than relying on
919
+ * this function to reinterpret an absent value.
920
+ */
921
+ declare function resolveBackend(value?: string | null): MountBackend;
922
+ /** Reject a backend that registers nothing with the kernel. */
923
+ declare function requireKernelBackend(backend: MountBackend): void;
924
+ /**
925
+ * Reject a backend the current platform cannot serve.
926
+ *
927
+ * FSKit works from TypeScript: `fuse.node` links `/usr/local/lib/
928
+ * libfuse.2.dylib` by absolute path (the `libosxfuse.2.dylib` it ships is a
929
+ * stub with that install name), so on a machine with macFUSE 5.x the
930
+ * `backend=fskit` option reaches the same libfuse Python uses. Verified
931
+ * with a live mount; see examples/typescript/fuse/fskit.ts.
932
+ */
933
+ declare function checkPlatform(backend: MountBackend): void;
934
+ /** Reject a mountpoint the backend cannot mount on. */
935
+ declare function checkMountpoint(backend: MountBackend, mountpoint: string): void;
936
+ /**
937
+ * Mounts under `rootPrefix` whose files cannot be sized without reading
938
+ * them. Mirrors Python's `Ops.unsized_mounts`.
939
+ */
940
+ declare function unsizedMounts(ws: Workspace$1, rootPrefix?: string): [string, string][];
941
+ /**
942
+ * Warn when an fskit mount will serve size-unknown files as empty.
943
+ *
944
+ * FSKit drives reads from the size the filesystem reports and has no
945
+ * `direct_io` escape hatch, so a resource that cannot size a file without
946
+ * fetching it reports 0, the kernel issues no reads, and every such file
947
+ * comes back empty with exit code 0 (verified on a live fskit mount: the
948
+ * read clamp is pinned at lookup-time size and never refreshed). The mount
949
+ * proceeds anyway: per-backend size push-down is closing this gap, so the
950
+ * degraded mounts are named loudly here rather than refused.
951
+ */
952
+ declare function checkSizes(backend: MountBackend, ws: Workspace$1, rootPrefix?: string): void;
953
+ /**
954
+ * Resolve a backend for a kernel mount and run every guard it implies.
955
+ *
956
+ * One entry point, so a new mount path cannot pick up fskit support while
957
+ * silently skipping the macOS, /Volumes, or size checks.
958
+ */
959
+ declare function prepareBackend(value: string | undefined, ws?: Workspace$1, mountpoint?: string, rootPrefix?: string): MountBackend;
960
+
690
961
  declare function isMacosMetadata(name: string): boolean;
691
962
 
692
963
  interface S3Config extends S3Config$1 {
693
964
  profile?: string;
694
- }
695
- interface S3ConfigRedacted extends S3ConfigRedacted$1 {
696
- profile?: string;
697
- }
965
+ proxy?: string;
966
+ }
967
+ declare const S3ConfigSchema: z.ZodObject<{
968
+ bucket: z.ZodString;
969
+ region: z.ZodOptional<z.ZodString>;
970
+ endpoint: z.ZodOptional<z.ZodString>;
971
+ accessKeyId: z.ZodOptional<z.ZodString>;
972
+ secretAccessKey: z.ZodOptional<z.ZodString>;
973
+ sessionToken: z.ZodOptional<z.ZodString>;
974
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
975
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
976
+ presignedUrlProvider: z.ZodOptional<z.ZodCustom<_struktoai_mirage_core.S3BrowserPresignedUrlProvider, _struktoai_mirage_core.S3BrowserPresignedUrlProvider>>;
977
+ httpAgentProvider: z.ZodOptional<z.ZodCustom<_struktoai_mirage_core.S3HttpAgentProvider, _struktoai_mirage_core.S3HttpAgentProvider>>;
978
+ defaultContentType: z.ZodOptional<z.ZodString>;
979
+ keyPrefix: z.ZodOptional<z.ZodString>;
980
+ profile: z.ZodOptional<z.ZodString>;
981
+ proxy: z.ZodOptional<z.ZodString>;
982
+ }, z.core.$strip>;
983
+ type S3ConfigRedacted = RedactedConfig<ConfigOf<typeof S3ConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'presignedUrlProvider' | 'httpAgentProvider' | 'proxy'>;
698
984
  declare function redactConfig(config: S3Config): S3ConfigRedacted;
985
+ /**
986
+ * Translate Python-style snake_case keys (as used in YAML configs and the
987
+ * Python `S3Config`) to the TS-idiomatic camelCase fields. Already-camelCase
988
+ * keys pass through unchanged so user code that constructs `S3Config`
989
+ * directly keeps working.
990
+ *
991
+ * Python ↔ TS mapping:
992
+ * aws_access_key_id ↔ accessKeyId
993
+ * aws_secret_access_key ↔ secretAccessKey
994
+ * aws_session_token ↔ sessionToken
995
+ * aws_profile ↔ profile
996
+ * endpoint_url ↔ endpoint
997
+ * path_style ↔ forcePathStyle
998
+ * timeout (sec, int) ↔ timeoutMs (ms, number — converted ×1000)
999
+ * proxy ↔ proxy
1000
+ */
1001
+ declare function normalizeS3Config(input: Record<string, unknown>): S3Config;
699
1002
 
700
1003
  interface S3ResourceState {
701
1004
  type: string;
@@ -705,14 +1008,15 @@ declare class S3Resource extends BaseResource implements Resource {
705
1008
  readonly kind: string;
706
1009
  readonly cachesReads: boolean;
707
1010
  readonly supportsSnapshot: boolean;
1011
+ readonly sizesAlwaysKnown: boolean;
708
1012
  readonly indexTtl: number;
709
1013
  readonly prompt: string;
710
1014
  readonly config: S3Config;
711
1015
  readonly accessor: S3Accessor;
712
1016
  readonly opsMap: Record<string, unknown>;
713
1017
  constructor(config: S3Config);
1018
+ storageId(): string;
714
1019
  open(): Promise<void>;
715
- close(): Promise<void>;
716
1020
  commands(): readonly RegisteredCommand[];
717
1021
  ops(): readonly RegisteredOp[];
718
1022
  streamPath(p: PathSpec): AsyncIterable<Uint8Array>;
@@ -736,16 +1040,15 @@ declare class S3Resource extends BaseResource implements Resource {
736
1040
  loadState(_state: S3ResourceState): Promise<void>;
737
1041
  }
738
1042
 
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
- }
1043
+ declare const GridFSConfigSchema: z.ZodObject<{
1044
+ uri: z.ZodString;
1045
+ database: z.ZodString;
1046
+ bucket: z.ZodOptional<z.ZodString>;
1047
+ keyPrefix: z.ZodOptional<z.ZodString>;
1048
+ chunkSizeBytes: z.ZodOptional<z.ZodNumber>;
1049
+ }, z.core.$strip>;
1050
+ type GridFSConfig = ConfigOf<typeof GridFSConfigSchema>;
1051
+ type GridFSConfigRedacted = RedactedConfig<GridFSConfig, 'uri'>;
749
1052
  /**
750
1053
  * Translate Python-style snake_case keys (as used in YAML configs and the
751
1054
  * Python `GridFSConfig`) to the TS-idiomatic camelCase fields, and
@@ -771,6 +1074,7 @@ declare class GridFSResource extends BaseResource implements Resource {
771
1074
  readonly kind: string;
772
1075
  readonly cachesReads: boolean;
773
1076
  readonly supportsSnapshot: boolean;
1077
+ readonly sizesAlwaysKnown: boolean;
774
1078
  readonly indexTtl: number;
775
1079
  readonly prompt: string;
776
1080
  readonly config: GridFSConfig;
@@ -809,6 +1113,7 @@ interface DatabricksVolumeResourceState {
809
1113
  declare class DatabricksVolumeResource extends BaseResource implements Resource {
810
1114
  readonly kind: string;
811
1115
  readonly cachesReads: boolean;
1116
+ readonly sizesAlwaysKnown: boolean;
812
1117
  readonly indexTtl: number;
813
1118
  readonly prompt: string;
814
1119
  readonly config: DatabricksVolumeConfig;
@@ -817,7 +1122,6 @@ declare class DatabricksVolumeResource extends BaseResource implements Resource
817
1122
  private constructor();
818
1123
  static create(config: DatabricksVolumeConfig): Promise<DatabricksVolumeResource>;
819
1124
  open(): Promise<void>;
820
- close(): Promise<void>;
821
1125
  commands(): readonly RegisteredCommand[];
822
1126
  ops(): readonly RegisteredOp[];
823
1127
  streamPath(p: PathSpec): AsyncIterable<Uint8Array>;
@@ -849,24 +1153,31 @@ declare function loadDatabricksProfile(profile: string): Promise<DatabricksProfi
849
1153
  declare const GCS_ENDPOINT = "https://storage.googleapis.com";
850
1154
  interface GCSConfig {
851
1155
  bucket: string;
852
- accessKeyId: string;
853
- secretAccessKey: string;
1156
+ accessKeyId?: string;
1157
+ secretAccessKey?: string;
1158
+ sessionToken?: string;
1159
+ profile?: string;
854
1160
  endpoint?: string;
855
1161
  region?: string;
856
1162
  timeoutMs?: number;
857
1163
  forcePathStyle?: boolean;
858
1164
  keyPrefix?: string;
859
- }
860
- interface GCSConfigRedacted {
861
- bucket: string;
862
- accessKeyId: string;
863
- secretAccessKey: string;
864
- endpoint: string;
865
- region: string;
866
- timeoutMs?: number;
867
- forcePathStyle?: boolean;
868
- keyPrefix?: string;
869
- }
1165
+ proxy?: string;
1166
+ }
1167
+ declare const GCSConfigSchema: z.ZodObject<{
1168
+ bucket: z.ZodString;
1169
+ accessKeyId: z.ZodOptional<z.ZodString>;
1170
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1171
+ sessionToken: z.ZodOptional<z.ZodString>;
1172
+ profile: z.ZodOptional<z.ZodString>;
1173
+ endpoint: z.ZodString;
1174
+ region: z.ZodString;
1175
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1176
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
1177
+ keyPrefix: z.ZodOptional<z.ZodString>;
1178
+ proxy: z.ZodOptional<z.ZodString>;
1179
+ }, z.core.$strip>;
1180
+ type GCSConfigRedacted = RedactedConfig<ConfigOf<typeof GCSConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
870
1181
  declare function redactGcsConfig(config: GCSConfig): GCSConfigRedacted;
871
1182
 
872
1183
  interface GCSResourceState {
@@ -886,28 +1197,35 @@ declare class GCSResource extends S3Resource {
886
1197
  loadState(_state: GCSResourceState): Promise<void>;
887
1198
  }
888
1199
 
889
- declare const GCS_PROMPT = "{prefix}\n Remote Google Cloud Storage bucket.\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1200
+ declare const GCS_PROMPT = "{prefix}\n Remote Google Cloud Storage bucket.\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
890
1201
 
891
1202
  interface OCIConfig {
892
1203
  bucket: string;
893
1204
  namespace: string;
894
1205
  region: string;
895
- accessKeyId: string;
896
- secretAccessKey: string;
1206
+ accessKeyId?: string;
1207
+ secretAccessKey?: string;
1208
+ sessionToken?: string;
1209
+ profile?: string;
897
1210
  endpoint?: string;
898
1211
  keyPrefix?: string;
899
1212
  timeoutMs?: number;
900
- }
901
- interface OCIConfigRedacted {
902
- bucket: string;
903
- namespace: string;
904
- region: string;
905
- accessKeyId: string;
906
- secretAccessKey: string;
907
- endpoint: string;
908
- keyPrefix?: string;
909
- timeoutMs?: number;
910
- }
1213
+ proxy?: string;
1214
+ }
1215
+ declare const OCIConfigSchema: z.ZodObject<{
1216
+ bucket: z.ZodString;
1217
+ namespace: z.ZodString;
1218
+ region: z.ZodString;
1219
+ accessKeyId: z.ZodOptional<z.ZodString>;
1220
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1221
+ sessionToken: z.ZodOptional<z.ZodString>;
1222
+ profile: z.ZodOptional<z.ZodString>;
1223
+ endpoint: z.ZodString;
1224
+ keyPrefix: z.ZodOptional<z.ZodString>;
1225
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1226
+ proxy: z.ZodOptional<z.ZodString>;
1227
+ }, z.core.$strip>;
1228
+ type OCIConfigRedacted = RedactedConfig<ConfigOf<typeof OCIConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
911
1229
  declare function redactOciConfig(config: OCIConfig): OCIConfigRedacted;
912
1230
 
913
1231
  interface OCIResourceState {
@@ -931,8 +1249,9 @@ declare const OCI_PROMPT = "{prefix}\n Remote Oracle Cloud Object Storage.\n I
931
1249
 
932
1250
  interface R2Config {
933
1251
  bucket: string;
934
- accessKeyId: string;
935
- secretAccessKey: string;
1252
+ accessKeyId?: string;
1253
+ secretAccessKey?: string;
1254
+ sessionToken?: string;
936
1255
  accountId?: string;
937
1256
  endpoint?: string;
938
1257
  region?: string;
@@ -940,19 +1259,23 @@ interface R2Config {
940
1259
  forcePathStyle?: boolean;
941
1260
  keyPrefix?: string;
942
1261
  timeoutMs?: number;
943
- }
944
- interface R2ConfigRedacted {
945
- bucket: string;
946
- accessKeyId: string;
947
- secretAccessKey: string;
948
- accountId?: string;
949
- endpoint: string;
950
- region: string;
951
- profile?: string;
952
- forcePathStyle?: boolean;
953
- keyPrefix?: string;
954
- timeoutMs?: number;
955
- }
1262
+ proxy?: string;
1263
+ }
1264
+ declare const R2ConfigSchema: z.ZodObject<{
1265
+ bucket: z.ZodString;
1266
+ accessKeyId: z.ZodOptional<z.ZodString>;
1267
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1268
+ sessionToken: z.ZodOptional<z.ZodString>;
1269
+ accountId: z.ZodOptional<z.ZodString>;
1270
+ endpoint: z.ZodString;
1271
+ region: z.ZodString;
1272
+ profile: z.ZodOptional<z.ZodString>;
1273
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
1274
+ keyPrefix: z.ZodOptional<z.ZodString>;
1275
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1276
+ proxy: z.ZodOptional<z.ZodString>;
1277
+ }, z.core.$strip>;
1278
+ type R2ConfigRedacted = RedactedConfig<ConfigOf<typeof R2ConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
956
1279
  declare function redactR2Config(config: R2Config): R2ConfigRedacted;
957
1280
 
958
1281
  interface R2ResourceState {
@@ -972,30 +1295,35 @@ declare class R2Resource extends S3Resource {
972
1295
  loadState(_state: R2ResourceState): Promise<void>;
973
1296
  }
974
1297
 
975
- declare const R2_PROMPT = "{prefix}\n Remote Cloudflare R2 bucket.\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1298
+ declare const R2_PROMPT = "{prefix}\n Remote Cloudflare R2 bucket.\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
976
1299
 
977
1300
  interface SupabaseConfig {
978
1301
  bucket: string;
979
1302
  region: string;
980
- accessKeyId: string;
981
- secretAccessKey: string;
1303
+ accessKeyId?: string;
1304
+ secretAccessKey?: string;
982
1305
  projectRef?: string;
983
1306
  endpoint?: string;
984
1307
  sessionToken?: string;
1308
+ profile?: string;
985
1309
  keyPrefix?: string;
986
1310
  timeoutMs?: number;
987
- }
988
- interface SupabaseConfigRedacted {
989
- bucket: string;
990
- region: string;
991
- projectRef?: string;
992
- endpoint: string;
993
- accessKeyId: string;
994
- secretAccessKey: string;
995
- sessionToken?: string;
996
- keyPrefix?: string;
997
- timeoutMs?: number;
998
- }
1311
+ proxy?: string;
1312
+ }
1313
+ declare const SupabaseConfigSchema: z.ZodObject<{
1314
+ bucket: z.ZodString;
1315
+ region: z.ZodString;
1316
+ projectRef: z.ZodOptional<z.ZodString>;
1317
+ endpoint: z.ZodString;
1318
+ accessKeyId: z.ZodOptional<z.ZodString>;
1319
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1320
+ sessionToken: z.ZodOptional<z.ZodString>;
1321
+ profile: z.ZodOptional<z.ZodString>;
1322
+ keyPrefix: z.ZodOptional<z.ZodString>;
1323
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1324
+ proxy: z.ZodOptional<z.ZodString>;
1325
+ }, z.core.$strip>;
1326
+ type SupabaseConfigRedacted = RedactedConfig<ConfigOf<typeof SupabaseConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
999
1327
  declare function resolvedSupabaseEndpoint(config: SupabaseConfig): string;
1000
1328
  declare function redactSupabaseConfig(config: SupabaseConfig): SupabaseConfigRedacted;
1001
1329
 
@@ -1027,13 +1355,14 @@ interface HfBucketsConfig {
1027
1355
  timeoutMs?: number;
1028
1356
  keyPrefix?: string;
1029
1357
  }
1030
- interface HfBucketsConfigRedacted {
1031
- bucket: string;
1032
- token?: string;
1033
- endpoint: string;
1034
- timeoutMs?: number;
1035
- keyPrefix?: string;
1036
- }
1358
+ declare const HfBucketsConfigSchema: z.ZodObject<{
1359
+ bucket: z.ZodString;
1360
+ token: z.ZodOptional<z.ZodString>;
1361
+ endpoint: z.ZodString;
1362
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1363
+ keyPrefix: z.ZodOptional<z.ZodString>;
1364
+ }, z.core.$strip>;
1365
+ type HfBucketsConfigRedacted = RedactedConfig<ConfigOf<typeof HfBucketsConfigSchema>, 'token'>;
1037
1366
  declare function redactHfBucketsConfig(config: HfBucketsConfig): HfBucketsConfigRedacted;
1038
1367
  declare function normalizeHfBucketsConfig(input: Record<string, unknown>): HfBucketsConfig;
1039
1368
  interface HfRepoConfig {
@@ -1044,14 +1373,15 @@ interface HfRepoConfig {
1044
1373
  keyPrefix?: string;
1045
1374
  revision?: string;
1046
1375
  }
1047
- interface HfRepoConfigRedacted {
1048
- repoId: string;
1049
- token?: string;
1050
- endpoint: string;
1051
- timeoutMs?: number;
1052
- keyPrefix?: string;
1053
- revision?: string;
1054
- }
1376
+ declare const HfRepoConfigSchema: z.ZodObject<{
1377
+ repoId: z.ZodString;
1378
+ token: z.ZodOptional<z.ZodString>;
1379
+ endpoint: z.ZodString;
1380
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1381
+ keyPrefix: z.ZodOptional<z.ZodString>;
1382
+ revision: z.ZodOptional<z.ZodString>;
1383
+ }, z.core.$strip>;
1384
+ type HfRepoConfigRedacted = RedactedConfig<ConfigOf<typeof HfRepoConfigSchema>, 'token'>;
1055
1385
  declare function redactHfRepoConfig(config: HfRepoConfig): HfRepoConfigRedacted;
1056
1386
  declare function normalizeHfRepoConfig(input: Record<string, unknown>): HfRepoConfig;
1057
1387
 
@@ -1094,10 +1424,10 @@ declare abstract class HfResource extends BaseResource implements Resource {
1094
1424
  abstract readonly prompt: string;
1095
1425
  abstract readonly accessor: HfAccessor;
1096
1426
  readonly cachesReads: boolean;
1427
+ readonly sizesAlwaysKnown: boolean;
1097
1428
  readonly supportsSnapshot: boolean;
1098
1429
  readonly opsMap: Record<string, unknown>;
1099
1430
  open(): Promise<void>;
1100
- close(): Promise<void>;
1101
1431
  commands(): readonly RegisteredCommand[];
1102
1432
  ops(): readonly RegisteredOp[];
1103
1433
  streamPath(p: PathSpec): AsyncIterable<Uint8Array>;
@@ -1183,27 +1513,56 @@ declare const HF_COMMANDS: readonly RegisteredCommand[];
1183
1513
 
1184
1514
  declare const HF_OPS: readonly RegisteredOp[];
1185
1515
 
1186
- interface MinIOConfig {
1516
+ /**
1517
+ * Shared shape for the S3-compatible providers.
1518
+ *
1519
+ * Every alias is the same credentials plus one endpoint rule, so the
1520
+ * fields, the zod schema that drives redaction, the snake_case mapping and
1521
+ * the conversion to S3Config live here once. A provider declares only its
1522
+ * endpoint rule and whatever it genuinely adds. Mirrors Python's
1523
+ * `mirage/resource/s3_alias.py`.
1524
+ *
1525
+ * Only `bucket` and whatever the endpoint genuinely needs are required.
1526
+ * Credentials are optional because `S3Config` leaves them optional too, so
1527
+ * omitting them falls through to the usual AWS resolution order: `profile`,
1528
+ * then the `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` environment
1529
+ * variables, then the shared credentials file, then an instance role.
1530
+ * `sessionToken` and `profile` live here rather than on the one provider
1531
+ * that first needed them, so every alias accepts them.
1532
+ */
1533
+ interface S3AliasConfig {
1187
1534
  bucket: string;
1188
- endpoint: string;
1189
- accessKeyId: string;
1190
- secretAccessKey: string;
1535
+ accessKeyId?: string;
1536
+ secretAccessKey?: string;
1537
+ sessionToken?: string;
1538
+ profile?: string;
1191
1539
  region?: string;
1540
+ endpoint?: string;
1192
1541
  forcePathStyle?: boolean;
1193
1542
  keyPrefix?: string;
1194
1543
  timeoutMs?: number;
1195
- }
1196
- interface MinIOConfigRedacted {
1197
- bucket: string;
1544
+ proxy?: string;
1545
+ }
1546
+ declare const ALIAS_SCHEMA: z.ZodObject<{
1547
+ bucket: z.ZodString;
1548
+ accessKeyId: z.ZodOptional<z.ZodString>;
1549
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1550
+ sessionToken: z.ZodOptional<z.ZodString>;
1551
+ profile: z.ZodOptional<z.ZodString>;
1552
+ region: z.ZodString;
1553
+ endpoint: z.ZodString;
1554
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
1555
+ keyPrefix: z.ZodOptional<z.ZodString>;
1556
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1557
+ proxy: z.ZodOptional<z.ZodString>;
1558
+ }, z.core.$strip>;
1559
+ type S3AliasConfigRedacted = RedactedConfig<ConfigOf<typeof ALIAS_SCHEMA>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
1560
+
1561
+ interface MinIOConfig extends S3AliasConfig {
1198
1562
  endpoint: string;
1199
- accessKeyId: string;
1200
- secretAccessKey: string;
1201
- region: string;
1202
- forcePathStyle: boolean;
1203
- keyPrefix?: string;
1204
- timeoutMs?: number;
1205
1563
  }
1206
- declare function redactMinIOConfig(config: MinIOConfig): MinIOConfigRedacted;
1564
+ type MinIOConfigRedacted = S3AliasConfigRedacted;
1565
+ declare const redactMinIOConfig: (config: MinIOConfig) => S3AliasConfigRedacted;
1207
1566
 
1208
1567
  interface MinIOResourceState {
1209
1568
  type: string;
@@ -1222,29 +1581,13 @@ declare class MinIOResource extends S3Resource {
1222
1581
  loadState(_state: MinIOResourceState): Promise<void>;
1223
1582
  }
1224
1583
 
1225
- declare const MINIO_PROMPT = "{prefix}\n Remote MinIO bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1584
+ declare const MINIO_PROMPT = "{prefix}\n Remote MinIO bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1226
1585
 
1227
- interface SeaweedFSConfig {
1228
- bucket: string;
1586
+ interface SeaweedFSConfig extends S3AliasConfig {
1229
1587
  endpoint: string;
1230
- accessKeyId: string;
1231
- secretAccessKey: string;
1232
- region?: string;
1233
- forcePathStyle?: boolean;
1234
- keyPrefix?: string;
1235
- timeoutMs?: number;
1236
1588
  }
1237
- interface SeaweedFSConfigRedacted {
1238
- bucket: string;
1239
- endpoint: string;
1240
- accessKeyId: string;
1241
- secretAccessKey: string;
1242
- region: string;
1243
- forcePathStyle: boolean;
1244
- keyPrefix?: string;
1245
- timeoutMs?: number;
1246
- }
1247
- declare function redactSeaweedFSConfig(config: SeaweedFSConfig): SeaweedFSConfigRedacted;
1589
+ type SeaweedFSConfigRedacted = S3AliasConfigRedacted;
1590
+ declare const redactSeaweedFSConfig: (config: SeaweedFSConfig) => S3AliasConfigRedacted;
1248
1591
 
1249
1592
  interface SeaweedFSResourceState {
1250
1593
  type: string;
@@ -1263,29 +1606,13 @@ declare class SeaweedFSResource extends S3Resource {
1263
1606
  loadState(_state: SeaweedFSResourceState): Promise<void>;
1264
1607
  }
1265
1608
 
1266
- declare const SEAWEEDFS_PROMPT = "{prefix}\n Remote SeaweedFS bucket (S3-compatible gateway).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.feather returns a formatted table.";
1609
+ declare const SEAWEEDFS_PROMPT = "{prefix}\n Remote SeaweedFS bucket (S3-compatible gateway).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1267
1610
 
1268
- interface CephConfig {
1269
- bucket: string;
1270
- endpoint: string;
1271
- accessKeyId: string;
1272
- secretAccessKey: string;
1273
- region?: string;
1274
- forcePathStyle?: boolean;
1275
- keyPrefix?: string;
1276
- timeoutMs?: number;
1277
- }
1278
- interface CephConfigRedacted {
1279
- bucket: string;
1611
+ interface CephConfig extends S3AliasConfig {
1280
1612
  endpoint: string;
1281
- accessKeyId: string;
1282
- secretAccessKey: string;
1283
- region: string;
1284
- forcePathStyle: boolean;
1285
- keyPrefix?: string;
1286
- timeoutMs?: number;
1287
1613
  }
1288
- declare function redactCephConfig(config: CephConfig): CephConfigRedacted;
1614
+ type CephConfigRedacted = S3AliasConfigRedacted;
1615
+ declare const redactCephConfig: (config: CephConfig) => S3AliasConfigRedacted;
1289
1616
 
1290
1617
  interface CephResourceState {
1291
1618
  type: string;
@@ -1304,28 +1631,35 @@ declare class CephResource extends S3Resource {
1304
1631
  loadState(_state: CephResourceState): Promise<void>;
1305
1632
  }
1306
1633
 
1307
- declare const CEPH_PROMPT = "{prefix}\n Remote Ceph Rados Gateway bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1634
+ declare const CEPH_PROMPT = "{prefix}\n Remote Ceph Rados Gateway bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1308
1635
 
1309
1636
  interface WasabiConfig {
1310
1637
  bucket: string;
1311
- accessKeyId: string;
1312
- secretAccessKey: string;
1638
+ accessKeyId?: string;
1639
+ secretAccessKey?: string;
1640
+ sessionToken?: string;
1641
+ profile?: string;
1313
1642
  region?: string;
1314
1643
  endpoint?: string;
1315
1644
  forcePathStyle?: boolean;
1316
1645
  keyPrefix?: string;
1317
1646
  timeoutMs?: number;
1318
- }
1319
- interface WasabiConfigRedacted {
1320
- bucket: string;
1321
- accessKeyId: string;
1322
- secretAccessKey: string;
1323
- region: string;
1324
- endpoint: string;
1325
- forcePathStyle?: boolean;
1326
- keyPrefix?: string;
1327
- timeoutMs?: number;
1328
- }
1647
+ proxy?: string;
1648
+ }
1649
+ declare const WasabiConfigSchema: z.ZodObject<{
1650
+ bucket: z.ZodString;
1651
+ accessKeyId: z.ZodOptional<z.ZodString>;
1652
+ secretAccessKey: z.ZodOptional<z.ZodString>;
1653
+ sessionToken: z.ZodOptional<z.ZodString>;
1654
+ profile: z.ZodOptional<z.ZodString>;
1655
+ region: z.ZodString;
1656
+ endpoint: z.ZodString;
1657
+ forcePathStyle: z.ZodOptional<z.ZodBoolean>;
1658
+ keyPrefix: z.ZodOptional<z.ZodString>;
1659
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
1660
+ proxy: z.ZodOptional<z.ZodString>;
1661
+ }, z.core.$strip>;
1662
+ type WasabiConfigRedacted = RedactedConfig<ConfigOf<typeof WasabiConfigSchema>, 'accessKeyId' | 'secretAccessKey' | 'sessionToken' | 'proxy'>;
1329
1663
  declare function resolvedWasabiEndpoint(config: WasabiConfig): string;
1330
1664
  declare function redactWasabiConfig(config: WasabiConfig): WasabiConfigRedacted;
1331
1665
 
@@ -1346,30 +1680,14 @@ declare class WasabiResource extends S3Resource {
1346
1680
  loadState(_state: WasabiResourceState): Promise<void>;
1347
1681
  }
1348
1682
 
1349
- declare const WASABI_PROMPT = "{prefix}\n Remote Wasabi bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1683
+ declare const WASABI_PROMPT = "{prefix}\n Remote Wasabi bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1350
1684
 
1351
- interface BackblazeConfig {
1352
- bucket: string;
1353
- accessKeyId: string;
1354
- secretAccessKey: string;
1685
+ interface BackblazeConfig extends S3AliasConfig {
1355
1686
  region: string;
1356
- endpoint?: string;
1357
- forcePathStyle?: boolean;
1358
- keyPrefix?: string;
1359
- timeoutMs?: number;
1360
- }
1361
- interface BackblazeConfigRedacted {
1362
- bucket: string;
1363
- accessKeyId: string;
1364
- secretAccessKey: string;
1365
- region: string;
1366
- endpoint: string;
1367
- forcePathStyle?: boolean;
1368
- keyPrefix?: string;
1369
- timeoutMs?: number;
1370
1687
  }
1371
- declare function resolvedBackblazeEndpoint(config: BackblazeConfig): string;
1372
- declare function redactBackblazeConfig(config: BackblazeConfig): BackblazeConfigRedacted;
1688
+ type BackblazeConfigRedacted = S3AliasConfigRedacted;
1689
+ declare const resolvedBackblazeEndpoint: (config: BackblazeConfig) => string;
1690
+ declare const redactBackblazeConfig: (config: BackblazeConfig) => S3AliasConfigRedacted;
1373
1691
 
1374
1692
  interface BackblazeResourceState {
1375
1693
  type: string;
@@ -1388,30 +1706,14 @@ declare class BackblazeResource extends S3Resource {
1388
1706
  loadState(_state: BackblazeResourceState): Promise<void>;
1389
1707
  }
1390
1708
 
1391
- declare const BACKBLAZE_PROMPT = "{prefix}\n Remote Backblaze B2 bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1709
+ declare const BACKBLAZE_PROMPT = "{prefix}\n Remote Backblaze B2 bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1392
1710
 
1393
- interface DigitalOceanConfig {
1394
- bucket: string;
1395
- accessKeyId: string;
1396
- secretAccessKey: string;
1711
+ interface DigitalOceanConfig extends S3AliasConfig {
1397
1712
  region: string;
1398
- endpoint?: string;
1399
- forcePathStyle?: boolean;
1400
- keyPrefix?: string;
1401
- timeoutMs?: number;
1402
1713
  }
1403
- interface DigitalOceanConfigRedacted {
1404
- bucket: string;
1405
- accessKeyId: string;
1406
- secretAccessKey: string;
1407
- region: string;
1408
- endpoint: string;
1409
- forcePathStyle?: boolean;
1410
- keyPrefix?: string;
1411
- timeoutMs?: number;
1412
- }
1413
- declare function resolvedDigitalOceanEndpoint(config: DigitalOceanConfig): string;
1414
- declare function redactDigitalOceanConfig(config: DigitalOceanConfig): DigitalOceanConfigRedacted;
1714
+ type DigitalOceanConfigRedacted = S3AliasConfigRedacted;
1715
+ declare const resolvedDigitalOceanEndpoint: (config: DigitalOceanConfig) => string;
1716
+ declare const redactDigitalOceanConfig: (config: DigitalOceanConfig) => S3AliasConfigRedacted;
1415
1717
 
1416
1718
  interface DigitalOceanResourceState {
1417
1719
  type: string;
@@ -1430,30 +1732,14 @@ declare class DigitalOceanResource extends S3Resource {
1430
1732
  loadState(_state: DigitalOceanResourceState): Promise<void>;
1431
1733
  }
1432
1734
 
1433
- declare const DIGITALOCEAN_PROMPT = "{prefix}\n Remote DigitalOcean Spaces bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1735
+ declare const DIGITALOCEAN_PROMPT = "{prefix}\n Remote DigitalOcean Spaces bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1434
1736
 
1435
- interface TencentConfig {
1436
- bucket: string;
1437
- accessKeyId: string;
1438
- secretAccessKey: string;
1439
- region: string;
1440
- endpoint?: string;
1441
- forcePathStyle?: boolean;
1442
- keyPrefix?: string;
1443
- timeoutMs?: number;
1444
- }
1445
- interface TencentConfigRedacted {
1446
- bucket: string;
1447
- accessKeyId: string;
1448
- secretAccessKey: string;
1737
+ interface TencentConfig extends S3AliasConfig {
1449
1738
  region: string;
1450
- endpoint: string;
1451
- forcePathStyle?: boolean;
1452
- keyPrefix?: string;
1453
- timeoutMs?: number;
1454
1739
  }
1455
- declare function resolvedTencentEndpoint(config: TencentConfig): string;
1456
- declare function redactTencentConfig(config: TencentConfig): TencentConfigRedacted;
1740
+ type TencentConfigRedacted = S3AliasConfigRedacted;
1741
+ declare const resolvedTencentEndpoint: (config: TencentConfig) => string;
1742
+ declare const redactTencentConfig: (config: TencentConfig) => S3AliasConfigRedacted;
1457
1743
 
1458
1744
  interface TencentResourceState {
1459
1745
  type: string;
@@ -1472,30 +1758,14 @@ declare class TencentResource extends S3Resource {
1472
1758
  loadState(_state: TencentResourceState): Promise<void>;
1473
1759
  }
1474
1760
 
1475
- declare const TENCENT_PROMPT = "{prefix}\n Remote Tencent Cloud COS bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1761
+ declare const TENCENT_PROMPT = "{prefix}\n Remote Tencent Cloud COS bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1476
1762
 
1477
- interface AliyunConfig {
1478
- bucket: string;
1479
- accessKeyId: string;
1480
- secretAccessKey: string;
1763
+ interface AliyunConfig extends S3AliasConfig {
1481
1764
  region: string;
1482
- endpoint?: string;
1483
- forcePathStyle?: boolean;
1484
- keyPrefix?: string;
1485
- timeoutMs?: number;
1486
1765
  }
1487
- interface AliyunConfigRedacted {
1488
- bucket: string;
1489
- accessKeyId: string;
1490
- secretAccessKey: string;
1491
- region: string;
1492
- endpoint: string;
1493
- forcePathStyle?: boolean;
1494
- keyPrefix?: string;
1495
- timeoutMs?: number;
1496
- }
1497
- declare function resolvedAliyunEndpoint(config: AliyunConfig): string;
1498
- declare function redactAliyunConfig(config: AliyunConfig): AliyunConfigRedacted;
1766
+ type AliyunConfigRedacted = S3AliasConfigRedacted;
1767
+ declare const resolvedAliyunEndpoint: (config: AliyunConfig) => string;
1768
+ declare const redactAliyunConfig: (config: AliyunConfig) => S3AliasConfigRedacted;
1499
1769
 
1500
1770
  interface AliyunResourceState {
1501
1771
  type: string;
@@ -1514,30 +1784,14 @@ declare class AliyunResource extends S3Resource {
1514
1784
  loadState(_state: AliyunResourceState): Promise<void>;
1515
1785
  }
1516
1786
 
1517
- declare const ALIYUN_PROMPT = "{prefix}\n Remote Alibaba Cloud OSS bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1787
+ declare const ALIYUN_PROMPT = "{prefix}\n Remote Alibaba Cloud OSS bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1518
1788
 
1519
- interface ScalewayConfig {
1520
- bucket: string;
1521
- accessKeyId: string;
1522
- secretAccessKey: string;
1789
+ interface ScalewayConfig extends S3AliasConfig {
1523
1790
  region: string;
1524
- endpoint?: string;
1525
- forcePathStyle?: boolean;
1526
- keyPrefix?: string;
1527
- timeoutMs?: number;
1528
1791
  }
1529
- interface ScalewayConfigRedacted {
1530
- bucket: string;
1531
- accessKeyId: string;
1532
- secretAccessKey: string;
1533
- region: string;
1534
- endpoint: string;
1535
- forcePathStyle?: boolean;
1536
- keyPrefix?: string;
1537
- timeoutMs?: number;
1538
- }
1539
- declare function resolvedScalewayEndpoint(config: ScalewayConfig): string;
1540
- declare function redactScalewayConfig(config: ScalewayConfig): ScalewayConfigRedacted;
1792
+ type ScalewayConfigRedacted = S3AliasConfigRedacted;
1793
+ declare const resolvedScalewayEndpoint: (config: ScalewayConfig) => string;
1794
+ declare const redactScalewayConfig: (config: ScalewayConfig) => S3AliasConfigRedacted;
1541
1795
 
1542
1796
  interface ScalewayResourceState {
1543
1797
  type: string;
@@ -1556,30 +1810,14 @@ declare class ScalewayResource extends S3Resource {
1556
1810
  loadState(_state: ScalewayResourceState): Promise<void>;
1557
1811
  }
1558
1812
 
1559
- declare const SCALEWAY_PROMPT = "{prefix}\n Remote Scaleway Object Storage bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1813
+ declare const SCALEWAY_PROMPT = "{prefix}\n Remote Scaleway Object Storage bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1560
1814
 
1561
- interface QingStorConfig {
1562
- bucket: string;
1563
- accessKeyId: string;
1564
- secretAccessKey: string;
1815
+ interface QingStorConfig extends S3AliasConfig {
1565
1816
  region: string;
1566
- endpoint?: string;
1567
- forcePathStyle?: boolean;
1568
- keyPrefix?: string;
1569
- timeoutMs?: number;
1570
- }
1571
- interface QingStorConfigRedacted {
1572
- bucket: string;
1573
- accessKeyId: string;
1574
- secretAccessKey: string;
1575
- region: string;
1576
- endpoint: string;
1577
- forcePathStyle?: boolean;
1578
- keyPrefix?: string;
1579
- timeoutMs?: number;
1580
1817
  }
1581
- declare function resolvedQingStorEndpoint(config: QingStorConfig): string;
1582
- declare function redactQingStorConfig(config: QingStorConfig): QingStorConfigRedacted;
1818
+ type QingStorConfigRedacted = S3AliasConfigRedacted;
1819
+ declare const resolvedQingStorEndpoint: (config: QingStorConfig) => string;
1820
+ declare const redactQingStorConfig: (config: QingStorConfig) => S3AliasConfigRedacted;
1583
1821
 
1584
1822
  interface QingStorResourceState {
1585
1823
  type: string;
@@ -1598,7 +1836,7 @@ declare class QingStorResource extends S3Resource {
1598
1836
  loadState(_state: QingStorResourceState): Promise<void>;
1599
1837
  }
1600
1838
 
1601
- declare const QINGSTOR_PROMPT = "{prefix}\n Remote QingStor bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.\n cat on .parquet/.orc/.feather returns a formatted table.";
1839
+ declare const QINGSTOR_PROMPT = "{prefix}\n Remote QingStor bucket (S3-compatible).\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.";
1602
1840
 
1603
1841
  interface PgPoolLike {
1604
1842
  query: (sql: string, params?: readonly unknown[]) => Promise<{
@@ -1741,6 +1979,7 @@ declare class LanceDBStore implements LanceDriver {
1741
1979
  private table;
1742
1980
  listTables(): Promise<string[]>;
1743
1981
  distinct(table: string, column: string, filters: Record<string, string>, limit: number): Promise<string[]>;
1982
+ tableColumns(table: string): Promise<string[]>;
1744
1983
  rowsMatching(table: string, filters: Record<string, string>, columns: string[], limit: number): Promise<LanceRow[]>;
1745
1984
  rowRecord(table: string, idColumn: string, rowId: string): Promise<LanceRow | null>;
1746
1985
  search(table: string, query: string, limit: number): Promise<LanceRow[]>;
@@ -1753,6 +1992,7 @@ interface LanceDBResourceOptions {
1753
1992
  declare class LanceDBResource extends BaseResource implements Resource {
1754
1993
  readonly kind: string;
1755
1994
  readonly cachesReads: boolean;
1995
+ readonly sizesAlwaysKnown: boolean;
1756
1996
  readonly indexTtl: number;
1757
1997
  readonly prompt: string;
1758
1998
  readonly config: LanceDBConfigResolved;
@@ -1768,19 +2008,6 @@ declare class LanceDBResource extends BaseResource implements Resource {
1768
2008
  stat(p: PathSpec): Promise<FileStat>;
1769
2009
  }
1770
2010
 
1771
- interface SlackConfig {
1772
- token: string;
1773
- searchToken?: string;
1774
- baseUrl?: string;
1775
- }
1776
- interface SlackConfigRedacted {
1777
- token: '<REDACTED>';
1778
- searchToken?: '<REDACTED>';
1779
- baseUrl?: string;
1780
- }
1781
- declare function redactSlackConfig(config: SlackConfig): SlackConfigRedacted;
1782
- declare function normalizeSlackConfig(input: Record<string, unknown>): SlackConfig;
1783
-
1784
2011
  interface SlackResourceState {
1785
2012
  type: string;
1786
2013
  config: SlackConfigRedacted;
@@ -1788,6 +2015,7 @@ interface SlackResourceState {
1788
2015
  declare class SlackResource extends BaseResource implements Resource {
1789
2016
  readonly kind: string;
1790
2017
  readonly cachesReads: boolean;
2018
+ readonly sizesAlwaysKnown: boolean;
1791
2019
  readonly indexTtl: number;
1792
2020
  readonly prompt: string;
1793
2021
  readonly writePrompt: string;
@@ -1795,7 +2023,6 @@ declare class SlackResource extends BaseResource implements Resource {
1795
2023
  readonly accessor: SlackAccessor;
1796
2024
  constructor(config: SlackConfig);
1797
2025
  open(): Promise<void>;
1798
- close(): Promise<void>;
1799
2026
  commands(): readonly RegisteredCommand[];
1800
2027
  ops(): readonly RegisteredOp[];
1801
2028
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -1806,30 +2033,20 @@ declare class SlackResource extends BaseResource implements Resource {
1806
2033
  loadState(_state: SlackResourceState): Promise<void>;
1807
2034
  }
1808
2035
 
1809
- interface SSHConfig {
1810
- host: string;
1811
- hostname?: string;
1812
- port?: number;
1813
- username?: string;
1814
- password?: string;
1815
- identityFile?: string;
1816
- passphrase?: string;
1817
- root?: string;
1818
- timeout?: number;
1819
- knownHosts?: string;
1820
- }
1821
- interface SSHConfigRedacted {
1822
- host: string;
1823
- hostname?: string;
1824
- port?: number;
1825
- username?: string;
1826
- password?: '<REDACTED>';
1827
- identityFile?: string;
1828
- passphrase?: '<REDACTED>';
1829
- root?: string;
1830
- timeout?: number;
1831
- knownHosts?: string;
1832
- }
2036
+ declare const SSHConfigSchema: z.ZodObject<{
2037
+ host: z.ZodString;
2038
+ hostname: z.ZodOptional<z.ZodString>;
2039
+ port: z.ZodOptional<z.ZodNumber>;
2040
+ username: z.ZodOptional<z.ZodString>;
2041
+ password: z.ZodOptional<z.ZodString>;
2042
+ identityFile: z.ZodOptional<z.ZodString>;
2043
+ passphrase: z.ZodOptional<z.ZodString>;
2044
+ root: z.ZodOptional<z.ZodString>;
2045
+ timeout: z.ZodOptional<z.ZodNumber>;
2046
+ knownHosts: z.ZodOptional<z.ZodString>;
2047
+ }, z.core.$strip>;
2048
+ type SSHConfig = ConfigOf<typeof SSHConfigSchema>;
2049
+ type SSHConfigRedacted = RedactedConfig<SSHConfig, 'password' | 'passphrase'>;
1833
2050
  declare function redactSshConfig(config: SSHConfig): SSHConfigRedacted;
1834
2051
  declare function normalizeSshConfig(input: Record<string, unknown>): SSHConfig;
1835
2052
 
@@ -1851,6 +2068,7 @@ interface SSHResourceState {
1851
2068
  declare class SSHResource extends BaseResource implements Resource {
1852
2069
  readonly kind: "ssh";
1853
2070
  readonly cachesReads: boolean;
2071
+ readonly sizesAlwaysKnown: boolean;
1854
2072
  readonly indexTtl: number;
1855
2073
  readonly prompt = "{prefix}\n Remote filesystem via SSH/SFTP.\n IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.\n Supports: ls, cat, head, tail, grep, rg, wc, find, tree, stat, mkdir, touch, cp, mv, rm, tee.";
1856
2074
  readonly config: SSHConfig;
@@ -1897,9 +2115,7 @@ interface NextcloudConfig {
1897
2115
  verifySsl?: boolean;
1898
2116
  timeout?: number;
1899
2117
  }
1900
- interface NextcloudConfigRedacted extends Omit<NextcloudConfig, 'password'> {
1901
- password?: '<REDACTED>';
1902
- }
2118
+ type NextcloudConfigRedacted = RedactedConfig<NextcloudConfig, 'password'>;
1903
2119
  declare function normalizeNextcloudConfig(config: Record<string, unknown>): NextcloudConfig;
1904
2120
  declare function redactNextcloudConfig(config: NextcloudConfig): NextcloudConfigRedacted;
1905
2121
 
@@ -1920,13 +2136,13 @@ declare class NextcloudResource extends BaseResource implements Resource {
1920
2136
  readonly config: NextcloudConfig;
1921
2137
  readonly kind: "nextcloud";
1922
2138
  readonly cachesReads = true;
2139
+ readonly sizesAlwaysKnown: boolean;
1923
2140
  readonly supportsSnapshot = true;
1924
2141
  readonly prompt = "You have access to files stored in Nextcloud.";
1925
2142
  readonly accessor: NextcloudAccessor;
1926
2143
  readonly opsMap: Record<string, unknown>;
1927
2144
  constructor(config: NextcloudConfig);
1928
2145
  open(): Promise<void>;
1929
- close(): Promise<void>;
1930
2146
  commands(): readonly RegisteredCommand[];
1931
2147
  ops(): readonly RegisteredOp[];
1932
2148
  streamPath(path: PathSpec): AsyncIterable<Uint8Array>;
@@ -1946,6 +2162,7 @@ declare class NextcloudResource extends BaseResource implements Resource {
1946
2162
  du(path: PathSpec): Promise<number>;
1947
2163
  find(path: PathSpec, options?: FindOptions): Promise<string[]>;
1948
2164
  glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2165
+ deltaHook(): DeltaHook;
1949
2166
  getState(): Promise<NextcloudResourceState>;
1950
2167
  loadState(_state: NextcloudResourceState): Promise<void>;
1951
2168
  }
@@ -1956,14 +2173,12 @@ declare const NEXTCLOUD_COMMANDS: readonly RegisteredCommand[];
1956
2173
 
1957
2174
  declare const NEXTCLOUD_OPS: readonly RegisteredOp[];
1958
2175
 
1959
- interface DiscordConfig {
1960
- token: string;
1961
- }
1962
- interface DiscordConfigRedacted {
1963
- token: '<REDACTED>';
2176
+ declare class NextcloudWalk {
2177
+ private readonly accessor;
2178
+ constructor(accessor: NextcloudAccessor);
2179
+ walk(root: PathSpec): AsyncGenerator<WalkEntry>;
1964
2180
  }
1965
- declare function redactDiscordConfig(config: DiscordConfig): DiscordConfigRedacted;
1966
- declare function normalizeDiscordConfig(input: Record<string, unknown>): DiscordConfig;
2181
+ declare function buildDeltaHook(accessor: NextcloudAccessor): DeltaHook;
1967
2182
 
1968
2183
  interface DiscordResourceState {
1969
2184
  type: string;
@@ -1972,6 +2187,7 @@ interface DiscordResourceState {
1972
2187
  declare class DiscordResource extends BaseResource implements Resource {
1973
2188
  readonly kind: string;
1974
2189
  readonly cachesReads: boolean;
2190
+ readonly sizesAlwaysKnown: boolean;
1975
2191
  readonly indexTtl: number;
1976
2192
  readonly prompt: string;
1977
2193
  readonly writePrompt: string;
@@ -1979,7 +2195,6 @@ declare class DiscordResource extends BaseResource implements Resource {
1979
2195
  readonly accessor: DiscordAccessor;
1980
2196
  constructor(config: DiscordConfig);
1981
2197
  open(): Promise<void>;
1982
- close(): Promise<void>;
1983
2198
  commands(): readonly RegisteredCommand[];
1984
2199
  ops(): readonly RegisteredOp[];
1985
2200
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -1990,20 +2205,15 @@ declare class DiscordResource extends BaseResource implements Resource {
1990
2205
  loadState(_state: DiscordResourceState): Promise<void>;
1991
2206
  }
1992
2207
 
1993
- interface TrelloConfig {
1994
- apiKey: string;
1995
- apiToken: string;
1996
- workspaceId?: string;
1997
- boardIds?: readonly string[];
1998
- baseUrl?: string;
1999
- }
2000
- interface TrelloConfigRedacted {
2001
- apiKey: '<REDACTED>';
2002
- apiToken: '<REDACTED>';
2003
- workspaceId?: string;
2004
- boardIds?: readonly string[];
2005
- baseUrl?: string;
2006
- }
2208
+ declare const TrelloConfigSchema: z.ZodObject<{
2209
+ apiKey: z.ZodString;
2210
+ apiToken: z.ZodString;
2211
+ workspaceId: z.ZodOptional<z.ZodString>;
2212
+ boardIds: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
2213
+ baseUrl: z.ZodOptional<z.ZodString>;
2214
+ }, z.core.$strip>;
2215
+ type TrelloConfig = ConfigOf<typeof TrelloConfigSchema>;
2216
+ type TrelloConfigRedacted = RedactedConfig<TrelloConfig, 'apiKey' | 'apiToken'>;
2007
2217
  declare function redactTrelloConfig(config: TrelloConfig): TrelloConfigRedacted;
2008
2218
  declare function normalizeTrelloConfig(input: Record<string, unknown>): TrelloConfig;
2009
2219
 
@@ -2021,7 +2231,6 @@ declare class TrelloResource extends BaseResource implements Resource {
2021
2231
  readonly accessor: TrelloAccessor;
2022
2232
  constructor(config: TrelloConfig);
2023
2233
  open(): Promise<void>;
2024
- close(): Promise<void>;
2025
2234
  commands(): readonly RegisteredCommand[];
2026
2235
  ops(): readonly RegisteredOp[];
2027
2236
  private filter;
@@ -2033,21 +2242,6 @@ declare class TrelloResource extends BaseResource implements Resource {
2033
2242
  loadState(_state: TrelloResourceState): Promise<void>;
2034
2243
  }
2035
2244
 
2036
- interface LinearConfig {
2037
- apiKey: string;
2038
- workspace?: string;
2039
- teamIds?: readonly string[];
2040
- baseUrl?: string;
2041
- }
2042
- interface LinearConfigRedacted {
2043
- apiKey: '<REDACTED>';
2044
- workspace?: string;
2045
- teamIds?: readonly string[];
2046
- baseUrl?: string;
2047
- }
2048
- declare function redactLinearConfig(config: LinearConfig): LinearConfigRedacted;
2049
- declare function normalizeLinearConfig(input: Record<string, unknown>): LinearConfig;
2050
-
2051
2245
  interface LinearResourceState {
2052
2246
  type: string;
2053
2247
  config: LinearConfigRedacted;
@@ -2055,6 +2249,7 @@ interface LinearResourceState {
2055
2249
  declare class LinearResource extends BaseResource implements Resource {
2056
2250
  readonly kind: string;
2057
2251
  readonly cachesReads: boolean;
2252
+ readonly sizesAlwaysKnown: boolean;
2058
2253
  readonly indexTtl: number;
2059
2254
  readonly prompt: string;
2060
2255
  readonly writePrompt: string;
@@ -2062,7 +2257,6 @@ declare class LinearResource extends BaseResource implements Resource {
2062
2257
  readonly accessor: LinearAccessor;
2063
2258
  constructor(config: LinearConfig);
2064
2259
  open(): Promise<void>;
2065
- close(): Promise<void>;
2066
2260
  commands(): readonly RegisteredCommand[];
2067
2261
  ops(): readonly RegisteredOp[];
2068
2262
  private filter;
@@ -2074,17 +2268,6 @@ declare class LinearResource extends BaseResource implements Resource {
2074
2268
  loadState(_state: LinearResourceState): Promise<void>;
2075
2269
  }
2076
2270
 
2077
- interface NotionConfig {
2078
- apiKey: string;
2079
- baseUrl?: string;
2080
- }
2081
- interface NotionConfigRedacted {
2082
- apiKey: '<REDACTED>';
2083
- baseUrl?: string;
2084
- }
2085
- declare function redactNotionConfig(config: NotionConfig): NotionConfigRedacted;
2086
- declare function normalizeNotionConfig(input: Record<string, unknown>): NotionConfig;
2087
-
2088
2271
  interface NotionResourceState {
2089
2272
  type: string;
2090
2273
  config: NotionConfigRedacted;
@@ -2099,7 +2282,6 @@ declare class NotionResource extends BaseResource implements Resource {
2099
2282
  readonly accessor: NotionAccessor;
2100
2283
  constructor(config: NotionConfig);
2101
2284
  open(): Promise<void>;
2102
- close(): Promise<void>;
2103
2285
  commands(): readonly RegisteredCommand[];
2104
2286
  ops(): readonly RegisteredOp[];
2105
2287
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2110,22 +2292,16 @@ declare class NotionResource extends BaseResource implements Resource {
2110
2292
  loadState(_state: NotionResourceState): Promise<void>;
2111
2293
  }
2112
2294
 
2113
- interface LangfuseConfig {
2114
- publicKey: string;
2115
- secretKey: string;
2116
- host?: string;
2117
- defaultTraceLimit?: number;
2118
- defaultSearchLimit?: number;
2119
- defaultFromTimestamp?: string;
2120
- }
2121
- interface LangfuseConfigRedacted {
2122
- publicKey: string;
2123
- secretKey: '<REDACTED>';
2124
- host?: string;
2125
- defaultTraceLimit?: number;
2126
- defaultSearchLimit?: number;
2127
- defaultFromTimestamp?: string;
2128
- }
2295
+ declare const LangfuseConfigSchema: z.ZodObject<{
2296
+ publicKey: z.ZodString;
2297
+ secretKey: z.ZodString;
2298
+ host: z.ZodOptional<z.ZodString>;
2299
+ defaultTraceLimit: z.ZodOptional<z.ZodNumber>;
2300
+ defaultSearchLimit: z.ZodOptional<z.ZodNumber>;
2301
+ defaultFromTimestamp: z.ZodOptional<z.ZodString>;
2302
+ }, z.core.$strip>;
2303
+ type LangfuseConfig = ConfigOf<typeof LangfuseConfigSchema>;
2304
+ type LangfuseConfigRedacted = RedactedConfig<LangfuseConfig, 'secretKey'>;
2129
2305
  declare function redactLangfuseConfig(config: LangfuseConfig): LangfuseConfigRedacted;
2130
2306
  declare function normalizeLangfuseConfig(input: Record<string, unknown>): LangfuseConfig;
2131
2307
 
@@ -2142,7 +2318,6 @@ declare class LangfuseResource extends BaseResource implements Resource {
2142
2318
  readonly accessor: LangfuseAccessor;
2143
2319
  constructor(config: LangfuseConfig);
2144
2320
  open(): Promise<void>;
2145
- close(): Promise<void>;
2146
2321
  commands(): readonly RegisteredCommand[];
2147
2322
  ops(): readonly RegisteredOp[];
2148
2323
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2153,20 +2328,49 @@ declare class LangfuseResource extends BaseResource implements Resource {
2153
2328
  loadState(_state: LangfuseResourceState): Promise<void>;
2154
2329
  }
2155
2330
 
2156
- interface GitHubConfig {
2157
- token: string;
2158
- owner: string;
2159
- repo: string;
2160
- ref?: string;
2161
- baseUrl?: string;
2162
- }
2163
- interface GitHubConfigRedacted {
2164
- token: '<REDACTED>';
2165
- owner: string;
2166
- repo: string;
2167
- ref?: string;
2168
- baseUrl?: string;
2331
+ declare const JaegerConfigSchema: z.ZodObject<{
2332
+ host: z.ZodOptional<z.ZodString>;
2333
+ defaultTraceLimit: z.ZodOptional<z.ZodNumber>;
2334
+ defaultFromTimestamp: z.ZodOptional<z.ZodString>;
2335
+ defaultToTimestamp: z.ZodOptional<z.ZodString>;
2336
+ requestTimeout: z.ZodOptional<z.ZodNumber>;
2337
+ }, z.core.$strip>;
2338
+ type JaegerConfig = ConfigOf<typeof JaegerConfigSchema>;
2339
+ type JaegerConfigRedacted = JaegerConfig;
2340
+
2341
+ interface JaegerResourceState {
2342
+ type: string;
2343
+ config: JaegerConfigRedacted;
2169
2344
  }
2345
+ declare class JaegerResource extends BaseResource implements Resource {
2346
+ readonly kind: string;
2347
+ readonly cachesReads: boolean;
2348
+ readonly sizesAlwaysKnown: boolean;
2349
+ readonly indexTtl: number;
2350
+ readonly prompt: string;
2351
+ readonly config: JaegerConfig;
2352
+ readonly accessor: JaegerAccessor;
2353
+ constructor(config: JaegerConfig);
2354
+ open(): Promise<void>;
2355
+ commands(): readonly RegisteredCommand[];
2356
+ ops(): readonly RegisteredOp[];
2357
+ readFile(p: PathSpec): Promise<Uint8Array>;
2358
+ readdir(p: PathSpec): Promise<string[]>;
2359
+ stat(p: PathSpec): Promise<FileStat>;
2360
+ glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2361
+ getState(): Promise<JaegerResourceState>;
2362
+ loadState(_state: JaegerResourceState): Promise<void>;
2363
+ }
2364
+
2365
+ declare const GitHubConfigSchema: z.ZodObject<{
2366
+ token: z.ZodString;
2367
+ owner: z.ZodString;
2368
+ repo: z.ZodString;
2369
+ ref: z.ZodOptional<z.ZodString>;
2370
+ baseUrl: z.ZodOptional<z.ZodString>;
2371
+ }, z.core.$strip>;
2372
+ type GitHubConfig = ConfigOf<typeof GitHubConfigSchema>;
2373
+ type GitHubConfigRedacted = RedactedConfig<GitHubConfig, 'token'>;
2170
2374
  declare function redactGitHubConfig(config: GitHubConfig): GitHubConfigRedacted;
2171
2375
  declare function normalizeGitHubConfig(input: Record<string, unknown>): GitHubConfig;
2172
2376
 
@@ -2179,6 +2383,7 @@ interface GitHubResourceState {
2179
2383
  declare class GitHubResource extends BaseResource implements Resource {
2180
2384
  readonly kind: string;
2181
2385
  readonly cachesReads: boolean;
2386
+ readonly sizesAlwaysKnown: boolean;
2182
2387
  readonly supportsSnapshot: boolean;
2183
2388
  readonly indexTtl: number;
2184
2389
  readonly config: GitHubConfig;
@@ -2186,7 +2391,6 @@ declare class GitHubResource extends BaseResource implements Resource {
2186
2391
  private constructor();
2187
2392
  static create(config: GitHubConfig): Promise<GitHubResource>;
2188
2393
  open(): Promise<void>;
2189
- close(): Promise<void>;
2190
2394
  commands(): readonly RegisteredCommand[];
2191
2395
  ops(): readonly RegisteredOp[];
2192
2396
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2197,22 +2401,16 @@ declare class GitHubResource extends BaseResource implements Resource {
2197
2401
  loadState(_state: GitHubResourceState): Promise<void>;
2198
2402
  }
2199
2403
 
2200
- interface GitHubCIConfig {
2201
- token: string;
2202
- owner: string;
2203
- repo: string;
2204
- days?: number;
2205
- maxRuns?: number;
2206
- baseUrl?: string;
2207
- }
2208
- interface GitHubCIConfigRedacted {
2209
- token: '<REDACTED>';
2210
- owner: string;
2211
- repo: string;
2212
- days?: number;
2213
- maxRuns?: number;
2214
- baseUrl?: string;
2215
- }
2404
+ declare const GitHubCIConfigSchema: z.ZodObject<{
2405
+ token: z.ZodString;
2406
+ owner: z.ZodString;
2407
+ repo: z.ZodString;
2408
+ days: z.ZodOptional<z.ZodNumber>;
2409
+ maxRuns: z.ZodOptional<z.ZodNumber>;
2410
+ baseUrl: z.ZodOptional<z.ZodString>;
2411
+ }, z.core.$strip>;
2412
+ type GitHubCIConfig = ConfigOf<typeof GitHubCIConfigSchema>;
2413
+ type GitHubCIConfigRedacted = RedactedConfig<GitHubCIConfig, 'token'>;
2216
2414
  declare function redactGitHubCIConfig(config: GitHubCIConfig): GitHubCIConfigRedacted;
2217
2415
  declare function normalizeGitHubCIConfig(input: Record<string, unknown>): GitHubCIConfig;
2218
2416
 
@@ -2229,7 +2427,6 @@ declare class GitHubCIResource extends BaseResource implements Resource {
2229
2427
  readonly accessor: GitHubCIAccessor;
2230
2428
  constructor(config: GitHubCIConfig);
2231
2429
  open(): Promise<void>;
2232
- close(): Promise<void>;
2233
2430
  commands(): readonly RegisteredCommand[];
2234
2431
  ops(): readonly RegisteredOp[];
2235
2432
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2240,26 +2437,9 @@ declare class GitHubCIResource extends BaseResource implements Resource {
2240
2437
  loadState(_state: GitHubCIResourceState): Promise<void>;
2241
2438
  }
2242
2439
 
2243
- interface GDocsConfig {
2244
- clientId: string;
2245
- clientSecret: string;
2246
- refreshToken: string;
2247
- refreshFn?: (refreshToken: string) => Promise<{
2248
- accessToken: string;
2249
- expiresIn: number;
2250
- }>;
2251
- }
2252
- interface GDocsConfigRedacted {
2253
- clientId: string;
2254
- clientSecret: '<REDACTED>';
2255
- refreshToken: '<REDACTED>';
2256
- }
2257
- declare function redactGDocsConfig(config: GDocsConfig): GDocsConfigRedacted;
2258
- declare function normalizeGDocsConfig(input: Record<string, unknown>): GDocsConfig;
2259
-
2260
2440
  interface GDocsResourceState {
2261
2441
  type: string;
2262
- config: GDocsConfigRedacted;
2442
+ config: GoogleConfigRedacted;
2263
2443
  }
2264
2444
  declare class GDocsResource extends BaseResource implements Resource {
2265
2445
  readonly kind: string;
@@ -2267,11 +2447,10 @@ declare class GDocsResource extends BaseResource implements Resource {
2267
2447
  readonly indexTtl: number;
2268
2448
  readonly prompt: string;
2269
2449
  readonly writePrompt: string;
2270
- readonly config: GDocsConfig;
2450
+ readonly config: GoogleConfig;
2271
2451
  readonly accessor: GDocsAccessor;
2272
- constructor(config: GDocsConfig);
2452
+ constructor(config: GoogleConfig);
2273
2453
  open(): Promise<void>;
2274
- close(): Promise<void>;
2275
2454
  commands(): readonly RegisteredCommand[];
2276
2455
  ops(): readonly RegisteredOp[];
2277
2456
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2282,26 +2461,9 @@ declare class GDocsResource extends BaseResource implements Resource {
2282
2461
  loadState(_state: GDocsResourceState): Promise<void>;
2283
2462
  }
2284
2463
 
2285
- interface GSheetsConfig {
2286
- clientId: string;
2287
- clientSecret: string;
2288
- refreshToken: string;
2289
- refreshFn?: (refreshToken: string) => Promise<{
2290
- accessToken: string;
2291
- expiresIn: number;
2292
- }>;
2293
- }
2294
- interface GSheetsConfigRedacted {
2295
- clientId: string;
2296
- clientSecret: '<REDACTED>';
2297
- refreshToken: '<REDACTED>';
2298
- }
2299
- declare function redactGSheetsConfig(config: GSheetsConfig): GSheetsConfigRedacted;
2300
- declare function normalizeGSheetsConfig(input: Record<string, unknown>): GSheetsConfig;
2301
-
2302
2464
  interface GSheetsResourceState {
2303
2465
  type: string;
2304
- config: GSheetsConfigRedacted;
2466
+ config: GoogleConfigRedacted;
2305
2467
  }
2306
2468
  declare class GSheetsResource extends BaseResource implements Resource {
2307
2469
  readonly kind: string;
@@ -2309,11 +2471,10 @@ declare class GSheetsResource extends BaseResource implements Resource {
2309
2471
  readonly indexTtl: number;
2310
2472
  readonly prompt: string;
2311
2473
  readonly writePrompt: string;
2312
- readonly config: GSheetsConfig;
2474
+ readonly config: GoogleConfig;
2313
2475
  readonly accessor: GSheetsAccessor;
2314
- constructor(config: GSheetsConfig);
2476
+ constructor(config: GoogleConfig);
2315
2477
  open(): Promise<void>;
2316
- close(): Promise<void>;
2317
2478
  commands(): readonly RegisteredCommand[];
2318
2479
  ops(): readonly RegisteredOp[];
2319
2480
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2324,26 +2485,9 @@ declare class GSheetsResource extends BaseResource implements Resource {
2324
2485
  loadState(_state: GSheetsResourceState): Promise<void>;
2325
2486
  }
2326
2487
 
2327
- interface GSlidesConfig {
2328
- clientId: string;
2329
- clientSecret: string;
2330
- refreshToken: string;
2331
- refreshFn?: (refreshToken: string) => Promise<{
2332
- accessToken: string;
2333
- expiresIn: number;
2334
- }>;
2335
- }
2336
- interface GSlidesConfigRedacted {
2337
- clientId: string;
2338
- clientSecret: '<REDACTED>';
2339
- refreshToken: '<REDACTED>';
2340
- }
2341
- declare function redactGSlidesConfig(config: GSlidesConfig): GSlidesConfigRedacted;
2342
- declare function normalizeGSlidesConfig(input: Record<string, unknown>): GSlidesConfig;
2343
-
2344
2488
  interface GSlidesResourceState {
2345
2489
  type: string;
2346
- config: GSlidesConfigRedacted;
2490
+ config: GoogleConfigRedacted;
2347
2491
  }
2348
2492
  declare class GSlidesResource extends BaseResource implements Resource {
2349
2493
  readonly kind: string;
@@ -2351,11 +2495,10 @@ declare class GSlidesResource extends BaseResource implements Resource {
2351
2495
  readonly indexTtl: number;
2352
2496
  readonly prompt: string;
2353
2497
  readonly writePrompt: string;
2354
- readonly config: GSlidesConfig;
2498
+ readonly config: GoogleConfig;
2355
2499
  readonly accessor: GSlidesAccessor;
2356
- constructor(config: GSlidesConfig);
2500
+ constructor(config: GoogleConfig);
2357
2501
  open(): Promise<void>;
2358
- close(): Promise<void>;
2359
2502
  commands(): readonly RegisteredCommand[];
2360
2503
  ops(): readonly RegisteredOp[];
2361
2504
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2366,27 +2509,9 @@ declare class GSlidesResource extends BaseResource implements Resource {
2366
2509
  loadState(_state: GSlidesResourceState): Promise<void>;
2367
2510
  }
2368
2511
 
2369
- interface GDriveConfig {
2370
- clientId: string;
2371
- clientSecret: string;
2372
- refreshToken: string;
2373
- refreshFn?: (refreshToken: string) => Promise<{
2374
- accessToken: string;
2375
- expiresIn: number;
2376
- }>;
2377
- folderId?: string;
2378
- }
2379
- interface GDriveConfigRedacted {
2380
- clientId: string;
2381
- clientSecret: '<REDACTED>';
2382
- refreshToken: '<REDACTED>';
2383
- }
2384
- declare function redactGDriveConfig(config: GDriveConfig): GDriveConfigRedacted;
2385
- declare function normalizeGDriveConfig(input: Record<string, unknown>): GDriveConfig;
2386
-
2387
2512
  interface GDriveResourceState {
2388
2513
  type: string;
2389
- config: GDriveConfigRedacted;
2514
+ config: GoogleConfigRedacted;
2390
2515
  }
2391
2516
  declare class GDriveResource extends BaseResource implements Resource {
2392
2517
  readonly kind: string;
@@ -2394,11 +2519,10 @@ declare class GDriveResource extends BaseResource implements Resource {
2394
2519
  readonly supportsSnapshot: boolean;
2395
2520
  readonly indexTtl: number;
2396
2521
  readonly prompt: string;
2397
- readonly config: GDriveConfig;
2522
+ readonly config: GoogleConfig;
2398
2523
  readonly accessor: GDriveAccessor;
2399
- constructor(config: GDriveConfig);
2524
+ constructor(config: GoogleConfig);
2400
2525
  open(): Promise<void>;
2401
- close(): Promise<void>;
2402
2526
  commands(): readonly RegisteredCommand[];
2403
2527
  ops(): readonly RegisteredOp[];
2404
2528
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2421,14 +2545,15 @@ interface DropboxConfig {
2421
2545
  expiresIn: number;
2422
2546
  }>;
2423
2547
  }
2424
- interface DropboxConfigRedacted {
2425
- clientId: string;
2426
- clientSecret: '<REDACTED>';
2427
- refreshToken: '<REDACTED>';
2428
- rootPath?: string;
2429
- contentSearch?: boolean;
2430
- endpoint?: string;
2431
- }
2548
+ declare const DropboxConfigSchema: z.ZodObject<{
2549
+ clientId: z.ZodString;
2550
+ clientSecret: z.ZodString;
2551
+ refreshToken: z.ZodString;
2552
+ rootPath: z.ZodOptional<z.ZodString>;
2553
+ contentSearch: z.ZodOptional<z.ZodBoolean>;
2554
+ endpoint: z.ZodOptional<z.ZodString>;
2555
+ }, z.core.$strip>;
2556
+ type DropboxConfigRedacted = RedactedConfig<ConfigOf<typeof DropboxConfigSchema>, 'clientSecret' | 'refreshToken'>;
2432
2557
  declare function redactDropboxConfig(config: DropboxConfig): DropboxConfigRedacted;
2433
2558
  declare function normalizeDropboxConfig(input: Record<string, unknown>): DropboxConfig;
2434
2559
 
@@ -2439,13 +2564,13 @@ interface DropboxResourceState {
2439
2564
  declare class DropboxResource extends BaseResource implements Resource {
2440
2565
  readonly kind: string;
2441
2566
  readonly cachesReads: boolean;
2567
+ readonly sizesAlwaysKnown: boolean;
2442
2568
  readonly indexTtl: number;
2443
2569
  readonly prompt: string;
2444
2570
  readonly config: DropboxConfig;
2445
2571
  readonly accessor: DropboxAccessor;
2446
2572
  constructor(config: DropboxConfig);
2447
2573
  open(): Promise<void>;
2448
- close(): Promise<void>;
2449
2574
  commands(): readonly RegisteredCommand[];
2450
2575
  ops(): readonly RegisteredOp[];
2451
2576
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2472,15 +2597,17 @@ interface BoxConfig {
2472
2597
  }>;
2473
2598
  onRefreshTokenRotated?: (newRefreshToken: string) => void | Promise<void>;
2474
2599
  }
2475
- interface BoxConfigRedacted {
2476
- endpoint?: string;
2477
- rootFolderId?: string;
2478
- clientId?: string;
2479
- clientSecret?: '<REDACTED>';
2480
- refreshToken?: '<REDACTED>';
2481
- enterpriseId?: string;
2482
- accessToken?: '<REDACTED>';
2483
- }
2600
+ declare const BoxConfigSchema: z.ZodObject<{
2601
+ endpoint: z.ZodOptional<z.ZodString>;
2602
+ rootFolderId: z.ZodOptional<z.ZodString>;
2603
+ contentSearch: z.ZodOptional<z.ZodBoolean>;
2604
+ clientId: z.ZodOptional<z.ZodString>;
2605
+ clientSecret: z.ZodOptional<z.ZodString>;
2606
+ refreshToken: z.ZodOptional<z.ZodString>;
2607
+ enterpriseId: z.ZodOptional<z.ZodString>;
2608
+ accessToken: z.ZodOptional<z.ZodString>;
2609
+ }, z.core.$strip>;
2610
+ type BoxConfigRedacted = RedactedConfig<ConfigOf<typeof BoxConfigSchema>, 'clientSecret' | 'refreshToken' | 'accessToken'>;
2484
2611
  declare function redactBoxConfig(config: BoxConfig): BoxConfigRedacted;
2485
2612
  declare function normalizeBoxConfig(input: Record<string, unknown>): BoxConfig;
2486
2613
 
@@ -2491,13 +2618,13 @@ interface BoxResourceState {
2491
2618
  declare class BoxResource extends BaseResource implements Resource {
2492
2619
  readonly kind: string;
2493
2620
  readonly cachesReads: boolean;
2621
+ readonly sizesAlwaysKnown: boolean;
2494
2622
  readonly indexTtl: number;
2495
2623
  readonly prompt: string;
2496
2624
  readonly config: BoxConfig;
2497
2625
  readonly accessor: BoxAccessor;
2498
2626
  constructor(config: BoxConfig);
2499
2627
  open(): Promise<void>;
2500
- close(): Promise<void>;
2501
2628
  commands(): readonly RegisteredCommand[];
2502
2629
  ops(): readonly RegisteredOp[];
2503
2630
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2515,6 +2642,7 @@ interface GmailResourceState {
2515
2642
  declare class GmailResource extends BaseResource implements Resource {
2516
2643
  readonly kind: string;
2517
2644
  readonly cachesReads: boolean;
2645
+ readonly sizesAlwaysKnown: boolean;
2518
2646
  readonly indexTtl: number;
2519
2647
  readonly prompt: string;
2520
2648
  readonly writePrompt: string;
@@ -2522,7 +2650,6 @@ declare class GmailResource extends BaseResource implements Resource {
2522
2650
  readonly accessor: GmailAccessor;
2523
2651
  constructor(config: GoogleConfig);
2524
2652
  open(): Promise<void>;
2525
- close(): Promise<void>;
2526
2653
  commands(): readonly RegisteredCommand[];
2527
2654
  ops(): readonly RegisteredOp[];
2528
2655
  readFile(p: PathSpec): Promise<Uint8Array>;
@@ -2533,30 +2660,46 @@ declare class GmailResource extends BaseResource implements Resource {
2533
2660
  loadState(_state: GmailResourceState): Promise<void>;
2534
2661
  }
2535
2662
 
2536
- interface EmailConfig {
2537
- imapHost: string;
2538
- imapPort: number;
2539
- smtpHost: string;
2540
- smtpPort: number;
2541
- username: string;
2542
- password: string;
2543
- useSsl: boolean;
2544
- maxMessages: number;
2545
- }
2546
- interface EmailConfigRedacted extends Omit<EmailConfig, 'password'> {
2547
- password: '<REDACTED>';
2663
+ interface GCalResourceState {
2664
+ type: string;
2665
+ config: GoogleConfigRedacted;
2548
2666
  }
2667
+ declare class GCalResource extends BaseResource implements Resource {
2668
+ readonly kind: string;
2669
+ readonly cachesReads: boolean;
2670
+ readonly indexTtl: number;
2671
+ readonly prompt: string;
2672
+ readonly writePrompt: string;
2673
+ readonly config: GoogleConfig;
2674
+ readonly accessor: GCalAccessor;
2675
+ constructor(config: GoogleConfig);
2676
+ open(): Promise<void>;
2677
+ commands(): readonly RegisteredCommand[];
2678
+ ops(): readonly RegisteredOp[];
2679
+ readFile(p: PathSpec): Promise<Uint8Array>;
2680
+ readdir(p: PathSpec): Promise<string[]>;
2681
+ stat(p: PathSpec): Promise<FileStat>;
2682
+ glob(paths: readonly PathSpec[], prefix?: string): Promise<PathSpec[]>;
2683
+ getState(): Promise<GCalResourceState>;
2684
+ loadState(_state: GCalResourceState): Promise<void>;
2685
+ }
2686
+
2687
+ declare const EmailConfigSchema: z.ZodObject<{
2688
+ imapHost: z.ZodString;
2689
+ imapPort: z.ZodDefault<z.ZodNumber>;
2690
+ smtpHost: z.ZodString;
2691
+ smtpPort: z.ZodDefault<z.ZodNumber>;
2692
+ username: z.ZodString;
2693
+ password: z.ZodString;
2694
+ useSsl: z.ZodDefault<z.ZodBoolean>;
2695
+ maxMessages: z.ZodDefault<z.ZodNumber>;
2696
+ saveCopy: z.ZodDefault<z.ZodBoolean>;
2697
+ sentFolder: z.ZodDefault<z.ZodNullable<z.ZodString>>;
2698
+ }, z.core.$strip>;
2699
+ type EmailConfig = ConfigOf<typeof EmailConfigSchema>;
2700
+ type EmailConfigRedacted = RedactedConfig<EmailConfig, 'password'>;
2549
2701
  declare function redactEmailConfig(config: EmailConfig): EmailConfigRedacted;
2550
- interface EmailConfigInput {
2551
- imapHost: string;
2552
- imapPort?: number;
2553
- smtpHost: string;
2554
- smtpPort?: number;
2555
- username: string;
2556
- password: string;
2557
- useSsl?: boolean;
2558
- maxMessages?: number;
2559
- }
2702
+ type EmailConfigInput = z.input<typeof EmailConfigSchema>;
2560
2703
  declare function buildEmailConfig(input: EmailConfigInput): EmailConfig;
2561
2704
  declare function normalizeEmailConfig(input: Record<string, unknown>): EmailConfig;
2562
2705
 
@@ -2575,6 +2718,7 @@ interface EmailResourceState {
2575
2718
  declare class EmailResource extends BaseResource implements Resource {
2576
2719
  readonly kind: string;
2577
2720
  readonly cachesReads: boolean;
2721
+ readonly sizesAlwaysKnown: boolean;
2578
2722
  readonly indexTtl: number;
2579
2723
  readonly prompt: string;
2580
2724
  readonly config: EmailConfig;
@@ -2592,13 +2736,106 @@ declare class EmailResource extends BaseResource implements Resource {
2592
2736
  loadState(_state: EmailResourceState): Promise<void>;
2593
2737
  }
2594
2738
 
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\"";
2739
+ 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 To act on mail (list/read/send/reply/forward), use the himalaya CLI\n if installed: himalaya --help";
2740
+ declare const EMAIL_WRITE_PROMPT = " Sending mail goes through the himalaya CLI if installed:\n himalaya message send --to \"to@email.com\" --subject \"Hi\" --body \"...\"";
2597
2741
 
2598
2742
  declare const EMAIL_COMMANDS: readonly RegisteredCommand[];
2599
2743
 
2744
+ declare const HIMALAYA: CLISpec;
2745
+
2600
2746
  declare const EMAIL_OPS: readonly RegisteredOp[];
2601
2747
 
2748
+ /**
2749
+ * Run Python code on a host interpreter as a subprocess.
2750
+ *
2751
+ * Each run spawns `<interpreter> -c <code>`; the code sees the host
2752
+ * filesystem and environment, not the workspace mounts. Mirrors the
2753
+ * python LocalRuntime: the interpreter defaults to `python3` on PATH
2754
+ * (node has no embedded python, unlike the python package which
2755
+ * defaults to its own interpreter); point the config `home` or the
2756
+ * MIRAGE_LOCAL_HOME environment variable at another binary, e.g. a
2757
+ * project venv whose packages the code needs.
2758
+ */
2759
+ declare class LocalRuntime extends PythonRuntime {
2760
+ readonly name = "local";
2761
+ readonly reach = "process";
2762
+ private readonly python;
2763
+ private readonly children;
2764
+ constructor(options?: RuntimeOptions);
2765
+ run(args: RunArgs): Promise<RunResult>;
2766
+ close(): Promise<void>;
2767
+ }
2768
+
2769
+ /** How to reach the user's live E2B sandbox. */
2770
+ interface E2BConfig extends SandboxConfig {
2771
+ /**
2772
+ * Id of a sandbox you created (`e2b sandbox spawn` or the SDK),
2773
+ * booted from a template with fuse3 and mirage installed.
2774
+ */
2775
+ sandboxId: string;
2776
+ /** E2B credential; absent reads E2B_API_KEY. */
2777
+ apiKey?: string;
2778
+ }
2779
+ declare const E2B_CONFIG_KEYS: readonly string[];
2780
+
2781
+ type E2bSdk = typeof e2bSdk;
2782
+ /**
2783
+ * An E2B sandbox the user runs as a whole-line runtime.
2784
+ *
2785
+ * You create the sandbox yourself (`e2b sandbox spawn` or the SDK);
2786
+ * mirage only connects by `sandboxId` and execs lines. `apiKey` falls
2787
+ * back to E2B_API_KEY. E2B's exec reports stdout and stderr
2788
+ * separately, so both stream back real; it takes no stdin, so piped
2789
+ * bytes are uploaded and redirected in.
2790
+ */
2791
+ declare class E2BRuntime extends RemoteSandbox<E2BConfig> {
2792
+ readonly name = "e2b";
2793
+ private sdk;
2794
+ private sandbox;
2795
+ constructor(options?: RuntimeOptions<E2BConfig> | Record<string, unknown>);
2796
+ protected loadSdk(): Promise<E2bSdk>;
2797
+ private ensureSdk;
2798
+ private apiParams;
2799
+ connect(): Promise<void>;
2800
+ execLine(line: string, stdin: Uint8Array | null, env: Record<string, string>, cwd: string): Promise<RunResult>;
2801
+ private upload;
2802
+ }
2803
+
2804
+ /** How to reach the user's running container. */
2805
+ interface DockerConfig extends SandboxConfig {
2806
+ /**
2807
+ * Id or name of a running container. You start it yourself
2808
+ * (`docker run -d ... sleep infinity`); live FUSE mounts need
2809
+ * `--cap-add SYS_ADMIN --device /dev/fuse` and an image with mirage
2810
+ * installed.
2811
+ */
2812
+ container: string;
2813
+ }
2814
+ declare const DOCKER_CONFIG_KEYS: readonly string[];
2815
+
2816
+ interface DockerResult {
2817
+ stdout: Uint8Array;
2818
+ stderr: Uint8Array;
2819
+ code: number;
2820
+ }
2821
+ /**
2822
+ * A container the user runs as a whole-line runtime.
2823
+ *
2824
+ * You start the container yourself; mirage only connects to it and
2825
+ * execs lines. The docker CLI is the transport (Docker Desktop,
2826
+ * colima, or a podman alias all work), so there is no SDK dependency
2827
+ * and no daemon socket wiring; each line is one `docker exec -i` with
2828
+ * the merged environment, the rebased cwd, real stdin, and separated
2829
+ * stderr.
2830
+ */
2831
+ declare class DockerRuntime extends RemoteSandbox<DockerConfig> {
2832
+ readonly name = "docker";
2833
+ constructor(options?: RuntimeOptions<DockerConfig> | Record<string, unknown>);
2834
+ protected docker(args: string[], stdin?: Uint8Array | null): Promise<DockerResult>;
2835
+ connect(): Promise<void>;
2836
+ execLine(line: string, stdin: Uint8Array | null, env: Record<string, string>, cwd: string): Promise<RunResult>;
2837
+ }
2838
+
2602
2839
  /**
2603
2840
  * Construct a resource by registry name. Mirrors Python's
2604
2841
  * `mirage.resource.registry.build_resource`.
@@ -2614,23 +2851,74 @@ declare const EMAIL_OPS: readonly RegisteredOp[];
2614
2851
  */
2615
2852
  type ResourceFactory = (config: Record<string, unknown>) => Promise<Resource>;
2616
2853
  /**
2617
- * Look up the registered names. Lazily-mutated by `register()` so users
2618
- * can extend the registry with custom resources.
2854
+ * Look up every constructible name: builtins plus whatever `register()`
2855
+ * has added.
2619
2856
  */
2620
2857
  declare function knownResources(): string[];
2621
2858
  /**
2622
- * Register a custom resource factory under `name`. Existing entries
2623
- * are overwritten, mirroring Python's mutable REGISTRY dict.
2859
+ * Register a custom resource factory under `name`. Builtin names cannot
2860
+ * be shadowed; re-registering a custom name replaces it. Mirrors
2861
+ * Python's `mirage.resource.registry.register_resource`, which keeps
2862
+ * builtins in REGISTRY and custom entries in a separate _CUSTOM dict so
2863
+ * a plugin cannot replace the builtin `s3` factory.
2624
2864
  */
2625
2865
  declare function register(name: string, factory: ResourceFactory): void;
2626
2866
  /**
2627
- * Build a resource instance by registry name. Throws if the name is
2628
- * unknown.
2867
+ * Build a resource instance by registry name. Builtins win over custom
2868
+ * registrations. Throws if the name is unknown.
2629
2869
  */
2630
2870
  declare function buildResource(name: string, config?: Record<string, unknown>): Promise<Resource>;
2631
2871
 
2872
+ /**
2873
+ * Extensions Node will import from disk. Python's twin tests for a
2874
+ * single one (`.py`) because it has one module language; here `.ts` and
2875
+ * `.mts` ride on Node's own type stripping, which is strip-only: a file
2876
+ * using `enum`, a parameter property, a runtime `namespace` or a legacy
2877
+ * decorator is refused at load with ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX.
2878
+ * `.mjs` is the spelling with no caveats.
2879
+ */
2880
+ declare const MODULE_SUFFIXES: string[];
2881
+ /**
2882
+ * True when a ref's source is a file on disk rather than a package
2883
+ * specifier Node resolves for itself.
2884
+ *
2885
+ * This is Node's own rule, deliberately NOT Python's. Python's twin asks
2886
+ * `"/" in source`, which is sound there because a module dotpath is
2887
+ * dotted, so a slash can only mean a path. In Node a bare specifier
2888
+ * carries slashes all the time (`@scope/pkg`, `pkg/subpath`), so the
2889
+ * same test would rebase an installed package under the config
2890
+ * directory and then report it as a missing file. A path is what Node
2891
+ * calls a path: relative (`./`, `../`) or absolute. The one addition is
2892
+ * a bare filename carrying a module suffix (`tool.mjs`), which mirrors
2893
+ * the convenience Python allows for `tool.py`; it is restricted to
2894
+ * sources with no slash so that `pkg/dist/index.js` stays a subpath
2895
+ * export, and `./dist/index.js` says path by saying so.
2896
+ *
2897
+ * The config loader's `absolutizeCliRef` calls this same function, so
2898
+ * the two cannot disagree about what a path is.
2899
+ */
2900
+ declare function isModulePath(source: string): boolean;
2901
+ /** Split a `source:exportName` ref on its last colon. */
2902
+ declare function splitRef(spec: string): [string, string];
2903
+ /**
2904
+ * Load a module export from a `source:exportName` reference.
2905
+ *
2906
+ * Two forms, auto-detected the way Python's `load_attr` detects them:
2907
+ * a file (`"./my_cli.mjs:TALLY"`) or a package specifier
2908
+ * (`"my-package/clis:JIRA"`). Only a missing file is reworded; every
2909
+ * other load failure propagates with Node's own diagnostic, because a
2910
+ * syntax error in the user's file is the message they need to read.
2911
+ *
2912
+ * A CommonJS file resolves through `default` as well as through named
2913
+ * exports, since cjs-module-lexer only detects some assignment shapes
2914
+ * and `module.exports = { TALLY }` is one it can miss.
2915
+ */
2916
+ declare function loadAttr(spec: string): Promise<unknown>;
2917
+
2632
2918
  declare const DISK_COMMANDS: readonly RegisteredCommand[];
2633
2919
 
2634
2920
  declare const REDIS_COMMANDS: readonly RegisteredCommand[];
2635
2921
 
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 };
2922
+ declare const GRIDFS_COMMANDS: readonly RegisteredCommand[];
2923
+
2924
+ 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, DAYTONA_CONFIG_KEYS, DEFAULT_STATE_ROOT, DIGITALOCEAN_PROMPT, DISK_COMMANDS, DISK_OPS, DISK_PROMPT, DOCKER_CONFIG_KEYS, type DatabricksProfile, DatabricksVolumeResource, type DatabricksVolumeResourceState, type DaytonaConfig, DaytonaRuntime, type DigitalOceanConfig, type DigitalOceanConfigRedacted, DigitalOceanResource, type DigitalOceanResourceState, DiscordResource, type DiscordResourceState, DiskNamespaceStore, DiskObserverStore, DiskRecordClient, DiskResource, type DiskResourceOptions, type DiskResourceState, DiskSessionStore, DiskWorkspaceStateStore, type DiskWorkspaceStateStoreOptions, type DockerConfig, DockerRuntime, type DropboxConfig, type DropboxConfigRedacted, DropboxResource, type DropboxResourceState, type E2BConfig, E2BRuntime, E2B_CONFIG_KEYS, EMAIL_COMMANDS, EMAIL_OPS, EMAIL_PROMPT, EMAIL_WRITE_PROMPT, EmailAccessor, type EmailConfig, type EmailConfigInput, type EmailConfigRedacted, EmailResource, type EmailResourceState, FSKIT_MOUNT_ROOT, type FuseAttr, type FuseHandle, FuseManager, type MountOptions as FuseMountOptions, type GCSConfig, type GCSConfigRedacted, GCSResource, type GCSResourceState, GCS_ENDPOINT, GCS_PROMPT, GCalResource, type GCalResourceState, GDocsResource, type GDocsResourceState, GDriveResource, type GDriveResourceState, GRIDFS_COMMANDS, GSheetsResource, type GSheetsResourceState, 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, HIMALAYA, 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, JaegerResource, type JaegerResourceState, LanceDBResource, type LanceDBResourceOptions, LanceDBStore, type LangfuseConfig, type LangfuseConfigRedacted, LangfuseResource, type LangfuseResourceState, LinearResource, type LinearResourceState, LocalRuntime, MINIO_PROMPT, MODULE_SUFFIXES, type MinIOConfig, type MinIOConfigRedacted, MinIOResource, type MinIOResourceState, MirageFS, type MirageFSOptions, MongoDBResource, type MongoDBResourceOptions, MongoDBStore, Mount, MountCore, type MountCoreOptions, type MountSpecOptions, NEXTCLOUD_COMMANDS, NEXTCLOUD_OPS, NEXTCLOUD_PROMPT, NextcloudAccessor, type NextcloudConfig, type NextcloudConfigRedacted, NextcloudResource, type NextcloudResourceState, NextcloudWalk, type NodeWorkspaceOptions, 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, RedisConsoleStore, type RedisConsoleStoreOptions, 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, 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, buildDeltaHook as buildNextcloudDeltaHook, buildResource, checkMountpoint, checkPlatform, checkSizes, classifyErrno, classifyError, fileReadProvision, mount as fuseMount, mountBackground as fuseMountBackground, headTailProvision, isMacosMetadata, isModulePath, knownResources, loadAttr, loadDatabricksProfile, metadataProvision, normalizeBoxConfig, normalizeDropboxConfig, normalizeEmailConfig, normalizeGitHubCIConfig, normalizeGitHubConfig, normalizeGridFSConfig, normalizeHfBucketsConfig, normalizeHfModelsConfig, normalizeHfRepoConfig, normalizeLangfuseConfig, normalizeNextcloudConfig, normalizeS3Config, normalizeSshConfig, normalizeTrelloConfig, parseDatabricksCfg, patchNodeFs, prepareBackend, redactAliyunConfig, redactBackblazeConfig, redactBoxConfig, redactCephConfig, redactDigitalOceanConfig, redactDropboxConfig, redactEmailConfig, redactGcsConfig, redactGitHubCIConfig, redactGitHubConfig, redactHfBucketsConfig, redactHfModelsConfig, redactHfRepoConfig, redactLangfuseConfig, redactMinIOConfig, redactNextcloudConfig, redactOciConfig, redactQingStorConfig, redactR2Config, redactConfig as redactS3Config, redactScalewayConfig, redactSeaweedFSConfig, redactSshConfig, redactSupabaseConfig, redactTencentConfig, redactTrelloConfig, redactWasabiConfig, register as registerResourceFactory, requireKernelBackend, resolveBackend, resolvedAliyunEndpoint, resolvedBackblazeEndpoint, resolvedDigitalOceanEndpoint, resolvedQingStorEndpoint, resolvedScalewayEndpoint, resolvedSupabaseEndpoint, resolvedTencentEndpoint, resolvedWasabiEndpoint, splitRef, unsizedMounts };