@struktoai/mirage-browser 0.0.7-alpha.2 → 0.0.7

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 (583) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +28 -29
  3. package/THIRD_PARTY_NOTICES +66 -0
  4. package/dist/accessor/opfs.d.ts +2 -2
  5. package/dist/accessor/opfs.d.ts.map +1 -1
  6. package/dist/accessor/opfs.js +2 -2
  7. package/dist/accessor/opfs.js.map +1 -1
  8. package/dist/core/opfs/append.d.ts +2 -0
  9. package/dist/core/opfs/append.d.ts.map +1 -1
  10. package/dist/core/opfs/append.js +40 -15
  11. package/dist/core/opfs/append.js.map +1 -1
  12. package/dist/core/opfs/constants.d.ts +0 -1
  13. package/dist/core/opfs/constants.d.ts.map +1 -1
  14. package/dist/core/opfs/constants.js +0 -1
  15. package/dist/core/opfs/constants.js.map +1 -1
  16. package/dist/core/opfs/copy.js +2 -2
  17. package/dist/core/opfs/copy.js.map +1 -1
  18. package/dist/core/opfs/create.js +2 -2
  19. package/dist/core/opfs/create.js.map +1 -1
  20. package/dist/core/opfs/exists.js +1 -1
  21. package/dist/core/opfs/exists.js.map +1 -1
  22. package/dist/core/opfs/mkdir.d.ts.map +1 -1
  23. package/dist/core/opfs/mkdir.js +2 -6
  24. package/dist/core/opfs/mkdir.js.map +1 -1
  25. package/dist/core/opfs/read.d.ts +1 -3
  26. package/dist/core/opfs/read.d.ts.map +1 -1
  27. package/dist/core/opfs/read.js +10 -14
  28. package/dist/core/opfs/read.js.map +1 -1
  29. package/dist/core/opfs/readdir.d.ts +2 -2
  30. package/dist/core/opfs/readdir.d.ts.map +1 -1
  31. package/dist/core/opfs/readdir.js +21 -9
  32. package/dist/core/opfs/readdir.js.map +1 -1
  33. package/dist/core/opfs/rename.js +2 -2
  34. package/dist/core/opfs/rename.js.map +1 -1
  35. package/dist/core/opfs/rm.js +1 -1
  36. package/dist/core/opfs/rm.js.map +1 -1
  37. package/dist/core/opfs/rmdir.js +2 -2
  38. package/dist/core/opfs/rmdir.js.map +1 -1
  39. package/dist/core/opfs/stat.js +1 -1
  40. package/dist/core/opfs/stat.js.map +1 -1
  41. package/dist/core/opfs/stream.d.ts +1 -1
  42. package/dist/core/opfs/stream.d.ts.map +1 -1
  43. package/dist/core/opfs/stream.js +10 -13
  44. package/dist/core/opfs/stream.js.map +1 -1
  45. package/dist/core/opfs/truncate.d.ts +1 -1
  46. package/dist/core/opfs/truncate.d.ts.map +1 -1
  47. package/dist/core/opfs/truncate.js +12 -10
  48. package/dist/core/opfs/truncate.js.map +1 -1
  49. package/dist/core/opfs/unlink.d.ts.map +1 -1
  50. package/dist/core/opfs/unlink.js +19 -3
  51. package/dist/core/opfs/unlink.js.map +1 -1
  52. package/dist/core/opfs/utils.d.ts +1 -0
  53. package/dist/core/opfs/utils.d.ts.map +1 -1
  54. package/dist/core/opfs/utils.js +10 -1
  55. package/dist/core/opfs/utils.js.map +1 -1
  56. package/dist/core/opfs/write.d.ts +3 -1
  57. package/dist/core/opfs/write.d.ts.map +1 -1
  58. package/dist/core/opfs/write.js +26 -10
  59. package/dist/core/opfs/write.js.map +1 -1
  60. package/dist/generated/wasm.d.ts.map +1 -1
  61. package/dist/generated/wasm.js +3 -0
  62. package/dist/generated/wasm.js.map +1 -1
  63. package/dist/index.d.ts +99 -101
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +98 -100
  66. package/dist/index.js.map +1 -1
  67. package/dist/vfs/aliyun/aliyun.d.ts +8 -0
  68. package/dist/vfs/aliyun/aliyun.d.ts.map +1 -0
  69. package/dist/{resource → vfs}/aliyun/aliyun.js +6 -6
  70. package/dist/vfs/aliyun/aliyun.js.map +1 -0
  71. package/dist/{resource → vfs}/aliyun/config.d.ts +3 -3
  72. package/dist/vfs/aliyun/config.d.ts.map +1 -0
  73. package/dist/vfs/aliyun/config.js.map +1 -0
  74. package/dist/{resource/supabase → vfs/aliyun}/prompt.d.ts +1 -1
  75. package/dist/vfs/aliyun/prompt.d.ts.map +1 -0
  76. package/dist/{resource → vfs}/aliyun/prompt.js +1 -1
  77. package/dist/vfs/aliyun/prompt.js.map +1 -0
  78. package/dist/vfs/backblaze/backblaze.d.ts +8 -0
  79. package/dist/vfs/backblaze/backblaze.d.ts.map +1 -0
  80. package/dist/{resource → vfs}/backblaze/backblaze.js +6 -6
  81. package/dist/vfs/backblaze/backblaze.js.map +1 -0
  82. package/dist/{resource → vfs}/backblaze/config.d.ts +3 -3
  83. package/dist/vfs/backblaze/config.d.ts.map +1 -0
  84. package/dist/vfs/backblaze/config.js.map +1 -0
  85. package/dist/vfs/backblaze/prompt.d.ts +2 -0
  86. package/dist/vfs/backblaze/prompt.d.ts.map +1 -0
  87. package/dist/{resource → vfs}/backblaze/prompt.js +1 -1
  88. package/dist/{resource/opfs → vfs/backblaze}/prompt.js.map +1 -1
  89. package/dist/vfs/ceph/ceph.d.ts +8 -0
  90. package/dist/vfs/ceph/ceph.d.ts.map +1 -0
  91. package/dist/{resource → vfs}/ceph/ceph.js +6 -6
  92. package/dist/vfs/ceph/ceph.js.map +1 -0
  93. package/dist/{resource → vfs}/ceph/config.d.ts +3 -3
  94. package/dist/vfs/ceph/config.d.ts.map +1 -0
  95. package/dist/vfs/ceph/config.js.map +1 -0
  96. package/dist/vfs/ceph/prompt.d.ts +2 -0
  97. package/dist/vfs/ceph/prompt.d.ts.map +1 -0
  98. package/dist/{resource → vfs}/ceph/prompt.js +1 -1
  99. package/dist/vfs/ceph/prompt.js.map +1 -0
  100. package/dist/{resource → vfs}/digitalocean/config.d.ts +3 -3
  101. package/dist/vfs/digitalocean/config.d.ts.map +1 -0
  102. package/dist/vfs/digitalocean/config.js.map +1 -0
  103. package/dist/vfs/digitalocean/digitalocean.d.ts +8 -0
  104. package/dist/vfs/digitalocean/digitalocean.d.ts.map +1 -0
  105. package/dist/{resource → vfs}/digitalocean/digitalocean.js +6 -6
  106. package/dist/vfs/digitalocean/digitalocean.js.map +1 -0
  107. package/dist/{resource/minio → vfs/digitalocean}/prompt.d.ts +1 -1
  108. package/dist/vfs/digitalocean/prompt.d.ts.map +1 -0
  109. package/dist/{resource → vfs}/digitalocean/prompt.js +1 -1
  110. package/dist/{resource/tencent → vfs/digitalocean}/prompt.js.map +1 -1
  111. package/dist/{resource → vfs}/discord/config.d.ts +4 -2
  112. package/dist/vfs/discord/config.d.ts.map +1 -0
  113. package/dist/{resource → vfs}/discord/config.js +7 -3
  114. package/dist/vfs/discord/config.js.map +1 -0
  115. package/dist/vfs/discord/discord.d.ts +19 -0
  116. package/dist/vfs/discord/discord.d.ts.map +1 -0
  117. package/dist/vfs/discord/discord.js +47 -0
  118. package/dist/vfs/discord/discord.js.map +1 -0
  119. package/dist/{resource → vfs}/gcs/config.d.ts +3 -3
  120. package/dist/vfs/gcs/config.d.ts.map +1 -0
  121. package/dist/vfs/gcs/config.js.map +1 -0
  122. package/dist/vfs/gcs/gcs.d.ts +8 -0
  123. package/dist/vfs/gcs/gcs.d.ts.map +1 -0
  124. package/dist/{resource → vfs}/gcs/gcs.js +6 -6
  125. package/dist/vfs/gcs/gcs.js.map +1 -0
  126. package/dist/vfs/gcs/prompt.d.ts +2 -0
  127. package/dist/vfs/gcs/prompt.d.ts.map +1 -0
  128. package/dist/{resource → vfs}/gcs/prompt.js +1 -1
  129. package/dist/vfs/gcs/prompt.js.map +1 -0
  130. package/dist/{resource → vfs}/minio/config.d.ts +3 -3
  131. package/dist/vfs/minio/config.d.ts.map +1 -0
  132. package/dist/vfs/minio/config.js.map +1 -0
  133. package/dist/vfs/minio/minio.d.ts +8 -0
  134. package/dist/vfs/minio/minio.d.ts.map +1 -0
  135. package/dist/{resource → vfs}/minio/minio.js +6 -6
  136. package/dist/vfs/minio/minio.js.map +1 -0
  137. package/dist/vfs/minio/prompt.d.ts +2 -0
  138. package/dist/vfs/minio/prompt.d.ts.map +1 -0
  139. package/dist/{resource → vfs}/minio/prompt.js +1 -1
  140. package/dist/vfs/minio/prompt.js.map +1 -0
  141. package/dist/{resource → vfs}/mongodb/http_driver.d.ts +4 -3
  142. package/dist/vfs/mongodb/http_driver.d.ts.map +1 -0
  143. package/dist/{resource → vfs}/mongodb/http_driver.js +5 -8
  144. package/dist/vfs/mongodb/http_driver.js.map +1 -0
  145. package/dist/vfs/mongodb/mongodb.d.ts +28 -0
  146. package/dist/vfs/mongodb/mongodb.d.ts.map +1 -0
  147. package/dist/vfs/mongodb/mongodb.js +55 -0
  148. package/dist/vfs/mongodb/mongodb.js.map +1 -0
  149. package/dist/{resource → vfs}/notion/config.d.ts +3 -3
  150. package/dist/vfs/notion/config.d.ts.map +1 -0
  151. package/dist/{resource → vfs}/notion/config.js +1 -1
  152. package/dist/vfs/notion/config.js.map +1 -0
  153. package/dist/vfs/notion/notion.d.ts +18 -0
  154. package/dist/vfs/notion/notion.d.ts.map +1 -0
  155. package/dist/vfs/notion/notion.js +42 -0
  156. package/dist/vfs/notion/notion.js.map +1 -0
  157. package/dist/{resource → vfs}/oci/config.d.ts +4 -4
  158. package/dist/vfs/oci/config.d.ts.map +1 -0
  159. package/dist/{resource → vfs}/oci/config.js +1 -1
  160. package/dist/vfs/oci/config.js.map +1 -0
  161. package/dist/vfs/oci/oci.d.ts +8 -0
  162. package/dist/vfs/oci/oci.d.ts.map +1 -0
  163. package/dist/{resource → vfs}/oci/oci.js +6 -6
  164. package/dist/vfs/oci/oci.js.map +1 -0
  165. package/dist/vfs/oci/prompt.d.ts +2 -0
  166. package/dist/vfs/oci/prompt.d.ts.map +1 -0
  167. package/dist/{resource → vfs}/oci/prompt.js +1 -1
  168. package/dist/vfs/oci/prompt.js.map +1 -0
  169. package/dist/vfs/opfs/opfs.d.ts +53 -0
  170. package/dist/vfs/opfs/opfs.d.ts.map +1 -0
  171. package/dist/{resource → vfs}/opfs/opfs.js +70 -101
  172. package/dist/vfs/opfs/opfs.js.map +1 -0
  173. package/dist/vfs/opfs/prompt.d.ts +2 -0
  174. package/dist/vfs/opfs/prompt.d.ts.map +1 -0
  175. package/dist/{resource → vfs}/opfs/prompt.js +1 -1
  176. package/dist/vfs/opfs/prompt.js.map +1 -0
  177. package/dist/vfs/postgres/neon_driver.d.ts.map +1 -0
  178. package/dist/{resource → vfs}/postgres/neon_driver.js +3 -2
  179. package/dist/vfs/postgres/neon_driver.js.map +1 -0
  180. package/dist/vfs/postgres/postgres.d.ts +27 -0
  181. package/dist/vfs/postgres/postgres.d.ts.map +1 -0
  182. package/dist/vfs/postgres/postgres.js +53 -0
  183. package/dist/vfs/postgres/postgres.js.map +1 -0
  184. package/dist/{resource → vfs}/qingstor/config.d.ts +3 -3
  185. package/dist/vfs/qingstor/config.d.ts.map +1 -0
  186. package/dist/vfs/qingstor/config.js.map +1 -0
  187. package/dist/{resource/r2 → vfs/qingstor}/prompt.d.ts +1 -1
  188. package/dist/vfs/qingstor/prompt.d.ts.map +1 -0
  189. package/dist/{resource → vfs}/qingstor/prompt.js +1 -1
  190. package/dist/{resource/oci → vfs/qingstor}/prompt.js.map +1 -1
  191. package/dist/vfs/qingstor/qingstor.d.ts +8 -0
  192. package/dist/vfs/qingstor/qingstor.d.ts.map +1 -0
  193. package/dist/{resource → vfs}/qingstor/qingstor.js +6 -6
  194. package/dist/vfs/qingstor/qingstor.js.map +1 -0
  195. package/dist/{resource → vfs}/r2/config.d.ts +4 -4
  196. package/dist/vfs/r2/config.d.ts.map +1 -0
  197. package/dist/{resource → vfs}/r2/config.js +1 -1
  198. package/dist/vfs/r2/config.js.map +1 -0
  199. package/dist/vfs/r2/prompt.d.ts +2 -0
  200. package/dist/vfs/r2/prompt.d.ts.map +1 -0
  201. package/dist/{resource → vfs}/r2/prompt.js +1 -1
  202. package/dist/vfs/r2/prompt.js.map +1 -0
  203. package/dist/vfs/r2/r2.d.ts +8 -0
  204. package/dist/vfs/r2/r2.d.ts.map +1 -0
  205. package/dist/{resource → vfs}/r2/r2.js +6 -6
  206. package/dist/vfs/r2/r2.js.map +1 -0
  207. package/dist/vfs/redis/redis.d.ts +17 -0
  208. package/dist/vfs/redis/redis.d.ts.map +1 -0
  209. package/dist/{resource → vfs}/redis/redis.js +3 -3
  210. package/dist/vfs/redis/redis.js.map +1 -0
  211. package/dist/{resource → vfs}/redis/store.d.ts +7 -2
  212. package/dist/vfs/redis/store.d.ts.map +1 -0
  213. package/dist/{resource → vfs}/redis/store.js +54 -4
  214. package/dist/vfs/redis/store.js.map +1 -0
  215. package/dist/vfs/registry.d.ts +25 -0
  216. package/dist/vfs/registry.d.ts.map +1 -0
  217. package/dist/vfs/registry.js +297 -0
  218. package/dist/vfs/registry.js.map +1 -0
  219. package/dist/{resource → vfs}/s3/config.d.ts +3 -3
  220. package/dist/vfs/s3/config.d.ts.map +1 -0
  221. package/dist/{resource → vfs}/s3/config.js +3 -3
  222. package/dist/vfs/s3/config.js.map +1 -0
  223. package/dist/vfs/s3/prompt.d.ts +2 -0
  224. package/dist/vfs/s3/prompt.d.ts.map +1 -0
  225. package/dist/vfs/s3/prompt.js +19 -0
  226. package/dist/vfs/s3/prompt.js.map +1 -0
  227. package/dist/vfs/s3/s3.d.ts +21 -0
  228. package/dist/vfs/s3/s3.d.ts.map +1 -0
  229. package/dist/vfs/s3/s3.js +64 -0
  230. package/dist/vfs/s3/s3.js.map +1 -0
  231. package/dist/{resource → vfs}/s3_alias.d.ts +17 -24
  232. package/dist/vfs/s3_alias.d.ts.map +1 -0
  233. package/dist/{resource → vfs}/s3_alias.js +14 -28
  234. package/dist/vfs/s3_alias.js.map +1 -0
  235. package/dist/{resource → vfs}/scaleway/config.d.ts +3 -3
  236. package/dist/vfs/scaleway/config.d.ts.map +1 -0
  237. package/dist/vfs/scaleway/config.js.map +1 -0
  238. package/dist/vfs/scaleway/prompt.d.ts +2 -0
  239. package/dist/vfs/scaleway/prompt.d.ts.map +1 -0
  240. package/dist/{resource → vfs}/scaleway/prompt.js +1 -1
  241. package/dist/{resource/gcs → vfs/scaleway}/prompt.js.map +1 -1
  242. package/dist/vfs/scaleway/scaleway.d.ts +8 -0
  243. package/dist/vfs/scaleway/scaleway.d.ts.map +1 -0
  244. package/dist/{resource → vfs}/scaleway/scaleway.js +6 -6
  245. package/dist/vfs/scaleway/scaleway.js.map +1 -0
  246. package/dist/{resource → vfs}/seaweedfs/config.d.ts +3 -3
  247. package/dist/vfs/seaweedfs/config.d.ts.map +1 -0
  248. package/dist/vfs/seaweedfs/config.js.map +1 -0
  249. package/dist/vfs/seaweedfs/prompt.d.ts +2 -0
  250. package/dist/vfs/seaweedfs/prompt.d.ts.map +1 -0
  251. package/dist/{resource → vfs}/seaweedfs/prompt.js +1 -1
  252. package/dist/{resource/ceph → vfs/seaweedfs}/prompt.js.map +1 -1
  253. package/dist/vfs/seaweedfs/seaweedfs.d.ts +8 -0
  254. package/dist/vfs/seaweedfs/seaweedfs.d.ts.map +1 -0
  255. package/dist/{resource → vfs}/seaweedfs/seaweedfs.js +6 -6
  256. package/dist/vfs/seaweedfs/seaweedfs.js.map +1 -0
  257. package/dist/{resource → vfs}/slack/config.d.ts +5 -2
  258. package/dist/vfs/slack/config.d.ts.map +1 -0
  259. package/dist/{resource → vfs}/slack/config.js +10 -3
  260. package/dist/vfs/slack/config.js.map +1 -0
  261. package/dist/vfs/slack/slack.d.ts +19 -0
  262. package/dist/vfs/slack/slack.d.ts.map +1 -0
  263. package/dist/vfs/slack/slack.js +48 -0
  264. package/dist/vfs/slack/slack.js.map +1 -0
  265. package/dist/{resource → vfs}/supabase/config.d.ts +4 -4
  266. package/dist/vfs/supabase/config.d.ts.map +1 -0
  267. package/dist/{resource → vfs}/supabase/config.js +1 -1
  268. package/dist/vfs/supabase/config.js.map +1 -0
  269. package/dist/vfs/supabase/prompt.d.ts +2 -0
  270. package/dist/vfs/supabase/prompt.d.ts.map +1 -0
  271. package/dist/{resource → vfs}/supabase/prompt.js +1 -1
  272. package/dist/vfs/supabase/prompt.js.map +1 -0
  273. package/dist/vfs/supabase/supabase.d.ts +8 -0
  274. package/dist/vfs/supabase/supabase.d.ts.map +1 -0
  275. package/dist/{resource → vfs}/supabase/supabase.js +6 -6
  276. package/dist/vfs/supabase/supabase.js.map +1 -0
  277. package/dist/{resource → vfs}/tencent/config.d.ts +3 -3
  278. package/dist/vfs/tencent/config.d.ts.map +1 -0
  279. package/dist/vfs/tencent/config.js.map +1 -0
  280. package/dist/vfs/tencent/prompt.d.ts +2 -0
  281. package/dist/vfs/tencent/prompt.d.ts.map +1 -0
  282. package/dist/{resource → vfs}/tencent/prompt.js +1 -1
  283. package/dist/{resource/r2 → vfs/tencent}/prompt.js.map +1 -1
  284. package/dist/vfs/tencent/tencent.d.ts +8 -0
  285. package/dist/vfs/tencent/tencent.d.ts.map +1 -0
  286. package/dist/{resource → vfs}/tencent/tencent.js +6 -6
  287. package/dist/vfs/tencent/tencent.js.map +1 -0
  288. package/dist/{resource → vfs}/wasabi/config.d.ts +3 -3
  289. package/dist/vfs/wasabi/config.d.ts.map +1 -0
  290. package/dist/vfs/wasabi/config.js.map +1 -0
  291. package/dist/vfs/wasabi/prompt.d.ts +2 -0
  292. package/dist/vfs/wasabi/prompt.d.ts.map +1 -0
  293. package/dist/{resource → vfs}/wasabi/prompt.js +1 -1
  294. package/dist/vfs/wasabi/prompt.js.map +1 -0
  295. package/dist/vfs/wasabi/wasabi.d.ts +8 -0
  296. package/dist/vfs/wasabi/wasabi.d.ts.map +1 -0
  297. package/dist/{resource → vfs}/wasabi/wasabi.js +6 -6
  298. package/dist/vfs/wasabi/wasabi.js.map +1 -0
  299. package/dist/workspace.d.ts +5 -4
  300. package/dist/workspace.d.ts.map +1 -1
  301. package/dist/workspace.js +11 -30
  302. package/dist/workspace.js.map +1 -1
  303. package/package.json +8 -6
  304. package/dist/commands/builtin/opfs/index.d.ts +0 -3
  305. package/dist/commands/builtin/opfs/index.d.ts.map +0 -1
  306. package/dist/commands/builtin/opfs/index.js +0 -20
  307. package/dist/commands/builtin/opfs/index.js.map +0 -1
  308. package/dist/commands/builtin/opfs/io.d.ts +0 -4
  309. package/dist/commands/builtin/opfs/io.d.ts.map +0 -1
  310. package/dist/commands/builtin/opfs/io.js +0 -56
  311. package/dist/commands/builtin/opfs/io.js.map +0 -1
  312. package/dist/core/opfs/du/entries.d.ts +0 -4
  313. package/dist/core/opfs/du/entries.d.ts.map +0 -1
  314. package/dist/core/opfs/du/entries.js +0 -56
  315. package/dist/core/opfs/du/entries.js.map +0 -1
  316. package/dist/core/opfs/du/index.d.ts +0 -3
  317. package/dist/core/opfs/du/index.d.ts.map +0 -1
  318. package/dist/core/opfs/du/index.js +0 -16
  319. package/dist/core/opfs/du/index.js.map +0 -1
  320. package/dist/core/opfs/du/size.d.ts +0 -4
  321. package/dist/core/opfs/du/size.d.ts.map +0 -1
  322. package/dist/core/opfs/du/size.js +0 -18
  323. package/dist/core/opfs/du/size.js.map +0 -1
  324. package/dist/core/opfs/du/walk.d.ts +0 -3
  325. package/dist/core/opfs/du/walk.d.ts.map +0 -1
  326. package/dist/core/opfs/du/walk.js +0 -98
  327. package/dist/core/opfs/du/walk.js.map +0 -1
  328. package/dist/core/opfs/entry.d.ts +0 -11
  329. package/dist/core/opfs/entry.d.ts.map +0 -1
  330. package/dist/core/opfs/entry.js +0 -42
  331. package/dist/core/opfs/entry.js.map +0 -1
  332. package/dist/core/opfs/find.d.ts +0 -21
  333. package/dist/core/opfs/find.d.ts.map +0 -1
  334. package/dist/core/opfs/find.js +0 -154
  335. package/dist/core/opfs/find.js.map +0 -1
  336. package/dist/ops/opfs/index.d.ts +0 -3
  337. package/dist/ops/opfs/index.d.ts.map +0 -1
  338. package/dist/ops/opfs/index.js +0 -23
  339. package/dist/ops/opfs/index.js.map +0 -1
  340. package/dist/resource/aliyun/aliyun.d.ts +0 -8
  341. package/dist/resource/aliyun/aliyun.d.ts.map +0 -1
  342. package/dist/resource/aliyun/aliyun.js.map +0 -1
  343. package/dist/resource/aliyun/config.d.ts.map +0 -1
  344. package/dist/resource/aliyun/config.js.map +0 -1
  345. package/dist/resource/aliyun/prompt.d.ts +0 -2
  346. package/dist/resource/aliyun/prompt.d.ts.map +0 -1
  347. package/dist/resource/aliyun/prompt.js.map +0 -1
  348. package/dist/resource/backblaze/backblaze.d.ts +0 -8
  349. package/dist/resource/backblaze/backblaze.d.ts.map +0 -1
  350. package/dist/resource/backblaze/backblaze.js.map +0 -1
  351. package/dist/resource/backblaze/config.d.ts.map +0 -1
  352. package/dist/resource/backblaze/config.js.map +0 -1
  353. package/dist/resource/backblaze/prompt.d.ts +0 -2
  354. package/dist/resource/backblaze/prompt.d.ts.map +0 -1
  355. package/dist/resource/backblaze/prompt.js.map +0 -1
  356. package/dist/resource/box/box.d.ts +0 -34
  357. package/dist/resource/box/box.d.ts.map +0 -1
  358. package/dist/resource/box/box.js +0 -99
  359. package/dist/resource/box/box.js.map +0 -1
  360. package/dist/resource/box/config.d.ts +0 -41
  361. package/dist/resource/box/config.d.ts.map +0 -1
  362. package/dist/resource/box/config.js +0 -38
  363. package/dist/resource/box/config.js.map +0 -1
  364. package/dist/resource/ceph/ceph.d.ts +0 -8
  365. package/dist/resource/ceph/ceph.d.ts.map +0 -1
  366. package/dist/resource/ceph/ceph.js.map +0 -1
  367. package/dist/resource/ceph/config.d.ts.map +0 -1
  368. package/dist/resource/ceph/config.js.map +0 -1
  369. package/dist/resource/ceph/prompt.d.ts +0 -2
  370. package/dist/resource/ceph/prompt.d.ts.map +0 -1
  371. package/dist/resource/digitalocean/config.d.ts.map +0 -1
  372. package/dist/resource/digitalocean/config.js.map +0 -1
  373. package/dist/resource/digitalocean/digitalocean.d.ts +0 -8
  374. package/dist/resource/digitalocean/digitalocean.d.ts.map +0 -1
  375. package/dist/resource/digitalocean/digitalocean.js.map +0 -1
  376. package/dist/resource/digitalocean/prompt.d.ts +0 -2
  377. package/dist/resource/digitalocean/prompt.d.ts.map +0 -1
  378. package/dist/resource/digitalocean/prompt.js.map +0 -1
  379. package/dist/resource/discord/config.d.ts.map +0 -1
  380. package/dist/resource/discord/config.js.map +0 -1
  381. package/dist/resource/discord/discord.d.ts +0 -33
  382. package/dist/resource/discord/discord.d.ts.map +0 -1
  383. package/dist/resource/discord/discord.js +0 -90
  384. package/dist/resource/discord/discord.js.map +0 -1
  385. package/dist/resource/dropbox/config.d.ts +0 -34
  386. package/dist/resource/dropbox/config.d.ts.map +0 -1
  387. package/dist/resource/dropbox/config.js +0 -31
  388. package/dist/resource/dropbox/config.js.map +0 -1
  389. package/dist/resource/dropbox/dropbox.d.ts +0 -34
  390. package/dist/resource/dropbox/dropbox.d.ts.map +0 -1
  391. package/dist/resource/dropbox/dropbox.js +0 -95
  392. package/dist/resource/dropbox/dropbox.js.map +0 -1
  393. package/dist/resource/gcal/gcal.d.ts +0 -32
  394. package/dist/resource/gcal/gcal.d.ts.map +0 -1
  395. package/dist/resource/gcal/gcal.js +0 -87
  396. package/dist/resource/gcal/gcal.js.map +0 -1
  397. package/dist/resource/gcs/config.d.ts.map +0 -1
  398. package/dist/resource/gcs/config.js.map +0 -1
  399. package/dist/resource/gcs/gcs.d.ts +0 -8
  400. package/dist/resource/gcs/gcs.d.ts.map +0 -1
  401. package/dist/resource/gcs/gcs.js.map +0 -1
  402. package/dist/resource/gcs/prompt.d.ts +0 -2
  403. package/dist/resource/gcs/prompt.d.ts.map +0 -1
  404. package/dist/resource/gdocs/gdocs.d.ts +0 -32
  405. package/dist/resource/gdocs/gdocs.d.ts.map +0 -1
  406. package/dist/resource/gdocs/gdocs.js +0 -84
  407. package/dist/resource/gdocs/gdocs.js.map +0 -1
  408. package/dist/resource/gdrive/gdrive.d.ts +0 -34
  409. package/dist/resource/gdrive/gdrive.d.ts.map +0 -1
  410. package/dist/resource/gdrive/gdrive.js +0 -89
  411. package/dist/resource/gdrive/gdrive.js.map +0 -1
  412. package/dist/resource/github/github.d.ts +0 -38
  413. package/dist/resource/github/github.d.ts.map +0 -1
  414. package/dist/resource/github/github.js +0 -121
  415. package/dist/resource/github/github.js.map +0 -1
  416. package/dist/resource/gmail/gmail.d.ts +0 -33
  417. package/dist/resource/gmail/gmail.d.ts.map +0 -1
  418. package/dist/resource/gmail/gmail.js +0 -88
  419. package/dist/resource/gmail/gmail.js.map +0 -1
  420. package/dist/resource/gsheets/gsheets.d.ts +0 -32
  421. package/dist/resource/gsheets/gsheets.d.ts.map +0 -1
  422. package/dist/resource/gsheets/gsheets.js +0 -84
  423. package/dist/resource/gsheets/gsheets.js.map +0 -1
  424. package/dist/resource/gslides/gslides.d.ts +0 -32
  425. package/dist/resource/gslides/gslides.d.ts.map +0 -1
  426. package/dist/resource/gslides/gslides.js +0 -84
  427. package/dist/resource/gslides/gslides.js.map +0 -1
  428. package/dist/resource/langfuse/config.d.ts +0 -23
  429. package/dist/resource/langfuse/config.d.ts.map +0 -1
  430. package/dist/resource/langfuse/config.js +0 -36
  431. package/dist/resource/langfuse/config.js.map +0 -1
  432. package/dist/resource/langfuse/langfuse.d.ts +0 -31
  433. package/dist/resource/langfuse/langfuse.d.ts.map +0 -1
  434. package/dist/resource/langfuse/langfuse.js +0 -98
  435. package/dist/resource/langfuse/langfuse.js.map +0 -1
  436. package/dist/resource/linear/linear.d.ts +0 -33
  437. package/dist/resource/linear/linear.d.ts.map +0 -1
  438. package/dist/resource/linear/linear.js +0 -93
  439. package/dist/resource/linear/linear.js.map +0 -1
  440. package/dist/resource/minio/config.d.ts.map +0 -1
  441. package/dist/resource/minio/config.js.map +0 -1
  442. package/dist/resource/minio/minio.d.ts +0 -8
  443. package/dist/resource/minio/minio.d.ts.map +0 -1
  444. package/dist/resource/minio/minio.js.map +0 -1
  445. package/dist/resource/minio/prompt.d.ts.map +0 -1
  446. package/dist/resource/minio/prompt.js.map +0 -1
  447. package/dist/resource/mongodb/http_driver.d.ts.map +0 -1
  448. package/dist/resource/mongodb/http_driver.js.map +0 -1
  449. package/dist/resource/mongodb/mongodb.d.ts +0 -41
  450. package/dist/resource/mongodb/mongodb.d.ts.map +0 -1
  451. package/dist/resource/mongodb/mongodb.js +0 -100
  452. package/dist/resource/mongodb/mongodb.js.map +0 -1
  453. package/dist/resource/notion/config.d.ts.map +0 -1
  454. package/dist/resource/notion/config.js.map +0 -1
  455. package/dist/resource/notion/notion.d.ts +0 -32
  456. package/dist/resource/notion/notion.d.ts.map +0 -1
  457. package/dist/resource/notion/notion.js +0 -86
  458. package/dist/resource/notion/notion.js.map +0 -1
  459. package/dist/resource/oci/config.d.ts.map +0 -1
  460. package/dist/resource/oci/config.js.map +0 -1
  461. package/dist/resource/oci/oci.d.ts +0 -8
  462. package/dist/resource/oci/oci.d.ts.map +0 -1
  463. package/dist/resource/oci/oci.js.map +0 -1
  464. package/dist/resource/oci/prompt.d.ts +0 -2
  465. package/dist/resource/oci/prompt.d.ts.map +0 -1
  466. package/dist/resource/opfs/opfs.d.ts +0 -57
  467. package/dist/resource/opfs/opfs.d.ts.map +0 -1
  468. package/dist/resource/opfs/opfs.js.map +0 -1
  469. package/dist/resource/opfs/prompt.d.ts +0 -2
  470. package/dist/resource/opfs/prompt.d.ts.map +0 -1
  471. package/dist/resource/postgres/neon_driver.d.ts.map +0 -1
  472. package/dist/resource/postgres/neon_driver.js.map +0 -1
  473. package/dist/resource/postgres/postgres.d.ts +0 -40
  474. package/dist/resource/postgres/postgres.d.ts.map +0 -1
  475. package/dist/resource/postgres/postgres.js +0 -98
  476. package/dist/resource/postgres/postgres.js.map +0 -1
  477. package/dist/resource/qingstor/config.d.ts.map +0 -1
  478. package/dist/resource/qingstor/config.js.map +0 -1
  479. package/dist/resource/qingstor/prompt.d.ts +0 -2
  480. package/dist/resource/qingstor/prompt.d.ts.map +0 -1
  481. package/dist/resource/qingstor/prompt.js.map +0 -1
  482. package/dist/resource/qingstor/qingstor.d.ts +0 -8
  483. package/dist/resource/qingstor/qingstor.d.ts.map +0 -1
  484. package/dist/resource/qingstor/qingstor.js.map +0 -1
  485. package/dist/resource/r2/config.d.ts.map +0 -1
  486. package/dist/resource/r2/config.js.map +0 -1
  487. package/dist/resource/r2/prompt.d.ts.map +0 -1
  488. package/dist/resource/r2/r2.d.ts +0 -8
  489. package/dist/resource/r2/r2.d.ts.map +0 -1
  490. package/dist/resource/r2/r2.js.map +0 -1
  491. package/dist/resource/redis/redis.d.ts +0 -17
  492. package/dist/resource/redis/redis.d.ts.map +0 -1
  493. package/dist/resource/redis/redis.js.map +0 -1
  494. package/dist/resource/redis/store.d.ts.map +0 -1
  495. package/dist/resource/redis/store.js.map +0 -1
  496. package/dist/resource/registry.d.ts +0 -25
  497. package/dist/resource/registry.d.ts.map +0 -1
  498. package/dist/resource/registry.js +0 -279
  499. package/dist/resource/registry.js.map +0 -1
  500. package/dist/resource/s3/config.d.ts.map +0 -1
  501. package/dist/resource/s3/config.js.map +0 -1
  502. package/dist/resource/s3/s3.d.ts +0 -53
  503. package/dist/resource/s3/s3.d.ts.map +0 -1
  504. package/dist/resource/s3/s3.js +0 -182
  505. package/dist/resource/s3/s3.js.map +0 -1
  506. package/dist/resource/s3_alias.d.ts.map +0 -1
  507. package/dist/resource/s3_alias.js.map +0 -1
  508. package/dist/resource/scaleway/config.d.ts.map +0 -1
  509. package/dist/resource/scaleway/config.js.map +0 -1
  510. package/dist/resource/scaleway/prompt.d.ts +0 -2
  511. package/dist/resource/scaleway/prompt.d.ts.map +0 -1
  512. package/dist/resource/scaleway/prompt.js.map +0 -1
  513. package/dist/resource/scaleway/scaleway.d.ts +0 -8
  514. package/dist/resource/scaleway/scaleway.d.ts.map +0 -1
  515. package/dist/resource/scaleway/scaleway.js.map +0 -1
  516. package/dist/resource/seaweedfs/config.d.ts.map +0 -1
  517. package/dist/resource/seaweedfs/config.js.map +0 -1
  518. package/dist/resource/seaweedfs/prompt.d.ts +0 -2
  519. package/dist/resource/seaweedfs/prompt.d.ts.map +0 -1
  520. package/dist/resource/seaweedfs/prompt.js.map +0 -1
  521. package/dist/resource/seaweedfs/seaweedfs.d.ts +0 -8
  522. package/dist/resource/seaweedfs/seaweedfs.d.ts.map +0 -1
  523. package/dist/resource/seaweedfs/seaweedfs.js.map +0 -1
  524. package/dist/resource/slack/config.d.ts.map +0 -1
  525. package/dist/resource/slack/config.js.map +0 -1
  526. package/dist/resource/slack/slack.d.ts +0 -33
  527. package/dist/resource/slack/slack.d.ts.map +0 -1
  528. package/dist/resource/slack/slack.js +0 -91
  529. package/dist/resource/slack/slack.js.map +0 -1
  530. package/dist/resource/supabase/config.d.ts.map +0 -1
  531. package/dist/resource/supabase/config.js.map +0 -1
  532. package/dist/resource/supabase/prompt.d.ts.map +0 -1
  533. package/dist/resource/supabase/prompt.js.map +0 -1
  534. package/dist/resource/supabase/supabase.d.ts +0 -8
  535. package/dist/resource/supabase/supabase.d.ts.map +0 -1
  536. package/dist/resource/supabase/supabase.js.map +0 -1
  537. package/dist/resource/tencent/config.d.ts.map +0 -1
  538. package/dist/resource/tencent/config.js.map +0 -1
  539. package/dist/resource/tencent/prompt.d.ts +0 -2
  540. package/dist/resource/tencent/prompt.d.ts.map +0 -1
  541. package/dist/resource/tencent/tencent.d.ts +0 -8
  542. package/dist/resource/tencent/tencent.d.ts.map +0 -1
  543. package/dist/resource/tencent/tencent.js.map +0 -1
  544. package/dist/resource/trello/config.d.ts +0 -22
  545. package/dist/resource/trello/config.d.ts.map +0 -1
  546. package/dist/resource/trello/config.js +0 -35
  547. package/dist/resource/trello/config.js.map +0 -1
  548. package/dist/resource/trello/trello.d.ts +0 -32
  549. package/dist/resource/trello/trello.d.ts.map +0 -1
  550. package/dist/resource/trello/trello.js +0 -94
  551. package/dist/resource/trello/trello.js.map +0 -1
  552. package/dist/resource/wasabi/config.d.ts.map +0 -1
  553. package/dist/resource/wasabi/config.js.map +0 -1
  554. package/dist/resource/wasabi/prompt.d.ts +0 -2
  555. package/dist/resource/wasabi/prompt.d.ts.map +0 -1
  556. package/dist/resource/wasabi/prompt.js.map +0 -1
  557. package/dist/resource/wasabi/wasabi.d.ts +0 -8
  558. package/dist/resource/wasabi/wasabi.d.ts.map +0 -1
  559. package/dist/resource/wasabi/wasabi.js.map +0 -1
  560. package/dist/runtime/sandbox/e2b/config.d.ts +0 -2
  561. package/dist/runtime/sandbox/e2b/config.d.ts.map +0 -1
  562. package/dist/runtime/sandbox/e2b/config.js +0 -15
  563. package/dist/runtime/sandbox/e2b/config.js.map +0 -1
  564. package/dist/runtime/sandbox/e2b/runtime.d.ts +0 -2
  565. package/dist/runtime/sandbox/e2b/runtime.d.ts.map +0 -1
  566. package/dist/runtime/sandbox/e2b/runtime.js +0 -15
  567. package/dist/runtime/sandbox/e2b/runtime.js.map +0 -1
  568. package/dist/test-utils.d.ts +0 -37
  569. package/dist/test-utils.d.ts.map +0 -1
  570. package/dist/test-utils.js +0 -518
  571. package/dist/test-utils.js.map +0 -1
  572. /package/dist/{resource → vfs}/aliyun/config.js +0 -0
  573. /package/dist/{resource → vfs}/backblaze/config.js +0 -0
  574. /package/dist/{resource → vfs}/ceph/config.js +0 -0
  575. /package/dist/{resource → vfs}/digitalocean/config.js +0 -0
  576. /package/dist/{resource → vfs}/gcs/config.js +0 -0
  577. /package/dist/{resource → vfs}/minio/config.js +0 -0
  578. /package/dist/{resource → vfs}/postgres/neon_driver.d.ts +0 -0
  579. /package/dist/{resource → vfs}/qingstor/config.js +0 -0
  580. /package/dist/{resource → vfs}/scaleway/config.js +0 -0
  581. /package/dist/{resource → vfs}/seaweedfs/config.js +0 -0
  582. /package/dist/{resource → vfs}/tencent/config.js +0 -0
  583. /package/dist/{resource → vfs}/wasabi/config.js +0 -0
@@ -11,34 +11,30 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- import { makeResolveGlob } from '@struktoai/mirage-core/commands/builtin/generic_bind/index';
15
- import { BaseResource } from '@struktoai/mirage-core/resource/base';
16
- import { ResourceName } from '@struktoai/mirage-core/types';
14
+ import { chunks } from '@struktoai/mirage-core/io/cooperative';
15
+ import { BaseVFS } from '@struktoai/mirage-core/vfs/base';
16
+ import { VFSName } from '@struktoai/mirage-core/types';
17
17
  import { lstripSlash } from '@struktoai/mirage-core/utils/slash';
18
18
  import { compareCodePoints } from '@struktoai/mirage-core/utils/sort';
19
19
  import { OPFSAccessor } from "../../accessor/opfs.js";
20
- import { OPFS_COMMANDS } from "../../commands/builtin/opfs/index.js";
21
- import { appendBytes as appendCore } from "../../core/opfs/append.js";
22
- import { SCOPE_ERROR } from "../../core/opfs/constants.js";
23
- import { copy as copyCore } from "../../core/opfs/copy.js";
24
- import { size as duSizeCore } from "../../core/opfs/du/index.js";
25
- import { exists as existsCore } from "../../core/opfs/exists.js";
26
- import { find as findCore } from "../../core/opfs/find.js";
27
- import { mkdir as mkdirCore } from "../../core/opfs/mkdir.js";
28
- import { read as readCoreFn } from "../../core/opfs/read.js";
29
- import { readdir as readdirCore } from "../../core/opfs/readdir.js";
30
- import { rename as renameCore } from "../../core/opfs/rename.js";
31
- import { rmR as rmRCore } from "../../core/opfs/rm.js";
32
- import { rmdir as rmdirCore } from "../../core/opfs/rmdir.js";
33
- import { stat as statCore } from "../../core/opfs/stat.js";
34
- import { stream as streamCore } from "../../core/opfs/stream.js";
35
- import { truncate as truncateCore } from "../../core/opfs/truncate.js";
36
- import { unlink as unlinkCore } from "../../core/opfs/unlink.js";
37
20
  import { iterEntries, toWritableChunk } from "../../core/opfs/utils.js";
38
- import { writeBytes as writeCore } from "../../core/opfs/write.js";
39
- import { OPFS_OPS } from "../../ops/opfs/index.js";
40
- import { OPFS_PROMPT } from "./prompt.js";
41
- const globCore = makeResolveGlob(readdirCore, SCOPE_ERROR);
21
+ import { PROMPT } from "./prompt.js";
22
+ import { readdir as opfsReaddir } from "../../core/opfs/readdir.js";
23
+ import { read as opfsRead } from "../../core/opfs/read.js";
24
+ import { stat as opfsStat } from "../../core/opfs/stat.js";
25
+ import { readStream as opfsStream } from "../../core/opfs/stream.js";
26
+ import { exists as opfsExists } from "../../core/opfs/exists.js";
27
+ import { write as opfsWrite, writeStream as opfsWriteStream } from "../../core/opfs/write.js";
28
+ import { appendBytes as opfsAppend, appendStream as opfsAppendStream, } from "../../core/opfs/append.js";
29
+ import { create as opfsCreate } from "../../core/opfs/create.js";
30
+ import { mkdir as opfsMkdir } from "../../core/opfs/mkdir.js";
31
+ import { unlink as opfsUnlink } from "../../core/opfs/unlink.js";
32
+ import { rmdir as opfsRmdir } from "../../core/opfs/rmdir.js";
33
+ import { rmR as opfsRmR } from "../../core/opfs/rm.js";
34
+ import { rename as opfsRename } from "../../core/opfs/rename.js";
35
+ import { copy as opfsCopy } from "../../core/opfs/copy.js";
36
+ import { truncate as opfsTruncate } from "../../core/opfs/truncate.js";
37
+ import { SCOPE_ERROR } from "../../core/opfs/constants.js";
42
38
  async function walkFiles(dir, currentPath, files) {
43
39
  for await (const [name, handle] of iterEntries(dir)) {
44
40
  const childPath = currentPath === '' ? name : `${currentPath}/${name}`;
@@ -72,12 +68,12 @@ async function splitAndCreate(root, relativePath) {
72
68
  }
73
69
  return handle;
74
70
  }
75
- export class OPFSResource extends BaseResource {
76
- kind = ResourceName.OPFS;
71
+ export class OPFSVFS extends BaseVFS {
72
+ name = VFSName.OPFS;
77
73
  // OPFS is a real filesystem: getFile().size is the exact byte count a
78
74
  // read returns.
79
75
  sizesAlwaysKnown = true;
80
- prompt = OPFS_PROMPT;
76
+ prompt = PROMPT;
81
77
  rootName;
82
78
  accessor;
83
79
  rootHandle = null;
@@ -87,9 +83,6 @@ export class OPFSResource extends BaseResource {
87
83
  this.rootName = options.root ?? '';
88
84
  this.accessor = new OPFSAccessor(this);
89
85
  }
90
- open() {
91
- return this.ensureOpen().then(() => undefined);
92
- }
93
86
  async close() {
94
87
  this.rootHandle = null;
95
88
  this.openPromise = null;
@@ -97,10 +90,10 @@ export class OPFSResource extends BaseResource {
97
90
  }
98
91
  /**
99
92
  * Lazily resolve to a usable root handle. Memoizes `navigator.storage`
100
- * traversal so the resource self-initializes on first method call without
101
- * relying on an external orchestrator.
93
+ * traversal so the VFS self-initializes on the first op, the way the
94
+ * node redis store connects on its first command.
102
95
  */
103
- ensureOpen() {
96
+ root() {
104
97
  if (this.rootHandle !== null)
105
98
  return Promise.resolve(this.rootHandle);
106
99
  this.openPromise ??= (async () => {
@@ -116,108 +109,84 @@ export class OPFSResource extends BaseResource {
116
109
  })();
117
110
  return this.openPromise;
118
111
  }
119
- requireHandle() {
120
- if (this.rootHandle === null) {
121
- throw new Error('OPFSResource is not open — call open() first');
122
- }
123
- return this.rootHandle;
124
- }
125
- ops() {
126
- return OPFS_OPS;
127
- }
128
- commands() {
129
- return OPFS_COMMANDS;
130
- }
131
- async *streamPath(p) {
132
- await this.ensureOpen();
133
- yield* streamCore(this.accessor, p);
112
+ readsRanges = true;
113
+ local = true;
114
+ maxGlobMatches = SCOPE_ERROR;
115
+ readdir(path) {
116
+ return opfsReaddir(this.accessor, path);
134
117
  }
135
- async readFile(p) {
136
- await this.ensureOpen();
137
- return readCoreFn(this.accessor, p);
118
+ read(path, _handed, offset = 0, size = null) {
119
+ if (offset === 0 && size === null)
120
+ return opfsRead(this.accessor, path);
121
+ return opfsRead(this.accessor, path, size === null ? { offset } : { offset, size });
138
122
  }
139
- async writeFile(p, data) {
140
- await this.ensureOpen();
141
- return writeCore(this.accessor, p, data);
123
+ stat(path) {
124
+ return opfsStat(this.accessor, path);
142
125
  }
143
- async appendFile(p, data) {
144
- await this.ensureOpen();
145
- return appendCore(this.accessor, p, data);
126
+ readStream(path) {
127
+ return opfsStream(this.accessor, path);
146
128
  }
147
- async readdir(p) {
148
- await this.ensureOpen();
149
- return readdirCore(this.accessor, p);
129
+ exists(path) {
130
+ return opfsExists(this.accessor, path);
150
131
  }
151
- async stat(p) {
152
- await this.ensureOpen();
153
- return statCore(this.accessor, p);
132
+ write(path, data) {
133
+ return opfsWrite(this.accessor, path, data);
154
134
  }
155
- async exists(p) {
156
- await this.ensureOpen();
157
- return existsCore(this.accessor, p);
135
+ writeStream(path, data, signal) {
136
+ return opfsWriteStream(this.accessor, path, chunks(data, signal));
158
137
  }
159
- async mkdir(p, options) {
160
- await this.ensureOpen();
161
- return mkdirCore(this.accessor, p, options?.recursive === true);
138
+ appendStream(path, data, signal) {
139
+ return opfsAppendStream(this.accessor, path, chunks(data, signal));
162
140
  }
163
- async rmdir(p) {
164
- await this.ensureOpen();
165
- return rmdirCore(this.accessor, p);
141
+ append(path, data) {
142
+ return opfsAppend(this.accessor, path, data);
166
143
  }
167
- async unlink(p) {
168
- await this.ensureOpen();
169
- return unlinkCore(this.accessor, p);
144
+ create(path) {
145
+ return opfsCreate(this.accessor, path);
170
146
  }
171
- async rename(src, dst) {
172
- await this.ensureOpen();
173
- return renameCore(this.accessor, src, dst);
147
+ mkdir(path, parents = false) {
148
+ return opfsMkdir(this.accessor, path, parents);
174
149
  }
175
- async truncate(p, length) {
176
- await this.ensureOpen();
177
- return truncateCore(this.accessor, p, length);
150
+ unlink(path) {
151
+ return opfsUnlink(this.accessor, path);
178
152
  }
179
- async copy(src, dst) {
180
- await this.ensureOpen();
181
- return copyCore(this.accessor, src, dst);
153
+ rmdir(path) {
154
+ return opfsRmdir(this.accessor, path);
182
155
  }
183
- async rmR(p) {
184
- await this.ensureOpen();
185
- return rmRCore(this.accessor, p);
156
+ rmR(path) {
157
+ return opfsRmR(this.accessor, path);
186
158
  }
187
- async du(p) {
188
- await this.ensureOpen();
189
- return duSizeCore(this.accessor, p);
159
+ rename(src, dst) {
160
+ return opfsRename(this.accessor, src, dst);
190
161
  }
191
- async find(p, options = {}) {
192
- await this.ensureOpen();
193
- return findCore(this.accessor, p, options);
162
+ copy(src, dst) {
163
+ return opfsCopy(this.accessor, src, dst);
194
164
  }
195
- async glob(paths) {
196
- await this.ensureOpen();
197
- return globCore(this.accessor, paths);
165
+ truncate(path, length, noCreate = false) {
166
+ return opfsTruncate(this.accessor, path, length, noCreate);
198
167
  }
199
168
  async getState() {
200
- const handle = await this.ensureOpen();
169
+ const handle = await this.root();
201
170
  const files = {};
202
171
  await walkFiles(handle, '', files);
203
172
  const dirs = [];
204
173
  await walkDirs(handle, '', dirs);
205
174
  dirs.sort(compareCodePoints);
206
175
  return {
207
- type: this.kind,
176
+ type: this.name,
208
177
  files,
209
178
  dirs,
210
179
  };
211
180
  }
212
181
  async loadState(state) {
213
- const handle = await this.ensureOpen();
214
- for (const dir of state.dirs) {
182
+ const handle = await this.root();
183
+ for (const dir of state.dirs ?? []) {
215
184
  const rel = lstripSlash(dir);
216
185
  if (rel === '')
217
186
  continue;
218
187
  await splitAndCreate(handle, rel);
219
188
  }
220
- for (const [rel, data] of Object.entries(state.files)) {
189
+ for (const [rel, data] of Object.entries(state.files ?? {})) {
221
190
  const segs = rel.split('/').filter((s) => s !== '' && s !== '.');
222
191
  const fileName = segs.pop();
223
192
  if (fileName === undefined)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opfs.js","sourceRoot":"","sources":["../../../src/vfs/opfs/opfs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const PROMPT = "{prefix}\n Browser Origin Private File System. Persistent per-origin storage that survives page reloads.\n Standard commands: ls, cat, head, tail, grep, wc, find, tree, mkdir, touch, cp, mv, rm, tee.";
2
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/vfs/opfs/prompt.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,MAAM,8MAE4E,CAAA"}
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- export const OPFS_PROMPT = `{prefix}
14
+ export const PROMPT = `{prefix}
15
15
  Browser Origin Private File System. Persistent per-origin storage that survives page reloads.
16
16
  Standard commands: ls, cat, head, tail, grep, wc, find, tree, mkdir, touch, cp, mv, rm, tee.`;
17
17
  //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/vfs/opfs/prompt.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAG;;+FAEyE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neon_driver.d.ts","sourceRoot":"","sources":["../../../src/vfs/postgres/neon_driver.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAA;AAO3F,qBAAa,YAAa,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgC;gBAExC,GAAG,EAAE,MAAM;IAIjB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAQ5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
@@ -11,11 +11,12 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- import { neon } from '@neondatabase/serverless';
14
+ import { neon, types } from '@neondatabase/serverless';
15
+ import { readAsText } from '@struktoai/mirage-core/accessor/postgres';
15
16
  export class NeonPgDriver {
16
17
  sql;
17
18
  constructor(dsn) {
18
- this.sql = neon(dsn, { fullResults: true });
19
+ this.sql = neon(dsn, { fullResults: true, types: readAsText(types) });
19
20
  }
20
21
  async query(text, params) {
21
22
  const result = (await this.sql.query(text, params));
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neon_driver.js","sourceRoot":"","sources":["../../../src/vfs/postgres/neon_driver.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,IAAI,EAAE,KAAK,EAA0B,MAAM,0BAA0B,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAQrE,MAAM,OAAO,YAAY;IACN,GAAG,CAAgC;IAEpD,YAAY,GAAW;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,MAA2B;QAE3B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAClC,IAAI,EACJ,MAA+B,CAChC,CAAiC,CAAA;QAClC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC/E,CAAC;IAED,KAAK;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import { PostgresVFSBase } from '@struktoai/mirage-core/vfs/postgres/postgres';
2
+ import { PostgresAccessor } from '@struktoai/mirage-core/accessor/postgres';
3
+ import type { PgDriver } from '@struktoai/mirage-core/core/postgres/_driver';
4
+ import type { PostgresConfig, PostgresConfigRedacted, PostgresConfigResolved } from '@struktoai/mirage-core/vfs/postgres/config';
5
+ export interface PostgresVFSOptions {
6
+ config: PostgresConfig;
7
+ prefix?: string;
8
+ driver?: PgDriver;
9
+ }
10
+ export interface PostgresVFSState {
11
+ type: string;
12
+ config: PostgresConfigRedacted;
13
+ needs_override: true;
14
+ }
15
+ export declare class PostgresVFS extends PostgresVFSBase {
16
+ readonly name: string;
17
+ readonly cachesReads: boolean;
18
+ readonly indexTtl: number;
19
+ readonly prompt: string;
20
+ readonly config: PostgresConfigResolved;
21
+ readonly driver: PgDriver;
22
+ readonly accessor: PostgresAccessor;
23
+ constructor(options: PostgresVFSOptions | PostgresConfig);
24
+ getState(): PostgresVFSState;
25
+ close(): Promise<void>;
26
+ }
27
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../src/vfs/postgres/postgres.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAE3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAA;AAM5E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,4CAA4C,CAAA;AAMnD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,sBAAsB,CAAA;IAC9B,cAAc,EAAE,IAAI,CAAA;CACrB;AAED,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAkB,IAAI,EAAE,MAAM,CAAmB;IACjD,SAAkB,WAAW,EAAE,OAAO,CAAQ;IAC9C,SAAkB,QAAQ,EAAE,MAAM,CAAI;IACtC,SAAkB,MAAM,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,SAAkB,QAAQ,EAAE,gBAAgB,CAAA;gBAEhC,OAAO,EAAE,kBAAkB,GAAG,cAAc;IAU/C,QAAQ,IAAI,gBAAgB;IAatB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAItC"}
@@ -0,0 +1,53 @@
1
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
2
+ // Licensed under the Apache License, Version 2.0 (the "License");
3
+ // you may not use this file except in compliance with the License.
4
+ // You may obtain a copy of the License at
5
+ //
6
+ // http://www.apache.org/licenses/LICENSE-2.0
7
+ //
8
+ // Unless required by applicable law or agreed to in writing, software
9
+ // distributed under the License is distributed on an "AS IS" BASIS,
10
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ // See the License for the specific language governing permissions and
12
+ // limitations under the License.
13
+ // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
+ import { PostgresVFSBase } from '@struktoai/mirage-core/vfs/postgres/postgres';
15
+ import { PostgresAccessor } from '@struktoai/mirage-core/accessor/postgres';
16
+ import { redactPostgresConfig, resolvePostgresConfig, } from '@struktoai/mirage-core/vfs/postgres/config';
17
+ import { PROMPT } from '@struktoai/mirage-core/vfs/postgres/prompt';
18
+ import { VFSName } from '@struktoai/mirage-core/types';
19
+ import { NeonPgDriver } from "./neon_driver.js";
20
+ export class PostgresVFS extends PostgresVFSBase {
21
+ name = VFSName.POSTGRES;
22
+ cachesReads = false;
23
+ indexTtl = 0;
24
+ prompt;
25
+ config;
26
+ driver;
27
+ accessor;
28
+ constructor(options) {
29
+ super();
30
+ const { config, prefix, driver } = 'config' in options ? options : { config: options, prefix: undefined, driver: undefined };
31
+ this.config = resolvePostgresConfig(config);
32
+ this.driver = driver ?? new NeonPgDriver(this.config.dsn);
33
+ this.accessor = new PostgresAccessor(this.driver, this.config);
34
+ this.prompt = PROMPT.replace('{prefix}', prefix ?? '');
35
+ }
36
+ getState() {
37
+ return {
38
+ type: this.name,
39
+ config: redactPostgresConfig(this.config),
40
+ // TypeScript cannot rebuild a config-backed mount from state:
41
+ // `buildMountArgs` substitutes a RAMVFS for anything it was
42
+ // not handed. Saying so out loud turns a silently empty mount
43
+ // into a refusal to load. Python rebuilds via its registry, so it
44
+ // writes this on only four mounts and reads it nowhere.
45
+ needs_override: true,
46
+ };
47
+ }
48
+ async close() {
49
+ await this.driver.close();
50
+ await super.close();
51
+ }
52
+ }
53
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/vfs/postgres/postgres.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAA;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAI3E,OAAO,EACL,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,4CAA4C,CAAA;AAMnD,OAAO,EAAE,MAAM,EAAE,MAAM,4CAA4C,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAc/C,MAAM,OAAO,WAAY,SAAQ,eAAe;IAC5B,IAAI,GAAW,OAAO,CAAC,QAAQ,CAAA;IAC/B,WAAW,GAAY,KAAK,CAAA;IAC5B,QAAQ,GAAW,CAAC,CAAA;IACpB,MAAM,CAAQ;IACvB,MAAM,CAAwB;IAC9B,MAAM,CAAU;IACP,QAAQ,CAAkB;IAE5C,YAAY,OAA4C;QACtD,KAAK,EAAE,CAAA;QACP,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAC9B,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QAC3F,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAC9D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;IACxD,CAAC;IAEQ,QAAQ;QACf,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;YACzC,8DAA8D;YAC9D,4DAA4D;YAC5D,8DAA8D;YAC9D,kEAAkE;YAClE,wDAAwD;YACxD,cAAc,EAAE,IAAI;SACrB,CAAA;IACH,CAAC;IAEQ,KAAK,CAAC,KAAK;QAClB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACzB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
- import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/resource/secrets';
1
+ import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/vfs/secrets';
2
2
  declare const QingStorConfigSchema: import("zod").ZodObject<{
3
3
  bucket: import("zod").ZodString;
4
- presignedUrlProvider: import("zod").ZodCustom<import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider>;
4
+ presignedUrlProvider: import("zod").ZodCustom<import("@struktoai/mirage-core/vfs/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/vfs/s3/config").S3BrowserPresignedUrlProvider>;
5
5
  region: import("zod").ZodOptional<import("zod").ZodString>;
6
6
  endpoint: import("zod").ZodOptional<import("zod").ZodString>;
7
7
  defaultContentType: import("zod").ZodOptional<import("zod").ZodString>;
@@ -10,7 +10,7 @@ declare const QingStorConfigSchema: import("zod").ZodObject<{
10
10
  export type QingStorConfig = ConfigOf<typeof QingStorConfigSchema>;
11
11
  export type QingStorConfigRedacted = RedactedConfig<QingStorConfig, 'presignedUrlProvider'>;
12
12
  export declare const resolvedQingStorEndpoint: (config: QingStorConfig) => string | undefined;
13
- export declare const qingStorToS3Config: (config: QingStorConfig) => import("@struktoai/mirage-core/resource/s3/config").S3Config;
13
+ export declare const qingStorToS3Config: (config: QingStorConfig) => import("@struktoai/mirage-core/vfs/s3/config").S3Config;
14
14
  export declare const redactQingStorConfig: (config: QingStorConfig) => QingStorConfigRedacted;
15
15
  export declare const normalizeQingStorConfig: (input: Record<string, unknown>) => QingStorConfig;
16
16
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/vfs/qingstor/config.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAGlF,QAAA,MAAM,oBAAoB;;;;;;;gCAAyB,CAAA;AAEnD,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAElE,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAA;AAO3F,eAAO,MAAM,wBAAwB,gDAAyB,CAAA;AAC9D,eAAO,MAAM,kBAAkB,qFAAmB,CAAA;AAClD,eAAO,MAAM,oBAAoB,oDAAe,CAAA;AAChD,eAAO,MAAM,uBAAuB,oDAAkB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/vfs/qingstor/config.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAGvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExF,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAMnD,MAAM,KAAK,GAAG,kBAAkB,CAAyC;IACvE,MAAM,EAAE,oBAAoB;IAC5B,WAAW,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,MAAM,eAAe,CAAC;CACxF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC,gBAAgB,CAAA;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAA;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAA;AAChD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,SAAS,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const R2_BROWSER_PROMPT = "{prefix}\n Remote Cloudflare R2 bucket accessed via presigned URLs (browser runtime).\n Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.\n Listing operations require the presigner to sign LIST/COPY operations in\n addition to GET/PUT/HEAD/DELETE \u2014 see S3BrowserPresignedUrlProvider docs.";
1
+ export declare const PROMPT = "{prefix}\n Remote QingStor bucket (S3-compatible) accessed via presigned URLs (browser runtime).\n Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.\n Listing operations require the presigner to sign LIST/COPY operations in\n addition to GET/PUT/HEAD/DELETE \u2014 see S3BrowserPresignedUrlProvider docs.";
2
2
  //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/vfs/qingstor/prompt.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,MAAM,wVAIyD,CAAA"}
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- export const QINGSTOR_BROWSER_PROMPT = `{prefix}
14
+ export const PROMPT = `{prefix}
15
15
  Remote QingStor bucket (S3-compatible) accessed via presigned URLs (browser runtime).
16
16
  Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.
17
17
  Listing operations require the presigner to sign LIST/COPY operations in
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/resource/oci/prompt.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;4EAI0C,CAAA"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/vfs/qingstor/prompt.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;4EAIsD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { S3AliasVFS, type S3AliasVFSState } from '../s3_alias.ts';
2
+ import { type QingStorConfig, type QingStorConfigRedacted } from './config.ts';
3
+ export type QingStorVFSState = S3AliasVFSState<QingStorConfigRedacted>;
4
+ export declare class QingStorVFS extends S3AliasVFS<QingStorConfig, QingStorConfigRedacted> {
5
+ readonly prompt: string;
6
+ constructor(config: QingStorConfig);
7
+ }
8
+ //# sourceMappingURL=qingstor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qingstor.d.ts","sourceRoot":"","sources":["../../../src/vfs/qingstor/qingstor.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAA;AAGpB,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,sBAAsB,CAAC,CAAA;AAEtE,qBAAa,WAAY,SAAQ,UAAU,CAAC,cAAc,EAAE,sBAAsB,CAAC;IACjF,SAAkB,MAAM,EAAE,MAAM,CAAS;gBAE7B,MAAM,EAAE,cAAc;CAGnC"}
@@ -11,14 +11,14 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- import { ResourceName } from '@struktoai/mirage-core/types';
15
- import { S3AliasResource } from "../s3_alias.js";
14
+ import { VFSName } from '@struktoai/mirage-core/types';
15
+ import { S3AliasVFS } from "../s3_alias.js";
16
16
  import { qingStorToS3Config, redactQingStorConfig, } from "./config.js";
17
- import { QINGSTOR_BROWSER_PROMPT } from "./prompt.js";
18
- export class QingStorResource extends S3AliasResource {
19
- prompt = QINGSTOR_BROWSER_PROMPT;
17
+ import { PROMPT } from "./prompt.js";
18
+ export class QingStorVFS extends S3AliasVFS {
19
+ prompt = PROMPT;
20
20
  constructor(config) {
21
- super(ResourceName.QINGSTOR, config, qingStorToS3Config(config), redactQingStorConfig);
21
+ super(VFSName.QINGSTOR, config, qingStorToS3Config(config), redactQingStorConfig);
22
22
  }
23
23
  }
24
24
  //# sourceMappingURL=qingstor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qingstor.js","sourceRoot":"","sources":["../../../src/vfs/qingstor/qingstor.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAwB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GAGrB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,MAAM,OAAO,WAAY,SAAQ,UAAkD;IAC/D,MAAM,GAAW,MAAM,CAAA;IAEzC,YAAY,MAAsB;QAChC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACnF,CAAC;CACF"}
@@ -1,8 +1,8 @@
1
- import { z } from '@struktoai/mirage-core/resource/secrets';
2
- import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/resource/secrets';
1
+ import { z } from '@struktoai/mirage-core/vfs/secrets';
2
+ import type { ConfigOf, RedactedConfig } from '@struktoai/mirage-core/vfs/secrets';
3
3
  declare const R2ConfigSchema: z.ZodObject<{
4
4
  bucket: z.ZodString;
5
- presignedUrlProvider: z.ZodCustom<import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/resource/s3/config").S3BrowserPresignedUrlProvider>;
5
+ presignedUrlProvider: z.ZodCustom<import("@struktoai/mirage-core/vfs/s3/config").S3BrowserPresignedUrlProvider, import("@struktoai/mirage-core/vfs/s3/config").S3BrowserPresignedUrlProvider>;
6
6
  region: z.ZodOptional<z.ZodString>;
7
7
  endpoint: z.ZodOptional<z.ZodString>;
8
8
  defaultContentType: z.ZodOptional<z.ZodString>;
@@ -13,7 +13,7 @@ declare const R2ConfigSchema: z.ZodObject<{
13
13
  export type R2Config = ConfigOf<typeof R2ConfigSchema>;
14
14
  export type R2ConfigRedacted = RedactedConfig<R2Config, 'presignedUrlProvider'>;
15
15
  export declare const resolvedR2Endpoint: (config: R2Config) => string | undefined;
16
- export declare const r2ToS3Config: (config: R2Config) => import("@struktoai/mirage-core/resource/s3/config").S3Config;
16
+ export declare const r2ToS3Config: (config: R2Config) => import("@struktoai/mirage-core/vfs/s3/config").S3Config;
17
17
  export declare const redactR2Config: (config: R2Config) => R2ConfigRedacted;
18
18
  export declare const normalizeR2Config: (input: Record<string, unknown>) => R2Config;
19
19
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/vfs/r2/config.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,oCAAoC,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AAGlF,QAAA,MAAM,cAAc;;;;;;;;;iBAA2D,CAAA;AAE/E,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAA;AAEtD,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;AAW/E,eAAO,MAAM,kBAAkB,0CAAyB,CAAA;AACxD,eAAO,MAAM,YAAY,+EAAmB,CAAA;AAC5C,eAAO,MAAM,cAAc,wCAAe,CAAA;AAC1C,eAAO,MAAM,iBAAiB,8CAAkB,CAAA"}
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- import { z } from '@struktoai/mirage-core/resource/secrets';
14
+ import { z } from '@struktoai/mirage-core/vfs/secrets';
15
15
  import { browserAliasSchema, derivedEndpoint, makeBrowserS3Alias } from "../s3_alias.js";
16
16
  const R2ConfigSchema = browserAliasSchema({ accountId: z.string().optional() });
17
17
  const alias = makeBrowserS3Alias({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/vfs/r2/config.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,CAAC,EAAE,MAAM,oCAAoC,CAAA;AAEtD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExF,MAAM,cAAc,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAM/E,MAAM,KAAK,GAAG,kBAAkB,CAA6B;IAC3D,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,eAAe,CAC1B,WAAW,EACX,CAAC,SAAS,EAAE,EAAE,CAAC,WAAW,SAAS,2BAA2B,CAC/D;IACD,aAAa,EAAE,MAAM;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,gBAAgB,CAAA;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAA;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAA;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const PROMPT = "{prefix}\n Remote Cloudflare R2 bucket accessed via presigned URLs (browser runtime).\n Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.\n Listing operations require the presigner to sign LIST/COPY operations in\n addition to GET/PUT/HEAD/DELETE \u2014 see S3BrowserPresignedUrlProvider docs.";
2
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/vfs/r2/prompt.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,MAAM,6UAIyD,CAAA"}
@@ -11,7 +11,7 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- export const R2_BROWSER_PROMPT = `{prefix}
14
+ export const PROMPT = `{prefix}
15
15
  Remote Cloudflare R2 bucket accessed via presigned URLs (browser runtime).
16
16
  Supports the full filesystem command set: ls/tree/cat/grep/find/du/cp/mv/rm/etc.
17
17
  Listing operations require the presigner to sign LIST/COPY operations in
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/vfs/r2/prompt.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,MAAM,CAAC,MAAM,MAAM,GAAG;;;;4EAIsD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { S3AliasVFS, type S3AliasVFSState } from '../s3_alias.ts';
2
+ import { type R2Config, type R2ConfigRedacted } from './config.ts';
3
+ export type R2VFSState = S3AliasVFSState<R2ConfigRedacted>;
4
+ export declare class R2VFS extends S3AliasVFS<R2Config, R2ConfigRedacted> {
5
+ readonly prompt: string;
6
+ constructor(config: R2Config);
7
+ }
8
+ //# sourceMappingURL=r2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2.d.ts","sourceRoot":"","sources":["../../../src/vfs/r2/r2.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAgC,KAAK,QAAQ,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGhG,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAA;AAE1D,qBAAa,KAAM,SAAQ,UAAU,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IAC/D,SAAkB,MAAM,EAAE,MAAM,CAAS;gBAE7B,MAAM,EAAE,QAAQ;CAG7B"}
@@ -11,14 +11,14 @@
11
11
  // See the License for the specific language governing permissions and
12
12
  // limitations under the License.
13
13
  // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. =========
14
- import { ResourceName } from '@struktoai/mirage-core/types';
15
- import { S3AliasResource } from "../s3_alias.js";
14
+ import { VFSName } from '@struktoai/mirage-core/types';
15
+ import { S3AliasVFS } from "../s3_alias.js";
16
16
  import { r2ToS3Config, redactR2Config } from "./config.js";
17
- import { R2_BROWSER_PROMPT } from "./prompt.js";
18
- export class R2Resource extends S3AliasResource {
19
- prompt = R2_BROWSER_PROMPT;
17
+ import { PROMPT } from "./prompt.js";
18
+ export class R2VFS extends S3AliasVFS {
19
+ prompt = PROMPT;
20
20
  constructor(config) {
21
- super(ResourceName.R2, config, r2ToS3Config(config), redactR2Config);
21
+ super(VFSName.R2, config, r2ToS3Config(config), redactR2Config);
22
22
  }
23
23
  }
24
24
  //# sourceMappingURL=r2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"r2.js","sourceRoot":"","sources":["../../../src/vfs/r2/r2.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AACjC,uEAAuE;AAEvE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,UAAU,EAAwB,MAAM,gBAAgB,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAwC,MAAM,aAAa,CAAA;AAChG,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,MAAM,OAAO,KAAM,SAAQ,UAAsC;IAC7C,MAAM,GAAW,MAAM,CAAA;IAEzC,YAAY,MAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAA;IACjE,CAAC;CACF"}