@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
@@ -0,0 +1,507 @@
1
+ import axios from 'axios';
2
+ import { MonitorCPUs } from '../collections/monitor-cpu.collection';
3
+ import { MonitorFunctions } from '../collections/monitor-function.collection';
4
+ import { MonitorMemorys } from '../collections/monitor-memory.collection';
5
+ import { MonitorMongos } from '../collections/monitor-mongo.collection';
6
+ import { ResolveIOServer } from '../resolveio-server-app';
7
+ import { objectIdHexString } from '../util/common';
8
+ import { LocalLogModel } from './local-log.manager';
9
+
10
+ const os = require('os');
11
+ const MAX_BATCH_SIZE = 8 * 1024 * 1024; // 8MB max for safety
12
+
13
+ export class MonitorManager {
14
+ private _instanceHostname = '';
15
+ private _monitorData: LocalLogModel[] = [];
16
+
17
+ constructor() {}
18
+
19
+ static async create() {
20
+ const monitorManager = new MonitorManager();
21
+ await monitorManager.initialize();
22
+ return monitorManager;
23
+ }
24
+
25
+ private async initialize() {
26
+ this._instanceHostname = os.hostname().replace(/\./g, '-');
27
+ await this.setupIntervals();
28
+ this.setupEventLoop();
29
+ }
30
+
31
+ cpuAverage() {
32
+ var totalIdle = 0, totalTick = 0;
33
+ var cpus = os.cpus();
34
+
35
+ for (var i = 0, len = cpus.length; i < len; i++) {
36
+ var cpu = cpus[i];
37
+
38
+ for (let type in cpu.times) {
39
+ totalTick += cpu.times[type];
40
+ }
41
+ totalIdle += cpu.times.idle;
42
+ }
43
+
44
+ return {
45
+ idle: totalIdle / cpus.length,
46
+ total: totalTick / cpus.length
47
+ };
48
+ }
49
+
50
+ async setupIntervals() {
51
+ const processOnlyRuntime = this.isProcessOnlyManagerRuntime();
52
+
53
+ // Example: If not on production or localhost, do a health check
54
+ if (
55
+ !processOnlyRuntime
56
+ &&
57
+ ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'
58
+ && ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'
59
+ ) {
60
+ try {
61
+ let instanceId = await axios.get('http://169.254.169.254/latest/meta-data/instance-id');
62
+
63
+ setInterval(async () => {
64
+ try {
65
+ await axios.post('https://backend.resolveio.com/api/health', {
66
+ type: 'application',
67
+ id_aws_instance: instanceId.data,
68
+ version: typeof process.env.APP_VERSION === 'number'
69
+ ? (<any>process.env.APP_VERSION).toString()
70
+ : process.env.APP_VERSION,
71
+ version_key: process.env.APP_VERSION_KEY
72
+ });
73
+ }
74
+ catch {}
75
+ }, 10000);
76
+ }
77
+ catch {}
78
+ }
79
+
80
+ let lastCPU = this.cpuAverage();
81
+
82
+ setInterval(async () => {
83
+ let now = new Date();
84
+ var endMeasure = this.cpuAverage();
85
+ var idleDifference = endMeasure.idle - lastCPU.idle;
86
+ var totalDifference = endMeasure.total - lastCPU.total;
87
+ var percentageCPU = 1 - idleDifference / totalDifference;
88
+
89
+ // Original local code
90
+ if (
91
+ !ResolveIOServer.shouldWriteLogsOffline()
92
+ ) {
93
+ await MonitorCPUs.create({
94
+ _id: objectIdHexString(),
95
+ metadata: {
96
+ instance: this._instanceHostname,
97
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
98
+ },
99
+ date: now,
100
+ app: percentageCPU,
101
+ system: os.loadavg()[0]
102
+ });
103
+ }
104
+ else {
105
+ this.pushMonitorData({
106
+ type: 'monitor-cpu',
107
+ data: {
108
+ metadata: {
109
+ instance: this._instanceHostname,
110
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
111
+ },
112
+ date: now,
113
+ app: percentageCPU,
114
+ system: os.loadavg()[0]
115
+ }
116
+ });
117
+ }
118
+
119
+ lastCPU = endMeasure;
120
+
121
+ const memUsage = process.memoryUsage();
122
+
123
+ if (
124
+ !ResolveIOServer.shouldWriteLogsOffline()
125
+ ) {
126
+ await MonitorMemorys.create({
127
+ _id: objectIdHexString(),
128
+ metadata: {
129
+ instance: this._instanceHostname,
130
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
131
+ },
132
+ date: now,
133
+ physical_total: memUsage.heapTotal,
134
+ physical_used: memUsage.heapUsed,
135
+ physical_free: os.freemem(),
136
+ virtual: memUsage.rss,
137
+ private: memUsage.external,
138
+ physical: os.totalmem()
139
+ });
140
+ }
141
+ else {
142
+ this.pushMonitorData({
143
+ type: 'monitor-memory',
144
+ data: {
145
+ metadata: {
146
+ instance: this._instanceHostname,
147
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
148
+ },
149
+ date: now,
150
+ physical_total: memUsage.heapTotal,
151
+ physical_used: memUsage.heapUsed,
152
+ physical_free: os.freemem(),
153
+ virtual: memUsage.rss,
154
+ private: memUsage.external,
155
+ physical: os.totalmem(),
156
+ type: 'memory'
157
+ }
158
+ });
159
+ }
160
+ }, 3000);
161
+ }
162
+
163
+ private isProcessOnlyManagerRuntime(): boolean {
164
+ const parseFlag = (value: any): boolean => {
165
+ const normalized = String(value ?? '').trim().toLowerCase();
166
+ return normalized === '1'
167
+ || normalized === 'true'
168
+ || normalized === 'yes'
169
+ || normalized === 'on'
170
+ || normalized === 'enabled';
171
+ };
172
+ return parseFlag(process.env.SUPPORT_CODEX_MANAGER_PROCESS_ONLY)
173
+ || parseFlag(process.env.SUPPORT_AUTO_MANAGER_PROCESS_ONLY)
174
+ || parseFlag(process.env.AI_ASSISTANT_CODEX_MANAGER_PROCESS_ONLY);
175
+ }
176
+
177
+ async addMongoTracker(data: MongoMonitorModel) {
178
+ if (
179
+ !ResolveIOServer.shouldWriteLogsOffline()
180
+ ) {
181
+ if (!data.collection.startsWith('monitor-')) {
182
+ await MonitorMongos.create({
183
+ _id: objectIdHexString(),
184
+ metadata: {
185
+ instance: this._instanceHostname,
186
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
187
+ },
188
+ date: new Date(data.date),
189
+ method: data.method,
190
+ doc_collection: data.collection,
191
+ duration: data.duration,
192
+ query: Buffer.byteLength(data.query, 'utf8') < 15800000
193
+ ? data.query
194
+ : 'Too Big'
195
+ });
196
+ }
197
+ }
198
+ else {
199
+ if (this._instanceHostname) {
200
+ this.pushMonitorData({
201
+ type: 'monitor-mongo',
202
+ data: {
203
+ metadata: {
204
+ instance: this._instanceHostname,
205
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
206
+ },
207
+ date: new Date(data.date),
208
+ method: data.method,
209
+ doc_collection: data.collection,
210
+ duration: data.duration,
211
+ query: Buffer.byteLength(data.query, 'utf8') < 15800000
212
+ ? data.query
213
+ : 'Too Big'
214
+ }
215
+ });
216
+ }
217
+ }
218
+ }
219
+
220
+ async addFunctionTracker(data: MonitorFunction) {
221
+ if (typeof(data.data) !== 'string') {
222
+ data.data = JSON.stringify(data.data);
223
+ }
224
+
225
+ if (
226
+ !ResolveIOServer.shouldWriteLogsOffline()
227
+ ) {
228
+ await MonitorFunctions.create({
229
+ _id: objectIdHexString(),
230
+ metadata: {
231
+ instance: this._instanceHostname,
232
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
233
+ },
234
+ date: new Date(data.startTime),
235
+ type: data.functionType,
236
+ name: data.functionName,
237
+ user: data.user,
238
+ duration: data.duration,
239
+ data: Buffer.byteLength(data.data, 'utf8') < 15800000
240
+ ? data.data
241
+ : 'Too Big'
242
+ });
243
+ }
244
+ else {
245
+ if (this._instanceHostname) {
246
+ this.pushMonitorData({
247
+ type: 'monitor-function',
248
+ data: {
249
+ metadata: {
250
+ instance: this._instanceHostname,
251
+ client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
252
+ },
253
+ date: new Date(data.startTime),
254
+ type: data.functionType,
255
+ name: data.functionName,
256
+ user: data.user,
257
+ duration: data.duration,
258
+ data: Buffer.byteLength(data.data, 'utf8') < 15800000
259
+ ? data.data
260
+ : 'Too Big'
261
+ }
262
+ });
263
+ }
264
+ }
265
+ }
266
+
267
+ private pushMonitorData(data: LocalLogModel) {
268
+ this._monitorData.push(data);
269
+
270
+ // If data is huge, flush immediately to file
271
+ if (this.estimateBatchSize() >= MAX_BATCH_SIZE) {
272
+ this.flushMonitorData();
273
+ }
274
+ }
275
+
276
+ private estimateBatchSize(): number {
277
+ return this._monitorData.reduce((total, item) => {
278
+ return total + Buffer.byteLength(JSON.stringify(item));
279
+ }, 0);
280
+ }
281
+
282
+ setupEventLoop() {
283
+ // Flush every 2.5 seconds
284
+ setInterval(() => {
285
+ if (this._monitorData.length > 0) {
286
+ this.flushMonitorData();
287
+ }
288
+ }, 2500);
289
+ }
290
+
291
+ private flushMonitorData() {
292
+ const batch = [];
293
+ let batchSize = 0;
294
+
295
+ while (this._monitorData.length > 0 && batchSize < MAX_BATCH_SIZE) {
296
+ const item = this._monitorData.shift();
297
+ const itemSize = Buffer.byteLength(JSON.stringify(item));
298
+
299
+ if ((batchSize + itemSize) > MAX_BATCH_SIZE && batch.length > 0) {
300
+ // put the item back for next round
301
+ this._monitorData.unshift(item);
302
+ break;
303
+ }
304
+
305
+ batch.push(item);
306
+ batchSize += itemSize;
307
+ }
308
+
309
+ try {
310
+ // Now, instead of calling an external HTTP endpoint, we write the batch to disk:
311
+ ResolveIOServer.getLocalLogManager().writeLogs(batch);
312
+ }
313
+ catch (error) {
314
+ console.error(new Date(), 'MonitorManager', 'Failed to flush monitor data to file:', error);
315
+ }
316
+ }
317
+ }
318
+
319
+ export interface MongoMonitorModel {
320
+ date: Date;
321
+ method: string;
322
+ collection: string;
323
+ duration: number;
324
+ query: string;
325
+ }
326
+
327
+ export class MonitorMongo {
328
+ private _startTime = 0;
329
+ private _method = '';
330
+ private _collection = '';
331
+ private _query = '';
332
+
333
+ constructor() {}
334
+
335
+ static create(method: string, collection: string, query: string) {
336
+ const monitorMongo = new MonitorMongo();
337
+ monitorMongo.initialize(method, collection, query);
338
+ return monitorMongo;
339
+ }
340
+
341
+ private initialize(method: string, collection: string, query: string) {
342
+ this._startTime = Date.now();
343
+ this._method = method;
344
+ this._collection = collection;
345
+ this._query = query;
346
+ }
347
+
348
+ public async finish() {
349
+ let endTime = Date.now();
350
+
351
+ let mongoMonitor: MongoMonitorModel = {
352
+ date: new Date(endTime),
353
+ method: this._method,
354
+ collection: this._collection,
355
+ query: this._query,
356
+ duration: endTime - this._startTime
357
+ };
358
+
359
+ await ResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);
360
+ }
361
+ }
362
+
363
+ export class MonitorManagerFunction {
364
+ private _functionCnt = 0;
365
+ private _functions: MonitorFunction[] = [];
366
+ private _functionLastCompletedWS: { [id_socket: string]: MonitorFunction; } = {};
367
+ private _functionLastCompleted: MonitorFunction;
368
+
369
+ constructor() {}
370
+
371
+ static create() {
372
+ const monitorManagerFunction = new MonitorManagerFunction();
373
+ monitorManagerFunction.initialize();
374
+ return monitorManagerFunction;
375
+ }
376
+
377
+ private initialize() {
378
+
379
+ }
380
+
381
+ startMonitorFunction(
382
+ functionType: MonitorFunctionType,
383
+ functionName: string,
384
+ user: string,
385
+ id_socket: string,
386
+ data: any
387
+ ) {
388
+ let newMonitorFunction = MonitorFunction.create(
389
+ this._functionCnt++,
390
+ functionType,
391
+ functionName,
392
+ user,
393
+ id_socket,
394
+ data
395
+ );
396
+
397
+ this._functions.push(newMonitorFunction);
398
+ return newMonitorFunction.id;
399
+ }
400
+
401
+ async finishMonitorFunction(id: number) {
402
+ let monitor = this._functions.find(a => a.id === id);
403
+
404
+ if (monitor) {
405
+ await monitor.finish();
406
+ this._functionLastCompleted = monitor;
407
+ this._functionLastCompletedWS[monitor.id_socket] = monitor;
408
+ this._functions.splice(
409
+ this._functions.map(a => a.id).indexOf(id),
410
+ 1
411
+ );
412
+ }
413
+ }
414
+
415
+ getActiveMonitorFunctions() {
416
+ return this._functions;
417
+ }
418
+
419
+ getLastCompletedMonitorFunction() {
420
+ return this._functionLastCompleted;
421
+ }
422
+
423
+ getLastCompletedMonitorFunctionWS() {
424
+ return this._functionLastCompletedWS;
425
+ }
426
+ }
427
+
428
+ export type MonitorFunctionType =
429
+ 'Cron Method'
430
+ | 'Method'
431
+ | 'User Specific Publication'
432
+ | 'Publication';
433
+
434
+ export class MonitorFunction {
435
+ private _timer: NodeJS.Timeout = null;
436
+ public duration = 0;
437
+ public functionType: MonitorFunctionType;
438
+ public functionName: string;
439
+ public user: string;
440
+ public data: any;
441
+ public startTime: Date = null;
442
+ public endTime: Date = null;
443
+ public lastTime: Date = null;
444
+ public id_socket = '';
445
+ public id = 0;
446
+
447
+ constructor() {}
448
+
449
+ static create(
450
+ id: number,
451
+ functionType: MonitorFunctionType,
452
+ functionName: string,
453
+ user: string,
454
+ id_socket: string,
455
+ data: any
456
+ ) {
457
+ const monitorFunction = new MonitorFunction();
458
+ monitorFunction.initialize(id, functionType, functionName, user, id_socket, data);
459
+ return monitorFunction;
460
+ }
461
+
462
+ private initialize(
463
+ id: number,
464
+ functionType: MonitorFunctionType,
465
+ functionName: string,
466
+ user: string,
467
+ id_socket: string,
468
+ data: any
469
+ ) {
470
+ this.id = id;
471
+ this.startTime = new Date();
472
+ this.functionType = functionType;
473
+ this.functionName = functionName;
474
+ this.user = user;
475
+ this.id_socket = id_socket;
476
+ this.data = data;
477
+ this.lastTime = new Date();
478
+
479
+ this._timer = setInterval(() => {
480
+ let diff = Date.now() - this.lastTime.getTime();
481
+
482
+ if (diff > this.duration) {
483
+ this.duration = diff;
484
+ }
485
+
486
+ this.lastTime = new Date();
487
+ }, 1000);
488
+ }
489
+
490
+ public async finish() {
491
+ if (this._timer) {
492
+ clearInterval(this._timer);
493
+ this._timer = null;
494
+ }
495
+
496
+ this.endTime = new Date();
497
+
498
+ if (this.duration >= 5000) {
499
+ // Optional slow function logging or email
500
+ await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);
501
+ }
502
+
503
+ // await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);
504
+
505
+ return Promise.resolve(true);
506
+ }
507
+ }
@@ -0,0 +1,112 @@
1
+ import { OpenAIUsageLedger } from '../collections/openai-usage-ledger.collection';
2
+ import {
3
+ OpenAIUsageCostBasis,
4
+ OpenAIUsageSource,
5
+ OpenAIUsageSurface
6
+ } from '../models/openai-usage-ledger.model';
7
+ import { estimateOpenAIUsageCost } from '../util/openai-usage-cost';
8
+ export { estimateOpenAIUsageCost, OpenAIUsagePricingConfig } from '../util/openai-usage-cost';
9
+
10
+ export interface OpenAIUsageRecordInput {
11
+ id_client?: string;
12
+ model: string;
13
+ input_tokens: number;
14
+ cached_input_tokens?: number;
15
+ output_tokens: number;
16
+ total_tokens: number;
17
+ billable?: boolean;
18
+ category?: string;
19
+ id_request?: string;
20
+ id_conversation?: string;
21
+ timestamp?: Date;
22
+ cost_estimate?: number;
23
+ usage_source?: OpenAIUsageSource | string;
24
+ usage_surface?: OpenAIUsageSurface | string;
25
+ usage_phase?: string;
26
+ cost_basis?: OpenAIUsageCostBasis | string;
27
+ id_run?: string;
28
+ id_job?: string;
29
+ id_app?: string;
30
+ id_ticket?: string;
31
+ is_manual?: boolean;
32
+ is_untracked?: boolean;
33
+ untracked_reason?: string;
34
+ metadata?: Record<string, any>;
35
+ }
36
+
37
+ const toNumber = (value: any): number => {
38
+ const parsed = Number(value);
39
+ return Number.isFinite(parsed) ? parsed : 0;
40
+ };
41
+
42
+ const cleanText = (value: any, max = 240): string => {
43
+ if (value === undefined || value === null) {
44
+ return '';
45
+ }
46
+ return String(value).trim().slice(0, max);
47
+ };
48
+
49
+ const cleanMetadata = (value: any): Record<string, any> | undefined => {
50
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
51
+ return undefined;
52
+ }
53
+ return { ...value };
54
+ };
55
+
56
+ export async function recordOpenAIUsage(input: OpenAIUsageRecordInput): Promise<void> {
57
+ if (!input) {
58
+ return;
59
+ }
60
+ const idClient = String(input.id_client || '').trim();
61
+ const inputTokens = toNumber(input.input_tokens);
62
+ const cachedInputTokens = toNumber(input.cached_input_tokens);
63
+ const outputTokens = toNumber(input.output_tokens);
64
+ const totalTokens = toNumber(input.total_tokens);
65
+ const normalizedInputCostEstimate = toNumber(input.cost_estimate);
66
+ if (!totalTokens && (!inputTokens && !outputTokens) && normalizedInputCostEstimate <= 0) {
67
+ return;
68
+ }
69
+ const model = String(input.model || '').trim() || 'unknown';
70
+ const costEstimate = normalizedInputCostEstimate > 0
71
+ ? normalizedInputCostEstimate
72
+ : estimateOpenAIUsageCost(model, inputTokens, outputTokens, cachedInputTokens);
73
+
74
+ await OpenAIUsageLedger.insertOne({
75
+ id_client: idClient,
76
+ timestamp: input.timestamp || new Date(),
77
+ model,
78
+ input_tokens: inputTokens,
79
+ cached_input_tokens: cachedInputTokens,
80
+ output_tokens: outputTokens,
81
+ total_tokens: totalTokens || (inputTokens + outputTokens),
82
+ cost_estimate: costEstimate,
83
+ billable: input.billable !== false,
84
+ category: cleanText(input.category, 160),
85
+ id_request: cleanText(input.id_request, 240),
86
+ id_conversation: cleanText(input.id_conversation, 240),
87
+ usage_source: cleanText(input.usage_source, 80) || 'unknown',
88
+ usage_surface: cleanText(input.usage_surface, 80) || 'unknown',
89
+ usage_phase: cleanText(input.usage_phase, 120),
90
+ cost_basis: cleanText(input.cost_basis, 80) || (normalizedInputCostEstimate > 0 ? 'provider_usage' : 'estimated_tokens'),
91
+ id_run: cleanText(input.id_run, 240),
92
+ id_job: cleanText(input.id_job, 240),
93
+ id_app: cleanText(input.id_app, 240),
94
+ id_ticket: cleanText(input.id_ticket, 240),
95
+ is_manual: input.is_manual === true || cleanText(input.usage_source, 80) === 'manual_codex',
96
+ is_untracked: input.is_untracked === true,
97
+ untracked_reason: cleanText(input.untracked_reason, 500),
98
+ metadata: cleanMetadata(input.metadata)
99
+ });
100
+ }
101
+
102
+ export async function recordManualCodexUsageEstimate(input: Omit<OpenAIUsageRecordInput, 'usage_source' | 'is_manual'>): Promise<void> {
103
+ await recordOpenAIUsage({
104
+ ...input,
105
+ usage_source: 'manual_codex',
106
+ usage_surface: input.usage_surface || 'manual',
107
+ cost_basis: input.cost_basis || 'manual_estimate',
108
+ is_manual: true,
109
+ is_untracked: input.is_untracked !== false,
110
+ untracked_reason: input.untracked_reason || 'Manual Codex session was outside the managed runner telemetry path.'
111
+ });
112
+ }