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
@@ -1,879 +0,0 @@
1
- /**
2
- * MonDoAgent - Cloudflare Agent with integrated AgentFS
3
- *
4
- * Provides a unified API for AI agents to interact with:
5
- * - Virtual filesystem (files, directories)
6
- * - Glob pattern matching
7
- * - Grep content search
8
- * - Key-value storage
9
- * - Tool call audit logging
10
- * - WebSocket integration for real-time tool execution
11
- *
12
- * Designed for use with Cloudflare's Agent infrastructure.
13
- */
14
- import { randomUUID } from 'crypto';
15
- // =============================================================================
16
- // IMPORTS
17
- // =============================================================================
18
- import { AgentFilesystem } from './vfs';
19
- import { AgentGrep } from './grep';
20
- import { AgentFSKVStore } from './kv-store';
21
- import { ToolCallAuditLog } from './toolcalls';
22
- import { filterGlob } from './glob';
23
- /**
24
- * Audited filesystem wrapper that automatically records operations
25
- */
26
- class AuditedFilesystem {
27
- fs;
28
- audit;
29
- constructor(fs, audit) {
30
- this.fs = fs;
31
- this.audit = audit;
32
- }
33
- async recordOperation(tool, inputs, operation) {
34
- const startTime = new Date();
35
- try {
36
- const result = await operation();
37
- const endTime = new Date();
38
- // Build success output
39
- const outputs = { success: true };
40
- if (tool === 'fs.readFile' && typeof result === 'string') {
41
- outputs.content = result;
42
- }
43
- await this.audit.record(tool, inputs, outputs, { startTime, endTime });
44
- return result;
45
- }
46
- catch (error) {
47
- const endTime = new Date();
48
- // Build error output
49
- const outputs = {
50
- success: false,
51
- error: {
52
- message: error instanceof Error ? error.message : String(error),
53
- stack: error instanceof Error ? error.stack : undefined,
54
- code: this.extractErrorCode(error),
55
- },
56
- };
57
- await this.audit.record(tool, inputs, outputs, { startTime, endTime });
58
- throw error;
59
- }
60
- }
61
- extractErrorCode(error) {
62
- if (error instanceof Error && error.message) {
63
- // Extract error code from message like "ENOENT: no such file..."
64
- const match = error.message.match(/^([A-Z]+):/);
65
- if (match) {
66
- return match[1];
67
- }
68
- }
69
- return undefined;
70
- }
71
- async readFile(path) {
72
- return this.recordOperation('fs.readFile', { path }, () => this.fs.readFile(path));
73
- }
74
- async writeFile(path, content) {
75
- return this.recordOperation('fs.writeFile', { path, content }, () => this.fs.writeFile(path, content));
76
- }
77
- async deleteFile(path) {
78
- return this.recordOperation('fs.deleteFile', { path }, () => this.fs.deleteFile(path));
79
- }
80
- async readdir(path) {
81
- return this.recordOperation('fs.readdir', { path }, () => this.fs.readdir(path));
82
- }
83
- async mkdir(path) {
84
- return this.recordOperation('fs.mkdir', { path }, () => this.fs.mkdir(path));
85
- }
86
- async rmdir(path) {
87
- return this.recordOperation('fs.rmdir', { path }, () => this.fs.rmdir(path));
88
- }
89
- async stat(path) {
90
- return this.recordOperation('fs.stat', { path }, () => this.fs.stat(path));
91
- }
92
- async exists(path) {
93
- // exists doesn't throw, so we record it differently
94
- const startTime = new Date();
95
- const result = await this.fs.exists(path);
96
- const endTime = new Date();
97
- await this.audit.record('fs.exists', { path }, { exists: result, success: true }, { startTime, endTime });
98
- return result;
99
- }
100
- async glob(pattern) {
101
- return this.recordOperation('fs.glob', { pattern }, () => this.fs.glob(pattern));
102
- }
103
- }
104
- /**
105
- * Audited KV store wrapper that automatically records operations
106
- */
107
- class AuditedKVStore {
108
- kv;
109
- audit;
110
- constructor(kv, audit) {
111
- this.kv = kv;
112
- this.audit = audit;
113
- }
114
- async recordOperation(tool, inputs, operation, outputBuilder) {
115
- const startTime = new Date();
116
- try {
117
- const result = await operation();
118
- const endTime = new Date();
119
- const outputs = outputBuilder ? outputBuilder(result) : { success: true };
120
- await this.audit.record(tool, inputs, outputs, { startTime, endTime });
121
- return result;
122
- }
123
- catch (error) {
124
- const endTime = new Date();
125
- await this.audit.record(tool, inputs, {
126
- success: false,
127
- error: {
128
- message: error instanceof Error ? error.message : String(error),
129
- stack: error instanceof Error ? error.stack : undefined,
130
- },
131
- }, { startTime, endTime });
132
- throw error;
133
- }
134
- }
135
- async get(key) {
136
- return this.recordOperation('kv.get', { key }, () => this.kv.get(key), (result) => ({ value: result, success: true }));
137
- }
138
- async set(key, value) {
139
- return this.recordOperation('kv.set', { key, value }, () => this.kv.set(key, value));
140
- }
141
- async delete(key) {
142
- return this.recordOperation('kv.delete', { key }, () => this.kv.delete(key), (result) => ({ deleted: result, success: true }));
143
- }
144
- async has(key) {
145
- return this.recordOperation('kv.has', { key }, () => this.kv.has(key), (result) => ({ exists: result, success: true }));
146
- }
147
- async keys(prefix) {
148
- return this.recordOperation('kv.keys', { prefix }, () => this.kv.keys(prefix), (result) => ({ keys: result, success: true }));
149
- }
150
- async entries(prefix) {
151
- return this.recordOperation('kv.entries', { prefix }, () => this.kv.entries(prefix), (result) => ({ entries: result, success: true }));
152
- }
153
- async clear(prefix) {
154
- return this.recordOperation('kv.clear', { prefix }, () => this.kv.clear(prefix), (result) => ({ cleared: result, success: true }));
155
- }
156
- }
157
- /**
158
- * In-memory database for AgentFS operations
159
- * Used when no external database is provided
160
- */
161
- function createInMemoryDatabase() {
162
- const collections = new Map();
163
- const getCollection = (name) => {
164
- if (!collections.has(name)) {
165
- collections.set(name, new Map());
166
- }
167
- return collections.get(name);
168
- };
169
- return {
170
- async findOne(collection, query) {
171
- const col = getCollection(collection);
172
- if (query._id) {
173
- return col.get(query._id) ?? null;
174
- }
175
- // Simple query matching
176
- for (const doc of col.values()) {
177
- if (matchesQuery(doc, query)) {
178
- return doc;
179
- }
180
- }
181
- return null;
182
- },
183
- async find(collection, query) {
184
- const col = getCollection(collection);
185
- const results = [];
186
- for (const doc of col.values()) {
187
- if (matchesQuery(doc, query)) {
188
- results.push(doc);
189
- }
190
- }
191
- return results;
192
- },
193
- async insertOne(collection, document) {
194
- const col = getCollection(collection);
195
- const id = document._id ?? randomUUID();
196
- const docWithId = { ...document, _id: id };
197
- col.set(id, docWithId);
198
- return { insertedId: id };
199
- },
200
- async updateOne(collection, filter, update, options) {
201
- const col = getCollection(collection);
202
- let matched = false;
203
- for (const [id, doc] of col.entries()) {
204
- if (matchesQuery(doc, filter)) {
205
- matched = true;
206
- if (update.$set) {
207
- col.set(id, { ...doc, ...update.$set });
208
- }
209
- return { matchedCount: 1, modifiedCount: 1 };
210
- }
211
- }
212
- if (!matched && options?.upsert) {
213
- const id = filter._id ?? randomUUID();
214
- const newDoc = { ...filter, ...update.$set, ...update.$setOnInsert, _id: id };
215
- col.set(id, newDoc);
216
- return { matchedCount: 0, modifiedCount: 0, upsertedId: id };
217
- }
218
- return { matchedCount: 0, modifiedCount: 0 };
219
- },
220
- async deleteOne(collection, filter) {
221
- const col = getCollection(collection);
222
- if (filter._id) {
223
- const existed = col.has(filter._id);
224
- col.delete(filter._id);
225
- return { deletedCount: existed ? 1 : 0 };
226
- }
227
- for (const [id, doc] of col.entries()) {
228
- if (matchesQuery(doc, filter)) {
229
- col.delete(id);
230
- return { deletedCount: 1 };
231
- }
232
- }
233
- return { deletedCount: 0 };
234
- },
235
- async deleteMany(collection, filter) {
236
- const col = getCollection(collection);
237
- let count = 0;
238
- for (const [id, doc] of Array.from(col.entries())) {
239
- if (matchesQuery(doc, filter)) {
240
- col.delete(id);
241
- count++;
242
- }
243
- }
244
- return { deletedCount: count };
245
- },
246
- };
247
- }
248
- /**
249
- * Maximum allowed regex pattern length to prevent DoS
250
- */
251
- const MAX_REGEX_LENGTH = 1000;
252
- /**
253
- * Patterns that indicate potential ReDoS vulnerability
254
- * These detect nested quantifiers and other dangerous constructs
255
- */
256
- const REDOS_PATTERNS = [
257
- /\([^)]*[+*]\)[+*]/, // Nested quantifiers like (a+)+
258
- /\([^)]*[+*]\)\{/, // Quantifier followed by {n,m} like (a+){2,}
259
- /\([^)]*\|[^)]*\)[+*]/, // Alternation with quantifier like (a|b)+
260
- /\.\*.*\.\*/, // Multiple .* patterns
261
- /\.\+.*\.\+/, // Multiple .+ patterns
262
- /\([^)]*\.\*[^)]*\)[+*]/, // .* inside quantified group
263
- /\([^)]*\.\+[^)]*\)[+*]/, // .+ inside quantified group
264
- ];
265
- /**
266
- * Validates a regex pattern for safety and creates a RegExp if valid
267
- * Protects against ReDoS attacks and invalid patterns
268
- *
269
- * @param pattern - The regex pattern string to validate
270
- * @param flags - Optional regex flags
271
- * @returns The compiled RegExp or null if invalid/unsafe
272
- */
273
- function createSafeRegex(pattern, flags) {
274
- // Check pattern length
275
- if (pattern.length > MAX_REGEX_LENGTH) {
276
- return null;
277
- }
278
- // Check for potential ReDoS patterns
279
- for (const redosPattern of REDOS_PATTERNS) {
280
- if (redosPattern.test(pattern)) {
281
- return null;
282
- }
283
- }
284
- // Try to compile the regex
285
- try {
286
- return new RegExp(pattern, flags);
287
- }
288
- catch {
289
- // Invalid regex syntax
290
- return null;
291
- }
292
- }
293
- /**
294
- * Simple query matching helper
295
- */
296
- function matchesQuery(doc, query) {
297
- if (Object.keys(query).length === 0) {
298
- return true;
299
- }
300
- for (const [key, condition] of Object.entries(query)) {
301
- const value = doc[key];
302
- if (typeof condition === 'object' && condition !== null) {
303
- const operators = condition;
304
- if ('$regex' in operators) {
305
- const regex = createSafeRegex(operators.$regex);
306
- if (regex === null) {
307
- // Invalid or unsafe regex pattern - treat as non-match
308
- return false;
309
- }
310
- if (typeof value !== 'string' || !regex.test(value)) {
311
- return false;
312
- }
313
- }
314
- }
315
- else {
316
- if (value !== condition) {
317
- return false;
318
- }
319
- }
320
- }
321
- return true;
322
- }
323
- /**
324
- * Database adapter for KV storage
325
- * Wraps AgentFSDatabase to provide KVStorageBackend interface
326
- */
327
- function createKVBackendFromDatabase(db) {
328
- const collection = '__agentfs.kv';
329
- return {
330
- async findOne(query) {
331
- const doc = await db.findOne(collection, { _id: query.key });
332
- if (!doc)
333
- return null;
334
- return {
335
- _id: doc._id,
336
- key: doc.key,
337
- value: doc.value,
338
- createdAt: doc.createdAt,
339
- updatedAt: doc.updatedAt,
340
- };
341
- },
342
- async find(query) {
343
- const docs = await db.find(collection, query);
344
- return docs.map((doc) => ({
345
- _id: doc._id,
346
- key: doc.key,
347
- value: doc.value,
348
- createdAt: doc.createdAt,
349
- updatedAt: doc.updatedAt,
350
- }));
351
- },
352
- async insertOne(document) {
353
- const result = await db.insertOne(collection, {
354
- _id: document.key,
355
- ...document,
356
- });
357
- return { insertedId: result.insertedId };
358
- },
359
- async updateOne(query, update) {
360
- const result = await db.updateOne(collection, { _id: query.key }, update);
361
- return { matchedCount: result.matchedCount, modifiedCount: result.modifiedCount };
362
- },
363
- async deleteOne(query) {
364
- const result = await db.deleteOne(collection, { _id: query.key });
365
- return { deletedCount: result.deletedCount };
366
- },
367
- async deleteMany(query) {
368
- const result = await db.deleteMany(collection, query);
369
- return { deletedCount: result.deletedCount };
370
- },
371
- async countDocuments(query) {
372
- const docs = await db.find(collection, query);
373
- return docs.length;
374
- },
375
- };
376
- }
377
- /**
378
- * Database adapter for audit logging
379
- * Wraps AgentFSDatabase to provide AuditBackend interface
380
- */
381
- function createAuditBackendFromDatabase(db) {
382
- const collection = '__agentfs.audit';
383
- let sequence = 0;
384
- return {
385
- async append(entry) {
386
- sequence++;
387
- const id = `tc_${sequence}_${Date.now()}`;
388
- const timestamp = new Date();
389
- await db.insertOne(collection, {
390
- _id: id,
391
- ...entry,
392
- id,
393
- timestamp,
394
- });
395
- return id;
396
- },
397
- async findById(id) {
398
- const doc = await db.findOne(collection, { _id: id });
399
- if (!doc)
400
- return null;
401
- const entry = {
402
- id: doc.id,
403
- tool: doc.tool,
404
- inputs: doc.inputs,
405
- outputs: doc.outputs,
406
- timestamp: new Date(doc.timestamp),
407
- };
408
- if (doc.durationMs !== undefined)
409
- entry.durationMs = doc.durationMs;
410
- if (doc.metadata !== undefined)
411
- entry.metadata = doc.metadata;
412
- return entry;
413
- },
414
- async list(options) {
415
- const docs = await db.find(collection, {});
416
- const entries = docs.map((doc) => {
417
- const entry = {
418
- id: doc.id,
419
- tool: doc.tool,
420
- inputs: doc.inputs,
421
- outputs: doc.outputs,
422
- timestamp: new Date(doc.timestamp),
423
- };
424
- if (doc.durationMs !== undefined)
425
- entry.durationMs = doc.durationMs;
426
- if (doc.metadata !== undefined)
427
- entry.metadata = doc.metadata;
428
- return entry;
429
- });
430
- // Sort by timestamp
431
- entries.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
432
- const offset = options?.offset ?? 0;
433
- const limit = options?.limit ?? entries.length;
434
- return entries.slice(offset, offset + limit);
435
- },
436
- async findByTool(toolName) {
437
- const docs = await db.find(collection, { tool: toolName });
438
- return docs.map((doc) => {
439
- const entry = {
440
- id: doc.id,
441
- tool: doc.tool,
442
- inputs: doc.inputs,
443
- outputs: doc.outputs,
444
- timestamp: new Date(doc.timestamp),
445
- };
446
- if (doc.durationMs !== undefined)
447
- entry.durationMs = doc.durationMs;
448
- if (doc.metadata !== undefined)
449
- entry.metadata = doc.metadata;
450
- return entry;
451
- });
452
- },
453
- async findByTimeRange(start, end) {
454
- const docs = await db.find(collection, {});
455
- return docs
456
- .map((doc) => {
457
- const entry = {
458
- id: doc.id,
459
- tool: doc.tool,
460
- inputs: doc.inputs,
461
- outputs: doc.outputs,
462
- timestamp: new Date(doc.timestamp),
463
- };
464
- if (doc.durationMs !== undefined)
465
- entry.durationMs = doc.durationMs;
466
- if (doc.metadata !== undefined)
467
- entry.metadata = doc.metadata;
468
- return entry;
469
- })
470
- .filter((e) => e.timestamp >= start && e.timestamp <= end);
471
- },
472
- async count() {
473
- const docs = await db.find(collection, {});
474
- return docs.length;
475
- },
476
- async update() {
477
- throw new Error('Cannot update audit log entries');
478
- },
479
- async delete() {
480
- throw new Error('Cannot delete audit log entries');
481
- },
482
- };
483
- }
484
- /**
485
- * MonDoAgent - Unified interface for AI agent operations
486
- *
487
- * Integrates the AgentFS virtual filesystem, glob, grep, KV store, and tool call
488
- * auditing with Cloudflare Agent infrastructure.
489
- *
490
- * @example
491
- * ```typescript
492
- * const agent = new MonDoAgent(ctx, env)
493
- * await agent.init()
494
- *
495
- * // Filesystem operations
496
- * await agent.fs.writeFile('/config.json', '{}')
497
- * const content = await agent.fs.readFile('/config.json')
498
- *
499
- * // Glob matching
500
- * const tsFiles = await agent.glob('**\/*.ts')
501
- *
502
- * // Content search
503
- * const matches = await agent.grep('TODO', { glob: '**\/*.ts' })
504
- *
505
- * // Key-value storage
506
- * await agent.kv.set('session:123', { user: 'alice' })
507
- * const session = await agent.kv.get('session:123')
508
- *
509
- * // Audit logging
510
- * await agent.audit.record('read_file', { path: '/test.txt' }, { content: 'hello' })
511
- * ```
512
- */
513
- export class MonDoAgent {
514
- /** Virtual filesystem for file and directory operations (with auto-auditing) */
515
- fs;
516
- /** Key-value store for session data, caches, etc. (with auto-auditing) */
517
- kv;
518
- /** Append-only audit log for tool call tracking */
519
- audit;
520
- /** Internal raw filesystem (without auditing wrapper) */
521
- _rawFs;
522
- /** Internal raw KV store (without auditing wrapper) */
523
- _rawKv;
524
- /** Agent state */
525
- _state = { initialized: false };
526
- /** SQL database from Cloudflare Agent */
527
- sql;
528
- /** Agent context */
529
- ctx;
530
- /** Agent environment */
531
- env;
532
- /** Active WebSocket connections */
533
- _connections = new Set();
534
- /**
535
- * Create a new MonDoAgent instance
536
- *
537
- * @param ctx - Agent context (from Cloudflare Agent)
538
- * @param env - Agent environment (Cloudflare bindings)
539
- */
540
- constructor(ctx, env) {
541
- this.ctx = ctx;
542
- this.env = env;
543
- // Create mock SQL interface (simulating Cloudflare Agent's this.sql)
544
- this.sql = this.createSqlInterface();
545
- // Create in-memory database for filesystem operations
546
- const database = createInMemoryDatabase();
547
- // Initialize raw components
548
- this._rawFs = new AgentFilesystem(database);
549
- const kvBackend = createKVBackendFromDatabase(database);
550
- this._rawKv = new AgentFSKVStore(kvBackend);
551
- const auditBackend = createAuditBackendFromDatabase(database);
552
- this.audit = new ToolCallAuditLog(auditBackend);
553
- // Create audited wrappers
554
- this.fs = new AuditedFilesystem(this._rawFs, this.audit);
555
- this.kv = new AuditedKVStore(this._rawKv, this.audit);
556
- }
557
- /**
558
- * Create SQL interface (simulating Cloudflare Agent's this.sql)
559
- */
560
- createSqlInterface() {
561
- return {
562
- exec: async (_sql) => ({ results: [] }),
563
- prepare: (_sql) => ({
564
- bind: function (..._params) { return this; },
565
- run: async () => ({ results: [] }),
566
- first: async () => null,
567
- all: async () => ({ results: [] }),
568
- }),
569
- };
570
- }
571
- /**
572
- * Set agent state (Cloudflare Agent compatibility)
573
- */
574
- setState(newState) {
575
- this._state = { ...this._state, ...newState };
576
- }
577
- /**
578
- * Get agent state (Cloudflare Agent compatibility)
579
- */
580
- getState() {
581
- return this._state;
582
- }
583
- /**
584
- * Initialize the agent
585
- * Sets up all resources and marks state as initialized
586
- */
587
- async init() {
588
- // Perform any initialization tasks here
589
- this.setState({ initialized: true });
590
- }
591
- /**
592
- * Handle WebSocket connection
593
- * Accepts connection, sets up handlers, and sends welcome message
594
- */
595
- async onConnect(ws, _request) {
596
- // Accept the connection
597
- ws.accept();
598
- // Track connection
599
- this._connections.add(ws);
600
- // Send welcome message
601
- ws.send(JSON.stringify({ type: 'connected', timestamp: new Date().toISOString() }));
602
- // Set up message handler
603
- ws.addEventListener('message', async (event) => {
604
- const messageEvent = event;
605
- try {
606
- const message = JSON.parse(messageEvent.data);
607
- await this.onMessage(ws, message);
608
- }
609
- catch (error) {
610
- ws.send(JSON.stringify({
611
- type: 'error',
612
- error: { message: 'Invalid message format' },
613
- }));
614
- }
615
- });
616
- // Set up close handler
617
- ws.addEventListener('close', async (event) => {
618
- const closeEvent = event;
619
- this._connections.delete(ws);
620
- // Record disconnect in audit log
621
- await this.audit.record('websocket.disconnect', {
622
- code: closeEvent.code,
623
- reason: closeEvent.reason,
624
- }, { success: true });
625
- });
626
- // Record connection in audit log
627
- await this.audit.record('websocket.connect', {
628
- url: _request.url,
629
- }, { success: true });
630
- }
631
- /**
632
- * Handle WebSocket message
633
- * Parses tool call, executes it, and sends response
634
- */
635
- async onMessage(ws, message) {
636
- // Validate message
637
- if (!message.id || !message.tool) {
638
- ws.send(JSON.stringify({
639
- type: 'error',
640
- error: { message: 'Missing required fields: id and tool' },
641
- }));
642
- return;
643
- }
644
- const { id, tool, inputs = {}, stream = false } = message;
645
- try {
646
- const result = await this.executeToolCall(tool, inputs, stream, ws, id);
647
- ws.send(JSON.stringify({
648
- type: 'tool_result',
649
- id,
650
- result,
651
- }));
652
- }
653
- catch (error) {
654
- ws.send(JSON.stringify({
655
- type: 'tool_error',
656
- id,
657
- error: {
658
- message: error instanceof Error ? error.message : String(error),
659
- },
660
- }));
661
- }
662
- }
663
- /**
664
- * Execute a tool call and return the result
665
- */
666
- async executeToolCall(tool, inputs, _stream, _ws, _callId) {
667
- switch (tool) {
668
- case 'fs.readFile': {
669
- const content = await this.fs.readFile(inputs.path);
670
- return { content, success: true };
671
- }
672
- case 'fs.writeFile': {
673
- await this.fs.writeFile(inputs.path, inputs.content);
674
- return { success: true };
675
- }
676
- case 'fs.deleteFile': {
677
- await this.fs.deleteFile(inputs.path);
678
- return { success: true };
679
- }
680
- case 'fs.readdir': {
681
- const entries = await this.fs.readdir(inputs.path);
682
- return { entries, success: true };
683
- }
684
- case 'fs.mkdir': {
685
- await this.fs.mkdir(inputs.path);
686
- return { success: true };
687
- }
688
- case 'fs.rmdir': {
689
- await this.fs.rmdir(inputs.path);
690
- return { success: true };
691
- }
692
- case 'fs.stat': {
693
- const stat = await this.fs.stat(inputs.path);
694
- return { stat, success: true };
695
- }
696
- case 'fs.exists': {
697
- const exists = await this.fs.exists(inputs.path);
698
- return { exists, success: true };
699
- }
700
- case 'glob': {
701
- const files = await this.glob(inputs.pattern, inputs.options);
702
- return { files, success: true };
703
- }
704
- case 'grep': {
705
- const matches = await this.grep(inputs.pattern, inputs.options);
706
- return { matches, success: true };
707
- }
708
- case 'kv.get': {
709
- const value = await this.kv.get(inputs.key);
710
- return { value, success: true };
711
- }
712
- case 'kv.set': {
713
- await this.kv.set(inputs.key, inputs.value);
714
- return { success: true };
715
- }
716
- case 'kv.delete': {
717
- const deleted = await this.kv.delete(inputs.key);
718
- return { deleted, success: true };
719
- }
720
- case 'kv.has': {
721
- const exists = await this.kv.has(inputs.key);
722
- return { exists, success: true };
723
- }
724
- case 'kv.keys': {
725
- const keys = await this.kv.keys(inputs.prefix);
726
- return { keys, success: true };
727
- }
728
- default:
729
- throw new Error(`Unknown tool: ${tool}`);
730
- }
731
- }
732
- /**
733
- * Find files matching a glob pattern (with auto-auditing)
734
- *
735
- * @param pattern - Glob pattern (e.g., '**\/*.ts', 'src/*.js')
736
- * @param options - Optional glob options
737
- * @returns Array of matching file paths
738
- */
739
- async glob(pattern, options) {
740
- const startTime = new Date();
741
- try {
742
- // Use raw filesystem's glob to avoid double auditing
743
- const allFiles = await this._rawFs.glob(pattern);
744
- // Apply additional filtering if options provided
745
- let result;
746
- if (!options?.nocase && !options?.dot) {
747
- result = allFiles;
748
- }
749
- else {
750
- result = filterGlob(pattern, allFiles, options);
751
- }
752
- const endTime = new Date();
753
- // Record in audit log
754
- await this.audit.record('glob', { pattern, options }, { files: result, count: result.length, success: true }, { startTime, endTime });
755
- return result;
756
- }
757
- catch (error) {
758
- const endTime = new Date();
759
- await this.audit.record('glob', { pattern, options }, {
760
- success: false,
761
- error: {
762
- message: error instanceof Error ? error.message : String(error),
763
- stack: error instanceof Error ? error.stack : undefined,
764
- },
765
- }, { startTime, endTime });
766
- throw error;
767
- }
768
- }
769
- /**
770
- * Search file contents for a pattern (with auto-auditing)
771
- *
772
- * @param pattern - Regular expression pattern to search for
773
- * @param options - Optional grep options
774
- * @returns Array of grep matches
775
- */
776
- async grep(pattern, options) {
777
- const startTime = new Date();
778
- try {
779
- // Create a custom glob matcher that properly handles root-level files
780
- // The default **/* pattern doesn't match files at root level
781
- const customGlobMatcher = {
782
- glob: async (globPattern) => {
783
- // If pattern is **/* or similar, we need to also check root level
784
- if (globPattern === '**/*' || globPattern === '/**/*') {
785
- // Get all files by using a pattern that matches everything
786
- const allFiles = await this._rawFs.glob('**/*');
787
- // Also get root level files with a simple pattern
788
- const rootFiles = await this._rawFs.glob('/*');
789
- // Combine and dedupe
790
- const combined = new Set([...allFiles, ...rootFiles]);
791
- return Array.from(combined).sort();
792
- }
793
- return this._rawFs.glob(globPattern);
794
- }
795
- };
796
- // Create a new AgentGrep with raw filesystem to avoid double auditing of file reads
797
- const rawGrep = new AgentGrep(this._rawFs, customGlobMatcher);
798
- const matches = await rawGrep.grep(pattern, options);
799
- const endTime = new Date();
800
- // Record in audit log
801
- await this.audit.record('grep', { pattern, ...options }, { matches, count: matches.length, success: true }, { startTime, endTime });
802
- return matches;
803
- }
804
- catch (error) {
805
- const endTime = new Date();
806
- await this.audit.record('grep', { pattern, ...options }, {
807
- success: false,
808
- error: {
809
- message: error instanceof Error ? error.message : String(error),
810
- stack: error instanceof Error ? error.stack : undefined,
811
- },
812
- }, { startTime, endTime });
813
- throw error;
814
- }
815
- }
816
- /**
817
- * Search and return only file paths containing matches
818
- *
819
- * @param pattern - Regular expression pattern to search for
820
- * @param options - Optional grep options
821
- * @returns Array of unique file paths
822
- */
823
- async grepFiles(pattern, options) {
824
- const matches = await this.grep(pattern, options);
825
- const uniqueFiles = new Set(matches.map((m) => m.file));
826
- return Array.from(uniqueFiles);
827
- }
828
- /**
829
- * Count matches per file
830
- *
831
- * @param pattern - Regular expression pattern to search for
832
- * @param options - Optional grep options
833
- * @returns Map of file path to match count
834
- */
835
- async grepCount(pattern, options) {
836
- // Remove maxResults to get all matches for counting
837
- const { maxResults: _maxResults, ...restOptions } = options ?? {};
838
- const matches = await this.grep(pattern, restOptions);
839
- const counts = new Map();
840
- for (const match of matches) {
841
- counts.set(match.file, (counts.get(match.file) ?? 0) + 1);
842
- }
843
- return counts;
844
- }
845
- }
846
- /**
847
- * Create a new MonDoAgent instance (legacy factory function)
848
- *
849
- * @param options - Configuration options
850
- * @returns Configured MonDoAgent instance
851
- */
852
- export function createMonDoAgent(_options) {
853
- // Create a mock context and env for legacy compatibility
854
- const ctx = {
855
- id: 'legacy-agent',
856
- storage: {
857
- get: async () => null,
858
- put: async () => { },
859
- delete: async () => false,
860
- list: async () => new Map(),
861
- },
862
- blockConcurrencyWhile: async (fn) => fn(),
863
- };
864
- const env = {};
865
- return new MonDoAgent(ctx, env);
866
- }
867
- /**
868
- * Type guard to check if an object is a MonDoAgent
869
- */
870
- export function isMonDoAgent(obj) {
871
- return (obj !== null &&
872
- typeof obj === 'object' &&
873
- 'fs' in obj &&
874
- 'kv' in obj &&
875
- 'audit' in obj &&
876
- typeof obj.glob === 'function' &&
877
- typeof obj.grep === 'function');
878
- }
879
- //# sourceMappingURL=mondo-agent.js.map