@resolveio/server-lib 22.2.32 → 22.2.34

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/.github/workflows/ai-assistant-nightly-eval.yml +224 -0
  2. package/.github/workflows/ai-assistant-pr-guardrails.yml +60 -0
  3. package/.nodemon.json +5 -0
  4. package/.vscode/settings.json +21 -0
  5. package/AGENTS.md +179 -0
  6. package/README.md +22 -0
  7. package/build_package.sh +5 -0
  8. package/compileDTS.pl +64 -0
  9. package/docs/ai-assistant-nightly-eval.md +65 -0
  10. package/docs/ai-assistant-preflight-checklist.md +23 -0
  11. package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
  12. package/eslint-plugin-custom/index.js +7 -0
  13. package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
  14. package/eslint.config.js +103 -0
  15. package/gulpfile.js +216 -0
  16. package/methodAndPublicationListGenerator.py +319 -0
  17. package/mongodbensurers.js +2 -0
  18. package/mongostop.js +3 -0
  19. package/package.json +1 -1
  20. package/settings.development.json +25 -0
  21. package/settings.development.redacted.json +25 -0
  22. package/src/.env +12 -0
  23. package/src/ai/assistant-core-heuristics.ts +577 -0
  24. package/src/client-server-app.ts +12 -0
  25. package/src/collections/ai-terminal-conversation.collection.ts +91 -0
  26. package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
  27. package/src/collections/ai-terminal-message.collection.ts +77 -0
  28. package/src/collections/app-setting.collection.ts +104 -0
  29. package/src/collections/app-status.collection.ts +58 -0
  30. package/src/collections/communication-metric.collection.ts +84 -0
  31. package/src/collections/counter.collection.ts +56 -0
  32. package/src/collections/cron-job-history.collection.ts +94 -0
  33. package/src/collections/cron-job.collection.ts +92 -0
  34. package/src/collections/customer-notification.collection.ts +131 -0
  35. package/src/collections/customer-portal-password.collection.ts +76 -0
  36. package/src/collections/email-history.collection.ts +121 -0
  37. package/src/collections/email-verified.collection.ts +61 -0
  38. package/src/collections/file.collection.ts +74 -0
  39. package/src/collections/flag-update.collection.ts +57 -0
  40. package/src/collections/flag.collection.ts +57 -0
  41. package/src/collections/log-method-latency.collection.ts +77 -0
  42. package/src/collections/log-subscription.collection.ts +80 -0
  43. package/src/collections/log.collection.ts +93 -0
  44. package/src/collections/logged-in-users.collection.ts +67 -0
  45. package/src/collections/monitor-cpu.collection.ts +65 -0
  46. package/src/collections/monitor-function.collection.ts +74 -0
  47. package/src/collections/monitor-memory.collection.ts +77 -0
  48. package/src/collections/monitor-mongo.collection.ts +71 -0
  49. package/src/collections/notification.collection.ts +57 -0
  50. package/src/collections/openai-usage-ledger.collection.ts +77 -0
  51. package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
  52. package/src/collections/report-builder-library.collection.ts +89 -0
  53. package/src/collections/report-builder-report.collection.ts +180 -0
  54. package/src/collections/user-group.collection.ts +89 -0
  55. package/src/collections/user-guide.collection.ts +57 -0
  56. package/src/collections/user.collection.ts +181 -0
  57. package/src/cron/cron.ts +117 -0
  58. package/src/fixtures/cron-jobs.ts +95 -0
  59. package/src/fixtures/init.ts +35 -0
  60. package/src/http/auth.ts +764 -0
  61. package/src/http/health.ts +7 -0
  62. package/src/http/home.ts +90 -0
  63. package/src/http/slow-query-publication.ts +49 -0
  64. package/src/index.ts +1 -0
  65. package/src/managers/communication-metric.manager.ts +82 -0
  66. package/src/managers/cron.manager.ts +333 -0
  67. package/src/managers/customer-notification-content.manager.ts +236 -0
  68. package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
  69. package/src/managers/error-auto-fix.manager.ts +2767 -0
  70. package/src/managers/local-log.manager.ts +113 -0
  71. package/src/managers/method.manager.ts +1557 -0
  72. package/src/managers/mongo.manager.ts +4566 -0
  73. package/src/managers/monitor.manager.ts +489 -0
  74. package/src/managers/openai-usage-ledger.manager.ts +116 -0
  75. package/src/managers/slow-query-verifier.manager.ts +3590 -0
  76. package/src/managers/slow-query.manager.ts +519 -0
  77. package/src/managers/subscription.manager.ts +3120 -0
  78. package/src/managers/websocket.manager.ts +746 -0
  79. package/src/managers/worker-dispatcher.manager.ts +1318 -0
  80. package/src/managers/worker-server.manager.ts +468 -0
  81. package/src/methods/accounts.ts +532 -0
  82. package/src/methods/ai-terminal.ts +25505 -0
  83. package/src/methods/app-settings.ts +114 -0
  84. package/src/methods/aws.ts +646 -0
  85. package/src/methods/collections.ts +544 -0
  86. package/src/methods/counters.ts +67 -0
  87. package/src/methods/cron-jobs.ts +2610 -0
  88. package/src/methods/customer-notifications.ts +458 -0
  89. package/src/methods/diagnostics.ts +447 -0
  90. package/src/methods/flag-updates.ts +7 -0
  91. package/src/methods/flags.ts +7 -0
  92. package/src/methods/logs.ts +656 -0
  93. package/src/methods/mongo-explorer.ts +1883 -0
  94. package/src/methods/monitor.ts +540 -0
  95. package/src/methods/pdf.ts +1210 -0
  96. package/src/methods/publications.ts +128 -0
  97. package/src/methods/report-builder.ts +3305 -0
  98. package/src/methods/support.ts +210 -0
  99. package/src/models/ai-terminal-conversation.model.ts +19 -0
  100. package/src/models/ai-terminal-issue-report.model.ts +21 -0
  101. package/src/models/ai-terminal-message.model.ts +24 -0
  102. package/src/models/app-setting.model.ts +17 -0
  103. package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
  104. package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
  105. package/src/models/collection-document.model.ts +24 -0
  106. package/src/models/communication-metric.model.ts +23 -0
  107. package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
  108. package/src/models/cron-job-history.model.ts +16 -0
  109. package/src/models/cron-job.model.ts +15 -0
  110. package/src/models/customer-notification.model.ts +28 -0
  111. package/src/models/customer-portal-password.model.ts +12 -0
  112. package/src/models/dialog.model.ts +25 -0
  113. package/{models/email-history.model.js → src/models/email-history.model.ts} +34 -4
  114. package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
  115. package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
  116. package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
  117. package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
  118. package/src/models/log-method-latency.model.ts +11 -0
  119. package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
  120. package/src/models/log.model.ts +19 -0
  121. package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
  122. package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
  123. package/src/models/method.model.ts +23 -0
  124. package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
  125. package/src/models/monitor-function.model.ts +16 -0
  126. package/src/models/monitor-memory.model.ts +17 -0
  127. package/src/models/monitor-mongo.model.ts +15 -0
  128. package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
  129. package/src/models/openai-usage-ledger.model.ts +16 -0
  130. package/src/models/pagination.model.ts +35 -0
  131. package/src/models/permission.model.ts +14 -0
  132. package/src/models/report-builder-dashboard-builder.model.ts +29 -0
  133. package/src/models/report-builder-library.model.ts +20 -0
  134. package/src/models/report-builder-report.model.ts +135 -0
  135. package/src/models/report-builder.model.ts +68 -0
  136. package/src/models/select-data-label.model.ts +9 -0
  137. package/src/models/server-message.model.ts +31 -0
  138. package/src/models/slow-query-report.model.ts +23 -0
  139. package/src/models/subscription.model.ts +73 -0
  140. package/src/models/support-ticket.model.ts +96 -0
  141. package/src/models/user-group.model.ts +24 -0
  142. package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
  143. package/src/models/user.model.ts +96 -0
  144. package/src/private/images/ResolveIO.png +0 -0
  145. package/src/publications/ai-terminal.ts +73 -0
  146. package/src/publications/app-settings.ts +25 -0
  147. package/src/publications/app-status.ts +13 -0
  148. package/src/publications/cron-jobs.ts +29 -0
  149. package/src/publications/customer-notifications.ts +101 -0
  150. package/src/publications/files.ts +33 -0
  151. package/src/publications/flags-update.ts +19 -0
  152. package/src/publications/flags.ts +19 -0
  153. package/src/publications/logs.ts +163 -0
  154. package/src/publications/notifications.ts +13 -0
  155. package/src/publications/report-builder-dashboard-builders.ts +39 -0
  156. package/src/publications/report-builder-libraries.ts +41 -0
  157. package/src/publications/report-builder-reports.ts +47 -0
  158. package/src/publications/super-admin.ts +13 -0
  159. package/src/publications/user-groups.ts +12 -0
  160. package/src/publications/user-guides.ts +12 -0
  161. package/src/resolveio-server-app.ts +617 -0
  162. package/src/server-app.ts +2616 -0
  163. package/src/services/codex-client.ts +1117 -0
  164. package/src/services/openai-client.ts +265 -0
  165. package/src/types/error-report.ts +26 -0
  166. package/src/types/js-tiktoken.d.ts +11 -0
  167. package/src/types/slow-query-report.ts +28 -0
  168. package/src/util/common.ts +649 -0
  169. package/src/util/customer-portal-password.ts +183 -0
  170. package/src/util/error-reporter.ts +332 -0
  171. package/src/util/error-tracking.ts +79 -0
  172. package/src/util/report-builder-unwinds.ts +180 -0
  173. package/src/util/schema-report-builder.ts +448 -0
  174. package/src/util/slow-query-reporter.ts +216 -0
  175. package/src/util/subscription-dependency-context.ts +1096 -0
  176. package/src/util/tokenizer.ts +38 -0
  177. package/src/workers/codex-runner.worker.ts +142 -0
  178. package/start_server.sh +5 -0
  179. package/tests/ai-assistant-corpus-build.ts +484 -0
  180. package/tests/ai-assistant-corpus-replay-e2e.ts +773 -0
  181. package/tests/ai-assistant-data-parity-e2e.ts +2018 -0
  182. package/tests/ai-assistant-eval-triage.ts +831 -0
  183. package/tests/ai-assistant-openai-e2e.ts +1061 -0
  184. package/tests/ai-assistant-openai-git-e2e.ts +155 -0
  185. package/tests/ai-assistant-preflight-matrix.ts +215 -0
  186. package/tests/ai-assistant-routing-eval.test.ts +560 -0
  187. package/tests/ai-assistant-snf-live-eval.ts +921 -0
  188. package/tests/ai-assistant-utils.test.ts +2165 -0
  189. package/tests/error-reporter.test.ts +145 -0
  190. package/tests/report-builder-linking.test.ts +79 -0
  191. package/tests/subscription-connect-race.test.ts +157 -0
  192. package/tests/subscription-dependency-context.test.ts +324 -0
  193. package/tests/subscription-manager-collection-tracking.test.ts +86 -0
  194. package/tests/subscription-manager-invalidation.test.ts +85 -0
  195. package/tsconfig.json +34 -0
  196. package/ai/assistant-core-heuristics.d.ts +0 -11
  197. package/ai/assistant-core-heuristics.js +0 -531
  198. package/ai/assistant-core-heuristics.js.map +0 -1
  199. package/client-server-app.d.ts +0 -1
  200. package/client-server-app.js +0 -68
  201. package/client-server-app.js.map +0 -1
  202. package/collections/ai-terminal-conversation.collection.d.ts +0 -2
  203. package/collections/ai-terminal-conversation.collection.js +0 -140
  204. package/collections/ai-terminal-conversation.collection.js.map +0 -1
  205. package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
  206. package/collections/ai-terminal-issue-report.collection.js +0 -148
  207. package/collections/ai-terminal-issue-report.collection.js.map +0 -1
  208. package/collections/ai-terminal-message.collection.d.ts +0 -2
  209. package/collections/ai-terminal-message.collection.js +0 -121
  210. package/collections/ai-terminal-message.collection.js.map +0 -1
  211. package/collections/app-setting.collection.d.ts +0 -3
  212. package/collections/app-setting.collection.js +0 -103
  213. package/collections/app-setting.collection.js.map +0 -1
  214. package/collections/app-status.collection.d.ts +0 -3
  215. package/collections/app-status.collection.js +0 -57
  216. package/collections/app-status.collection.js.map +0 -1
  217. package/collections/communication-metric.collection.d.ts +0 -2
  218. package/collections/communication-metric.collection.js +0 -133
  219. package/collections/communication-metric.collection.js.map +0 -1
  220. package/collections/counter.collection.d.ts +0 -3
  221. package/collections/counter.collection.js +0 -56
  222. package/collections/counter.collection.js.map +0 -1
  223. package/collections/cron-job-history.collection.d.ts +0 -3
  224. package/collections/cron-job-history.collection.js +0 -137
  225. package/collections/cron-job-history.collection.js.map +0 -1
  226. package/collections/cron-job.collection.d.ts +0 -3
  227. package/collections/cron-job.collection.js +0 -92
  228. package/collections/cron-job.collection.js.map +0 -1
  229. package/collections/customer-notification.collection.d.ts +0 -3
  230. package/collections/customer-notification.collection.js +0 -130
  231. package/collections/customer-notification.collection.js.map +0 -1
  232. package/collections/customer-portal-password.collection.d.ts +0 -3
  233. package/collections/customer-portal-password.collection.js +0 -75
  234. package/collections/customer-portal-password.collection.js.map +0 -1
  235. package/collections/email-history.collection.d.ts +0 -3
  236. package/collections/email-history.collection.js +0 -121
  237. package/collections/email-history.collection.js.map +0 -1
  238. package/collections/email-verified.collection.d.ts +0 -3
  239. package/collections/email-verified.collection.js +0 -61
  240. package/collections/email-verified.collection.js.map +0 -1
  241. package/collections/file.collection.d.ts +0 -3
  242. package/collections/file.collection.js +0 -74
  243. package/collections/file.collection.js.map +0 -1
  244. package/collections/flag-update.collection.d.ts +0 -3
  245. package/collections/flag-update.collection.js +0 -57
  246. package/collections/flag-update.collection.js.map +0 -1
  247. package/collections/flag.collection.d.ts +0 -3
  248. package/collections/flag.collection.js +0 -57
  249. package/collections/flag.collection.js.map +0 -1
  250. package/collections/log-method-latency.collection.d.ts +0 -3
  251. package/collections/log-method-latency.collection.js +0 -77
  252. package/collections/log-method-latency.collection.js.map +0 -1
  253. package/collections/log-subscription.collection.d.ts +0 -3
  254. package/collections/log-subscription.collection.js +0 -80
  255. package/collections/log-subscription.collection.js.map +0 -1
  256. package/collections/log.collection.d.ts +0 -3
  257. package/collections/log.collection.js +0 -93
  258. package/collections/log.collection.js.map +0 -1
  259. package/collections/logged-in-users.collection.d.ts +0 -3
  260. package/collections/logged-in-users.collection.js +0 -67
  261. package/collections/logged-in-users.collection.js.map +0 -1
  262. package/collections/monitor-cpu.collection.d.ts +0 -3
  263. package/collections/monitor-cpu.collection.js +0 -65
  264. package/collections/monitor-cpu.collection.js.map +0 -1
  265. package/collections/monitor-function.collection.d.ts +0 -3
  266. package/collections/monitor-function.collection.js +0 -74
  267. package/collections/monitor-function.collection.js.map +0 -1
  268. package/collections/monitor-memory.collection.d.ts +0 -3
  269. package/collections/monitor-memory.collection.js +0 -77
  270. package/collections/monitor-memory.collection.js.map +0 -1
  271. package/collections/monitor-mongo.collection.d.ts +0 -3
  272. package/collections/monitor-mongo.collection.js +0 -71
  273. package/collections/monitor-mongo.collection.js.map +0 -1
  274. package/collections/notification.collection.d.ts +0 -3
  275. package/collections/notification.collection.js +0 -57
  276. package/collections/notification.collection.js.map +0 -1
  277. package/collections/openai-usage-ledger.collection.d.ts +0 -2
  278. package/collections/openai-usage-ledger.collection.js +0 -124
  279. package/collections/openai-usage-ledger.collection.js.map +0 -1
  280. package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
  281. package/collections/report-builder-dashboard-builder.collection.js +0 -109
  282. package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
  283. package/collections/report-builder-library.collection.d.ts +0 -3
  284. package/collections/report-builder-library.collection.js +0 -87
  285. package/collections/report-builder-library.collection.js.map +0 -1
  286. package/collections/report-builder-report.collection.d.ts +0 -4
  287. package/collections/report-builder-report.collection.js +0 -180
  288. package/collections/report-builder-report.collection.js.map +0 -1
  289. package/collections/user-group.collection.d.ts +0 -4
  290. package/collections/user-group.collection.js +0 -89
  291. package/collections/user-group.collection.js.map +0 -1
  292. package/collections/user-guide.collection.d.ts +0 -3
  293. package/collections/user-guide.collection.js +0 -57
  294. package/collections/user-guide.collection.js.map +0 -1
  295. package/collections/user.collection.d.ts +0 -4
  296. package/collections/user.collection.js +0 -180
  297. package/collections/user.collection.js.map +0 -1
  298. package/cron/cron.d.ts +0 -14
  299. package/cron/cron.js +0 -216
  300. package/cron/cron.js.map +0 -1
  301. package/fixtures/cron-jobs.d.ts +0 -1
  302. package/fixtures/cron-jobs.js +0 -150
  303. package/fixtures/cron-jobs.js.map +0 -1
  304. package/fixtures/init.d.ts +0 -1
  305. package/fixtures/init.js +0 -91
  306. package/fixtures/init.js.map +0 -1
  307. package/http/auth.d.ts +0 -2
  308. package/http/auth.js +0 -903
  309. package/http/auth.js.map +0 -1
  310. package/http/health.d.ts +0 -1
  311. package/http/health.js +0 -11
  312. package/http/health.js.map +0 -1
  313. package/http/home.d.ts +0 -1
  314. package/http/home.js +0 -134
  315. package/http/home.js.map +0 -1
  316. package/http/slow-query-publication.d.ts +0 -2
  317. package/http/slow-query-publication.js +0 -99
  318. package/http/slow-query-publication.js.map +0 -1
  319. package/index.d.ts +0 -1
  320. package/index.js +0 -19
  321. package/index.js.map +0 -1
  322. package/managers/communication-metric.manager.d.ts +0 -16
  323. package/managers/communication-metric.manager.js +0 -134
  324. package/managers/communication-metric.manager.js.map +0 -1
  325. package/managers/cron.manager.d.ts +0 -20
  326. package/managers/cron.manager.js +0 -534
  327. package/managers/cron.manager.js.map +0 -1
  328. package/managers/customer-notification-content.manager.d.ts +0 -55
  329. package/managers/customer-notification-content.manager.js +0 -158
  330. package/managers/customer-notification-content.manager.js.map +0 -1
  331. package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
  332. package/managers/diagnostic-manager-bootstrap.js +0 -260
  333. package/managers/diagnostic-manager-bootstrap.js.map +0 -1
  334. package/managers/error-auto-fix.manager.d.ts +0 -149
  335. package/managers/error-auto-fix.manager.js +0 -3064
  336. package/managers/error-auto-fix.manager.js.map +0 -1
  337. package/managers/local-log.manager.d.ts +0 -18
  338. package/managers/local-log.manager.js +0 -88
  339. package/managers/local-log.manager.js.map +0 -1
  340. package/managers/method.manager.d.ts +0 -77
  341. package/managers/method.manager.js +0 -1701
  342. package/managers/method.manager.js.map +0 -1
  343. package/managers/mongo.manager.d.ts +0 -222
  344. package/managers/mongo.manager.js +0 -4984
  345. package/managers/mongo.manager.js.map +0 -1
  346. package/managers/monitor.manager.d.ts +0 -69
  347. package/managers/monitor.manager.js +0 -534
  348. package/managers/monitor.manager.js.map +0 -1
  349. package/managers/openai-usage-ledger.manager.d.ts +0 -15
  350. package/managers/openai-usage-ledger.manager.js +0 -144
  351. package/managers/openai-usage-ledger.manager.js.map +0 -1
  352. package/managers/slow-query-verifier.manager.d.ts +0 -144
  353. package/managers/slow-query-verifier.manager.js +0 -3857
  354. package/managers/slow-query-verifier.manager.js.map +0 -1
  355. package/managers/slow-query.manager.d.ts +0 -28
  356. package/managers/slow-query.manager.js +0 -468
  357. package/managers/slow-query.manager.js.map +0 -1
  358. package/managers/subscription.manager.d.ts +0 -169
  359. package/managers/subscription.manager.js +0 -3422
  360. package/managers/subscription.manager.js.map +0 -1
  361. package/managers/websocket.manager.d.ts +0 -73
  362. package/managers/websocket.manager.js +0 -673
  363. package/managers/websocket.manager.js.map +0 -1
  364. package/managers/worker-dispatcher.manager.d.ts +0 -117
  365. package/managers/worker-dispatcher.manager.js +0 -1210
  366. package/managers/worker-dispatcher.manager.js.map +0 -1
  367. package/managers/worker-server.manager.d.ts +0 -16
  368. package/managers/worker-server.manager.js +0 -530
  369. package/managers/worker-server.manager.js.map +0 -1
  370. package/methods/accounts.d.ts +0 -2
  371. package/methods/accounts.js +0 -624
  372. package/methods/accounts.js.map +0 -1
  373. package/methods/ai-terminal.d.ts +0 -298
  374. package/methods/ai-terminal.js +0 -24872
  375. package/methods/ai-terminal.js.map +0 -1
  376. package/methods/app-settings.d.ts +0 -2
  377. package/methods/app-settings.js +0 -169
  378. package/methods/app-settings.js.map +0 -1
  379. package/methods/aws.d.ts +0 -2
  380. package/methods/aws.js +0 -874
  381. package/methods/aws.js.map +0 -1
  382. package/methods/collections.d.ts +0 -2
  383. package/methods/collections.js +0 -626
  384. package/methods/collections.js.map +0 -1
  385. package/methods/counters.d.ts +0 -2
  386. package/methods/counters.js +0 -111
  387. package/methods/counters.js.map +0 -1
  388. package/methods/cron-jobs.d.ts +0 -2
  389. package/methods/cron-jobs.js +0 -2471
  390. package/methods/cron-jobs.js.map +0 -1
  391. package/methods/customer-notifications.d.ts +0 -2
  392. package/methods/customer-notifications.js +0 -528
  393. package/methods/customer-notifications.js.map +0 -1
  394. package/methods/diagnostics.d.ts +0 -2
  395. package/methods/diagnostics.js +0 -514
  396. package/methods/diagnostics.js.map +0 -1
  397. package/methods/flag-updates.d.ts +0 -2
  398. package/methods/flag-updates.js +0 -8
  399. package/methods/flag-updates.js.map +0 -1
  400. package/methods/flags.d.ts +0 -2
  401. package/methods/flags.js +0 -8
  402. package/methods/flags.js.map +0 -1
  403. package/methods/logs.d.ts +0 -2
  404. package/methods/logs.js +0 -750
  405. package/methods/logs.js.map +0 -1
  406. package/methods/mongo-explorer.d.ts +0 -2
  407. package/methods/mongo-explorer.js +0 -1811
  408. package/methods/mongo-explorer.js.map +0 -1
  409. package/methods/monitor.d.ts +0 -2
  410. package/methods/monitor.js +0 -543
  411. package/methods/monitor.js.map +0 -1
  412. package/methods/pdf.d.ts +0 -2
  413. package/methods/pdf.js +0 -1195
  414. package/methods/pdf.js.map +0 -1
  415. package/methods/publications.d.ts +0 -1
  416. package/methods/publications.js +0 -183
  417. package/methods/publications.js.map +0 -1
  418. package/methods/report-builder.d.ts +0 -2
  419. package/methods/report-builder.js +0 -2960
  420. package/methods/report-builder.js.map +0 -1
  421. package/methods/support.d.ts +0 -2
  422. package/methods/support.js +0 -313
  423. package/methods/support.js.map +0 -1
  424. package/models/ai-terminal-conversation.model.d.ts +0 -17
  425. package/models/ai-terminal-conversation.model.js +0 -4
  426. package/models/ai-terminal-conversation.model.js.map +0 -1
  427. package/models/ai-terminal-issue-report.model.d.ts +0 -19
  428. package/models/ai-terminal-issue-report.model.js +0 -4
  429. package/models/ai-terminal-issue-report.model.js.map +0 -1
  430. package/models/ai-terminal-message.model.d.ts +0 -22
  431. package/models/ai-terminal-message.model.js +0 -4
  432. package/models/ai-terminal-message.model.js.map +0 -1
  433. package/models/app-setting.model.d.ts +0 -16
  434. package/models/app-setting.model.js +0 -4
  435. package/models/app-setting.model.js.map +0 -1
  436. package/models/app-status.model.js +0 -4
  437. package/models/app-status.model.js.map +0 -1
  438. package/models/billing-logged-in-users.model.js +0 -4
  439. package/models/billing-logged-in-users.model.js.map +0 -1
  440. package/models/collection-document.model.d.ts +0 -21
  441. package/models/collection-document.model.js +0 -4
  442. package/models/collection-document.model.js.map +0 -1
  443. package/models/communication-metric.model.d.ts +0 -20
  444. package/models/communication-metric.model.js +0 -4
  445. package/models/communication-metric.model.js.map +0 -1
  446. package/models/counter.model.js +0 -4
  447. package/models/counter.model.js.map +0 -1
  448. package/models/cron-job-history.model.d.ts +0 -15
  449. package/models/cron-job-history.model.js +0 -4
  450. package/models/cron-job-history.model.js.map +0 -1
  451. package/models/cron-job.model.d.ts +0 -14
  452. package/models/cron-job.model.js +0 -4
  453. package/models/cron-job.model.js.map +0 -1
  454. package/models/customer-notification.model.d.ts +0 -26
  455. package/models/customer-notification.model.js +0 -4
  456. package/models/customer-notification.model.js.map +0 -1
  457. package/models/customer-portal-password.model.d.ts +0 -11
  458. package/models/customer-portal-password.model.js +0 -4
  459. package/models/customer-portal-password.model.js.map +0 -1
  460. package/models/dialog.model.d.ts +0 -23
  461. package/models/dialog.model.js +0 -4
  462. package/models/dialog.model.js.map +0 -1
  463. package/models/email-history.model.d.ts +0 -30
  464. package/models/email-history.model.js.map +0 -1
  465. package/models/email-verified.model.js +0 -4
  466. package/models/email-verified.model.js.map +0 -1
  467. package/models/file.model.js +0 -4
  468. package/models/file.model.js.map +0 -1
  469. package/models/flag-update.model.js +0 -4
  470. package/models/flag-update.model.js.map +0 -1
  471. package/models/flag.model.js +0 -4
  472. package/models/flag.model.js.map +0 -1
  473. package/models/log-method-latency.model.d.ts +0 -10
  474. package/models/log-method-latency.model.js +0 -4
  475. package/models/log-method-latency.model.js.map +0 -1
  476. package/models/log-subscription.model.js +0 -4
  477. package/models/log-subscription.model.js.map +0 -1
  478. package/models/log.model.d.ts +0 -17
  479. package/models/log.model.js +0 -4
  480. package/models/log.model.js.map +0 -1
  481. package/models/logged-in-users.model.js +0 -4
  482. package/models/logged-in-users.model.js.map +0 -1
  483. package/models/method-response.model.js +0 -4
  484. package/models/method-response.model.js.map +0 -1
  485. package/models/method.model.d.ts +0 -24
  486. package/models/method.model.js +0 -4
  487. package/models/method.model.js.map +0 -1
  488. package/models/monitor-cpu.model.js +0 -4
  489. package/models/monitor-cpu.model.js.map +0 -1
  490. package/models/monitor-function.model.d.ts +0 -14
  491. package/models/monitor-function.model.js +0 -4
  492. package/models/monitor-function.model.js.map +0 -1
  493. package/models/monitor-memory.model.d.ts +0 -15
  494. package/models/monitor-memory.model.js +0 -4
  495. package/models/monitor-memory.model.js.map +0 -1
  496. package/models/monitor-mongo.model.d.ts +0 -13
  497. package/models/monitor-mongo.model.js +0 -4
  498. package/models/monitor-mongo.model.js.map +0 -1
  499. package/models/notification.model.js +0 -4
  500. package/models/notification.model.js.map +0 -1
  501. package/models/openai-usage-ledger.model.d.ts +0 -15
  502. package/models/openai-usage-ledger.model.js +0 -4
  503. package/models/openai-usage-ledger.model.js.map +0 -1
  504. package/models/pagination.model.d.ts +0 -11
  505. package/models/pagination.model.js +0 -28
  506. package/models/pagination.model.js.map +0 -1
  507. package/models/permission.model.d.ts +0 -12
  508. package/models/permission.model.js +0 -4
  509. package/models/permission.model.js.map +0 -1
  510. package/models/report-builder-dashboard-builder.model.d.ts +0 -25
  511. package/models/report-builder-dashboard-builder.model.js +0 -4
  512. package/models/report-builder-dashboard-builder.model.js.map +0 -1
  513. package/models/report-builder-library.model.d.ts +0 -17
  514. package/models/report-builder-library.model.js +0 -4
  515. package/models/report-builder-library.model.js.map +0 -1
  516. package/models/report-builder-report.model.d.ts +0 -120
  517. package/models/report-builder-report.model.js +0 -4
  518. package/models/report-builder-report.model.js.map +0 -1
  519. package/models/report-builder.model.d.ts +0 -61
  520. package/models/report-builder.model.js +0 -4
  521. package/models/report-builder.model.js.map +0 -1
  522. package/models/select-data-label.model.d.ts +0 -9
  523. package/models/select-data-label.model.js +0 -4
  524. package/models/select-data-label.model.js.map +0 -1
  525. package/models/server-message.model.d.ts +0 -32
  526. package/models/server-message.model.js +0 -4
  527. package/models/server-message.model.js.map +0 -1
  528. package/models/slow-query-report.model.d.ts +0 -23
  529. package/models/slow-query-report.model.js +0 -4
  530. package/models/slow-query-report.model.js.map +0 -1
  531. package/models/subscription.model.d.ts +0 -31
  532. package/models/subscription.model.js +0 -4
  533. package/models/subscription.model.js.map +0 -1
  534. package/models/support-ticket.model.d.ts +0 -86
  535. package/models/support-ticket.model.js +0 -4
  536. package/models/support-ticket.model.js.map +0 -1
  537. package/models/user-group.model.d.ts +0 -20
  538. package/models/user-group.model.js +0 -4
  539. package/models/user-group.model.js.map +0 -1
  540. package/models/user-guide.model.js +0 -4
  541. package/models/user-guide.model.js.map +0 -1
  542. package/models/user.model.d.ts +0 -84
  543. package/models/user.model.js +0 -4
  544. package/models/user.model.js.map +0 -1
  545. package/private/images/ResolveIO.png +0 -0
  546. package/public_api.js +0 -107
  547. package/public_api.js.map +0 -1
  548. package/publications/ai-terminal.d.ts +0 -1
  549. package/publications/ai-terminal.js +0 -122
  550. package/publications/ai-terminal.js.map +0 -1
  551. package/publications/app-settings.d.ts +0 -2
  552. package/publications/app-settings.js +0 -28
  553. package/publications/app-settings.js.map +0 -1
  554. package/publications/app-status.d.ts +0 -2
  555. package/publications/app-status.js +0 -16
  556. package/publications/app-status.js.map +0 -1
  557. package/publications/cron-jobs.d.ts +0 -2
  558. package/publications/cron-jobs.js +0 -32
  559. package/publications/cron-jobs.js.map +0 -1
  560. package/publications/customer-notifications.d.ts +0 -2
  561. package/publications/customer-notifications.js +0 -161
  562. package/publications/customer-notifications.js.map +0 -1
  563. package/publications/files.d.ts +0 -2
  564. package/publications/files.js +0 -36
  565. package/publications/files.js.map +0 -1
  566. package/publications/flags-update.d.ts +0 -2
  567. package/publications/flags-update.js +0 -22
  568. package/publications/flags-update.js.map +0 -1
  569. package/publications/flags.d.ts +0 -2
  570. package/publications/flags.js +0 -22
  571. package/publications/flags.js.map +0 -1
  572. package/publications/logs.d.ts +0 -2
  573. package/publications/logs.js +0 -164
  574. package/publications/logs.js.map +0 -1
  575. package/publications/notifications.d.ts +0 -2
  576. package/publications/notifications.js +0 -16
  577. package/publications/notifications.js.map +0 -1
  578. package/publications/report-builder-dashboard-builders.d.ts +0 -2
  579. package/publications/report-builder-dashboard-builders.js +0 -42
  580. package/publications/report-builder-dashboard-builders.js.map +0 -1
  581. package/publications/report-builder-libraries.d.ts +0 -2
  582. package/publications/report-builder-libraries.js +0 -90
  583. package/publications/report-builder-libraries.js.map +0 -1
  584. package/publications/report-builder-reports.d.ts +0 -2
  585. package/publications/report-builder-reports.js +0 -50
  586. package/publications/report-builder-reports.js.map +0 -1
  587. package/publications/super-admin.d.ts +0 -2
  588. package/publications/super-admin.js +0 -16
  589. package/publications/super-admin.js.map +0 -1
  590. package/publications/user-groups.d.ts +0 -1
  591. package/publications/user-groups.js +0 -16
  592. package/publications/user-groups.js.map +0 -1
  593. package/publications/user-guides.d.ts +0 -1
  594. package/publications/user-guides.js +0 -16
  595. package/publications/user-guides.js.map +0 -1
  596. package/resolveio-server-app.d.ts +0 -70
  597. package/resolveio-server-app.js +0 -801
  598. package/resolveio-server-app.js.map +0 -1
  599. package/server-app.d.ts +0 -167
  600. package/server-app.js +0 -2784
  601. package/server-app.js.map +0 -1
  602. package/services/codex-client.d.ts +0 -119
  603. package/services/codex-client.js +0 -1470
  604. package/services/codex-client.js.map +0 -1
  605. package/services/openai-client.d.ts +0 -46
  606. package/services/openai-client.js +0 -318
  607. package/services/openai-client.js.map +0 -1
  608. package/types/error-report.d.ts +0 -25
  609. package/types/error-report.js +0 -4
  610. package/types/error-report.js.map +0 -1
  611. package/types/slow-query-report.d.ts +0 -27
  612. package/types/slow-query-report.js +0 -6
  613. package/types/slow-query-report.js.map +0 -1
  614. package/util/common.d.ts +0 -31
  615. package/util/common.js +0 -683
  616. package/util/common.js.map +0 -1
  617. package/util/customer-portal-password.d.ts +0 -13
  618. package/util/customer-portal-password.js +0 -209
  619. package/util/customer-portal-password.js.map +0 -1
  620. package/util/error-reporter.d.ts +0 -52
  621. package/util/error-reporter.js +0 -326
  622. package/util/error-reporter.js.map +0 -1
  623. package/util/error-tracking.d.ts +0 -13
  624. package/util/error-tracking.js +0 -120
  625. package/util/error-tracking.js.map +0 -1
  626. package/util/report-builder-unwinds.d.ts +0 -15
  627. package/util/report-builder-unwinds.js +0 -156
  628. package/util/report-builder-unwinds.js.map +0 -1
  629. package/util/schema-report-builder.d.ts +0 -6
  630. package/util/schema-report-builder.js +0 -481
  631. package/util/schema-report-builder.js.map +0 -1
  632. package/util/slow-query-reporter.d.ts +0 -28
  633. package/util/slow-query-reporter.js +0 -226
  634. package/util/slow-query-reporter.js.map +0 -1
  635. package/util/subscription-dependency-context.d.ts +0 -34
  636. package/util/subscription-dependency-context.js +0 -1283
  637. package/util/subscription-dependency-context.js.map +0 -1
  638. package/util/tokenizer.d.ts +0 -5
  639. package/util/tokenizer.js +0 -41
  640. package/util/tokenizer.js.map +0 -1
  641. package/workers/codex-runner.worker.d.ts +0 -1
  642. package/workers/codex-runner.worker.js +0 -192
  643. package/workers/codex-runner.worker.js.map +0 -1
  644. /package/{private → src/private}/email-templates/enrollment.html +0 -0
  645. /package/{private → src/private}/email-templates/forgot-password.html +0 -0
  646. /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
  647. /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
  648. /package/{private → src/private}/email-templates/support-ticket.html +0 -0
  649. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1,1210 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __values = (this && this.__values) || function(o) {
14
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
- if (m) return m.call(o);
16
- if (o && typeof o.length === "number") return {
17
- next: function () {
18
- if (o && i >= o.length) o = void 0;
19
- return { value: o && o[i++], done: !o };
20
- }
21
- };
22
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
23
- };
24
- var __read = (this && this.__read) || function (o, n) {
25
- var m = typeof Symbol === "function" && o[Symbol.iterator];
26
- if (!m) return o;
27
- var i = m.call(o), r, ar = [], e;
28
- try {
29
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
- }
31
- catch (error) { e = { error: error }; }
32
- finally {
33
- try {
34
- if (r && !r.done && (m = i["return"])) m.call(i);
35
- }
36
- finally { if (e) throw e.error; }
37
- }
38
- return ar;
39
- };
40
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
41
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
42
- if (ar || !(i in from)) {
43
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
44
- ar[i] = from[i];
45
- }
46
- }
47
- return to.concat(ar || Array.prototype.slice.call(from));
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.WorkerDispatcherManager = void 0;
51
- var WebSocket = require("ws");
52
- var common_1 = require("../util/common");
53
- var msgpackr_1 = require("msgpackr");
54
- var WorkerDispatcherManager = /** @class */ (function () {
55
- function WorkerDispatcherManager() {
56
- this._workers = [];
57
- this._taskQueue = [];
58
- this._clientRequests = {};
59
- this._pendingTasks = new Map();
60
- this._debugNoWorkerTaskIds = new Set();
61
- this._debugCodexTaskIds = new Set();
62
- this._taskTimings = new Map();
63
- this._dispatchRetryTimer = null;
64
- this._dispatchRetryDelayMs = 25;
65
- this._nonCodexReserve = 0;
66
- this._publicationWorkerIndexes = null;
67
- this._publicationWorkerInstances = null;
68
- this._codexWorkerIndexes = null;
69
- this._codexWorkerInstances = null;
70
- this.MAX_CONCURRENCY = 10;
71
- this.WORKER_TASK_LOG_THRESHOLD_MS = 200;
72
- this.WORKER_PUBLICATION_SLOW_MS = 20000;
73
- this._workerTaskDebug = false;
74
- this._aiWorkerDebug = false;
75
- }
76
- WorkerDispatcherManager.create = function (websocketManager, methodManager) {
77
- var workerDispatcherManager = new WorkerDispatcherManager();
78
- workerDispatcherManager.initialize(websocketManager, methodManager);
79
- return workerDispatcherManager;
80
- };
81
- WorkerDispatcherManager.prototype.initialize = function (websocketManager, methodManager) {
82
- var _a, _b, _c;
83
- this._websocketManager = websocketManager;
84
- this._methodManager = methodManager;
85
- this._workerTaskDebug = this.parseDebugFlag((_a = process.env.WORKER_TASK_DEBUG) !== null && _a !== void 0 ? _a : process.env.WORKER_DISPATCH_DEBUG);
86
- this._aiWorkerDebug = this.parseDebugFlag(process.env.AI_ASSISTANT_WORKER_DEBUG);
87
- var slowPublicationMs = parseInt((_b = process.env.WORKER_PUBLICATION_SLOW_MS) !== null && _b !== void 0 ? _b : '', 10);
88
- if (!Number.isNaN(slowPublicationMs) && slowPublicationMs > 0) {
89
- this.WORKER_PUBLICATION_SLOW_MS = slowPublicationMs;
90
- }
91
- this._nonCodexReserve = this.parsePositiveInt((_c = process.env.WORKER_NON_CODEX_RESERVE) !== null && _c !== void 0 ? _c : process.env.WORKER_RESERVED_SLOTS, 0);
92
- this._publicationWorkerIndexes = this.parseWorkerSelector(process.env.PUBLICATION_WORKER_INDEX
93
- || process.env.SUBSCRIPTION_WORKER_INDEX
94
- || process.env.WORKER_PUBLICATION_INDEX);
95
- this._publicationWorkerInstances = this.parseWorkerSelector(process.env.PUBLICATION_WORKER_INSTANCE
96
- || process.env.SUBSCRIPTION_WORKER_INSTANCE
97
- || process.env.WORKER_PUBLICATION_INSTANCE);
98
- this._codexWorkerIndexes = this.parseWorkerSelector(process.env.AI_ASSISTANT_CODEX_WORKER_INDEX
99
- || process.env.CODEX_WORKER_INDEX
100
- || process.env.WORKER_CODEX_INDEX);
101
- this._codexWorkerInstances = this.parseWorkerSelector(process.env.AI_ASSISTANT_CODEX_WORKER_INSTANCE
102
- || process.env.CODEX_WORKER_INSTANCE
103
- || process.env.WORKER_CODEX_INSTANCE);
104
- };
105
- WorkerDispatcherManager.prototype.parseDebugFlag = function (value) {
106
- if (value === true) {
107
- return true;
108
- }
109
- if (value === false || value === null || value === undefined) {
110
- return false;
111
- }
112
- if (typeof value === 'number') {
113
- return value === 1;
114
- }
115
- if (typeof value === 'string') {
116
- var normalized = value.trim().toLowerCase();
117
- return ['1', 'true', 'yes', 'y', 'on'].includes(normalized);
118
- }
119
- return false;
120
- };
121
- WorkerDispatcherManager.prototype.parsePositiveInt = function (value, fallback) {
122
- var parsed = parseInt(value !== null && value !== void 0 ? value : '', 10);
123
- if (Number.isNaN(parsed) || parsed < 0) {
124
- return fallback;
125
- }
126
- return parsed;
127
- };
128
- WorkerDispatcherManager.prototype.parseWorkerSelector = function (value) {
129
- var e_1, _a, e_2, _b, e_3, _c;
130
- if (value === null || value === undefined) {
131
- return null;
132
- }
133
- var parts = [];
134
- if (Array.isArray(value)) {
135
- try {
136
- for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {
137
- var item = value_1_1.value;
138
- var entry = String(item !== null && item !== void 0 ? item : '').split(',');
139
- try {
140
- for (var entry_1 = (e_2 = void 0, __values(entry)), entry_1_1 = entry_1.next(); !entry_1_1.done; entry_1_1 = entry_1.next()) {
141
- var chunk = entry_1_1.value;
142
- var trimmed = String(chunk !== null && chunk !== void 0 ? chunk : '').trim();
143
- if (trimmed) {
144
- parts.push(trimmed);
145
- }
146
- }
147
- }
148
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
149
- finally {
150
- try {
151
- if (entry_1_1 && !entry_1_1.done && (_b = entry_1.return)) _b.call(entry_1);
152
- }
153
- finally { if (e_2) throw e_2.error; }
154
- }
155
- }
156
- }
157
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
158
- finally {
159
- try {
160
- if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);
161
- }
162
- finally { if (e_1) throw e_1.error; }
163
- }
164
- }
165
- else {
166
- var entry = String(value !== null && value !== void 0 ? value : '').split(',');
167
- try {
168
- for (var entry_2 = __values(entry), entry_2_1 = entry_2.next(); !entry_2_1.done; entry_2_1 = entry_2.next()) {
169
- var chunk = entry_2_1.value;
170
- var trimmed = String(chunk !== null && chunk !== void 0 ? chunk : '').trim();
171
- if (trimmed) {
172
- parts.push(trimmed);
173
- }
174
- }
175
- }
176
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
177
- finally {
178
- try {
179
- if (entry_2_1 && !entry_2_1.done && (_c = entry_2.return)) _c.call(entry_2);
180
- }
181
- finally { if (e_3) throw e_3.error; }
182
- }
183
- }
184
- if (!parts.length) {
185
- return null;
186
- }
187
- return new Set(parts);
188
- };
189
- WorkerDispatcherManager.prototype.selectorToArray = function (value) {
190
- if (!value) {
191
- return null;
192
- }
193
- return Array.from(value.values());
194
- };
195
- WorkerDispatcherManager.prototype.hasWorkerSelector = function (indexes, instances) {
196
- return !!(indexes && indexes.size) || !!(instances && instances.size);
197
- };
198
- WorkerDispatcherManager.prototype.workerMatchesSelector = function (worker, indexes, instances) {
199
- if (!this.hasWorkerSelector(indexes, instances)) {
200
- return false;
201
- }
202
- var normalizedIndex = this.normalizeWorkerIndex(worker.workerIndex);
203
- var normalizedInstance = this.normalizeWorkerIndex(worker.workerInstance);
204
- var indexMatch = indexes ? (normalizedIndex ? indexes.has(normalizedIndex) : false) : true;
205
- var instanceMatch = instances ? (normalizedInstance ? instances.has(normalizedInstance) : false) : true;
206
- return indexMatch && instanceMatch;
207
- };
208
- WorkerDispatcherManager.prototype.resolveTaskQueue = function (methodName) {
209
- var _a;
210
- var method = (_a = this._methodManager) === null || _a === void 0 ? void 0 : _a.getMethod(methodName);
211
- var queue = method === null || method === void 0 ? void 0 : method.workerQueue;
212
- if (queue === 'publication' || queue === 'codex') {
213
- return queue;
214
- }
215
- return 'default';
216
- };
217
- WorkerDispatcherManager.prototype.summarizePublicationValue = function (value) {
218
- if (value === null || value === undefined) {
219
- return value;
220
- }
221
- var valueType = typeof value;
222
- if (valueType === 'string' || valueType === 'number' || valueType === 'boolean') {
223
- return value;
224
- }
225
- if (Array.isArray(value)) {
226
- return "[Array(".concat(value.length, ")]");
227
- }
228
- if (valueType === 'object') {
229
- return "[Object keys=".concat(Object.keys(value).length, "]");
230
- }
231
- return "[".concat(valueType, "]");
232
- };
233
- WorkerDispatcherManager.prototype.getPublicationLogInfo = function (method, params) {
234
- var _this = this;
235
- if (method !== 'runPublication' || !Array.isArray(params)) {
236
- return null;
237
- }
238
- var publication = typeof params[0] === 'string' ? params[0] : null;
239
- var subscriptionData = Array.isArray(params[1]) ? params[1] : [];
240
- var userId = typeof params[2] === 'string' ? params[2] : null;
241
- var subscriptionDataPreview = subscriptionData.slice(0, 3).map(function (item) { return _this.summarizePublicationValue(item); });
242
- return {
243
- publication: publication,
244
- subscriptionDataCount: subscriptionData.length,
245
- subscriptionDataPreview: subscriptionDataPreview,
246
- userId: userId
247
- };
248
- };
249
- WorkerDispatcherManager.prototype.isSafeShutdown = function () {
250
- return !this._taskQueue.length && !this._pendingTasks.size;
251
- };
252
- WorkerDispatcherManager.prototype.addWorker = function (ws) {
253
- var _this = this;
254
- this._workers.push({
255
- id: ws['id_worker'],
256
- ws: ws,
257
- activeTasks: [],
258
- workerIndex: ws['workerIndex'],
259
- workerInstance: ws['workerInstance']
260
- });
261
- setInterval(function () {
262
- if (_this._methodManager.getEnableDebug()) {
263
- console.log(JSON.stringify(_this._workers.map(function (a) {
264
- return {
265
- id: a.id,
266
- activeTasks: a.activeTasks
267
- };
268
- }), null, 2));
269
- }
270
- }, 5000);
271
- if (this._taskQueue.length) {
272
- this.dispatchQueue();
273
- }
274
- };
275
- WorkerDispatcherManager.prototype.disconnectWorker = function (workerId) {
276
- this._workers = this._workers.filter(function (w) { return w.id !== workerId; });
277
- };
278
- WorkerDispatcherManager.prototype.hasWorkers = function () {
279
- return this._workers.length > 0;
280
- };
281
- WorkerDispatcherManager.prototype.getQueueSnapshot = function () {
282
- var activeTasks = this._workers.reduce(function (total, worker) { return total + (worker.activeTasks ? worker.activeTasks.length : 0); }, 0);
283
- return {
284
- queueDepth: this._taskQueue.length,
285
- pendingTasks: this._pendingTasks.size,
286
- workerCount: this._workers.length,
287
- activeTasks: activeTasks,
288
- workers: this._workers.map(function (worker) { return ({
289
- id: worker.id,
290
- index: worker.workerIndex,
291
- instance: worker.workerInstance,
292
- activeTasks: worker.activeTasks ? worker.activeTasks.length : 0
293
- }); })
294
- };
295
- };
296
- WorkerDispatcherManager.prototype.hasWorkersForMethod = function (methodName) {
297
- var _this = this;
298
- if (!this._workers.length) {
299
- return false;
300
- }
301
- var method = this._methodManager.getMethod(methodName);
302
- var taskQueue = this.resolveTaskQueue(methodName);
303
- var targetWorkerIndex = this.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerIndex);
304
- var targetWorkerInstance = this.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerInstance);
305
- var hasExplicitTarget = !!targetWorkerIndex || !!targetWorkerInstance;
306
- var candidates = __spreadArray([], __read(this._workers), false);
307
- var hasPublicationSelector = this.hasWorkerSelector(this._publicationWorkerIndexes, this._publicationWorkerInstances);
308
- if (hasPublicationSelector && !hasExplicitTarget) {
309
- if (taskQueue === 'publication') {
310
- candidates = candidates.filter(function (worker) {
311
- return _this.workerMatchesSelector(worker, _this._publicationWorkerIndexes, _this._publicationWorkerInstances);
312
- });
313
- }
314
- else {
315
- candidates = candidates.filter(function (worker) {
316
- return !_this.workerMatchesSelector(worker, _this._publicationWorkerIndexes, _this._publicationWorkerInstances);
317
- });
318
- }
319
- }
320
- var hasCodexSelector = this.hasWorkerSelector(this._codexWorkerIndexes, this._codexWorkerInstances);
321
- if (hasCodexSelector) {
322
- if (taskQueue === 'codex') {
323
- candidates = candidates.filter(function (worker) {
324
- return _this.workerMatchesSelector(worker, _this._codexWorkerIndexes, _this._codexWorkerInstances);
325
- });
326
- }
327
- else if (!hasExplicitTarget) {
328
- candidates = candidates.filter(function (worker) {
329
- return !_this.workerMatchesSelector(worker, _this._codexWorkerIndexes, _this._codexWorkerInstances);
330
- });
331
- }
332
- }
333
- if (targetWorkerIndex) {
334
- candidates = candidates.filter(function (worker) { return _this.normalizeWorkerIndex(worker.workerIndex) === targetWorkerIndex; });
335
- }
336
- if (targetWorkerInstance) {
337
- candidates = candidates.filter(function (worker) { return _this.normalizeWorkerIndex(worker.workerInstance) === targetWorkerInstance; });
338
- }
339
- return candidates.length > 0;
340
- };
341
- /**
342
- * Add a new task to our in-memory queue and try to dispatch.
343
- */
344
- WorkerDispatcherManager.prototype.sendClientTask = function (messageId, method, params, userContext) {
345
- var taskId = 'task-' + (0, common_1.objectIdHexString)();
346
- var queuedAt = Date.now();
347
- this._taskQueue.push({
348
- type: 'task',
349
- taskId: taskId,
350
- messageId: messageId,
351
- method: method,
352
- params: params,
353
- userContext: userContext,
354
- queuedAt: queuedAt
355
- });
356
- this._taskTimings.set(taskId, {
357
- queuedAt: queuedAt,
358
- method: method,
359
- messageId: messageId,
360
- userContext: userContext,
361
- params: params
362
- });
363
- if (userContext && userContext.id_ws) {
364
- this._clientRequests[taskId] = userContext.id_ws;
365
- }
366
- if (this.shouldDebug()) {
367
- var publicationInfo = this.getPublicationLogInfo(method, params);
368
- var logPayload = {
369
- taskId: taskId,
370
- method: method,
371
- messageId: messageId,
372
- priority: method === 'runPublication' ? 'publication' : 'method',
373
- queueDepth: this._taskQueue.length,
374
- userContext: userContext
375
- };
376
- if (publicationInfo) {
377
- Object.assign(logPayload, publicationInfo);
378
- }
379
- this.logWorkerEvent('workerTaskQueued', logPayload);
380
- }
381
- this.dispatchQueue();
382
- };
383
- /**
384
- * Same as sendInternalTask but returns a Promise so you can `await` it.
385
- */
386
- WorkerDispatcherManager.prototype.sendInternalPromise = function (method, params) {
387
- var _this = this;
388
- if (params === void 0) { params = []; }
389
- if (!Array.isArray(params)) {
390
- params = [params];
391
- }
392
- // eslint-disable-next-line no-restricted-syntax
393
- return new Promise(function (resolve, reject) {
394
- var taskId = 'task-' + (0, common_1.objectIdHexString)();
395
- var queuedAt = Date.now();
396
- _this._taskQueue.push({
397
- type: 'task',
398
- taskId: taskId,
399
- method: method,
400
- params: params,
401
- messageId: 0,
402
- userContext: {
403
- user: 'Internal System'
404
- },
405
- queuedAt: queuedAt
406
- });
407
- _this._taskTimings.set(taskId, {
408
- queuedAt: queuedAt,
409
- method: method,
410
- messageId: 0,
411
- userContext: { user: 'Internal System' },
412
- params: params
413
- });
414
- _this._pendingTasks.set(taskId, {
415
- timeout: null,
416
- promise: { resolve: resolve, reject: reject }
417
- });
418
- if (_this._methodManager.getEnableDebug()) {
419
- console.log(new Date(), 'Send Internal Promise', _this._taskQueue);
420
- }
421
- if (_this.shouldDebug()) {
422
- var publicationInfo = _this.getPublicationLogInfo(method, params);
423
- var logPayload = {
424
- taskId: taskId,
425
- method: method,
426
- messageId: 0,
427
- priority: method === 'runPublication' ? 'publication' : 'method',
428
- queueDepth: _this._taskQueue.length,
429
- userContext: { user: 'Internal System' }
430
- };
431
- if (publicationInfo) {
432
- Object.assign(logPayload, publicationInfo);
433
- }
434
- _this.logWorkerEvent('workerTaskQueued', logPayload);
435
- }
436
- _this.dispatchQueue();
437
- });
438
- };
439
- /**
440
- * Send a task internally and resolve with the raw TaskResponse (includes packedResult/meta).
441
- */
442
- WorkerDispatcherManager.prototype.sendInternalPromiseRaw = function (method, params) {
443
- var _this = this;
444
- if (params === void 0) { params = []; }
445
- if (!Array.isArray(params)) {
446
- params = [params];
447
- }
448
- // eslint-disable-next-line no-restricted-syntax
449
- return new Promise(function (resolve, reject) {
450
- var taskId = 'task-' + (0, common_1.objectIdHexString)();
451
- var queuedAt = Date.now();
452
- _this._taskQueue.push({
453
- type: 'task',
454
- taskId: taskId,
455
- method: method,
456
- params: params,
457
- messageId: 0,
458
- userContext: {
459
- user: 'Internal System'
460
- },
461
- queuedAt: queuedAt
462
- });
463
- _this._taskTimings.set(taskId, {
464
- queuedAt: queuedAt,
465
- method: method,
466
- messageId: 0,
467
- userContext: { user: 'Internal System' },
468
- params: params
469
- });
470
- _this._pendingTasks.set(taskId, {
471
- timeout: null,
472
- promise: { resolve: resolve, reject: reject },
473
- resolveRaw: true
474
- });
475
- if (_this._methodManager.getEnableDebug()) {
476
- console.log(new Date(), 'Send Internal Raw Promise', _this._taskQueue);
477
- }
478
- if (_this.shouldDebug()) {
479
- var publicationInfo = _this.getPublicationLogInfo(method, params);
480
- var logPayload = {
481
- taskId: taskId,
482
- method: method,
483
- messageId: 0,
484
- priority: method === 'runPublication' ? 'publication' : 'method',
485
- queueDepth: _this._taskQueue.length,
486
- userContext: { user: 'Internal System' }
487
- };
488
- if (publicationInfo) {
489
- Object.assign(logPayload, publicationInfo);
490
- }
491
- _this.logWorkerEvent('workerTaskQueued', logPayload);
492
- }
493
- _this.dispatchQueue();
494
- });
495
- };
496
- /**
497
- * Send a task internally without returning a promise.
498
- */
499
- WorkerDispatcherManager.prototype.sendInternalTask = function (method, params) {
500
- if (params === void 0) { params = []; }
501
- if (!Array.isArray(params)) {
502
- params = [params];
503
- }
504
- var taskId = 'task-' + (0, common_1.objectIdHexString)();
505
- var queuedAt = Date.now();
506
- this._taskQueue.push({
507
- type: 'task',
508
- taskId: taskId,
509
- method: method,
510
- params: params,
511
- messageId: 0,
512
- userContext: {
513
- user: 'Internal System'
514
- },
515
- queuedAt: queuedAt
516
- });
517
- this._taskTimings.set(taskId, {
518
- queuedAt: queuedAt,
519
- method: method,
520
- messageId: 0,
521
- userContext: { user: 'Internal System' },
522
- params: params
523
- });
524
- if (this._methodManager.getEnableDebug()) {
525
- console.log(new Date(), 'Send Internal Task', this._taskQueue);
526
- }
527
- if (this.shouldDebug()) {
528
- var publicationInfo = this.getPublicationLogInfo(method, params);
529
- var logPayload = {
530
- taskId: taskId,
531
- method: method,
532
- messageId: 0,
533
- priority: method === 'runPublication' ? 'publication' : 'method',
534
- queueDepth: this._taskQueue.length,
535
- userContext: { user: 'Internal System' }
536
- };
537
- if (publicationInfo) {
538
- Object.assign(logPayload, publicationInfo);
539
- }
540
- this.logWorkerEvent('workerTaskQueued', logPayload);
541
- }
542
- this.dispatchQueue();
543
- };
544
- /**
545
- * The main loop that assigns tasks from _taskQueue to any worker that has capacity.
546
- */
547
- WorkerDispatcherManager.prototype.dispatchQueue = function () {
548
- var e_4, _a;
549
- var _this = this;
550
- if (!this._taskQueue.length) {
551
- return;
552
- }
553
- if (!this._workers.length) {
554
- return;
555
- }
556
- var priorityMatchers = [
557
- function (task) { return _this.resolveTaskQueue(task.method) === 'publication'; },
558
- function (task) { return _this.resolveTaskQueue(task.method) === 'default'; },
559
- function (task) { return _this.resolveTaskQueue(task.method) === 'codex'; }
560
- ];
561
- var tryAssignTask = function (matcher) {
562
- for (var i = 0; i < _this._taskQueue.length; i++) {
563
- var task = _this._taskQueue[i];
564
- if (!matcher(task)) {
565
- continue;
566
- }
567
- var targetWorker = _this.findWorkerForTask(task);
568
- if (targetWorker) {
569
- _this._taskQueue.splice(i, 1);
570
- _this.assignTaskToWorker(targetWorker, task);
571
- return true;
572
- }
573
- }
574
- return false;
575
- };
576
- while (this._taskQueue.length > 0) {
577
- var assigned = false;
578
- try {
579
- for (var priorityMatchers_1 = (e_4 = void 0, __values(priorityMatchers)), priorityMatchers_1_1 = priorityMatchers_1.next(); !priorityMatchers_1_1.done; priorityMatchers_1_1 = priorityMatchers_1.next()) {
580
- var matcher = priorityMatchers_1_1.value;
581
- if (tryAssignTask(matcher)) {
582
- assigned = true;
583
- break;
584
- }
585
- }
586
- }
587
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
588
- finally {
589
- try {
590
- if (priorityMatchers_1_1 && !priorityMatchers_1_1.done && (_a = priorityMatchers_1.return)) _a.call(priorityMatchers_1);
591
- }
592
- finally { if (e_4) throw e_4.error; }
593
- }
594
- if (!assigned) {
595
- this.logNoWorkerAvailability();
596
- this.scheduleDispatchRetry();
597
- if (this._methodManager.getEnableDebug()) {
598
- console.log(new Date(), 'No Worker Available', JSON.stringify(this._workers, null, 2));
599
- }
600
- return; // nothing can run right now due to per-worker limits
601
- }
602
- }
603
- };
604
- WorkerDispatcherManager.prototype.scheduleDispatchRetry = function (delayMs) {
605
- var _this = this;
606
- if (delayMs === void 0) { delayMs = this._dispatchRetryDelayMs; }
607
- if (this._dispatchRetryTimer) {
608
- return;
609
- }
610
- this._dispatchRetryTimer = setTimeout(function () {
611
- _this._dispatchRetryTimer = null;
612
- _this.dispatchQueue();
613
- }, delayMs);
614
- };
615
- /**
616
- * Returns the worker with the fewest activeTasks that is under maxConcurrency and per-method limit.
617
- */
618
- WorkerDispatcherManager.prototype.findWorkerForTask = function (task) {
619
- var _this = this;
620
- var method = this._methodManager.getMethod(task.method);
621
- var taskQueue = this.resolveTaskQueue(task.method);
622
- var methodLimit = method && method.maxConcurrency && method.maxConcurrency > 0 ? method.maxConcurrency : null;
623
- var methodLimitPerInstance = method && method.maxConcurrencyPerInstance && method.maxConcurrencyPerInstance > 0
624
- ? method.maxConcurrencyPerInstance
625
- : null;
626
- var targetWorkerIndex = this.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerIndex);
627
- var targetWorkerInstance = this.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerInstance);
628
- var hasExplicitTarget = !!targetWorkerIndex || !!targetWorkerInstance;
629
- var preferNonZero = !targetWorkerIndex;
630
- var debugCodex = this._aiWorkerDebug && taskQueue === 'codex';
631
- var debugState = debugCodex ? {
632
- taskId: task.taskId,
633
- method: task.method,
634
- queueDepth: this._taskQueue.length,
635
- targetWorkerIndex: targetWorkerIndex || null,
636
- targetWorkerInstance: targetWorkerInstance || null,
637
- workerCount: this._workers.length,
638
- publicationSelector: {
639
- indexes: this.selectorToArray(this._publicationWorkerIndexes),
640
- instances: this.selectorToArray(this._publicationWorkerInstances)
641
- },
642
- codexSelector: {
643
- indexes: this.selectorToArray(this._codexWorkerIndexes),
644
- instances: this.selectorToArray(this._codexWorkerInstances)
645
- },
646
- maxConcurrency: this.MAX_CONCURRENCY,
647
- nonCodexReserve: this._nonCodexReserve
648
- } : null;
649
- var candidates = this._workers.filter(function (x) { return x.activeTasks.length < _this.MAX_CONCURRENCY; });
650
- if (debugState) {
651
- debugState.candidatesInitial = candidates.length;
652
- }
653
- var hasPublicationSelector = this.hasWorkerSelector(this._publicationWorkerIndexes, this._publicationWorkerInstances);
654
- if (hasPublicationSelector && !hasExplicitTarget) {
655
- if (taskQueue === 'publication') {
656
- candidates = candidates.filter(function (worker) {
657
- return _this.workerMatchesSelector(worker, _this._publicationWorkerIndexes, _this._publicationWorkerInstances);
658
- });
659
- }
660
- else {
661
- candidates = candidates.filter(function (worker) {
662
- return !_this.workerMatchesSelector(worker, _this._publicationWorkerIndexes, _this._publicationWorkerInstances);
663
- });
664
- }
665
- }
666
- if (debugState) {
667
- debugState.candidatesAfterPublicationFilter = candidates.length;
668
- debugState.hasPublicationSelector = hasPublicationSelector;
669
- }
670
- var hasCodexSelector = this.hasWorkerSelector(this._codexWorkerIndexes, this._codexWorkerInstances);
671
- if (hasCodexSelector) {
672
- if (taskQueue === 'codex') {
673
- candidates = candidates.filter(function (worker) {
674
- return _this.workerMatchesSelector(worker, _this._codexWorkerIndexes, _this._codexWorkerInstances);
675
- });
676
- }
677
- else if (!hasExplicitTarget) {
678
- candidates = candidates.filter(function (worker) {
679
- return !_this.workerMatchesSelector(worker, _this._codexWorkerIndexes, _this._codexWorkerInstances);
680
- });
681
- }
682
- }
683
- if (debugState) {
684
- debugState.candidatesAfterCodexFilter = candidates.length;
685
- debugState.hasCodexSelector = hasCodexSelector;
686
- }
687
- if (targetWorkerIndex) {
688
- candidates = candidates.filter(function (worker) { return _this.normalizeWorkerIndex(worker.workerIndex) === targetWorkerIndex; });
689
- }
690
- if (targetWorkerInstance) {
691
- candidates = candidates.filter(function (worker) { return _this.normalizeWorkerIndex(worker.workerInstance) === targetWorkerInstance; });
692
- }
693
- if (debugState) {
694
- debugState.candidatesAfterTargetFilter = candidates.length;
695
- }
696
- if (!candidates.length) {
697
- this.logCodexSelection(debugState, 'noCandidates');
698
- return null;
699
- }
700
- var eligible = candidates.filter(function (worker) {
701
- if (!methodLimit) {
702
- if (!methodLimitPerInstance) {
703
- return true;
704
- }
705
- }
706
- if (methodLimitPerInstance) {
707
- var currentInstance = worker.activeTasks.filter(function (a) { return a.method === task.method; }).length;
708
- if (currentInstance >= methodLimitPerInstance) {
709
- return false;
710
- }
711
- }
712
- if (!methodLimit) {
713
- return true;
714
- }
715
- var idx = worker.workerIndex || 'unknown';
716
- var current = 0;
717
- _this._workers.forEach(function (w) {
718
- if ((w.workerIndex || 'unknown') === idx) {
719
- current += w.activeTasks.filter(function (a) { return a.method === task.method; }).length;
720
- }
721
- });
722
- return current < methodLimit;
723
- });
724
- if (debugState) {
725
- debugState.eligibleAfterLimits = eligible.length;
726
- }
727
- if (!eligible.length) {
728
- this.logCodexSelection(debugState, 'limitsExceeded');
729
- return null;
730
- }
731
- if (taskQueue === 'codex' && this._nonCodexReserve > 0) {
732
- eligible = eligible.filter(function (worker) { return (_this.MAX_CONCURRENCY - worker.activeTasks.length) > _this._nonCodexReserve; });
733
- }
734
- if (debugState) {
735
- debugState.eligibleAfterReserve = eligible.length;
736
- }
737
- if (!eligible.length) {
738
- this.logCodexSelection(debugState, 'reserveBlocked');
739
- return null;
740
- }
741
- eligible.sort(function (x, y) {
742
- var totalX = _this.getWorkerLoad(x);
743
- var totalY = _this.getWorkerLoad(y);
744
- if (totalX !== totalY) {
745
- return totalX - totalY;
746
- }
747
- if (preferNonZero) {
748
- var xZero = _this.isWorkerZero(x) ? 1 : 0;
749
- var yZero = _this.isWorkerZero(y) ? 1 : 0;
750
- if (xZero !== yZero) {
751
- return xZero - yZero;
752
- }
753
- }
754
- var idxX = _this.normalizeWorkerIndex(x.workerIndex) || '';
755
- var idxY = _this.normalizeWorkerIndex(y.workerIndex) || '';
756
- var idxCompare = idxX.localeCompare(idxY, undefined, { numeric: true, sensitivity: 'base' });
757
- if (idxCompare !== 0) {
758
- return idxCompare;
759
- }
760
- var instX = _this.normalizeWorkerIndex(x.workerInstance) || '';
761
- var instY = _this.normalizeWorkerIndex(y.workerInstance) || '';
762
- return instX.localeCompare(instY, undefined, { numeric: true, sensitivity: 'base' });
763
- });
764
- var selected = eligible[0];
765
- if (this._aiWorkerDebug && taskQueue === 'codex') {
766
- console.log(new Date(), '[AI Worker Debug] AI worker selected', {
767
- taskId: task.taskId,
768
- method: task.method,
769
- workerIndex: (selected === null || selected === void 0 ? void 0 : selected.workerIndex) || null,
770
- workerInstance: (selected === null || selected === void 0 ? void 0 : selected.workerInstance) || null,
771
- activeTasks: (selected === null || selected === void 0 ? void 0 : selected.activeTasks) ? selected.activeTasks.length : 0,
772
- queueDepth: this._taskQueue.length
773
- });
774
- }
775
- return selected;
776
- };
777
- WorkerDispatcherManager.prototype.logCodexSelection = function (debugState, reason) {
778
- if (!debugState || !this._aiWorkerDebug) {
779
- return;
780
- }
781
- var taskId = String(debugState.taskId || '');
782
- if (!taskId || this._debugCodexTaskIds.has(taskId)) {
783
- return;
784
- }
785
- this._debugCodexTaskIds.add(taskId);
786
- console.warn(new Date(), '[AI Worker Debug] AI worker selection issue', __assign({ reason: reason }, debugState));
787
- };
788
- WorkerDispatcherManager.prototype.normalizeWorkerIndex = function (value) {
789
- if (value === null || value === undefined) {
790
- return null;
791
- }
792
- var normalized = String(value).trim();
793
- return normalized.length ? normalized : null;
794
- };
795
- WorkerDispatcherManager.prototype.getWorkerLoad = function (worker) {
796
- return worker.activeTasks.reduce(function (sum, task) { return sum + task.weight; }, 0);
797
- };
798
- WorkerDispatcherManager.prototype.isWorkerZero = function (worker) {
799
- return this.normalizeWorkerIndex(worker.workerIndex) === '0';
800
- };
801
- WorkerDispatcherManager.prototype.assignTaskToWorker = function (worker, task) {
802
- var _this = this;
803
- var method = this._methodManager.getMethod(task.method);
804
- if (!method) {
805
- console.error('Failed to send task to worker - Could not find method:', task.method);
806
- this._taskTimings.delete(task.taskId);
807
- return;
808
- }
809
- var dispatchedAt = Date.now();
810
- var timing = this._taskTimings.get(task.taskId) || { queuedAt: dispatchedAt };
811
- timing.dispatchedAt = dispatchedAt;
812
- timing.method = task.method;
813
- timing.messageId = task.messageId;
814
- timing.userContext = task.userContext;
815
- if (!timing.params) {
816
- timing.params = task.params;
817
- }
818
- this._taskTimings.set(task.taskId, timing);
819
- worker.activeTasks.push({
820
- taskId: task.taskId,
821
- weight: method && method.workerTaskWeight ? method.workerTaskWeight : 1,
822
- method: task.method,
823
- startedAt: dispatchedAt,
824
- messageId: task.messageId,
825
- userContext: task.userContext
826
- });
827
- this._debugNoWorkerTaskIds.delete(task.taskId);
828
- var payload = {
829
- type: 'task',
830
- taskId: task.taskId,
831
- messageId: task.messageId,
832
- method: task.method,
833
- params: task.params,
834
- userContext: task.userContext || {},
835
- queuedAt: timing.queuedAt,
836
- dispatchedAt: dispatchedAt
837
- };
838
- if (this.shouldDebug()) {
839
- var publicationInfo = this.getPublicationLogInfo(task.method, task.params);
840
- var logPayload = {
841
- taskId: task.taskId,
842
- method: task.method,
843
- messageId: task.messageId,
844
- priority: task.method === 'runPublication' ? 'publication' : 'method',
845
- worker: {
846
- id: worker.id,
847
- index: worker.workerIndex,
848
- instance: worker.workerInstance
849
- },
850
- queueDepth: this._taskQueue.length
851
- };
852
- if (publicationInfo) {
853
- Object.assign(logPayload, publicationInfo);
854
- }
855
- this.logWorkerEvent('workerTaskAssigned', logPayload);
856
- }
857
- var timeoutHandle = setTimeout(function () {
858
- var pending = _this._pendingTasks.get(task.taskId);
859
- var timeoutAt = Date.now();
860
- var queuedAt = timing.queuedAt;
861
- var queueWaitMs = queuedAt ? (0, common_1.round)(dispatchedAt - queuedAt) : null;
862
- var dispatchToTimeoutMs = (0, common_1.round)(timeoutAt - dispatchedAt);
863
- if (pending) {
864
- if (pending.promise) {
865
- pending.promise.reject('Task timed out after 2m in WorkerDispatcherManager for method: ' + task.method);
866
- }
867
- _this._pendingTasks.delete(task.taskId);
868
- }
869
- var publicationInfo = _this.getPublicationLogInfo(task.method, task.params);
870
- var logPayload = {
871
- taskId: task.taskId,
872
- method: task.method,
873
- messageId: task.messageId,
874
- queueWaitMs: queueWaitMs,
875
- dispatchToTimeoutMs: dispatchToTimeoutMs,
876
- userContext: task.userContext,
877
- worker: {
878
- id: worker.id,
879
- index: worker.workerIndex,
880
- instance: worker.workerInstance
881
- },
882
- workers: _this._workers.map(function (a) { return a.activeTasks; })
883
- };
884
- if (publicationInfo) {
885
- Object.assign(logPayload, publicationInfo);
886
- }
887
- _this.logWorkerEvent('workerTaskTimeout', logPayload);
888
- worker.activeTasks = worker.activeTasks.filter(function (a) { return a.taskId !== task.taskId; });
889
- _this._taskTimings.delete(task.taskId);
890
- if (task.userContext && task.userContext.id_ws) {
891
- var timeoutRes = {
892
- messageId: task.messageId,
893
- hasError: true,
894
- data: 'Task timed out after 2m in WorkerDispatcherManager for method: ' + task.method
895
- };
896
- var clientWS = _this._websocketManager.getWebSocket(task.userContext.id_ws);
897
- if (clientWS) {
898
- _this._websocketManager.send(clientWS, timeoutRes);
899
- }
900
- }
901
- }, method.timeoutOverride || (1000 * 60 * 2));
902
- // If we already stored a promise for this task (from sendInternalPromise), add the timeout now
903
- var existing = this._pendingTasks.get(task.taskId);
904
- if (!existing) {
905
- existing = { timeout: null, method: task.method };
906
- }
907
- else {
908
- existing.method = task.method;
909
- }
910
- existing.timeout = timeoutHandle;
911
- this._pendingTasks.set(task.taskId, existing);
912
- try {
913
- this.sendWorkerPayload(worker.ws, payload);
914
- }
915
- catch (err) {
916
- console.error('Failed to send task to worker:', err);
917
- clearTimeout(timeoutHandle);
918
- worker.activeTasks = worker.activeTasks.filter(function (a) { return a.taskId !== task.taskId; });
919
- // Put task back in front
920
- this._taskQueue.unshift(task);
921
- this.dispatchQueue();
922
- }
923
- };
924
- WorkerDispatcherManager.prototype.logNoWorkerAvailability = function () {
925
- var e_5, _a;
926
- var _this = this;
927
- if (!this.shouldDebug()) {
928
- return;
929
- }
930
- var workers = this._workers.map(function (worker) { return ({
931
- id: worker.id,
932
- index: _this.normalizeWorkerIndex(worker.workerIndex),
933
- instance: _this.normalizeWorkerIndex(worker.workerInstance),
934
- activeTasks: worker.activeTasks.length
935
- }); });
936
- var _loop_1 = function (task) {
937
- var method = this_1._methodManager.getMethod(task.method);
938
- var targetWorkerIndex = this_1.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerIndex);
939
- var targetWorkerInstance = this_1.normalizeWorkerIndex(method === null || method === void 0 ? void 0 : method.targetWorkerInstance);
940
- if (!targetWorkerIndex && !targetWorkerInstance) {
941
- return "continue";
942
- }
943
- if (this_1._debugNoWorkerTaskIds.has(task.taskId)) {
944
- return "continue";
945
- }
946
- var hasMatch = this_1._workers.some(function (worker) {
947
- return (!targetWorkerIndex || _this.normalizeWorkerIndex(worker.workerIndex) === targetWorkerIndex) &&
948
- (!targetWorkerInstance || _this.normalizeWorkerIndex(worker.workerInstance) === targetWorkerInstance);
949
- });
950
- if (!hasMatch) {
951
- this_1._debugNoWorkerTaskIds.add(task.taskId);
952
- console.warn(new Date(), '[WorkerDispatcher] No matching worker for task', {
953
- taskId: task.taskId,
954
- method: task.method,
955
- targetWorkerIndex: targetWorkerIndex,
956
- targetWorkerInstance: targetWorkerInstance,
957
- workers: workers
958
- });
959
- }
960
- };
961
- var this_1 = this;
962
- try {
963
- for (var _b = __values(this._taskQueue), _c = _b.next(); !_c.done; _c = _b.next()) {
964
- var task = _c.value;
965
- _loop_1(task);
966
- }
967
- }
968
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
969
- finally {
970
- try {
971
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
972
- }
973
- finally { if (e_5) throw e_5.error; }
974
- }
975
- };
976
- WorkerDispatcherManager.prototype.shouldDebug = function () {
977
- var _a;
978
- if (this._methodManager.getEnableDebug()) {
979
- return true;
980
- }
981
- if (this._workerTaskDebug) {
982
- return true;
983
- }
984
- return this.parseDebugFlag((_a = process.env.WORKER_TASK_DEBUG) !== null && _a !== void 0 ? _a : process.env.WORKER_DISPATCH_DEBUG);
985
- };
986
- WorkerDispatcherManager.prototype.logWorkerEvent = function (event, details) {
987
- console.log(this.safeStringify(__assign({ ts: new Date().toISOString(), event: event }, details)));
988
- };
989
- WorkerDispatcherManager.prototype.safeStringify = function (value) {
990
- try {
991
- var seen_1 = new WeakSet();
992
- return JSON.stringify(value, function (key, val) {
993
- if (key === '__proto__') {
994
- return undefined;
995
- }
996
- if (typeof val === 'bigint') {
997
- return val.toString();
998
- }
999
- if (val instanceof Error) {
1000
- return {
1001
- name: val.name,
1002
- message: val.message,
1003
- stack: val.stack
1004
- };
1005
- }
1006
- if (val && typeof val === 'object') {
1007
- if (seen_1.has(val)) {
1008
- return '[Circular]';
1009
- }
1010
- seen_1.add(val);
1011
- }
1012
- return val;
1013
- });
1014
- }
1015
- catch (err) {
1016
- return JSON.stringify({
1017
- error: 'safeStringifyFailed',
1018
- message: (err === null || err === void 0 ? void 0 : err.message) || String(err)
1019
- });
1020
- }
1021
- };
1022
- /**
1023
- * Handle messages coming back from a worker (like 'taskComplete').
1024
- */
1025
- WorkerDispatcherManager.prototype.handleWorkerMessage = function (workerId, rawMessage) {
1026
- var data;
1027
- try {
1028
- if (typeof rawMessage === 'string') {
1029
- data = JSON.parse(rawMessage, common_1.dateReviver);
1030
- }
1031
- else if (Buffer.isBuffer(rawMessage)) {
1032
- data = (0, msgpackr_1.unpack)(rawMessage);
1033
- }
1034
- else if (Array.isArray(rawMessage)) {
1035
- var chunks = rawMessage;
1036
- data = (0, msgpackr_1.unpack)(Buffer.concat(chunks));
1037
- }
1038
- else if (rawMessage instanceof ArrayBuffer) {
1039
- data = (0, msgpackr_1.unpack)(Buffer.from(rawMessage));
1040
- }
1041
- else if (ArrayBuffer.isView(rawMessage)) {
1042
- var view = rawMessage;
1043
- data = (0, msgpackr_1.unpack)(Buffer.from(view.buffer, view.byteOffset, view.byteLength));
1044
- }
1045
- else {
1046
- console.error('Unsupported worker message type received:', typeof rawMessage);
1047
- return;
1048
- }
1049
- }
1050
- catch (err) {
1051
- console.error('Failed to parse worker message:', err);
1052
- return;
1053
- }
1054
- if (data.type === 'taskComplete') {
1055
- var worker = this._workers.find(function (x) { return x.id === workerId; });
1056
- if (!worker) {
1057
- console.error('Unknown worker for taskComplete:', workerId);
1058
- return;
1059
- }
1060
- var taskId_1 = data.taskId, messageId = data.messageId, error = data.error, result = data.result;
1061
- var timing = this._taskTimings.get(taskId_1);
1062
- var methodName = timing === null || timing === void 0 ? void 0 : timing.method;
1063
- var isAiMethod = !!methodName && methodName.startsWith('ai');
1064
- var unpackedResult = result;
1065
- var pendingTask = this._pendingTasks.get(taskId_1);
1066
- var resolveRaw = !!(pendingTask === null || pendingTask === void 0 ? void 0 : pendingTask.resolveRaw);
1067
- if (!error && !resolveRaw && unpackedResult === null && data['packedResult']) {
1068
- try {
1069
- unpackedResult = (0, msgpackr_1.unpack)(data['packedResult']);
1070
- }
1071
- catch (err) {
1072
- console.error('Failed to unpack worker result', err);
1073
- }
1074
- }
1075
- worker.activeTasks = worker.activeTasks.filter(function (a) { return a.taskId !== taskId_1; });
1076
- this._taskTimings.delete(taskId_1);
1077
- if (this._aiWorkerDebug && isAiMethod) {
1078
- var packedBytes = data['packedResult'] && data['packedResult'].byteLength
1079
- ? data['packedResult'].byteLength
1080
- : null;
1081
- var resultBytes = null;
1082
- if (!packedBytes) {
1083
- try {
1084
- resultBytes = Buffer.byteLength(JSON.stringify(result));
1085
- }
1086
- catch (_a) {
1087
- resultBytes = null;
1088
- }
1089
- }
1090
- console.log(new Date(), '[AI Worker Debug] worker result', {
1091
- taskId: taskId_1,
1092
- method: methodName,
1093
- messageId: messageId,
1094
- hasError: !!error,
1095
- packedBytes: packedBytes,
1096
- resultBytes: resultBytes,
1097
- workerIndex: (worker === null || worker === void 0 ? void 0 : worker.workerIndex) || null,
1098
- workerInstance: (worker === null || worker === void 0 ? void 0 : worker.workerInstance) || null,
1099
- queueDepth: this._taskQueue.length
1100
- });
1101
- }
1102
- if (pendingTask) {
1103
- if (pendingTask.promise) {
1104
- if (error) {
1105
- pendingTask.promise.reject(unpackedResult);
1106
- }
1107
- else {
1108
- pendingTask.promise.resolve(resolveRaw ? data : unpackedResult);
1109
- }
1110
- }
1111
- clearTimeout(pendingTask.timeout);
1112
- this._pendingTasks.delete(taskId_1);
1113
- }
1114
- // Look up original request if it came from a client
1115
- var clientReqId = this._clientRequests[taskId_1];
1116
- if (clientReqId) {
1117
- var res = {
1118
- messageId: messageId,
1119
- hasError: false,
1120
- data: result
1121
- };
1122
- if (error) {
1123
- res.hasError = true;
1124
- res.data = result;
1125
- }
1126
- var clientReqWS = this._websocketManager.getWebSocket(clientReqId);
1127
- if (clientReqWS) {
1128
- if (!error && data['packedResult']) {
1129
- this._websocketManager.sendPackedBuffer(clientReqWS, messageId, false, data['packedResult'], data['encoding'] || 'msgpack', { passThrough: true });
1130
- }
1131
- else {
1132
- this._websocketManager.send(clientReqWS, res);
1133
- }
1134
- }
1135
- if (this._clientRequests[taskId_1]) {
1136
- delete this._clientRequests[taskId_1];
1137
- }
1138
- }
1139
- // Try to dispatch more from the queue
1140
- if (this._taskQueue.length) {
1141
- this.dispatchQueue();
1142
- }
1143
- }
1144
- };
1145
- WorkerDispatcherManager.prototype.sendWorkerPayload = function (ws, payload) {
1146
- if (!ws) {
1147
- return;
1148
- }
1149
- if (ws.readyState !== WebSocket.OPEN) {
1150
- if (typeof payload !== 'string') {
1151
- var task_1 = payload;
1152
- this._taskQueue.unshift(task_1);
1153
- this.dispatchQueue();
1154
- this.disconnectWorker(ws['id_worker']);
1155
- ws.close();
1156
- var pendingTask = this._pendingTasks.get(task_1.taskId);
1157
- if (pendingTask) {
1158
- clearTimeout(pendingTask.timeout);
1159
- this._pendingTasks.delete(task_1.taskId);
1160
- if (pendingTask.promise) {
1161
- pendingTask.promise.reject('Worker socket not open.');
1162
- }
1163
- }
1164
- }
1165
- else {
1166
- this.disconnectWorker(ws['id_worker']);
1167
- ws.close();
1168
- }
1169
- return;
1170
- }
1171
- if (typeof payload === 'string') {
1172
- try {
1173
- ws.send(payload);
1174
- }
1175
- catch (err) {
1176
- this.disconnectWorker(ws['id_worker']);
1177
- ws.close();
1178
- console.error('Failed to send worker payload:', err);
1179
- }
1180
- return;
1181
- }
1182
- var task = payload;
1183
- var payloadBuffer = (0, msgpackr_1.pack)(task);
1184
- try {
1185
- ws.send(payloadBuffer);
1186
- }
1187
- catch (err) {
1188
- this._taskQueue.unshift(task);
1189
- this.dispatchQueue();
1190
- if (this._methodManager.getEnableDebug()) {
1191
- console.log(new Date(), 'Sending to Server', task);
1192
- }
1193
- this.disconnectWorker(ws['id_worker']);
1194
- ws.close();
1195
- console.error('Failed to send worker response:', err);
1196
- var pendingTask = this._pendingTasks.get(task.taskId);
1197
- if (pendingTask) {
1198
- clearTimeout(pendingTask.timeout);
1199
- this._pendingTasks.delete(task.taskId);
1200
- if (pendingTask.promise) {
1201
- pendingTask.promise.reject('Failed to send worker response: ' + (err === null || err === void 0 ? void 0 : err.toString()));
1202
- }
1203
- }
1204
- }
1205
- };
1206
- return WorkerDispatcherManager;
1207
- }());
1208
- exports.WorkerDispatcherManager = WorkerDispatcherManager;
1209
-
1210
- //# sourceMappingURL=worker-dispatcher.manager.js.map