@resolveio/server-lib 22.3.220 → 22.3.221

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 (745) hide show
  1. package/.nodemon.json +5 -0
  2. package/.vscode/settings.json +21 -0
  3. package/AGENTS.md +195 -0
  4. package/README.md +22 -0
  5. package/build_package.sh +5 -0
  6. package/compileDTS.pl +64 -0
  7. package/docs/ai-assistant-nightly-eval.md +65 -0
  8. package/docs/ai-assistant-preflight-checklist.md +23 -0
  9. package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
  10. package/eslint-plugin-custom/index.js +7 -0
  11. package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
  12. package/eslint.config.js +103 -0
  13. package/gulpfile.js +216 -0
  14. package/methodAndPublicationListGenerator.py +375 -0
  15. package/mongodbensurers.js +2 -0
  16. package/mongostop.js +3 -0
  17. package/package.json +1 -1
  18. package/scripts/cleanup-bypassed-callmethod-logs.js +616 -0
  19. package/settings.development.json +25 -0
  20. package/settings.development.redacted.json +25 -0
  21. package/src/.env +12 -0
  22. package/src/ai/assistant-core-heuristics.ts +379 -0
  23. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +185 -0
  24. package/src/ai/resolveio-platform-intelligence-memory.ts +325 -0
  25. package/{ai/resolveio-platform-intelligence-types.d.ts → src/ai/resolveio-platform-intelligence-types.ts} +20 -15
  26. package/src/ai/resolveio-platform-intelligence.ts +462 -0
  27. package/src/client-server-app.ts +12 -0
  28. package/src/collections/ai-run.collection.ts +117 -0
  29. package/src/collections/ai-terminal-conversation.collection.ts +91 -0
  30. package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
  31. package/src/collections/ai-terminal-message.collection.ts +77 -0
  32. package/src/collections/app-setting.collection.ts +104 -0
  33. package/src/collections/app-status.collection.ts +58 -0
  34. package/src/collections/communication-metric.collection.ts +84 -0
  35. package/src/collections/counter.collection.ts +56 -0
  36. package/src/collections/cron-job-history.collection.ts +94 -0
  37. package/src/collections/cron-job.collection.ts +92 -0
  38. package/src/collections/customer-notification.collection.ts +131 -0
  39. package/src/collections/customer-portal-password.collection.ts +76 -0
  40. package/src/collections/email-history.collection.ts +134 -0
  41. package/src/collections/email-verified.collection.ts +62 -0
  42. package/src/collections/file.collection.ts +74 -0
  43. package/src/collections/flag-update.collection.ts +57 -0
  44. package/src/collections/flag.collection.ts +57 -0
  45. package/src/collections/log-method-latency.collection.ts +77 -0
  46. package/src/collections/log-subscription.collection.ts +80 -0
  47. package/src/collections/log.collection.ts +93 -0
  48. package/src/collections/logged-in-users.collection.ts +67 -0
  49. package/src/collections/monitor-cpu.collection.ts +65 -0
  50. package/src/collections/monitor-function.collection.ts +74 -0
  51. package/src/collections/monitor-memory.collection.ts +77 -0
  52. package/src/collections/monitor-mongo.collection.ts +71 -0
  53. package/src/collections/notification.collection.ts +57 -0
  54. package/src/collections/openai-usage-ledger.collection.ts +131 -0
  55. package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
  56. package/src/collections/report-builder-library.collection.ts +89 -0
  57. package/src/collections/report-builder-report.collection.ts +184 -0
  58. package/src/collections/user-group.collection.ts +89 -0
  59. package/src/collections/user-guide.collection.ts +57 -0
  60. package/src/collections/user.collection.ts +181 -0
  61. package/src/cron/cron.ts +117 -0
  62. package/src/fixtures/cron-jobs.ts +95 -0
  63. package/src/fixtures/init.ts +35 -0
  64. package/src/http/auth.ts +818 -0
  65. package/src/http/health.ts +7 -0
  66. package/src/http/home.ts +90 -0
  67. package/src/http/slow-query-publication.ts +49 -0
  68. package/src/index.ts +1 -0
  69. package/src/managers/ai-assistant-codex-manager.manager.ts +1131 -0
  70. package/src/managers/ai-run-evidence.manager.ts +264 -0
  71. package/src/managers/communication-metric.manager.ts +82 -0
  72. package/src/managers/cron.manager.ts +333 -0
  73. package/src/managers/customer-notification-content.manager.ts +236 -0
  74. package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
  75. package/src/managers/error-auto-fix.manager.ts +2767 -0
  76. package/src/managers/local-log.manager.ts +113 -0
  77. package/src/managers/method.manager.ts +1857 -0
  78. package/src/managers/mongo.manager.ts +4575 -0
  79. package/src/managers/monitor.manager.ts +507 -0
  80. package/src/managers/openai-usage-ledger.manager.ts +112 -0
  81. package/src/managers/slow-query-verifier.manager.ts +3590 -0
  82. package/src/managers/slow-query.manager.ts +519 -0
  83. package/src/managers/subscription.manager.ts +3128 -0
  84. package/src/managers/websocket.manager.ts +746 -0
  85. package/src/managers/worker-dispatcher.manager.ts +1360 -0
  86. package/src/managers/worker-server.manager.ts +536 -0
  87. package/src/methods/accounts.ts +532 -0
  88. package/src/methods/ai-terminal.ts +29070 -0
  89. package/src/methods/app-settings.ts +114 -0
  90. package/src/methods/aws.ts +649 -0
  91. package/src/methods/collections.ts +641 -0
  92. package/src/methods/counters.ts +69 -0
  93. package/src/methods/cron-jobs.ts +2614 -0
  94. package/src/methods/customer-notifications.ts +458 -0
  95. package/src/methods/diagnostics.ts +616 -0
  96. package/src/methods/flag-updates.ts +7 -0
  97. package/src/methods/flags.ts +7 -0
  98. package/src/methods/logs.ts +657 -0
  99. package/src/methods/mongo-explorer.ts +1880 -0
  100. package/src/methods/monitor.ts +540 -0
  101. package/src/methods/pdf.ts +1236 -0
  102. package/src/methods/publications.ts +129 -0
  103. package/src/methods/report-builder.ts +3300 -0
  104. package/src/methods/support.ts +335 -0
  105. package/src/models/ai-run.model.ts +27 -0
  106. package/src/models/ai-terminal-conversation.model.ts +19 -0
  107. package/src/models/ai-terminal-issue-report.model.ts +21 -0
  108. package/src/models/ai-terminal-message.model.ts +24 -0
  109. package/src/models/app-setting.model.ts +17 -0
  110. package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
  111. package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
  112. package/src/models/collection-document.model.ts +24 -0
  113. package/src/models/communication-metric.model.ts +23 -0
  114. package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
  115. package/src/models/cron-job-history.model.ts +16 -0
  116. package/src/models/cron-job.model.ts +15 -0
  117. package/src/models/customer-notification.model.ts +28 -0
  118. package/src/models/customer-portal-password.model.ts +12 -0
  119. package/src/models/dialog.model.ts +25 -0
  120. package/{models/email-history.model.js → src/models/email-history.model.ts} +36 -4
  121. package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
  122. package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
  123. package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
  124. package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
  125. package/src/models/log-method-latency.model.ts +11 -0
  126. package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
  127. package/src/models/log.model.ts +19 -0
  128. package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
  129. package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
  130. package/src/models/method.model.ts +25 -0
  131. package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
  132. package/src/models/monitor-function.model.ts +16 -0
  133. package/src/models/monitor-memory.model.ts +17 -0
  134. package/src/models/monitor-mongo.model.ts +15 -0
  135. package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
  136. package/src/models/openai-usage-ledger.model.ts +56 -0
  137. package/src/models/pagination.model.ts +35 -0
  138. package/src/models/permission.model.ts +14 -0
  139. package/src/models/report-builder-dashboard-builder.model.ts +29 -0
  140. package/src/models/report-builder-library.model.ts +20 -0
  141. package/src/models/report-builder-report.model.ts +136 -0
  142. package/src/models/report-builder.model.ts +68 -0
  143. package/src/models/select-data-label.model.ts +9 -0
  144. package/src/models/server-message.model.ts +31 -0
  145. package/src/models/slow-query-report.model.ts +23 -0
  146. package/src/models/subscription.model.ts +73 -0
  147. package/src/models/support-ticket.model.ts +104 -0
  148. package/src/models/user-group.model.ts +24 -0
  149. package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
  150. package/src/models/user.model.ts +96 -0
  151. package/src/private/images/ResolveIO.png +0 -0
  152. package/src/publications/ai-terminal.ts +73 -0
  153. package/src/publications/app-settings.ts +25 -0
  154. package/src/publications/app-status.ts +13 -0
  155. package/src/publications/cron-jobs.ts +40 -0
  156. package/src/publications/customer-notifications.ts +101 -0
  157. package/src/publications/files.ts +33 -0
  158. package/src/publications/flags-update.ts +19 -0
  159. package/src/publications/flags.ts +19 -0
  160. package/src/publications/logs.ts +163 -0
  161. package/src/publications/notifications.ts +13 -0
  162. package/src/publications/report-builder-dashboard-builders.ts +39 -0
  163. package/src/publications/report-builder-libraries.ts +41 -0
  164. package/src/publications/report-builder-reports.ts +47 -0
  165. package/src/publications/super-admin.ts +13 -0
  166. package/src/publications/user-groups.ts +12 -0
  167. package/src/publications/user-guides.ts +12 -0
  168. package/src/resolveio-server-app.ts +617 -0
  169. package/src/server-app.ts +3354 -0
  170. package/src/services/codex-client.ts +1231 -0
  171. package/src/services/openai-client.ts +265 -0
  172. package/src/types/error-report.ts +26 -0
  173. package/src/types/js-tiktoken.d.ts +11 -0
  174. package/src/types/slow-query-report.ts +28 -0
  175. package/src/util/ai-qa-policy.ts +925 -0
  176. package/src/util/ai-run-evidence-adapters.ts +8347 -0
  177. package/src/util/ai-run-evidence-dashboard.ts +323 -0
  178. package/src/util/ai-run-evidence-eval.ts +1057 -0
  179. package/src/util/ai-run-evidence.ts +1430 -0
  180. package/src/util/ai-runner-artifacts.ts +586 -0
  181. package/src/util/ai-runner-manager-autopilot.ts +961 -0
  182. package/src/util/ai-runner-manager-policy.ts +5011 -0
  183. package/src/util/ai-runner-qa-auth.ts +838 -0
  184. package/src/util/ai-runner-qa-tools.ts +3536 -0
  185. package/src/util/aicoder-runner-v6.ts +3121 -0
  186. package/src/util/common.ts +649 -0
  187. package/src/util/customer-portal-password.ts +183 -0
  188. package/src/util/error-reporter.ts +332 -0
  189. package/src/util/error-tracking.ts +79 -0
  190. package/src/util/openai-usage-cost.ts +114 -0
  191. package/src/util/report-builder-unwinds.ts +180 -0
  192. package/src/util/runner-process-janitor.ts +219 -0
  193. package/src/util/schema-report-builder.ts +448 -0
  194. package/src/util/slow-query-reporter.ts +216 -0
  195. package/src/util/subscription-dependency-context.ts +1096 -0
  196. package/src/util/support-runner-v5.ts +10040 -0
  197. package/src/util/tokenizer.ts +38 -0
  198. package/src/workers/codex-runner.worker.ts +142 -0
  199. package/start_server.sh +5 -0
  200. package/tests/ai-assistant-corpus-build.ts +484 -0
  201. package/tests/ai-assistant-corpus-replay-e2e.ts +774 -0
  202. package/tests/ai-assistant-data-parity-e2e.ts +1989 -0
  203. package/tests/ai-assistant-eval-triage.ts +831 -0
  204. package/tests/ai-assistant-openai-e2e.ts +1061 -0
  205. package/tests/ai-assistant-openai-git-e2e.ts +155 -0
  206. package/tests/ai-assistant-preflight-matrix.ts +215 -0
  207. package/tests/ai-assistant-routing-eval.test.ts +585 -0
  208. package/tests/ai-assistant-snf-live-eval.ts +975 -0
  209. package/tests/ai-assistant-utils.test.ts +4834 -0
  210. package/tests/ai-manager-autopilot-snapshot.test.ts +193 -0
  211. package/tests/ai-manager-recovery-checkpoint.test.ts +1383 -0
  212. package/tests/ai-run-eval.test.ts +132 -0
  213. package/tests/ai-run-evidence.test.ts +3773 -0
  214. package/tests/ai-runner-contract.test.ts +515 -0
  215. package/tests/aicoder-runner-v6.test.ts +822 -0
  216. package/tests/error-reporter.test.ts +145 -0
  217. package/tests/method-publication-generator.test.ts +46 -0
  218. package/tests/report-builder-linking.test.ts +79 -0
  219. package/tests/resolveio-platform-intelligence.test.ts +352 -0
  220. package/tests/server-app-cron-owner.test.ts +127 -0
  221. package/tests/subscription-connect-race.test.ts +158 -0
  222. package/tests/subscription-dependency-context.test.ts +324 -0
  223. package/tests/subscription-manager-collection-tracking.test.ts +86 -0
  224. package/tests/subscription-manager-invalidation.test.ts +86 -0
  225. package/tests/support-runner-v5.test.ts +3201 -0
  226. package/tsconfig.json +34 -0
  227. package/ai/assistant-core-heuristics.d.ts +0 -11
  228. package/ai/assistant-core-heuristics.js +0 -356
  229. package/ai/assistant-core-heuristics.js.map +0 -1
  230. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +0 -3
  231. package/ai/resolveio-platform-intelligence-memory-corpus.js +0 -214
  232. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +0 -1
  233. package/ai/resolveio-platform-intelligence-memory.d.ts +0 -20
  234. package/ai/resolveio-platform-intelligence-memory.js +0 -341
  235. package/ai/resolveio-platform-intelligence-memory.js.map +0 -1
  236. package/ai/resolveio-platform-intelligence-types.js +0 -4
  237. package/ai/resolveio-platform-intelligence-types.js.map +0 -1
  238. package/ai/resolveio-platform-intelligence.d.ts +0 -6
  239. package/ai/resolveio-platform-intelligence.js +0 -463
  240. package/ai/resolveio-platform-intelligence.js.map +0 -1
  241. package/client-server-app.d.ts +0 -1
  242. package/client-server-app.js +0 -68
  243. package/client-server-app.js.map +0 -1
  244. package/collections/ai-run.collection.d.ts +0 -3
  245. package/collections/ai-run.collection.js +0 -170
  246. package/collections/ai-run.collection.js.map +0 -1
  247. package/collections/ai-terminal-conversation.collection.d.ts +0 -2
  248. package/collections/ai-terminal-conversation.collection.js +0 -140
  249. package/collections/ai-terminal-conversation.collection.js.map +0 -1
  250. package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
  251. package/collections/ai-terminal-issue-report.collection.js +0 -148
  252. package/collections/ai-terminal-issue-report.collection.js.map +0 -1
  253. package/collections/ai-terminal-message.collection.d.ts +0 -2
  254. package/collections/ai-terminal-message.collection.js +0 -121
  255. package/collections/ai-terminal-message.collection.js.map +0 -1
  256. package/collections/app-setting.collection.d.ts +0 -3
  257. package/collections/app-setting.collection.js +0 -103
  258. package/collections/app-setting.collection.js.map +0 -1
  259. package/collections/app-status.collection.d.ts +0 -3
  260. package/collections/app-status.collection.js +0 -57
  261. package/collections/app-status.collection.js.map +0 -1
  262. package/collections/communication-metric.collection.d.ts +0 -2
  263. package/collections/communication-metric.collection.js +0 -133
  264. package/collections/communication-metric.collection.js.map +0 -1
  265. package/collections/counter.collection.d.ts +0 -3
  266. package/collections/counter.collection.js +0 -56
  267. package/collections/counter.collection.js.map +0 -1
  268. package/collections/cron-job-history.collection.d.ts +0 -3
  269. package/collections/cron-job-history.collection.js +0 -137
  270. package/collections/cron-job-history.collection.js.map +0 -1
  271. package/collections/cron-job.collection.d.ts +0 -3
  272. package/collections/cron-job.collection.js +0 -92
  273. package/collections/cron-job.collection.js.map +0 -1
  274. package/collections/customer-notification.collection.d.ts +0 -3
  275. package/collections/customer-notification.collection.js +0 -130
  276. package/collections/customer-notification.collection.js.map +0 -1
  277. package/collections/customer-portal-password.collection.d.ts +0 -3
  278. package/collections/customer-portal-password.collection.js +0 -75
  279. package/collections/customer-portal-password.collection.js.map +0 -1
  280. package/collections/email-history.collection.d.ts +0 -3
  281. package/collections/email-history.collection.js +0 -134
  282. package/collections/email-history.collection.js.map +0 -1
  283. package/collections/email-verified.collection.d.ts +0 -3
  284. package/collections/email-verified.collection.js +0 -62
  285. package/collections/email-verified.collection.js.map +0 -1
  286. package/collections/file.collection.d.ts +0 -3
  287. package/collections/file.collection.js +0 -74
  288. package/collections/file.collection.js.map +0 -1
  289. package/collections/flag-update.collection.d.ts +0 -3
  290. package/collections/flag-update.collection.js +0 -57
  291. package/collections/flag-update.collection.js.map +0 -1
  292. package/collections/flag.collection.d.ts +0 -3
  293. package/collections/flag.collection.js +0 -57
  294. package/collections/flag.collection.js.map +0 -1
  295. package/collections/log-method-latency.collection.d.ts +0 -3
  296. package/collections/log-method-latency.collection.js +0 -77
  297. package/collections/log-method-latency.collection.js.map +0 -1
  298. package/collections/log-subscription.collection.d.ts +0 -3
  299. package/collections/log-subscription.collection.js +0 -80
  300. package/collections/log-subscription.collection.js.map +0 -1
  301. package/collections/log.collection.d.ts +0 -3
  302. package/collections/log.collection.js +0 -93
  303. package/collections/log.collection.js.map +0 -1
  304. package/collections/logged-in-users.collection.d.ts +0 -3
  305. package/collections/logged-in-users.collection.js +0 -67
  306. package/collections/logged-in-users.collection.js.map +0 -1
  307. package/collections/monitor-cpu.collection.d.ts +0 -3
  308. package/collections/monitor-cpu.collection.js +0 -65
  309. package/collections/monitor-cpu.collection.js.map +0 -1
  310. package/collections/monitor-function.collection.d.ts +0 -3
  311. package/collections/monitor-function.collection.js +0 -74
  312. package/collections/monitor-function.collection.js.map +0 -1
  313. package/collections/monitor-memory.collection.d.ts +0 -3
  314. package/collections/monitor-memory.collection.js +0 -77
  315. package/collections/monitor-memory.collection.js.map +0 -1
  316. package/collections/monitor-mongo.collection.d.ts +0 -3
  317. package/collections/monitor-mongo.collection.js +0 -71
  318. package/collections/monitor-mongo.collection.js.map +0 -1
  319. package/collections/notification.collection.d.ts +0 -3
  320. package/collections/notification.collection.js +0 -57
  321. package/collections/notification.collection.js.map +0 -1
  322. package/collections/openai-usage-ledger.collection.d.ts +0 -2
  323. package/collections/openai-usage-ledger.collection.js +0 -188
  324. package/collections/openai-usage-ledger.collection.js.map +0 -1
  325. package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
  326. package/collections/report-builder-dashboard-builder.collection.js +0 -109
  327. package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
  328. package/collections/report-builder-library.collection.d.ts +0 -3
  329. package/collections/report-builder-library.collection.js +0 -87
  330. package/collections/report-builder-library.collection.js.map +0 -1
  331. package/collections/report-builder-report.collection.d.ts +0 -4
  332. package/collections/report-builder-report.collection.js +0 -184
  333. package/collections/report-builder-report.collection.js.map +0 -1
  334. package/collections/user-group.collection.d.ts +0 -4
  335. package/collections/user-group.collection.js +0 -89
  336. package/collections/user-group.collection.js.map +0 -1
  337. package/collections/user-guide.collection.d.ts +0 -3
  338. package/collections/user-guide.collection.js +0 -57
  339. package/collections/user-guide.collection.js.map +0 -1
  340. package/collections/user.collection.d.ts +0 -4
  341. package/collections/user.collection.js +0 -180
  342. package/collections/user.collection.js.map +0 -1
  343. package/cron/cron.d.ts +0 -14
  344. package/cron/cron.js +0 -216
  345. package/cron/cron.js.map +0 -1
  346. package/fixtures/cron-jobs.d.ts +0 -1
  347. package/fixtures/cron-jobs.js +0 -150
  348. package/fixtures/cron-jobs.js.map +0 -1
  349. package/fixtures/init.d.ts +0 -1
  350. package/fixtures/init.js +0 -91
  351. package/fixtures/init.js.map +0 -1
  352. package/http/auth.d.ts +0 -2
  353. package/http/auth.js +0 -951
  354. package/http/auth.js.map +0 -1
  355. package/http/health.d.ts +0 -1
  356. package/http/health.js +0 -11
  357. package/http/health.js.map +0 -1
  358. package/http/home.d.ts +0 -1
  359. package/http/home.js +0 -134
  360. package/http/home.js.map +0 -1
  361. package/http/slow-query-publication.d.ts +0 -2
  362. package/http/slow-query-publication.js +0 -99
  363. package/http/slow-query-publication.js.map +0 -1
  364. package/index.d.ts +0 -1
  365. package/index.js +0 -19
  366. package/index.js.map +0 -1
  367. package/managers/ai-assistant-codex-manager.manager.d.ts +0 -67
  368. package/managers/ai-assistant-codex-manager.manager.js +0 -1113
  369. package/managers/ai-assistant-codex-manager.manager.js.map +0 -1
  370. package/managers/ai-run-evidence.manager.d.ts +0 -36
  371. package/managers/ai-run-evidence.manager.js +0 -377
  372. package/managers/ai-run-evidence.manager.js.map +0 -1
  373. package/managers/communication-metric.manager.d.ts +0 -16
  374. package/managers/communication-metric.manager.js +0 -134
  375. package/managers/communication-metric.manager.js.map +0 -1
  376. package/managers/cron.manager.d.ts +0 -20
  377. package/managers/cron.manager.js +0 -534
  378. package/managers/cron.manager.js.map +0 -1
  379. package/managers/customer-notification-content.manager.d.ts +0 -55
  380. package/managers/customer-notification-content.manager.js +0 -158
  381. package/managers/customer-notification-content.manager.js.map +0 -1
  382. package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
  383. package/managers/diagnostic-manager-bootstrap.js +0 -260
  384. package/managers/diagnostic-manager-bootstrap.js.map +0 -1
  385. package/managers/error-auto-fix.manager.d.ts +0 -149
  386. package/managers/error-auto-fix.manager.js +0 -3064
  387. package/managers/error-auto-fix.manager.js.map +0 -1
  388. package/managers/local-log.manager.d.ts +0 -18
  389. package/managers/local-log.manager.js +0 -88
  390. package/managers/local-log.manager.js.map +0 -1
  391. package/managers/method.manager.d.ts +0 -84
  392. package/managers/method.manager.js +0 -1964
  393. package/managers/method.manager.js.map +0 -1
  394. package/managers/mongo.manager.d.ts +0 -224
  395. package/managers/mongo.manager.js +0 -5000
  396. package/managers/mongo.manager.js.map +0 -1
  397. package/managers/monitor.manager.d.ts +0 -70
  398. package/managers/monitor.manager.js +0 -550
  399. package/managers/monitor.manager.js.map +0 -1
  400. package/managers/openai-usage-ledger.manager.d.ts +0 -30
  401. package/managers/openai-usage-ledger.manager.js +0 -142
  402. package/managers/openai-usage-ledger.manager.js.map +0 -1
  403. package/managers/slow-query-verifier.manager.d.ts +0 -144
  404. package/managers/slow-query-verifier.manager.js +0 -3857
  405. package/managers/slow-query-verifier.manager.js.map +0 -1
  406. package/managers/slow-query.manager.d.ts +0 -28
  407. package/managers/slow-query.manager.js +0 -468
  408. package/managers/slow-query.manager.js.map +0 -1
  409. package/managers/subscription.manager.d.ts +0 -169
  410. package/managers/subscription.manager.js +0 -3434
  411. package/managers/subscription.manager.js.map +0 -1
  412. package/managers/websocket.manager.d.ts +0 -73
  413. package/managers/websocket.manager.js +0 -673
  414. package/managers/websocket.manager.js.map +0 -1
  415. package/managers/worker-dispatcher.manager.d.ts +0 -120
  416. package/managers/worker-dispatcher.manager.js +0 -1266
  417. package/managers/worker-dispatcher.manager.js.map +0 -1
  418. package/managers/worker-server.manager.d.ts +0 -35
  419. package/managers/worker-server.manager.js +0 -582
  420. package/managers/worker-server.manager.js.map +0 -1
  421. package/methods/accounts.d.ts +0 -2
  422. package/methods/accounts.js +0 -624
  423. package/methods/accounts.js.map +0 -1
  424. package/methods/ai-terminal.d.ts +0 -458
  425. package/methods/ai-terminal.js +0 -27991
  426. package/methods/ai-terminal.js.map +0 -1
  427. package/methods/app-settings.d.ts +0 -2
  428. package/methods/app-settings.js +0 -169
  429. package/methods/app-settings.js.map +0 -1
  430. package/methods/aws.d.ts +0 -2
  431. package/methods/aws.js +0 -877
  432. package/methods/aws.js.map +0 -1
  433. package/methods/collections.d.ts +0 -2
  434. package/methods/collections.js +0 -719
  435. package/methods/collections.js.map +0 -1
  436. package/methods/counters.d.ts +0 -2
  437. package/methods/counters.js +0 -113
  438. package/methods/counters.js.map +0 -1
  439. package/methods/cron-jobs.d.ts +0 -2
  440. package/methods/cron-jobs.js +0 -2475
  441. package/methods/cron-jobs.js.map +0 -1
  442. package/methods/customer-notifications.d.ts +0 -2
  443. package/methods/customer-notifications.js +0 -528
  444. package/methods/customer-notifications.js.map +0 -1
  445. package/methods/diagnostics.d.ts +0 -2
  446. package/methods/diagnostics.js +0 -703
  447. package/methods/diagnostics.js.map +0 -1
  448. package/methods/flag-updates.d.ts +0 -2
  449. package/methods/flag-updates.js +0 -8
  450. package/methods/flag-updates.js.map +0 -1
  451. package/methods/flags.d.ts +0 -2
  452. package/methods/flags.js +0 -8
  453. package/methods/flags.js.map +0 -1
  454. package/methods/logs.d.ts +0 -2
  455. package/methods/logs.js +0 -751
  456. package/methods/logs.js.map +0 -1
  457. package/methods/mongo-explorer.d.ts +0 -2
  458. package/methods/mongo-explorer.js +0 -1808
  459. package/methods/mongo-explorer.js.map +0 -1
  460. package/methods/monitor.d.ts +0 -2
  461. package/methods/monitor.js +0 -543
  462. package/methods/monitor.js.map +0 -1
  463. package/methods/pdf.d.ts +0 -2
  464. package/methods/pdf.js +0 -1216
  465. package/methods/pdf.js.map +0 -1
  466. package/methods/publications.d.ts +0 -1
  467. package/methods/publications.js +0 -183
  468. package/methods/publications.js.map +0 -1
  469. package/methods/report-builder.d.ts +0 -2
  470. package/methods/report-builder.js +0 -3094
  471. package/methods/report-builder.js.map +0 -1
  472. package/methods/support.d.ts +0 -2
  473. package/methods/support.js +0 -430
  474. package/methods/support.js.map +0 -1
  475. package/models/ai-run.model.d.ts +0 -19
  476. package/models/ai-run.model.js +0 -4
  477. package/models/ai-run.model.js.map +0 -1
  478. package/models/ai-terminal-conversation.model.d.ts +0 -17
  479. package/models/ai-terminal-conversation.model.js +0 -4
  480. package/models/ai-terminal-conversation.model.js.map +0 -1
  481. package/models/ai-terminal-issue-report.model.d.ts +0 -19
  482. package/models/ai-terminal-issue-report.model.js +0 -4
  483. package/models/ai-terminal-issue-report.model.js.map +0 -1
  484. package/models/ai-terminal-message.model.d.ts +0 -22
  485. package/models/ai-terminal-message.model.js +0 -4
  486. package/models/ai-terminal-message.model.js.map +0 -1
  487. package/models/app-setting.model.d.ts +0 -16
  488. package/models/app-setting.model.js +0 -4
  489. package/models/app-setting.model.js.map +0 -1
  490. package/models/app-status.model.js +0 -4
  491. package/models/app-status.model.js.map +0 -1
  492. package/models/billing-logged-in-users.model.js +0 -4
  493. package/models/billing-logged-in-users.model.js.map +0 -1
  494. package/models/collection-document.model.d.ts +0 -21
  495. package/models/collection-document.model.js +0 -4
  496. package/models/collection-document.model.js.map +0 -1
  497. package/models/communication-metric.model.d.ts +0 -20
  498. package/models/communication-metric.model.js +0 -4
  499. package/models/communication-metric.model.js.map +0 -1
  500. package/models/counter.model.js +0 -4
  501. package/models/counter.model.js.map +0 -1
  502. package/models/cron-job-history.model.d.ts +0 -15
  503. package/models/cron-job-history.model.js +0 -4
  504. package/models/cron-job-history.model.js.map +0 -1
  505. package/models/cron-job.model.d.ts +0 -14
  506. package/models/cron-job.model.js +0 -4
  507. package/models/cron-job.model.js.map +0 -1
  508. package/models/customer-notification.model.d.ts +0 -26
  509. package/models/customer-notification.model.js +0 -4
  510. package/models/customer-notification.model.js.map +0 -1
  511. package/models/customer-portal-password.model.d.ts +0 -11
  512. package/models/customer-portal-password.model.js +0 -4
  513. package/models/customer-portal-password.model.js.map +0 -1
  514. package/models/dialog.model.d.ts +0 -23
  515. package/models/dialog.model.js +0 -4
  516. package/models/dialog.model.js.map +0 -1
  517. package/models/email-history.model.d.ts +0 -32
  518. package/models/email-history.model.js.map +0 -1
  519. package/models/email-verified.model.js +0 -4
  520. package/models/email-verified.model.js.map +0 -1
  521. package/models/file.model.js +0 -4
  522. package/models/file.model.js.map +0 -1
  523. package/models/flag-update.model.js +0 -4
  524. package/models/flag-update.model.js.map +0 -1
  525. package/models/flag.model.js +0 -4
  526. package/models/flag.model.js.map +0 -1
  527. package/models/log-method-latency.model.d.ts +0 -10
  528. package/models/log-method-latency.model.js +0 -4
  529. package/models/log-method-latency.model.js.map +0 -1
  530. package/models/log-subscription.model.js +0 -4
  531. package/models/log-subscription.model.js.map +0 -1
  532. package/models/log.model.d.ts +0 -17
  533. package/models/log.model.js +0 -4
  534. package/models/log.model.js.map +0 -1
  535. package/models/logged-in-users.model.js +0 -4
  536. package/models/logged-in-users.model.js.map +0 -1
  537. package/models/method-response.model.js +0 -4
  538. package/models/method-response.model.js.map +0 -1
  539. package/models/method.model.d.ts +0 -26
  540. package/models/method.model.js +0 -4
  541. package/models/method.model.js.map +0 -1
  542. package/models/monitor-cpu.model.js +0 -4
  543. package/models/monitor-cpu.model.js.map +0 -1
  544. package/models/monitor-function.model.d.ts +0 -14
  545. package/models/monitor-function.model.js +0 -4
  546. package/models/monitor-function.model.js.map +0 -1
  547. package/models/monitor-memory.model.d.ts +0 -15
  548. package/models/monitor-memory.model.js +0 -4
  549. package/models/monitor-memory.model.js.map +0 -1
  550. package/models/monitor-mongo.model.d.ts +0 -13
  551. package/models/monitor-mongo.model.js +0 -4
  552. package/models/monitor-mongo.model.js.map +0 -1
  553. package/models/notification.model.js +0 -4
  554. package/models/notification.model.js.map +0 -1
  555. package/models/openai-usage-ledger.model.d.ts +0 -30
  556. package/models/openai-usage-ledger.model.js +0 -4
  557. package/models/openai-usage-ledger.model.js.map +0 -1
  558. package/models/pagination.model.d.ts +0 -11
  559. package/models/pagination.model.js +0 -28
  560. package/models/pagination.model.js.map +0 -1
  561. package/models/permission.model.d.ts +0 -12
  562. package/models/permission.model.js +0 -4
  563. package/models/permission.model.js.map +0 -1
  564. package/models/report-builder-dashboard-builder.model.d.ts +0 -25
  565. package/models/report-builder-dashboard-builder.model.js +0 -4
  566. package/models/report-builder-dashboard-builder.model.js.map +0 -1
  567. package/models/report-builder-library.model.d.ts +0 -17
  568. package/models/report-builder-library.model.js +0 -4
  569. package/models/report-builder-library.model.js.map +0 -1
  570. package/models/report-builder-report.model.d.ts +0 -121
  571. package/models/report-builder-report.model.js +0 -4
  572. package/models/report-builder-report.model.js.map +0 -1
  573. package/models/report-builder.model.d.ts +0 -61
  574. package/models/report-builder.model.js +0 -4
  575. package/models/report-builder.model.js.map +0 -1
  576. package/models/select-data-label.model.d.ts +0 -9
  577. package/models/select-data-label.model.js +0 -4
  578. package/models/select-data-label.model.js.map +0 -1
  579. package/models/server-message.model.d.ts +0 -32
  580. package/models/server-message.model.js +0 -4
  581. package/models/server-message.model.js.map +0 -1
  582. package/models/slow-query-report.model.d.ts +0 -23
  583. package/models/slow-query-report.model.js +0 -4
  584. package/models/slow-query-report.model.js.map +0 -1
  585. package/models/subscription.model.d.ts +0 -31
  586. package/models/subscription.model.js +0 -4
  587. package/models/subscription.model.js.map +0 -1
  588. package/models/support-ticket.model.d.ts +0 -87
  589. package/models/support-ticket.model.js +0 -4
  590. package/models/support-ticket.model.js.map +0 -1
  591. package/models/user-group.model.d.ts +0 -20
  592. package/models/user-group.model.js +0 -4
  593. package/models/user-group.model.js.map +0 -1
  594. package/models/user-guide.model.js +0 -4
  595. package/models/user-guide.model.js.map +0 -1
  596. package/models/user.model.d.ts +0 -84
  597. package/models/user.model.js +0 -4
  598. package/models/user.model.js.map +0 -1
  599. package/private/images/ResolveIO.png +0 -0
  600. package/public_api.js +0 -127
  601. package/public_api.js.map +0 -1
  602. package/publications/ai-terminal.d.ts +0 -1
  603. package/publications/ai-terminal.js +0 -122
  604. package/publications/ai-terminal.js.map +0 -1
  605. package/publications/app-settings.d.ts +0 -2
  606. package/publications/app-settings.js +0 -28
  607. package/publications/app-settings.js.map +0 -1
  608. package/publications/app-status.d.ts +0 -2
  609. package/publications/app-status.js +0 -16
  610. package/publications/app-status.js.map +0 -1
  611. package/publications/cron-jobs.d.ts +0 -2
  612. package/publications/cron-jobs.js +0 -88
  613. package/publications/cron-jobs.js.map +0 -1
  614. package/publications/customer-notifications.d.ts +0 -2
  615. package/publications/customer-notifications.js +0 -161
  616. package/publications/customer-notifications.js.map +0 -1
  617. package/publications/files.d.ts +0 -2
  618. package/publications/files.js +0 -36
  619. package/publications/files.js.map +0 -1
  620. package/publications/flags-update.d.ts +0 -2
  621. package/publications/flags-update.js +0 -22
  622. package/publications/flags-update.js.map +0 -1
  623. package/publications/flags.d.ts +0 -2
  624. package/publications/flags.js +0 -22
  625. package/publications/flags.js.map +0 -1
  626. package/publications/logs.d.ts +0 -2
  627. package/publications/logs.js +0 -164
  628. package/publications/logs.js.map +0 -1
  629. package/publications/notifications.d.ts +0 -2
  630. package/publications/notifications.js +0 -16
  631. package/publications/notifications.js.map +0 -1
  632. package/publications/report-builder-dashboard-builders.d.ts +0 -2
  633. package/publications/report-builder-dashboard-builders.js +0 -42
  634. package/publications/report-builder-dashboard-builders.js.map +0 -1
  635. package/publications/report-builder-libraries.d.ts +0 -2
  636. package/publications/report-builder-libraries.js +0 -90
  637. package/publications/report-builder-libraries.js.map +0 -1
  638. package/publications/report-builder-reports.d.ts +0 -2
  639. package/publications/report-builder-reports.js +0 -50
  640. package/publications/report-builder-reports.js.map +0 -1
  641. package/publications/super-admin.d.ts +0 -2
  642. package/publications/super-admin.js +0 -16
  643. package/publications/super-admin.js.map +0 -1
  644. package/publications/user-groups.d.ts +0 -1
  645. package/publications/user-groups.js +0 -16
  646. package/publications/user-groups.js.map +0 -1
  647. package/publications/user-guides.d.ts +0 -1
  648. package/publications/user-guides.js +0 -16
  649. package/publications/user-guides.js.map +0 -1
  650. package/resolveio-server-app.d.ts +0 -70
  651. package/resolveio-server-app.js +0 -801
  652. package/resolveio-server-app.js.map +0 -1
  653. package/server-app.d.ts +0 -228
  654. package/server-app.js +0 -3566
  655. package/server-app.js.map +0 -1
  656. package/services/codex-client.d.ts +0 -128
  657. package/services/codex-client.js +0 -1629
  658. package/services/codex-client.js.map +0 -1
  659. package/services/openai-client.d.ts +0 -46
  660. package/services/openai-client.js +0 -318
  661. package/services/openai-client.js.map +0 -1
  662. package/types/error-report.d.ts +0 -25
  663. package/types/error-report.js +0 -4
  664. package/types/error-report.js.map +0 -1
  665. package/types/slow-query-report.d.ts +0 -27
  666. package/types/slow-query-report.js +0 -6
  667. package/types/slow-query-report.js.map +0 -1
  668. package/util/ai-qa-policy.d.ts +0 -124
  669. package/util/ai-qa-policy.js +0 -736
  670. package/util/ai-qa-policy.js.map +0 -1
  671. package/util/ai-run-evidence-adapters.d.ts +0 -109
  672. package/util/ai-run-evidence-adapters.js +0 -7234
  673. package/util/ai-run-evidence-adapters.js.map +0 -1
  674. package/util/ai-run-evidence-dashboard.d.ts +0 -88
  675. package/util/ai-run-evidence-dashboard.js +0 -343
  676. package/util/ai-run-evidence-dashboard.js.map +0 -1
  677. package/util/ai-run-evidence-eval.d.ts +0 -86
  678. package/util/ai-run-evidence-eval.js +0 -1018
  679. package/util/ai-run-evidence-eval.js.map +0 -1
  680. package/util/ai-run-evidence.d.ts +0 -244
  681. package/util/ai-run-evidence.js +0 -1096
  682. package/util/ai-run-evidence.js.map +0 -1
  683. package/util/ai-runner-artifacts.d.ts +0 -82
  684. package/util/ai-runner-artifacts.js +0 -713
  685. package/util/ai-runner-artifacts.js.map +0 -1
  686. package/util/ai-runner-manager-autopilot.d.ts +0 -210
  687. package/util/ai-runner-manager-autopilot.js +0 -642
  688. package/util/ai-runner-manager-autopilot.js.map +0 -1
  689. package/util/ai-runner-manager-policy.d.ts +0 -807
  690. package/util/ai-runner-manager-policy.js +0 -3501
  691. package/util/ai-runner-manager-policy.js.map +0 -1
  692. package/util/ai-runner-qa-auth.d.ts +0 -5
  693. package/util/ai-runner-qa-auth.js +0 -839
  694. package/util/ai-runner-qa-auth.js.map +0 -1
  695. package/util/ai-runner-qa-tools.d.ts +0 -26
  696. package/util/ai-runner-qa-tools.js +0 -3520
  697. package/util/ai-runner-qa-tools.js.map +0 -1
  698. package/util/aicoder-runner-v6.d.ts +0 -426
  699. package/util/aicoder-runner-v6.js +0 -2464
  700. package/util/aicoder-runner-v6.js.map +0 -1
  701. package/util/common.d.ts +0 -31
  702. package/util/common.js +0 -683
  703. package/util/common.js.map +0 -1
  704. package/util/customer-portal-password.d.ts +0 -13
  705. package/util/customer-portal-password.js +0 -209
  706. package/util/customer-portal-password.js.map +0 -1
  707. package/util/error-reporter.d.ts +0 -52
  708. package/util/error-reporter.js +0 -326
  709. package/util/error-reporter.js.map +0 -1
  710. package/util/error-tracking.d.ts +0 -13
  711. package/util/error-tracking.js +0 -120
  712. package/util/error-tracking.js.map +0 -1
  713. package/util/openai-usage-cost.d.ts +0 -6
  714. package/util/openai-usage-cost.js +0 -103
  715. package/util/openai-usage-cost.js.map +0 -1
  716. package/util/report-builder-unwinds.d.ts +0 -15
  717. package/util/report-builder-unwinds.js +0 -156
  718. package/util/report-builder-unwinds.js.map +0 -1
  719. package/util/runner-process-janitor.d.ts +0 -27
  720. package/util/runner-process-janitor.js +0 -208
  721. package/util/runner-process-janitor.js.map +0 -1
  722. package/util/schema-report-builder.d.ts +0 -6
  723. package/util/schema-report-builder.js +0 -481
  724. package/util/schema-report-builder.js.map +0 -1
  725. package/util/slow-query-reporter.d.ts +0 -28
  726. package/util/slow-query-reporter.js +0 -226
  727. package/util/slow-query-reporter.js.map +0 -1
  728. package/util/subscription-dependency-context.d.ts +0 -34
  729. package/util/subscription-dependency-context.js +0 -1283
  730. package/util/subscription-dependency-context.js.map +0 -1
  731. package/util/support-runner-v5.d.ts +0 -1426
  732. package/util/support-runner-v5.js +0 -7631
  733. package/util/support-runner-v5.js.map +0 -1
  734. package/util/tokenizer.d.ts +0 -5
  735. package/util/tokenizer.js +0 -41
  736. package/util/tokenizer.js.map +0 -1
  737. package/workers/codex-runner.worker.d.ts +0 -1
  738. package/workers/codex-runner.worker.js +0 -192
  739. package/workers/codex-runner.worker.js.map +0 -1
  740. /package/{private → src/private}/email-templates/enrollment.html +0 -0
  741. /package/{private → src/private}/email-templates/forgot-password.html +0 -0
  742. /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{private → src/private}/email-templates/support-ticket.html +0 -0
  745. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/methods/mongo-explorer.ts"],"names":[],"mappings":"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","file":"mongo-explorer.js","sourcesContent":["import SimpleSchema from 'simpl-schema';\nimport { Db } from 'mongodb';\nimport { Users } from '../collections/user.collection';\nimport { MethodManager } from '../managers/method.manager';\nimport { recordOpenAIUsage } from '../managers/openai-usage-ledger.manager';\nimport { ResolveIOServer } from '../resolveio-server-app';\nimport { CodexClient } from '../services/codex-client';\nimport { objectIdHexString, round } from '../util/common';\nimport { countChatTokens, countTokens } from '../util/tokenizer';\n\nconst DEFAULT_LIMIT = 100;\nconst MAX_LIMIT = 2000;\nconst ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\nconst MAX_REVIEW_STRING_LENGTH = 500;\nconst MAX_REVIEW_ARRAY_ITEMS = 10;\nconst MAX_REVIEW_OBJECT_KEYS = 40;\nconst MAX_REVIEW_DEPTH = 4;\nconst MAX_REVIEW_LIST_ITEMS = 6;\nconst MAX_REVIEW_CHANGED_FIELDS = 60;\nconst DEFAULT_RISK_REVIEW_TIMEOUT_MS = 30000;\nconst DEFAULT_RISK_REVIEW_MAX_TOKENS = 700;\nconst SENSITIVE_REVIEW_FIELD_REGEX = /(password|secret|token|api[_-]?key|salt|hash|email|phone|address|ssn|services|roles)/i;\nconst DEFAULT_AI_SUGGEST_TIMEOUT_MS = 60000;\nconst DEFAULT_AI_SUGGEST_MAX_TOKENS = 1000;\nconst MAX_AI_SUGGEST_FIELDS = 700;\nconst MAX_AI_SUGGEST_COLLECTIONS = 800;\nconst MAX_AI_SUGGEST_RESULTS = 500;\nconst RESTRICTED_AGGREGATE_STAGES = new Set(['$out', '$merge']);\n\ntype ExplorerFindOptions = {\n\tprojection?: Record<string, number>;\n\tsort?: Record<string, any>;\n\tlimit?: number;\n\tskip?: number;\n\tincludeTotal?: boolean;\n};\n\ntype ExplorerMode = 'resolveio' | 'aicoder';\n\ntype MongoExplorerDeleteImpactCollection = {\n\tcollection: string;\n\treferences: number;\n\tsample_ids: string[];\n};\n\ntype MongoExplorerDeleteImpact = {\n\thas_references: boolean;\n\tunresolved: boolean;\n\tcollections: MongoExplorerDeleteImpactCollection[];\n};\n\ntype MongoExplorerRiskOperation = 'insert' | 'replace' | 'delete' | 'command';\ntype MongoExplorerRiskLevel = 'low' | 'medium' | 'high' | 'critical';\ntype MongoExplorerRiskReviewStatus = 'ok' | 'fallback' | 'disabled';\n\ntype MongoExplorerRiskReview = {\n\toperation: MongoExplorerRiskOperation;\n\trisk_level: MongoExplorerRiskLevel;\n\tshould_block: boolean;\n\tsummary: string;\n\treasons: string[];\n\tsuggested_checks: string[];\n\tconfidence: number;\n\tmodel: string;\n\trequest_id: string;\n\treview_status: MongoExplorerRiskReviewStatus;\n\treviewed_at: string;\n};\n\ntype MongoExplorerRiskReviewInput = {\n\tdatabase: string;\n\tcollection: string;\n\toperation: MongoExplorerRiskOperation;\n\tmode: ExplorerMode;\n\tbefore_document?: any;\n\tafter_document?: any;\n\tdelete_impact?: MongoExplorerDeleteImpact;\n};\n\ntype MongoExplorerAiAction = 'find' | 'aggregate';\n\ntype MongoExplorerAiPayload = {\n\tprompt?: string;\n\tdatabase?: string;\n\tselected_collection?: string;\n\tavailable_collections?: Array<{ name?: string; collection?: string; type?: string }>;\n\tavailable_fields?: Array<{ path?: string; label?: string; type?: string; collection?: string }>;\n\tpermission_view?: string;\n\tmode?: string;\n\tid_client?: string;\n\tmax_results?: number;\n};\n\ntype MongoExplorerAiField = {\n\tpath: string;\n\tlabel: string;\n\ttype: string;\n\tcollection: string;\n};\n\ntype MongoExplorerAiPlan = {\n\taction: MongoExplorerAiAction;\n\tcollection: string;\n\tquery?: Record<string, any>;\n\tpipeline?: any[];\n\toptions?: Record<string, any>;\n\tdocuments?: any[];\n\ttotal?: number | null;\n\tnotes?: string;\n};\n\nfunction parseMongoExplorerWriteUsers(): string[] {\n\tconst raw = typeof process.env.MONGO_EXPLORER_WRITE_USERS === 'string' ? process.env.MONGO_EXPLORER_WRITE_USERS.trim() : '';\n\tif (!raw) {\n\t\treturn [];\n\t}\n\n\ttry {\n\t\tconst parsed = JSON.parse(raw);\n\t\tif (Array.isArray(parsed)) {\n\t\t\treturn parsed.map(value => String(value)).filter(value => value.trim().length);\n\t\t}\n\t\tif (typeof parsed === 'string') {\n\t\t\treturn [parsed.trim()].filter(Boolean);\n\t\t}\n\t}\n\tcatch {\n\t\t// Fall back to comma-separated list.\n\t}\n\n\treturn raw\n\t\t.split(',')\n\t\t.map(value => value.trim())\n\t\t.filter(Boolean);\n}\n\nfunction normalizeExplorerMode(mode?: string): ExplorerMode {\n\tconst normalizedMode = String(mode || '').trim().toLowerCase();\n\tif (normalizedMode === 'resolveio') {\n\t\treturn 'resolveio';\n\t}\n\treturn 'aicoder';\n}\n\nfunction allowUnschemaizedWrites(): boolean {\n\treturn process.env.MONGO_EXPLORER_ALLOW_UNSCHEMATIZED_WRITE === 'true';\n}\n\nfunction resolveDatabaseName(database?: string): string {\n\tconst defaultDb = ResolveIOServer.getServerConfig()?.DATABASE || '';\n\tconst dbName = typeof database === 'string' && database.trim().length ? database.trim() : defaultDb;\n\n\tif (!dbName) {\n\t\tthrow new Error('Mongo Explorer: Database is required');\n\t}\n\n\tconst allowedDatabases = ResolveIOServer.getMongoManager()?.getWatchedDatabases() || [];\n\tif (allowedDatabases.length && !allowedDatabases.includes(dbName)) {\n\t\tthrow new Error('Mongo Explorer: Database access denied');\n\t}\n\n\treturn dbName;\n}\n\nfunction resolveDatabase(database?: string): Db {\n\tconst dbName = resolveDatabaseName(database);\n\treturn ResolveIOServer.getMongoConnection().db(dbName);\n}\n\nfunction resolveCollectionHandle(database: string, collection: string) {\n\tconst mainDb = ResolveIOServer.getServerConfig()?.DATABASE || '';\n\tconst isMainDb = database === mainDb;\n\tconst managerCollection = isMainDb ? ResolveIOServer.getMongoManager()?.collection(collection) : null;\n\tconst db = ResolveIOServer.getMongoConnection().db(database);\n\n\treturn {\n\t\tmanagerCollection,\n\t\tdbCollection: db.collection(collection)\n\t};\n}\n\nfunction getSchemaDefinition(collectionRef: any): Record<string, any> {\n\tif (!collectionRef || !collectionRef.simplschema || typeof collectionRef.simplschema.schema !== 'function') {\n\t\treturn {};\n\t}\n\n\tconst schema = collectionRef.simplschema.schema();\n\treturn schema && typeof schema === 'object' ? schema : {};\n}\n\nfunction getSchemaTypeName(definition: any): string {\n\tconst typeDefs = definition?.type?.definitions;\n\tif (!Array.isArray(typeDefs) || !typeDefs.length) {\n\t\treturn 'Any';\n\t}\n\n\tconst firstType = typeDefs[0]?.type;\n\tif (!firstType) {\n\t\treturn 'Any';\n\t}\n\n\tif (firstType === String) {\n\t\treturn 'String';\n\t}\n\tif (firstType === Number) {\n\t\treturn 'Number';\n\t}\n\tif (firstType === Boolean) {\n\t\treturn 'Boolean';\n\t}\n\tif (firstType === Date) {\n\t\treturn 'Date';\n\t}\n\tif (firstType === Object) {\n\t\treturn 'Object';\n\t}\n\tif (firstType === Array) {\n\t\treturn 'Array';\n\t}\n\n\tconst typeName = firstType.name || String(firstType);\n\tif (typeName === 'Integer') {\n\t\treturn 'Number';\n\t}\n\treturn typeName;\n}\n\nfunction toLabel(path: string): string {\n\tconst last = path.split('.').pop() || path;\n\treturn last\n\t\t.replace(/\\$/g, '')\n\t\t.replace(/_/g, ' ')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n}\n\nfunction isProtectedFieldSegment(segment: string): boolean {\n\tif (!segment) {\n\t\treturn false;\n\t}\n\n\tif (segment === '_id') {\n\t\treturn true;\n\t}\n\n\tconst normalizedSegment = segment.replace(/\\[\\d+\\]/g, '');\n\treturn normalizedSegment.toLowerCase().startsWith('id_');\n}\n\nfunction isProtectedFieldPath(path: string): boolean {\n\tconst segments = String(path || '').split('.').filter(Boolean);\n\treturn segments.some(segment => isProtectedFieldSegment(segment));\n}\n\nfunction safeStringify(value: unknown): string {\n\ttry {\n\t\treturn JSON.stringify(value);\n\t}\n\tcatch {\n\t\treturn String(value);\n\t}\n}\n\nfunction collectProtectedFieldPaths(value: any, prefix = '', out: Record<string, any> = {}): Record<string, any> {\n\tif (Array.isArray(value)) {\n\t\tvalue.forEach((item, index) => {\n\t\t\tconst nextPrefix = prefix ? `${prefix}[${index}]` : `[${index}]`;\n\t\t\tcollectProtectedFieldPaths(item, nextPrefix, out);\n\t\t});\n\t\treturn out;\n\t}\n\n\tif (!value || typeof value !== 'object') {\n\t\treturn out;\n\t}\n\n\tObject.keys(value).forEach((key) => {\n\t\tconst nextPrefix = prefix ? `${prefix}.${key}` : key;\n\t\tif (isProtectedFieldSegment(key)) {\n\t\t\tout[nextPrefix] = value[key];\n\t\t}\n\t\tcollectProtectedFieldPaths(value[key], nextPrefix, out);\n\t});\n\n\treturn out;\n}\n\nfunction ensureProtectedFieldsUnchanged(originalDoc: any, updatedDoc: any) {\n\tconst originalProtected = collectProtectedFieldPaths(originalDoc || {});\n\tconst updatedProtected = collectProtectedFieldPaths(updatedDoc || {});\n\tconst violations: string[] = [];\n\n\tObject.keys(originalProtected).forEach((path) => {\n\t\tif (!Object.prototype.hasOwnProperty.call(updatedProtected, path)) {\n\t\t\tviolations.push(path);\n\t\t\treturn;\n\t\t}\n\n\t\tconst originalValue = safeStringify(originalProtected[path]);\n\t\tconst updatedValue = safeStringify(updatedProtected[path]);\n\t\tif (originalValue !== updatedValue) {\n\t\t\tviolations.push(path);\n\t\t}\n\t});\n\n\tObject.keys(updatedProtected).forEach((path) => {\n\t\tif (!Object.prototype.hasOwnProperty.call(originalProtected, path)) {\n\t\t\tviolations.push(path);\n\t\t}\n\t});\n\n\tif (violations.length) {\n\t\tconst preview = violations.slice(0, 4).join(', ');\n\t\tthrow new Error(`Mongo Explorer: Protected fields cannot be edited (${preview}${violations.length > 4 ? ', ...' : ''})`);\n\t}\n}\n\nfunction coerceDateValue(value: unknown): unknown {\n\tif (value instanceof Date) {\n\t\treturn value;\n\t}\n\n\tif (typeof value !== 'string' || !ISO_DATE_REGEX.test(value)) {\n\t\treturn value;\n\t}\n\n\tconst parsed = new Date(value);\n\treturn Number.isNaN(parsed.getTime()) ? value : parsed;\n}\n\nfunction coerceDatePath(target: any, segments: string[]) {\n\tif (!target || !segments.length) {\n\t\treturn;\n\t}\n\n\tconst [segment, ...rest] = segments;\n\n\tif (segment === '$') {\n\t\tif (Array.isArray(target)) {\n\t\t\ttarget.forEach(item => coerceDatePath(item, rest));\n\t\t}\n\t\treturn;\n\t}\n\n\tif (!Object.prototype.hasOwnProperty.call(target, segment)) {\n\t\treturn;\n\t}\n\n\tif (rest.length === 0) {\n\t\tconst updatedValue = coerceDateValue(target[segment]);\n\t\tif (updatedValue !== target[segment]) {\n\t\t\ttarget[segment] = updatedValue;\n\t\t}\n\t\treturn;\n\t}\n\n\tcoerceDatePath(target[segment], rest);\n}\n\nfunction coerceDateFields(collectionRef: any, doc: any) {\n\tif (!collectionRef || !collectionRef.simplschema || !doc) {\n\t\treturn;\n\t}\n\n\tconst schema = getSchemaDefinition(collectionRef);\n\tObject.keys(schema).forEach((schemaKey) => {\n\t\tconst definition = schema[schemaKey];\n\t\tconst typeDefs = definition?.type?.definitions;\n\t\tif (!Array.isArray(typeDefs) || !typeDefs.some(typeDef => typeDef.type === Date)) {\n\t\t\treturn;\n\t\t}\n\n\t\tcoerceDatePath(doc, schemaKey.split('.'));\n\t});\n}\n\nfunction normalizeFindOptions(options?: ExplorerFindOptions) {\n\tconst normalized = options || {};\n\tconst projection = normalized.projection && Object.keys(normalized.projection).length ? normalized.projection : undefined;\n\tconst sort = normalized.sort && Object.keys(normalized.sort).length ? normalized.sort : undefined;\n\tconst limit = typeof normalized.limit === 'number' ? Math.min(Math.max(normalized.limit, 0), MAX_LIMIT) : DEFAULT_LIMIT;\n\tconst skip = typeof normalized.skip === 'number' ? Math.max(normalized.skip, 0) : 0;\n\n\treturn {\n\t\tfindOptions: {\n\t\t\tprojection,\n\t\t\tsort,\n\t\t\tlimit,\n\t\t\tskip\n\t\t},\n\t\tincludeTotal: normalized.includeTotal === true\n\t};\n}\n\nfunction userHasView(user, view: string): boolean {\n\tif (!user || !view) {\n\t\treturn false;\n\t}\n\n\tif (user.roles?.super_admin) {\n\t\treturn true;\n\t}\n\n\tconst groups = Array.isArray(user.roles?.groups) ? user.roles.groups : [];\n\tconst miscs = Array.isArray(user.roles?.miscs) ? user.roles.miscs : [];\n\n\tif (groups.some(group => Array.isArray(group.views) && group.views.some(v => v.startsWith(view)))) {\n\t\treturn true;\n\t}\n\n\tif (miscs.some(v => v.startsWith(view))) {\n\t\treturn true;\n\t}\n\n\tif (groups.some(group => group.name === view)) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nasync function ensureWriteAccess(context: any, permissionView?: string, mode?: string) {\n\tconst idUser = context?.id_user;\n\tif (!idUser) {\n\t\tthrow new Error('Mongo Explorer: Unauthorized');\n\t}\n\n\tconst user = await Users.findOne({_id: idUser});\n\tif (!user) {\n\t\tthrow new Error('Mongo Explorer: Unauthorized');\n\t}\n\n\tif (user.readonly) {\n\t\tthrow new Error('Mongo Explorer: Readonly user');\n\t}\n\n\tconst normalizedMode = normalizeExplorerMode(mode);\n\tif (normalizedMode === 'resolveio') {\n\t\tthrow new Error('Mongo Explorer: ResolveIO mode is read only');\n\t}\n\n\tconst allowedUsers = parseMongoExplorerWriteUsers();\n\tif (allowedUsers.length) {\n\t\tconst username = String(user.username || '').trim().toLowerCase();\n\t\tconst email = String(user.email || '').trim().toLowerCase();\n\t\tconst id = String(user._id || '').trim();\n\t\tconst isAllowed = allowedUsers.some(entry => {\n\t\t\tconst normalized = String(entry || '').trim().toLowerCase();\n\t\t\tif (!normalized) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn normalized === username || (email && normalized === email) || (id && entry === id);\n\t\t});\n\n\t\tif (!isAllowed) {\n\t\t\tthrow new Error('Mongo Explorer: Write access denied');\n\t\t}\n\t}\n\n\tif (user.roles?.super_admin) {\n\t\treturn;\n\t}\n\n\tconst normalizedPermission = typeof permissionView === 'string' ? permissionView.trim() : '';\n\n\tif (!normalizedPermission) {\n\t\treturn;\n\t}\n\n\tif (userHasView(user, normalizedPermission)) {\n\t\treturn;\n\t}\n\n\tthrow new Error('Mongo Explorer: Write access denied');\n}\n\nfunction buildDeleteSafetyCollections(collectionRef: any): string[] {\n\tconst schema = getSchemaDefinition(collectionRef);\n\treturn Object.keys(schema).filter(path => isProtectedFieldPath(path) && path !== '_id');\n}\n\nasync function buildDeleteImpact(database: string, sourceCollection: string, docId: string): Promise<MongoExplorerDeleteImpact> {\n\tconst mainDb = ResolveIOServer.getServerConfig()?.DATABASE || '';\n\tif (database !== mainDb) {\n\t\treturn {\n\t\t\thas_references: false,\n\t\t\tunresolved: true,\n\t\t\tcollections: []\n\t\t};\n\t}\n\n\tconst mongoManager = ResolveIOServer.getMongoManager();\n\tconst collections = mongoManager?.collections ? mongoManager.collections() : [];\n\tconst impacts: MongoExplorerDeleteImpactCollection[] = [];\n\tlet unresolved = false;\n\n\tfor (const collectionRef of collections) {\n\t\tconst collectionName = collectionRef?.collectionName;\n\t\tif (!collectionName) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (collectionName === `${sourceCollection}.versions`) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst referencePaths = buildDeleteSafetyCollections(collectionRef);\n\t\tif (!referencePaths.length) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst query = {\n\t\t\t$or: referencePaths.map(path => ({ [path]: docId }))\n\t\t};\n\n\t\ttry {\n\t\t\tconst docs = await collectionRef.find(query, { projection: { _id: 1 }, limit: 3 });\n\t\t\tif (Array.isArray(docs) && docs.length) {\n\t\t\t\timpacts.push({\n\t\t\t\t\tcollection: collectionName,\n\t\t\t\t\treferences: docs.length,\n\t\t\t\t\tsample_ids: docs.map(doc => String(doc?._id || '')).filter(Boolean)\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tcatch {\n\t\t\tunresolved = true;\n\t\t}\n\t}\n\n\treturn {\n\t\thas_references: impacts.length > 0,\n\t\tunresolved,\n\t\tcollections: impacts.sort((a, b) => a.collection.localeCompare(b.collection))\n\t};\n}\n\nfunction normalizeOptionalString(value: any): string | undefined {\n\tif (typeof value === 'string') {\n\t\tconst trimmed = value.trim();\n\t\treturn trimmed.length ? trimmed : undefined;\n\t}\n\tif (value === null || value === undefined) {\n\t\treturn undefined;\n\t}\n\tconst normalized = String(value).trim();\n\treturn normalized.length ? normalized : undefined;\n}\n\nfunction normalizePositiveNumber(value: any, fallback: number): number {\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || parsed <= 0) {\n\t\treturn fallback;\n\t}\n\treturn parsed;\n}\n\nfunction parseBooleanValue(value: any, fallback: boolean): boolean {\n\tif (typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\tconst normalized = String(value || '').trim().toLowerCase();\n\tif (!normalized.length) {\n\t\treturn fallback;\n\t}\n\tif (['1', 'true', 'yes', 'on'].includes(normalized)) {\n\t\treturn true;\n\t}\n\tif (['0', 'false', 'no', 'off'].includes(normalized)) {\n\t\treturn false;\n\t}\n\treturn fallback;\n}\n\nfunction truncateForRiskReview(value: string, maxLength = MAX_REVIEW_STRING_LENGTH): string {\n\tconst normalized = String(value || '');\n\tif (normalized.length <= maxLength) {\n\t\treturn normalized;\n\t}\n\tconst diff = normalized.length - maxLength;\n\treturn `${normalized.slice(0, maxLength)}...[+${diff} chars]`;\n}\n\nfunction sanitizeForRiskReview(value: any, depth = 0): any {\n\tif (value === null || value === undefined) {\n\t\treturn value;\n\t}\n\n\tif (depth > MAX_REVIEW_DEPTH) {\n\t\treturn '[Truncated depth]';\n\t}\n\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\n\tif (typeof value === 'string') {\n\t\treturn truncateForRiskReview(value);\n\t}\n\n\tif (typeof value === 'number' || typeof value === 'boolean') {\n\t\treturn value;\n\t}\n\n\tif (Array.isArray(value)) {\n\t\tconst sanitized = value\n\t\t\t.slice(0, MAX_REVIEW_ARRAY_ITEMS)\n\t\t\t.map(item => sanitizeForRiskReview(item, depth + 1));\n\t\tif (value.length > MAX_REVIEW_ARRAY_ITEMS) {\n\t\t\tsanitized.push(`[${value.length - MAX_REVIEW_ARRAY_ITEMS} more item(s)]`);\n\t\t}\n\t\treturn sanitized;\n\t}\n\n\tif (typeof value === 'object') {\n\t\tconst output: Record<string, any> = {};\n\t\tconst keys = Object.keys(value);\n\t\tconst limitedKeys = keys.slice(0, MAX_REVIEW_OBJECT_KEYS);\n\t\tlimitedKeys.forEach((key) => {\n\t\t\tif (SENSITIVE_REVIEW_FIELD_REGEX.test(key)) {\n\t\t\t\toutput[key] = '[REDACTED]';\n\t\t\t\treturn;\n\t\t\t}\n\t\t\toutput[key] = sanitizeForRiskReview(value[key], depth + 1);\n\t\t});\n\t\tif (keys.length > MAX_REVIEW_OBJECT_KEYS) {\n\t\t\toutput.__truncated_keys = keys.length - MAX_REVIEW_OBJECT_KEYS;\n\t\t}\n\t\treturn output;\n\t}\n\n\treturn truncateForRiskReview(String(value));\n}\n\nfunction pickChangedFields(beforeDocument: any, afterDocument: any): string[] {\n\tif (!beforeDocument || typeof beforeDocument !== 'object' || !afterDocument || typeof afterDocument !== 'object') {\n\t\treturn [];\n\t}\n\n\tconst changed: string[] = [];\n\tconst fieldNames = new Set<string>([\n\t\t...Object.keys(beforeDocument),\n\t\t...Object.keys(afterDocument)\n\t]);\n\n\tfor (const field of fieldNames) {\n\t\tif (changed.length >= MAX_REVIEW_CHANGED_FIELDS) {\n\t\t\tbreak;\n\t\t}\n\t\tconst beforeValue = safeStringify(beforeDocument[field]);\n\t\tconst afterValue = safeStringify(afterDocument[field]);\n\t\tif (beforeValue !== afterValue) {\n\t\t\tchanged.push(field);\n\t\t}\n\t}\n\n\treturn changed;\n}\n\nfunction normalizeRiskLevel(value: any): MongoExplorerRiskLevel {\n\tconst normalized = String(value || '').trim().toLowerCase();\n\tif (normalized === 'low') {\n\t\treturn 'low';\n\t}\n\tif (normalized === 'medium') {\n\t\treturn 'medium';\n\t}\n\tif (normalized === 'high') {\n\t\treturn 'high';\n\t}\n\tif (normalized === 'critical') {\n\t\treturn 'critical';\n\t}\n\treturn 'high';\n}\n\nfunction normalizeRiskList(value: any): string[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value\n\t\t.map(item => normalizeOptionalString(item))\n\t\t.filter((item): item is string => !!item)\n\t\t.slice(0, MAX_REVIEW_LIST_ITEMS)\n\t\t.map(item => truncateForRiskReview(item, 220));\n}\n\nfunction buildFallbackRiskReview(operation: MongoExplorerRiskOperation, summary: string, model = ''): MongoExplorerRiskReview {\n\treturn {\n\t\toperation,\n\t\trisk_level: 'high',\n\t\tshould_block: true,\n\t\tsummary: truncateForRiskReview(summary, 220),\n\t\treasons: [\n\t\t\t'AI review could not produce a reliable result.',\n\t\t\t'Proceed only with explicit approval and manual dependency checks.'\n\t\t],\n\t\tsuggested_checks: [\n\t\t\t'Confirm related records and id_* references before writing.',\n\t\t\t'Validate that schema-required fields and date values remain valid.'\n\t\t],\n\t\tconfidence: 0,\n\t\tmodel: model || '',\n\t\trequest_id: '',\n\t\treview_status: 'fallback',\n\t\treviewed_at: new Date().toISOString()\n\t};\n}\n\nfunction buildDisabledRiskReview(operation: MongoExplorerRiskOperation): MongoExplorerRiskReview {\n\treturn {\n\t\toperation,\n\t\trisk_level: 'low',\n\t\tshould_block: false,\n\t\tsummary: 'AI risk review is disabled by configuration.',\n\t\treasons: [],\n\t\tsuggested_checks: [],\n\t\tconfidence: 1,\n\t\tmodel: '',\n\t\trequest_id: '',\n\t\treview_status: 'disabled',\n\t\treviewed_at: new Date().toISOString()\n\t};\n}\n\nfunction parseRiskReviewPayload(content: string): any {\n\tconst normalized = String(content || '').trim();\n\tif (!normalized.length) {\n\t\treturn {};\n\t}\n\n\ttry {\n\t\treturn JSON.parse(normalized);\n\t}\n\tcatch {\n\t\t// Fall through and try to parse a JSON object embedded in plain text.\n\t}\n\n\tconst start = normalized.indexOf('{');\n\tconst end = normalized.lastIndexOf('}');\n\tif (start !== -1 && end > start) {\n\t\tconst candidate = normalized.slice(start, end + 1);\n\t\ttry {\n\t\t\treturn JSON.parse(candidate);\n\t\t}\n\t\tcatch {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\treturn {};\n}\n\nfunction normalizeRiskReview(\n\toperation: MongoExplorerRiskOperation,\n\tpayload: any,\n\tmodel: string,\n\trequestId: string\n): MongoExplorerRiskReview {\n\tconst riskLevel = normalizeRiskLevel(payload?.risk_level);\n\tconst normalizedConfidence = Number(payload?.confidence);\n\tconst confidence = Number.isFinite(normalizedConfidence)\n\t\t? Math.max(0, Math.min(1, normalizedConfidence))\n\t\t: 0.6;\n\tconst summary = normalizeOptionalString(payload?.summary)\n\t\t|| `AI review marked this operation as ${riskLevel} risk.`;\n\tconst reasons = normalizeRiskList(payload?.reasons);\n\tconst suggestedChecks = normalizeRiskList(payload?.suggested_checks);\n\tconst shouldBlock = payload?.should_block === true || riskLevel === 'critical';\n\n\treturn {\n\t\toperation,\n\t\trisk_level: riskLevel,\n\t\tshould_block: !!shouldBlock,\n\t\tsummary: truncateForRiskReview(summary, 220),\n\t\treasons,\n\t\tsuggested_checks: suggestedChecks,\n\t\tconfidence,\n\t\tmodel: model || '',\n\t\trequest_id: requestId || '',\n\t\treview_status: 'ok',\n\t\treviewed_at: new Date().toISOString()\n\t};\n}\n\nfunction resolveRiskReviewSettings() {\n\tconst serverConfig = ResolveIOServer.getServerConfig() || {};\n\n\tconst enabled = parseBooleanValue(\n\t\tserverConfig['MONGO_EXPLORER_ENABLE_AI_RISK_REVIEW'] ?? process.env.MONGO_EXPLORER_ENABLE_AI_RISK_REVIEW,\n\t\ttrue\n\t);\n\n\tconst model = normalizeOptionalString(\n\t\tserverConfig['MONGO_EXPLORER_RISK_REVIEW_MODEL']\n\t\t|| process.env.MONGO_EXPLORER_RISK_REVIEW_MODEL\n\t\t|| serverConfig['AI_ASSISTANT_CODEX_MODEL']\n\t\t|| process.env.AI_ASSISTANT_CODEX_MODEL\n\t\t|| serverConfig['AI_DASHBOARD_CODEX_MODEL']\n\t\t|| process.env.AI_DASHBOARD_CODEX_MODEL\n\t);\n\n\tconst fallbackModel = normalizeOptionalString(\n\t\tserverConfig['MONGO_EXPLORER_RISK_REVIEW_FALLBACK_MODEL']\n\t\t|| process.env.MONGO_EXPLORER_RISK_REVIEW_FALLBACK_MODEL\n\t\t|| serverConfig['AI_ASSISTANT_CODEX_FALLBACK_MODEL']\n\t\t|| process.env.AI_ASSISTANT_CODEX_FALLBACK_MODEL\n\t\t|| serverConfig['AI_DASHBOARD_CODEX_FALLBACK_MODEL']\n\t\t|| process.env.AI_DASHBOARD_CODEX_FALLBACK_MODEL\n\t);\n\n\tconst timeoutMs = normalizePositiveNumber(\n\t\tserverConfig['MONGO_EXPLORER_RISK_REVIEW_TIMEOUT_MS'] ?? process.env.MONGO_EXPLORER_RISK_REVIEW_TIMEOUT_MS,\n\t\tDEFAULT_RISK_REVIEW_TIMEOUT_MS\n\t);\n\n\tconst maxTokens = normalizePositiveNumber(\n\t\tserverConfig['MONGO_EXPLORER_RISK_REVIEW_MAX_TOKENS'] ?? process.env.MONGO_EXPLORER_RISK_REVIEW_MAX_TOKENS,\n\t\tDEFAULT_RISK_REVIEW_MAX_TOKENS\n\t);\n\n\tconst maxRetries = normalizePositiveNumber(\n\t\tserverConfig['OPENAI_MAX_RETRIES'] ?? process.env.OPENAI_MAX_RETRIES,\n\t\t1\n\t);\n\n\tconst retryDelayMs = normalizePositiveNumber(\n\t\tserverConfig['OPENAI_RETRY_DELAY_MS'] ?? process.env.OPENAI_RETRY_DELAY_MS,\n\t\t750\n\t);\n\n\tconst apiKey = normalizeOptionalString(serverConfig['OPENAI_API_KEY'] || process.env.OPENAI_API_KEY) || '';\n\tconst baseUrl = normalizeOptionalString(serverConfig['OPENAI_BASE_URL'] || process.env.OPENAI_BASE_URL);\n\n\treturn {\n\t\tenabled,\n\t\tapiKey,\n\t\tbaseUrl,\n\t\tmodel,\n\t\tfallbackModel,\n\t\ttimeoutMs,\n\t\tmaxTokens,\n\t\tmaxRetries,\n\t\tretryDelayMs\n\t};\n}\n\nfunction buildCodexPrompt(systemPrompt: string, userPrompt: string): string {\n\treturn `System:\\n${systemPrompt}\\n\\nUser:\\n${userPrompt}`.trim();\n}\n\nfunction buildCodexClient(settings: {\n\tapiKey: string;\n\tbaseUrl?: string;\n\tmodel?: string;\n\tfallbackModel?: string;\n\tmaxRetries?: number;\n\tretryDelayMs?: number;\n}): CodexClient {\n\tconst fallbackModels: string[] = [];\n\tconst fallback = normalizeOptionalString(settings.fallbackModel);\n\tif (fallback && fallback !== settings.model) {\n\t\tfallbackModels.push(fallback);\n\t}\n\treturn new CodexClient({\n\t\tapiKey: settings.apiKey,\n\t\tbaseUrl: settings.baseUrl,\n\t\t...(settings.model ? { model: settings.model } : {}),\n\t\t...(fallbackModels.length ? { fallbackModel: fallbackModels[0], fallbackModels } : {}),\n\t\tmaxRetries: round(settings.maxRetries || 0),\n\t\tretryDelayMs: round(settings.retryDelayMs || 0)\n\t});\n}\n\nfunction estimateCodexUsage(messages: Array<{ role: string; content: string }>, responseText: string, model: string) {\n\tconst inputTokens = countChatTokens(messages, model);\n\tconst outputTokens = countTokens(responseText || '', model);\n\treturn {\n\t\tinputTokens,\n\t\toutputTokens,\n\t\ttotalTokens: inputTokens + outputTokens\n\t};\n}\n\nfunction buildRiskReviewPrompt(input: MongoExplorerRiskReviewInput): string {\n\tconst payload = {\n\t\tdatabase: input.database,\n\t\tcollection: input.collection,\n\t\toperation: input.operation,\n\t\tmode: input.mode,\n\t\tchanged_fields: pickChangedFields(input.before_document, input.after_document),\n\t\tdelete_impact: sanitizeForRiskReview(input.delete_impact || null),\n\t\tbefore_document: sanitizeForRiskReview(input.before_document || null),\n\t\tafter_document: sanitizeForRiskReview(input.after_document || null)\n\t};\n\n\treturn [\n\t\t'Review this MongoDB write operation for runtime and data integrity risk.',\n\t\t'Focus on foreign-key style id_* dependencies, schema compatibility, destructive impact, and financial/operational record safety.',\n\t\t'Return JSON only.',\n\t\tJSON.stringify(payload, null, 2)\n\t].join('\\n');\n}\n\nasync function reviewOperationRisk(input: MongoExplorerRiskReviewInput): Promise<MongoExplorerRiskReview> {\n\tconst settings = resolveRiskReviewSettings();\n\tif (!settings.enabled) {\n\t\treturn buildDisabledRiskReview(input.operation);\n\t}\n\n\tif (!settings.apiKey) {\n\t\treturn buildFallbackRiskReview(input.operation, 'AI risk review unavailable: AI API key is missing.');\n\t}\n\n\tconst client = buildCodexClient(settings);\n\n\tconst systemPrompt = [\n\t\t'You are a MongoDB operation safety reviewer for a production SaaS application.',\n\t\t'Respond with a single JSON object only.',\n\t\t'Required keys:',\n\t\t'risk_level (\"low\" | \"medium\" | \"high\" | \"critical\"),',\n\t\t'should_block (boolean),',\n\t\t'summary (string),',\n\t\t'reasons (string[]),',\n\t\t'suggested_checks (string[]),',\n\t\t'confidence (number between 0 and 1).',\n\t\t'Keep summary concise (<= 220 chars).'\n\t].join(' ');\n\tconst userPrompt = buildRiskReviewPrompt(input);\n\tconst prompt = buildCodexPrompt(systemPrompt, userPrompt);\n\n\ttry {\n\t\tconst responseText = await client.run(prompt, {\n\t\t\ttimeoutMs: round(settings.timeoutMs),\n\t\t\tthreadOptions: {\n\t\t\t\tmodel: settings.model,\n\t\t\t\tsandboxMode: 'read-only',\n\t\t\t\tskipGitRepoCheck: true,\n\t\t\t\tnetworkAccessEnabled: false,\n\t\t\t\twebSearchMode: 'disabled',\n\t\t\t\twebSearchEnabled: false,\n\t\t\t\tapprovalPolicy: 'never'\n\t\t\t}\n\t\t});\n\n\t\tconst payload = parseRiskReviewPayload(responseText);\n\t\treturn normalizeRiskReview(input.operation, payload, settings.model, '');\n\t}\n\tcatch (err) {\n\t\tconst detail = err?.message ? String(err.message) : 'Unknown AI review error';\n\t\treturn buildFallbackRiskReview(input.operation, `AI risk review failed: ${truncateForRiskReview(detail, 160)}`, settings.model);\n\t}\n}\n\nfunction normalizeAiAction(value: any): MongoExplorerAiAction {\n\tconst normalized = normalizeOptionalString(value) || '';\n\treturn normalized.toLowerCase() === 'aggregate' ? 'aggregate' : 'find';\n}\n\nfunction sanitizeAiCollections(raw: any[]): string[] {\n\tconst values: string[] = [];\n\tconst seen = new Set<string>();\n\t(raw || []).forEach((entry) => {\n\t\tconst normalized = normalizeOptionalString((entry as any)?.collection || (entry as any)?.name || entry);\n\t\tif (!normalized) {\n\t\t\treturn;\n\t\t}\n\t\tconst key = normalized.toLowerCase();\n\t\tif (seen.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(key);\n\t\tvalues.push(normalized);\n\t});\n\treturn values.slice(0, MAX_AI_SUGGEST_COLLECTIONS);\n}\n\nfunction sanitizeAiFields(raw: any[], fallbackCollection: string): MongoExplorerAiField[] {\n\tconst fields: MongoExplorerAiField[] = [];\n\tconst seen = new Set<string>();\n\t(raw || []).forEach((entry) => {\n\t\tconst path = normalizeOptionalString(entry?.path || entry?.field_path || entry?.fieldPath);\n\t\tif (!path) {\n\t\t\treturn;\n\t\t}\n\t\tconst collection = normalizeOptionalString(\n\t\t\tentry?.collection || entry?.collection_name || entry?.collectionName\n\t\t) || fallbackCollection || '';\n\t\tconst key = `${collection.toLowerCase()}::${path.toLowerCase()}`;\n\t\tif (seen.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(key);\n\t\tfields.push({\n\t\t\tpath,\n\t\t\tlabel: normalizeOptionalString(entry?.label || entry?.field_path_name || entry?.fieldPathName) || path,\n\t\t\ttype: normalizeOptionalString(entry?.type || entry?.field_type || entry?.fieldType) || 'Any',\n\t\t\tcollection\n\t\t});\n\t});\n\treturn fields.slice(0, MAX_AI_SUGGEST_FIELDS);\n}\n\nfunction deriveAiFieldsFromCollection(database: string, collection: string): MongoExplorerAiField[] {\n\tif (!collection) {\n\t\treturn [];\n\t}\n\tconst { managerCollection } = resolveCollectionHandle(database, collection);\n\tif (!managerCollection) {\n\t\treturn [];\n\t}\n\tconst schema = getSchemaDefinition(managerCollection);\n\treturn Object.keys(schema)\n\t\t.sort((a, b) => a.localeCompare(b))\n\t\t.slice(0, MAX_AI_SUGGEST_FIELDS)\n\t\t.map((path) => {\n\t\t\tconst definition = schema[path];\n\t\t\treturn {\n\t\t\t\tpath,\n\t\t\t\tlabel: toLabel(path),\n\t\t\t\ttype: getSchemaTypeName(definition),\n\t\t\t\tcollection\n\t\t\t};\n\t\t});\n}\n\nfunction resolveCollectionFromList(value: any, collections: string[], fallback = ''): string {\n\tconst normalized = normalizeOptionalString(value);\n\tif (normalized) {\n\t\tconst matched = (collections || []).find(entry => entry.toLowerCase() === normalized.toLowerCase());\n\t\tif (matched) {\n\t\t\treturn matched;\n\t\t}\n\t}\n\tif (fallback) {\n\t\treturn fallback;\n\t}\n\treturn collections?.[0] || '';\n}\n\nfunction normalizeAiResultLimit(value: any, fallback = 100): number {\n\tconst fallbackValue = Math.min(Math.max(fallback, 1), MAX_AI_SUGGEST_RESULTS);\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || parsed <= 0) {\n\t\treturn fallbackValue;\n\t}\n\treturn Math.min(Math.max(round(parsed), 1), MAX_AI_SUGGEST_RESULTS);\n}\n\nfunction normalizeAiSkip(value: any): number {\n\tconst parsed = Number(value);\n\tif (!Number.isFinite(parsed) || parsed < 0) {\n\t\treturn 0;\n\t}\n\treturn Math.max(0, round(parsed));\n}\n\nfunction normalizeAiObject(value: any): Record<string, any> {\n\tif (!value || typeof value !== 'object' || Array.isArray(value)) {\n\t\treturn {};\n\t}\n\treturn value;\n}\n\nfunction hasObjectKeys(value: any): boolean {\n\treturn !!value && typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length > 0;\n}\n\nfunction parseAiPlanPayload(content: string): any {\n\tconst normalized = String(content || '').trim();\n\tif (!normalized.length) {\n\t\treturn {};\n\t}\n\n\ttry {\n\t\treturn JSON.parse(normalized);\n\t}\n\tcatch {\n\t\t// Fall through and parse embedded JSON object.\n\t}\n\n\tconst start = normalized.indexOf('{');\n\tconst end = normalized.lastIndexOf('}');\n\tif (start !== -1 && end > start) {\n\t\ttry {\n\t\t\treturn JSON.parse(normalized.slice(start, end + 1));\n\t\t}\n\t\tcatch {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\treturn {};\n}\n\nfunction resolveMongoExplorerAiSettings() {\n\tconst serverConfig = ResolveIOServer.getServerConfig() || {};\n\tconst apiKey = normalizeOptionalString(serverConfig['OPENAI_API_KEY'] || process.env.OPENAI_API_KEY) || '';\n\tconst baseUrl = normalizeOptionalString(serverConfig['OPENAI_BASE_URL'] || process.env.OPENAI_BASE_URL);\n\n\tconst model = normalizeOptionalString(\n\t\tserverConfig['MONGO_EXPLORER_AI_MODEL']\n\t\t|| process.env.MONGO_EXPLORER_AI_MODEL\n\t\t|| serverConfig['AI_ASSISTANT_CODEX_MODEL']\n\t\t|| process.env.AI_ASSISTANT_CODEX_MODEL\n\t);\n\n\tconst fallbackModel = normalizeOptionalString(\n\t\tserverConfig['MONGO_EXPLORER_AI_FALLBACK_MODEL']\n\t\t|| process.env.MONGO_EXPLORER_AI_FALLBACK_MODEL\n\t\t|| serverConfig['AI_ASSISTANT_CODEX_FALLBACK_MODEL']\n\t\t|| process.env.AI_ASSISTANT_CODEX_FALLBACK_MODEL\n\t);\n\n\tconst timeoutMs = normalizePositiveNumber(\n\t\tserverConfig['MONGO_EXPLORER_AI_TIMEOUT_MS'] ?? process.env.MONGO_EXPLORER_AI_TIMEOUT_MS,\n\t\tDEFAULT_AI_SUGGEST_TIMEOUT_MS\n\t);\n\n\tconst maxTokens = normalizePositiveNumber(\n\t\tserverConfig['MONGO_EXPLORER_AI_MAX_TOKENS'] ?? process.env.MONGO_EXPLORER_AI_MAX_TOKENS,\n\t\tDEFAULT_AI_SUGGEST_MAX_TOKENS\n\t);\n\n\tconst maxRetries = normalizePositiveNumber(\n\t\tserverConfig['OPENAI_MAX_RETRIES'] ?? process.env.OPENAI_MAX_RETRIES,\n\t\t1\n\t);\n\n\tconst retryDelayMs = normalizePositiveNumber(\n\t\tserverConfig['OPENAI_RETRY_DELAY_MS'] ?? process.env.OPENAI_RETRY_DELAY_MS,\n\t\t750\n\t);\n\n\treturn {\n\t\tapiKey,\n\t\tbaseUrl,\n\t\tmodel,\n\t\tfallbackModel,\n\t\ttimeoutMs,\n\t\tmaxTokens,\n\t\tmaxRetries,\n\t\tretryDelayMs\n\t};\n}\n\nfunction buildMongoExplorerAiSystemPrompt(): string {\n\treturn [\n\t\t'You are a MongoDB query planner for a read-only Mongo Explorer UI.',\n\t\t'Return a single JSON object and nothing else.',\n\t\t'Supported schema:',\n\t\t'{',\n\t\t' \"action\": \"find|aggregate\",',\n\t\t' \"collection\": \"string\",',\n\t\t' \"query\": { ... },',\n\t\t' \"pipeline\": [{ ... }],',\n\t\t' \"options\": {',\n\t\t' \"projection\": { \"field\": 1 },',\n\t\t' \"sort\": { \"field\": -1 },',\n\t\t' \"limit\": 100,',\n\t\t' \"skip\": 0,',\n\t\t' \"includeTotal\": true,',\n\t\t' \"allowDiskUse\": true',\n\t\t' },',\n\t\t' \"notes\": \"short summary\"',\n\t\t'}',\n\t\t'Rules:',\n\t\t'- Use only provided collection names and field paths.',\n\t\t'- Read-only only. Never output write operations, update/delete commands, or aggregation stages $out/$merge.',\n\t\t'- Prefer action=find for direct lookups and simple filters.',\n\t\t'- Use action=aggregate for grouped totals, rankings, or trend buckets.',\n\t\t'- Keep options.limit between 1 and 500.',\n\t\t'- If request is ambiguous, use selected_collection and a conservative limit.'\n\t].join('\\n');\n}\n\nfunction buildMongoExplorerAiUserPrompt(input: {\n\tprompt: string;\n\tselectedCollection: string;\n\tavailableCollections: string[];\n\tavailableFields: MongoExplorerAiField[];\n\tmaxResults: number;\n}): string {\n\tconst payload = {\n\t\trequest: input.prompt,\n\t\tselected_collection: input.selectedCollection || '',\n\t\tmax_results: input.maxResults,\n\t\tavailable_collections: input.availableCollections || [],\n\t\tavailable_fields: input.availableFields || []\n\t};\n\treturn JSON.stringify(payload);\n}\n\nfunction sanitizeAggregatePipeline(rawPipeline: any, limit: number): { pipeline: any[]; removedRestricted: boolean } {\n\tconst source = Array.isArray(rawPipeline) ? rawPipeline : [];\n\tconst sanitized: any[] = [];\n\tlet removedRestricted = false;\n\n\tsource.forEach((stage) => {\n\t\tif (!stage || typeof stage !== 'object' || Array.isArray(stage)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst keys = Object.keys(stage);\n\t\tif (!keys.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst stageName = keys[0];\n\t\tif (RESTRICTED_AGGREGATE_STAGES.has(String(stageName).toLowerCase())) {\n\t\t\tremovedRestricted = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (stageName === '$limit') {\n\t\t\tsanitized.push({ $limit: normalizeAiResultLimit((stage as any).$limit, limit) });\n\t\t\treturn;\n\t\t}\n\n\t\tsanitized.push(stage);\n\t});\n\n\tif (!sanitized.some(stage => Object.keys(stage || {})[0] === '$limit')) {\n\t\tsanitized.push({ $limit: limit });\n\t}\n\n\treturn {\n\t\tpipeline: sanitized,\n\t\tremovedRestricted\n\t};\n}\n\nfunction sanitizeFindOptions(raw: any, fallbackLimit: number): {\n\tprojection?: Record<string, any>;\n\tsort?: Record<string, any>;\n\tlimit: number;\n\tskip: number;\n\tincludeTotal: boolean;\n} {\n\tconst options = normalizeAiObject(raw);\n\treturn {\n\t\tprojection: hasObjectKeys(options.projection) ? options.projection : undefined,\n\t\tsort: hasObjectKeys(options.sort) ? options.sort : undefined,\n\t\tlimit: normalizeAiResultLimit(options.limit, fallbackLimit),\n\t\tskip: normalizeAiSkip(options.skip),\n\t\tincludeTotal: options.includeTotal === true\n\t};\n}\n\nfunction buildMongoExplorerAiNotes(\n\trawNotes: any,\n\taction: MongoExplorerAiAction,\n\tcollection: string,\n\trowCount: number,\n\ttotal: number | null,\n\tremovedRestricted: boolean\n): string {\n\tconst notes: string[] = [];\n\tconst base = normalizeOptionalString(rawNotes);\n\tif (base) {\n\t\tnotes.push(base);\n\t}\n\n\tconst actionLabel = action === 'aggregate' ? 'aggregate pipeline' : 'query';\n\tif (typeof total === 'number' && total >= 0) {\n\t\tnotes.push(`Applied ${actionLabel} on ${collection}. Loaded ${rowCount} of ${total} rows.`);\n\t}\n\telse {\n\t\tnotes.push(`Applied ${actionLabel} on ${collection}. Loaded ${rowCount} rows.`);\n\t}\n\n\tif (removedRestricted) {\n\t\tnotes.push('Removed restricted write stages from the generated pipeline.');\n\t}\n\n\treturn notes.join(' ').trim();\n}\n\nasync function resolveUsageClientId(idClientInput?: string, idUser?: string): Promise<string> {\n\tconst normalized = normalizeOptionalString(idClientInput);\n\tif (normalized) {\n\t\treturn normalized;\n\t}\n\tif (!idUser) {\n\t\treturn '';\n\t}\n\ttry {\n\t\tconst user = await Users.findById(idUser);\n\t\treturn normalizeOptionalString(user?.other?.id_client || user?.other?.idClient) || '';\n\t}\n\tcatch {\n\t\treturn '';\n\t}\n}\n\nasync function executeMongoExplorerAi(payload: MongoExplorerAiPayload, context: any) {\n\tconst input = payload || {};\n\tconst prompt = normalizeOptionalString(input.prompt);\n\tif (!prompt) {\n\t\tthrow new Error('Prompt is required.');\n\t}\n\n\tconst database = resolveDatabaseName(input.database);\n\tconst db = resolveDatabase(database);\n\n\tlet availableCollections = sanitizeAiCollections(input.available_collections || []);\n\tif (!availableCollections.length) {\n\t\tconst listed = await db.listCollections().toArray();\n\t\tavailableCollections = listed\n\t\t\t.map(collection => normalizeOptionalString(collection?.name))\n\t\t\t.filter((collection): collection is string => !!collection)\n\t\t\t.slice(0, MAX_AI_SUGGEST_COLLECTIONS);\n\t}\n\n\tif (!availableCollections.length) {\n\t\tthrow new Error('Mongo Explorer AI assistant: no collections available.');\n\t}\n\n\tconst selectedCollection = resolveCollectionFromList(\n\t\tinput.selected_collection,\n\t\tavailableCollections,\n\t\tavailableCollections[0]\n\t);\n\n\tlet availableFields = sanitizeAiFields(input.available_fields || [], selectedCollection);\n\tif (!availableFields.length && selectedCollection) {\n\t\tavailableFields = deriveAiFieldsFromCollection(database, selectedCollection);\n\t}\n\n\tconst settings = resolveMongoExplorerAiSettings();\n\tif (!settings.apiKey) {\n\t\tthrow new Error('AI API key missing. Add an AI API key to server config.');\n\t}\n\n\tconst maxResults = normalizeAiResultLimit(input.max_results, 100);\n\tconst client = buildCodexClient(settings);\n\tconst messages: Array<{ role: 'system' | 'user'; content: string }> = [\n\t\t{ role: 'system', content: buildMongoExplorerAiSystemPrompt() },\n\t\t{\n\t\t\trole: 'user',\n\t\t\tcontent: buildMongoExplorerAiUserPrompt({\n\t\t\t\tprompt,\n\t\t\t\tselectedCollection,\n\t\t\t\tavailableCollections,\n\t\t\t\tavailableFields,\n\t\t\t\tmaxResults\n\t\t\t})\n\t\t}\n\t];\n\tconst responseText = await client.run(\n\t\tbuildCodexPrompt(messages[0].content, messages[1].content),\n\t\t{\n\t\t\ttimeoutMs: round(settings.timeoutMs),\n\t\t\tthreadOptions: {\n\t\t\t\tmodel: settings.model,\n\t\t\t\tsandboxMode: 'read-only',\n\t\t\t\tskipGitRepoCheck: true,\n\t\t\t\tnetworkAccessEnabled: false,\n\t\t\t\twebSearchMode: 'disabled',\n\t\t\t\twebSearchEnabled: false,\n\t\t\t\tapprovalPolicy: 'never'\n\t\t\t}\n\t\t}\n\t);\n\n\tconst parsed = parseAiPlanPayload(responseText);\n\tconst action = normalizeAiAction(parsed?.action || (Array.isArray(parsed?.pipeline) ? 'aggregate' : 'find'));\n\tconst collection = resolveCollectionFromList(\n\t\tparsed?.collection || parsed?.collection_name,\n\t\tavailableCollections,\n\t\tselectedCollection || availableCollections[0]\n\t);\n\n\tif (!collection) {\n\t\tthrow new Error('Mongo Explorer AI assistant could not resolve a collection.');\n\t}\n\n\tlet plan: MongoExplorerAiPlan = {\n\t\taction,\n\t\tcollection,\n\t\toptions: {}\n\t};\n\tlet removedRestrictedStages = false;\n\n\tif (action === 'aggregate') {\n\t\tconst optionsRaw = normalizeAiObject(parsed?.options);\n\t\tconst aggregateLimit = normalizeAiResultLimit(optionsRaw.limit ?? parsed?.limit, maxResults);\n\t\tconst pipelineResult = sanitizeAggregatePipeline(parsed?.pipeline, aggregateLimit);\n\t\tremovedRestrictedStages = pipelineResult.removedRestricted;\n\n\t\tconst aggregateOptions = {\n\t\t\tallowDiskUse: optionsRaw.allowDiskUse === true\n\t\t};\n\n\t\tconst aggregateRows = await db.collection(collection).aggregate(pipelineResult.pipeline, aggregateOptions).toArray();\n\t\tconst rows = (aggregateRows || []).slice(0, aggregateLimit);\n\n\t\tplan = {\n\t\t\taction,\n\t\t\tcollection,\n\t\t\tpipeline: pipelineResult.pipeline,\n\t\t\toptions: {\n\t\t\t\tallowDiskUse: aggregateOptions.allowDiskUse,\n\t\t\t\tlimit: aggregateLimit\n\t\t\t},\n\t\t\tdocuments: rows,\n\t\t\ttotal: null\n\t\t};\n\t}\n\telse {\n\t\tconst query = normalizeAiObject(parsed?.query);\n\t\tconst options = sanitizeFindOptions(parsed?.options, maxResults);\n\t\tconst findOptions: any = {\n\t\t\tlimit: options.limit,\n\t\t\tskip: options.skip\n\t\t};\n\t\tif (options.projection) {\n\t\t\tfindOptions.projection = options.projection;\n\t\t}\n\t\tif (options.sort) {\n\t\t\tfindOptions.sort = options.sort;\n\t\t}\n\n\t\tconst rows = await db.collection(collection).find(query, findOptions).toArray();\n\t\tconst total = options.includeTotal ? await db.collection(collection).countDocuments(query) : null;\n\n\t\tplan = {\n\t\t\taction,\n\t\t\tcollection,\n\t\t\tquery,\n\t\t\toptions: {\n\t\t\t\t...(options.projection ? { projection: options.projection } : {}),\n\t\t\t\t...(options.sort ? { sort: options.sort } : {}),\n\t\t\t\tlimit: options.limit,\n\t\t\t\tskip: options.skip,\n\t\t\t\tincludeTotal: options.includeTotal\n\t\t\t},\n\t\t\tdocuments: rows,\n\t\t\ttotal\n\t\t};\n\t}\n\n\tplan.notes = buildMongoExplorerAiNotes(\n\t\tparsed?.notes,\n\t\tplan.action,\n\t\tplan.collection,\n\t\tArray.isArray(plan.documents) ? plan.documents.length : 0,\n\t\ttypeof plan.total === 'number' ? plan.total : null,\n\t\tremovedRestrictedStages\n\t);\n\n\tconst usage = estimateCodexUsage(messages, responseText, settings.model);\n\tconst idClient = await resolveUsageClientId(input.id_client, context?.id_user);\n\tif (usage.totalTokens) {\n\t\tawait recordOpenAIUsage({\n\t\t\tid_client: idClient || '',\n\t\t\tmodel: settings.model || 'unknown',\n\t\t\tinput_tokens: usage.inputTokens || 0,\n\t\t\toutput_tokens: usage.outputTokens || 0,\n\t\t\ttotal_tokens: usage.totalTokens || 0,\n\t\t\tcategory: 'mongo-explorer-ai',\n\t\t\tid_request: ''\n\t\t});\n\t}\n\n\treturn {\n\t\tnotes: plan.notes,\n\t\tplan,\n\t\tmodel: settings.model,\n\t\tusage: {\n\t\t\tinput_tokens: usage.inputTokens || 0,\n\t\t\toutput_tokens: usage.outputTokens || 0,\n\t\t\ttotal_tokens: usage.totalTokens || 0\n\t\t}\n\t};\n}\n\nexport function loadMongoExplorerMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n\t\tmongoExplorerAiSuggest: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tpayload: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(payload: any) {\n\t\t\t\treturn executeMongoExplorerAi(payload || {}, this);\n\t\t\t}\n\t\t},\n\t\tmongoExplorerListCollections: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database?: string) {\n\t\t\t\tconst db = resolveDatabase(database);\n\t\t\t\tconst collections = await db.listCollections().toArray();\n\t\t\t\treturn collections\n\t\t\t\t\t.map(col => ({\n\t\t\t\t\t\tname: col.name,\n\t\t\t\t\t\ttype: col.type || 'collection'\n\t\t\t\t\t}))\n\t\t\t\t\t.sort((a, b) => a.name.localeCompare(b.name));\n\t\t\t}\n\t\t},\n\t\tmongoExplorerFind: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tquery: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, query: any = {}, options?) {\n\t\t\t\tconst db = resolveDatabase(database);\n\t\t\t\tconst normalized = normalizeFindOptions(options);\n\t\t\t\tconst documents = await db.collection(collection).find(query || {}, normalized.findOptions).toArray();\n\t\t\t\tlet total = null;\n\n\t\t\t\tif (normalized.includeTotal) {\n\t\t\t\t\ttotal = await db.collection(collection).countDocuments(query || {});\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tdocuments,\n\t\t\t\t\ttotal\n\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\tmongoExplorerGetCollectionSchema: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: function(database: string, collection: string) {\n\t\t\t\tconst dbName = resolveDatabaseName(database);\n\t\t\t\tconst { managerCollection } = resolveCollectionHandle(dbName, collection);\n\t\t\t\tif (!managerCollection) {\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tcollection,\n\t\t\t\t\t\thas_schema: false,\n\t\t\t\t\t\tfields: []\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst schema = getSchemaDefinition(managerCollection);\n\t\t\t\tconst fields = Object.keys(schema)\n\t\t\t\t\t.sort((a, b) => a.localeCompare(b))\n\t\t\t\t\t.map((path) => {\n\t\t\t\t\t\tconst definition = schema[path];\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\tlabel: toLabel(path),\n\t\t\t\t\t\t\ttype: getSchemaTypeName(definition),\n\t\t\t\t\t\t\toptional: definition?.optional === true,\n\t\t\t\t\t\t\tprotected: isProtectedFieldPath(path),\n\t\t\t\t\t\t\tdepth: path.split('.').filter((segment: string) => segment !== '$').length - 1\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tcollection,\n\t\t\t\t\thas_schema: true,\n\t\t\t\t\tfields\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmongoExplorerAggregate: {\n\t\t\tbypassSession: true,\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpipeline: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'pipeline.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\toptions: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\toptional: true,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, pipeline: any[], options: any = {}) {\n\t\t\t\tconst db = resolveDatabase(database);\n\t\t\t\treturn db.collection(collection).aggregate(pipeline || [], options || undefined).toArray();\n\t\t\t}\n\t\t},\n\t\tmongoExplorerCommand: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcommand: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tpermissionView: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tmode: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, command: any, permissionView?: string, mode?: string) {\n\t\t\t\tawait ensureWriteAccess(this, permissionView, mode);\n\t\t\t\tconst db = resolveDatabase(database);\n\t\t\t\treturn db.command(command);\n\t\t\t}\n\t\t},\n\t\tmongoExplorerInsertDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tpermissionView: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tmode: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, document: any, permissionView?: string, mode?: string) {\n\t\t\t\tawait ensureWriteAccess(this, permissionView, mode);\n\t\t\t\tconst dbName = resolveDatabaseName(database);\n\t\t\t\tconst { managerCollection, dbCollection } = resolveCollectionHandle(dbName, collection);\n\n\t\t\t\tif (!document || typeof document !== 'object') {\n\t\t\t\t\tthrow new Error('Mongo Explorer: Document is required');\n\t\t\t\t}\n\n\t\t\t\tif (!managerCollection && !allowUnschemaizedWrites()) {\n\t\t\t\t\tthrow new Error('Mongo Explorer: Writes require schema-backed collections. Set MONGO_EXPLORER_ALLOW_UNSCHEMATIZED_WRITE=true to bypass.');\n\t\t\t\t}\n\n\t\t\t\tif (!document._id) {\n\t\t\t\t\tdocument._id = objectIdHexString();\n\t\t\t\t}\n\n\t\t\t\tif (document.__v === undefined) {\n\t\t\t\t\tdocument.__v = 0;\n\t\t\t\t}\n\n\t\t\t\tif (managerCollection) {\n\t\t\t\t\tcoerceDateFields(managerCollection, document);\n\t\t\t\t\tawait managerCollection.insertOne(document);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tawait dbCollection.insertOne(document);\n\t\t\t\t}\n\n\t\t\t\treturn document._id;\n\t\t\t}\n\t\t},\n\t\t\tmongoExplorerReplaceDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdocument: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tpermissionView: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tmode: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, document: any, permissionView?: string, mode?: string) {\n\t\t\t\tawait ensureWriteAccess(this, permissionView, mode);\n\t\t\t\tconst dbName = resolveDatabaseName(database);\n\t\t\t\tconst { managerCollection, dbCollection } = resolveCollectionHandle(dbName, collection);\n\n\t\t\t\tif (!document || typeof document !== 'object' || !document._id) {\n\t\t\t\t\tthrow new Error('Mongo Explorer: Document with _id is required');\n\t\t\t\t}\n\n\t\t\t\tconst currentDoc = managerCollection\n\t\t\t\t\t? await managerCollection.findOne({_id: document._id})\n\t\t\t\t\t: await dbCollection.findOne({_id: document._id});\n\t\t\t\tif (!currentDoc) {\n\t\t\t\t\tthrow new Error('Mongo Explorer: Document not found');\n\t\t\t\t}\n\n\t\t\t\tensureProtectedFieldsUnchanged(currentDoc, document);\n\n\t\t\t\tif (!managerCollection && !allowUnschemaizedWrites()) {\n\t\t\t\t\tthrow new Error('Mongo Explorer: Writes require schema-backed collections. Set MONGO_EXPLORER_ALLOW_UNSCHEMATIZED_WRITE=true to bypass.');\n\t\t\t\t}\n\n\t\t\t\tif (managerCollection) {\n\t\t\t\t\tcoerceDateFields(managerCollection, document);\n\t\t\t\t\tawait managerCollection.replaceOne({_id: document._id}, document);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tawait dbCollection.replaceOne({_id: document._id}, document);\n\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t},\n\t\t\tmongoExplorerReviewOperationRisk: {\n\t\t\t\tcheck: new SimpleSchema({\n\t\t\t\t\tdatabase: {\n\t\t\t\t\t\ttype: String,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t},\n\t\t\t\t\tcollection: {\n\t\t\t\t\t\ttype: String\n\t\t\t\t\t},\n\t\t\t\t\toperation: {\n\t\t\t\t\t\ttype: String,\n\t\t\t\t\t\tallowedValues: ['insert', 'replace', 'delete', 'command']\n\t\t\t\t\t},\n\t\t\t\t\tbefore_document: {\n\t\t\t\t\t\ttype: Object,\n\t\t\t\t\t\tblackbox: true,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t},\n\t\t\t\t\tafter_document: {\n\t\t\t\t\t\ttype: Object,\n\t\t\t\t\t\tblackbox: true,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t},\n\t\t\t\t\tdelete_impact: {\n\t\t\t\t\t\ttype: Object,\n\t\t\t\t\t\tblackbox: true,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t},\n\t\t\t\t\tpermissionView: {\n\t\t\t\t\t\ttype: String,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t},\n\t\t\t\t\tmode: {\n\t\t\t\t\t\ttype: String,\n\t\t\t\t\t\toptional: true\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tfunction: async function(\n\t\t\t\t\tdatabase: string,\n\t\t\t\t\tcollection: string,\n\t\t\t\t\toperation: MongoExplorerRiskOperation,\n\t\t\t\t\tbefore_document?: any,\n\t\t\t\t\tafter_document?: any,\n\t\t\t\t\tdelete_impact?: MongoExplorerDeleteImpact,\n\t\t\t\t\tpermissionView?: string,\n\t\t\t\t\tmode?: string\n\t\t\t\t) {\n\t\t\t\t\tawait ensureWriteAccess(this, permissionView, mode);\n\t\t\t\t\tconst dbName = resolveDatabaseName(database);\n\n\t\t\t\t\treturn reviewOperationRisk({\n\t\t\t\t\t\tdatabase: dbName,\n\t\t\t\t\t\tcollection,\n\t\t\t\t\t\toperation,\n\t\t\t\t\t\tmode: normalizeExplorerMode(mode),\n\t\t\t\t\t\tbefore_document,\n\t\t\t\t\t\tafter_document,\n\t\t\t\t\t\tdelete_impact\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tmongoExplorerDeleteDocument: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tpermissionView: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tforce: {\n\t\t\t\t\ttype: Boolean,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tmode: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, doc_id: string, permissionView?: string, force = false, mode?: string) {\n\t\t\t\tawait ensureWriteAccess(this, permissionView, mode);\n\t\t\t\tconst dbName = resolveDatabaseName(database);\n\t\t\t\tconst impact = await buildDeleteImpact(dbName, collection, doc_id);\n\t\t\t\tif (!force && (impact.unresolved || impact.has_references)) {\n\t\t\t\t\tconst collectionPreview = impact.collections.slice(0, 3).map(item => item.collection).join(', ');\n\t\t\t\t\tif (impact.unresolved) {\n\t\t\t\t\t\tthrow new Error('Mongo Explorer: Delete blocked because dependency checks could not complete. Use force delete after review.');\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error(`Mongo Explorer: Delete blocked. Document is referenced by ${collectionPreview}${impact.collections.length > 3 ? ', ...' : ''}`);\n\t\t\t\t}\n\n\t\t\t\tconst { managerCollection, dbCollection } = resolveCollectionHandle(dbName, collection);\n\t\t\t\tconst deleteFilter = { _id: doc_id } as any;\n\n\t\t\t\tif (managerCollection) {\n\t\t\t\t\tawait managerCollection.deleteOne(deleteFilter);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tawait dbCollection.deleteOne(deleteFilter);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tmongoExplorerDeleteImpact: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tdatabase: {\n\t\t\t\t\ttype: String,\n\t\t\t\t\toptional: true\n\t\t\t\t},\n\t\t\t\tcollection: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tdoc_id: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n\t\t\t}),\n\t\t\tfunction: async function(database: string, collection: string, doc_id: string) {\n\t\t\t\tconst dbName = resolveDatabaseName(database);\n\t\t\t\treturn buildDeleteImpact(dbName, collection, doc_id);\n\t\t\t}\n\t\t}\n\t});\n}\n"]}
@@ -1,2 +0,0 @@
1
- import { MethodManager } from '../managers/method.manager';
2
- export declare function loadMonitorMethods(methodManager: MethodManager): void;