@resolveio/server-lib 22.2.34 → 22.2.36

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 (649) hide show
  1. package/ai/assistant-core-heuristics.d.ts +11 -0
  2. package/ai/assistant-core-heuristics.js +531 -0
  3. package/ai/assistant-core-heuristics.js.map +1 -0
  4. package/client-server-app.d.ts +1 -0
  5. package/client-server-app.js +68 -0
  6. package/client-server-app.js.map +1 -0
  7. package/collections/ai-terminal-conversation.collection.d.ts +2 -0
  8. package/collections/ai-terminal-conversation.collection.js +140 -0
  9. package/collections/ai-terminal-conversation.collection.js.map +1 -0
  10. package/collections/ai-terminal-issue-report.collection.d.ts +2 -0
  11. package/collections/ai-terminal-issue-report.collection.js +148 -0
  12. package/collections/ai-terminal-issue-report.collection.js.map +1 -0
  13. package/collections/ai-terminal-message.collection.d.ts +2 -0
  14. package/collections/ai-terminal-message.collection.js +121 -0
  15. package/collections/ai-terminal-message.collection.js.map +1 -0
  16. package/collections/app-setting.collection.d.ts +3 -0
  17. package/collections/app-setting.collection.js +103 -0
  18. package/collections/app-setting.collection.js.map +1 -0
  19. package/collections/app-status.collection.d.ts +3 -0
  20. package/collections/app-status.collection.js +57 -0
  21. package/collections/app-status.collection.js.map +1 -0
  22. package/collections/communication-metric.collection.d.ts +2 -0
  23. package/collections/communication-metric.collection.js +133 -0
  24. package/collections/communication-metric.collection.js.map +1 -0
  25. package/collections/counter.collection.d.ts +3 -0
  26. package/collections/counter.collection.js +56 -0
  27. package/collections/counter.collection.js.map +1 -0
  28. package/collections/cron-job-history.collection.d.ts +3 -0
  29. package/collections/cron-job-history.collection.js +137 -0
  30. package/collections/cron-job-history.collection.js.map +1 -0
  31. package/collections/cron-job.collection.d.ts +3 -0
  32. package/collections/cron-job.collection.js +92 -0
  33. package/collections/cron-job.collection.js.map +1 -0
  34. package/collections/customer-notification.collection.d.ts +3 -0
  35. package/collections/customer-notification.collection.js +130 -0
  36. package/collections/customer-notification.collection.js.map +1 -0
  37. package/collections/customer-portal-password.collection.d.ts +3 -0
  38. package/collections/customer-portal-password.collection.js +75 -0
  39. package/collections/customer-portal-password.collection.js.map +1 -0
  40. package/collections/email-history.collection.d.ts +3 -0
  41. package/collections/email-history.collection.js +121 -0
  42. package/collections/email-history.collection.js.map +1 -0
  43. package/collections/email-verified.collection.d.ts +3 -0
  44. package/collections/email-verified.collection.js +61 -0
  45. package/collections/email-verified.collection.js.map +1 -0
  46. package/collections/file.collection.d.ts +3 -0
  47. package/collections/file.collection.js +74 -0
  48. package/collections/file.collection.js.map +1 -0
  49. package/collections/flag-update.collection.d.ts +3 -0
  50. package/collections/flag-update.collection.js +57 -0
  51. package/collections/flag-update.collection.js.map +1 -0
  52. package/collections/flag.collection.d.ts +3 -0
  53. package/collections/flag.collection.js +57 -0
  54. package/collections/flag.collection.js.map +1 -0
  55. package/collections/log-method-latency.collection.d.ts +3 -0
  56. package/collections/log-method-latency.collection.js +77 -0
  57. package/collections/log-method-latency.collection.js.map +1 -0
  58. package/collections/log-subscription.collection.d.ts +3 -0
  59. package/collections/log-subscription.collection.js +80 -0
  60. package/collections/log-subscription.collection.js.map +1 -0
  61. package/collections/log.collection.d.ts +3 -0
  62. package/collections/log.collection.js +93 -0
  63. package/collections/log.collection.js.map +1 -0
  64. package/collections/logged-in-users.collection.d.ts +3 -0
  65. package/collections/logged-in-users.collection.js +67 -0
  66. package/collections/logged-in-users.collection.js.map +1 -0
  67. package/collections/monitor-cpu.collection.d.ts +3 -0
  68. package/collections/monitor-cpu.collection.js +65 -0
  69. package/collections/monitor-cpu.collection.js.map +1 -0
  70. package/collections/monitor-function.collection.d.ts +3 -0
  71. package/collections/monitor-function.collection.js +74 -0
  72. package/collections/monitor-function.collection.js.map +1 -0
  73. package/collections/monitor-memory.collection.d.ts +3 -0
  74. package/collections/monitor-memory.collection.js +77 -0
  75. package/collections/monitor-memory.collection.js.map +1 -0
  76. package/collections/monitor-mongo.collection.d.ts +3 -0
  77. package/collections/monitor-mongo.collection.js +71 -0
  78. package/collections/monitor-mongo.collection.js.map +1 -0
  79. package/collections/notification.collection.d.ts +3 -0
  80. package/collections/notification.collection.js +57 -0
  81. package/collections/notification.collection.js.map +1 -0
  82. package/collections/openai-usage-ledger.collection.d.ts +2 -0
  83. package/collections/openai-usage-ledger.collection.js +124 -0
  84. package/collections/openai-usage-ledger.collection.js.map +1 -0
  85. package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
  86. package/collections/report-builder-dashboard-builder.collection.js +109 -0
  87. package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
  88. package/collections/report-builder-library.collection.d.ts +3 -0
  89. package/collections/report-builder-library.collection.js +87 -0
  90. package/collections/report-builder-library.collection.js.map +1 -0
  91. package/collections/report-builder-report.collection.d.ts +4 -0
  92. package/collections/report-builder-report.collection.js +180 -0
  93. package/collections/report-builder-report.collection.js.map +1 -0
  94. package/collections/user-group.collection.d.ts +4 -0
  95. package/collections/user-group.collection.js +89 -0
  96. package/collections/user-group.collection.js.map +1 -0
  97. package/collections/user-guide.collection.d.ts +3 -0
  98. package/collections/user-guide.collection.js +57 -0
  99. package/collections/user-guide.collection.js.map +1 -0
  100. package/collections/user.collection.d.ts +4 -0
  101. package/collections/user.collection.js +180 -0
  102. package/collections/user.collection.js.map +1 -0
  103. package/cron/cron.d.ts +14 -0
  104. package/cron/cron.js +216 -0
  105. package/cron/cron.js.map +1 -0
  106. package/fixtures/cron-jobs.d.ts +1 -0
  107. package/fixtures/cron-jobs.js +150 -0
  108. package/fixtures/cron-jobs.js.map +1 -0
  109. package/fixtures/init.d.ts +1 -0
  110. package/fixtures/init.js +91 -0
  111. package/fixtures/init.js.map +1 -0
  112. package/http/auth.d.ts +2 -0
  113. package/http/auth.js +903 -0
  114. package/http/auth.js.map +1 -0
  115. package/http/health.d.ts +1 -0
  116. package/http/health.js +11 -0
  117. package/http/health.js.map +1 -0
  118. package/http/home.d.ts +1 -0
  119. package/http/home.js +134 -0
  120. package/http/home.js.map +1 -0
  121. package/http/slow-query-publication.d.ts +2 -0
  122. package/http/slow-query-publication.js +99 -0
  123. package/http/slow-query-publication.js.map +1 -0
  124. package/index.d.ts +1 -0
  125. package/index.js +19 -0
  126. package/index.js.map +1 -0
  127. package/managers/communication-metric.manager.d.ts +16 -0
  128. package/managers/communication-metric.manager.js +134 -0
  129. package/managers/communication-metric.manager.js.map +1 -0
  130. package/managers/cron.manager.d.ts +20 -0
  131. package/managers/cron.manager.js +534 -0
  132. package/managers/cron.manager.js.map +1 -0
  133. package/managers/customer-notification-content.manager.d.ts +55 -0
  134. package/managers/customer-notification-content.manager.js +158 -0
  135. package/managers/customer-notification-content.manager.js.map +1 -0
  136. package/managers/diagnostic-manager-bootstrap.d.ts +9 -0
  137. package/managers/diagnostic-manager-bootstrap.js +260 -0
  138. package/managers/diagnostic-manager-bootstrap.js.map +1 -0
  139. package/managers/error-auto-fix.manager.d.ts +149 -0
  140. package/managers/error-auto-fix.manager.js +3064 -0
  141. package/managers/error-auto-fix.manager.js.map +1 -0
  142. package/managers/local-log.manager.d.ts +18 -0
  143. package/managers/local-log.manager.js +88 -0
  144. package/managers/local-log.manager.js.map +1 -0
  145. package/managers/method.manager.d.ts +77 -0
  146. package/managers/method.manager.js +1701 -0
  147. package/managers/method.manager.js.map +1 -0
  148. package/managers/mongo.manager.d.ts +222 -0
  149. package/managers/mongo.manager.js +4984 -0
  150. package/managers/mongo.manager.js.map +1 -0
  151. package/managers/monitor.manager.d.ts +69 -0
  152. package/managers/monitor.manager.js +534 -0
  153. package/managers/monitor.manager.js.map +1 -0
  154. package/managers/openai-usage-ledger.manager.d.ts +15 -0
  155. package/managers/openai-usage-ledger.manager.js +144 -0
  156. package/managers/openai-usage-ledger.manager.js.map +1 -0
  157. package/managers/slow-query-verifier.manager.d.ts +144 -0
  158. package/managers/slow-query-verifier.manager.js +3857 -0
  159. package/managers/slow-query-verifier.manager.js.map +1 -0
  160. package/managers/slow-query.manager.d.ts +28 -0
  161. package/managers/slow-query.manager.js +468 -0
  162. package/managers/slow-query.manager.js.map +1 -0
  163. package/managers/subscription.manager.d.ts +169 -0
  164. package/managers/subscription.manager.js +3422 -0
  165. package/managers/subscription.manager.js.map +1 -0
  166. package/managers/websocket.manager.d.ts +73 -0
  167. package/managers/websocket.manager.js +673 -0
  168. package/managers/websocket.manager.js.map +1 -0
  169. package/managers/worker-dispatcher.manager.d.ts +117 -0
  170. package/managers/worker-dispatcher.manager.js +1210 -0
  171. package/managers/worker-dispatcher.manager.js.map +1 -0
  172. package/managers/worker-server.manager.d.ts +16 -0
  173. package/managers/worker-server.manager.js +530 -0
  174. package/managers/worker-server.manager.js.map +1 -0
  175. package/methods/accounts.d.ts +2 -0
  176. package/methods/accounts.js +624 -0
  177. package/methods/accounts.js.map +1 -0
  178. package/methods/ai-terminal.d.ts +304 -0
  179. package/methods/ai-terminal.js +25096 -0
  180. package/methods/ai-terminal.js.map +1 -0
  181. package/methods/app-settings.d.ts +2 -0
  182. package/methods/app-settings.js +169 -0
  183. package/methods/app-settings.js.map +1 -0
  184. package/methods/aws.d.ts +2 -0
  185. package/methods/aws.js +874 -0
  186. package/methods/aws.js.map +1 -0
  187. package/methods/collections.d.ts +2 -0
  188. package/methods/collections.js +626 -0
  189. package/methods/collections.js.map +1 -0
  190. package/methods/counters.d.ts +2 -0
  191. package/methods/counters.js +111 -0
  192. package/methods/counters.js.map +1 -0
  193. package/methods/cron-jobs.d.ts +2 -0
  194. package/methods/cron-jobs.js +2471 -0
  195. package/methods/cron-jobs.js.map +1 -0
  196. package/methods/customer-notifications.d.ts +2 -0
  197. package/methods/customer-notifications.js +528 -0
  198. package/methods/customer-notifications.js.map +1 -0
  199. package/methods/diagnostics.d.ts +2 -0
  200. package/methods/diagnostics.js +514 -0
  201. package/methods/diagnostics.js.map +1 -0
  202. package/methods/flag-updates.d.ts +2 -0
  203. package/methods/flag-updates.js +8 -0
  204. package/methods/flag-updates.js.map +1 -0
  205. package/methods/flags.d.ts +2 -0
  206. package/methods/flags.js +8 -0
  207. package/methods/flags.js.map +1 -0
  208. package/methods/logs.d.ts +2 -0
  209. package/methods/logs.js +750 -0
  210. package/methods/logs.js.map +1 -0
  211. package/methods/mongo-explorer.d.ts +2 -0
  212. package/methods/mongo-explorer.js +1811 -0
  213. package/methods/mongo-explorer.js.map +1 -0
  214. package/methods/monitor.d.ts +2 -0
  215. package/methods/monitor.js +543 -0
  216. package/methods/monitor.js.map +1 -0
  217. package/methods/pdf.d.ts +2 -0
  218. package/methods/pdf.js +1195 -0
  219. package/methods/pdf.js.map +1 -0
  220. package/methods/publications.d.ts +1 -0
  221. package/methods/publications.js +183 -0
  222. package/methods/publications.js.map +1 -0
  223. package/methods/report-builder.d.ts +2 -0
  224. package/methods/report-builder.js +3099 -0
  225. package/methods/report-builder.js.map +1 -0
  226. package/methods/support.d.ts +2 -0
  227. package/methods/support.js +322 -0
  228. package/methods/support.js.map +1 -0
  229. package/models/ai-terminal-conversation.model.d.ts +17 -0
  230. package/models/ai-terminal-conversation.model.js +4 -0
  231. package/models/ai-terminal-conversation.model.js.map +1 -0
  232. package/models/ai-terminal-issue-report.model.d.ts +19 -0
  233. package/models/ai-terminal-issue-report.model.js +4 -0
  234. package/models/ai-terminal-issue-report.model.js.map +1 -0
  235. package/models/ai-terminal-message.model.d.ts +22 -0
  236. package/models/ai-terminal-message.model.js +4 -0
  237. package/models/ai-terminal-message.model.js.map +1 -0
  238. package/models/app-setting.model.d.ts +16 -0
  239. package/models/app-setting.model.js +4 -0
  240. package/models/app-setting.model.js.map +1 -0
  241. package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
  242. package/models/app-status.model.js +4 -0
  243. package/models/app-status.model.js.map +1 -0
  244. package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
  245. package/models/billing-logged-in-users.model.js +4 -0
  246. package/models/billing-logged-in-users.model.js.map +1 -0
  247. package/models/collection-document.model.d.ts +21 -0
  248. package/models/collection-document.model.js +4 -0
  249. package/models/collection-document.model.js.map +1 -0
  250. package/models/communication-metric.model.d.ts +20 -0
  251. package/models/communication-metric.model.js +4 -0
  252. package/models/communication-metric.model.js.map +1 -0
  253. package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
  254. package/models/counter.model.js +4 -0
  255. package/models/counter.model.js.map +1 -0
  256. package/models/cron-job-history.model.d.ts +15 -0
  257. package/models/cron-job-history.model.js +4 -0
  258. package/models/cron-job-history.model.js.map +1 -0
  259. package/models/cron-job.model.d.ts +14 -0
  260. package/models/cron-job.model.js +4 -0
  261. package/models/cron-job.model.js.map +1 -0
  262. package/models/customer-notification.model.d.ts +26 -0
  263. package/models/customer-notification.model.js +4 -0
  264. package/models/customer-notification.model.js.map +1 -0
  265. package/models/customer-portal-password.model.d.ts +11 -0
  266. package/models/customer-portal-password.model.js +4 -0
  267. package/models/customer-portal-password.model.js.map +1 -0
  268. package/models/dialog.model.d.ts +23 -0
  269. package/models/dialog.model.js +4 -0
  270. package/models/dialog.model.js.map +1 -0
  271. package/models/email-history.model.d.ts +30 -0
  272. package/{src/models/email-history.model.ts → models/email-history.model.js} +4 -34
  273. package/models/email-history.model.js.map +1 -0
  274. package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
  275. package/models/email-verified.model.js +4 -0
  276. package/models/email-verified.model.js.map +1 -0
  277. package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
  278. package/models/file.model.js +4 -0
  279. package/models/file.model.js.map +1 -0
  280. package/{src/models/flag-update.model.ts → models/flag-update.model.d.ts} +3 -4
  281. package/models/flag-update.model.js +4 -0
  282. package/models/flag-update.model.js.map +1 -0
  283. package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
  284. package/models/flag.model.js +4 -0
  285. package/models/flag.model.js.map +1 -0
  286. package/models/log-method-latency.model.d.ts +10 -0
  287. package/models/log-method-latency.model.js +4 -0
  288. package/models/log-method-latency.model.js.map +1 -0
  289. package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +9 -11
  290. package/models/log-subscription.model.js +4 -0
  291. package/models/log-subscription.model.js.map +1 -0
  292. package/models/log.model.d.ts +17 -0
  293. package/models/log.model.js +4 -0
  294. package/models/log.model.js.map +1 -0
  295. package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
  296. package/models/logged-in-users.model.js +4 -0
  297. package/models/logged-in-users.model.js.map +1 -0
  298. package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
  299. package/models/method-response.model.js +4 -0
  300. package/models/method-response.model.js.map +1 -0
  301. package/models/method.model.d.ts +24 -0
  302. package/models/method.model.js +4 -0
  303. package/models/method.model.js.map +1 -0
  304. package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
  305. package/models/monitor-cpu.model.js +4 -0
  306. package/models/monitor-cpu.model.js.map +1 -0
  307. package/models/monitor-function.model.d.ts +14 -0
  308. package/models/monitor-function.model.js +4 -0
  309. package/models/monitor-function.model.js.map +1 -0
  310. package/models/monitor-memory.model.d.ts +15 -0
  311. package/models/monitor-memory.model.js +4 -0
  312. package/models/monitor-memory.model.js.map +1 -0
  313. package/models/monitor-mongo.model.d.ts +13 -0
  314. package/models/monitor-mongo.model.js +4 -0
  315. package/models/monitor-mongo.model.js.map +1 -0
  316. package/{src/models/notification.model.ts → models/notification.model.d.ts} +4 -6
  317. package/models/notification.model.js +4 -0
  318. package/models/notification.model.js.map +1 -0
  319. package/models/openai-usage-ledger.model.d.ts +15 -0
  320. package/models/openai-usage-ledger.model.js +4 -0
  321. package/models/openai-usage-ledger.model.js.map +1 -0
  322. package/models/pagination.model.d.ts +11 -0
  323. package/models/pagination.model.js +28 -0
  324. package/models/pagination.model.js.map +1 -0
  325. package/models/permission.model.d.ts +12 -0
  326. package/models/permission.model.js +4 -0
  327. package/models/permission.model.js.map +1 -0
  328. package/models/report-builder-dashboard-builder.model.d.ts +25 -0
  329. package/models/report-builder-dashboard-builder.model.js +4 -0
  330. package/models/report-builder-dashboard-builder.model.js.map +1 -0
  331. package/models/report-builder-library.model.d.ts +17 -0
  332. package/models/report-builder-library.model.js +4 -0
  333. package/models/report-builder-library.model.js.map +1 -0
  334. package/models/report-builder-report.model.d.ts +120 -0
  335. package/models/report-builder-report.model.js +4 -0
  336. package/models/report-builder-report.model.js.map +1 -0
  337. package/models/report-builder.model.d.ts +61 -0
  338. package/models/report-builder.model.js +4 -0
  339. package/models/report-builder.model.js.map +1 -0
  340. package/models/select-data-label.model.d.ts +9 -0
  341. package/models/select-data-label.model.js +4 -0
  342. package/models/select-data-label.model.js.map +1 -0
  343. package/models/server-message.model.d.ts +32 -0
  344. package/models/server-message.model.js +4 -0
  345. package/models/server-message.model.js.map +1 -0
  346. package/models/slow-query-report.model.d.ts +23 -0
  347. package/models/slow-query-report.model.js +4 -0
  348. package/models/slow-query-report.model.js.map +1 -0
  349. package/models/subscription.model.d.ts +31 -0
  350. package/models/subscription.model.js +4 -0
  351. package/models/subscription.model.js.map +1 -0
  352. package/models/support-ticket.model.d.ts +87 -0
  353. package/models/support-ticket.model.js +4 -0
  354. package/models/support-ticket.model.js.map +1 -0
  355. package/models/user-group.model.d.ts +20 -0
  356. package/models/user-group.model.js +4 -0
  357. package/models/user-group.model.js.map +1 -0
  358. package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
  359. package/models/user-guide.model.js +4 -0
  360. package/models/user-guide.model.js.map +1 -0
  361. package/models/user.model.d.ts +84 -0
  362. package/models/user.model.js +4 -0
  363. package/models/user.model.js.map +1 -0
  364. package/package.json +1 -1
  365. package/private/images/ResolveIO.png +0 -0
  366. package/public_api.js +107 -0
  367. package/public_api.js.map +1 -0
  368. package/publications/ai-terminal.d.ts +1 -0
  369. package/publications/ai-terminal.js +122 -0
  370. package/publications/ai-terminal.js.map +1 -0
  371. package/publications/app-settings.d.ts +2 -0
  372. package/publications/app-settings.js +28 -0
  373. package/publications/app-settings.js.map +1 -0
  374. package/publications/app-status.d.ts +2 -0
  375. package/publications/app-status.js +16 -0
  376. package/publications/app-status.js.map +1 -0
  377. package/publications/cron-jobs.d.ts +2 -0
  378. package/publications/cron-jobs.js +32 -0
  379. package/publications/cron-jobs.js.map +1 -0
  380. package/publications/customer-notifications.d.ts +2 -0
  381. package/publications/customer-notifications.js +161 -0
  382. package/publications/customer-notifications.js.map +1 -0
  383. package/publications/files.d.ts +2 -0
  384. package/publications/files.js +36 -0
  385. package/publications/files.js.map +1 -0
  386. package/publications/flags-update.d.ts +2 -0
  387. package/publications/flags-update.js +22 -0
  388. package/publications/flags-update.js.map +1 -0
  389. package/publications/flags.d.ts +2 -0
  390. package/publications/flags.js +22 -0
  391. package/publications/flags.js.map +1 -0
  392. package/publications/logs.d.ts +2 -0
  393. package/publications/logs.js +164 -0
  394. package/publications/logs.js.map +1 -0
  395. package/publications/notifications.d.ts +2 -0
  396. package/publications/notifications.js +16 -0
  397. package/publications/notifications.js.map +1 -0
  398. package/publications/report-builder-dashboard-builders.d.ts +2 -0
  399. package/publications/report-builder-dashboard-builders.js +42 -0
  400. package/publications/report-builder-dashboard-builders.js.map +1 -0
  401. package/publications/report-builder-libraries.d.ts +2 -0
  402. package/publications/report-builder-libraries.js +90 -0
  403. package/publications/report-builder-libraries.js.map +1 -0
  404. package/publications/report-builder-reports.d.ts +2 -0
  405. package/publications/report-builder-reports.js +50 -0
  406. package/publications/report-builder-reports.js.map +1 -0
  407. package/publications/super-admin.d.ts +2 -0
  408. package/publications/super-admin.js +16 -0
  409. package/publications/super-admin.js.map +1 -0
  410. package/publications/user-groups.d.ts +1 -0
  411. package/publications/user-groups.js +16 -0
  412. package/publications/user-groups.js.map +1 -0
  413. package/publications/user-guides.d.ts +1 -0
  414. package/publications/user-guides.js +16 -0
  415. package/publications/user-guides.js.map +1 -0
  416. package/resolveio-server-app.d.ts +70 -0
  417. package/resolveio-server-app.js +801 -0
  418. package/resolveio-server-app.js.map +1 -0
  419. package/server-app.d.ts +167 -0
  420. package/server-app.js +2784 -0
  421. package/server-app.js.map +1 -0
  422. package/services/codex-client.d.ts +119 -0
  423. package/services/codex-client.js +1470 -0
  424. package/services/codex-client.js.map +1 -0
  425. package/services/openai-client.d.ts +46 -0
  426. package/services/openai-client.js +318 -0
  427. package/services/openai-client.js.map +1 -0
  428. package/types/error-report.d.ts +25 -0
  429. package/types/error-report.js +4 -0
  430. package/types/error-report.js.map +1 -0
  431. package/types/slow-query-report.d.ts +27 -0
  432. package/types/slow-query-report.js +6 -0
  433. package/types/slow-query-report.js.map +1 -0
  434. package/util/common.d.ts +31 -0
  435. package/util/common.js +683 -0
  436. package/util/common.js.map +1 -0
  437. package/util/customer-portal-password.d.ts +13 -0
  438. package/util/customer-portal-password.js +209 -0
  439. package/util/customer-portal-password.js.map +1 -0
  440. package/util/error-reporter.d.ts +52 -0
  441. package/util/error-reporter.js +326 -0
  442. package/util/error-reporter.js.map +1 -0
  443. package/util/error-tracking.d.ts +13 -0
  444. package/util/error-tracking.js +120 -0
  445. package/util/error-tracking.js.map +1 -0
  446. package/util/report-builder-unwinds.d.ts +15 -0
  447. package/util/report-builder-unwinds.js +156 -0
  448. package/util/report-builder-unwinds.js.map +1 -0
  449. package/util/schema-report-builder.d.ts +6 -0
  450. package/util/schema-report-builder.js +481 -0
  451. package/util/schema-report-builder.js.map +1 -0
  452. package/util/slow-query-reporter.d.ts +28 -0
  453. package/util/slow-query-reporter.js +226 -0
  454. package/util/slow-query-reporter.js.map +1 -0
  455. package/util/subscription-dependency-context.d.ts +34 -0
  456. package/util/subscription-dependency-context.js +1283 -0
  457. package/util/subscription-dependency-context.js.map +1 -0
  458. package/util/tokenizer.d.ts +5 -0
  459. package/util/tokenizer.js +41 -0
  460. package/util/tokenizer.js.map +1 -0
  461. package/workers/codex-runner.worker.d.ts +1 -0
  462. package/workers/codex-runner.worker.js +192 -0
  463. package/workers/codex-runner.worker.js.map +1 -0
  464. package/.github/workflows/ai-assistant-nightly-eval.yml +0 -224
  465. package/.github/workflows/ai-assistant-pr-guardrails.yml +0 -60
  466. package/.nodemon.json +0 -5
  467. package/.vscode/settings.json +0 -21
  468. package/AGENTS.md +0 -179
  469. package/README.md +0 -22
  470. package/build_package.sh +0 -5
  471. package/compileDTS.pl +0 -64
  472. package/docs/ai-assistant-nightly-eval.md +0 -65
  473. package/docs/ai-assistant-preflight-checklist.md +0 -23
  474. package/docs/ai-assistant-report-builder-bridge-playbook.md +0 -115
  475. package/eslint-plugin-custom/index.js +0 -7
  476. package/eslint-plugin-custom/rules/no-filter-zero-index.js +0 -44
  477. package/eslint.config.js +0 -103
  478. package/gulpfile.js +0 -216
  479. package/methodAndPublicationListGenerator.py +0 -319
  480. package/mongodbensurers.js +0 -2
  481. package/mongostop.js +0 -3
  482. package/settings.development.json +0 -25
  483. package/settings.development.redacted.json +0 -25
  484. package/src/.env +0 -12
  485. package/src/ai/assistant-core-heuristics.ts +0 -577
  486. package/src/client-server-app.ts +0 -12
  487. package/src/collections/ai-terminal-conversation.collection.ts +0 -91
  488. package/src/collections/ai-terminal-issue-report.collection.ts +0 -99
  489. package/src/collections/ai-terminal-message.collection.ts +0 -77
  490. package/src/collections/app-setting.collection.ts +0 -104
  491. package/src/collections/app-status.collection.ts +0 -58
  492. package/src/collections/communication-metric.collection.ts +0 -84
  493. package/src/collections/counter.collection.ts +0 -56
  494. package/src/collections/cron-job-history.collection.ts +0 -94
  495. package/src/collections/cron-job.collection.ts +0 -92
  496. package/src/collections/customer-notification.collection.ts +0 -131
  497. package/src/collections/customer-portal-password.collection.ts +0 -76
  498. package/src/collections/email-history.collection.ts +0 -121
  499. package/src/collections/email-verified.collection.ts +0 -61
  500. package/src/collections/file.collection.ts +0 -74
  501. package/src/collections/flag-update.collection.ts +0 -57
  502. package/src/collections/flag.collection.ts +0 -57
  503. package/src/collections/log-method-latency.collection.ts +0 -77
  504. package/src/collections/log-subscription.collection.ts +0 -80
  505. package/src/collections/log.collection.ts +0 -93
  506. package/src/collections/logged-in-users.collection.ts +0 -67
  507. package/src/collections/monitor-cpu.collection.ts +0 -65
  508. package/src/collections/monitor-function.collection.ts +0 -74
  509. package/src/collections/monitor-memory.collection.ts +0 -77
  510. package/src/collections/monitor-mongo.collection.ts +0 -71
  511. package/src/collections/notification.collection.ts +0 -57
  512. package/src/collections/openai-usage-ledger.collection.ts +0 -77
  513. package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
  514. package/src/collections/report-builder-library.collection.ts +0 -89
  515. package/src/collections/report-builder-report.collection.ts +0 -180
  516. package/src/collections/user-group.collection.ts +0 -89
  517. package/src/collections/user-guide.collection.ts +0 -57
  518. package/src/collections/user.collection.ts +0 -181
  519. package/src/cron/cron.ts +0 -117
  520. package/src/fixtures/cron-jobs.ts +0 -95
  521. package/src/fixtures/init.ts +0 -35
  522. package/src/http/auth.ts +0 -764
  523. package/src/http/health.ts +0 -7
  524. package/src/http/home.ts +0 -90
  525. package/src/http/slow-query-publication.ts +0 -49
  526. package/src/index.ts +0 -1
  527. package/src/managers/communication-metric.manager.ts +0 -82
  528. package/src/managers/cron.manager.ts +0 -333
  529. package/src/managers/customer-notification-content.manager.ts +0 -236
  530. package/src/managers/diagnostic-manager-bootstrap.ts +0 -165
  531. package/src/managers/error-auto-fix.manager.ts +0 -2767
  532. package/src/managers/local-log.manager.ts +0 -113
  533. package/src/managers/method.manager.ts +0 -1557
  534. package/src/managers/mongo.manager.ts +0 -4566
  535. package/src/managers/monitor.manager.ts +0 -489
  536. package/src/managers/openai-usage-ledger.manager.ts +0 -116
  537. package/src/managers/slow-query-verifier.manager.ts +0 -3590
  538. package/src/managers/slow-query.manager.ts +0 -519
  539. package/src/managers/subscription.manager.ts +0 -3120
  540. package/src/managers/websocket.manager.ts +0 -746
  541. package/src/managers/worker-dispatcher.manager.ts +0 -1318
  542. package/src/managers/worker-server.manager.ts +0 -468
  543. package/src/methods/accounts.ts +0 -532
  544. package/src/methods/ai-terminal.ts +0 -25505
  545. package/src/methods/app-settings.ts +0 -114
  546. package/src/methods/aws.ts +0 -646
  547. package/src/methods/collections.ts +0 -544
  548. package/src/methods/counters.ts +0 -67
  549. package/src/methods/cron-jobs.ts +0 -2610
  550. package/src/methods/customer-notifications.ts +0 -458
  551. package/src/methods/diagnostics.ts +0 -447
  552. package/src/methods/flag-updates.ts +0 -7
  553. package/src/methods/flags.ts +0 -7
  554. package/src/methods/logs.ts +0 -656
  555. package/src/methods/mongo-explorer.ts +0 -1883
  556. package/src/methods/monitor.ts +0 -540
  557. package/src/methods/pdf.ts +0 -1210
  558. package/src/methods/publications.ts +0 -128
  559. package/src/methods/report-builder.ts +0 -3305
  560. package/src/methods/support.ts +0 -210
  561. package/src/models/ai-terminal-conversation.model.ts +0 -19
  562. package/src/models/ai-terminal-issue-report.model.ts +0 -21
  563. package/src/models/ai-terminal-message.model.ts +0 -24
  564. package/src/models/app-setting.model.ts +0 -17
  565. package/src/models/collection-document.model.ts +0 -24
  566. package/src/models/communication-metric.model.ts +0 -23
  567. package/src/models/cron-job-history.model.ts +0 -16
  568. package/src/models/cron-job.model.ts +0 -15
  569. package/src/models/customer-notification.model.ts +0 -28
  570. package/src/models/customer-portal-password.model.ts +0 -12
  571. package/src/models/dialog.model.ts +0 -25
  572. package/src/models/log-method-latency.model.ts +0 -11
  573. package/src/models/log.model.ts +0 -19
  574. package/src/models/method.model.ts +0 -23
  575. package/src/models/monitor-function.model.ts +0 -16
  576. package/src/models/monitor-memory.model.ts +0 -17
  577. package/src/models/monitor-mongo.model.ts +0 -15
  578. package/src/models/openai-usage-ledger.model.ts +0 -16
  579. package/src/models/pagination.model.ts +0 -35
  580. package/src/models/permission.model.ts +0 -14
  581. package/src/models/report-builder-dashboard-builder.model.ts +0 -29
  582. package/src/models/report-builder-library.model.ts +0 -20
  583. package/src/models/report-builder-report.model.ts +0 -135
  584. package/src/models/report-builder.model.ts +0 -68
  585. package/src/models/select-data-label.model.ts +0 -9
  586. package/src/models/server-message.model.ts +0 -31
  587. package/src/models/slow-query-report.model.ts +0 -23
  588. package/src/models/subscription.model.ts +0 -73
  589. package/src/models/support-ticket.model.ts +0 -96
  590. package/src/models/user-group.model.ts +0 -24
  591. package/src/models/user.model.ts +0 -96
  592. package/src/private/images/ResolveIO.png +0 -0
  593. package/src/publications/ai-terminal.ts +0 -73
  594. package/src/publications/app-settings.ts +0 -25
  595. package/src/publications/app-status.ts +0 -13
  596. package/src/publications/cron-jobs.ts +0 -29
  597. package/src/publications/customer-notifications.ts +0 -101
  598. package/src/publications/files.ts +0 -33
  599. package/src/publications/flags-update.ts +0 -19
  600. package/src/publications/flags.ts +0 -19
  601. package/src/publications/logs.ts +0 -163
  602. package/src/publications/notifications.ts +0 -13
  603. package/src/publications/report-builder-dashboard-builders.ts +0 -39
  604. package/src/publications/report-builder-libraries.ts +0 -41
  605. package/src/publications/report-builder-reports.ts +0 -47
  606. package/src/publications/super-admin.ts +0 -13
  607. package/src/publications/user-groups.ts +0 -12
  608. package/src/publications/user-guides.ts +0 -12
  609. package/src/resolveio-server-app.ts +0 -617
  610. package/src/server-app.ts +0 -2616
  611. package/src/services/codex-client.ts +0 -1117
  612. package/src/services/openai-client.ts +0 -265
  613. package/src/types/error-report.ts +0 -26
  614. package/src/types/js-tiktoken.d.ts +0 -11
  615. package/src/types/slow-query-report.ts +0 -28
  616. package/src/util/common.ts +0 -649
  617. package/src/util/customer-portal-password.ts +0 -183
  618. package/src/util/error-reporter.ts +0 -332
  619. package/src/util/error-tracking.ts +0 -79
  620. package/src/util/report-builder-unwinds.ts +0 -180
  621. package/src/util/schema-report-builder.ts +0 -448
  622. package/src/util/slow-query-reporter.ts +0 -216
  623. package/src/util/subscription-dependency-context.ts +0 -1096
  624. package/src/util/tokenizer.ts +0 -38
  625. package/src/workers/codex-runner.worker.ts +0 -142
  626. package/start_server.sh +0 -5
  627. package/tests/ai-assistant-corpus-build.ts +0 -484
  628. package/tests/ai-assistant-corpus-replay-e2e.ts +0 -773
  629. package/tests/ai-assistant-data-parity-e2e.ts +0 -2018
  630. package/tests/ai-assistant-eval-triage.ts +0 -831
  631. package/tests/ai-assistant-openai-e2e.ts +0 -1061
  632. package/tests/ai-assistant-openai-git-e2e.ts +0 -155
  633. package/tests/ai-assistant-preflight-matrix.ts +0 -215
  634. package/tests/ai-assistant-routing-eval.test.ts +0 -560
  635. package/tests/ai-assistant-snf-live-eval.ts +0 -921
  636. package/tests/ai-assistant-utils.test.ts +0 -2165
  637. package/tests/error-reporter.test.ts +0 -145
  638. package/tests/report-builder-linking.test.ts +0 -79
  639. package/tests/subscription-connect-race.test.ts +0 -157
  640. package/tests/subscription-dependency-context.test.ts +0 -324
  641. package/tests/subscription-manager-collection-tracking.test.ts +0 -86
  642. package/tests/subscription-manager-invalidation.test.ts +0 -85
  643. package/tsconfig.json +0 -34
  644. /package/{src/private → private}/email-templates/enrollment.html +0 -0
  645. /package/{src/private → private}/email-templates/forgot-password.html +0 -0
  646. /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
  647. /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
  648. /package/{src/private → private}/email-templates/support-ticket.html +0 -0
  649. /package/{src/public_api.ts → public_api.d.ts} +0 -0
@@ -1,489 +0,0 @@
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
- // Example: If not on production or localhost, do a health check
52
- if (
53
- ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'
54
- && ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'
55
- ) {
56
- try {
57
- let instanceId = await axios.get('http://169.254.169.254/latest/meta-data/instance-id');
58
-
59
- setInterval(async () => {
60
- try {
61
- await axios.post('https://backend.resolveio.com/api/health', {
62
- type: 'application',
63
- id_aws_instance: instanceId.data,
64
- version: typeof process.env.APP_VERSION === 'number'
65
- ? (<any>process.env.APP_VERSION).toString()
66
- : process.env.APP_VERSION,
67
- version_key: process.env.APP_VERSION_KEY
68
- });
69
- }
70
- catch {}
71
- }, 10000);
72
- }
73
- catch {}
74
- }
75
-
76
- let lastCPU = this.cpuAverage();
77
-
78
- setInterval(async () => {
79
- let now = new Date();
80
- var endMeasure = this.cpuAverage();
81
- var idleDifference = endMeasure.idle - lastCPU.idle;
82
- var totalDifference = endMeasure.total - lastCPU.total;
83
- var percentageCPU = 1 - idleDifference / totalDifference;
84
-
85
- // Original local code
86
- if (
87
- !ResolveIOServer.shouldWriteLogsOffline()
88
- ) {
89
- await MonitorCPUs.create({
90
- _id: objectIdHexString(),
91
- metadata: {
92
- instance: this._instanceHostname,
93
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
94
- },
95
- date: now,
96
- app: percentageCPU,
97
- system: os.loadavg()[0]
98
- });
99
- }
100
- else {
101
- this.pushMonitorData({
102
- type: 'monitor-cpu',
103
- data: {
104
- metadata: {
105
- instance: this._instanceHostname,
106
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
107
- },
108
- date: now,
109
- app: percentageCPU,
110
- system: os.loadavg()[0]
111
- }
112
- });
113
- }
114
-
115
- lastCPU = endMeasure;
116
-
117
- const memUsage = process.memoryUsage();
118
-
119
- if (
120
- !ResolveIOServer.shouldWriteLogsOffline()
121
- ) {
122
- await MonitorMemorys.create({
123
- _id: objectIdHexString(),
124
- metadata: {
125
- instance: this._instanceHostname,
126
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
127
- },
128
- date: now,
129
- physical_total: memUsage.heapTotal,
130
- physical_used: memUsage.heapUsed,
131
- physical_free: os.freemem(),
132
- virtual: memUsage.rss,
133
- private: memUsage.external,
134
- physical: os.totalmem()
135
- });
136
- }
137
- else {
138
- this.pushMonitorData({
139
- type: 'monitor-memory',
140
- data: {
141
- metadata: {
142
- instance: this._instanceHostname,
143
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
144
- },
145
- date: now,
146
- physical_total: memUsage.heapTotal,
147
- physical_used: memUsage.heapUsed,
148
- physical_free: os.freemem(),
149
- virtual: memUsage.rss,
150
- private: memUsage.external,
151
- physical: os.totalmem(),
152
- type: 'memory'
153
- }
154
- });
155
- }
156
- }, 3000);
157
- }
158
-
159
- async addMongoTracker(data: MongoMonitorModel) {
160
- if (
161
- !ResolveIOServer.shouldWriteLogsOffline()
162
- ) {
163
- if (!data.collection.startsWith('monitor-')) {
164
- await MonitorMongos.create({
165
- _id: objectIdHexString(),
166
- metadata: {
167
- instance: this._instanceHostname,
168
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
169
- },
170
- date: new Date(data.date),
171
- method: data.method,
172
- doc_collection: data.collection,
173
- duration: data.duration,
174
- query: Buffer.byteLength(data.query, 'utf8') < 15800000
175
- ? data.query
176
- : 'Too Big'
177
- });
178
- }
179
- }
180
- else {
181
- if (this._instanceHostname) {
182
- this.pushMonitorData({
183
- type: 'monitor-mongo',
184
- data: {
185
- metadata: {
186
- instance: this._instanceHostname,
187
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
188
- },
189
- date: new Date(data.date),
190
- method: data.method,
191
- doc_collection: data.collection,
192
- duration: data.duration,
193
- query: Buffer.byteLength(data.query, 'utf8') < 15800000
194
- ? data.query
195
- : 'Too Big'
196
- }
197
- });
198
- }
199
- }
200
- }
201
-
202
- async addFunctionTracker(data: MonitorFunction) {
203
- if (typeof(data.data) !== 'string') {
204
- data.data = JSON.stringify(data.data);
205
- }
206
-
207
- if (
208
- !ResolveIOServer.shouldWriteLogsOffline()
209
- ) {
210
- await MonitorFunctions.create({
211
- _id: objectIdHexString(),
212
- metadata: {
213
- instance: this._instanceHostname,
214
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
215
- },
216
- date: new Date(data.startTime),
217
- type: data.functionType,
218
- name: data.functionName,
219
- user: data.user,
220
- duration: data.duration,
221
- data: Buffer.byteLength(data.data, 'utf8') < 15800000
222
- ? data.data
223
- : 'Too Big'
224
- });
225
- }
226
- else {
227
- if (this._instanceHostname) {
228
- this.pushMonitorData({
229
- type: 'monitor-function',
230
- data: {
231
- metadata: {
232
- instance: this._instanceHostname,
233
- client: ResolveIOServer.getServerConfig()['CLIENT_NAME']
234
- },
235
- date: new Date(data.startTime),
236
- type: data.functionType,
237
- name: data.functionName,
238
- user: data.user,
239
- duration: data.duration,
240
- data: Buffer.byteLength(data.data, 'utf8') < 15800000
241
- ? data.data
242
- : 'Too Big'
243
- }
244
- });
245
- }
246
- }
247
- }
248
-
249
- private pushMonitorData(data: LocalLogModel) {
250
- this._monitorData.push(data);
251
-
252
- // If data is huge, flush immediately to file
253
- if (this.estimateBatchSize() >= MAX_BATCH_SIZE) {
254
- this.flushMonitorData();
255
- }
256
- }
257
-
258
- private estimateBatchSize(): number {
259
- return this._monitorData.reduce((total, item) => {
260
- return total + Buffer.byteLength(JSON.stringify(item));
261
- }, 0);
262
- }
263
-
264
- setupEventLoop() {
265
- // Flush every 2.5 seconds
266
- setInterval(() => {
267
- if (this._monitorData.length > 0) {
268
- this.flushMonitorData();
269
- }
270
- }, 2500);
271
- }
272
-
273
- private flushMonitorData() {
274
- const batch = [];
275
- let batchSize = 0;
276
-
277
- while (this._monitorData.length > 0 && batchSize < MAX_BATCH_SIZE) {
278
- const item = this._monitorData.shift();
279
- const itemSize = Buffer.byteLength(JSON.stringify(item));
280
-
281
- if ((batchSize + itemSize) > MAX_BATCH_SIZE && batch.length > 0) {
282
- // put the item back for next round
283
- this._monitorData.unshift(item);
284
- break;
285
- }
286
-
287
- batch.push(item);
288
- batchSize += itemSize;
289
- }
290
-
291
- try {
292
- // Now, instead of calling an external HTTP endpoint, we write the batch to disk:
293
- ResolveIOServer.getLocalLogManager().writeLogs(batch);
294
- }
295
- catch (error) {
296
- console.error(new Date(), 'MonitorManager', 'Failed to flush monitor data to file:', error);
297
- }
298
- }
299
- }
300
-
301
- export interface MongoMonitorModel {
302
- date: Date;
303
- method: string;
304
- collection: string;
305
- duration: number;
306
- query: string;
307
- }
308
-
309
- export class MonitorMongo {
310
- private _startTime = 0;
311
- private _method = '';
312
- private _collection = '';
313
- private _query = '';
314
-
315
- constructor() {}
316
-
317
- static create(method: string, collection: string, query: string) {
318
- const monitorMongo = new MonitorMongo();
319
- monitorMongo.initialize(method, collection, query);
320
- return monitorMongo;
321
- }
322
-
323
- private initialize(method: string, collection: string, query: string) {
324
- this._startTime = Date.now();
325
- this._method = method;
326
- this._collection = collection;
327
- this._query = query;
328
- }
329
-
330
- public async finish() {
331
- let endTime = Date.now();
332
-
333
- let mongoMonitor: MongoMonitorModel = {
334
- date: new Date(endTime),
335
- method: this._method,
336
- collection: this._collection,
337
- query: this._query,
338
- duration: endTime - this._startTime
339
- };
340
-
341
- await ResolveIOServer.getMainServer().getMonitorManager().addMongoTracker(mongoMonitor);
342
- }
343
- }
344
-
345
- export class MonitorManagerFunction {
346
- private _functionCnt = 0;
347
- private _functions: MonitorFunction[] = [];
348
- private _functionLastCompletedWS: { [id_socket: string]: MonitorFunction; } = {};
349
- private _functionLastCompleted: MonitorFunction;
350
-
351
- constructor() {}
352
-
353
- static create() {
354
- const monitorManagerFunction = new MonitorManagerFunction();
355
- monitorManagerFunction.initialize();
356
- return monitorManagerFunction;
357
- }
358
-
359
- private initialize() {
360
-
361
- }
362
-
363
- startMonitorFunction(
364
- functionType: MonitorFunctionType,
365
- functionName: string,
366
- user: string,
367
- id_socket: string,
368
- data: any
369
- ) {
370
- let newMonitorFunction = MonitorFunction.create(
371
- this._functionCnt++,
372
- functionType,
373
- functionName,
374
- user,
375
- id_socket,
376
- data
377
- );
378
-
379
- this._functions.push(newMonitorFunction);
380
- return newMonitorFunction.id;
381
- }
382
-
383
- async finishMonitorFunction(id: number) {
384
- let monitor = this._functions.find(a => a.id === id);
385
-
386
- if (monitor) {
387
- await monitor.finish();
388
- this._functionLastCompleted = monitor;
389
- this._functionLastCompletedWS[monitor.id_socket] = monitor;
390
- this._functions.splice(
391
- this._functions.map(a => a.id).indexOf(id),
392
- 1
393
- );
394
- }
395
- }
396
-
397
- getActiveMonitorFunctions() {
398
- return this._functions;
399
- }
400
-
401
- getLastCompletedMonitorFunction() {
402
- return this._functionLastCompleted;
403
- }
404
-
405
- getLastCompletedMonitorFunctionWS() {
406
- return this._functionLastCompletedWS;
407
- }
408
- }
409
-
410
- export type MonitorFunctionType =
411
- 'Cron Method'
412
- | 'Method'
413
- | 'User Specific Publication'
414
- | 'Publication';
415
-
416
- export class MonitorFunction {
417
- private _timer: NodeJS.Timeout = null;
418
- public duration = 0;
419
- public functionType: MonitorFunctionType;
420
- public functionName: string;
421
- public user: string;
422
- public data: any;
423
- public startTime: Date = null;
424
- public endTime: Date = null;
425
- public lastTime: Date = null;
426
- public id_socket = '';
427
- public id = 0;
428
-
429
- constructor() {}
430
-
431
- static create(
432
- id: number,
433
- functionType: MonitorFunctionType,
434
- functionName: string,
435
- user: string,
436
- id_socket: string,
437
- data: any
438
- ) {
439
- const monitorFunction = new MonitorFunction();
440
- monitorFunction.initialize(id, functionType, functionName, user, id_socket, data);
441
- return monitorFunction;
442
- }
443
-
444
- private initialize(
445
- id: number,
446
- functionType: MonitorFunctionType,
447
- functionName: string,
448
- user: string,
449
- id_socket: string,
450
- data: any
451
- ) {
452
- this.id = id;
453
- this.startTime = new Date();
454
- this.functionType = functionType;
455
- this.functionName = functionName;
456
- this.user = user;
457
- this.id_socket = id_socket;
458
- this.data = data;
459
- this.lastTime = new Date();
460
-
461
- this._timer = setInterval(() => {
462
- let diff = Date.now() - this.lastTime.getTime();
463
-
464
- if (diff > this.duration) {
465
- this.duration = diff;
466
- }
467
-
468
- this.lastTime = new Date();
469
- }, 1000);
470
- }
471
-
472
- public async finish() {
473
- if (this._timer) {
474
- clearInterval(this._timer);
475
- this._timer = null;
476
- }
477
-
478
- this.endTime = new Date();
479
-
480
- if (this.duration >= 5000) {
481
- // Optional slow function logging or email
482
- await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);
483
- }
484
-
485
- // await ResolveIOServer.getMainServer().getMonitorManager().addFunctionTracker(this);
486
-
487
- return Promise.resolve(true);
488
- }
489
- }
@@ -1,116 +0,0 @@
1
- import { round } from '../util/common';
2
- import { ResolveIOServer } from '../resolveio-server-app';
3
- import { OpenAIUsageLedger } from '../collections/openai-usage-ledger.collection';
4
-
5
- export interface OpenAIUsageRecordInput {
6
- id_client?: string;
7
- model: string;
8
- input_tokens: number;
9
- cached_input_tokens?: number;
10
- output_tokens: number;
11
- total_tokens: number;
12
- billable?: boolean;
13
- category?: string;
14
- id_request?: string;
15
- id_conversation?: string;
16
- timestamp?: Date;
17
- cost_estimate?: number;
18
- }
19
-
20
- type PricingConfig = {
21
- inputPer1k: number;
22
- outputPer1k: number;
23
- };
24
-
25
- const toNumber = (value: any): number => {
26
- const parsed = Number(value);
27
- return Number.isFinite(parsed) ? parsed : 0;
28
- };
29
-
30
- const normalizeModelKey = (value: string): string => {
31
- return String(value || '').trim().toLowerCase();
32
- };
33
-
34
- const parsePricingJson = (raw: string): Record<string, PricingConfig> => {
35
- if (!raw) {
36
- return {};
37
- }
38
- try {
39
- const parsed = JSON.parse(raw);
40
- if (!parsed || typeof parsed !== 'object') {
41
- return {};
42
- }
43
- const out: Record<string, PricingConfig> = {};
44
- Object.keys(parsed).forEach((key) => {
45
- const entry = parsed[key] || {};
46
- const inputPer1k = toNumber(entry.inputPer1k ?? entry.input ?? entry.prompt ?? 0);
47
- const outputPer1k = toNumber(entry.outputPer1k ?? entry.output ?? entry.completion ?? 0);
48
- if (inputPer1k || outputPer1k) {
49
- out[normalizeModelKey(key)] = { inputPer1k, outputPer1k };
50
- }
51
- });
52
- return out;
53
- }
54
- catch {
55
- return {};
56
- }
57
- };
58
-
59
- const resolvePricingConfig = (): { perModel: Record<string, PricingConfig>; defaultPricing: PricingConfig } => {
60
- const config = ResolveIOServer.getServerConfig() || {};
61
- const rawJson = String(config['OPENAI_MODEL_PRICING'] ?? process.env.OPENAI_MODEL_PRICING ?? '').trim();
62
- const defaultInput = toNumber(config['OPENAI_COST_PER_1K_INPUT_TOKENS'] ?? process.env.OPENAI_COST_PER_1K_INPUT_TOKENS ?? 0);
63
- const defaultOutput = toNumber(config['OPENAI_COST_PER_1K_OUTPUT_TOKENS'] ?? process.env.OPENAI_COST_PER_1K_OUTPUT_TOKENS ?? 0);
64
- return {
65
- perModel: parsePricingJson(rawJson),
66
- defaultPricing: { inputPer1k: defaultInput, outputPer1k: defaultOutput }
67
- };
68
- };
69
-
70
- const estimateCost = (model: string, inputTokens: number, outputTokens: number, cachedInputTokens = 0): number => {
71
- const { perModel, defaultPricing } = resolvePricingConfig();
72
- const normalizedModel = normalizeModelKey(model);
73
- const pricing = perModel[normalizedModel] || defaultPricing;
74
- if (!pricing.inputPer1k && !pricing.outputPer1k) {
75
- return 0;
76
- }
77
- // Cached prompt tokens are typically discounted or free; only uncached input should use full input pricing.
78
- const uncachedInputTokens = Math.max(0, toNumber(inputTokens) - toNumber(cachedInputTokens));
79
- const inputCost = (uncachedInputTokens / 1000) * pricing.inputPer1k;
80
- const outputCost = (toNumber(outputTokens) / 1000) * pricing.outputPer1k;
81
- return round(inputCost + outputCost, 6);
82
- };
83
-
84
- export async function recordOpenAIUsage(input: OpenAIUsageRecordInput): Promise<void> {
85
- if (!input) {
86
- return;
87
- }
88
- const idClient = String(input.id_client || '').trim();
89
- const inputTokens = toNumber(input.input_tokens);
90
- const cachedInputTokens = toNumber(input.cached_input_tokens);
91
- const outputTokens = toNumber(input.output_tokens);
92
- const totalTokens = toNumber(input.total_tokens);
93
- if (!totalTokens && (!inputTokens && !outputTokens)) {
94
- return;
95
- }
96
- const model = String(input.model || '').trim() || 'unknown';
97
- const normalizedInputCostEstimate = toNumber(input.cost_estimate);
98
- const costEstimate = normalizedInputCostEstimate > 0
99
- ? normalizedInputCostEstimate
100
- : estimateCost(model, inputTokens, outputTokens, cachedInputTokens);
101
-
102
- await OpenAIUsageLedger.insertOne({
103
- id_client: idClient,
104
- timestamp: input.timestamp || new Date(),
105
- model,
106
- input_tokens: inputTokens,
107
- cached_input_tokens: cachedInputTokens,
108
- output_tokens: outputTokens,
109
- total_tokens: totalTokens || (inputTokens + outputTokens),
110
- cost_estimate: costEstimate,
111
- billable: input.billable !== false,
112
- category: input.category || '',
113
- id_request: input.id_request || '',
114
- id_conversation: input.id_conversation || ''
115
- });
116
- }