@struktoai/mirage-node 0.0.3 → 0.0.5-alpha.1

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 (465) 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/cas.lua +15 -0
  7. package/dist/ceph-ALKLD3MO.js +11 -0
  8. package/dist/{chunk-QCZ2XUKH.js → chunk-2A4YGVBM.js} +16 -23
  9. package/dist/chunk-2A4YGVBM.js.map +1 -0
  10. package/dist/chunk-2HCYLVGY.js +28 -0
  11. package/dist/chunk-2HCYLVGY.js.map +1 -0
  12. package/dist/chunk-2VPZAH5Q.js +20 -0
  13. package/dist/chunk-2VPZAH5Q.js.map +1 -0
  14. package/dist/{chunk-UT2OPSN4.js → chunk-3JZQ6VSZ.js} +5 -5
  15. package/dist/chunk-3JZQ6VSZ.js.map +1 -0
  16. package/dist/chunk-4IF4TGAI.js +11 -0
  17. package/dist/chunk-4IF4TGAI.js.map +1 -0
  18. package/dist/{chunk-47AVIIOT.js → chunk-5H6KNEPP.js} +4 -5
  19. package/dist/{chunk-47AVIIOT.js.map → chunk-5H6KNEPP.js.map} +1 -1
  20. package/dist/{chunk-I5THIMPP.js → chunk-5K2MWDCE.js} +6 -7
  21. package/dist/{chunk-I5THIMPP.js.map → chunk-5K2MWDCE.js.map} +1 -1
  22. package/dist/{chunk-3WIO7NBR.js → chunk-6SVXWRKX.js} +4 -5
  23. package/dist/{chunk-3WIO7NBR.js.map → chunk-6SVXWRKX.js.map} +1 -1
  24. package/dist/{chunk-RQK5UPMP.js → chunk-6VOIUGAD.js} +25 -12
  25. package/dist/chunk-6VOIUGAD.js.map +1 -0
  26. package/dist/{chunk-NOHWIBRX.js → chunk-7JYHFXXC.js} +15 -20
  27. package/dist/chunk-7JYHFXXC.js.map +1 -0
  28. package/dist/chunk-7VQQFWV6.js +20 -0
  29. package/dist/chunk-7VQQFWV6.js.map +1 -0
  30. package/dist/chunk-7ZP6TPHX.js +87 -0
  31. package/dist/chunk-7ZP6TPHX.js.map +1 -0
  32. package/dist/{chunk-SWCDFEUK.js → chunk-ADEXNSYU.js} +20 -22
  33. package/dist/chunk-ADEXNSYU.js.map +1 -0
  34. package/dist/chunk-AQSYAXL4.js +16 -0
  35. package/dist/chunk-AQSYAXL4.js.map +1 -0
  36. package/dist/{chunk-RO5IQEDQ.js → chunk-ATLXMNKD.js} +8 -4
  37. package/dist/chunk-ATLXMNKD.js.map +1 -0
  38. package/dist/{chunk-MPCCRRE6.js → chunk-BYCUGFRF.js} +16 -16
  39. package/dist/chunk-BYCUGFRF.js.map +1 -0
  40. package/dist/{chunk-HJJMP6IX.js → chunk-BZTVYOES.js} +3 -3
  41. package/dist/{chunk-B2ZOKNN4.js → chunk-CRC4YWXB.js} +27 -9
  42. package/dist/chunk-CRC4YWXB.js.map +1 -0
  43. package/dist/chunk-CTGXJHO5.js +39 -0
  44. package/dist/chunk-CTGXJHO5.js.map +1 -0
  45. package/dist/{chunk-Q2IAILVC.js → chunk-DCDBIXVZ.js} +14 -5
  46. package/dist/chunk-DCDBIXVZ.js.map +1 -0
  47. package/dist/chunk-DDAFNROK.js +750 -0
  48. package/dist/chunk-DDAFNROK.js.map +1 -0
  49. package/dist/chunk-DQIEWEAW.js +85 -0
  50. package/dist/chunk-DQIEWEAW.js.map +1 -0
  51. package/dist/{chunk-QGRDPSAH.js → chunk-EBI4IHDC.js} +23 -12
  52. package/dist/chunk-EBI4IHDC.js.map +1 -0
  53. package/dist/{chunk-JAGJTM3Q.js → chunk-EIUTZ6N7.js} +19 -34
  54. package/dist/chunk-EIUTZ6N7.js.map +1 -0
  55. package/dist/{chunk-TA3WMOMU.js → chunk-EJZG5VUF.js} +38 -32
  56. package/dist/chunk-EJZG5VUF.js.map +1 -0
  57. package/dist/{chunk-X5HF2OFP.js → chunk-ENW5BVYN.js} +3 -3
  58. package/dist/{chunk-HGCRXJGP.js → chunk-ETIAW4YD.js} +3 -3
  59. package/dist/chunk-EUPXAYPB.js +20 -0
  60. package/dist/chunk-EUPXAYPB.js.map +1 -0
  61. package/dist/{chunk-YAHRT6MB.js → chunk-FA6YNU75.js} +4 -5
  62. package/dist/{chunk-YAHRT6MB.js.map → chunk-FA6YNU75.js.map} +1 -1
  63. package/dist/{chunk-TWGVQLG2.js → chunk-FFH6R5VQ.js} +7 -3
  64. package/dist/chunk-FFH6R5VQ.js.map +1 -0
  65. package/dist/{chunk-JCC4CU2I.js → chunk-GE6H2COM.js} +15 -23
  66. package/dist/chunk-GE6H2COM.js.map +1 -0
  67. package/dist/{chunk-DM4GSE26.js → chunk-GMMQ3ZK4.js} +3 -3
  68. package/dist/{chunk-ZEGAMJO2.js → chunk-GSGE3M5P.js} +15 -23
  69. package/dist/chunk-GSGE3M5P.js.map +1 -0
  70. package/dist/{chunk-GCFYZSVR.js → chunk-H64SB6VO.js} +32 -13
  71. package/dist/chunk-H64SB6VO.js.map +1 -0
  72. package/dist/{chunk-N5FSLVKO.js → chunk-HCRYAFBI.js} +3 -3
  73. package/dist/{chunk-IDYHQQOH.js → chunk-HOPUP6LA.js} +358 -471
  74. package/dist/chunk-HOPUP6LA.js.map +1 -0
  75. package/dist/chunk-HS24BL6W.js +160 -0
  76. package/dist/chunk-HS24BL6W.js.map +1 -0
  77. package/dist/chunk-HVYVG5KQ.js +16 -0
  78. package/dist/chunk-HVYVG5KQ.js.map +1 -0
  79. package/dist/{chunk-FQ33BYFR.js → chunk-I7CPLZNW.js} +4 -5
  80. package/dist/{chunk-FQ33BYFR.js.map → chunk-I7CPLZNW.js.map} +1 -1
  81. package/dist/{chunk-VGLHY6BK.js → chunk-IFUCGI4I.js} +7 -3
  82. package/dist/chunk-IFUCGI4I.js.map +1 -0
  83. package/dist/{chunk-RNQN2FOU.js → chunk-IFYXSSKR.js} +24 -13
  84. package/dist/chunk-IFYXSSKR.js.map +1 -0
  85. package/dist/chunk-IXA4DQE4.js +20 -0
  86. package/dist/chunk-IXA4DQE4.js.map +1 -0
  87. package/dist/chunk-IZMKMD3O.js +11 -0
  88. package/dist/chunk-IZMKMD3O.js.map +1 -0
  89. package/dist/{chunk-7CW3BMPH.js → chunk-JJERW2BI.js} +4 -5
  90. package/dist/{chunk-7CW3BMPH.js.map → chunk-JJERW2BI.js.map} +1 -1
  91. package/dist/{chunk-EM4J5EQS.js → chunk-JQR4HVUX.js} +13 -16
  92. package/dist/chunk-JQR4HVUX.js.map +1 -0
  93. package/dist/{chunk-VWKUT4CW.js → chunk-JXOMDLFS.js} +21 -26
  94. package/dist/chunk-JXOMDLFS.js.map +1 -0
  95. package/dist/chunk-KIX6N7NT.js +1001 -0
  96. package/dist/chunk-KIX6N7NT.js.map +1 -0
  97. package/dist/{chunk-OZAEWZZ3.js → chunk-L42UTDFK.js} +12 -3
  98. package/dist/chunk-L42UTDFK.js.map +1 -0
  99. package/dist/{chunk-54NTYJEO.js → chunk-LPDLPRPS.js} +1 -3
  100. package/dist/{chunk-54NTYJEO.js.map → chunk-LPDLPRPS.js.map} +1 -1
  101. package/dist/chunk-M2UF2JHJ.js +11 -0
  102. package/dist/chunk-M2UF2JHJ.js.map +1 -0
  103. package/dist/{chunk-UGK4TAVK.js → chunk-MONC734W.js} +7 -3
  104. package/dist/chunk-MONC734W.js.map +1 -0
  105. package/dist/{chunk-IK2L4EN3.js → chunk-N72RLCMU.js} +4 -5
  106. package/dist/{chunk-IK2L4EN3.js.map → chunk-N72RLCMU.js.map} +1 -1
  107. package/dist/{chunk-H3I2KZIY.js → chunk-ND4IWJ4V.js} +7 -3
  108. package/dist/chunk-ND4IWJ4V.js.map +1 -0
  109. package/dist/chunk-NZ3EKGW4.js +1312 -0
  110. package/dist/chunk-NZ3EKGW4.js.map +1 -0
  111. package/dist/{chunk-XGJ2QERC.js → chunk-OAE57MNL.js} +27 -11
  112. package/dist/chunk-OAE57MNL.js.map +1 -0
  113. package/dist/{chunk-EZQ5HBAC.js → chunk-OHKGIQB4.js} +12 -16
  114. package/dist/chunk-OHKGIQB4.js.map +1 -0
  115. package/dist/{chunk-E2ISWXLB.js → chunk-OQKNDS66.js} +1 -1
  116. package/dist/{chunk-E2ISWXLB.js.map → chunk-OQKNDS66.js.map} +1 -1
  117. package/dist/{chunk-UINQOUZR.js → chunk-OXEQSPND.js} +3 -3
  118. package/dist/{chunk-A7IVFIOP.js → chunk-PKNE5J2B.js} +15 -23
  119. package/dist/chunk-PKNE5J2B.js.map +1 -0
  120. package/dist/chunk-PSXXEGYQ.js +16 -0
  121. package/dist/chunk-PSXXEGYQ.js.map +1 -0
  122. package/dist/{chunk-EGB7V74Z.js → chunk-QAOVABCR.js} +7 -4
  123. package/dist/chunk-QAOVABCR.js.map +1 -0
  124. package/dist/{chunk-X3G37FXT.js → chunk-QQ7FP4GD.js} +4 -5
  125. package/dist/{chunk-X3G37FXT.js.map → chunk-QQ7FP4GD.js.map} +1 -1
  126. package/dist/{chunk-WAR4Q2NM.js → chunk-QYLVMC6B.js} +13 -15
  127. package/dist/chunk-QYLVMC6B.js.map +1 -0
  128. package/dist/{chunk-KPULTUOK.js → chunk-RX3XR65X.js} +4 -5
  129. package/dist/{chunk-KPULTUOK.js.map → chunk-RX3XR65X.js.map} +1 -1
  130. package/dist/chunk-RYQJJB4C.js +30 -0
  131. package/dist/chunk-RYQJJB4C.js.map +1 -0
  132. package/dist/{chunk-QQBJC2FQ.js → chunk-TUF7TCN7.js} +4 -5
  133. package/dist/{chunk-QQBJC2FQ.js.map → chunk-TUF7TCN7.js.map} +1 -1
  134. package/dist/{chunk-AUHSTJJ3.js → chunk-TUX36JY5.js} +4 -5
  135. package/dist/{chunk-AUHSTJJ3.js.map → chunk-TUX36JY5.js.map} +1 -1
  136. package/dist/chunk-TWRQCQWU.js +1153 -0
  137. package/dist/chunk-TWRQCQWU.js.map +1 -0
  138. package/dist/chunk-U6DFQRG3.js +20 -0
  139. package/dist/chunk-U6DFQRG3.js.map +1 -0
  140. package/dist/chunk-VI5YTKNY.js +20 -0
  141. package/dist/chunk-VI5YTKNY.js.map +1 -0
  142. package/dist/chunk-WG5YS6TC.js +872 -0
  143. package/dist/chunk-WG5YS6TC.js.map +1 -0
  144. package/dist/{chunk-ZGSER5TG.js → chunk-WMJJ4WGF.js} +4 -5
  145. package/dist/{chunk-ZGSER5TG.js.map → chunk-WMJJ4WGF.js.map} +1 -1
  146. package/dist/{chunk-LV2G7VHL.js → chunk-WY4FNH42.js} +21 -18
  147. package/dist/chunk-WY4FNH42.js.map +1 -0
  148. package/dist/{chunk-LAJJPLEV.js → chunk-XIG5BWWH.js} +25 -12
  149. package/dist/chunk-XIG5BWWH.js.map +1 -0
  150. package/dist/chunk-XJBC3OYX.js +11 -0
  151. package/dist/chunk-XJBC3OYX.js.map +1 -0
  152. package/dist/{chunk-G2WCEUQL.js → chunk-XPRDXWK7.js} +21 -20
  153. package/dist/chunk-XPRDXWK7.js.map +1 -0
  154. package/dist/chunk-YKRQSZS7.js +96 -0
  155. package/dist/chunk-YKRQSZS7.js.map +1 -0
  156. package/dist/{chunk-M5FVUIYP.js → chunk-YMBL3VJB.js} +21 -19
  157. package/dist/chunk-YMBL3VJB.js.map +1 -0
  158. package/dist/chunk-YUJBXFYK.js +1205 -0
  159. package/dist/chunk-YUJBXFYK.js.map +1 -0
  160. package/dist/{chunk-JALIYI6M.js → chunk-YZ4ZJNOL.js} +28 -11
  161. package/dist/chunk-YZ4ZJNOL.js.map +1 -0
  162. package/dist/chunk-ZTHVEXIV.js +11 -0
  163. package/dist/chunk-ZTHVEXIV.js.map +1 -0
  164. package/dist/{chunk-GS5AUKUO.js → chunk-ZVSYUCYS.js} +11 -7
  165. package/dist/chunk-ZVSYUCYS.js.map +1 -0
  166. package/dist/{config-QAA646XB.js → config-2YBCHU2W.js} +2 -4
  167. package/dist/{config-IVY5EQQ2.js → config-3YRGRW72.js} +3 -4
  168. package/dist/config-4GSOMUMF.js +9 -0
  169. package/dist/config-5YBUWFUP.js +9 -0
  170. package/dist/{config-34LHOGLM.js → config-5ZRKJTKG.js} +3 -4
  171. package/dist/config-A25LTL5W.js +11 -0
  172. package/dist/config-CLU7JABG.js +9 -0
  173. package/dist/config-D2RF7L3N.js +9 -0
  174. package/dist/{config-LHFFXVYI.js → config-E55TKM6K.js} +2 -4
  175. package/dist/config-ELDOFRJW.js +9 -0
  176. package/dist/{config-GE4W4ZJC.js → config-FPC3RBFD.js} +2 -4
  177. package/dist/config-FPM3LAW7.js +9 -0
  178. package/dist/{config-HKRMKD76.js → config-G3F54CS4.js} +3 -4
  179. package/dist/config-G43HRUI3.js +9 -0
  180. package/dist/{config-WDAZFXYD.js → config-GG3WO5PB.js} +3 -4
  181. package/dist/config-JUYBWAZE.js +9 -0
  182. package/dist/{config-CVZ2AGCO.js → config-LJ5T6TVA.js} +2 -6
  183. package/dist/config-MDSAE4O3.js +11 -0
  184. package/dist/{config-EIHSP5DZ.js → config-NRIOKK5T.js} +2 -4
  185. package/dist/config-OYK2BSJK.js +9 -0
  186. package/dist/config-PB3KA2CE.js +9 -0
  187. package/dist/{config-ZFJYQZCH.js → config-QY4IL3PH.js} +3 -4
  188. package/dist/config-R4LAOEDS.js +9 -0
  189. package/dist/{config-QNMKWJ4M.js → config-RIAAD6RW.js} +3 -4
  190. package/dist/config-SYNEQAUB.js +9 -0
  191. package/dist/{config-Q45Y46YT.js → config-TJKGYA2B.js} +3 -4
  192. package/dist/{config-NV5WXP64.js → config-UU27ALAA.js} +2 -4
  193. package/dist/{config-3IVQJBNW.js → config-UURRGA7U.js} +2 -2
  194. package/dist/{config-VM526IKB.js → config-VPLHQXVE.js} +2 -4
  195. package/dist/config-WRACCRPN.js +9 -0
  196. package/dist/{config-GHRUKEQ6.js → config-WVHKXEVE.js} +3 -4
  197. package/dist/{config-EO23EY62.js → config-XU7R36IE.js} +3 -4
  198. package/dist/config-Y2KOUYSS.js +9 -0
  199. package/dist/databricks_volume-CNCPTZHS.js +7 -0
  200. package/dist/digitalocean-DJZOUB6Q.js +11 -0
  201. package/dist/discord-ETB2CADR.js +7 -0
  202. package/dist/disk-WEHSTK3F.js +7 -0
  203. package/dist/dropbox-XN6PGLNE.js +8 -0
  204. package/dist/email-OV7XCP3T.js +8 -0
  205. package/dist/gcal-P56MRCGU.js +8 -0
  206. package/dist/gcs-HFBIAE2C.js +10 -0
  207. package/dist/gdocs-LQ3UXP3J.js +8 -0
  208. package/dist/gdrive-N6UBYLON.js +8 -0
  209. package/dist/github-BPZREGPI.js +8 -0
  210. package/dist/github_ci-7A4LUIZ7.js +8 -0
  211. package/dist/gmail-YED2MF6H.js +8 -0
  212. package/dist/gridfs-CPLQ4G62.js +9 -0
  213. package/dist/gsheets-4BNIJPQ6.js +8 -0
  214. package/dist/gslides-GDBYLO5A.js +8 -0
  215. package/dist/hf_buckets-FTJITQ3P.js +10 -0
  216. package/dist/hf_datasets-6GXVKQD7.js +10 -0
  217. package/dist/hf_models-PJPGZAC5.js +10 -0
  218. package/dist/hf_spaces-LFNFOLBF.js +10 -0
  219. package/dist/index.d.ts +1311 -569
  220. package/dist/index.js +3359 -964
  221. package/dist/index.js.map +1 -1
  222. package/dist/jaeger-GCA6MJ6E.js +8 -0
  223. package/dist/lancedb-TJ5YSJY5.js +7 -0
  224. package/dist/langfuse-RUMTUMXS.js +8 -0
  225. package/dist/linear-BCE4KEAC.js +7 -0
  226. package/dist/minio-5SO6KBTK.js +11 -0
  227. package/dist/mongodb-L5CMN2EE.js +7 -0
  228. package/dist/nextcloud-4O2LZVW2.js +9 -0
  229. package/dist/notion-RVKEAQ2M.js +7 -0
  230. package/dist/oci-OQXOIC62.js +10 -0
  231. package/dist/postgres-AV45GNRS.js +7 -0
  232. package/dist/qingstor-W277YA4K.js +11 -0
  233. package/dist/r2-FUA4IORE.js +10 -0
  234. package/dist/redis-LPS357NF.js +8 -0
  235. package/dist/s3-FPNWWIVM.js +8 -0
  236. package/dist/scaleway-BP3732U7.js +11 -0
  237. package/dist/seaweedfs-MC6HIEP4.js +11 -0
  238. package/dist/slack-JFGW7VLN.js +7 -0
  239. package/dist/ssh-UYPG42LM.js +8 -0
  240. package/dist/ssh-UYPG42LM.js.map +1 -0
  241. package/dist/supabase-A3KUFMDC.js +10 -0
  242. package/dist/supabase-A3KUFMDC.js.map +1 -0
  243. package/dist/tencent-5464UQ2X.js +11 -0
  244. package/dist/tencent-5464UQ2X.js.map +1 -0
  245. package/dist/trello-O2KB3FUO.js +8 -0
  246. package/dist/trello-O2KB3FUO.js.map +1 -0
  247. package/dist/wasabi-2IKBIWNO.js +10 -0
  248. package/dist/wasabi-2IKBIWNO.js.map +1 -0
  249. package/package.json +17 -3
  250. package/dist/aliyun-JMJ3PFYY.js +0 -10
  251. package/dist/backblaze-TDFD23QO.js +0 -10
  252. package/dist/box-GQ2U2R6R.js +0 -8
  253. package/dist/ceph-S2VOYO6G.js +0 -10
  254. package/dist/chunk-2CC5VW7K.js +0 -52
  255. package/dist/chunk-2CC5VW7K.js.map +0 -1
  256. package/dist/chunk-A7IVFIOP.js.map +0 -1
  257. package/dist/chunk-B2ZOKNN4.js.map +0 -1
  258. package/dist/chunk-DNBAMB5J.js +0 -18
  259. package/dist/chunk-DNBAMB5J.js.map +0 -1
  260. package/dist/chunk-DP2PP5V2.js +0 -26
  261. package/dist/chunk-DP2PP5V2.js.map +0 -1
  262. package/dist/chunk-DYXEITK3.js +0 -52
  263. package/dist/chunk-DYXEITK3.js.map +0 -1
  264. package/dist/chunk-EGB7V74Z.js.map +0 -1
  265. package/dist/chunk-EM4J5EQS.js.map +0 -1
  266. package/dist/chunk-EZQ5HBAC.js.map +0 -1
  267. package/dist/chunk-G2WCEUQL.js.map +0 -1
  268. package/dist/chunk-GCFYZSVR.js.map +0 -1
  269. package/dist/chunk-GS5AUKUO.js.map +0 -1
  270. package/dist/chunk-H3BST2LI.js +0 -26
  271. package/dist/chunk-H3BST2LI.js.map +0 -1
  272. package/dist/chunk-H3I2KZIY.js.map +0 -1
  273. package/dist/chunk-IDYHQQOH.js.map +0 -1
  274. package/dist/chunk-JAGJTM3Q.js.map +0 -1
  275. package/dist/chunk-JALIYI6M.js.map +0 -1
  276. package/dist/chunk-JCC4CU2I.js.map +0 -1
  277. package/dist/chunk-JZT4QGIP.js +0 -24
  278. package/dist/chunk-JZT4QGIP.js.map +0 -1
  279. package/dist/chunk-LAJJPLEV.js.map +0 -1
  280. package/dist/chunk-LV2G7VHL.js.map +0 -1
  281. package/dist/chunk-LW25LMIH.js +0 -26
  282. package/dist/chunk-LW25LMIH.js.map +0 -1
  283. package/dist/chunk-M5FVUIYP.js.map +0 -1
  284. package/dist/chunk-MPCCRRE6.js.map +0 -1
  285. package/dist/chunk-NJMGCT63.js +0 -54
  286. package/dist/chunk-NJMGCT63.js.map +0 -1
  287. package/dist/chunk-NOHWIBRX.js.map +0 -1
  288. package/dist/chunk-OHROA3FQ.js +0 -54
  289. package/dist/chunk-OHROA3FQ.js.map +0 -1
  290. package/dist/chunk-OPYQ5KIO.js +0 -52
  291. package/dist/chunk-OPYQ5KIO.js.map +0 -1
  292. package/dist/chunk-OZAEWZZ3.js.map +0 -1
  293. package/dist/chunk-Q2IAILVC.js.map +0 -1
  294. package/dist/chunk-QCZ2XUKH.js.map +0 -1
  295. package/dist/chunk-QGRDPSAH.js.map +0 -1
  296. package/dist/chunk-RNQN2FOU.js.map +0 -1
  297. package/dist/chunk-RO5IQEDQ.js.map +0 -1
  298. package/dist/chunk-RQK5UPMP.js.map +0 -1
  299. package/dist/chunk-S5OVP467.js +0 -1795
  300. package/dist/chunk-S5OVP467.js.map +0 -1
  301. package/dist/chunk-SFUCUARB.js +0 -21
  302. package/dist/chunk-SFUCUARB.js.map +0 -1
  303. package/dist/chunk-SWCDFEUK.js.map +0 -1
  304. package/dist/chunk-TA3WMOMU.js.map +0 -1
  305. package/dist/chunk-TURD42QO.js +0 -1782
  306. package/dist/chunk-TURD42QO.js.map +0 -1
  307. package/dist/chunk-TWGVQLG2.js.map +0 -1
  308. package/dist/chunk-U6QSXTUS.js +0 -7
  309. package/dist/chunk-U6QSXTUS.js.map +0 -1
  310. package/dist/chunk-UGK4TAVK.js.map +0 -1
  311. package/dist/chunk-UT2OPSN4.js.map +0 -1
  312. package/dist/chunk-VGLHY6BK.js.map +0 -1
  313. package/dist/chunk-VWKUT4CW.js.map +0 -1
  314. package/dist/chunk-W7FLHT65.js +0 -26
  315. package/dist/chunk-W7FLHT65.js.map +0 -1
  316. package/dist/chunk-WAR4Q2NM.js.map +0 -1
  317. package/dist/chunk-WHFUWWI6.js +0 -2097
  318. package/dist/chunk-WHFUWWI6.js.map +0 -1
  319. package/dist/chunk-XGJ2QERC.js.map +0 -1
  320. package/dist/chunk-XHCBHYN4.js +0 -54
  321. package/dist/chunk-XHCBHYN4.js.map +0 -1
  322. package/dist/chunk-XLQI4IT2.js +0 -54
  323. package/dist/chunk-XLQI4IT2.js.map +0 -1
  324. package/dist/chunk-XWVDS66D.js +0 -963
  325. package/dist/chunk-XWVDS66D.js.map +0 -1
  326. package/dist/chunk-YGZMVNN5.js +0 -54
  327. package/dist/chunk-YGZMVNN5.js.map +0 -1
  328. package/dist/chunk-YUK3X3B4.js +0 -27
  329. package/dist/chunk-YUK3X3B4.js.map +0 -1
  330. package/dist/chunk-ZEGAMJO2.js.map +0 -1
  331. package/dist/chunk-ZNWVJ6UW.js +0 -54
  332. package/dist/chunk-ZNWVJ6UW.js.map +0 -1
  333. package/dist/config-3BBWD5AB.js +0 -11
  334. package/dist/config-4UDVSUQJ.js +0 -11
  335. package/dist/config-CMDBAPDH.js +0 -11
  336. package/dist/config-D3RLSPNF.js +0 -11
  337. package/dist/config-DG65OEG3.js +0 -11
  338. package/dist/config-GCQK6NJY.js +0 -11
  339. package/dist/config-GVH27UPE.js +0 -11
  340. package/dist/config-HXVYIXP5.js +0 -11
  341. package/dist/config-IDZMEW73.js +0 -11
  342. package/dist/config-IJJXGLBQ.js +0 -11
  343. package/dist/config-KJOLGVB2.js +0 -11
  344. package/dist/config-KMVCVBYN.js +0 -15
  345. package/dist/config-KYTRXAB2.js +0 -15
  346. package/dist/config-OT2TQQCN.js +0 -11
  347. package/dist/config-QWCY3LBQ.js +0 -11
  348. package/dist/config-ZV6G2ZEC.js +0 -11
  349. package/dist/databricks_volume-7XOUYSTY.js +0 -7
  350. package/dist/digitalocean-3CQ4CPPZ.js +0 -10
  351. package/dist/discord-BG7OSRJG.js +0 -8
  352. package/dist/disk-XVLBCVKE.js +0 -8
  353. package/dist/dropbox-74GYLV3R.js +0 -8
  354. package/dist/email-5IZ7OBQ4.js +0 -8
  355. package/dist/gcs-EMEYU2XT.js +0 -10
  356. package/dist/gdocs-R67TDPON.js +0 -8
  357. package/dist/gdrive-PRN2ALRK.js +0 -8
  358. package/dist/github-DV7E6OFV.js +0 -8
  359. package/dist/github_ci-Q554V5PA.js +0 -8
  360. package/dist/gmail-OLN2LT4O.js +0 -8
  361. package/dist/gsheets-H4RYMQJ5.js +0 -8
  362. package/dist/gslides-YLCHKJOM.js +0 -8
  363. package/dist/hf_buckets-DTKXKKFF.js +0 -10
  364. package/dist/hf_datasets-55C4APKR.js +0 -10
  365. package/dist/hf_models-RO5JR36V.js +0 -10
  366. package/dist/hf_spaces-ZVZ3EDRX.js +0 -10
  367. package/dist/langfuse-ACASJZ7O.js +0 -8
  368. package/dist/linear-IC37LZV7.js +0 -8
  369. package/dist/minio-HZ576XFQ.js +0 -10
  370. package/dist/mongodb-JVR62OIO.js +0 -7
  371. package/dist/notion-HKRPQMJS.js +0 -8
  372. package/dist/oci-ZLVECXTW.js +0 -10
  373. package/dist/postgres-P36Z2YN4.js +0 -7
  374. package/dist/qingstor-YLP6K3L4.js +0 -10
  375. package/dist/r2-RPK25ANI.js +0 -10
  376. package/dist/redis-V5ULXULL.js +0 -8
  377. package/dist/s3-4OIOCAAT.js +0 -8
  378. package/dist/scaleway-CCWCLUHB.js +0 -10
  379. package/dist/seaweedfs-QSWKF2FN.js +0 -10
  380. package/dist/slack-YPS7PII3.js +0 -8
  381. package/dist/ssh-YFP3SMTJ.js +0 -9
  382. package/dist/supabase-6CFTOKGZ.js +0 -10
  383. package/dist/tencent-IWZZOSQ4.js +0 -10
  384. package/dist/trello-XYKWZD6P.js +0 -8
  385. package/dist/wasabi-6Z4DC5S5.js +0 -10
  386. /package/dist/{aliyun-JMJ3PFYY.js.map → aliyun-S62BR3TB.js.map} +0 -0
  387. /package/dist/{backblaze-TDFD23QO.js.map → backblaze-4EKSW63F.js.map} +0 -0
  388. /package/dist/{box-GQ2U2R6R.js.map → box-ZPLZAGMK.js.map} +0 -0
  389. /package/dist/{ceph-S2VOYO6G.js.map → ceph-ALKLD3MO.js.map} +0 -0
  390. /package/dist/{chunk-HJJMP6IX.js.map → chunk-BZTVYOES.js.map} +0 -0
  391. /package/dist/{chunk-X5HF2OFP.js.map → chunk-ENW5BVYN.js.map} +0 -0
  392. /package/dist/{chunk-HGCRXJGP.js.map → chunk-ETIAW4YD.js.map} +0 -0
  393. /package/dist/{chunk-DM4GSE26.js.map → chunk-GMMQ3ZK4.js.map} +0 -0
  394. /package/dist/{chunk-N5FSLVKO.js.map → chunk-HCRYAFBI.js.map} +0 -0
  395. /package/dist/{chunk-UINQOUZR.js.map → chunk-OXEQSPND.js.map} +0 -0
  396. /package/dist/{config-34LHOGLM.js.map → config-2YBCHU2W.js.map} +0 -0
  397. /package/dist/{config-3BBWD5AB.js.map → config-3YRGRW72.js.map} +0 -0
  398. /package/dist/{config-3IVQJBNW.js.map → config-4GSOMUMF.js.map} +0 -0
  399. /package/dist/{config-4UDVSUQJ.js.map → config-5YBUWFUP.js.map} +0 -0
  400. /package/dist/{config-CMDBAPDH.js.map → config-5ZRKJTKG.js.map} +0 -0
  401. /package/dist/{config-CVZ2AGCO.js.map → config-A25LTL5W.js.map} +0 -0
  402. /package/dist/{config-D3RLSPNF.js.map → config-CLU7JABG.js.map} +0 -0
  403. /package/dist/{config-DG65OEG3.js.map → config-D2RF7L3N.js.map} +0 -0
  404. /package/dist/{config-EIHSP5DZ.js.map → config-E55TKM6K.js.map} +0 -0
  405. /package/dist/{config-EO23EY62.js.map → config-ELDOFRJW.js.map} +0 -0
  406. /package/dist/{config-GCQK6NJY.js.map → config-FPC3RBFD.js.map} +0 -0
  407. /package/dist/{config-GE4W4ZJC.js.map → config-FPM3LAW7.js.map} +0 -0
  408. /package/dist/{config-GHRUKEQ6.js.map → config-G3F54CS4.js.map} +0 -0
  409. /package/dist/{config-GVH27UPE.js.map → config-G43HRUI3.js.map} +0 -0
  410. /package/dist/{config-HKRMKD76.js.map → config-GG3WO5PB.js.map} +0 -0
  411. /package/dist/{config-HXVYIXP5.js.map → config-JUYBWAZE.js.map} +0 -0
  412. /package/dist/{config-IDZMEW73.js.map → config-LJ5T6TVA.js.map} +0 -0
  413. /package/dist/{config-IJJXGLBQ.js.map → config-MDSAE4O3.js.map} +0 -0
  414. /package/dist/{config-IVY5EQQ2.js.map → config-NRIOKK5T.js.map} +0 -0
  415. /package/dist/{config-KJOLGVB2.js.map → config-OYK2BSJK.js.map} +0 -0
  416. /package/dist/{config-KMVCVBYN.js.map → config-PB3KA2CE.js.map} +0 -0
  417. /package/dist/{config-KYTRXAB2.js.map → config-QY4IL3PH.js.map} +0 -0
  418. /package/dist/{config-LHFFXVYI.js.map → config-R4LAOEDS.js.map} +0 -0
  419. /package/dist/{config-NV5WXP64.js.map → config-RIAAD6RW.js.map} +0 -0
  420. /package/dist/{config-OT2TQQCN.js.map → config-SYNEQAUB.js.map} +0 -0
  421. /package/dist/{config-Q45Y46YT.js.map → config-TJKGYA2B.js.map} +0 -0
  422. /package/dist/{config-QAA646XB.js.map → config-UU27ALAA.js.map} +0 -0
  423. /package/dist/{config-QNMKWJ4M.js.map → config-UURRGA7U.js.map} +0 -0
  424. /package/dist/{config-QWCY3LBQ.js.map → config-VPLHQXVE.js.map} +0 -0
  425. /package/dist/{config-VM526IKB.js.map → config-WRACCRPN.js.map} +0 -0
  426. /package/dist/{config-WDAZFXYD.js.map → config-WVHKXEVE.js.map} +0 -0
  427. /package/dist/{config-ZFJYQZCH.js.map → config-XU7R36IE.js.map} +0 -0
  428. /package/dist/{config-ZV6G2ZEC.js.map → config-Y2KOUYSS.js.map} +0 -0
  429. /package/dist/{databricks_volume-7XOUYSTY.js.map → databricks_volume-CNCPTZHS.js.map} +0 -0
  430. /package/dist/{digitalocean-3CQ4CPPZ.js.map → digitalocean-DJZOUB6Q.js.map} +0 -0
  431. /package/dist/{discord-BG7OSRJG.js.map → discord-ETB2CADR.js.map} +0 -0
  432. /package/dist/{disk-XVLBCVKE.js.map → disk-WEHSTK3F.js.map} +0 -0
  433. /package/dist/{dropbox-74GYLV3R.js.map → dropbox-XN6PGLNE.js.map} +0 -0
  434. /package/dist/{email-5IZ7OBQ4.js.map → email-OV7XCP3T.js.map} +0 -0
  435. /package/dist/{gcs-EMEYU2XT.js.map → gcal-P56MRCGU.js.map} +0 -0
  436. /package/dist/{gdocs-R67TDPON.js.map → gcs-HFBIAE2C.js.map} +0 -0
  437. /package/dist/{gdrive-PRN2ALRK.js.map → gdocs-LQ3UXP3J.js.map} +0 -0
  438. /package/dist/{github-DV7E6OFV.js.map → gdrive-N6UBYLON.js.map} +0 -0
  439. /package/dist/{github_ci-Q554V5PA.js.map → github-BPZREGPI.js.map} +0 -0
  440. /package/dist/{gmail-OLN2LT4O.js.map → github_ci-7A4LUIZ7.js.map} +0 -0
  441. /package/dist/{gsheets-H4RYMQJ5.js.map → gmail-YED2MF6H.js.map} +0 -0
  442. /package/dist/{gslides-YLCHKJOM.js.map → gridfs-CPLQ4G62.js.map} +0 -0
  443. /package/dist/{hf_buckets-DTKXKKFF.js.map → gsheets-4BNIJPQ6.js.map} +0 -0
  444. /package/dist/{hf_datasets-55C4APKR.js.map → gslides-GDBYLO5A.js.map} +0 -0
  445. /package/dist/{hf_models-RO5JR36V.js.map → hf_buckets-FTJITQ3P.js.map} +0 -0
  446. /package/dist/{hf_spaces-ZVZ3EDRX.js.map → hf_datasets-6GXVKQD7.js.map} +0 -0
  447. /package/dist/{langfuse-ACASJZ7O.js.map → hf_models-PJPGZAC5.js.map} +0 -0
  448. /package/dist/{linear-IC37LZV7.js.map → hf_spaces-LFNFOLBF.js.map} +0 -0
  449. /package/dist/{minio-HZ576XFQ.js.map → jaeger-GCA6MJ6E.js.map} +0 -0
  450. /package/dist/{mongodb-JVR62OIO.js.map → lancedb-TJ5YSJY5.js.map} +0 -0
  451. /package/dist/{notion-HKRPQMJS.js.map → langfuse-RUMTUMXS.js.map} +0 -0
  452. /package/dist/{oci-ZLVECXTW.js.map → linear-BCE4KEAC.js.map} +0 -0
  453. /package/dist/{postgres-P36Z2YN4.js.map → minio-5SO6KBTK.js.map} +0 -0
  454. /package/dist/{qingstor-YLP6K3L4.js.map → mongodb-L5CMN2EE.js.map} +0 -0
  455. /package/dist/{r2-RPK25ANI.js.map → nextcloud-4O2LZVW2.js.map} +0 -0
  456. /package/dist/{redis-V5ULXULL.js.map → notion-RVKEAQ2M.js.map} +0 -0
  457. /package/dist/{s3-4OIOCAAT.js.map → oci-OQXOIC62.js.map} +0 -0
  458. /package/dist/{scaleway-CCWCLUHB.js.map → postgres-AV45GNRS.js.map} +0 -0
  459. /package/dist/{seaweedfs-QSWKF2FN.js.map → qingstor-W277YA4K.js.map} +0 -0
  460. /package/dist/{slack-YPS7PII3.js.map → r2-FUA4IORE.js.map} +0 -0
  461. /package/dist/{ssh-YFP3SMTJ.js.map → redis-LPS357NF.js.map} +0 -0
  462. /package/dist/{supabase-6CFTOKGZ.js.map → s3-FPNWWIVM.js.map} +0 -0
  463. /package/dist/{tencent-IWZZOSQ4.js.map → scaleway-BP3732U7.js.map} +0 -0
  464. /package/dist/{trello-XYKWZD6P.js.map → seaweedfs-MC6HIEP4.js.map} +0 -0
  465. /package/dist/{wasabi-6Z4DC5S5.js.map → slack-JFGW7VLN.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/databricks_volume/databricks_volume.ts","../src/resource/databricks_volume/config.ts","../src/resource/databricks_volume/profile.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n DATABRICKS_VOLUME_COMMANDS,\n DATABRICKS_VOLUME_OPS,\n DATABRICKS_VOLUME_PROMPT,\n DatabricksVolumeAccessor,\n PathSpec,\n ResourceName,\n databricksVolumeCopy,\n databricksVolumeCreate,\n databricksVolumeExists,\n databricksVolumeMkdir,\n databricksVolumeRangeRead,\n databricksVolumeRead,\n databricksVolumeReadStream,\n databricksVolumeReaddir,\n databricksVolumeRename,\n databricksVolumeRmRecursive,\n databricksVolumeRmdir,\n databricksVolumeStat,\n databricksVolumeUnlink,\n databricksVolumeWrite,\n mountKey,\n mountPrefixOf,\n makeResolveGlob,\n type FileStat,\n type FindOptions,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n walkFind,\n} from '@struktoai/mirage-core'\nimport {\n redactDatabricksVolumeConfig,\n type DatabricksVolumeConfig,\n type DatabricksVolumeConfigRedacted,\n} from './config.ts'\nimport { loadDatabricksProfile } from './profile.ts'\n\nconst resolveDatabricksVolumeGlob = makeResolveGlob(databricksVolumeReaddir)\n\nexport interface DatabricksVolumeResourceState {\n type: string\n config: DatabricksVolumeConfigRedacted\n}\n\nasync function resolveAuth(config: DatabricksVolumeConfig): Promise<[string, string]> {\n let host = config.host ?? process.env.DATABRICKS_HOST\n let token = config.token ?? process.env.DATABRICKS_TOKEN\n if (host === undefined || host === '' || token === undefined || token === '') {\n const profileName = config.profile ?? process.env.DATABRICKS_CONFIG_PROFILE ?? 'DEFAULT'\n const profile = await loadDatabricksProfile(profileName)\n host = host !== undefined && host !== '' ? host : profile.host\n token = token !== undefined && token !== '' ? token : profile.token\n }\n if (host === undefined || host === '' || token === undefined || token === '') {\n throw new Error(\n 'databricks_volume: missing credentials; set host/token in the config, ' +\n 'DATABRICKS_HOST/DATABRICKS_TOKEN env vars, or a ~/.databrickscfg profile',\n )\n }\n return [host, token]\n}\n\nexport class DatabricksVolumeResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.DATABRICKS_VOLUME\n readonly cachesReads: boolean = true\n // The Files API lists DirectoryEntry.file_size and stat HEADs report\n // Content-Length, both the exact byte count the download returns;\n // readdir backfills any lister-omitted size with one HEAD.\n readonly sizesAlwaysKnown: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = DATABRICKS_VOLUME_PROMPT\n readonly config: DatabricksVolumeConfig\n readonly accessor: DatabricksVolumeAccessor\n readonly opsMap: Record<string, unknown> = {\n read_bytes: databricksVolumeRead,\n write: databricksVolumeWrite,\n readdir: databricksVolumeReaddir,\n stat: databricksVolumeStat,\n read_stream: databricksVolumeReadStream,\n range_read: databricksVolumeRangeRead,\n exists: databricksVolumeExists,\n create: databricksVolumeCreate,\n unlink: databricksVolumeUnlink,\n mkdir: databricksVolumeMkdir,\n rmdir: databricksVolumeRmdir,\n copy: databricksVolumeCopy,\n rename: databricksVolumeRename,\n rm_recursive: databricksVolumeRmRecursive,\n }\n\n private constructor(config: DatabricksVolumeConfig, accessor: DatabricksVolumeAccessor) {\n super()\n this.config = config\n this.accessor = accessor\n }\n\n static async create(config: DatabricksVolumeConfig): Promise<DatabricksVolumeResource> {\n const [host, token] = await resolveAuth(config)\n const accessor = new DatabricksVolumeAccessor(config, host, token)\n return new DatabricksVolumeResource(config, accessor)\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return DATABRICKS_VOLUME_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return DATABRICKS_VOLUME_OPS\n }\n\n streamPath(p: PathSpec): AsyncIterable<Uint8Array> {\n return databricksVolumeReadStream(this.accessor, p)\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return databricksVolumeRead(this.accessor, p)\n }\n\n writeFile(p: PathSpec, data: Uint8Array): Promise<void> {\n return databricksVolumeWrite(this.accessor, p, data)\n }\n\n async appendFile(p: PathSpec, data: Uint8Array): Promise<void> {\n let existing: Uint8Array\n try {\n existing = await databricksVolumeRead(this.accessor, p)\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') {\n existing = new Uint8Array()\n } else {\n throw err\n }\n }\n const merged = new Uint8Array(existing.byteLength + data.byteLength)\n merged.set(existing, 0)\n merged.set(data, existing.byteLength)\n await databricksVolumeWrite(this.accessor, p, merged)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return databricksVolumeReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return databricksVolumeStat(this.accessor, p)\n }\n\n exists(p: PathSpec): Promise<boolean> {\n return databricksVolumeExists(this.accessor, p)\n }\n\n mkdir(p: PathSpec): Promise<void> {\n return databricksVolumeMkdir(this.accessor, p, undefined, true)\n }\n\n rmdir(p: PathSpec): Promise<void> {\n return databricksVolumeRmdir(this.accessor, p)\n }\n\n unlink(p: PathSpec): Promise<void> {\n return databricksVolumeUnlink(this.accessor, p)\n }\n\n rename(src: PathSpec, dst: PathSpec): Promise<void> {\n return databricksVolumeRename(this.accessor, src, dst)\n }\n\n copy(src: PathSpec, dst: PathSpec): Promise<void> {\n return databricksVolumeCopy(this.accessor, src, dst)\n }\n\n async rmR(p: PathSpec): Promise<void> {\n await databricksVolumeRmRecursive(this.accessor, p)\n }\n\n find(p: PathSpec, options: FindOptions = {}): Promise<string[]> {\n // Databricks readdir returns slash-less paths, so the walker classifies\n // through stat (which resolves via the index cache).\n return walkFind(\n p,\n {\n readdir: (spec, idx) => databricksVolumeReaddir(this.accessor, spec, idx),\n stat: (spec, idx) => databricksVolumeStat(this.accessor, spec, idx),\n },\n options,\n this.index,\n )\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective = prefix\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath)\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return resolveDatabricksVolumeGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<DatabricksVolumeResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactDatabricksVolumeConfig(this.config),\n })\n }\n\n loadState(_state: DatabricksVolumeResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport {\n normalizeDatabricksVolumeConfig,\n redactDatabricksVolumeConfig,\n type DatabricksVolumeConfig,\n type DatabricksVolumeConfigRedacted,\n} from '@struktoai/mirage-core'\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { readFile } from 'node:fs/promises'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport interface DatabricksProfile {\n host?: string\n token?: string\n}\n\nexport function parseDatabricksCfg(content: string, profile: string): DatabricksProfile {\n const result: DatabricksProfile = {}\n let inSection = false\n for (const rawLine of content.split('\\n')) {\n const line = rawLine.trim()\n if (line === '' || line.startsWith('#') || line.startsWith(';')) continue\n if (line.startsWith('[') && line.endsWith(']')) {\n inSection = line.slice(1, -1).trim() === profile\n continue\n }\n if (!inSection) continue\n const eq = line.indexOf('=')\n if (eq === -1) continue\n const key = line.slice(0, eq).trim()\n const value = line.slice(eq + 1).trim()\n if (key === 'host') result.host = value\n if (key === 'token') result.token = value\n }\n return result\n}\n\nexport async function loadDatabricksProfile(profile: string): Promise<DatabricksProfile> {\n const cfgPath = process.env.DATABRICKS_CONFIG_FILE ?? join(homedir(), '.databrickscfg')\n let content: string\n try {\n content = await readFile(cfgPath, 'utf-8')\n } catch (err) {\n if ((err as { code?: string } | null)?.code === 'ENOENT') return {}\n throw err\n }\n return parseDatabricksCfg(content, profile)\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,20 @@
1
+ import {
2
+ makeRegionAlias
3
+ } from "./chunk-7ZP6TPHX.js";
4
+
5
+ // src/resource/qingstor/config.ts
6
+ var alias = makeRegionAlias(
7
+ (config) => `https://s3.${config.region}.qingstor.com`
8
+ );
9
+ var resolvedQingStorEndpoint = alias.resolvedEndpoint;
10
+ var qingStorToS3Config = alias.toS3Config;
11
+ var redactQingStorConfig = alias.redact;
12
+ var normalizeQingStorConfig = alias.normalize;
13
+
14
+ export {
15
+ resolvedQingStorEndpoint,
16
+ qingStorToS3Config,
17
+ redactQingStorConfig,
18
+ normalizeQingStorConfig
19
+ };
20
+ //# sourceMappingURL=chunk-IXA4DQE4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/qingstor/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport { makeRegionAlias, type S3AliasConfig, type S3AliasConfigRedacted } from '../s3_alias.ts'\n\nexport interface QingStorConfig extends S3AliasConfig {\n region: string\n}\n\nexport type QingStorConfigRedacted = S3AliasConfigRedacted\n\nconst alias = makeRegionAlias<QingStorConfig, QingStorConfigRedacted>(\n (config) => `https://s3.${config.region}.qingstor.com`,\n)\n\nexport const resolvedQingStorEndpoint = alias.resolvedEndpoint\nexport const qingStorToS3Config = alias.toS3Config\nexport const redactQingStorConfig = alias.redact\nexport const normalizeQingStorConfig = alias.normalize\n"],"mappings":";;;;;AAsBA,IAAM,QAAQ;AAAA,EACZ,CAAC,WAAW,cAAc,OAAO,MAAM;AACzC;AAEO,IAAM,2BAA2B,MAAM;AACvC,IAAM,qBAAqB,MAAM;AACjC,IAAM,uBAAuB,MAAM;AACnC,IAAM,0BAA0B,MAAM;","names":[]}
@@ -0,0 +1,11 @@
1
+ // src/resource/gdrive/config.ts
2
+ import {
3
+ normalizeGoogleConfig,
4
+ redactGoogleConfig
5
+ } from "@struktoai/mirage-core";
6
+
7
+ export {
8
+ normalizeGoogleConfig,
9
+ redactGoogleConfig
10
+ };
11
+ //# sourceMappingURL=chunk-IZMKMD3O.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/gdrive/config.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport {\n normalizeGoogleConfig as normalizeGDriveConfig,\n redactGoogleConfig as redactGDriveConfig,\n type GoogleConfig as GDriveConfig,\n type GoogleConfigRedacted as GDriveConfigRedacted,\n} from '@struktoai/mirage-core'\n"],"mappings":";AAcA;AAAA,EAC2B;AAAA,EACH;AAAA,OAGjB;","names":[]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  minioToS3Config,
3
3
  redactMinIOConfig
4
- } from "./chunk-DYXEITK3.js";
4
+ } from "./chunk-HVYVG5KQ.js";
5
5
  import {
6
6
  S3Resource
7
- } from "./chunk-TA3WMOMU.js";
7
+ } from "./chunk-EJZG5VUF.js";
8
8
 
9
9
  // src/resource/minio/minio.ts
10
10
  import {
@@ -17,8 +17,7 @@ import {
17
17
  var MINIO_PROMPT = `{prefix}
18
18
  Remote MinIO bucket (S3-compatible).
19
19
  IMPORTANT: This is a remote mount. Prefer targeted reads over full scans.
20
- Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.
21
- cat on .parquet/.orc/.feather returns a formatted table.`;
20
+ Supports: ls, cat, head, tail, grep, rg, wc, find, tree, jq, stat.`;
22
21
 
23
22
  // src/resource/minio/minio.ts
24
23
  var MinIOResource = class extends S3Resource {
@@ -54,4 +53,4 @@ export {
54
53
  MINIO_PROMPT,
55
54
  MinIOResource
56
55
  };
57
- //# sourceMappingURL=chunk-7CW3BMPH.js.map
56
+ //# sourceMappingURL=chunk-JJERW2BI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resource/minio/minio.ts","../src/resource/minio/prompt.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n remapCommandsResource,\n remapOpsResource,\n ResourceName,\n type RegisteredCommand,\n type RegisteredOp,\n} from '@struktoai/mirage-core'\nimport { S3Resource } from '../s3/s3.ts'\nimport {\n minioToS3Config,\n redactMinIOConfig,\n type MinIOConfig,\n type MinIOConfigRedacted,\n} from './config.ts'\nimport { MINIO_PROMPT } from './prompt.ts'\n\nexport interface MinIOResourceState {\n type: string\n config: MinIOConfigRedacted\n}\n\nexport class MinIOResource extends S3Resource {\n override readonly kind: string = ResourceName.MINIO\n override readonly prompt: string = MINIO_PROMPT\n readonly minioConfig: MinIOConfig\n private readonly minioOps: readonly RegisteredOp[]\n private readonly minioCommands: readonly RegisteredCommand[]\n\n constructor(config: MinIOConfig) {\n super(minioToS3Config(config))\n this.minioConfig = config\n this.minioOps = remapOpsResource(super.ops(), ResourceName.MINIO)\n this.minioCommands = remapCommandsResource(super.commands(), ResourceName.MINIO)\n }\n\n override ops(): readonly RegisteredOp[] {\n return this.minioOps\n }\n\n override commands(): readonly RegisteredCommand[] {\n return this.minioCommands\n }\n\n override getState(): Promise<MinIOResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactMinIOConfig(this.minioConfig),\n })\n }\n\n override loadState(_state: MinIOResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport const MINIO_PROMPT = `\\\n{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.`\n"],"mappings":";;;;;;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;;;ACNA,IAAM,eAAe;AAAA;AAAA;AAAA;AAAA;;;ADqBrB,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAC1B,OAAe,aAAa;AAAA,EAC5B,SAAiB;AAAA,EAC1B;AAAA,EACQ;AAAA,EACA;AAAA,EAEjB,YAAY,QAAqB;AAC/B,UAAM,gBAAgB,MAAM,CAAC;AAC7B,SAAK,cAAc;AACnB,SAAK,WAAW,iBAAiB,MAAM,IAAI,GAAG,aAAa,KAAK;AAChE,SAAK,gBAAgB,sBAAsB,MAAM,SAAS,GAAG,aAAa,KAAK;AAAA,EACjF;AAAA,EAES,MAA+B;AACtC,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAyC;AAChD,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAwC;AAC/C,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,kBAAkB,KAAK,WAAW;AAAA,IAC5C,CAAC;AAAA,EACH;AAAA,EAES,UAAU,QAA2C;AAC5D,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/resource/minio/minio.ts","../src/resource/minio/prompt.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n remapCommandsResource,\n remapOpsResource,\n ResourceName,\n type RegisteredCommand,\n type RegisteredOp,\n} from '@struktoai/mirage-core'\nimport { S3Resource } from '../s3/s3.ts'\nimport {\n minioToS3Config,\n redactMinIOConfig,\n type MinIOConfig,\n type MinIOConfigRedacted,\n} from './config.ts'\nimport { MINIO_PROMPT } from './prompt.ts'\n\nexport interface MinIOResourceState {\n type: string\n config: MinIOConfigRedacted\n}\n\nexport class MinIOResource extends S3Resource {\n override readonly kind: string = ResourceName.MINIO\n override readonly prompt: string = MINIO_PROMPT\n readonly minioConfig: MinIOConfig\n private readonly minioOps: readonly RegisteredOp[]\n private readonly minioCommands: readonly RegisteredCommand[]\n\n constructor(config: MinIOConfig) {\n super(minioToS3Config(config))\n this.minioConfig = config\n this.minioOps = remapOpsResource(super.ops(), ResourceName.MINIO)\n this.minioCommands = remapCommandsResource(super.commands(), ResourceName.MINIO)\n }\n\n override ops(): readonly RegisteredOp[] {\n return this.minioOps\n }\n\n override commands(): readonly RegisteredCommand[] {\n return this.minioCommands\n }\n\n override getState(): Promise<MinIOResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactMinIOConfig(this.minioConfig),\n })\n }\n\n override loadState(_state: MinIOResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n","// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nexport const MINIO_PROMPT = `\\\n{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"],"mappings":";;;;;;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAGK;;;ACNA,IAAM,eAAe;AAAA;AAAA;AAAA;;;ADqBrB,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAC1B,OAAe,aAAa;AAAA,EAC5B,SAAiB;AAAA,EAC1B;AAAA,EACQ;AAAA,EACA;AAAA,EAEjB,YAAY,QAAqB;AAC/B,UAAM,gBAAgB,MAAM,CAAC;AAC7B,SAAK,cAAc;AACnB,SAAK,WAAW,iBAAiB,MAAM,IAAI,GAAG,aAAa,KAAK;AAChE,SAAK,gBAAgB,sBAAsB,MAAM,SAAS,GAAG,aAAa,KAAK;AAAA,EACjF;AAAA,EAES,MAA+B;AACtC,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAyC;AAChD,WAAO,KAAK;AAAA,EACd;AAAA,EAES,WAAwC;AAC/C,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,kBAAkB,KAAK,WAAW;AAAA,IAC5C,CAAC;AAAA,EACH;AAAA,EAES,UAAU,QAA2C;AAC5D,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactLangfuseConfig
3
- } from "./chunk-VGLHY6BK.js";
3
+ } from "./chunk-IFUCGI4I.js";
4
4
 
5
5
  // src/resource/langfuse/langfuse.ts
6
6
  import {
@@ -8,15 +8,18 @@ import {
8
8
  HttpLangfuseTransport,
9
9
  LANGFUSE_COMMANDS,
10
10
  LANGFUSE_PROMPT,
11
- LANGFUSE_VFS_OPS,
11
+ LANGFUSE_OPS,
12
12
  LangfuseAccessor,
13
+ PathSpec,
14
+ ResourceName,
13
15
  langfuseRead,
14
16
  langfuseReaddir,
15
17
  langfuseStat,
16
- PathSpec,
17
- ResourceName,
18
- resolveLangfuseGlob
18
+ mountKey,
19
+ mountPrefixOf,
20
+ makeResolveGlob
19
21
  } from "@struktoai/mirage-core";
22
+ var resolveLangfuseGlob = makeResolveGlob(langfuseReaddir);
20
23
  var LangfuseResource = class extends BaseResource {
21
24
  kind = ResourceName.LANGFUSE;
22
25
  cachesReads = true;
@@ -47,14 +50,11 @@ var LangfuseResource = class extends BaseResource {
47
50
  open() {
48
51
  return Promise.resolve();
49
52
  }
50
- close() {
51
- return Promise.resolve();
52
- }
53
53
  commands() {
54
54
  return LANGFUSE_COMMANDS;
55
55
  }
56
56
  ops() {
57
- return LANGFUSE_VFS_OPS;
57
+ return LANGFUSE_OPS;
58
58
  }
59
59
  readFile(p) {
60
60
  return langfuseRead(this.accessor, p, this.index);
@@ -65,17 +65,14 @@ var LangfuseResource = class extends BaseResource {
65
65
  stat(p) {
66
66
  return langfuseStat(this.accessor, p, this.index);
67
67
  }
68
- fingerprint(_p) {
69
- return Promise.resolve(null);
70
- }
71
68
  glob(paths, prefix = "") {
72
69
  const effective = prefix !== "" ? paths.map(
73
- (p) => p.prefix !== "" ? p : new PathSpec({
74
- original: p.original,
70
+ (p) => mountPrefixOf(p.virtual, p.resourcePath) !== "" ? p : new PathSpec({
71
+ virtual: p.virtual,
75
72
  directory: p.directory,
76
73
  ...p.pattern !== null ? { pattern: p.pattern } : {},
77
74
  resolved: p.resolved,
78
- prefix
75
+ resourcePath: mountKey(p.virtual, prefix)
79
76
  })
80
77
  ) : paths;
81
78
  return resolveLangfuseGlob(this.accessor, effective, this.index);
@@ -94,4 +91,4 @@ var LangfuseResource = class extends BaseResource {
94
91
  export {
95
92
  LangfuseResource
96
93
  };
97
- //# sourceMappingURL=chunk-EM4J5EQS.js.map
94
+ //# sourceMappingURL=chunk-JQR4HVUX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/langfuse/langfuse.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BaseResource,\n HttpLangfuseTransport,\n LANGFUSE_COMMANDS,\n LANGFUSE_PROMPT,\n LANGFUSE_OPS,\n LangfuseAccessor,\n PathSpec,\n ResourceName,\n langfuseRead,\n langfuseReaddir,\n langfuseStat,\n mountKey,\n mountPrefixOf,\n makeResolveGlob,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactLangfuseConfig, type LangfuseConfig, type LangfuseConfigRedacted } from './config.ts'\n\nconst resolveLangfuseGlob = makeResolveGlob(langfuseReaddir)\n\nexport interface LangfuseResourceState {\n type: string\n config: LangfuseConfigRedacted\n}\n\nexport class LangfuseResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.LANGFUSE\n readonly cachesReads: boolean = true\n override readonly indexTtl: number = 600\n readonly prompt: string = LANGFUSE_PROMPT\n readonly config: LangfuseConfig\n readonly accessor: LangfuseAccessor\n\n constructor(config: LangfuseConfig) {\n super()\n this.config = config\n const transportOpts: { publicKey: string; secretKey: string; host?: string } = {\n publicKey: config.publicKey,\n secretKey: config.secretKey,\n }\n if (config.host !== undefined) transportOpts.host = config.host\n const accessorConfig: {\n defaultTraceLimit?: number\n defaultSearchLimit?: number\n defaultFromTimestamp?: string\n } = {}\n if (config.defaultTraceLimit !== undefined) {\n accessorConfig.defaultTraceLimit = config.defaultTraceLimit\n }\n if (config.defaultSearchLimit !== undefined) {\n accessorConfig.defaultSearchLimit = config.defaultSearchLimit\n }\n if (config.defaultFromTimestamp !== undefined) {\n accessorConfig.defaultFromTimestamp = config.defaultFromTimestamp\n }\n this.accessor = new LangfuseAccessor(new HttpLangfuseTransport(transportOpts), accessorConfig)\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return LANGFUSE_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return LANGFUSE_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return langfuseRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return langfuseReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return langfuseStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return resolveLangfuseGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<LangfuseResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactLangfuseConfig(this.config),\n })\n }\n\n loadState(_state: LangfuseResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,sBAAsB,gBAAgB,eAAe;AAOpD,IAAM,mBAAN,cAA+B,aAAiC;AAAA,EAC5D,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA,EACd,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAwB;AAClC,UAAM;AACN,SAAK,SAAS;AACd,UAAM,gBAAyE;AAAA,MAC7E,WAAW,OAAO;AAAA,MAClB,WAAW,OAAO;AAAA,IACpB;AACA,QAAI,OAAO,SAAS,OAAW,eAAc,OAAO,OAAO;AAC3D,UAAM,iBAIF,CAAC;AACL,QAAI,OAAO,sBAAsB,QAAW;AAC1C,qBAAe,oBAAoB,OAAO;AAAA,IAC5C;AACA,QAAI,OAAO,uBAAuB,QAAW;AAC3C,qBAAe,qBAAqB,OAAO;AAAA,IAC7C;AACA,QAAI,OAAO,yBAAyB,QAAW;AAC7C,qBAAe,uBAAuB,OAAO;AAAA,IAC/C;AACA,SAAK,WAAW,IAAI,iBAAiB,IAAI,sBAAsB,aAAa,GAAG,cAAc;AAAA,EAC/F;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,gBAAgB,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EACrD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,aAAa,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAClD;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,oBAAoB,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EACjE;AAAA,EAEA,WAA2C;AACzC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,qBAAqB,KAAK,MAAM;AAAA,IAC1C,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAA8C;AACtD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}
@@ -1,25 +1,31 @@
1
1
  import {
2
2
  redactBoxConfig
3
- } from "./chunk-OZAEWZZ3.js";
3
+ } from "./chunk-L42UTDFK.js";
4
4
 
5
5
  // src/resource/box/box.ts
6
6
  import {
7
- BaseResource,
8
7
  BOX_COMMANDS,
9
8
  BOX_PROMPT,
10
- BOX_VFS_OPS,
9
+ BOX_OPS,
10
+ BaseResource,
11
11
  BoxAccessor,
12
12
  BoxTokenManager,
13
13
  PathSpec,
14
14
  ResourceName,
15
15
  boxRead,
16
16
  boxReaddir,
17
- boxResolveGlob,
18
- boxStat
17
+ makeResolveGlob,
18
+ boxStat,
19
+ mountKey,
20
+ mountPrefixOf
19
21
  } from "@struktoai/mirage-core";
22
+ var boxResolveGlob = makeResolveGlob(boxReaddir);
20
23
  var BoxResource = class extends BaseResource {
21
24
  kind = ResourceName.BOX;
22
25
  cachesReads = true;
26
+ // Box item listings carry an exact byte `size` for every file (0
27
+ // included); sizeless weblinks are filtered out of listings.
28
+ sizesAlwaysKnown = true;
23
29
  indexTtl = 86400;
24
30
  prompt = BOX_PROMPT;
25
31
  config;
@@ -27,28 +33,21 @@ var BoxResource = class extends BaseResource {
27
33
  constructor(config) {
28
34
  super();
29
35
  this.config = config;
30
- const tm = new BoxTokenManager({
31
- ...config.clientId !== void 0 ? { clientId: config.clientId } : {},
32
- ...config.clientSecret !== void 0 ? { clientSecret: config.clientSecret } : {},
33
- ...config.refreshToken !== void 0 ? { refreshToken: config.refreshToken } : {},
34
- ...config.enterpriseId !== void 0 ? { enterpriseId: config.enterpriseId } : {},
35
- ...config.accessToken !== void 0 ? { accessToken: config.accessToken } : {},
36
- ...config.refreshFn !== void 0 ? { refreshFn: config.refreshFn } : {},
37
- ...config.onRefreshTokenRotated !== void 0 ? { onRefreshTokenRotated: config.onRefreshTokenRotated } : {}
36
+ const tm = new BoxTokenManager(config);
37
+ this.accessor = new BoxAccessor({
38
+ tokenManager: tm,
39
+ ...config.rootFolderId !== void 0 ? { rootFolderId: config.rootFolderId } : {},
40
+ ...config.contentSearch !== void 0 ? { contentSearch: config.contentSearch } : {}
38
41
  });
39
- this.accessor = new BoxAccessor({ tokenManager: tm });
40
42
  }
41
43
  open() {
42
44
  return Promise.resolve();
43
45
  }
44
- close() {
45
- return Promise.resolve();
46
- }
47
46
  commands() {
48
47
  return BOX_COMMANDS;
49
48
  }
50
49
  ops() {
51
- return BOX_VFS_OPS;
50
+ return BOX_OPS;
52
51
  }
53
52
  readFile(p) {
54
53
  return boxRead(this.accessor, p, this.index);
@@ -59,18 +58,14 @@ var BoxResource = class extends BaseResource {
59
58
  stat(p) {
60
59
  return boxStat(this.accessor, p, this.index);
61
60
  }
62
- async fingerprint(p) {
63
- const lookup = await this.index.get(p.original);
64
- return lookup.entry?.remoteTime ?? null;
65
- }
66
61
  glob(paths, prefix = "") {
67
62
  const effective = prefix !== "" ? paths.map(
68
- (p) => p.prefix !== "" ? p : new PathSpec({
69
- original: p.original,
63
+ (p) => mountPrefixOf(p.virtual, p.resourcePath) !== "" ? p : new PathSpec({
64
+ virtual: p.virtual,
70
65
  directory: p.directory,
71
66
  ...p.pattern !== null ? { pattern: p.pattern } : {},
72
67
  resolved: p.resolved,
73
- prefix
68
+ resourcePath: mountKey(p.virtual, prefix)
74
69
  })
75
70
  ) : paths;
76
71
  return boxResolveGlob(this.accessor, effective, this.index);
@@ -89,4 +84,4 @@ var BoxResource = class extends BaseResource {
89
84
  export {
90
85
  BoxResource
91
86
  };
92
- //# sourceMappingURL=chunk-VWKUT4CW.js.map
87
+ //# sourceMappingURL=chunk-JXOMDLFS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resource/box/box.ts"],"sourcesContent":["// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========\n\nimport {\n BOX_COMMANDS,\n BOX_PROMPT,\n BOX_OPS,\n BaseResource,\n BoxAccessor,\n BoxTokenManager,\n PathSpec,\n ResourceName,\n boxRead,\n boxReaddir,\n makeResolveGlob,\n boxStat,\n mountKey,\n mountPrefixOf,\n type FileStat,\n type RegisteredCommand,\n type RegisteredOp,\n type Resource,\n} from '@struktoai/mirage-core'\nimport { redactBoxConfig, type BoxConfig, type BoxConfigRedacted } from './config.ts'\n\nconst boxResolveGlob = makeResolveGlob(boxReaddir)\n\nexport interface BoxResourceState {\n type: string\n config: BoxConfigRedacted\n}\n\nexport class BoxResource extends BaseResource implements Resource {\n readonly kind: string = ResourceName.BOX\n readonly cachesReads: boolean = true\n // Box item listings carry an exact byte `size` for every file (0\n // included); sizeless weblinks are filtered out of listings.\n readonly sizesAlwaysKnown: boolean = true\n override readonly indexTtl: number = 86_400\n readonly prompt: string = BOX_PROMPT\n readonly config: BoxConfig\n readonly accessor: BoxAccessor\n\n constructor(config: BoxConfig) {\n super()\n this.config = config\n // The whole config goes to the token manager, never a hand-picked\n // subset: a field added to BoxConfig would silently stop reaching it\n // (that is how gdrive lost apiBase and kept refreshing at the real\n // Google endpoint against a fake server).\n const tm = new BoxTokenManager(config)\n this.accessor = new BoxAccessor({\n tokenManager: tm,\n ...(config.rootFolderId !== undefined ? { rootFolderId: config.rootFolderId } : {}),\n ...(config.contentSearch !== undefined ? { contentSearch: config.contentSearch } : {}),\n })\n }\n\n open(): Promise<void> {\n return Promise.resolve()\n }\n\n commands(): readonly RegisteredCommand[] {\n return BOX_COMMANDS\n }\n\n ops(): readonly RegisteredOp[] {\n return BOX_OPS\n }\n\n readFile(p: PathSpec): Promise<Uint8Array> {\n return boxRead(this.accessor, p, this.index)\n }\n\n readdir(p: PathSpec): Promise<string[]> {\n return boxReaddir(this.accessor, p, this.index)\n }\n\n stat(p: PathSpec): Promise<FileStat> {\n return boxStat(this.accessor, p, this.index)\n }\n\n glob(paths: readonly PathSpec[], prefix = ''): Promise<PathSpec[]> {\n const effective =\n prefix !== ''\n ? paths.map((p) =>\n mountPrefixOf(p.virtual, p.resourcePath) !== ''\n ? p\n : new PathSpec({\n virtual: p.virtual,\n directory: p.directory,\n ...(p.pattern !== null ? { pattern: p.pattern } : {}),\n resolved: p.resolved,\n resourcePath: mountKey(p.virtual, prefix),\n }),\n )\n : paths\n return boxResolveGlob(this.accessor, effective, this.index)\n }\n\n getState(): Promise<BoxResourceState> {\n return Promise.resolve({\n type: this.kind,\n config: redactBoxConfig(this.config),\n })\n }\n\n loadState(_state: BoxResourceState): Promise<void> {\n return Promise.resolve()\n }\n}\n"],"mappings":";;;;;AAcA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAKK;AAGP,IAAM,iBAAiB,gBAAgB,UAAU;AAO1C,IAAM,cAAN,cAA0B,aAAiC;AAAA,EACvD,OAAe,aAAa;AAAA,EAC5B,cAAuB;AAAA;AAAA;AAAA,EAGvB,mBAA4B;AAAA,EACnB,WAAmB;AAAA,EAC5B,SAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EAET,YAAY,QAAmB;AAC7B,UAAM;AACN,SAAK,SAAS;AAKd,UAAM,KAAK,IAAI,gBAAgB,MAAM;AACrC,SAAK,WAAW,IAAI,YAAY;AAAA,MAC9B,cAAc;AAAA,MACd,GAAI,OAAO,iBAAiB,SAAY,EAAE,cAAc,OAAO,aAAa,IAAI,CAAC;AAAA,MACjF,GAAI,OAAO,kBAAkB,SAAY,EAAE,eAAe,OAAO,cAAc,IAAI,CAAC;AAAA,IACtF,CAAC;AAAA,EACH;AAAA,EAEA,OAAsB;AACpB,WAAO,QAAQ,QAAQ;AAAA,EACzB;AAAA,EAEA,WAAyC;AACvC,WAAO;AAAA,EACT;AAAA,EAEA,MAA+B;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,GAAkC;AACzC,WAAO,QAAQ,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC7C;AAAA,EAEA,QAAQ,GAAgC;AACtC,WAAO,WAAW,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAChD;AAAA,EAEA,KAAK,GAAgC;AACnC,WAAO,QAAQ,KAAK,UAAU,GAAG,KAAK,KAAK;AAAA,EAC7C;AAAA,EAEA,KAAK,OAA4B,SAAS,IAAyB;AACjE,UAAM,YACJ,WAAW,KACP,MAAM;AAAA,MAAI,CAAC,MACT,cAAc,EAAE,SAAS,EAAE,YAAY,MAAM,KACzC,IACA,IAAI,SAAS;AAAA,QACX,SAAS,EAAE;AAAA,QACX,WAAW,EAAE;AAAA,QACb,GAAI,EAAE,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,CAAC;AAAA,QACnD,UAAU,EAAE;AAAA,QACZ,cAAc,SAAS,EAAE,SAAS,MAAM;AAAA,MAC1C,CAAC;AAAA,IACP,IACA;AACN,WAAO,eAAe,KAAK,UAAU,WAAW,KAAK,KAAK;AAAA,EAC5D;AAAA,EAEA,WAAsC;AACpC,WAAO,QAAQ,QAAQ;AAAA,MACrB,MAAM,KAAK;AAAA,MACX,QAAQ,gBAAgB,KAAK,MAAM;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EAEA,UAAU,QAAyC;AACjD,WAAO,QAAQ,QAAQ;AAAA,EACzB;AACF;","names":[]}