mongo.do 0.1.0

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 (707) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +454 -0
  3. package/dist/agentfs/adapters/anthropic.d.ts +176 -0
  4. package/dist/agentfs/adapters/anthropic.d.ts.map +1 -0
  5. package/dist/agentfs/adapters/anthropic.js +629 -0
  6. package/dist/agentfs/adapters/anthropic.js.map +1 -0
  7. package/dist/agentfs/adapters/index.d.ts +21 -0
  8. package/dist/agentfs/adapters/index.d.ts.map +1 -0
  9. package/dist/agentfs/adapters/index.js +23 -0
  10. package/dist/agentfs/adapters/index.js.map +1 -0
  11. package/dist/agentfs/adapters/vercel.d.ts +260 -0
  12. package/dist/agentfs/adapters/vercel.d.ts.map +1 -0
  13. package/dist/agentfs/adapters/vercel.js +288 -0
  14. package/dist/agentfs/adapters/vercel.js.map +1 -0
  15. package/dist/agentfs/glob.d.ts +116 -0
  16. package/dist/agentfs/glob.d.ts.map +1 -0
  17. package/dist/agentfs/glob.js +270 -0
  18. package/dist/agentfs/glob.js.map +1 -0
  19. package/dist/agentfs/grep.d.ts +83 -0
  20. package/dist/agentfs/grep.d.ts.map +1 -0
  21. package/dist/agentfs/grep.js +193 -0
  22. package/dist/agentfs/grep.js.map +1 -0
  23. package/dist/agentfs/index.d.ts +22 -0
  24. package/dist/agentfs/index.d.ts.map +1 -0
  25. package/dist/agentfs/index.js +18 -0
  26. package/dist/agentfs/index.js.map +1 -0
  27. package/dist/agentfs/kv-store.d.ts +128 -0
  28. package/dist/agentfs/kv-store.d.ts.map +1 -0
  29. package/dist/agentfs/kv-store.js +227 -0
  30. package/dist/agentfs/kv-store.js.map +1 -0
  31. package/dist/agentfs/mondo-agent.d.ts +255 -0
  32. package/dist/agentfs/mondo-agent.d.ts.map +1 -0
  33. package/dist/agentfs/mondo-agent.js +879 -0
  34. package/dist/agentfs/mondo-agent.js.map +1 -0
  35. package/dist/agentfs/toolcalls.d.ts +130 -0
  36. package/dist/agentfs/toolcalls.d.ts.map +1 -0
  37. package/dist/agentfs/toolcalls.js +178 -0
  38. package/dist/agentfs/toolcalls.js.map +1 -0
  39. package/dist/agentfs/types.d.ts +171 -0
  40. package/dist/agentfs/types.d.ts.map +1 -0
  41. package/dist/agentfs/types.js +7 -0
  42. package/dist/agentfs/types.js.map +1 -0
  43. package/dist/agentfs/vfs.d.ts +249 -0
  44. package/dist/agentfs/vfs.d.ts.map +1 -0
  45. package/dist/agentfs/vfs.js +469 -0
  46. package/dist/agentfs/vfs.js.map +1 -0
  47. package/dist/cli/index.d.ts +15 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +219 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/mcp.d.ts +119 -0
  52. package/dist/cli/mcp.d.ts.map +1 -0
  53. package/dist/cli/mcp.js +418 -0
  54. package/dist/cli/mcp.js.map +1 -0
  55. package/dist/cli/server.d.ts +179 -0
  56. package/dist/cli/server.d.ts.map +1 -0
  57. package/dist/cli/server.js +441 -0
  58. package/dist/cli/server.js.map +1 -0
  59. package/dist/client/Collection.d.ts +199 -0
  60. package/dist/client/Collection.d.ts.map +1 -0
  61. package/dist/client/Collection.js +256 -0
  62. package/dist/client/Collection.js.map +1 -0
  63. package/dist/client/Database.d.ts +68 -0
  64. package/dist/client/Database.d.ts.map +1 -0
  65. package/dist/client/Database.js +105 -0
  66. package/dist/client/Database.js.map +1 -0
  67. package/dist/client/MongoClient.d.ts +165 -0
  68. package/dist/client/MongoClient.d.ts.map +1 -0
  69. package/dist/client/MongoClient.js +307 -0
  70. package/dist/client/MongoClient.js.map +1 -0
  71. package/dist/client/aggregation-cursor.d.ts +210 -0
  72. package/dist/client/aggregation-cursor.d.ts.map +1 -0
  73. package/dist/client/aggregation-cursor.js +509 -0
  74. package/dist/client/aggregation-cursor.js.map +1 -0
  75. package/dist/client/bulk-write.d.ts +216 -0
  76. package/dist/client/bulk-write.d.ts.map +1 -0
  77. package/dist/client/bulk-write.js +63 -0
  78. package/dist/client/bulk-write.js.map +1 -0
  79. package/dist/client/change-stream.d.ts +245 -0
  80. package/dist/client/change-stream.d.ts.map +1 -0
  81. package/dist/client/change-stream.js +429 -0
  82. package/dist/client/change-stream.js.map +1 -0
  83. package/dist/client/cursor.d.ts +85 -0
  84. package/dist/client/cursor.d.ts.map +1 -0
  85. package/dist/client/cursor.js +156 -0
  86. package/dist/client/cursor.js.map +1 -0
  87. package/dist/client/http-cursor.d.ts +233 -0
  88. package/dist/client/http-cursor.d.ts.map +1 -0
  89. package/dist/client/http-cursor.js +496 -0
  90. package/dist/client/http-cursor.js.map +1 -0
  91. package/dist/client/index.d.ts +18 -0
  92. package/dist/client/index.d.ts.map +1 -0
  93. package/dist/client/index.js +24 -0
  94. package/dist/client/index.js.map +1 -0
  95. package/dist/client/mongo-client.d.ts +60 -0
  96. package/dist/client/mongo-client.d.ts.map +1 -0
  97. package/dist/client/mongo-client.js +190 -0
  98. package/dist/client/mongo-client.js.map +1 -0
  99. package/dist/client/mongo-collection.d.ts +359 -0
  100. package/dist/client/mongo-collection.d.ts.map +1 -0
  101. package/dist/client/mongo-collection.js +1641 -0
  102. package/dist/client/mongo-collection.js.map +1 -0
  103. package/dist/client/mongo-cursor.d.ts +257 -0
  104. package/dist/client/mongo-cursor.d.ts.map +1 -0
  105. package/dist/client/mongo-cursor.js +621 -0
  106. package/dist/client/mongo-cursor.js.map +1 -0
  107. package/dist/client/mongo-database.d.ts +88 -0
  108. package/dist/client/mongo-database.d.ts.map +1 -0
  109. package/dist/client/mongo-database.js +139 -0
  110. package/dist/client/mongo-database.js.map +1 -0
  111. package/dist/client/session.d.ts +210 -0
  112. package/dist/client/session.d.ts.map +1 -0
  113. package/dist/client/session.js +326 -0
  114. package/dist/client/session.js.map +1 -0
  115. package/dist/durable-object/index-manager.d.ts +173 -0
  116. package/dist/durable-object/index-manager.d.ts.map +1 -0
  117. package/dist/durable-object/index-manager.js +764 -0
  118. package/dist/durable-object/index-manager.js.map +1 -0
  119. package/dist/durable-object/index.d.ts +12 -0
  120. package/dist/durable-object/index.d.ts.map +1 -0
  121. package/dist/durable-object/index.js +8 -0
  122. package/dist/durable-object/index.js.map +1 -0
  123. package/dist/durable-object/mcp-handler.d.ts +52 -0
  124. package/dist/durable-object/mcp-handler.d.ts.map +1 -0
  125. package/dist/durable-object/mcp-handler.js +186 -0
  126. package/dist/durable-object/mcp-handler.js.map +1 -0
  127. package/dist/durable-object/migrations.d.ts +40 -0
  128. package/dist/durable-object/migrations.d.ts.map +1 -0
  129. package/dist/durable-object/migrations.js +121 -0
  130. package/dist/durable-object/migrations.js.map +1 -0
  131. package/dist/durable-object/mondo-database.d.ts +148 -0
  132. package/dist/durable-object/mondo-database.d.ts.map +1 -0
  133. package/dist/durable-object/mondo-database.js +621 -0
  134. package/dist/durable-object/mondo-database.js.map +1 -0
  135. package/dist/durable-object/schema.d.ts +192 -0
  136. package/dist/durable-object/schema.d.ts.map +1 -0
  137. package/dist/durable-object/schema.js +186 -0
  138. package/dist/durable-object/schema.js.map +1 -0
  139. package/dist/embedding/document-serializer.d.ts +118 -0
  140. package/dist/embedding/document-serializer.d.ts.map +1 -0
  141. package/dist/embedding/document-serializer.js +339 -0
  142. package/dist/embedding/document-serializer.js.map +1 -0
  143. package/dist/embedding/embedding-manager.d.ts +136 -0
  144. package/dist/embedding/embedding-manager.d.ts.map +1 -0
  145. package/dist/embedding/embedding-manager.js +176 -0
  146. package/dist/embedding/embedding-manager.js.map +1 -0
  147. package/dist/embedding/index.d.ts +9 -0
  148. package/dist/embedding/index.d.ts.map +1 -0
  149. package/dist/embedding/index.js +9 -0
  150. package/dist/embedding/index.js.map +1 -0
  151. package/dist/executor/aggregation-executor.d.ts +93 -0
  152. package/dist/executor/aggregation-executor.d.ts.map +1 -0
  153. package/dist/executor/aggregation-executor.js +275 -0
  154. package/dist/executor/aggregation-executor.js.map +1 -0
  155. package/dist/executor/function-executor.d.ts +39 -0
  156. package/dist/executor/function-executor.d.ts.map +1 -0
  157. package/dist/executor/function-executor.js +168 -0
  158. package/dist/executor/function-executor.js.map +1 -0
  159. package/dist/executor/index.d.ts +4 -0
  160. package/dist/executor/index.d.ts.map +1 -0
  161. package/dist/executor/index.js +4 -0
  162. package/dist/executor/index.js.map +1 -0
  163. package/dist/executor/vector-search-executor.d.ts +71 -0
  164. package/dist/executor/vector-search-executor.d.ts.map +1 -0
  165. package/dist/executor/vector-search-executor.js +113 -0
  166. package/dist/executor/vector-search-executor.js.map +1 -0
  167. package/dist/index.d.ts +21 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +28 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/mcp/adapters/anthropic-adapter.d.ts +256 -0
  172. package/dist/mcp/adapters/anthropic-adapter.d.ts.map +1 -0
  173. package/dist/mcp/adapters/anthropic-adapter.js +409 -0
  174. package/dist/mcp/adapters/anthropic-adapter.js.map +1 -0
  175. package/dist/mcp/adapters/base-adapter.d.ts +164 -0
  176. package/dist/mcp/adapters/base-adapter.d.ts.map +1 -0
  177. package/dist/mcp/adapters/base-adapter.js +277 -0
  178. package/dist/mcp/adapters/base-adapter.js.map +1 -0
  179. package/dist/mcp/adapters/errors.d.ts +173 -0
  180. package/dist/mcp/adapters/errors.d.ts.map +1 -0
  181. package/dist/mcp/adapters/errors.js +305 -0
  182. package/dist/mcp/adapters/errors.js.map +1 -0
  183. package/dist/mcp/adapters/index.d.ts +65 -0
  184. package/dist/mcp/adapters/index.d.ts.map +1 -0
  185. package/dist/mcp/adapters/index.js +92 -0
  186. package/dist/mcp/adapters/index.js.map +1 -0
  187. package/dist/mcp/adapters/streaming.d.ts +200 -0
  188. package/dist/mcp/adapters/streaming.d.ts.map +1 -0
  189. package/dist/mcp/adapters/streaming.js +381 -0
  190. package/dist/mcp/adapters/streaming.js.map +1 -0
  191. package/dist/mcp/adapters/vercel-adapter.d.ts +321 -0
  192. package/dist/mcp/adapters/vercel-adapter.d.ts.map +1 -0
  193. package/dist/mcp/adapters/vercel-adapter.js +487 -0
  194. package/dist/mcp/adapters/vercel-adapter.js.map +1 -0
  195. package/dist/mcp/agent.d.ts +192 -0
  196. package/dist/mcp/agent.d.ts.map +1 -0
  197. package/dist/mcp/agent.js +338 -0
  198. package/dist/mcp/agent.js.map +1 -0
  199. package/dist/mcp/cli.d.ts +71 -0
  200. package/dist/mcp/cli.d.ts.map +1 -0
  201. package/dist/mcp/cli.js +218 -0
  202. package/dist/mcp/cli.js.map +1 -0
  203. package/dist/mcp/index.d.ts +15 -0
  204. package/dist/mcp/index.d.ts.map +1 -0
  205. package/dist/mcp/index.js +20 -0
  206. package/dist/mcp/index.js.map +1 -0
  207. package/dist/mcp/sandbox/database-proxy.d.ts +118 -0
  208. package/dist/mcp/sandbox/database-proxy.d.ts.map +1 -0
  209. package/dist/mcp/sandbox/database-proxy.js +154 -0
  210. package/dist/mcp/sandbox/database-proxy.js.map +1 -0
  211. package/dist/mcp/sandbox/index.d.ts +8 -0
  212. package/dist/mcp/sandbox/index.d.ts.map +1 -0
  213. package/dist/mcp/sandbox/index.js +7 -0
  214. package/dist/mcp/sandbox/index.js.map +1 -0
  215. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +72 -0
  216. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +1 -0
  217. package/dist/mcp/sandbox/miniflare-evaluator.js +379 -0
  218. package/dist/mcp/sandbox/miniflare-evaluator.js.map +1 -0
  219. package/dist/mcp/sandbox/template.d.ts +48 -0
  220. package/dist/mcp/sandbox/template.d.ts.map +1 -0
  221. package/dist/mcp/sandbox/template.js +147 -0
  222. package/dist/mcp/sandbox/template.js.map +1 -0
  223. package/dist/mcp/sandbox/worker-evaluator.d.ts +160 -0
  224. package/dist/mcp/sandbox/worker-evaluator.d.ts.map +1 -0
  225. package/dist/mcp/sandbox/worker-evaluator.js +217 -0
  226. package/dist/mcp/sandbox/worker-evaluator.js.map +1 -0
  227. package/dist/mcp/server.d.ts +75 -0
  228. package/dist/mcp/server.d.ts.map +1 -0
  229. package/dist/mcp/server.js +278 -0
  230. package/dist/mcp/server.js.map +1 -0
  231. package/dist/mcp/tool-call-auditor.d.ts +188 -0
  232. package/dist/mcp/tool-call-auditor.d.ts.map +1 -0
  233. package/dist/mcp/tool-call-auditor.js +198 -0
  234. package/dist/mcp/tool-call-auditor.js.map +1 -0
  235. package/dist/mcp/tools/do.d.ts +51 -0
  236. package/dist/mcp/tools/do.d.ts.map +1 -0
  237. package/dist/mcp/tools/do.js +113 -0
  238. package/dist/mcp/tools/do.js.map +1 -0
  239. package/dist/mcp/tools/fetch.d.ts +43 -0
  240. package/dist/mcp/tools/fetch.d.ts.map +1 -0
  241. package/dist/mcp/tools/fetch.js +127 -0
  242. package/dist/mcp/tools/fetch.js.map +1 -0
  243. package/dist/mcp/tools/index.d.ts +9 -0
  244. package/dist/mcp/tools/index.d.ts.map +1 -0
  245. package/dist/mcp/tools/index.js +9 -0
  246. package/dist/mcp/tools/index.js.map +1 -0
  247. package/dist/mcp/tools/search.d.ts +60 -0
  248. package/dist/mcp/tools/search.d.ts.map +1 -0
  249. package/dist/mcp/tools/search.js +278 -0
  250. package/dist/mcp/tools/search.js.map +1 -0
  251. package/dist/mcp/transport/http.d.ts +144 -0
  252. package/dist/mcp/transport/http.d.ts.map +1 -0
  253. package/dist/mcp/transport/http.js +545 -0
  254. package/dist/mcp/transport/http.js.map +1 -0
  255. package/dist/mcp/transport/index.d.ts +10 -0
  256. package/dist/mcp/transport/index.d.ts.map +1 -0
  257. package/dist/mcp/transport/index.js +12 -0
  258. package/dist/mcp/transport/index.js.map +1 -0
  259. package/dist/mcp/transport/stdio.d.ts +132 -0
  260. package/dist/mcp/transport/stdio.d.ts.map +1 -0
  261. package/dist/mcp/transport/stdio.js +466 -0
  262. package/dist/mcp/transport/stdio.js.map +1 -0
  263. package/dist/mcp/types.d.ts +476 -0
  264. package/dist/mcp/types.d.ts.map +1 -0
  265. package/dist/mcp/types.js +178 -0
  266. package/dist/mcp/types.js.map +1 -0
  267. package/dist/olap/cdc/cdc-buffer.d.ts +92 -0
  268. package/dist/olap/cdc/cdc-buffer.d.ts.map +1 -0
  269. package/dist/olap/cdc/cdc-buffer.js +146 -0
  270. package/dist/olap/cdc/cdc-buffer.js.map +1 -0
  271. package/dist/olap/cdc/cdc-emitter.d.ts +118 -0
  272. package/dist/olap/cdc/cdc-emitter.d.ts.map +1 -0
  273. package/dist/olap/cdc/cdc-emitter.js +217 -0
  274. package/dist/olap/cdc/cdc-emitter.js.map +1 -0
  275. package/dist/olap/cdc/cdc-schema.d.ts +119 -0
  276. package/dist/olap/cdc/cdc-schema.d.ts.map +1 -0
  277. package/dist/olap/cdc/cdc-schema.js +253 -0
  278. package/dist/olap/cdc/cdc-schema.js.map +1 -0
  279. package/dist/olap/cdc/index.d.ts +10 -0
  280. package/dist/olap/cdc/index.d.ts.map +1 -0
  281. package/dist/olap/cdc/index.js +10 -0
  282. package/dist/olap/cdc/index.js.map +1 -0
  283. package/dist/olap/clickhouse/iceberg.d.ts +164 -0
  284. package/dist/olap/clickhouse/iceberg.d.ts.map +1 -0
  285. package/dist/olap/clickhouse/iceberg.js +138 -0
  286. package/dist/olap/clickhouse/iceberg.js.map +1 -0
  287. package/dist/olap/clickhouse/index.d.ts +14 -0
  288. package/dist/olap/clickhouse/index.d.ts.map +1 -0
  289. package/dist/olap/clickhouse/index.js +14 -0
  290. package/dist/olap/clickhouse/index.js.map +1 -0
  291. package/dist/olap/clickhouse/mapper.d.ts +170 -0
  292. package/dist/olap/clickhouse/mapper.d.ts.map +1 -0
  293. package/dist/olap/clickhouse/mapper.js +654 -0
  294. package/dist/olap/clickhouse/mapper.js.map +1 -0
  295. package/dist/olap/clickhouse/olap-backend.d.ts +181 -0
  296. package/dist/olap/clickhouse/olap-backend.d.ts.map +1 -0
  297. package/dist/olap/clickhouse/olap-backend.js +1083 -0
  298. package/dist/olap/clickhouse/olap-backend.js.map +1 -0
  299. package/dist/olap/clickhouse/query-executor.d.ts +163 -0
  300. package/dist/olap/clickhouse/query-executor.d.ts.map +1 -0
  301. package/dist/olap/clickhouse/query-executor.js +560 -0
  302. package/dist/olap/clickhouse/query-executor.js.map +1 -0
  303. package/dist/olap/clickhouse/query.d.ts +134 -0
  304. package/dist/olap/clickhouse/query.d.ts.map +1 -0
  305. package/dist/olap/clickhouse/query.js +512 -0
  306. package/dist/olap/clickhouse/query.js.map +1 -0
  307. package/dist/olap/stage/index.d.ts +6 -0
  308. package/dist/olap/stage/index.d.ts.map +1 -0
  309. package/dist/olap/stage/index.js +6 -0
  310. package/dist/olap/stage/index.js.map +1 -0
  311. package/dist/olap/stage/parser.d.ts +68 -0
  312. package/dist/olap/stage/parser.d.ts.map +1 -0
  313. package/dist/olap/stage/parser.js +293 -0
  314. package/dist/olap/stage/parser.js.map +1 -0
  315. package/dist/olap/stage/router.d.ts +94 -0
  316. package/dist/olap/stage/router.d.ts.map +1 -0
  317. package/dist/olap/stage/router.js +390 -0
  318. package/dist/olap/stage/router.js.map +1 -0
  319. package/dist/rpc/endpoint.d.ts +52 -0
  320. package/dist/rpc/endpoint.d.ts.map +1 -0
  321. package/dist/rpc/endpoint.js +734 -0
  322. package/dist/rpc/endpoint.js.map +1 -0
  323. package/dist/rpc/index.d.ts +34 -0
  324. package/dist/rpc/index.d.ts.map +1 -0
  325. package/dist/rpc/index.js +45 -0
  326. package/dist/rpc/index.js.map +1 -0
  327. package/dist/rpc/rpc-client.d.ts +275 -0
  328. package/dist/rpc/rpc-client.d.ts.map +1 -0
  329. package/dist/rpc/rpc-client.js +735 -0
  330. package/dist/rpc/rpc-client.js.map +1 -0
  331. package/dist/rpc/rpc-target.d.ts +220 -0
  332. package/dist/rpc/rpc-target.d.ts.map +1 -0
  333. package/dist/rpc/rpc-target.js +500 -0
  334. package/dist/rpc/rpc-target.js.map +1 -0
  335. package/dist/rpc/worker-entrypoint.d.ts +159 -0
  336. package/dist/rpc/worker-entrypoint.d.ts.map +1 -0
  337. package/dist/rpc/worker-entrypoint.js +212 -0
  338. package/dist/rpc/worker-entrypoint.js.map +1 -0
  339. package/dist/server.d.ts +18 -0
  340. package/dist/server.d.ts.map +1 -0
  341. package/dist/server.js +129 -0
  342. package/dist/server.js.map +1 -0
  343. package/dist/studio/components/browser/CollectionItem.d.ts +26 -0
  344. package/dist/studio/components/browser/CollectionItem.d.ts.map +1 -0
  345. package/dist/studio/components/browser/CollectionItem.js +143 -0
  346. package/dist/studio/components/browser/CollectionItem.js.map +1 -0
  347. package/dist/studio/components/browser/CollectionTree.d.ts +45 -0
  348. package/dist/studio/components/browser/CollectionTree.d.ts.map +1 -0
  349. package/dist/studio/components/browser/CollectionTree.js +207 -0
  350. package/dist/studio/components/browser/CollectionTree.js.map +1 -0
  351. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts +51 -0
  352. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts.map +1 -0
  353. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js +185 -0
  354. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js.map +1 -0
  355. package/dist/studio/components/browser/DatabaseBrowser.d.ts +46 -0
  356. package/dist/studio/components/browser/DatabaseBrowser.d.ts.map +1 -0
  357. package/dist/studio/components/browser/DatabaseBrowser.js +304 -0
  358. package/dist/studio/components/browser/DatabaseBrowser.js.map +1 -0
  359. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts +5 -0
  360. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts.map +1 -0
  361. package/dist/studio/components/browser/__tests__/CollectionItem.test.js +169 -0
  362. package/dist/studio/components/browser/__tests__/CollectionItem.test.js.map +1 -0
  363. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts +5 -0
  364. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts.map +1 -0
  365. package/dist/studio/components/browser/__tests__/CollectionTree.test.js +203 -0
  366. package/dist/studio/components/browser/__tests__/CollectionTree.test.js.map +1 -0
  367. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts +8 -0
  368. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts.map +1 -0
  369. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js +522 -0
  370. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js.map +1 -0
  371. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts +5 -0
  372. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts.map +1 -0
  373. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js +518 -0
  374. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js.map +1 -0
  375. package/dist/studio/components/browser/__tests__/setup.d.ts +5 -0
  376. package/dist/studio/components/browser/__tests__/setup.d.ts.map +1 -0
  377. package/dist/studio/components/browser/__tests__/setup.js +22 -0
  378. package/dist/studio/components/browser/__tests__/setup.js.map +1 -0
  379. package/dist/studio/components/browser/index.d.ts +15 -0
  380. package/dist/studio/components/browser/index.d.ts.map +1 -0
  381. package/dist/studio/components/browser/index.js +10 -0
  382. package/dist/studio/components/browser/index.js.map +1 -0
  383. package/dist/studio/components/browser/types.d.ts +33 -0
  384. package/dist/studio/components/browser/types.d.ts.map +1 -0
  385. package/dist/studio/components/browser/types.js +5 -0
  386. package/dist/studio/components/browser/types.js.map +1 -0
  387. package/dist/studio/components/connection/ConnectionForm.d.ts +59 -0
  388. package/dist/studio/components/connection/ConnectionForm.d.ts.map +1 -0
  389. package/dist/studio/components/connection/ConnectionForm.js +274 -0
  390. package/dist/studio/components/connection/ConnectionForm.js.map +1 -0
  391. package/dist/studio/components/connection/ConnectionList.d.ts +59 -0
  392. package/dist/studio/components/connection/ConnectionList.d.ts.map +1 -0
  393. package/dist/studio/components/connection/ConnectionList.js +286 -0
  394. package/dist/studio/components/connection/ConnectionList.js.map +1 -0
  395. package/dist/studio/components/connection/ConnectionPanel.d.ts +132 -0
  396. package/dist/studio/components/connection/ConnectionPanel.d.ts.map +1 -0
  397. package/dist/studio/components/connection/ConnectionPanel.js +293 -0
  398. package/dist/studio/components/connection/ConnectionPanel.js.map +1 -0
  399. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts +8 -0
  400. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts.map +1 -0
  401. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js +632 -0
  402. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js.map +1 -0
  403. package/dist/studio/components/connection/__tests__/setup.d.ts +5 -0
  404. package/dist/studio/components/connection/__tests__/setup.d.ts.map +1 -0
  405. package/dist/studio/components/connection/__tests__/setup.js +11 -0
  406. package/dist/studio/components/connection/__tests__/setup.js.map +1 -0
  407. package/dist/studio/components/connection/index.d.ts +10 -0
  408. package/dist/studio/components/connection/index.d.ts.map +1 -0
  409. package/dist/studio/components/connection/index.js +7 -0
  410. package/dist/studio/components/connection/index.js.map +1 -0
  411. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts +91 -0
  412. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts.map +1 -0
  413. package/dist/studio/components/crud/DeleteDocumentDialog.js +273 -0
  414. package/dist/studio/components/crud/DeleteDocumentDialog.js.map +1 -0
  415. package/dist/studio/components/crud/DocumentEditor.d.ts +32 -0
  416. package/dist/studio/components/crud/DocumentEditor.d.ts.map +1 -0
  417. package/dist/studio/components/crud/DocumentEditor.js +546 -0
  418. package/dist/studio/components/crud/DocumentEditor.js.map +1 -0
  419. package/dist/studio/components/crud/InsertDocumentDialog.d.ts +78 -0
  420. package/dist/studio/components/crud/InsertDocumentDialog.d.ts.map +1 -0
  421. package/dist/studio/components/crud/InsertDocumentDialog.js +323 -0
  422. package/dist/studio/components/crud/InsertDocumentDialog.js.map +1 -0
  423. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts +5 -0
  424. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts.map +1 -0
  425. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js +298 -0
  426. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js.map +1 -0
  427. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts +8 -0
  428. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts.map +1 -0
  429. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js +368 -0
  430. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js.map +1 -0
  431. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts +2 -0
  432. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts.map +1 -0
  433. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js +352 -0
  434. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js.map +1 -0
  435. package/dist/studio/components/crud/__tests__/setup.d.ts +5 -0
  436. package/dist/studio/components/crud/__tests__/setup.d.ts.map +1 -0
  437. package/dist/studio/components/crud/__tests__/setup.js +22 -0
  438. package/dist/studio/components/crud/__tests__/setup.js.map +1 -0
  439. package/dist/studio/components/crud/index.d.ts +12 -0
  440. package/dist/studio/components/crud/index.d.ts.map +1 -0
  441. package/dist/studio/components/crud/index.js +11 -0
  442. package/dist/studio/components/crud/index.js.map +1 -0
  443. package/dist/studio/hooks/useConnection.d.ts +127 -0
  444. package/dist/studio/hooks/useConnection.d.ts.map +1 -0
  445. package/dist/studio/hooks/useConnection.js +414 -0
  446. package/dist/studio/hooks/useConnection.js.map +1 -0
  447. package/dist/studio/hooks/useDatabaseBrowser.d.ts +107 -0
  448. package/dist/studio/hooks/useDatabaseBrowser.d.ts.map +1 -0
  449. package/dist/studio/hooks/useDatabaseBrowser.js +294 -0
  450. package/dist/studio/hooks/useDatabaseBrowser.js.map +1 -0
  451. package/dist/studio/index.d.ts +16 -0
  452. package/dist/studio/index.d.ts.map +1 -0
  453. package/dist/studio/index.js +14 -0
  454. package/dist/studio/index.js.map +1 -0
  455. package/dist/studio/types/connection.d.ts +266 -0
  456. package/dist/studio/types/connection.d.ts.map +1 -0
  457. package/dist/studio/types/connection.js +159 -0
  458. package/dist/studio/types/connection.js.map +1 -0
  459. package/dist/studio/vitest.config.d.ts +3 -0
  460. package/dist/studio/vitest.config.d.ts.map +1 -0
  461. package/dist/studio/vitest.config.js +33 -0
  462. package/dist/studio/vitest.config.js.map +1 -0
  463. package/dist/translator/aggregation-translator.d.ts +51 -0
  464. package/dist/translator/aggregation-translator.d.ts.map +1 -0
  465. package/dist/translator/aggregation-translator.js +324 -0
  466. package/dist/translator/aggregation-translator.js.map +1 -0
  467. package/dist/translator/dialect.d.ts +131 -0
  468. package/dist/translator/dialect.d.ts.map +1 -0
  469. package/dist/translator/dialect.js +276 -0
  470. package/dist/translator/dialect.js.map +1 -0
  471. package/dist/translator/geo-translator.d.ts +91 -0
  472. package/dist/translator/geo-translator.d.ts.map +1 -0
  473. package/dist/translator/geo-translator.js +587 -0
  474. package/dist/translator/geo-translator.js.map +1 -0
  475. package/dist/translator/hybrid-translator.d.ts +70 -0
  476. package/dist/translator/hybrid-translator.d.ts.map +1 -0
  477. package/dist/translator/hybrid-translator.js +193 -0
  478. package/dist/translator/hybrid-translator.js.map +1 -0
  479. package/dist/translator/index.d.ts +13 -0
  480. package/dist/translator/index.d.ts.map +1 -0
  481. package/dist/translator/index.js +11 -0
  482. package/dist/translator/index.js.map +1 -0
  483. package/dist/translator/query-translator.d.ts +211 -0
  484. package/dist/translator/query-translator.d.ts.map +1 -0
  485. package/dist/translator/query-translator.js +1276 -0
  486. package/dist/translator/query-translator.js.map +1 -0
  487. package/dist/translator/search-highlight.d.ts +83 -0
  488. package/dist/translator/search-highlight.d.ts.map +1 -0
  489. package/dist/translator/search-highlight.js +83 -0
  490. package/dist/translator/search-highlight.js.map +1 -0
  491. package/dist/translator/search-translator.d.ts +155 -0
  492. package/dist/translator/search-translator.d.ts.map +1 -0
  493. package/dist/translator/search-translator.js +241 -0
  494. package/dist/translator/search-translator.js.map +1 -0
  495. package/dist/translator/stages/add-fields-stage.d.ts +7 -0
  496. package/dist/translator/stages/add-fields-stage.d.ts.map +1 -0
  497. package/dist/translator/stages/add-fields-stage.js +72 -0
  498. package/dist/translator/stages/add-fields-stage.js.map +1 -0
  499. package/dist/translator/stages/bucket-stage.d.ts +7 -0
  500. package/dist/translator/stages/bucket-stage.d.ts.map +1 -0
  501. package/dist/translator/stages/bucket-stage.js +87 -0
  502. package/dist/translator/stages/bucket-stage.js.map +1 -0
  503. package/dist/translator/stages/count-stage.d.ts +7 -0
  504. package/dist/translator/stages/count-stage.d.ts.map +1 -0
  505. package/dist/translator/stages/count-stage.js +12 -0
  506. package/dist/translator/stages/count-stage.js.map +1 -0
  507. package/dist/translator/stages/expression-translator.d.ts +68 -0
  508. package/dist/translator/stages/expression-translator.d.ts.map +1 -0
  509. package/dist/translator/stages/expression-translator.js +467 -0
  510. package/dist/translator/stages/expression-translator.js.map +1 -0
  511. package/dist/translator/stages/facet-stage.d.ts +13 -0
  512. package/dist/translator/stages/facet-stage.d.ts.map +1 -0
  513. package/dist/translator/stages/facet-stage.js +26 -0
  514. package/dist/translator/stages/facet-stage.js.map +1 -0
  515. package/dist/translator/stages/fusion-stages.d.ts +118 -0
  516. package/dist/translator/stages/fusion-stages.d.ts.map +1 -0
  517. package/dist/translator/stages/fusion-stages.js +201 -0
  518. package/dist/translator/stages/fusion-stages.js.map +1 -0
  519. package/dist/translator/stages/group-stage.d.ts +8 -0
  520. package/dist/translator/stages/group-stage.d.ts.map +1 -0
  521. package/dist/translator/stages/group-stage.js +123 -0
  522. package/dist/translator/stages/group-stage.js.map +1 -0
  523. package/dist/translator/stages/index.d.ts +24 -0
  524. package/dist/translator/stages/index.d.ts.map +1 -0
  525. package/dist/translator/stages/index.js +24 -0
  526. package/dist/translator/stages/index.js.map +1 -0
  527. package/dist/translator/stages/join-optimizer.d.ts +37 -0
  528. package/dist/translator/stages/join-optimizer.d.ts.map +1 -0
  529. package/dist/translator/stages/join-optimizer.js +93 -0
  530. package/dist/translator/stages/join-optimizer.js.map +1 -0
  531. package/dist/translator/stages/limit-stage.d.ts +7 -0
  532. package/dist/translator/stages/limit-stage.d.ts.map +1 -0
  533. package/dist/translator/stages/limit-stage.js +11 -0
  534. package/dist/translator/stages/limit-stage.js.map +1 -0
  535. package/dist/translator/stages/lookup-stage.d.ts +7 -0
  536. package/dist/translator/stages/lookup-stage.d.ts.map +1 -0
  537. package/dist/translator/stages/lookup-stage.js +73 -0
  538. package/dist/translator/stages/lookup-stage.js.map +1 -0
  539. package/dist/translator/stages/match-stage.d.ts +7 -0
  540. package/dist/translator/stages/match-stage.d.ts.map +1 -0
  541. package/dist/translator/stages/match-stage.js +14 -0
  542. package/dist/translator/stages/match-stage.js.map +1 -0
  543. package/dist/translator/stages/optimizer.d.ts +15 -0
  544. package/dist/translator/stages/optimizer.d.ts.map +1 -0
  545. package/dist/translator/stages/optimizer.js +249 -0
  546. package/dist/translator/stages/optimizer.js.map +1 -0
  547. package/dist/translator/stages/parallel-facet.d.ts +47 -0
  548. package/dist/translator/stages/parallel-facet.d.ts.map +1 -0
  549. package/dist/translator/stages/parallel-facet.js +57 -0
  550. package/dist/translator/stages/parallel-facet.js.map +1 -0
  551. package/dist/translator/stages/project-stage.d.ts +8 -0
  552. package/dist/translator/stages/project-stage.d.ts.map +1 -0
  553. package/dist/translator/stages/project-stage.js +145 -0
  554. package/dist/translator/stages/project-stage.js.map +1 -0
  555. package/dist/translator/stages/search-stage.d.ts +60 -0
  556. package/dist/translator/stages/search-stage.d.ts.map +1 -0
  557. package/dist/translator/stages/search-stage.js +89 -0
  558. package/dist/translator/stages/search-stage.js.map +1 -0
  559. package/dist/translator/stages/skip-stage.d.ts +7 -0
  560. package/dist/translator/stages/skip-stage.d.ts.map +1 -0
  561. package/dist/translator/stages/skip-stage.js +11 -0
  562. package/dist/translator/stages/skip-stage.js.map +1 -0
  563. package/dist/translator/stages/sort-stage.d.ts +7 -0
  564. package/dist/translator/stages/sort-stage.d.ts.map +1 -0
  565. package/dist/translator/stages/sort-stage.js +21 -0
  566. package/dist/translator/stages/sort-stage.js.map +1 -0
  567. package/dist/translator/stages/types.d.ts +136 -0
  568. package/dist/translator/stages/types.d.ts.map +1 -0
  569. package/dist/translator/stages/types.js +5 -0
  570. package/dist/translator/stages/types.js.map +1 -0
  571. package/dist/translator/stages/unwind-stage.d.ts +7 -0
  572. package/dist/translator/stages/unwind-stage.d.ts.map +1 -0
  573. package/dist/translator/stages/unwind-stage.js +61 -0
  574. package/dist/translator/stages/unwind-stage.js.map +1 -0
  575. package/dist/translator/stages/vector-search-stage.d.ts +53 -0
  576. package/dist/translator/stages/vector-search-stage.d.ts.map +1 -0
  577. package/dist/translator/stages/vector-search-stage.js +62 -0
  578. package/dist/translator/stages/vector-search-stage.js.map +1 -0
  579. package/dist/translator/update-translator.d.ts +148 -0
  580. package/dist/translator/update-translator.d.ts.map +1 -0
  581. package/dist/translator/update-translator.js +819 -0
  582. package/dist/translator/update-translator.js.map +1 -0
  583. package/dist/translator/vector-translator.d.ts +89 -0
  584. package/dist/translator/vector-translator.d.ts.map +1 -0
  585. package/dist/translator/vector-translator.js +106 -0
  586. package/dist/translator/vector-translator.js.map +1 -0
  587. package/dist/types/env.d.ts +31 -0
  588. package/dist/types/env.d.ts.map +1 -0
  589. package/dist/types/env.js +5 -0
  590. package/dist/types/env.js.map +1 -0
  591. package/dist/types/function.d.ts +65 -0
  592. package/dist/types/function.d.ts.map +1 -0
  593. package/dist/types/function.js +5 -0
  594. package/dist/types/function.js.map +1 -0
  595. package/dist/types/index.d.ts +137 -0
  596. package/dist/types/index.d.ts.map +1 -0
  597. package/dist/types/index.js +13 -0
  598. package/dist/types/index.js.map +1 -0
  599. package/dist/types/mongodb.d.ts +258 -0
  600. package/dist/types/mongodb.d.ts.map +1 -0
  601. package/dist/types/mongodb.js +5 -0
  602. package/dist/types/mongodb.js.map +1 -0
  603. package/dist/types/objectid.d.ts +130 -0
  604. package/dist/types/objectid.d.ts.map +1 -0
  605. package/dist/types/objectid.js +314 -0
  606. package/dist/types/objectid.js.map +1 -0
  607. package/dist/types/rpc.d.ts +313 -0
  608. package/dist/types/rpc.d.ts.map +1 -0
  609. package/dist/types/rpc.js +136 -0
  610. package/dist/types/rpc.js.map +1 -0
  611. package/dist/types/vectorize.d.ts +136 -0
  612. package/dist/types/vectorize.d.ts.map +1 -0
  613. package/dist/types/vectorize.js +8 -0
  614. package/dist/types/vectorize.js.map +1 -0
  615. package/dist/utils/sql-safety.d.ts +64 -0
  616. package/dist/utils/sql-safety.d.ts.map +1 -0
  617. package/dist/utils/sql-safety.js +112 -0
  618. package/dist/utils/sql-safety.js.map +1 -0
  619. package/dist/validation/document-validator.d.ts +195 -0
  620. package/dist/validation/document-validator.d.ts.map +1 -0
  621. package/dist/validation/document-validator.js +529 -0
  622. package/dist/validation/document-validator.js.map +1 -0
  623. package/dist/vectorize/document-serializer.d.ts +119 -0
  624. package/dist/vectorize/document-serializer.d.ts.map +1 -0
  625. package/dist/vectorize/document-serializer.js +320 -0
  626. package/dist/vectorize/document-serializer.js.map +1 -0
  627. package/dist/wire/auth/index.d.ts +5 -0
  628. package/dist/wire/auth/index.d.ts.map +1 -0
  629. package/dist/wire/auth/index.js +5 -0
  630. package/dist/wire/auth/index.js.map +1 -0
  631. package/dist/wire/auth/scram.d.ts +160 -0
  632. package/dist/wire/auth/scram.d.ts.map +1 -0
  633. package/dist/wire/auth/scram.js +425 -0
  634. package/dist/wire/auth/scram.js.map +1 -0
  635. package/dist/wire/backend/interface.d.ts +168 -0
  636. package/dist/wire/backend/interface.d.ts.map +1 -0
  637. package/dist/wire/backend/interface.js +10 -0
  638. package/dist/wire/backend/interface.js.map +1 -0
  639. package/dist/wire/backend/local-sqlite.d.ts +89 -0
  640. package/dist/wire/backend/local-sqlite.d.ts.map +1 -0
  641. package/dist/wire/backend/local-sqlite.js +1002 -0
  642. package/dist/wire/backend/local-sqlite.js.map +1 -0
  643. package/dist/wire/backend/query-router.d.ts +197 -0
  644. package/dist/wire/backend/query-router.d.ts.map +1 -0
  645. package/dist/wire/backend/query-router.js +590 -0
  646. package/dist/wire/backend/query-router.js.map +1 -0
  647. package/dist/wire/backend/validation.d.ts +26 -0
  648. package/dist/wire/backend/validation.d.ts.map +1 -0
  649. package/dist/wire/backend/validation.js +79 -0
  650. package/dist/wire/backend/validation.js.map +1 -0
  651. package/dist/wire/backend/workers-proxy.d.ts +95 -0
  652. package/dist/wire/backend/workers-proxy.d.ts.map +1 -0
  653. package/dist/wire/backend/workers-proxy.js +429 -0
  654. package/dist/wire/backend/workers-proxy.js.map +1 -0
  655. package/dist/wire/commands/admin.d.ts +49 -0
  656. package/dist/wire/commands/admin.d.ts.map +1 -0
  657. package/dist/wire/commands/admin.js +272 -0
  658. package/dist/wire/commands/admin.js.map +1 -0
  659. package/dist/wire/commands/aggregate.d.ts +15 -0
  660. package/dist/wire/commands/aggregate.d.ts.map +1 -0
  661. package/dist/wire/commands/aggregate.js +98 -0
  662. package/dist/wire/commands/aggregate.js.map +1 -0
  663. package/dist/wire/commands/auth.d.ts +58 -0
  664. package/dist/wire/commands/auth.d.ts.map +1 -0
  665. package/dist/wire/commands/auth.js +158 -0
  666. package/dist/wire/commands/auth.js.map +1 -0
  667. package/dist/wire/commands/crud.d.ts +49 -0
  668. package/dist/wire/commands/crud.d.ts.map +1 -0
  669. package/dist/wire/commands/crud.js +336 -0
  670. package/dist/wire/commands/crud.js.map +1 -0
  671. package/dist/wire/commands/hello.d.ts +35 -0
  672. package/dist/wire/commands/hello.d.ts.map +1 -0
  673. package/dist/wire/commands/hello.js +204 -0
  674. package/dist/wire/commands/hello.js.map +1 -0
  675. package/dist/wire/commands/index.d.ts +24 -0
  676. package/dist/wire/commands/index.d.ts.map +1 -0
  677. package/dist/wire/commands/index.js +145 -0
  678. package/dist/wire/commands/index.js.map +1 -0
  679. package/dist/wire/commands/router.d.ts +46 -0
  680. package/dist/wire/commands/router.d.ts.map +1 -0
  681. package/dist/wire/commands/router.js +151 -0
  682. package/dist/wire/commands/router.js.map +1 -0
  683. package/dist/wire/commands/types.d.ts +51 -0
  684. package/dist/wire/commands/types.d.ts.map +1 -0
  685. package/dist/wire/commands/types.js +15 -0
  686. package/dist/wire/commands/types.js.map +1 -0
  687. package/dist/wire/index.d.ts +15 -0
  688. package/dist/wire/index.d.ts.map +1 -0
  689. package/dist/wire/index.js +19 -0
  690. package/dist/wire/index.js.map +1 -0
  691. package/dist/wire/message.d.ts +49 -0
  692. package/dist/wire/message.d.ts.map +1 -0
  693. package/dist/wire/message.js +299 -0
  694. package/dist/wire/message.js.map +1 -0
  695. package/dist/wire/server.d.ts +145 -0
  696. package/dist/wire/server.d.ts.map +1 -0
  697. package/dist/wire/server.js +284 -0
  698. package/dist/wire/server.js.map +1 -0
  699. package/dist/wire/types.d.ts +140 -0
  700. package/dist/wire/types.d.ts.map +1 -0
  701. package/dist/wire/types.js +64 -0
  702. package/dist/wire/types.js.map +1 -0
  703. package/dist/worker.d.ts +17 -0
  704. package/dist/worker.d.ts.map +1 -0
  705. package/dist/worker.js +22 -0
  706. package/dist/worker.js.map +1 -0
  707. package/package.json +82 -0
@@ -0,0 +1,160 @@
1
+ /**
2
+ * Worker Loader Evaluator
3
+ *
4
+ * Evaluates and loads Cloudflare Worker code in an isolated sandbox.
5
+ * Uses the Worker Loader API to create isolated V8 contexts with:
6
+ * - Network isolation (globalOutbound: null)
7
+ * - Database access through DB_PROXY binding
8
+ * - Console.log capture
9
+ * - Timeout enforcement
10
+ */
11
+ import type { WorkerLoader, WorkerCode } from '../../types/function';
12
+ /**
13
+ * Result returned from sandbox code execution
14
+ */
15
+ export interface EvaluatorResult {
16
+ /** Whether execution succeeded */
17
+ success: boolean;
18
+ /** Return value from the code (if success) */
19
+ value?: unknown;
20
+ /** Captured console.log output */
21
+ logs: string[];
22
+ /** Error message (if !success) */
23
+ error?: string;
24
+ }
25
+ /**
26
+ * Interface for database access passed to sandbox
27
+ */
28
+ export interface DatabaseAccess {
29
+ /**
30
+ * Get a service binding/fetcher for the database proxy.
31
+ * This is passed to the sandbox worker as DB_PROXY.
32
+ */
33
+ getProxy(): Fetcher;
34
+ }
35
+ /**
36
+ * Fetcher interface for service bindings
37
+ */
38
+ export interface Fetcher {
39
+ fetch(request: Request | string, init?: RequestInit): Promise<Response>;
40
+ }
41
+ /**
42
+ * Worker evaluator interface
43
+ */
44
+ export interface WorkerEvaluator {
45
+ /** Execute the sandbox code and return results */
46
+ execute(): Promise<EvaluatorResult>;
47
+ }
48
+ /**
49
+ * Options for creating a worker evaluator
50
+ */
51
+ export interface EvaluatorOptions {
52
+ /** Timeout in milliseconds (default: 30000) */
53
+ timeout?: number;
54
+ /** Unique ID for the worker instance */
55
+ id?: string;
56
+ }
57
+ /**
58
+ * Create a Worker Loader Evaluator for executing code in an isolated sandbox.
59
+ *
60
+ * @param loader - The Worker Loader binding for creating isolated workers
61
+ * @param dbAccess - Database access provider for DB_PROXY binding
62
+ * @param code - The user code to execute
63
+ * @param options - Optional configuration
64
+ * @returns WorkerEvaluator instance
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const evaluator = createWorkerEvaluator(
69
+ * env.LOADER,
70
+ * { getProxy: () => env.DATABASE_PROXY },
71
+ * 'return await db.collection("users").find()'
72
+ * );
73
+ * const result = await evaluator.execute();
74
+ * if (result.success) {
75
+ * console.log('Result:', result.value);
76
+ * }
77
+ * ```
78
+ */
79
+ export declare function createWorkerEvaluator(loader: WorkerLoader, dbAccess: DatabaseAccess, code: string, options?: EvaluatorOptions): WorkerEvaluator;
80
+ /**
81
+ * Create a mock Worker Loader for testing purposes.
82
+ * This allows testing without actual Worker Loader binding.
83
+ *
84
+ * @param mockResults - Map of worker IDs to mock results
85
+ * @returns Mock WorkerLoader
86
+ */
87
+ export declare function createMockLoader(mockResults?: Map<string, EvaluatorResult>): {
88
+ loader: WorkerLoader;
89
+ getLastConfig: () => Promise<WorkerCode | null>;
90
+ getCapturedIds: () => string[];
91
+ };
92
+ /**
93
+ * Create a mock database access for testing.
94
+ *
95
+ * @param mockData - Mock data to return from database operations
96
+ * @returns Mock DatabaseAccess
97
+ */
98
+ export declare function createMockDbAccess(mockData?: Record<string, unknown[]>): {
99
+ dbAccess: DatabaseAccess;
100
+ getCapturedOperations: () => Array<{
101
+ operation: string;
102
+ params: unknown;
103
+ }>;
104
+ };
105
+ /**
106
+ * Configuration options for Worker Loader evaluator
107
+ * TODO: Implement in GREEN phase
108
+ */
109
+ export interface WorkerLoaderConfig {
110
+ /** Timeout in milliseconds */
111
+ timeout?: number;
112
+ /** Custom worker ID */
113
+ id?: string;
114
+ }
115
+ /**
116
+ * Security configuration for sandbox isolation
117
+ * TODO: Implement in GREEN phase
118
+ */
119
+ export interface SecurityConfig {
120
+ /** Block all network access (fetch, connect) */
121
+ blockNetwork: boolean;
122
+ /** Block file system access */
123
+ blockFileSystem: boolean;
124
+ /** Maximum execution time in milliseconds */
125
+ maxExecutionTime: number;
126
+ /** Maximum memory usage in bytes */
127
+ maxMemory: number;
128
+ }
129
+ /**
130
+ * Extended result with execution duration
131
+ * TODO: Implement in GREEN phase
132
+ */
133
+ export interface ExecutionResult {
134
+ success: boolean;
135
+ value?: unknown;
136
+ error?: string;
137
+ logs: string[];
138
+ /** Execution duration in milliseconds */
139
+ duration: number;
140
+ }
141
+ /**
142
+ * Worker Loader Evaluator class for direct Worker Loader integration
143
+ * TODO: Implement in GREEN phase
144
+ */
145
+ export declare class WorkerLoaderEvaluator implements WorkerEvaluator {
146
+ constructor(_loader: unknown, _dbAccess: DatabaseAccess, _code: string, _config?: WorkerLoaderConfig);
147
+ execute(): Promise<EvaluatorResult>;
148
+ }
149
+ /**
150
+ * Create a Worker Loader evaluator with full integration
151
+ * TODO: Implement in GREEN phase
152
+ *
153
+ * @param loader - Worker Loader binding
154
+ * @param dbAccess - Database access provider
155
+ * @param code - User code to execute
156
+ * @param config - Optional configuration
157
+ * @returns WorkerLoaderEvaluator instance
158
+ */
159
+ export declare function createWorkerLoaderEvaluator(_loader: unknown, _dbAccess: DatabaseAccess, _code: string, _config?: WorkerLoaderConfig): WorkerLoaderEvaluator;
160
+ //# sourceMappingURL=worker-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-evaluator.d.ts","sourceRoot":"","sources":["../../../src/mcp/sandbox/worker-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAgC,MAAM,sBAAsB,CAAA;AAElG;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kCAAkC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACxE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAA;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CA0EjB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,GAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAa,GAAG;IACvF,MAAM,EAAE,YAAY,CAAA;IACpB,aAAa,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAC/C,cAAc,EAAE,MAAM,MAAM,EAAE,CAAA;CAC/B,CAuCA;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAM,GAAG;IAC5E,QAAQ,EAAE,cAAc,CAAA;IACxB,qBAAqB,EAAE,MAAM,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAC3E,CA+CA;AAMD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAA;IACrB,+BAA+B;IAC/B,eAAe,EAAE,OAAO,CAAA;IACxB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,eAAe;gBAEzD,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB;IAKxB,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;CAG1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,GAC3B,qBAAqB,CAGvB"}
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Worker Loader Evaluator
3
+ *
4
+ * Evaluates and loads Cloudflare Worker code in an isolated sandbox.
5
+ * Uses the Worker Loader API to create isolated V8 contexts with:
6
+ * - Network isolation (globalOutbound: null)
7
+ * - Database access through DB_PROXY binding
8
+ * - Console.log capture
9
+ * - Timeout enforcement
10
+ */
11
+ import { randomUUID } from 'crypto';
12
+ import { generateSandboxCode } from './template';
13
+ /**
14
+ * Create a Worker Loader Evaluator for executing code in an isolated sandbox.
15
+ *
16
+ * @param loader - The Worker Loader binding for creating isolated workers
17
+ * @param dbAccess - Database access provider for DB_PROXY binding
18
+ * @param code - The user code to execute
19
+ * @param options - Optional configuration
20
+ * @returns WorkerEvaluator instance
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const evaluator = createWorkerEvaluator(
25
+ * env.LOADER,
26
+ * { getProxy: () => env.DATABASE_PROXY },
27
+ * 'return await db.collection("users").find()'
28
+ * );
29
+ * const result = await evaluator.execute();
30
+ * if (result.success) {
31
+ * console.log('Result:', result.value);
32
+ * }
33
+ * ```
34
+ */
35
+ export function createWorkerEvaluator(loader, dbAccess, code, options = {}) {
36
+ const workerId = options.id ?? `sandbox-${randomUUID()}`;
37
+ const timeout = options.timeout ?? 30000;
38
+ return {
39
+ async execute() {
40
+ try {
41
+ // Generate sandbox code that wraps user code
42
+ const sandboxCode = generateSandboxCode(code);
43
+ // Get or create the worker with sandbox configuration
44
+ const worker = loader.get(workerId, async () => ({
45
+ compatibilityDate: '2025-06-01',
46
+ compatibilityFlags: ['nodejs_compat'],
47
+ mainModule: 'sandbox.js',
48
+ modules: {
49
+ 'sandbox.js': sandboxCode
50
+ },
51
+ env: {
52
+ DB_PROXY: dbAccess.getProxy()
53
+ },
54
+ globalOutbound: null // Block all network access
55
+ }));
56
+ // Get the entrypoint and execute with timeout
57
+ if (!worker.getEntrypoint) {
58
+ return {
59
+ success: false,
60
+ error: 'Worker does not have getEntrypoint method',
61
+ logs: [],
62
+ };
63
+ }
64
+ const entrypoint = worker.getEntrypoint();
65
+ // Create timeout promise
66
+ const timeoutPromise = new Promise((_, reject) => {
67
+ setTimeout(() => {
68
+ reject(new Error(`Sandbox execution timed out after ${timeout}ms`));
69
+ }, timeout);
70
+ });
71
+ // Execute with timeout race
72
+ const response = await Promise.race([
73
+ entrypoint.fetch(new Request('http://internal/evaluate', {
74
+ method: 'POST',
75
+ headers: { 'Content-Type': 'application/json' }
76
+ })),
77
+ timeoutPromise
78
+ ]);
79
+ const result = await response.json();
80
+ const evalResult = {
81
+ success: result.success,
82
+ logs: result.logs ?? [],
83
+ };
84
+ if (result.value !== undefined) {
85
+ evalResult.value = result.value;
86
+ }
87
+ if (result.error) {
88
+ evalResult.error = result.error;
89
+ }
90
+ return evalResult;
91
+ }
92
+ catch (error) {
93
+ return {
94
+ success: false,
95
+ error: error instanceof Error ? error.message : 'Execution failed',
96
+ logs: []
97
+ };
98
+ }
99
+ }
100
+ };
101
+ }
102
+ /**
103
+ * Create a mock Worker Loader for testing purposes.
104
+ * This allows testing without actual Worker Loader binding.
105
+ *
106
+ * @param mockResults - Map of worker IDs to mock results
107
+ * @returns Mock WorkerLoader
108
+ */
109
+ export function createMockLoader(mockResults = new Map()) {
110
+ let lastConfig = null;
111
+ const capturedIds = [];
112
+ const loader = {
113
+ get(id, getCode) {
114
+ capturedIds.push(id);
115
+ return {
116
+ getEntrypoint(_name) {
117
+ return {
118
+ async fetch(_request) {
119
+ // Capture the code configuration
120
+ lastConfig = await getCode();
121
+ // Return mock result if available
122
+ const mockResult = mockResults.get(id);
123
+ if (mockResult) {
124
+ return Response.json(mockResult);
125
+ }
126
+ // Default success result
127
+ return Response.json({
128
+ success: true,
129
+ value: undefined,
130
+ logs: []
131
+ });
132
+ }
133
+ };
134
+ }
135
+ };
136
+ }
137
+ };
138
+ return {
139
+ loader,
140
+ getLastConfig: async () => lastConfig,
141
+ getCapturedIds: () => capturedIds
142
+ };
143
+ }
144
+ /**
145
+ * Create a mock database access for testing.
146
+ *
147
+ * @param mockData - Mock data to return from database operations
148
+ * @returns Mock DatabaseAccess
149
+ */
150
+ export function createMockDbAccess(mockData = {}) {
151
+ const capturedOperations = [];
152
+ const proxy = {
153
+ async fetch(request) {
154
+ const req = typeof request === 'string' ? new Request(request) : request;
155
+ const url = new URL(req.url);
156
+ const operation = url.pathname.slice(1); // Remove leading /
157
+ let params = {};
158
+ if (req.method === 'POST') {
159
+ params = await req.json();
160
+ }
161
+ capturedOperations.push({ operation, params });
162
+ // Return mock data based on operation
163
+ if (operation === 'find') {
164
+ const p = params;
165
+ return Response.json(mockData[p.collection] ?? []);
166
+ }
167
+ if (operation === 'findOne') {
168
+ const p = params;
169
+ const docs = mockData[p.collection] ?? [];
170
+ return Response.json(docs[0] ?? null);
171
+ }
172
+ if (operation === 'countDocuments') {
173
+ const p = params;
174
+ return Response.json((mockData[p.collection] ?? []).length);
175
+ }
176
+ if (operation === 'listCollections') {
177
+ return Response.json(Object.keys(mockData));
178
+ }
179
+ // Default response for other operations
180
+ return Response.json({ ok: true });
181
+ }
182
+ };
183
+ const dbAccess = {
184
+ getProxy: () => proxy
185
+ };
186
+ return {
187
+ dbAccess,
188
+ getCapturedOperations: () => capturedOperations
189
+ };
190
+ }
191
+ /**
192
+ * Worker Loader Evaluator class for direct Worker Loader integration
193
+ * TODO: Implement in GREEN phase
194
+ */
195
+ export class WorkerLoaderEvaluator {
196
+ constructor(_loader, _dbAccess, _code, _config) {
197
+ // Stub - not implemented
198
+ }
199
+ async execute() {
200
+ throw new Error('WorkerLoaderEvaluator not implemented');
201
+ }
202
+ }
203
+ /**
204
+ * Create a Worker Loader evaluator with full integration
205
+ * TODO: Implement in GREEN phase
206
+ *
207
+ * @param loader - Worker Loader binding
208
+ * @param dbAccess - Database access provider
209
+ * @param code - User code to execute
210
+ * @param config - Optional configuration
211
+ * @returns WorkerLoaderEvaluator instance
212
+ */
213
+ export function createWorkerLoaderEvaluator(_loader, _dbAccess, _code, _config) {
214
+ // Stub - not implemented
215
+ throw new Error('createWorkerLoaderEvaluator not implemented');
216
+ }
217
+ //# sourceMappingURL=worker-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-evaluator.js","sourceRoot":"","sources":["../../../src/mcp/sandbox/worker-evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * MCP Server Factory for mongo.do
3
+ *
4
+ * Creates MCP server instances that provide:
5
+ * - search: Query documents (readonly)
6
+ * - fetch: Retrieve full documents by ID (readonly)
7
+ * - do: Execute secure arbitrary code via Worker Loader sandbox (when loader available)
8
+ */
9
+ import type { McpToolDefinition, McpToolHandler, McpToolResponse, McpRegisteredTool, McpRequest, McpResponse } from './types';
10
+ export type { DatabaseAccess } from './types';
11
+ /**
12
+ * Code loader interface for executing JavaScript code in a sandbox
13
+ */
14
+ export interface CodeLoader {
15
+ execute(code: string, context?: Record<string, unknown>): Promise<{
16
+ success: boolean;
17
+ result?: unknown;
18
+ error?: string;
19
+ }>;
20
+ }
21
+ /**
22
+ * Configuration for creating an MCP server
23
+ */
24
+ export interface McpServerConfig {
25
+ /** Database access interface for tool implementations */
26
+ dbAccess: DatabaseAccess;
27
+ /** Optional code loader for secure code execution (enables 'do' tool) */
28
+ codeLoader?: CodeLoader;
29
+ /** Server name (default: 'mongo.do') */
30
+ name?: string;
31
+ /** Server version (default: '1.0.0') */
32
+ version?: string;
33
+ }
34
+ /**
35
+ * MCP Server instance
36
+ */
37
+ export interface McpServer {
38
+ /** Server name */
39
+ readonly name: string;
40
+ /** Server version */
41
+ readonly version: string;
42
+ /**
43
+ * Register a tool with the server
44
+ */
45
+ tool<T extends Record<string, unknown>>(name: string, inputSchema: McpToolDefinition['inputSchema'], handler: McpToolHandler<T>, annotations?: McpToolDefinition['annotations']): void;
46
+ /**
47
+ * Register a tool with definition and handler
48
+ */
49
+ registerTool(tool: McpRegisteredTool): void;
50
+ /**
51
+ * List all registered tools
52
+ */
53
+ listTools(): Promise<McpToolDefinition[]>;
54
+ /**
55
+ * Call a tool by name
56
+ */
57
+ callTool(name: string, args: Record<string, unknown>): Promise<McpToolResponse>;
58
+ /**
59
+ * Handle an incoming MCP request (JSON-RPC)
60
+ */
61
+ handleRequest(request: McpRequest): Promise<McpResponse>;
62
+ }
63
+ import type { DatabaseAccess } from './types';
64
+ /**
65
+ * Create an MCP server instance for mongo.do
66
+ *
67
+ * @param config - Server configuration including database access and optional code loader
68
+ * @returns Configured MCP server instance
69
+ */
70
+ export declare function createMcpServer(config: McpServerConfig): McpServer;
71
+ /**
72
+ * Create a mock DatabaseAccess for testing
73
+ */
74
+ export declare function createMockDatabaseAccess(): DatabaseAccess;
75
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,WAAW,EAGZ,MAAM,SAAS,CAAA;AAGhB,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC1H;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,QAAQ,EAAE,cAAc,CAAA;IACxB,yEAAyE;IACzE,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,kBAAkB;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAC7C,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAC7C,IAAI,CAAA;IAEP;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAE3C;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAA;IAEzC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAE/E;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACzD;AAGD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAyPlE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,cAAc,CA0CzD"}