mongo.do 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (706) hide show
  1. package/dist/cli/index.d.ts +1 -15
  2. package/dist/cli/index.js +4083 -196
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/index.d.ts +2740 -20
  5. package/dist/index.js +9375 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/worker-entrypoint-BEW23Gmp.d.ts +1331 -0
  8. package/dist/worker.d.ts +6 -5
  9. package/dist/worker.js +5477 -18
  10. package/dist/worker.js.map +1 -1
  11. package/package.json +3 -2
  12. package/dist/agentfs/adapters/anthropic.d.ts +0 -176
  13. package/dist/agentfs/adapters/anthropic.d.ts.map +0 -1
  14. package/dist/agentfs/adapters/anthropic.js +0 -629
  15. package/dist/agentfs/adapters/anthropic.js.map +0 -1
  16. package/dist/agentfs/adapters/index.d.ts +0 -21
  17. package/dist/agentfs/adapters/index.d.ts.map +0 -1
  18. package/dist/agentfs/adapters/index.js +0 -23
  19. package/dist/agentfs/adapters/index.js.map +0 -1
  20. package/dist/agentfs/adapters/vercel.d.ts +0 -260
  21. package/dist/agentfs/adapters/vercel.d.ts.map +0 -1
  22. package/dist/agentfs/adapters/vercel.js +0 -288
  23. package/dist/agentfs/adapters/vercel.js.map +0 -1
  24. package/dist/agentfs/glob.d.ts +0 -116
  25. package/dist/agentfs/glob.d.ts.map +0 -1
  26. package/dist/agentfs/glob.js +0 -270
  27. package/dist/agentfs/glob.js.map +0 -1
  28. package/dist/agentfs/grep.d.ts +0 -83
  29. package/dist/agentfs/grep.d.ts.map +0 -1
  30. package/dist/agentfs/grep.js +0 -193
  31. package/dist/agentfs/grep.js.map +0 -1
  32. package/dist/agentfs/index.d.ts +0 -22
  33. package/dist/agentfs/index.d.ts.map +0 -1
  34. package/dist/agentfs/index.js +0 -18
  35. package/dist/agentfs/index.js.map +0 -1
  36. package/dist/agentfs/kv-store.d.ts +0 -128
  37. package/dist/agentfs/kv-store.d.ts.map +0 -1
  38. package/dist/agentfs/kv-store.js +0 -227
  39. package/dist/agentfs/kv-store.js.map +0 -1
  40. package/dist/agentfs/mondo-agent.d.ts +0 -255
  41. package/dist/agentfs/mondo-agent.d.ts.map +0 -1
  42. package/dist/agentfs/mondo-agent.js +0 -879
  43. package/dist/agentfs/mondo-agent.js.map +0 -1
  44. package/dist/agentfs/toolcalls.d.ts +0 -130
  45. package/dist/agentfs/toolcalls.d.ts.map +0 -1
  46. package/dist/agentfs/toolcalls.js +0 -178
  47. package/dist/agentfs/toolcalls.js.map +0 -1
  48. package/dist/agentfs/types.d.ts +0 -171
  49. package/dist/agentfs/types.d.ts.map +0 -1
  50. package/dist/agentfs/types.js +0 -7
  51. package/dist/agentfs/types.js.map +0 -1
  52. package/dist/agentfs/vfs.d.ts +0 -249
  53. package/dist/agentfs/vfs.d.ts.map +0 -1
  54. package/dist/agentfs/vfs.js +0 -469
  55. package/dist/agentfs/vfs.js.map +0 -1
  56. package/dist/cli/index.d.ts.map +0 -1
  57. package/dist/cli/mcp.d.ts +0 -119
  58. package/dist/cli/mcp.d.ts.map +0 -1
  59. package/dist/cli/mcp.js +0 -418
  60. package/dist/cli/mcp.js.map +0 -1
  61. package/dist/cli/server.d.ts +0 -179
  62. package/dist/cli/server.d.ts.map +0 -1
  63. package/dist/cli/server.js +0 -441
  64. package/dist/cli/server.js.map +0 -1
  65. package/dist/client/Collection.d.ts +0 -199
  66. package/dist/client/Collection.d.ts.map +0 -1
  67. package/dist/client/Collection.js +0 -256
  68. package/dist/client/Collection.js.map +0 -1
  69. package/dist/client/Database.d.ts +0 -68
  70. package/dist/client/Database.d.ts.map +0 -1
  71. package/dist/client/Database.js +0 -105
  72. package/dist/client/Database.js.map +0 -1
  73. package/dist/client/MongoClient.d.ts +0 -165
  74. package/dist/client/MongoClient.d.ts.map +0 -1
  75. package/dist/client/MongoClient.js +0 -307
  76. package/dist/client/MongoClient.js.map +0 -1
  77. package/dist/client/aggregation-cursor.d.ts +0 -210
  78. package/dist/client/aggregation-cursor.d.ts.map +0 -1
  79. package/dist/client/aggregation-cursor.js +0 -509
  80. package/dist/client/aggregation-cursor.js.map +0 -1
  81. package/dist/client/bulk-write.d.ts +0 -216
  82. package/dist/client/bulk-write.d.ts.map +0 -1
  83. package/dist/client/bulk-write.js +0 -63
  84. package/dist/client/bulk-write.js.map +0 -1
  85. package/dist/client/change-stream.d.ts +0 -245
  86. package/dist/client/change-stream.d.ts.map +0 -1
  87. package/dist/client/change-stream.js +0 -429
  88. package/dist/client/change-stream.js.map +0 -1
  89. package/dist/client/cursor.d.ts +0 -85
  90. package/dist/client/cursor.d.ts.map +0 -1
  91. package/dist/client/cursor.js +0 -156
  92. package/dist/client/cursor.js.map +0 -1
  93. package/dist/client/http-cursor.d.ts +0 -233
  94. package/dist/client/http-cursor.d.ts.map +0 -1
  95. package/dist/client/http-cursor.js +0 -496
  96. package/dist/client/http-cursor.js.map +0 -1
  97. package/dist/client/index.d.ts +0 -18
  98. package/dist/client/index.d.ts.map +0 -1
  99. package/dist/client/index.js +0 -24
  100. package/dist/client/index.js.map +0 -1
  101. package/dist/client/mongo-client.d.ts +0 -60
  102. package/dist/client/mongo-client.d.ts.map +0 -1
  103. package/dist/client/mongo-client.js +0 -190
  104. package/dist/client/mongo-client.js.map +0 -1
  105. package/dist/client/mongo-collection.d.ts +0 -359
  106. package/dist/client/mongo-collection.d.ts.map +0 -1
  107. package/dist/client/mongo-collection.js +0 -1641
  108. package/dist/client/mongo-collection.js.map +0 -1
  109. package/dist/client/mongo-cursor.d.ts +0 -257
  110. package/dist/client/mongo-cursor.d.ts.map +0 -1
  111. package/dist/client/mongo-cursor.js +0 -621
  112. package/dist/client/mongo-cursor.js.map +0 -1
  113. package/dist/client/mongo-database.d.ts +0 -88
  114. package/dist/client/mongo-database.d.ts.map +0 -1
  115. package/dist/client/mongo-database.js +0 -139
  116. package/dist/client/mongo-database.js.map +0 -1
  117. package/dist/client/session.d.ts +0 -210
  118. package/dist/client/session.d.ts.map +0 -1
  119. package/dist/client/session.js +0 -326
  120. package/dist/client/session.js.map +0 -1
  121. package/dist/durable-object/index-manager.d.ts +0 -173
  122. package/dist/durable-object/index-manager.d.ts.map +0 -1
  123. package/dist/durable-object/index-manager.js +0 -764
  124. package/dist/durable-object/index-manager.js.map +0 -1
  125. package/dist/durable-object/index.d.ts +0 -12
  126. package/dist/durable-object/index.d.ts.map +0 -1
  127. package/dist/durable-object/index.js +0 -8
  128. package/dist/durable-object/index.js.map +0 -1
  129. package/dist/durable-object/mcp-handler.d.ts +0 -52
  130. package/dist/durable-object/mcp-handler.d.ts.map +0 -1
  131. package/dist/durable-object/mcp-handler.js +0 -186
  132. package/dist/durable-object/mcp-handler.js.map +0 -1
  133. package/dist/durable-object/migrations.d.ts +0 -40
  134. package/dist/durable-object/migrations.d.ts.map +0 -1
  135. package/dist/durable-object/migrations.js +0 -121
  136. package/dist/durable-object/migrations.js.map +0 -1
  137. package/dist/durable-object/mondo-database.d.ts +0 -148
  138. package/dist/durable-object/mondo-database.d.ts.map +0 -1
  139. package/dist/durable-object/mondo-database.js +0 -621
  140. package/dist/durable-object/mondo-database.js.map +0 -1
  141. package/dist/durable-object/schema.d.ts +0 -192
  142. package/dist/durable-object/schema.d.ts.map +0 -1
  143. package/dist/durable-object/schema.js +0 -186
  144. package/dist/durable-object/schema.js.map +0 -1
  145. package/dist/embedding/document-serializer.d.ts +0 -118
  146. package/dist/embedding/document-serializer.d.ts.map +0 -1
  147. package/dist/embedding/document-serializer.js +0 -339
  148. package/dist/embedding/document-serializer.js.map +0 -1
  149. package/dist/embedding/embedding-manager.d.ts +0 -136
  150. package/dist/embedding/embedding-manager.d.ts.map +0 -1
  151. package/dist/embedding/embedding-manager.js +0 -176
  152. package/dist/embedding/embedding-manager.js.map +0 -1
  153. package/dist/embedding/index.d.ts +0 -9
  154. package/dist/embedding/index.d.ts.map +0 -1
  155. package/dist/embedding/index.js +0 -9
  156. package/dist/embedding/index.js.map +0 -1
  157. package/dist/executor/aggregation-executor.d.ts +0 -93
  158. package/dist/executor/aggregation-executor.d.ts.map +0 -1
  159. package/dist/executor/aggregation-executor.js +0 -275
  160. package/dist/executor/aggregation-executor.js.map +0 -1
  161. package/dist/executor/function-executor.d.ts +0 -39
  162. package/dist/executor/function-executor.d.ts.map +0 -1
  163. package/dist/executor/function-executor.js +0 -168
  164. package/dist/executor/function-executor.js.map +0 -1
  165. package/dist/executor/index.d.ts +0 -4
  166. package/dist/executor/index.d.ts.map +0 -1
  167. package/dist/executor/index.js +0 -4
  168. package/dist/executor/index.js.map +0 -1
  169. package/dist/executor/vector-search-executor.d.ts +0 -71
  170. package/dist/executor/vector-search-executor.d.ts.map +0 -1
  171. package/dist/executor/vector-search-executor.js +0 -113
  172. package/dist/executor/vector-search-executor.js.map +0 -1
  173. package/dist/index.d.ts.map +0 -1
  174. package/dist/mcp/adapters/anthropic-adapter.d.ts +0 -256
  175. package/dist/mcp/adapters/anthropic-adapter.d.ts.map +0 -1
  176. package/dist/mcp/adapters/anthropic-adapter.js +0 -409
  177. package/dist/mcp/adapters/anthropic-adapter.js.map +0 -1
  178. package/dist/mcp/adapters/base-adapter.d.ts +0 -164
  179. package/dist/mcp/adapters/base-adapter.d.ts.map +0 -1
  180. package/dist/mcp/adapters/base-adapter.js +0 -277
  181. package/dist/mcp/adapters/base-adapter.js.map +0 -1
  182. package/dist/mcp/adapters/errors.d.ts +0 -173
  183. package/dist/mcp/adapters/errors.d.ts.map +0 -1
  184. package/dist/mcp/adapters/errors.js +0 -305
  185. package/dist/mcp/adapters/errors.js.map +0 -1
  186. package/dist/mcp/adapters/index.d.ts +0 -65
  187. package/dist/mcp/adapters/index.d.ts.map +0 -1
  188. package/dist/mcp/adapters/index.js +0 -92
  189. package/dist/mcp/adapters/index.js.map +0 -1
  190. package/dist/mcp/adapters/streaming.d.ts +0 -200
  191. package/dist/mcp/adapters/streaming.d.ts.map +0 -1
  192. package/dist/mcp/adapters/streaming.js +0 -381
  193. package/dist/mcp/adapters/streaming.js.map +0 -1
  194. package/dist/mcp/adapters/vercel-adapter.d.ts +0 -321
  195. package/dist/mcp/adapters/vercel-adapter.d.ts.map +0 -1
  196. package/dist/mcp/adapters/vercel-adapter.js +0 -487
  197. package/dist/mcp/adapters/vercel-adapter.js.map +0 -1
  198. package/dist/mcp/agent.d.ts +0 -192
  199. package/dist/mcp/agent.d.ts.map +0 -1
  200. package/dist/mcp/agent.js +0 -338
  201. package/dist/mcp/agent.js.map +0 -1
  202. package/dist/mcp/cli.d.ts +0 -71
  203. package/dist/mcp/cli.d.ts.map +0 -1
  204. package/dist/mcp/cli.js +0 -218
  205. package/dist/mcp/cli.js.map +0 -1
  206. package/dist/mcp/index.d.ts +0 -15
  207. package/dist/mcp/index.d.ts.map +0 -1
  208. package/dist/mcp/index.js +0 -20
  209. package/dist/mcp/index.js.map +0 -1
  210. package/dist/mcp/sandbox/database-proxy.d.ts +0 -118
  211. package/dist/mcp/sandbox/database-proxy.d.ts.map +0 -1
  212. package/dist/mcp/sandbox/database-proxy.js +0 -154
  213. package/dist/mcp/sandbox/database-proxy.js.map +0 -1
  214. package/dist/mcp/sandbox/index.d.ts +0 -8
  215. package/dist/mcp/sandbox/index.d.ts.map +0 -1
  216. package/dist/mcp/sandbox/index.js +0 -7
  217. package/dist/mcp/sandbox/index.js.map +0 -1
  218. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -72
  219. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
  220. package/dist/mcp/sandbox/miniflare-evaluator.js +0 -379
  221. package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
  222. package/dist/mcp/sandbox/template.d.ts +0 -48
  223. package/dist/mcp/sandbox/template.d.ts.map +0 -1
  224. package/dist/mcp/sandbox/template.js +0 -147
  225. package/dist/mcp/sandbox/template.js.map +0 -1
  226. package/dist/mcp/sandbox/worker-evaluator.d.ts +0 -160
  227. package/dist/mcp/sandbox/worker-evaluator.d.ts.map +0 -1
  228. package/dist/mcp/sandbox/worker-evaluator.js +0 -217
  229. package/dist/mcp/sandbox/worker-evaluator.js.map +0 -1
  230. package/dist/mcp/server.d.ts +0 -75
  231. package/dist/mcp/server.d.ts.map +0 -1
  232. package/dist/mcp/server.js +0 -278
  233. package/dist/mcp/server.js.map +0 -1
  234. package/dist/mcp/tool-call-auditor.d.ts +0 -188
  235. package/dist/mcp/tool-call-auditor.d.ts.map +0 -1
  236. package/dist/mcp/tool-call-auditor.js +0 -198
  237. package/dist/mcp/tool-call-auditor.js.map +0 -1
  238. package/dist/mcp/tools/do.d.ts +0 -51
  239. package/dist/mcp/tools/do.d.ts.map +0 -1
  240. package/dist/mcp/tools/do.js +0 -113
  241. package/dist/mcp/tools/do.js.map +0 -1
  242. package/dist/mcp/tools/fetch.d.ts +0 -43
  243. package/dist/mcp/tools/fetch.d.ts.map +0 -1
  244. package/dist/mcp/tools/fetch.js +0 -127
  245. package/dist/mcp/tools/fetch.js.map +0 -1
  246. package/dist/mcp/tools/index.d.ts +0 -9
  247. package/dist/mcp/tools/index.d.ts.map +0 -1
  248. package/dist/mcp/tools/index.js +0 -9
  249. package/dist/mcp/tools/index.js.map +0 -1
  250. package/dist/mcp/tools/search.d.ts +0 -60
  251. package/dist/mcp/tools/search.d.ts.map +0 -1
  252. package/dist/mcp/tools/search.js +0 -278
  253. package/dist/mcp/tools/search.js.map +0 -1
  254. package/dist/mcp/transport/http.d.ts +0 -144
  255. package/dist/mcp/transport/http.d.ts.map +0 -1
  256. package/dist/mcp/transport/http.js +0 -545
  257. package/dist/mcp/transport/http.js.map +0 -1
  258. package/dist/mcp/transport/index.d.ts +0 -10
  259. package/dist/mcp/transport/index.d.ts.map +0 -1
  260. package/dist/mcp/transport/index.js +0 -12
  261. package/dist/mcp/transport/index.js.map +0 -1
  262. package/dist/mcp/transport/stdio.d.ts +0 -132
  263. package/dist/mcp/transport/stdio.d.ts.map +0 -1
  264. package/dist/mcp/transport/stdio.js +0 -466
  265. package/dist/mcp/transport/stdio.js.map +0 -1
  266. package/dist/mcp/types.d.ts +0 -476
  267. package/dist/mcp/types.d.ts.map +0 -1
  268. package/dist/mcp/types.js +0 -178
  269. package/dist/mcp/types.js.map +0 -1
  270. package/dist/olap/cdc/cdc-buffer.d.ts +0 -92
  271. package/dist/olap/cdc/cdc-buffer.d.ts.map +0 -1
  272. package/dist/olap/cdc/cdc-buffer.js +0 -146
  273. package/dist/olap/cdc/cdc-buffer.js.map +0 -1
  274. package/dist/olap/cdc/cdc-emitter.d.ts +0 -118
  275. package/dist/olap/cdc/cdc-emitter.d.ts.map +0 -1
  276. package/dist/olap/cdc/cdc-emitter.js +0 -217
  277. package/dist/olap/cdc/cdc-emitter.js.map +0 -1
  278. package/dist/olap/cdc/cdc-schema.d.ts +0 -119
  279. package/dist/olap/cdc/cdc-schema.d.ts.map +0 -1
  280. package/dist/olap/cdc/cdc-schema.js +0 -253
  281. package/dist/olap/cdc/cdc-schema.js.map +0 -1
  282. package/dist/olap/cdc/index.d.ts +0 -10
  283. package/dist/olap/cdc/index.d.ts.map +0 -1
  284. package/dist/olap/cdc/index.js +0 -10
  285. package/dist/olap/cdc/index.js.map +0 -1
  286. package/dist/olap/clickhouse/iceberg.d.ts +0 -164
  287. package/dist/olap/clickhouse/iceberg.d.ts.map +0 -1
  288. package/dist/olap/clickhouse/iceberg.js +0 -138
  289. package/dist/olap/clickhouse/iceberg.js.map +0 -1
  290. package/dist/olap/clickhouse/index.d.ts +0 -14
  291. package/dist/olap/clickhouse/index.d.ts.map +0 -1
  292. package/dist/olap/clickhouse/index.js +0 -14
  293. package/dist/olap/clickhouse/index.js.map +0 -1
  294. package/dist/olap/clickhouse/mapper.d.ts +0 -170
  295. package/dist/olap/clickhouse/mapper.d.ts.map +0 -1
  296. package/dist/olap/clickhouse/mapper.js +0 -654
  297. package/dist/olap/clickhouse/mapper.js.map +0 -1
  298. package/dist/olap/clickhouse/olap-backend.d.ts +0 -181
  299. package/dist/olap/clickhouse/olap-backend.d.ts.map +0 -1
  300. package/dist/olap/clickhouse/olap-backend.js +0 -1083
  301. package/dist/olap/clickhouse/olap-backend.js.map +0 -1
  302. package/dist/olap/clickhouse/query-executor.d.ts +0 -163
  303. package/dist/olap/clickhouse/query-executor.d.ts.map +0 -1
  304. package/dist/olap/clickhouse/query-executor.js +0 -560
  305. package/dist/olap/clickhouse/query-executor.js.map +0 -1
  306. package/dist/olap/clickhouse/query.d.ts +0 -134
  307. package/dist/olap/clickhouse/query.d.ts.map +0 -1
  308. package/dist/olap/clickhouse/query.js +0 -512
  309. package/dist/olap/clickhouse/query.js.map +0 -1
  310. package/dist/olap/stage/index.d.ts +0 -6
  311. package/dist/olap/stage/index.d.ts.map +0 -1
  312. package/dist/olap/stage/index.js +0 -6
  313. package/dist/olap/stage/index.js.map +0 -1
  314. package/dist/olap/stage/parser.d.ts +0 -68
  315. package/dist/olap/stage/parser.d.ts.map +0 -1
  316. package/dist/olap/stage/parser.js +0 -293
  317. package/dist/olap/stage/parser.js.map +0 -1
  318. package/dist/olap/stage/router.d.ts +0 -94
  319. package/dist/olap/stage/router.d.ts.map +0 -1
  320. package/dist/olap/stage/router.js +0 -390
  321. package/dist/olap/stage/router.js.map +0 -1
  322. package/dist/rpc/endpoint.d.ts +0 -52
  323. package/dist/rpc/endpoint.d.ts.map +0 -1
  324. package/dist/rpc/endpoint.js +0 -734
  325. package/dist/rpc/endpoint.js.map +0 -1
  326. package/dist/rpc/index.d.ts +0 -34
  327. package/dist/rpc/index.d.ts.map +0 -1
  328. package/dist/rpc/index.js +0 -45
  329. package/dist/rpc/index.js.map +0 -1
  330. package/dist/rpc/rpc-client.d.ts +0 -275
  331. package/dist/rpc/rpc-client.d.ts.map +0 -1
  332. package/dist/rpc/rpc-client.js +0 -735
  333. package/dist/rpc/rpc-client.js.map +0 -1
  334. package/dist/rpc/rpc-target.d.ts +0 -220
  335. package/dist/rpc/rpc-target.d.ts.map +0 -1
  336. package/dist/rpc/rpc-target.js +0 -500
  337. package/dist/rpc/rpc-target.js.map +0 -1
  338. package/dist/rpc/worker-entrypoint.d.ts +0 -159
  339. package/dist/rpc/worker-entrypoint.d.ts.map +0 -1
  340. package/dist/rpc/worker-entrypoint.js +0 -212
  341. package/dist/rpc/worker-entrypoint.js.map +0 -1
  342. package/dist/server.d.ts +0 -18
  343. package/dist/server.d.ts.map +0 -1
  344. package/dist/server.js +0 -129
  345. package/dist/server.js.map +0 -1
  346. package/dist/studio/components/browser/CollectionItem.d.ts +0 -26
  347. package/dist/studio/components/browser/CollectionItem.d.ts.map +0 -1
  348. package/dist/studio/components/browser/CollectionItem.js +0 -143
  349. package/dist/studio/components/browser/CollectionItem.js.map +0 -1
  350. package/dist/studio/components/browser/CollectionTree.d.ts +0 -45
  351. package/dist/studio/components/browser/CollectionTree.d.ts.map +0 -1
  352. package/dist/studio/components/browser/CollectionTree.js +0 -207
  353. package/dist/studio/components/browser/CollectionTree.js.map +0 -1
  354. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts +0 -51
  355. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts.map +0 -1
  356. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js +0 -185
  357. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js.map +0 -1
  358. package/dist/studio/components/browser/DatabaseBrowser.d.ts +0 -46
  359. package/dist/studio/components/browser/DatabaseBrowser.d.ts.map +0 -1
  360. package/dist/studio/components/browser/DatabaseBrowser.js +0 -304
  361. package/dist/studio/components/browser/DatabaseBrowser.js.map +0 -1
  362. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts +0 -5
  363. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts.map +0 -1
  364. package/dist/studio/components/browser/__tests__/CollectionItem.test.js +0 -169
  365. package/dist/studio/components/browser/__tests__/CollectionItem.test.js.map +0 -1
  366. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts +0 -5
  367. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts.map +0 -1
  368. package/dist/studio/components/browser/__tests__/CollectionTree.test.js +0 -203
  369. package/dist/studio/components/browser/__tests__/CollectionTree.test.js.map +0 -1
  370. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts +0 -8
  371. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts.map +0 -1
  372. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js +0 -522
  373. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js.map +0 -1
  374. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts +0 -5
  375. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts.map +0 -1
  376. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js +0 -518
  377. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js.map +0 -1
  378. package/dist/studio/components/browser/__tests__/setup.d.ts +0 -5
  379. package/dist/studio/components/browser/__tests__/setup.d.ts.map +0 -1
  380. package/dist/studio/components/browser/__tests__/setup.js +0 -22
  381. package/dist/studio/components/browser/__tests__/setup.js.map +0 -1
  382. package/dist/studio/components/browser/index.d.ts +0 -15
  383. package/dist/studio/components/browser/index.d.ts.map +0 -1
  384. package/dist/studio/components/browser/index.js +0 -10
  385. package/dist/studio/components/browser/index.js.map +0 -1
  386. package/dist/studio/components/browser/types.d.ts +0 -33
  387. package/dist/studio/components/browser/types.d.ts.map +0 -1
  388. package/dist/studio/components/browser/types.js +0 -5
  389. package/dist/studio/components/browser/types.js.map +0 -1
  390. package/dist/studio/components/connection/ConnectionForm.d.ts +0 -59
  391. package/dist/studio/components/connection/ConnectionForm.d.ts.map +0 -1
  392. package/dist/studio/components/connection/ConnectionForm.js +0 -274
  393. package/dist/studio/components/connection/ConnectionForm.js.map +0 -1
  394. package/dist/studio/components/connection/ConnectionList.d.ts +0 -59
  395. package/dist/studio/components/connection/ConnectionList.d.ts.map +0 -1
  396. package/dist/studio/components/connection/ConnectionList.js +0 -286
  397. package/dist/studio/components/connection/ConnectionList.js.map +0 -1
  398. package/dist/studio/components/connection/ConnectionPanel.d.ts +0 -132
  399. package/dist/studio/components/connection/ConnectionPanel.d.ts.map +0 -1
  400. package/dist/studio/components/connection/ConnectionPanel.js +0 -293
  401. package/dist/studio/components/connection/ConnectionPanel.js.map +0 -1
  402. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts +0 -8
  403. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts.map +0 -1
  404. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js +0 -632
  405. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js.map +0 -1
  406. package/dist/studio/components/connection/__tests__/setup.d.ts +0 -5
  407. package/dist/studio/components/connection/__tests__/setup.d.ts.map +0 -1
  408. package/dist/studio/components/connection/__tests__/setup.js +0 -11
  409. package/dist/studio/components/connection/__tests__/setup.js.map +0 -1
  410. package/dist/studio/components/connection/index.d.ts +0 -10
  411. package/dist/studio/components/connection/index.d.ts.map +0 -1
  412. package/dist/studio/components/connection/index.js +0 -7
  413. package/dist/studio/components/connection/index.js.map +0 -1
  414. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts +0 -91
  415. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts.map +0 -1
  416. package/dist/studio/components/crud/DeleteDocumentDialog.js +0 -273
  417. package/dist/studio/components/crud/DeleteDocumentDialog.js.map +0 -1
  418. package/dist/studio/components/crud/DocumentEditor.d.ts +0 -32
  419. package/dist/studio/components/crud/DocumentEditor.d.ts.map +0 -1
  420. package/dist/studio/components/crud/DocumentEditor.js +0 -546
  421. package/dist/studio/components/crud/DocumentEditor.js.map +0 -1
  422. package/dist/studio/components/crud/InsertDocumentDialog.d.ts +0 -78
  423. package/dist/studio/components/crud/InsertDocumentDialog.d.ts.map +0 -1
  424. package/dist/studio/components/crud/InsertDocumentDialog.js +0 -323
  425. package/dist/studio/components/crud/InsertDocumentDialog.js.map +0 -1
  426. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts +0 -5
  427. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts.map +0 -1
  428. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js +0 -298
  429. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js.map +0 -1
  430. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts +0 -8
  431. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts.map +0 -1
  432. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js +0 -368
  433. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js.map +0 -1
  434. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts +0 -2
  435. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts.map +0 -1
  436. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js +0 -352
  437. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js.map +0 -1
  438. package/dist/studio/components/crud/__tests__/setup.d.ts +0 -5
  439. package/dist/studio/components/crud/__tests__/setup.d.ts.map +0 -1
  440. package/dist/studio/components/crud/__tests__/setup.js +0 -22
  441. package/dist/studio/components/crud/__tests__/setup.js.map +0 -1
  442. package/dist/studio/components/crud/index.d.ts +0 -12
  443. package/dist/studio/components/crud/index.d.ts.map +0 -1
  444. package/dist/studio/components/crud/index.js +0 -11
  445. package/dist/studio/components/crud/index.js.map +0 -1
  446. package/dist/studio/hooks/useConnection.d.ts +0 -127
  447. package/dist/studio/hooks/useConnection.d.ts.map +0 -1
  448. package/dist/studio/hooks/useConnection.js +0 -414
  449. package/dist/studio/hooks/useConnection.js.map +0 -1
  450. package/dist/studio/hooks/useDatabaseBrowser.d.ts +0 -107
  451. package/dist/studio/hooks/useDatabaseBrowser.d.ts.map +0 -1
  452. package/dist/studio/hooks/useDatabaseBrowser.js +0 -294
  453. package/dist/studio/hooks/useDatabaseBrowser.js.map +0 -1
  454. package/dist/studio/index.d.ts +0 -16
  455. package/dist/studio/index.d.ts.map +0 -1
  456. package/dist/studio/index.js +0 -14
  457. package/dist/studio/index.js.map +0 -1
  458. package/dist/studio/types/connection.d.ts +0 -266
  459. package/dist/studio/types/connection.d.ts.map +0 -1
  460. package/dist/studio/types/connection.js +0 -159
  461. package/dist/studio/types/connection.js.map +0 -1
  462. package/dist/studio/vitest.config.d.ts +0 -3
  463. package/dist/studio/vitest.config.d.ts.map +0 -1
  464. package/dist/studio/vitest.config.js +0 -33
  465. package/dist/studio/vitest.config.js.map +0 -1
  466. package/dist/translator/aggregation-translator.d.ts +0 -51
  467. package/dist/translator/aggregation-translator.d.ts.map +0 -1
  468. package/dist/translator/aggregation-translator.js +0 -324
  469. package/dist/translator/aggregation-translator.js.map +0 -1
  470. package/dist/translator/dialect.d.ts +0 -131
  471. package/dist/translator/dialect.d.ts.map +0 -1
  472. package/dist/translator/dialect.js +0 -276
  473. package/dist/translator/dialect.js.map +0 -1
  474. package/dist/translator/geo-translator.d.ts +0 -91
  475. package/dist/translator/geo-translator.d.ts.map +0 -1
  476. package/dist/translator/geo-translator.js +0 -587
  477. package/dist/translator/geo-translator.js.map +0 -1
  478. package/dist/translator/hybrid-translator.d.ts +0 -70
  479. package/dist/translator/hybrid-translator.d.ts.map +0 -1
  480. package/dist/translator/hybrid-translator.js +0 -193
  481. package/dist/translator/hybrid-translator.js.map +0 -1
  482. package/dist/translator/index.d.ts +0 -13
  483. package/dist/translator/index.d.ts.map +0 -1
  484. package/dist/translator/index.js +0 -11
  485. package/dist/translator/index.js.map +0 -1
  486. package/dist/translator/query-translator.d.ts +0 -211
  487. package/dist/translator/query-translator.d.ts.map +0 -1
  488. package/dist/translator/query-translator.js +0 -1276
  489. package/dist/translator/query-translator.js.map +0 -1
  490. package/dist/translator/search-highlight.d.ts +0 -83
  491. package/dist/translator/search-highlight.d.ts.map +0 -1
  492. package/dist/translator/search-highlight.js +0 -83
  493. package/dist/translator/search-highlight.js.map +0 -1
  494. package/dist/translator/search-translator.d.ts +0 -155
  495. package/dist/translator/search-translator.d.ts.map +0 -1
  496. package/dist/translator/search-translator.js +0 -241
  497. package/dist/translator/search-translator.js.map +0 -1
  498. package/dist/translator/stages/add-fields-stage.d.ts +0 -7
  499. package/dist/translator/stages/add-fields-stage.d.ts.map +0 -1
  500. package/dist/translator/stages/add-fields-stage.js +0 -72
  501. package/dist/translator/stages/add-fields-stage.js.map +0 -1
  502. package/dist/translator/stages/bucket-stage.d.ts +0 -7
  503. package/dist/translator/stages/bucket-stage.d.ts.map +0 -1
  504. package/dist/translator/stages/bucket-stage.js +0 -87
  505. package/dist/translator/stages/bucket-stage.js.map +0 -1
  506. package/dist/translator/stages/count-stage.d.ts +0 -7
  507. package/dist/translator/stages/count-stage.d.ts.map +0 -1
  508. package/dist/translator/stages/count-stage.js +0 -12
  509. package/dist/translator/stages/count-stage.js.map +0 -1
  510. package/dist/translator/stages/expression-translator.d.ts +0 -68
  511. package/dist/translator/stages/expression-translator.d.ts.map +0 -1
  512. package/dist/translator/stages/expression-translator.js +0 -467
  513. package/dist/translator/stages/expression-translator.js.map +0 -1
  514. package/dist/translator/stages/facet-stage.d.ts +0 -13
  515. package/dist/translator/stages/facet-stage.d.ts.map +0 -1
  516. package/dist/translator/stages/facet-stage.js +0 -26
  517. package/dist/translator/stages/facet-stage.js.map +0 -1
  518. package/dist/translator/stages/fusion-stages.d.ts +0 -118
  519. package/dist/translator/stages/fusion-stages.d.ts.map +0 -1
  520. package/dist/translator/stages/fusion-stages.js +0 -201
  521. package/dist/translator/stages/fusion-stages.js.map +0 -1
  522. package/dist/translator/stages/group-stage.d.ts +0 -8
  523. package/dist/translator/stages/group-stage.d.ts.map +0 -1
  524. package/dist/translator/stages/group-stage.js +0 -123
  525. package/dist/translator/stages/group-stage.js.map +0 -1
  526. package/dist/translator/stages/index.d.ts +0 -24
  527. package/dist/translator/stages/index.d.ts.map +0 -1
  528. package/dist/translator/stages/index.js +0 -24
  529. package/dist/translator/stages/index.js.map +0 -1
  530. package/dist/translator/stages/join-optimizer.d.ts +0 -37
  531. package/dist/translator/stages/join-optimizer.d.ts.map +0 -1
  532. package/dist/translator/stages/join-optimizer.js +0 -93
  533. package/dist/translator/stages/join-optimizer.js.map +0 -1
  534. package/dist/translator/stages/limit-stage.d.ts +0 -7
  535. package/dist/translator/stages/limit-stage.d.ts.map +0 -1
  536. package/dist/translator/stages/limit-stage.js +0 -11
  537. package/dist/translator/stages/limit-stage.js.map +0 -1
  538. package/dist/translator/stages/lookup-stage.d.ts +0 -7
  539. package/dist/translator/stages/lookup-stage.d.ts.map +0 -1
  540. package/dist/translator/stages/lookup-stage.js +0 -73
  541. package/dist/translator/stages/lookup-stage.js.map +0 -1
  542. package/dist/translator/stages/match-stage.d.ts +0 -7
  543. package/dist/translator/stages/match-stage.d.ts.map +0 -1
  544. package/dist/translator/stages/match-stage.js +0 -14
  545. package/dist/translator/stages/match-stage.js.map +0 -1
  546. package/dist/translator/stages/optimizer.d.ts +0 -15
  547. package/dist/translator/stages/optimizer.d.ts.map +0 -1
  548. package/dist/translator/stages/optimizer.js +0 -249
  549. package/dist/translator/stages/optimizer.js.map +0 -1
  550. package/dist/translator/stages/parallel-facet.d.ts +0 -47
  551. package/dist/translator/stages/parallel-facet.d.ts.map +0 -1
  552. package/dist/translator/stages/parallel-facet.js +0 -57
  553. package/dist/translator/stages/parallel-facet.js.map +0 -1
  554. package/dist/translator/stages/project-stage.d.ts +0 -8
  555. package/dist/translator/stages/project-stage.d.ts.map +0 -1
  556. package/dist/translator/stages/project-stage.js +0 -145
  557. package/dist/translator/stages/project-stage.js.map +0 -1
  558. package/dist/translator/stages/search-stage.d.ts +0 -60
  559. package/dist/translator/stages/search-stage.d.ts.map +0 -1
  560. package/dist/translator/stages/search-stage.js +0 -89
  561. package/dist/translator/stages/search-stage.js.map +0 -1
  562. package/dist/translator/stages/skip-stage.d.ts +0 -7
  563. package/dist/translator/stages/skip-stage.d.ts.map +0 -1
  564. package/dist/translator/stages/skip-stage.js +0 -11
  565. package/dist/translator/stages/skip-stage.js.map +0 -1
  566. package/dist/translator/stages/sort-stage.d.ts +0 -7
  567. package/dist/translator/stages/sort-stage.d.ts.map +0 -1
  568. package/dist/translator/stages/sort-stage.js +0 -21
  569. package/dist/translator/stages/sort-stage.js.map +0 -1
  570. package/dist/translator/stages/types.d.ts +0 -136
  571. package/dist/translator/stages/types.d.ts.map +0 -1
  572. package/dist/translator/stages/types.js +0 -5
  573. package/dist/translator/stages/types.js.map +0 -1
  574. package/dist/translator/stages/unwind-stage.d.ts +0 -7
  575. package/dist/translator/stages/unwind-stage.d.ts.map +0 -1
  576. package/dist/translator/stages/unwind-stage.js +0 -61
  577. package/dist/translator/stages/unwind-stage.js.map +0 -1
  578. package/dist/translator/stages/vector-search-stage.d.ts +0 -53
  579. package/dist/translator/stages/vector-search-stage.d.ts.map +0 -1
  580. package/dist/translator/stages/vector-search-stage.js +0 -62
  581. package/dist/translator/stages/vector-search-stage.js.map +0 -1
  582. package/dist/translator/update-translator.d.ts +0 -148
  583. package/dist/translator/update-translator.d.ts.map +0 -1
  584. package/dist/translator/update-translator.js +0 -819
  585. package/dist/translator/update-translator.js.map +0 -1
  586. package/dist/translator/vector-translator.d.ts +0 -89
  587. package/dist/translator/vector-translator.d.ts.map +0 -1
  588. package/dist/translator/vector-translator.js +0 -106
  589. package/dist/translator/vector-translator.js.map +0 -1
  590. package/dist/types/env.d.ts +0 -31
  591. package/dist/types/env.d.ts.map +0 -1
  592. package/dist/types/env.js +0 -5
  593. package/dist/types/env.js.map +0 -1
  594. package/dist/types/function.d.ts +0 -65
  595. package/dist/types/function.d.ts.map +0 -1
  596. package/dist/types/function.js +0 -5
  597. package/dist/types/function.js.map +0 -1
  598. package/dist/types/index.d.ts +0 -137
  599. package/dist/types/index.d.ts.map +0 -1
  600. package/dist/types/index.js +0 -13
  601. package/dist/types/index.js.map +0 -1
  602. package/dist/types/mongodb.d.ts +0 -258
  603. package/dist/types/mongodb.d.ts.map +0 -1
  604. package/dist/types/mongodb.js +0 -5
  605. package/dist/types/mongodb.js.map +0 -1
  606. package/dist/types/objectid.d.ts +0 -130
  607. package/dist/types/objectid.d.ts.map +0 -1
  608. package/dist/types/objectid.js +0 -314
  609. package/dist/types/objectid.js.map +0 -1
  610. package/dist/types/rpc.d.ts +0 -313
  611. package/dist/types/rpc.d.ts.map +0 -1
  612. package/dist/types/rpc.js +0 -136
  613. package/dist/types/rpc.js.map +0 -1
  614. package/dist/types/vectorize.d.ts +0 -136
  615. package/dist/types/vectorize.d.ts.map +0 -1
  616. package/dist/types/vectorize.js +0 -8
  617. package/dist/types/vectorize.js.map +0 -1
  618. package/dist/utils/sql-safety.d.ts +0 -64
  619. package/dist/utils/sql-safety.d.ts.map +0 -1
  620. package/dist/utils/sql-safety.js +0 -112
  621. package/dist/utils/sql-safety.js.map +0 -1
  622. package/dist/validation/document-validator.d.ts +0 -195
  623. package/dist/validation/document-validator.d.ts.map +0 -1
  624. package/dist/validation/document-validator.js +0 -529
  625. package/dist/validation/document-validator.js.map +0 -1
  626. package/dist/vectorize/document-serializer.d.ts +0 -119
  627. package/dist/vectorize/document-serializer.d.ts.map +0 -1
  628. package/dist/vectorize/document-serializer.js +0 -320
  629. package/dist/vectorize/document-serializer.js.map +0 -1
  630. package/dist/wire/auth/index.d.ts +0 -5
  631. package/dist/wire/auth/index.d.ts.map +0 -1
  632. package/dist/wire/auth/index.js +0 -5
  633. package/dist/wire/auth/index.js.map +0 -1
  634. package/dist/wire/auth/scram.d.ts +0 -160
  635. package/dist/wire/auth/scram.d.ts.map +0 -1
  636. package/dist/wire/auth/scram.js +0 -425
  637. package/dist/wire/auth/scram.js.map +0 -1
  638. package/dist/wire/backend/interface.d.ts +0 -168
  639. package/dist/wire/backend/interface.d.ts.map +0 -1
  640. package/dist/wire/backend/interface.js +0 -10
  641. package/dist/wire/backend/interface.js.map +0 -1
  642. package/dist/wire/backend/local-sqlite.d.ts +0 -89
  643. package/dist/wire/backend/local-sqlite.d.ts.map +0 -1
  644. package/dist/wire/backend/local-sqlite.js +0 -1002
  645. package/dist/wire/backend/local-sqlite.js.map +0 -1
  646. package/dist/wire/backend/query-router.d.ts +0 -197
  647. package/dist/wire/backend/query-router.d.ts.map +0 -1
  648. package/dist/wire/backend/query-router.js +0 -590
  649. package/dist/wire/backend/query-router.js.map +0 -1
  650. package/dist/wire/backend/validation.d.ts +0 -26
  651. package/dist/wire/backend/validation.d.ts.map +0 -1
  652. package/dist/wire/backend/validation.js +0 -79
  653. package/dist/wire/backend/validation.js.map +0 -1
  654. package/dist/wire/backend/workers-proxy.d.ts +0 -95
  655. package/dist/wire/backend/workers-proxy.d.ts.map +0 -1
  656. package/dist/wire/backend/workers-proxy.js +0 -429
  657. package/dist/wire/backend/workers-proxy.js.map +0 -1
  658. package/dist/wire/commands/admin.d.ts +0 -49
  659. package/dist/wire/commands/admin.d.ts.map +0 -1
  660. package/dist/wire/commands/admin.js +0 -272
  661. package/dist/wire/commands/admin.js.map +0 -1
  662. package/dist/wire/commands/aggregate.d.ts +0 -15
  663. package/dist/wire/commands/aggregate.d.ts.map +0 -1
  664. package/dist/wire/commands/aggregate.js +0 -98
  665. package/dist/wire/commands/aggregate.js.map +0 -1
  666. package/dist/wire/commands/auth.d.ts +0 -58
  667. package/dist/wire/commands/auth.d.ts.map +0 -1
  668. package/dist/wire/commands/auth.js +0 -158
  669. package/dist/wire/commands/auth.js.map +0 -1
  670. package/dist/wire/commands/crud.d.ts +0 -49
  671. package/dist/wire/commands/crud.d.ts.map +0 -1
  672. package/dist/wire/commands/crud.js +0 -336
  673. package/dist/wire/commands/crud.js.map +0 -1
  674. package/dist/wire/commands/hello.d.ts +0 -35
  675. package/dist/wire/commands/hello.d.ts.map +0 -1
  676. package/dist/wire/commands/hello.js +0 -204
  677. package/dist/wire/commands/hello.js.map +0 -1
  678. package/dist/wire/commands/index.d.ts +0 -24
  679. package/dist/wire/commands/index.d.ts.map +0 -1
  680. package/dist/wire/commands/index.js +0 -145
  681. package/dist/wire/commands/index.js.map +0 -1
  682. package/dist/wire/commands/router.d.ts +0 -46
  683. package/dist/wire/commands/router.d.ts.map +0 -1
  684. package/dist/wire/commands/router.js +0 -151
  685. package/dist/wire/commands/router.js.map +0 -1
  686. package/dist/wire/commands/types.d.ts +0 -51
  687. package/dist/wire/commands/types.d.ts.map +0 -1
  688. package/dist/wire/commands/types.js +0 -15
  689. package/dist/wire/commands/types.js.map +0 -1
  690. package/dist/wire/index.d.ts +0 -15
  691. package/dist/wire/index.d.ts.map +0 -1
  692. package/dist/wire/index.js +0 -19
  693. package/dist/wire/index.js.map +0 -1
  694. package/dist/wire/message.d.ts +0 -49
  695. package/dist/wire/message.d.ts.map +0 -1
  696. package/dist/wire/message.js +0 -299
  697. package/dist/wire/message.js.map +0 -1
  698. package/dist/wire/server.d.ts +0 -145
  699. package/dist/wire/server.d.ts.map +0 -1
  700. package/dist/wire/server.js +0 -284
  701. package/dist/wire/server.js.map +0 -1
  702. package/dist/wire/types.d.ts +0 -140
  703. package/dist/wire/types.d.ts.map +0 -1
  704. package/dist/wire/types.js +0 -64
  705. package/dist/wire/types.js.map +0 -1
  706. package/dist/worker.d.ts.map +0 -1
package/dist/cli/mcp.js DELETED
@@ -1,418 +0,0 @@
1
- /**
2
- * CLI MCP Command
3
- *
4
- * Implements the `mcp` command for the MondoDB CLI.
5
- * Starts an MCP (Model Context Protocol) server that communicates via stdio.
6
- *
7
- * Features:
8
- * - --connection <url>: Connect to a remote MondoDB Worker
9
- * - --local <path>: Use a local SQLite database
10
- *
11
- * Usage:
12
- * mongo.do mcp --connection https://my-worker.workers.dev
13
- * mongo.do mcp --local ./data/local.db
14
- *
15
- * The MCP server exposes tools for AI agents to interact with the database:
16
- * - search: Query documents
17
- * - fetch: Retrieve full documents by ID
18
- * - do: Execute operations (when enabled)
19
- *
20
- * @module cli/mcp
21
- */
22
- import { createMcpServer } from '../mcp/server.js';
23
- import { createStdioTransport } from '../mcp/transport/stdio.js';
24
- import { RpcClient } from '../rpc/rpc-client.js';
25
- // Lazy import for LocalSQLiteBackend to avoid issues in non-Bun environments
26
- let LocalSQLiteBackend = null;
27
- async function getLocalSQLiteBackend() {
28
- if (!LocalSQLiteBackend) {
29
- try {
30
- const module = await import('../wire/backend/local-sqlite.js');
31
- LocalSQLiteBackend = module.LocalSQLiteBackend;
32
- }
33
- catch (error) {
34
- throw new Error('Local SQLite backend requires Bun runtime. Use --connection for remote database access.');
35
- }
36
- }
37
- return LocalSQLiteBackend;
38
- }
39
- /**
40
- * Register the MCP command with the CLI program
41
- *
42
- * @param program - The CLI program to register the command with
43
- */
44
- export function registerMcpCommand(program) {
45
- program
46
- .command('mcp')
47
- .description('Start an MCP server for AI agents to interact with the database via stdio')
48
- .option('-c, --connection <url>', 'Remote MondoDB Worker URL (e.g., https://my-worker.workers.dev)')
49
- .option('-l, --local <path>', 'Local SQLite database path')
50
- .action(async (options) => {
51
- const controller = await startMcpServer(options);
52
- // Handle graceful shutdown on SIGINT/SIGTERM
53
- const handleSignal = async () => {
54
- await controller.stop();
55
- process.exit(0);
56
- };
57
- process.on('SIGINT', handleSignal);
58
- process.on('SIGTERM', handleSignal);
59
- });
60
- }
61
- /**
62
- * Validate that a string is a valid HTTP or HTTPS URL.
63
- *
64
- * @param urlString - The URL string to validate
65
- * @returns true if the URL is valid HTTP/HTTPS, false otherwise
66
- * @internal
67
- */
68
- function isValidUrl(urlString) {
69
- try {
70
- const url = new URL(urlString);
71
- return url.protocol === 'http:' || url.protocol === 'https:';
72
- }
73
- catch {
74
- return false;
75
- }
76
- }
77
- /**
78
- * Start the MCP server with the given configuration.
79
- *
80
- * The server communicates via stdio using the Model Context Protocol (MCP).
81
- * It exposes database operations as tools that AI agents can invoke.
82
- *
83
- * @param options - Server configuration options
84
- * @returns Promise resolving to a controller for managing the server lifecycle
85
- * @throws {Error} If neither --connection nor --local is provided
86
- * @throws {Error} If both --connection and --local are provided
87
- * @throws {Error} If the connection URL is invalid
88
- *
89
- * @example
90
- * ```typescript
91
- * // Remote connection
92
- * const controller = await startMcpServer({
93
- * connection: 'https://my-worker.workers.dev'
94
- * })
95
- *
96
- * // Local SQLite database
97
- * const controller = await startMcpServer({
98
- * local: './data/local.db'
99
- * })
100
- *
101
- * // Graceful shutdown
102
- * await controller.stop()
103
- * ```
104
- */
105
- export async function startMcpServer(options) {
106
- // Validate options
107
- if (!options.connection && !options.local) {
108
- throw new Error('Either --connection or --local option is required');
109
- }
110
- if (options.connection && options.local) {
111
- throw new Error('Cannot use both --connection and --local options - they are mutually exclusive');
112
- }
113
- if (options.connection && !isValidUrl(options.connection)) {
114
- throw new Error(`Invalid connection URL: ${options.connection}`);
115
- }
116
- // Create database access
117
- const dbAccess = await createMcpDatabaseAccess({
118
- connection: options.connection,
119
- local: options.local,
120
- });
121
- // Create MCP server
122
- const mcpServer = createMcpServer({
123
- dbAccess,
124
- name: 'mongo.do',
125
- version: '1.0.0',
126
- });
127
- // Create stdio transport
128
- const transport = createStdioTransport({
129
- stdin: options.stdin ?? process.stdin,
130
- stdout: options.stdout ?? process.stdout,
131
- onMessage: async (request) => {
132
- return await mcpServer.handleRequest(request);
133
- },
134
- onError: (error) => {
135
- // Log errors to stderr to avoid interfering with MCP protocol on stdout
136
- console.error('MCP transport error:', error.message);
137
- },
138
- });
139
- // Start the transport
140
- transport.start();
141
- // Track running state
142
- let running = true;
143
- // Return controller
144
- return {
145
- get isRunning() {
146
- return running && transport.isRunning;
147
- },
148
- async stop() {
149
- if (!running) {
150
- return;
151
- }
152
- running = false;
153
- transport.close();
154
- },
155
- };
156
- }
157
- /**
158
- * Create a DatabaseAccess instance for the MCP server.
159
- *
160
- * This factory function creates the appropriate database access implementation
161
- * based on the provided options:
162
- * - Remote: Uses RPC client to communicate with a MondoDB Worker
163
- * - Local: Uses LocalSQLiteBackend for file-based storage (requires Bun)
164
- *
165
- * @param options - Connection options (either connection URL or local path)
166
- * @returns Promise resolving to a DatabaseAccess instance
167
- * @throws {Error} If neither connection nor local option is provided
168
- *
169
- * @example
170
- * ```typescript
171
- * // Remote database access
172
- * const dbAccess = await createMcpDatabaseAccess({
173
- * connection: 'https://my-worker.workers.dev'
174
- * })
175
- *
176
- * // Local database access
177
- * const dbAccess = await createMcpDatabaseAccess({
178
- * local: './data/local.db'
179
- * })
180
- * ```
181
- */
182
- export async function createMcpDatabaseAccess(options) {
183
- if (options.connection) {
184
- // Create remote database access via HTTP
185
- return createRemoteDatabaseAccess(options.connection);
186
- }
187
- if (options.local) {
188
- // Create local SQLite database access
189
- return createLocalDatabaseAccess(options.local);
190
- }
191
- throw new Error('Either connection or local option must be provided');
192
- }
193
- /**
194
- * Create a DatabaseAccess implementation for remote MondoDB Workers.
195
- *
196
- * Uses RPC over HTTP to communicate with the remote worker.
197
- * All operations are proxied through the RPC client.
198
- *
199
- * @param connectionUrl - Base URL of the MondoDB Worker endpoint
200
- * @returns DatabaseAccess implementation for remote operations
201
- * @internal
202
- */
203
- function createRemoteDatabaseAccess(connectionUrl) {
204
- const rpcClient = new RpcClient(connectionUrl + '/rpc');
205
- return {
206
- async findOne(collection, filter) {
207
- const results = await this.find(collection, filter, { limit: 1 });
208
- return results[0] ?? null;
209
- },
210
- async find(collection, filter, options) {
211
- try {
212
- const result = await rpcClient.call('find', ['test', collection, filter, options]);
213
- return result?.documents ?? [];
214
- }
215
- catch (error) {
216
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
217
- }
218
- },
219
- async insertOne(collection, document) {
220
- try {
221
- const result = await rpcClient.call('insertOne', ['test', collection, document]);
222
- return result;
223
- }
224
- catch (error) {
225
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
226
- }
227
- },
228
- async insertMany(collection, documents) {
229
- try {
230
- const result = await rpcClient.call('insertMany', ['test', collection, documents]);
231
- const insertResult = result;
232
- const ids = [];
233
- if (insertResult.insertedIds instanceof Map) {
234
- for (const [, id] of insertResult.insertedIds) {
235
- ids.push(String(id));
236
- }
237
- }
238
- return { insertedIds: ids };
239
- }
240
- catch (error) {
241
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
242
- }
243
- },
244
- async updateOne(collection, filter, update) {
245
- try {
246
- const result = await rpcClient.call('updateOne', ['test', collection, filter, update]);
247
- return result;
248
- }
249
- catch (error) {
250
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
251
- }
252
- },
253
- async updateMany(collection, filter, update) {
254
- try {
255
- const result = await rpcClient.call('updateMany', ['test', collection, filter, update]);
256
- return result;
257
- }
258
- catch (error) {
259
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
260
- }
261
- },
262
- async deleteOne(collection, filter) {
263
- try {
264
- const result = await rpcClient.call('deleteOne', ['test', collection, filter]);
265
- return result;
266
- }
267
- catch (error) {
268
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
269
- }
270
- },
271
- async deleteMany(collection, filter) {
272
- try {
273
- const result = await rpcClient.call('deleteMany', ['test', collection, filter]);
274
- return result;
275
- }
276
- catch (error) {
277
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
278
- }
279
- },
280
- async aggregate(collection, pipeline) {
281
- try {
282
- const result = await rpcClient.call('aggregate', ['test', collection, pipeline]);
283
- return result?.documents ?? [];
284
- }
285
- catch (error) {
286
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
287
- }
288
- },
289
- async countDocuments(collection, filter) {
290
- try {
291
- const result = await rpcClient.call('count', ['test', collection, filter ?? {}]);
292
- return result;
293
- }
294
- catch (error) {
295
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
296
- }
297
- },
298
- async listCollections() {
299
- try {
300
- const result = await rpcClient.call('listCollections', ['test']);
301
- return result.map((c) => c.name);
302
- }
303
- catch (error) {
304
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
305
- }
306
- },
307
- async listDatabases() {
308
- try {
309
- const result = await rpcClient.call('listDatabases', []);
310
- return result.map((d) => d.name);
311
- }
312
- catch (error) {
313
- throw new Error(`Failed to connect to remote database: ${error instanceof Error ? error.message : 'Network error'}`);
314
- }
315
- },
316
- getProxy() {
317
- return this;
318
- },
319
- };
320
- }
321
- /**
322
- * Create a DatabaseAccess implementation for local SQLite database.
323
- *
324
- * Uses LocalSQLiteBackend which requires the Bun runtime.
325
- * The database file is created in the specified directory.
326
- *
327
- * @param localPath - Path to the local database file
328
- * @returns Promise resolving to a DatabaseAccess implementation
329
- * @throws {Error} If Bun runtime is not available
330
- * @internal
331
- */
332
- async function createLocalDatabaseAccess(localPath) {
333
- // Extract directory from path for the backend
334
- const path = await import('path');
335
- const dataDir = path.dirname(localPath);
336
- const BackendClass = await getLocalSQLiteBackend();
337
- const backend = new BackendClass(dataDir);
338
- // Default database name
339
- const dbName = 'test';
340
- const dbAccess = {
341
- async findOne(collection, filter) {
342
- const result = await backend.find(dbName, collection, {
343
- filter,
344
- limit: 1,
345
- });
346
- return result.documents[0] ?? null;
347
- },
348
- async find(collection, filter, options) {
349
- // Build find options, only including defined properties
350
- const findOptions = { filter };
351
- if (options?.limit !== undefined)
352
- findOptions.limit = options.limit;
353
- if (options?.skip !== undefined)
354
- findOptions.skip = options.skip;
355
- if (options?.sort !== undefined)
356
- findOptions.sort = options.sort;
357
- if (options?.projection !== undefined)
358
- findOptions.projection = options.projection;
359
- const result = await backend.find(dbName, collection, findOptions);
360
- return result.documents;
361
- },
362
- async insertOne(collection, document) {
363
- const result = await backend.insertOne(dbName, collection, document);
364
- const insertedId = result.insertedIds.get(0);
365
- return { insertedId: String(insertedId) };
366
- },
367
- async insertMany(collection, documents) {
368
- const result = await backend.insertMany(dbName, collection, documents);
369
- const ids = [];
370
- for (const [, id] of result.insertedIds) {
371
- ids.push(String(id));
372
- }
373
- return { insertedIds: ids };
374
- },
375
- async updateOne(collection, filter, update) {
376
- const result = await backend.updateOne(dbName, collection, filter, update);
377
- return {
378
- matchedCount: result.matchedCount,
379
- modifiedCount: result.modifiedCount,
380
- };
381
- },
382
- async updateMany(collection, filter, update) {
383
- const result = await backend.updateMany(dbName, collection, filter, update);
384
- return {
385
- matchedCount: result.matchedCount,
386
- modifiedCount: result.modifiedCount,
387
- };
388
- },
389
- async deleteOne(collection, filter) {
390
- const result = await backend.deleteOne(dbName, collection, filter);
391
- return { deletedCount: result.deletedCount };
392
- },
393
- async deleteMany(collection, filter) {
394
- const result = await backend.deleteMany(dbName, collection, filter);
395
- return { deletedCount: result.deletedCount };
396
- },
397
- async aggregate(collection, pipeline) {
398
- const result = await backend.aggregate(dbName, collection, pipeline);
399
- return result.documents;
400
- },
401
- async countDocuments(collection, filter) {
402
- return await backend.count(dbName, collection, filter);
403
- },
404
- async listCollections() {
405
- const collections = await backend.listCollections(dbName);
406
- return collections.map((c) => c.name);
407
- },
408
- async listDatabases() {
409
- const databases = await backend.listDatabases();
410
- return databases.map((d) => d.name);
411
- },
412
- getProxy() {
413
- return dbAccess;
414
- },
415
- };
416
- return dbAccess;
417
- }
418
- //# sourceMappingURL=mcp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/cli/mcp.ts"],"names":[],"mappings":"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"}
@@ -1,179 +0,0 @@
1
- /**
2
- * CLI Server Module
3
- *
4
- * Enhanced CLI for MondoDB wire protocol server with support for
5
- * local SQLite backend and remote Cloudflare Workers proxy.
6
- *
7
- * @module cli/server
8
- *
9
- * @example
10
- * ```typescript
11
- * import { parseArgs, runServer, printStartupMessage } from './server'
12
- *
13
- * const options = parseArgs(process.argv.slice(2))
14
- * if (options.help) {
15
- * printHelp()
16
- * process.exit(0)
17
- * }
18
- *
19
- * const controller = await runServer(options)
20
- * printStartupMessage(options)
21
- *
22
- * // Later, gracefully shutdown
23
- * await controller.stop()
24
- * ```
25
- */
26
- import type { MondoBackend } from '../wire/backend/interface.js';
27
- /**
28
- * Command-line options for the MondoDB server.
29
- */
30
- export interface CLIOptions {
31
- /** Port number to listen on (1-65535) */
32
- port: number;
33
- /** Host address to bind to (e.g., 'localhost', '0.0.0.0') */
34
- host: string;
35
- /** Directory path for local SQLite data storage */
36
- dataDir: string;
37
- /** Optional URL for remote Cloudflare Workers endpoint */
38
- remote?: string;
39
- /** Enable verbose logging output */
40
- verbose: boolean;
41
- /** Display help message and exit */
42
- help: boolean;
43
- }
44
- /**
45
- * Controller interface for managing a running server instance.
46
- * Provides methods and properties to monitor and control the server lifecycle.
47
- */
48
- export interface ServerController {
49
- /** Gracefully stop the server and close all connections */
50
- stop(): Promise<void>;
51
- /** Whether the server is currently running */
52
- isRunning: boolean;
53
- /** Whether the server is accepting new connections */
54
- isAcceptingConnections: boolean;
55
- /** Number of currently active client connections */
56
- activeConnections: number;
57
- /** The address the server is bound to */
58
- address: {
59
- host: string;
60
- port: number;
61
- };
62
- }
63
- /**
64
- * Parse command-line arguments into a CLIOptions object.
65
- *
66
- * Supports both long-form (--port) and short-form (-p) arguments.
67
- * Unknown arguments are silently ignored.
68
- *
69
- * @param args - Array of command-line arguments (typically process.argv.slice(2))
70
- * @returns Parsed CLI options with defaults applied
71
- *
72
- * @example
73
- * ```typescript
74
- * const options = parseArgs(['--port', '27018', '--verbose'])
75
- * // options.port === 27018
76
- * // options.verbose === true
77
- * ```
78
- */
79
- export declare function parseArgs(args: string[]): CLIOptions;
80
- /**
81
- * Validation result returned by validateOptions.
82
- */
83
- export interface ValidationResult {
84
- /** Whether all options are valid */
85
- valid: boolean;
86
- /** Array of error messages (empty if valid) */
87
- errors: string[];
88
- }
89
- /**
90
- * Validate CLI options and return a result with all validation errors.
91
- *
92
- * Validates:
93
- * - Port is a valid integer between 1 and 65535
94
- * - Host is a non-empty string
95
- * - Data directory is a non-empty string (unless in remote mode)
96
- * - Remote URL (if provided) is a valid HTTP/HTTPS URL
97
- *
98
- * @param options - CLI options to validate
99
- * @returns ValidationResult with valid boolean and errors array
100
- *
101
- * @example
102
- * ```typescript
103
- * const result = validateOptions({ port: 0, host: 'localhost', ... })
104
- * if (!result.valid) {
105
- * console.error(result.errors.join('\n'))
106
- * }
107
- * ```
108
- */
109
- export declare function validateOptions(options: CLIOptions): ValidationResult;
110
- /**
111
- * Create the appropriate storage backend based on CLI options.
112
- *
113
- * - If `options.remote` is set, creates a WorkersProxyBackend that forwards
114
- * requests to a remote Cloudflare Workers endpoint.
115
- * - Otherwise, creates a LocalSQLiteBackend for local file-based storage.
116
- *
117
- * @param options - CLI options containing backend configuration
118
- * @returns Promise resolving to the configured backend instance
119
- *
120
- * @example
121
- * ```typescript
122
- * // Local backend
123
- * const local = await createBackend({ dataDir: './data', ... })
124
- *
125
- * // Remote backend
126
- * const remote = await createBackend({ remote: 'https://my-worker.dev', ... })
127
- * ```
128
- */
129
- export declare function createBackend(options: CLIOptions): Promise<MondoBackend>;
130
- /**
131
- * Print usage help message to stdout.
132
- * Displays all available command-line options with descriptions and examples.
133
- */
134
- export declare function printHelp(): void;
135
- /**
136
- * Print server startup message to stdout.
137
- * Displays connection string and backend mode information.
138
- *
139
- * @param options - CLI options used to start the server
140
- */
141
- export declare function printStartupMessage(options: CLIOptions): void;
142
- /**
143
- * Print server shutdown message to stdout.
144
- * Called after graceful server shutdown completes.
145
- */
146
- export declare function printShutdownMessage(): void;
147
- /**
148
- * Start the MongoDB wire protocol server with the given options.
149
- *
150
- * This is the main entry point for starting a MondoDB server. It:
151
- * 1. Validates the provided options
152
- * 2. Creates the appropriate backend (local or remote)
153
- * 3. Starts the wire protocol server
154
- * 4. Sets up signal handlers for graceful shutdown
155
- *
156
- * @param options - Server configuration options
157
- * @param backend - Optional pre-configured backend (for testing)
158
- * @returns Promise resolving to a ServerController for managing the server
159
- * @throws {Error} If options are invalid or server fails to start
160
- *
161
- * @example
162
- * ```typescript
163
- * const controller = await runServer({
164
- * port: 27017,
165
- * host: 'localhost',
166
- * dataDir: './data',
167
- * verbose: false,
168
- * help: false,
169
- * })
170
- *
171
- * // Check server status
172
- * console.log(controller.isRunning) // true
173
- *
174
- * // Graceful shutdown
175
- * await controller.stop()
176
- * ```
177
- */
178
- export declare function runServer(options: CLIOptions, backend?: MondoBackend): Promise<ServerController>;
179
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AA4BhE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,oCAAoC;IACpC,IAAI,EAAE,OAAO,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAA;IAClB,sDAAsD;IACtD,sBAAsB,EAAE,OAAO,CAAA;IAC/B,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAA;IACzB,yCAAyC;IACzC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACxC;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAiGpD;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CA8CrE;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAW9E;AAMD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAkChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAY7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAqG3B"}