@resolveio/server-lib 22.2.33 → 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 -304
  374. package/methods/ai-terminal.js +0 -25096
  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
@@ -0,0 +1,224 @@
1
+ name: AI Assistant Nightly Eval
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '20 6 * * *'
6
+ workflow_dispatch:
7
+ inputs:
8
+ server_dir:
9
+ description: 'Absolute path to server dir that has settings + data access'
10
+ required: false
11
+ default: ''
12
+ type: string
13
+ settings_file:
14
+ description: 'Settings filename relative to server_dir (example: settings.local.json)'
15
+ required: false
16
+ default: 'settings.local.json'
17
+ type: string
18
+ app_id:
19
+ description: 'App ID override (defaults to parent folder name of server_dir)'
20
+ required: false
21
+ default: ''
22
+ type: string
23
+ corpus_max_prompts:
24
+ description: 'Max prompts to include in corpus build'
25
+ required: false
26
+ default: '80'
27
+ type: string
28
+ corpus_lookback_days:
29
+ description: 'Lookback days for corpus harvesting'
30
+ required: false
31
+ default: '45'
32
+ type: string
33
+ corpus_run_limit:
34
+ description: 'Max corpus replay cases to execute'
35
+ required: false
36
+ default: '40'
37
+ type: string
38
+ codex_model:
39
+ description: 'Model override (example: gpt-5.3-codex)'
40
+ required: false
41
+ default: ''
42
+ type: string
43
+ fail_on_eval_errors:
44
+ description: 'Fail workflow when parity/replay/triage reports errors'
45
+ required: false
46
+ default: true
47
+ type: boolean
48
+
49
+ concurrency:
50
+ group: ai-assistant-nightly-eval-${{ github.ref }}
51
+ cancel-in-progress: false
52
+
53
+ permissions:
54
+ contents: read
55
+
56
+ jobs:
57
+ assistant-nightly-eval:
58
+ runs-on: self-hosted
59
+ timeout-minutes: 360
60
+ env:
61
+ AI_ASSISTANT_EVAL_SERVER_DIR: ${{ vars.AI_ASSISTANT_EVAL_SERVER_DIR }}
62
+ AI_ASSISTANT_EVAL_SETTINGS: ${{ vars.AI_ASSISTANT_EVAL_SETTINGS }}
63
+ AI_ASSISTANT_EVAL_APP_ID: ${{ vars.AI_ASSISTANT_EVAL_APP_ID }}
64
+ AI_ASSISTANT_EVAL_USER_ID: ${{ vars.AI_ASSISTANT_EVAL_USER_ID }}
65
+ AI_ASSISTANT_CODEX_MODEL_DEFAULT: ${{ vars.AI_ASSISTANT_CODEX_MODEL }}
66
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
67
+
68
+ steps:
69
+ - name: Checkout
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Setup Node 22
73
+ uses: actions/setup-node@v4
74
+ with:
75
+ node-version: '22'
76
+ cache: npm
77
+
78
+ - name: Install Dependencies
79
+ run: npm ci
80
+
81
+ - name: Resolve Eval Environment
82
+ shell: bash
83
+ run: |
84
+ set -euo pipefail
85
+
86
+ if [[ -z "${OPENAI_API_KEY:-}" ]]; then
87
+ echo "::error::OPENAI_API_KEY secret is required for AI assistant eval runs."
88
+ exit 1
89
+ fi
90
+
91
+ SERVER_DIR="${{ github.event.inputs.server_dir || '' }}"
92
+ if [[ -z "$SERVER_DIR" ]]; then
93
+ SERVER_DIR="${AI_ASSISTANT_EVAL_SERVER_DIR:-}"
94
+ fi
95
+ if [[ -z "$SERVER_DIR" ]]; then
96
+ FALLBACK="$GITHUB_WORKSPACE/../resolveio-all/geochem/server"
97
+ if [[ -d "$FALLBACK" ]]; then
98
+ SERVER_DIR="$FALLBACK"
99
+ fi
100
+ fi
101
+ if [[ -z "$SERVER_DIR" || ! -d "$SERVER_DIR" ]]; then
102
+ echo "::error::Could not resolve a valid server directory. Provide workflow input 'server_dir' or repo var 'AI_ASSISTANT_EVAL_SERVER_DIR'."
103
+ exit 1
104
+ fi
105
+
106
+ SETTINGS_FILE="${{ github.event.inputs.settings_file || '' }}"
107
+ if [[ -z "$SETTINGS_FILE" ]]; then
108
+ SETTINGS_FILE="${AI_ASSISTANT_EVAL_SETTINGS:-settings.local.json}"
109
+ fi
110
+
111
+ APP_ID="${{ github.event.inputs.app_id || '' }}"
112
+ if [[ -z "$APP_ID" ]]; then
113
+ APP_ID="${AI_ASSISTANT_EVAL_APP_ID:-$(basename "$(dirname "$SERVER_DIR")")}"
114
+ fi
115
+
116
+ CODEX_MODEL="${{ github.event.inputs.codex_model || '' }}"
117
+ if [[ -z "$CODEX_MODEL" ]]; then
118
+ CODEX_MODEL="${AI_ASSISTANT_CODEX_MODEL_DEFAULT:-}"
119
+ fi
120
+
121
+ echo "AI_ASSISTANT_CORPUS_SERVER_DIR=$SERVER_DIR" >> "$GITHUB_ENV"
122
+ echo "AI_ASSISTANT_PARITY_SERVER_DIR=$SERVER_DIR" >> "$GITHUB_ENV"
123
+ echo "AI_ASSISTANT_CORPUS_SETTINGS=$SETTINGS_FILE" >> "$GITHUB_ENV"
124
+ echo "AI_ASSISTANT_PARITY_SETTINGS=$SETTINGS_FILE" >> "$GITHUB_ENV"
125
+ echo "AI_ASSISTANT_CORPUS_APP_ID=$APP_ID" >> "$GITHUB_ENV"
126
+ echo "AI_ASSISTANT_PARITY_APP_ID=$APP_ID" >> "$GITHUB_ENV"
127
+ echo "AI_ASSISTANT_CORPUS_MAX_PROMPTS=${{ github.event.inputs.corpus_max_prompts || '80' }}" >> "$GITHUB_ENV"
128
+ echo "AI_ASSISTANT_CORPUS_LOOKBACK_DAYS=${{ github.event.inputs.corpus_lookback_days || '45' }}" >> "$GITHUB_ENV"
129
+ echo "AI_ASSISTANT_CORPUS_RUN_LIMIT=${{ github.event.inputs.corpus_run_limit || '40' }}" >> "$GITHUB_ENV"
130
+ if [[ -n "${AI_ASSISTANT_EVAL_USER_ID:-}" ]]; then
131
+ echo "AI_ASSISTANT_CORPUS_USER_ID=${AI_ASSISTANT_EVAL_USER_ID}" >> "$GITHUB_ENV"
132
+ fi
133
+ if [[ -n "$CODEX_MODEL" ]]; then
134
+ echo "AI_ASSISTANT_CODEX_MODEL=$CODEX_MODEL" >> "$GITHUB_ENV"
135
+ fi
136
+
137
+ echo "Resolved server_dir=$SERVER_DIR"
138
+ echo "Resolved settings_file=$SETTINGS_FILE"
139
+ echo "Resolved app_id=$APP_ID"
140
+
141
+ - name: Build Query Corpus
142
+ id: corpus_build
143
+ shell: bash
144
+ run: npm run ai-assistant-corpus-build
145
+
146
+ - name: Run Data Parity E2E
147
+ id: data_parity
148
+ continue-on-error: true
149
+ shell: bash
150
+ run: npm run ai-assistant-data-parity-e2e
151
+
152
+ - name: Run Corpus Replay E2E
153
+ id: corpus_replay
154
+ continue-on-error: true
155
+ shell: bash
156
+ run: npm run ai-assistant-corpus-replay-e2e
157
+
158
+ - name: Build Failure Triage + Clusters
159
+ id: eval_triage
160
+ if: always()
161
+ continue-on-error: true
162
+ shell: bash
163
+ run: npm run ai-assistant-eval-triage
164
+
165
+ - name: Upload Eval Artifacts
166
+ if: always()
167
+ uses: actions/upload-artifact@v4
168
+ with:
169
+ name: ai-assistant-eval-${{ github.run_id }}
170
+ retention-days: 21
171
+ if-no-files-found: warn
172
+ path: |
173
+ tmp/ai-assistant-query-corpus.json
174
+ tmp/ai-assistant-data-parity-e2e-output.json
175
+ tmp/ai-assistant-corpus-replay-e2e-output.json
176
+ tmp/ai-assistant-eval-triage.json
177
+ tmp/ai-assistant-eval-triage.md
178
+
179
+ - name: Publish Summary
180
+ if: always()
181
+ shell: bash
182
+ run: |
183
+ set -euo pipefail
184
+ if [[ -f tmp/ai-assistant-eval-triage.md ]]; then
185
+ cat tmp/ai-assistant-eval-triage.md >> "$GITHUB_STEP_SUMMARY"
186
+ else
187
+ echo "No triage markdown generated." >> "$GITHUB_STEP_SUMMARY"
188
+ fi
189
+ if [[ -f tmp/ai-assistant-eval-triage.json ]]; then
190
+ node <<'NODE' >> "$GITHUB_STEP_SUMMARY"
191
+ const fs = require('fs');
192
+ const triagePath = 'tmp/ai-assistant-eval-triage.json';
193
+ const triage = JSON.parse(fs.readFileSync(triagePath, 'utf8'));
194
+ const top = (triage?.allFailures?.priorityClusters || []).slice(0, 5);
195
+ console.log('');
196
+ console.log('### Top Priority Clusters');
197
+ if (!top.length) {
198
+ console.log('- None');
199
+ process.exit(0);
200
+ }
201
+ top.forEach((cluster, index) => {
202
+ console.log(`${index + 1}. ${cluster.name} (score=${cluster.score}, cases=${cluster.count})`);
203
+ });
204
+ NODE
205
+ fi
206
+
207
+ - name: Enforce Eval Status
208
+ if: always()
209
+ shell: bash
210
+ run: |
211
+ set -euo pipefail
212
+ FAIL_ON_ERRORS="${{ github.event_name != 'workflow_dispatch' || github.event.inputs.fail_on_eval_errors == 'true' }}"
213
+ if [[ "$FAIL_ON_ERRORS" != "true" ]]; then
214
+ echo "Eval status enforcement disabled by workflow input."
215
+ exit 0
216
+ fi
217
+
218
+ PARITY_OUTCOME="${{ steps.data_parity.outcome }}"
219
+ REPLAY_OUTCOME="${{ steps.corpus_replay.outcome }}"
220
+ TRIAGE_OUTCOME="${{ steps.eval_triage.outcome }}"
221
+ if [[ "$PARITY_OUTCOME" != "success" || "$REPLAY_OUTCOME" != "success" || "$TRIAGE_OUTCOME" != "success" ]]; then
222
+ echo "::error::AI assistant eval reported failures. Check uploaded artifacts and triage summary."
223
+ exit 1
224
+ fi
@@ -0,0 +1,60 @@
1
+ name: AI Assistant PR Guardrails
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - '**'
7
+ paths:
8
+ - '.github/workflows/ai-assistant-pr-guardrails.yml'
9
+ - 'src/methods/ai-terminal.ts'
10
+ - 'src/services/codex-client.ts'
11
+ - 'tests/ai-assistant-utils.test.ts'
12
+ - 'tests/ai-assistant-routing-eval.test.ts'
13
+ - 'tests/ai-assistant-eval-triage.ts'
14
+ - 'tests/ai-assistant-corpus-build.ts'
15
+ - 'tests/ai-assistant-data-parity-e2e.ts'
16
+ - 'tests/ai-assistant-corpus-replay-e2e.ts'
17
+ - 'package.json'
18
+ - 'package-lock.json'
19
+ workflow_dispatch:
20
+
21
+ concurrency:
22
+ group: ai-assistant-pr-guardrails-${{ github.event.pull_request.number || github.ref }}
23
+ cancel-in-progress: true
24
+
25
+ permissions:
26
+ contents: read
27
+
28
+ jobs:
29
+ ai-assistant-guardrails:
30
+ runs-on: ubuntu-latest
31
+ timeout-minutes: 30
32
+
33
+ steps:
34
+ - name: Checkout
35
+ uses: actions/checkout@v4
36
+
37
+ - name: Setup Node 22
38
+ uses: actions/setup-node@v4
39
+ with:
40
+ node-version: '22'
41
+ cache: npm
42
+
43
+ - name: Install Dependencies
44
+ run: npm ci
45
+
46
+ - name: Run AI Assistant Utils Tests
47
+ run: npm run ai-assistant-utils-test
48
+
49
+ - name: Run AI Assistant Routing Eval Tests
50
+ run: npm run ai-assistant-routing-eval-test
51
+
52
+ - name: Publish Summary
53
+ if: always()
54
+ shell: bash
55
+ run: |
56
+ set -euo pipefail
57
+ echo "## AI Assistant PR Guardrails" >> "$GITHUB_STEP_SUMMARY"
58
+ echo "" >> "$GITHUB_STEP_SUMMARY"
59
+ echo "- \`ai-assistant-utils-test\`: completed" >> "$GITHUB_STEP_SUMMARY"
60
+ echo "- \`ai-assistant-routing-eval-test\`: completed" >> "$GITHUB_STEP_SUMMARY"
package/.nodemon.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "events": {
3
+ "exit": "npm run stop-server"
4
+ }
5
+ }
@@ -0,0 +1,21 @@
1
+ // Place your settings in this file to overwrite default and user settings.
2
+ {
3
+ "editor.minimap.enabled": false,
4
+ "javascript.preferences.importModuleSpecifier": "relative",
5
+ "typescript.preferences.importModuleSpecifier": "relative",
6
+ "javascript.preferences.quoteStyle": "single",
7
+ "git.ignoreLimitWarning": true,
8
+ "editor.codeActionsOnSave": {
9
+ "source.organizeImports": "explicit",
10
+ "source.fixAll.eslint": "always"
11
+ },
12
+ "eslint.validate": [
13
+ "typescript",
14
+ "javascript",
15
+ "typescriptreact",
16
+ "javascriptreact",
17
+ "html"
18
+ ],
19
+ "eslint.run": "onType",
20
+ "eslint.enable": true
21
+ }
package/AGENTS.md ADDED
@@ -0,0 +1,179 @@
1
+ # AGENTS.md
2
+
3
+ ## Overview
4
+ resolveio-server-lib provides the backend infrastructure for the ResolveIO platform. It exposes server methods, publications, queues, and worker coordination so heavy work runs off the main thread.
5
+
6
+ > Written for contributors and for GitHub Copilot / OpenAI Codex to learn the library.
7
+
8
+ ---
9
+
10
+ ## Architecture
11
+ resolveio-server-lib is a Node 22 / TypeScript library built on Mongo 8 (never use Mongoose). The core server connects through a custom Mongo wrapper and dispatches work to workers when clustered.
12
+
13
+ ### Directory Map
14
+ ```txt
15
+ src/
16
+ ├─ collections/Mongo collection helpers
17
+ ├─ models/TypeScript interfaces & SimpleSchema
18
+ ├─ methods/loadXMethods() modules registering method handlers
19
+ ├─ publications/loadXPublications() modules registering subscriptions
20
+ ├─ managers/infrastructure managers (MethodManager, WebSocketManager, etc.)
21
+ ├─ cron/scheduled jobs
22
+ ├─ http/Express route helpers
23
+ ├─ util/shared utilities
24
+ resolveio-server-app.tsbootstraps the server and connects to Mongo
25
+ server-app.tsHTTP/WebSocket server for main & worker processes
26
+ client-server-app.tsclient-facing entry for hybrid deployments
27
+ ```
28
+
29
+ ### Core Managers
30
+ - MethodManager: registers method handlers via `methodManager.methods({ ... })`
31
+ - SubscriptionManager: registers publications via `subscriptionManager.publications({ ... })`
32
+ - WebSocketManager: tracks socket connections and emits messages
33
+ - WorkerDispatcherManager & WorkerServerManager: queue and execute heavy jobs
34
+ - CronManager: defines recurring jobs in `src/cron`
35
+ - MongoManager & LocalLogManager: database and log helpers
36
+
37
+ ### Methods
38
+ - Stateless functions invoked by clients.
39
+ - Defined in `src/methods/*` using `loadXMethods` patterns.
40
+ - Each method provides a `check` (SimpleSchema) and an async `function`.
41
+ ```ts
42
+ export function loadFooMethods(methodManager: MethodManager) {
43
+ methodManager.methods({
44
+ doSomething: {
45
+ check: new SimpleSchema({ name: { type: String } }),
46
+ function: async function (name: string) {
47
+ // logic
48
+ return result;
49
+ },
50
+ },
51
+ });
52
+ }
53
+ ```
54
+
55
+ ### Publications
56
+ - Stream Mongo documents or computed data to subscribers.
57
+ - Defined in `src/publications/*` using `loadXPublications`.
58
+ - Publication objects declare `function`, optional `check`, and affected `collections`.
59
+ ```ts
60
+ export function loadFlagsPublications(subscriptionManager: SubscriptionManager) {
61
+ subscriptionManager.publications({
62
+ flagWithType: {
63
+ function: (flagType: string) => Flags.findOne({ type: flagType }),
64
+ check: new SimpleSchema({ flagType: { type: String } }),
65
+ collections: ['flags'],
66
+ },
67
+ });
68
+ }
69
+ ```
70
+
71
+ ### Worker & Queue Agents
72
+ - Heavy or blocking work should be dispatched to worker servers.
73
+ - Use `WorkerDispatcherManager.enqueue(task)` for background processing.
74
+ - Cron jobs live in `src/cron` and register through `CronManager`.
75
+
76
+ ---
77
+
78
+ ## Coding Conventions
79
+ - Tabs for indentation, newline `else if`, opening brace on same line.
80
+ - No `find` in loops; batch fetch then `bulkWrite`.
81
+ - Separate validation, data retrieval, and processing blocks.
82
+ - Use `async/await` with `try/catch`.
83
+ - Never use `Math.round`; always use `round` from the ResolveIO client/server libraries.
84
+ - Use `async/await` with `try/catch` instead of `.then()`/`.catch()`/`.finally()`.
85
+ - Never leave unused variables, parameters, or imports; remove or refactor instead of suppressing lint.
86
+ - Never construct Promises or use `.then()`/`.catch()`/`.finally()`; use `async/await` + `try/catch`.
87
+ - Never leave promises floating; `await` or `return` every async call (including `Promise.all`).
88
+ - Do not `await` inside `forEach`; use `for...of` or `Promise.all` with `map`.
89
+ - Every async method must `await` at least one call (Mongo transactions).
90
+ - Follow the `eslint.ts` rules.
91
+ - Models and collections must mirror each other at all times.
92
+
93
+ ```ts
94
+ if (x > 3) {
95
+ console.log(1);
96
+ }
97
+ else if (x === 2) {
98
+ console.log(2);
99
+ }
100
+ else {
101
+ console.log(3);
102
+ }
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Formatting & Linting
108
+ - `.editorconfig`, `.prettierrc.json`, and `.vscode/settings.json` enforce tabs and 120-column width.
109
+ - Always open `eslint.config.js` in this project before coding and follow its rules; do not assume defaults from other repos.
110
+ - Run lint before committing:
111
+ ```bash
112
+ npx eslint .
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Quick Start
118
+ ```bash
119
+ npm install
120
+ npm run build
121
+ npm start
122
+ ```
123
+
124
+ ---
125
+
126
+ ## PR Checklist
127
+ - Tabs only; `else`/`else if` start on new lines.
128
+ - Avoid `find` in loops; use `bulkWrite`.
129
+ - Use transactions when multiple writes must succeed atomically.
130
+ - Offload heavy work to workers.
131
+ - Run `npx eslint .` before committing.
132
+
133
+ ---
134
+
135
+ ## Response Requirements
136
+
137
+ - Include a customer-facing summary of the request and the estimated the number of human hours an advanced ResolveIO engineer would take to fully complete the task including testing.
138
+ - Include a work ticket summary (what was done) and the estimated the number of human hours an advanced ResolveIO engineer would take to fully complete the task including testing.
139
+
140
+ ---
141
+
142
+ ## Anti-Patterns
143
+ - Converting tabs to spaces.
144
+ - `updateOne` or `find` in loops.
145
+ - Blocking work on the main server.
146
+ - Deep nesting without early returns.
147
+
148
+ ## STRING _id POLICY
149
+ - `_id` values are always strings in this codebase.
150
+ - Generate `_id` values with `objectIdHexString()`.
151
+ - Never use MongoDB `ObjectId` values or assumptions for `_id`.
152
+ - For bulk writes (`insertMany`, `bulkWrite`, batch upserts), always set `_id` explicitly as a string before writing.
153
+ - Never let MongoDB auto-generate `_id`, because that can create `ObjectId`-style ids.
154
+
155
+ ## RESOLVEIO LIBRARY SOURCE-OF-TRUTH POLICY
156
+ - Never use `patch-package` for any `@resolveio/*` library changes.
157
+ - Never patch `node_modules/@resolveio/*` as the primary fix path.
158
+ - Always implement fixes in the actual source library repo (for example `resolveio-server-lib` or `resolveio-client-lib`).
159
+ - After applying a library-source fix, explicitly report:
160
+ - Why the fix had to be made in the library source (root cause and ownership).
161
+ - What downstream impact to expect (version bump/publish, consumer upgrades, rollout risk, and compatibility considerations).
162
+
163
+ ## AI Terminal Boundary Policy
164
+
165
+ - Keep `resolveio-server-lib/src/methods/ai-terminal.ts` strictly platform-generic (`server-lib` / core ResolveIO only).
166
+ - Do not add app-specific names, app-only aliases, app-specific field fallbacks, or app-specific branching logic in `server-lib` AI terminal code.
167
+ - Put app-specific AI behavior in the app repo layer (for example `server/src/ai/assistant-heuristics.json` and app-level method/config wiring), not in `resolveio-server-lib`.
168
+
169
+ ## Distinct Filter Guidance
170
+
171
+ - For list/filter dropdowns, use distinct-backed options from the underlying collection data wherever practical instead of hardcoded option lists.
172
+ - Prefer list-template distinct filter support (`optionsDistinctKey`, `distinctQuery`, `distinctSort`, `distinctCollection`) when using `resolveio-list-template`.
173
+ - Keep an explicit "All" option for optional filters and ensure labels/values map to the true stored field values.
174
+ - Use hardcoded options only when values are truly fixed business enums that should not vary by dataset.
175
+
176
+ ## Rio Select Form-Control Rule
177
+
178
+ - Never apply Bootstrap `form-control` to `rio-select` (including `class="form-control"`). Use component-specific classes for `rio-select` styling.
179
+ - Never apply Bootstrap `form-control` to `rio-date-picker` (including `class="form-control"`). Use component-specific classes for `rio-date-picker` styling.
package/README.md ADDED
@@ -0,0 +1,22 @@
1
+ ## Copyright
2
+
3
+ Copyright © 2017-2019 ResolveIO, LLC. All Rights Reserved. This work is to be used/viewed by ResolveIO, LLC Employees ONLY.
4
+
5
+ ## ResolveIO Command Line
6
+
7
+ - `$ npm run server` - Run the server application.
8
+ - `$ npm run build-prod` - Build production (dist folder).
9
+ - `$ npm run package` - Build tarball for npm publish (version inside package json, must rebuild if changed)
10
+ - `$ npm publish ./resolveio-server-lib-x.x.x.tgz` - Publish tarball to npm
11
+
12
+ ## Contents
13
+
14
+ This package contains:
15
+
16
+ - ResolveIO Server Library
17
+
18
+ ### Server
19
+
20
+ The `server` folder contain single TypeScript (`.ts`) file which is the main file (`/server/src/index.ts`), and creates both connections to client-database and resolveio-support database, then creates the main server instance, and then starts it.
21
+
22
+ All other server files should be located under `/server/src/*`.
@@ -0,0 +1,5 @@
1
+ #!/bin/bash
2
+ source ~/.nvm/nvm.sh # Ensure this path is correct for your nvm installation
3
+ nvm use 22
4
+ npm run build-prod
5
+ npm pack ./dist
package/compileDTS.pl ADDED
@@ -0,0 +1,64 @@
1
+ use strict;
2
+ use warnings;
3
+ use JSON;
4
+
5
+ my @allIds;
6
+
7
+ my $dir = './dist';
8
+
9
+ my $extraFiles = '';
10
+
11
+ search_dir($dir);
12
+
13
+ sub search_dir {
14
+
15
+ my ($locdir) = @_;
16
+ # print "Entered search_dir sub, working with directory => $locdir \n";
17
+ my $dh; # handle
18
+
19
+ if ( !opendir ($dh, $locdir)) {
20
+ warn "Unable to open $locdir: $!\n";
21
+ return;
22
+ }
23
+
24
+ my @FILES = grep { $_ ne '.' && $_ ne '..' } readdir($dh);
25
+
26
+ foreach my $file (@FILES) {
27
+ my $path = "$locdir/$file";
28
+ if ( -d $path ) {
29
+ # print "Directory $path found\n";
30
+ search_dir ($path);
31
+ }
32
+ else {
33
+ if ($file =~ m/.d.ts/ and $file !~ m/index.d.ts/) {
34
+ # print "Open file $path\n";
35
+ open (FILE, "<", "$path");
36
+ my @lines = <FILE>;
37
+ close FILE;
38
+ chomp @lines;
39
+
40
+ for (my $k = 0; $k < scalar(@lines); $k++) {
41
+ if ($lines[$k] =~ m/^export / and $lines[$k] !~ m/export {};/) {
42
+ $extraFiles .= $lines[$k] . "\n";
43
+
44
+ if ($lines[$k] =~ m/\{\s*$/) {
45
+ while($lines[++$k] !~ m/^\};?\s*$/) {
46
+ $extraFiles .= $lines[$k] . "\n";
47
+ }
48
+
49
+ $extraFiles .= $lines[$k] . "\n";
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+
57
+ closedir ($dh);
58
+ }
59
+
60
+ print "Extras\n\n$extraFiles";
61
+
62
+ open (FILE, ">>", "./dist/index.d.ts");
63
+ print FILE "\n$extraFiles";
64
+ close FILE;
@@ -0,0 +1,65 @@
1
+ # AI Assistant Nightly Eval
2
+
3
+ This repo now includes a scheduled workflow at:
4
+
5
+ - `.github/workflows/ai-assistant-nightly-eval.yml`
6
+ - `.github/workflows/ai-assistant-pr-guardrails.yml`
7
+
8
+ It runs:
9
+
10
+ 1. `npm run ai-assistant-corpus-build`
11
+ 2. `npm run ai-assistant-data-parity-e2e`
12
+ 3. `npm run ai-assistant-corpus-replay-e2e`
13
+ 4. `npm run ai-assistant-eval-triage`
14
+
15
+ Artifacts are uploaded from `tmp/` and the workflow summary includes top prioritized failure clusters.
16
+
17
+ PR guardrails run on pull requests and execute:
18
+
19
+ 1. `npm run ai-assistant-utils-test`
20
+ 2. `npm run ai-assistant-routing-eval-test`
21
+
22
+ ## Required GitHub Setup
23
+
24
+ Set the secret:
25
+
26
+ - `OPENAI_API_KEY`
27
+
28
+ Set repository variables (recommended):
29
+
30
+ - `AI_ASSISTANT_EVAL_SERVER_DIR`: absolute path to server folder with settings and data access
31
+ - `AI_ASSISTANT_EVAL_SETTINGS`: settings filename (default `settings.local.json`)
32
+ - `AI_ASSISTANT_EVAL_APP_ID`: app id override (optional)
33
+ - `AI_ASSISTANT_EVAL_USER_ID`: user id override for corpus replay/build (optional)
34
+ - `AI_ASSISTANT_CODEX_MODEL`: model override (optional)
35
+
36
+ ## Running Manually
37
+
38
+ Use **Actions -> AI Assistant Nightly Eval -> Run workflow**.
39
+
40
+ Optional dispatch inputs:
41
+
42
+ - `server_dir`
43
+ - `settings_file`
44
+ - `app_id`
45
+ - `corpus_max_prompts`
46
+ - `corpus_lookback_days`
47
+ - `corpus_run_limit`
48
+ - `codex_model`
49
+ - `fail_on_eval_errors`
50
+
51
+ ## Output Files
52
+
53
+ Main outputs:
54
+
55
+ - `tmp/ai-assistant-query-corpus.json`
56
+ - `tmp/ai-assistant-data-parity-e2e-output.json`
57
+ - `tmp/ai-assistant-corpus-replay-e2e-output.json`
58
+ - `tmp/ai-assistant-eval-triage.json`
59
+ - `tmp/ai-assistant-eval-triage.md`
60
+
61
+ The triage JSON now includes:
62
+
63
+ - `allFailures.intentBuckets`
64
+ - `allFailures.collectionBuckets`
65
+ - `allFailures.priorityClusters`
@@ -0,0 +1,23 @@
1
+ # AI Assistant Preflight Checklist
2
+
3
+ Run this checklist before broader assistant evals.
4
+
5
+ 1. Lock deterministic runtime knobs in `settings.development.json`:
6
+ - `AI_ASSISTANT_CODEX_PLANNER_ENABLED`
7
+ - `AI_ASSISTANT_FAST_MODE_ENABLED`
8
+ - `AI_ASSISTANT_ALWAYS_ALLOW_PROBE`
9
+ - `AI_ASSISTANT_RUN_BUDGET_MS`
10
+ - `AI_ASSISTANT_MONGO_MAX_TIME_MS`
11
+ - `AI_ASSISTANT_CODEX_TIMEOUT_MS`
12
+
13
+ 2. Run focused assistant tests:
14
+ - `npm run ai-assistant-utils-test`
15
+ - `npm run ai-assistant-routing-eval-test`
16
+
17
+ 3. Validate the preflight prompt matrix:
18
+ - `npm run ai-assistant-preflight-matrix`
19
+ - Optional JSON output: `npm run ai-assistant-preflight-matrix -- --json`
20
+
21
+ 4. Use safe config copies when sharing logs/results:
22
+ - Share `settings.development.redacted.json` (not `settings.development.json`)
23
+ - Do not post raw secrets/tokens in issue comments or eval reports.