@resolveio/server-lib 22.3.140 → 22.3.142

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/.nodemon.json +5 -0
  2. package/.vscode/settings.json +21 -0
  3. package/AGENTS.md +195 -0
  4. package/README.md +22 -0
  5. package/build_package.sh +5 -0
  6. package/compileDTS.pl +64 -0
  7. package/docs/ai-assistant-nightly-eval.md +65 -0
  8. package/docs/ai-assistant-preflight-checklist.md +23 -0
  9. package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
  10. package/eslint-plugin-custom/index.js +7 -0
  11. package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
  12. package/eslint.config.js +103 -0
  13. package/gulpfile.js +216 -0
  14. package/methodAndPublicationListGenerator.py +375 -0
  15. package/mongodbensurers.js +2 -0
  16. package/mongostop.js +3 -0
  17. package/package.json +1 -1
  18. package/scripts/cleanup-bypassed-callmethod-logs.js +616 -0
  19. package/settings.development.json +25 -0
  20. package/settings.development.redacted.json +25 -0
  21. package/src/.env +12 -0
  22. package/src/ai/assistant-core-heuristics.ts +379 -0
  23. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +185 -0
  24. package/src/ai/resolveio-platform-intelligence-memory.ts +325 -0
  25. package/{ai/resolveio-platform-intelligence-types.d.ts → src/ai/resolveio-platform-intelligence-types.ts} +20 -15
  26. package/src/ai/resolveio-platform-intelligence.ts +462 -0
  27. package/src/client-server-app.ts +12 -0
  28. package/src/collections/ai-run.collection.ts +117 -0
  29. package/src/collections/ai-terminal-conversation.collection.ts +91 -0
  30. package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
  31. package/src/collections/ai-terminal-message.collection.ts +77 -0
  32. package/src/collections/app-setting.collection.ts +104 -0
  33. package/src/collections/app-status.collection.ts +58 -0
  34. package/src/collections/communication-metric.collection.ts +84 -0
  35. package/src/collections/counter.collection.ts +56 -0
  36. package/src/collections/cron-job-history.collection.ts +94 -0
  37. package/src/collections/cron-job.collection.ts +92 -0
  38. package/src/collections/customer-notification.collection.ts +131 -0
  39. package/src/collections/customer-portal-password.collection.ts +76 -0
  40. package/src/collections/email-history.collection.ts +134 -0
  41. package/src/collections/email-verified.collection.ts +62 -0
  42. package/src/collections/file.collection.ts +74 -0
  43. package/src/collections/flag-update.collection.ts +57 -0
  44. package/src/collections/flag.collection.ts +57 -0
  45. package/src/collections/log-method-latency.collection.ts +77 -0
  46. package/src/collections/log-subscription.collection.ts +80 -0
  47. package/src/collections/log.collection.ts +93 -0
  48. package/src/collections/logged-in-users.collection.ts +67 -0
  49. package/src/collections/monitor-cpu.collection.ts +65 -0
  50. package/src/collections/monitor-function.collection.ts +74 -0
  51. package/src/collections/monitor-memory.collection.ts +77 -0
  52. package/src/collections/monitor-mongo.collection.ts +71 -0
  53. package/src/collections/notification.collection.ts +57 -0
  54. package/src/collections/openai-usage-ledger.collection.ts +77 -0
  55. package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
  56. package/src/collections/report-builder-library.collection.ts +89 -0
  57. package/src/collections/report-builder-report.collection.ts +184 -0
  58. package/src/collections/user-group.collection.ts +89 -0
  59. package/src/collections/user-guide.collection.ts +57 -0
  60. package/src/collections/user.collection.ts +181 -0
  61. package/src/cron/cron.ts +117 -0
  62. package/src/fixtures/cron-jobs.ts +95 -0
  63. package/src/fixtures/init.ts +35 -0
  64. package/src/http/auth.ts +818 -0
  65. package/src/http/health.ts +7 -0
  66. package/src/http/home.ts +90 -0
  67. package/src/http/slow-query-publication.ts +49 -0
  68. package/src/index.ts +1 -0
  69. package/src/managers/ai-assistant-codex-manager.manager.ts +1131 -0
  70. package/src/managers/ai-run-evidence.manager.ts +264 -0
  71. package/src/managers/communication-metric.manager.ts +82 -0
  72. package/src/managers/cron.manager.ts +333 -0
  73. package/src/managers/customer-notification-content.manager.ts +236 -0
  74. package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
  75. package/src/managers/error-auto-fix.manager.ts +2767 -0
  76. package/src/managers/local-log.manager.ts +113 -0
  77. package/src/managers/method.manager.ts +1857 -0
  78. package/src/managers/mongo.manager.ts +4575 -0
  79. package/src/managers/monitor.manager.ts +507 -0
  80. package/src/managers/openai-usage-ledger.manager.ts +57 -0
  81. package/src/managers/slow-query-verifier.manager.ts +3590 -0
  82. package/src/managers/slow-query.manager.ts +519 -0
  83. package/src/managers/subscription.manager.ts +3128 -0
  84. package/src/managers/websocket.manager.ts +746 -0
  85. package/src/managers/worker-dispatcher.manager.ts +1360 -0
  86. package/src/managers/worker-server.manager.ts +536 -0
  87. package/src/methods/accounts.ts +532 -0
  88. package/src/methods/ai-terminal.ts +23497 -0
  89. package/src/methods/app-settings.ts +114 -0
  90. package/src/methods/aws.ts +649 -0
  91. package/src/methods/collections.ts +641 -0
  92. package/src/methods/counters.ts +69 -0
  93. package/src/methods/cron-jobs.ts +2614 -0
  94. package/src/methods/customer-notifications.ts +458 -0
  95. package/src/methods/diagnostics.ts +616 -0
  96. package/src/methods/flag-updates.ts +7 -0
  97. package/src/methods/flags.ts +7 -0
  98. package/src/methods/logs.ts +657 -0
  99. package/src/methods/mongo-explorer.ts +1880 -0
  100. package/src/methods/monitor.ts +540 -0
  101. package/src/methods/pdf.ts +1236 -0
  102. package/src/methods/publications.ts +129 -0
  103. package/src/methods/report-builder.ts +3300 -0
  104. package/src/methods/support.ts +335 -0
  105. package/src/models/ai-run.model.ts +27 -0
  106. package/src/models/ai-terminal-conversation.model.ts +19 -0
  107. package/src/models/ai-terminal-issue-report.model.ts +21 -0
  108. package/src/models/ai-terminal-message.model.ts +24 -0
  109. package/src/models/app-setting.model.ts +17 -0
  110. package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
  111. package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
  112. package/src/models/collection-document.model.ts +24 -0
  113. package/src/models/communication-metric.model.ts +23 -0
  114. package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
  115. package/src/models/cron-job-history.model.ts +16 -0
  116. package/src/models/cron-job.model.ts +15 -0
  117. package/src/models/customer-notification.model.ts +28 -0
  118. package/src/models/customer-portal-password.model.ts +12 -0
  119. package/src/models/dialog.model.ts +25 -0
  120. package/{models/email-history.model.js → src/models/email-history.model.ts} +36 -4
  121. package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
  122. package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
  123. package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
  124. package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
  125. package/src/models/log-method-latency.model.ts +11 -0
  126. package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
  127. package/src/models/log.model.ts +19 -0
  128. package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
  129. package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
  130. package/src/models/method.model.ts +25 -0
  131. package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
  132. package/src/models/monitor-function.model.ts +16 -0
  133. package/src/models/monitor-memory.model.ts +17 -0
  134. package/src/models/monitor-mongo.model.ts +15 -0
  135. package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
  136. package/src/models/openai-usage-ledger.model.ts +16 -0
  137. package/src/models/pagination.model.ts +35 -0
  138. package/src/models/permission.model.ts +14 -0
  139. package/src/models/report-builder-dashboard-builder.model.ts +29 -0
  140. package/src/models/report-builder-library.model.ts +20 -0
  141. package/src/models/report-builder-report.model.ts +136 -0
  142. package/src/models/report-builder.model.ts +68 -0
  143. package/src/models/select-data-label.model.ts +9 -0
  144. package/src/models/server-message.model.ts +31 -0
  145. package/src/models/slow-query-report.model.ts +23 -0
  146. package/src/models/subscription.model.ts +73 -0
  147. package/src/models/support-ticket.model.ts +104 -0
  148. package/src/models/user-group.model.ts +24 -0
  149. package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
  150. package/src/models/user.model.ts +96 -0
  151. package/src/private/images/ResolveIO.png +0 -0
  152. package/src/publications/ai-terminal.ts +73 -0
  153. package/src/publications/app-settings.ts +25 -0
  154. package/src/publications/app-status.ts +13 -0
  155. package/src/publications/cron-jobs.ts +40 -0
  156. package/src/publications/customer-notifications.ts +101 -0
  157. package/src/publications/files.ts +33 -0
  158. package/src/publications/flags-update.ts +19 -0
  159. package/src/publications/flags.ts +19 -0
  160. package/src/publications/logs.ts +163 -0
  161. package/src/publications/notifications.ts +13 -0
  162. package/src/publications/report-builder-dashboard-builders.ts +39 -0
  163. package/src/publications/report-builder-libraries.ts +41 -0
  164. package/src/publications/report-builder-reports.ts +47 -0
  165. package/src/publications/super-admin.ts +13 -0
  166. package/src/publications/user-groups.ts +12 -0
  167. package/src/publications/user-guides.ts +12 -0
  168. package/src/resolveio-server-app.ts +617 -0
  169. package/src/server-app.ts +3354 -0
  170. package/src/services/codex-client.ts +1231 -0
  171. package/src/services/openai-client.ts +265 -0
  172. package/src/types/error-report.ts +26 -0
  173. package/src/types/js-tiktoken.d.ts +11 -0
  174. package/src/types/slow-query-report.ts +28 -0
  175. package/src/util/ai-qa-policy.ts +925 -0
  176. package/src/util/ai-run-evidence-adapters.ts +677 -0
  177. package/src/util/ai-run-evidence-dashboard.ts +271 -0
  178. package/src/util/ai-run-evidence-eval.ts +885 -0
  179. package/src/util/ai-run-evidence.ts +964 -0
  180. package/src/util/ai-runner-artifacts.ts +586 -0
  181. package/src/util/ai-runner-manager-autopilot.ts +380 -0
  182. package/src/util/ai-runner-manager-policy.ts +1740 -0
  183. package/src/util/ai-runner-qa-auth.ts +821 -0
  184. package/src/util/ai-runner-qa-tools.ts +3045 -0
  185. package/src/util/aicoder-runner-v6.ts +875 -0
  186. package/src/util/common.ts +649 -0
  187. package/src/util/customer-portal-password.ts +183 -0
  188. package/src/util/error-reporter.ts +332 -0
  189. package/src/util/error-tracking.ts +79 -0
  190. package/src/util/openai-usage-cost.ts +114 -0
  191. package/src/util/report-builder-unwinds.ts +180 -0
  192. package/src/util/runner-process-janitor.ts +219 -0
  193. package/src/util/schema-report-builder.ts +448 -0
  194. package/src/util/slow-query-reporter.ts +216 -0
  195. package/src/util/subscription-dependency-context.ts +1096 -0
  196. package/src/util/support-runner-v5.ts +2065 -0
  197. package/src/util/tokenizer.ts +38 -0
  198. package/src/workers/codex-runner.worker.ts +142 -0
  199. package/start_server.sh +5 -0
  200. package/tests/ai-assistant-corpus-build.ts +484 -0
  201. package/tests/ai-assistant-corpus-replay-e2e.ts +774 -0
  202. package/tests/ai-assistant-data-parity-e2e.ts +1989 -0
  203. package/tests/ai-assistant-eval-triage.ts +831 -0
  204. package/tests/ai-assistant-openai-e2e.ts +1061 -0
  205. package/tests/ai-assistant-openai-git-e2e.ts +155 -0
  206. package/tests/ai-assistant-preflight-matrix.ts +215 -0
  207. package/tests/ai-assistant-routing-eval.test.ts +560 -0
  208. package/tests/ai-assistant-snf-live-eval.ts +975 -0
  209. package/tests/ai-assistant-utils.test.ts +2968 -0
  210. package/tests/ai-manager-autopilot-snapshot.test.ts +172 -0
  211. package/tests/ai-manager-recovery-checkpoint.test.ts +323 -0
  212. package/tests/ai-run-eval.test.ts +88 -0
  213. package/tests/ai-run-evidence.test.ts +305 -0
  214. package/tests/ai-runner-contract.test.ts +488 -0
  215. package/tests/aicoder-runner-v6.test.ts +268 -0
  216. package/tests/error-reporter.test.ts +145 -0
  217. package/tests/method-publication-generator.test.ts +46 -0
  218. package/tests/report-builder-linking.test.ts +79 -0
  219. package/tests/resolveio-platform-intelligence.test.ts +352 -0
  220. package/tests/server-app-cron-owner.test.ts +127 -0
  221. package/tests/subscription-connect-race.test.ts +158 -0
  222. package/tests/subscription-dependency-context.test.ts +324 -0
  223. package/tests/subscription-manager-collection-tracking.test.ts +86 -0
  224. package/tests/subscription-manager-invalidation.test.ts +86 -0
  225. package/tests/support-runner-v5.test.ts +417 -0
  226. package/tsconfig.json +34 -0
  227. package/ai/assistant-core-heuristics.d.ts +0 -11
  228. package/ai/assistant-core-heuristics.js +0 -356
  229. package/ai/assistant-core-heuristics.js.map +0 -1
  230. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +0 -3
  231. package/ai/resolveio-platform-intelligence-memory-corpus.js +0 -214
  232. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +0 -1
  233. package/ai/resolveio-platform-intelligence-memory.d.ts +0 -20
  234. package/ai/resolveio-platform-intelligence-memory.js +0 -341
  235. package/ai/resolveio-platform-intelligence-memory.js.map +0 -1
  236. package/ai/resolveio-platform-intelligence-types.js +0 -4
  237. package/ai/resolveio-platform-intelligence-types.js.map +0 -1
  238. package/ai/resolveio-platform-intelligence.d.ts +0 -6
  239. package/ai/resolveio-platform-intelligence.js +0 -463
  240. package/ai/resolveio-platform-intelligence.js.map +0 -1
  241. package/client-server-app.d.ts +0 -1
  242. package/client-server-app.js +0 -68
  243. package/client-server-app.js.map +0 -1
  244. package/collections/ai-run.collection.d.ts +0 -3
  245. package/collections/ai-run.collection.js +0 -170
  246. package/collections/ai-run.collection.js.map +0 -1
  247. package/collections/ai-terminal-conversation.collection.d.ts +0 -2
  248. package/collections/ai-terminal-conversation.collection.js +0 -140
  249. package/collections/ai-terminal-conversation.collection.js.map +0 -1
  250. package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
  251. package/collections/ai-terminal-issue-report.collection.js +0 -148
  252. package/collections/ai-terminal-issue-report.collection.js.map +0 -1
  253. package/collections/ai-terminal-message.collection.d.ts +0 -2
  254. package/collections/ai-terminal-message.collection.js +0 -121
  255. package/collections/ai-terminal-message.collection.js.map +0 -1
  256. package/collections/app-setting.collection.d.ts +0 -3
  257. package/collections/app-setting.collection.js +0 -103
  258. package/collections/app-setting.collection.js.map +0 -1
  259. package/collections/app-status.collection.d.ts +0 -3
  260. package/collections/app-status.collection.js +0 -57
  261. package/collections/app-status.collection.js.map +0 -1
  262. package/collections/communication-metric.collection.d.ts +0 -2
  263. package/collections/communication-metric.collection.js +0 -133
  264. package/collections/communication-metric.collection.js.map +0 -1
  265. package/collections/counter.collection.d.ts +0 -3
  266. package/collections/counter.collection.js +0 -56
  267. package/collections/counter.collection.js.map +0 -1
  268. package/collections/cron-job-history.collection.d.ts +0 -3
  269. package/collections/cron-job-history.collection.js +0 -137
  270. package/collections/cron-job-history.collection.js.map +0 -1
  271. package/collections/cron-job.collection.d.ts +0 -3
  272. package/collections/cron-job.collection.js +0 -92
  273. package/collections/cron-job.collection.js.map +0 -1
  274. package/collections/customer-notification.collection.d.ts +0 -3
  275. package/collections/customer-notification.collection.js +0 -130
  276. package/collections/customer-notification.collection.js.map +0 -1
  277. package/collections/customer-portal-password.collection.d.ts +0 -3
  278. package/collections/customer-portal-password.collection.js +0 -75
  279. package/collections/customer-portal-password.collection.js.map +0 -1
  280. package/collections/email-history.collection.d.ts +0 -3
  281. package/collections/email-history.collection.js +0 -134
  282. package/collections/email-history.collection.js.map +0 -1
  283. package/collections/email-verified.collection.d.ts +0 -3
  284. package/collections/email-verified.collection.js +0 -62
  285. package/collections/email-verified.collection.js.map +0 -1
  286. package/collections/file.collection.d.ts +0 -3
  287. package/collections/file.collection.js +0 -74
  288. package/collections/file.collection.js.map +0 -1
  289. package/collections/flag-update.collection.d.ts +0 -3
  290. package/collections/flag-update.collection.js +0 -57
  291. package/collections/flag-update.collection.js.map +0 -1
  292. package/collections/flag.collection.d.ts +0 -3
  293. package/collections/flag.collection.js +0 -57
  294. package/collections/flag.collection.js.map +0 -1
  295. package/collections/log-method-latency.collection.d.ts +0 -3
  296. package/collections/log-method-latency.collection.js +0 -77
  297. package/collections/log-method-latency.collection.js.map +0 -1
  298. package/collections/log-subscription.collection.d.ts +0 -3
  299. package/collections/log-subscription.collection.js +0 -80
  300. package/collections/log-subscription.collection.js.map +0 -1
  301. package/collections/log.collection.d.ts +0 -3
  302. package/collections/log.collection.js +0 -93
  303. package/collections/log.collection.js.map +0 -1
  304. package/collections/logged-in-users.collection.d.ts +0 -3
  305. package/collections/logged-in-users.collection.js +0 -67
  306. package/collections/logged-in-users.collection.js.map +0 -1
  307. package/collections/monitor-cpu.collection.d.ts +0 -3
  308. package/collections/monitor-cpu.collection.js +0 -65
  309. package/collections/monitor-cpu.collection.js.map +0 -1
  310. package/collections/monitor-function.collection.d.ts +0 -3
  311. package/collections/monitor-function.collection.js +0 -74
  312. package/collections/monitor-function.collection.js.map +0 -1
  313. package/collections/monitor-memory.collection.d.ts +0 -3
  314. package/collections/monitor-memory.collection.js +0 -77
  315. package/collections/monitor-memory.collection.js.map +0 -1
  316. package/collections/monitor-mongo.collection.d.ts +0 -3
  317. package/collections/monitor-mongo.collection.js +0 -71
  318. package/collections/monitor-mongo.collection.js.map +0 -1
  319. package/collections/notification.collection.d.ts +0 -3
  320. package/collections/notification.collection.js +0 -57
  321. package/collections/notification.collection.js.map +0 -1
  322. package/collections/openai-usage-ledger.collection.d.ts +0 -2
  323. package/collections/openai-usage-ledger.collection.js +0 -124
  324. package/collections/openai-usage-ledger.collection.js.map +0 -1
  325. package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
  326. package/collections/report-builder-dashboard-builder.collection.js +0 -109
  327. package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
  328. package/collections/report-builder-library.collection.d.ts +0 -3
  329. package/collections/report-builder-library.collection.js +0 -87
  330. package/collections/report-builder-library.collection.js.map +0 -1
  331. package/collections/report-builder-report.collection.d.ts +0 -4
  332. package/collections/report-builder-report.collection.js +0 -184
  333. package/collections/report-builder-report.collection.js.map +0 -1
  334. package/collections/user-group.collection.d.ts +0 -4
  335. package/collections/user-group.collection.js +0 -89
  336. package/collections/user-group.collection.js.map +0 -1
  337. package/collections/user-guide.collection.d.ts +0 -3
  338. package/collections/user-guide.collection.js +0 -57
  339. package/collections/user-guide.collection.js.map +0 -1
  340. package/collections/user.collection.d.ts +0 -4
  341. package/collections/user.collection.js +0 -180
  342. package/collections/user.collection.js.map +0 -1
  343. package/cron/cron.d.ts +0 -14
  344. package/cron/cron.js +0 -216
  345. package/cron/cron.js.map +0 -1
  346. package/fixtures/cron-jobs.d.ts +0 -1
  347. package/fixtures/cron-jobs.js +0 -150
  348. package/fixtures/cron-jobs.js.map +0 -1
  349. package/fixtures/init.d.ts +0 -1
  350. package/fixtures/init.js +0 -91
  351. package/fixtures/init.js.map +0 -1
  352. package/http/auth.d.ts +0 -2
  353. package/http/auth.js +0 -951
  354. package/http/auth.js.map +0 -1
  355. package/http/health.d.ts +0 -1
  356. package/http/health.js +0 -11
  357. package/http/health.js.map +0 -1
  358. package/http/home.d.ts +0 -1
  359. package/http/home.js +0 -134
  360. package/http/home.js.map +0 -1
  361. package/http/slow-query-publication.d.ts +0 -2
  362. package/http/slow-query-publication.js +0 -99
  363. package/http/slow-query-publication.js.map +0 -1
  364. package/index.d.ts +0 -1
  365. package/index.js +0 -19
  366. package/index.js.map +0 -1
  367. package/managers/ai-assistant-codex-manager.manager.d.ts +0 -67
  368. package/managers/ai-assistant-codex-manager.manager.js +0 -1113
  369. package/managers/ai-assistant-codex-manager.manager.js.map +0 -1
  370. package/managers/ai-run-evidence.manager.d.ts +0 -36
  371. package/managers/ai-run-evidence.manager.js +0 -377
  372. package/managers/ai-run-evidence.manager.js.map +0 -1
  373. package/managers/communication-metric.manager.d.ts +0 -16
  374. package/managers/communication-metric.manager.js +0 -134
  375. package/managers/communication-metric.manager.js.map +0 -1
  376. package/managers/cron.manager.d.ts +0 -20
  377. package/managers/cron.manager.js +0 -534
  378. package/managers/cron.manager.js.map +0 -1
  379. package/managers/customer-notification-content.manager.d.ts +0 -55
  380. package/managers/customer-notification-content.manager.js +0 -158
  381. package/managers/customer-notification-content.manager.js.map +0 -1
  382. package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
  383. package/managers/diagnostic-manager-bootstrap.js +0 -260
  384. package/managers/diagnostic-manager-bootstrap.js.map +0 -1
  385. package/managers/error-auto-fix.manager.d.ts +0 -149
  386. package/managers/error-auto-fix.manager.js +0 -3064
  387. package/managers/error-auto-fix.manager.js.map +0 -1
  388. package/managers/local-log.manager.d.ts +0 -18
  389. package/managers/local-log.manager.js +0 -88
  390. package/managers/local-log.manager.js.map +0 -1
  391. package/managers/method.manager.d.ts +0 -84
  392. package/managers/method.manager.js +0 -1964
  393. package/managers/method.manager.js.map +0 -1
  394. package/managers/mongo.manager.d.ts +0 -224
  395. package/managers/mongo.manager.js +0 -5000
  396. package/managers/mongo.manager.js.map +0 -1
  397. package/managers/monitor.manager.d.ts +0 -70
  398. package/managers/monitor.manager.js +0 -550
  399. package/managers/monitor.manager.js.map +0 -1
  400. package/managers/openai-usage-ledger.manager.d.ts +0 -16
  401. package/managers/openai-usage-ledger.manager.js +0 -93
  402. package/managers/openai-usage-ledger.manager.js.map +0 -1
  403. package/managers/slow-query-verifier.manager.d.ts +0 -144
  404. package/managers/slow-query-verifier.manager.js +0 -3857
  405. package/managers/slow-query-verifier.manager.js.map +0 -1
  406. package/managers/slow-query.manager.d.ts +0 -28
  407. package/managers/slow-query.manager.js +0 -468
  408. package/managers/slow-query.manager.js.map +0 -1
  409. package/managers/subscription.manager.d.ts +0 -169
  410. package/managers/subscription.manager.js +0 -3434
  411. package/managers/subscription.manager.js.map +0 -1
  412. package/managers/websocket.manager.d.ts +0 -73
  413. package/managers/websocket.manager.js +0 -673
  414. package/managers/websocket.manager.js.map +0 -1
  415. package/managers/worker-dispatcher.manager.d.ts +0 -120
  416. package/managers/worker-dispatcher.manager.js +0 -1266
  417. package/managers/worker-dispatcher.manager.js.map +0 -1
  418. package/managers/worker-server.manager.d.ts +0 -35
  419. package/managers/worker-server.manager.js +0 -582
  420. package/managers/worker-server.manager.js.map +0 -1
  421. package/methods/accounts.d.ts +0 -2
  422. package/methods/accounts.js +0 -624
  423. package/methods/accounts.js.map +0 -1
  424. package/methods/ai-terminal.d.ts +0 -337
  425. package/methods/ai-terminal.js +0 -23166
  426. package/methods/ai-terminal.js.map +0 -1
  427. package/methods/app-settings.d.ts +0 -2
  428. package/methods/app-settings.js +0 -169
  429. package/methods/app-settings.js.map +0 -1
  430. package/methods/aws.d.ts +0 -2
  431. package/methods/aws.js +0 -877
  432. package/methods/aws.js.map +0 -1
  433. package/methods/collections.d.ts +0 -2
  434. package/methods/collections.js +0 -719
  435. package/methods/collections.js.map +0 -1
  436. package/methods/counters.d.ts +0 -2
  437. package/methods/counters.js +0 -113
  438. package/methods/counters.js.map +0 -1
  439. package/methods/cron-jobs.d.ts +0 -2
  440. package/methods/cron-jobs.js +0 -2475
  441. package/methods/cron-jobs.js.map +0 -1
  442. package/methods/customer-notifications.d.ts +0 -2
  443. package/methods/customer-notifications.js +0 -528
  444. package/methods/customer-notifications.js.map +0 -1
  445. package/methods/diagnostics.d.ts +0 -2
  446. package/methods/diagnostics.js +0 -703
  447. package/methods/diagnostics.js.map +0 -1
  448. package/methods/flag-updates.d.ts +0 -2
  449. package/methods/flag-updates.js +0 -8
  450. package/methods/flag-updates.js.map +0 -1
  451. package/methods/flags.d.ts +0 -2
  452. package/methods/flags.js +0 -8
  453. package/methods/flags.js.map +0 -1
  454. package/methods/logs.d.ts +0 -2
  455. package/methods/logs.js +0 -751
  456. package/methods/logs.js.map +0 -1
  457. package/methods/mongo-explorer.d.ts +0 -2
  458. package/methods/mongo-explorer.js +0 -1808
  459. package/methods/mongo-explorer.js.map +0 -1
  460. package/methods/monitor.d.ts +0 -2
  461. package/methods/monitor.js +0 -543
  462. package/methods/monitor.js.map +0 -1
  463. package/methods/pdf.d.ts +0 -2
  464. package/methods/pdf.js +0 -1216
  465. package/methods/pdf.js.map +0 -1
  466. package/methods/publications.d.ts +0 -1
  467. package/methods/publications.js +0 -183
  468. package/methods/publications.js.map +0 -1
  469. package/methods/report-builder.d.ts +0 -2
  470. package/methods/report-builder.js +0 -3094
  471. package/methods/report-builder.js.map +0 -1
  472. package/methods/support.d.ts +0 -2
  473. package/methods/support.js +0 -430
  474. package/methods/support.js.map +0 -1
  475. package/models/ai-run.model.d.ts +0 -19
  476. package/models/ai-run.model.js +0 -4
  477. package/models/ai-run.model.js.map +0 -1
  478. package/models/ai-terminal-conversation.model.d.ts +0 -17
  479. package/models/ai-terminal-conversation.model.js +0 -4
  480. package/models/ai-terminal-conversation.model.js.map +0 -1
  481. package/models/ai-terminal-issue-report.model.d.ts +0 -19
  482. package/models/ai-terminal-issue-report.model.js +0 -4
  483. package/models/ai-terminal-issue-report.model.js.map +0 -1
  484. package/models/ai-terminal-message.model.d.ts +0 -22
  485. package/models/ai-terminal-message.model.js +0 -4
  486. package/models/ai-terminal-message.model.js.map +0 -1
  487. package/models/app-setting.model.d.ts +0 -16
  488. package/models/app-setting.model.js +0 -4
  489. package/models/app-setting.model.js.map +0 -1
  490. package/models/app-status.model.js +0 -4
  491. package/models/app-status.model.js.map +0 -1
  492. package/models/billing-logged-in-users.model.js +0 -4
  493. package/models/billing-logged-in-users.model.js.map +0 -1
  494. package/models/collection-document.model.d.ts +0 -21
  495. package/models/collection-document.model.js +0 -4
  496. package/models/collection-document.model.js.map +0 -1
  497. package/models/communication-metric.model.d.ts +0 -20
  498. package/models/communication-metric.model.js +0 -4
  499. package/models/communication-metric.model.js.map +0 -1
  500. package/models/counter.model.js +0 -4
  501. package/models/counter.model.js.map +0 -1
  502. package/models/cron-job-history.model.d.ts +0 -15
  503. package/models/cron-job-history.model.js +0 -4
  504. package/models/cron-job-history.model.js.map +0 -1
  505. package/models/cron-job.model.d.ts +0 -14
  506. package/models/cron-job.model.js +0 -4
  507. package/models/cron-job.model.js.map +0 -1
  508. package/models/customer-notification.model.d.ts +0 -26
  509. package/models/customer-notification.model.js +0 -4
  510. package/models/customer-notification.model.js.map +0 -1
  511. package/models/customer-portal-password.model.d.ts +0 -11
  512. package/models/customer-portal-password.model.js +0 -4
  513. package/models/customer-portal-password.model.js.map +0 -1
  514. package/models/dialog.model.d.ts +0 -23
  515. package/models/dialog.model.js +0 -4
  516. package/models/dialog.model.js.map +0 -1
  517. package/models/email-history.model.d.ts +0 -32
  518. package/models/email-history.model.js.map +0 -1
  519. package/models/email-verified.model.js +0 -4
  520. package/models/email-verified.model.js.map +0 -1
  521. package/models/file.model.js +0 -4
  522. package/models/file.model.js.map +0 -1
  523. package/models/flag-update.model.js +0 -4
  524. package/models/flag-update.model.js.map +0 -1
  525. package/models/flag.model.js +0 -4
  526. package/models/flag.model.js.map +0 -1
  527. package/models/log-method-latency.model.d.ts +0 -10
  528. package/models/log-method-latency.model.js +0 -4
  529. package/models/log-method-latency.model.js.map +0 -1
  530. package/models/log-subscription.model.js +0 -4
  531. package/models/log-subscription.model.js.map +0 -1
  532. package/models/log.model.d.ts +0 -17
  533. package/models/log.model.js +0 -4
  534. package/models/log.model.js.map +0 -1
  535. package/models/logged-in-users.model.js +0 -4
  536. package/models/logged-in-users.model.js.map +0 -1
  537. package/models/method-response.model.js +0 -4
  538. package/models/method-response.model.js.map +0 -1
  539. package/models/method.model.d.ts +0 -26
  540. package/models/method.model.js +0 -4
  541. package/models/method.model.js.map +0 -1
  542. package/models/monitor-cpu.model.js +0 -4
  543. package/models/monitor-cpu.model.js.map +0 -1
  544. package/models/monitor-function.model.d.ts +0 -14
  545. package/models/monitor-function.model.js +0 -4
  546. package/models/monitor-function.model.js.map +0 -1
  547. package/models/monitor-memory.model.d.ts +0 -15
  548. package/models/monitor-memory.model.js +0 -4
  549. package/models/monitor-memory.model.js.map +0 -1
  550. package/models/monitor-mongo.model.d.ts +0 -13
  551. package/models/monitor-mongo.model.js +0 -4
  552. package/models/monitor-mongo.model.js.map +0 -1
  553. package/models/notification.model.js +0 -4
  554. package/models/notification.model.js.map +0 -1
  555. package/models/openai-usage-ledger.model.d.ts +0 -15
  556. package/models/openai-usage-ledger.model.js +0 -4
  557. package/models/openai-usage-ledger.model.js.map +0 -1
  558. package/models/pagination.model.d.ts +0 -11
  559. package/models/pagination.model.js +0 -28
  560. package/models/pagination.model.js.map +0 -1
  561. package/models/permission.model.d.ts +0 -12
  562. package/models/permission.model.js +0 -4
  563. package/models/permission.model.js.map +0 -1
  564. package/models/report-builder-dashboard-builder.model.d.ts +0 -25
  565. package/models/report-builder-dashboard-builder.model.js +0 -4
  566. package/models/report-builder-dashboard-builder.model.js.map +0 -1
  567. package/models/report-builder-library.model.d.ts +0 -17
  568. package/models/report-builder-library.model.js +0 -4
  569. package/models/report-builder-library.model.js.map +0 -1
  570. package/models/report-builder-report.model.d.ts +0 -121
  571. package/models/report-builder-report.model.js +0 -4
  572. package/models/report-builder-report.model.js.map +0 -1
  573. package/models/report-builder.model.d.ts +0 -61
  574. package/models/report-builder.model.js +0 -4
  575. package/models/report-builder.model.js.map +0 -1
  576. package/models/select-data-label.model.d.ts +0 -9
  577. package/models/select-data-label.model.js +0 -4
  578. package/models/select-data-label.model.js.map +0 -1
  579. package/models/server-message.model.d.ts +0 -32
  580. package/models/server-message.model.js +0 -4
  581. package/models/server-message.model.js.map +0 -1
  582. package/models/slow-query-report.model.d.ts +0 -23
  583. package/models/slow-query-report.model.js +0 -4
  584. package/models/slow-query-report.model.js.map +0 -1
  585. package/models/subscription.model.d.ts +0 -31
  586. package/models/subscription.model.js +0 -4
  587. package/models/subscription.model.js.map +0 -1
  588. package/models/support-ticket.model.d.ts +0 -87
  589. package/models/support-ticket.model.js +0 -4
  590. package/models/support-ticket.model.js.map +0 -1
  591. package/models/user-group.model.d.ts +0 -20
  592. package/models/user-group.model.js +0 -4
  593. package/models/user-group.model.js.map +0 -1
  594. package/models/user-guide.model.js +0 -4
  595. package/models/user-guide.model.js.map +0 -1
  596. package/models/user.model.d.ts +0 -84
  597. package/models/user.model.js +0 -4
  598. package/models/user.model.js.map +0 -1
  599. package/private/images/ResolveIO.png +0 -0
  600. package/public_api.js +0 -127
  601. package/public_api.js.map +0 -1
  602. package/publications/ai-terminal.d.ts +0 -1
  603. package/publications/ai-terminal.js +0 -122
  604. package/publications/ai-terminal.js.map +0 -1
  605. package/publications/app-settings.d.ts +0 -2
  606. package/publications/app-settings.js +0 -28
  607. package/publications/app-settings.js.map +0 -1
  608. package/publications/app-status.d.ts +0 -2
  609. package/publications/app-status.js +0 -16
  610. package/publications/app-status.js.map +0 -1
  611. package/publications/cron-jobs.d.ts +0 -2
  612. package/publications/cron-jobs.js +0 -88
  613. package/publications/cron-jobs.js.map +0 -1
  614. package/publications/customer-notifications.d.ts +0 -2
  615. package/publications/customer-notifications.js +0 -161
  616. package/publications/customer-notifications.js.map +0 -1
  617. package/publications/files.d.ts +0 -2
  618. package/publications/files.js +0 -36
  619. package/publications/files.js.map +0 -1
  620. package/publications/flags-update.d.ts +0 -2
  621. package/publications/flags-update.js +0 -22
  622. package/publications/flags-update.js.map +0 -1
  623. package/publications/flags.d.ts +0 -2
  624. package/publications/flags.js +0 -22
  625. package/publications/flags.js.map +0 -1
  626. package/publications/logs.d.ts +0 -2
  627. package/publications/logs.js +0 -164
  628. package/publications/logs.js.map +0 -1
  629. package/publications/notifications.d.ts +0 -2
  630. package/publications/notifications.js +0 -16
  631. package/publications/notifications.js.map +0 -1
  632. package/publications/report-builder-dashboard-builders.d.ts +0 -2
  633. package/publications/report-builder-dashboard-builders.js +0 -42
  634. package/publications/report-builder-dashboard-builders.js.map +0 -1
  635. package/publications/report-builder-libraries.d.ts +0 -2
  636. package/publications/report-builder-libraries.js +0 -90
  637. package/publications/report-builder-libraries.js.map +0 -1
  638. package/publications/report-builder-reports.d.ts +0 -2
  639. package/publications/report-builder-reports.js +0 -50
  640. package/publications/report-builder-reports.js.map +0 -1
  641. package/publications/super-admin.d.ts +0 -2
  642. package/publications/super-admin.js +0 -16
  643. package/publications/super-admin.js.map +0 -1
  644. package/publications/user-groups.d.ts +0 -1
  645. package/publications/user-groups.js +0 -16
  646. package/publications/user-groups.js.map +0 -1
  647. package/publications/user-guides.d.ts +0 -1
  648. package/publications/user-guides.js +0 -16
  649. package/publications/user-guides.js.map +0 -1
  650. package/resolveio-server-app.d.ts +0 -70
  651. package/resolveio-server-app.js +0 -801
  652. package/resolveio-server-app.js.map +0 -1
  653. package/server-app.d.ts +0 -228
  654. package/server-app.js +0 -3566
  655. package/server-app.js.map +0 -1
  656. package/services/codex-client.d.ts +0 -128
  657. package/services/codex-client.js +0 -1629
  658. package/services/codex-client.js.map +0 -1
  659. package/services/openai-client.d.ts +0 -46
  660. package/services/openai-client.js +0 -318
  661. package/services/openai-client.js.map +0 -1
  662. package/types/error-report.d.ts +0 -25
  663. package/types/error-report.js +0 -4
  664. package/types/error-report.js.map +0 -1
  665. package/types/slow-query-report.d.ts +0 -27
  666. package/types/slow-query-report.js +0 -6
  667. package/types/slow-query-report.js.map +0 -1
  668. package/util/ai-qa-policy.d.ts +0 -124
  669. package/util/ai-qa-policy.js +0 -736
  670. package/util/ai-qa-policy.js.map +0 -1
  671. package/util/ai-run-evidence-adapters.d.ts +0 -33
  672. package/util/ai-run-evidence-adapters.js +0 -831
  673. package/util/ai-run-evidence-adapters.js.map +0 -1
  674. package/util/ai-run-evidence-dashboard.d.ts +0 -67
  675. package/util/ai-run-evidence-dashboard.js +0 -309
  676. package/util/ai-run-evidence-dashboard.js.map +0 -1
  677. package/util/ai-run-evidence-eval.d.ts +0 -86
  678. package/util/ai-run-evidence-eval.js +0 -854
  679. package/util/ai-run-evidence-eval.js.map +0 -1
  680. package/util/ai-run-evidence.d.ts +0 -212
  681. package/util/ai-run-evidence.js +0 -649
  682. package/util/ai-run-evidence.js.map +0 -1
  683. package/util/ai-runner-artifacts.d.ts +0 -82
  684. package/util/ai-runner-artifacts.js +0 -713
  685. package/util/ai-runner-artifacts.js.map +0 -1
  686. package/util/ai-runner-manager-autopilot.d.ts +0 -92
  687. package/util/ai-runner-manager-autopilot.js +0 -281
  688. package/util/ai-runner-manager-autopilot.js.map +0 -1
  689. package/util/ai-runner-manager-policy.d.ts +0 -282
  690. package/util/ai-runner-manager-policy.js +0 -997
  691. package/util/ai-runner-manager-policy.js.map +0 -1
  692. package/util/ai-runner-qa-auth.d.ts +0 -5
  693. package/util/ai-runner-qa-auth.js +0 -822
  694. package/util/ai-runner-qa-auth.js.map +0 -1
  695. package/util/ai-runner-qa-tools.d.ts +0 -26
  696. package/util/ai-runner-qa-tools.js +0 -3029
  697. package/util/ai-runner-qa-tools.js.map +0 -1
  698. package/util/aicoder-runner-v6.d.ts +0 -212
  699. package/util/aicoder-runner-v6.js +0 -502
  700. package/util/aicoder-runner-v6.js.map +0 -1
  701. package/util/common.d.ts +0 -31
  702. package/util/common.js +0 -683
  703. package/util/common.js.map +0 -1
  704. package/util/customer-portal-password.d.ts +0 -13
  705. package/util/customer-portal-password.js +0 -209
  706. package/util/customer-portal-password.js.map +0 -1
  707. package/util/error-reporter.d.ts +0 -52
  708. package/util/error-reporter.js +0 -326
  709. package/util/error-reporter.js.map +0 -1
  710. package/util/error-tracking.d.ts +0 -13
  711. package/util/error-tracking.js +0 -120
  712. package/util/error-tracking.js.map +0 -1
  713. package/util/openai-usage-cost.d.ts +0 -6
  714. package/util/openai-usage-cost.js +0 -103
  715. package/util/openai-usage-cost.js.map +0 -1
  716. package/util/report-builder-unwinds.d.ts +0 -15
  717. package/util/report-builder-unwinds.js +0 -156
  718. package/util/report-builder-unwinds.js.map +0 -1
  719. package/util/runner-process-janitor.d.ts +0 -27
  720. package/util/runner-process-janitor.js +0 -208
  721. package/util/runner-process-janitor.js.map +0 -1
  722. package/util/schema-report-builder.d.ts +0 -6
  723. package/util/schema-report-builder.js +0 -481
  724. package/util/schema-report-builder.js.map +0 -1
  725. package/util/slow-query-reporter.d.ts +0 -28
  726. package/util/slow-query-reporter.js +0 -226
  727. package/util/slow-query-reporter.js.map +0 -1
  728. package/util/subscription-dependency-context.d.ts +0 -34
  729. package/util/subscription-dependency-context.js +0 -1283
  730. package/util/subscription-dependency-context.js.map +0 -1
  731. package/util/support-runner-v5.d.ts +0 -413
  732. package/util/support-runner-v5.js +0 -1420
  733. package/util/support-runner-v5.js.map +0 -1
  734. package/util/tokenizer.d.ts +0 -5
  735. package/util/tokenizer.js +0 -41
  736. package/util/tokenizer.js.map +0 -1
  737. package/workers/codex-runner.worker.d.ts +0 -1
  738. package/workers/codex-runner.worker.js +0 -192
  739. package/workers/codex-runner.worker.js.map +0 -1
  740. /package/{private → src/private}/email-templates/enrollment.html +0 -0
  741. /package/{private → src/private}/email-templates/forgot-password.html +0 -0
  742. /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{private → src/private}/email-templates/support-ticket.html +0 -0
  745. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -0,0 +1,352 @@
1
+ import {
2
+ buildResolveIOPlatformIntelligenceSystemPrompt,
3
+ getResolveIOPlatformDurableMemoryEntries,
4
+ getResolveIOPlatformIntelligenceRuleLines,
5
+ getResolveIOPlatformIntelligenceRuleSections
6
+ } from '../src/ai/resolveio-platform-intelligence';
7
+ import {
8
+ buildResolveIOPlatformIntelligenceSystemPromptWithSharedMemory,
9
+ hydrateResolveIOPlatformIntelligenceRuleOptions,
10
+ inferResolveIOPlatformIntelligenceMemoryFamilies,
11
+ listResolveIOPlatformIntelligenceMemoryEntries
12
+ } from '../src/ai/resolveio-platform-intelligence-memory';
13
+
14
+ function assert(condition: boolean, message: string) {
15
+ if (!condition) {
16
+ throw new Error(message);
17
+ }
18
+ }
19
+
20
+ function testCommonRulesIncludeResolveIOContracts() {
21
+ const rules = getResolveIOPlatformIntelligenceRuleLines({ mode: 'builder' });
22
+ assert(
23
+ rules.some((rule) => rule.includes('`_id` as a string')),
24
+ 'Expected rules to preserve the ResolveIO string `_id` contract'
25
+ );
26
+ assert(
27
+ rules.some((rule) => rule.includes('`rio-select`')),
28
+ 'Expected rules to prefer `rio-select`'
29
+ );
30
+ assert(
31
+ rules.some((rule) => rule.includes('`rio-chart`')),
32
+ 'Expected rules to prefer `rio-chart`'
33
+ );
34
+ assert(
35
+ rules.some((rule) => rule.includes('`rio-date-picker`')),
36
+ 'Expected rules to prefer `rio-date-picker`'
37
+ );
38
+ assert(
39
+ rules.some((rule) => rule.includes('Do not hand-edit generated Angular socket files')),
40
+ 'Expected rules to protect generated methods/publications files'
41
+ );
42
+ assert(
43
+ rules.some((rule) => rule.includes('Never use Mongoose')),
44
+ 'Expected rules to reject Mongoose in ResolveIO platform code'
45
+ );
46
+ assert(
47
+ rules.some((rule) => rule.includes('Never use Meteor')),
48
+ 'Expected rules to reject Meteor in ResolveIO platform code'
49
+ );
50
+ assert(
51
+ rules.some((rule) => rule.includes('ResolveIO `round` helper')),
52
+ 'Expected rules to prefer ResolveIO round helper over Math.round'
53
+ );
54
+ assert(
55
+ rules.some((rule) => rule.includes('Every cited file, symbol, route, collection, workflow, and scoped target must be verified')),
56
+ 'Expected rules to require real path and scope verification'
57
+ );
58
+ assert(
59
+ rules.some((rule) => rule.includes('Do not use placeholder or fuzzy path language')),
60
+ 'Expected rules to reject placeholder path language'
61
+ );
62
+ assert(
63
+ rules.some((rule) => rule.includes('Map non-technical user wording to internal collections')),
64
+ 'Expected rules to require internal collection/workflow inference from user wording'
65
+ );
66
+ assert(
67
+ rules.some((rule) => rule.includes('Do not use `*.versions` collections for ordinary requests')),
68
+ 'Expected rules to avoid version collections for ordinary requests'
69
+ );
70
+ assert(
71
+ rules.some((rule) => rule.includes('Company Secrets')),
72
+ 'Expected rules to require Company Secrets for external keys and config'
73
+ );
74
+ }
75
+
76
+ function testRioSelectRulesPreferOptionsMode() {
77
+ const rules = getResolveIOPlatformIntelligenceRuleLines({ mode: 'support' });
78
+ assert(
79
+ rules.some((rule) => rule.includes('`[options]` pipeline')),
80
+ 'Expected rio-select rules to prefer the `[options]` pipeline'
81
+ );
82
+ assert(
83
+ rules.some((rule) => rule.includes('Do not mix `[options]` and projected `<rio-option>`')),
84
+ 'Expected rio-select rules to reject mixed mode'
85
+ );
86
+ assert(
87
+ rules.some((rule) => rule.includes('large option sets')),
88
+ 'Expected rio-select rules to mention large-option performance guidance'
89
+ );
90
+ assert(
91
+ rules.some((rule) => rule.includes('distinct-backed options')),
92
+ 'Expected filter rules to prefer distinct-backed dropdown options'
93
+ );
94
+ assert(
95
+ rules.some((rule) => rule.includes('Do not apply Bootstrap `form-control` directly to `rio-select`')),
96
+ 'Expected styling rules to reject form-control on rio-select'
97
+ );
98
+ assert(
99
+ rules.some((rule) => rule.includes('`rio-calendar`')),
100
+ 'Expected rules to prefer rio-calendar for scheduling surfaces'
101
+ );
102
+ assert(
103
+ rules.some((rule) => rule.includes('`rio-pagination`')),
104
+ 'Expected rules to prefer rio-pagination for paginated navigation'
105
+ );
106
+ assert(
107
+ rules.some((rule) => rule.includes('keep them distinct: fix the failing path first')),
108
+ 'Expected rules to keep failing and comparator paths distinct'
109
+ );
110
+ }
111
+
112
+ function testBuilderRulesPromoteAppGenerationDiscipline() {
113
+ const rules = getResolveIOPlatformIntelligenceRuleLines({ mode: 'builder' });
114
+ assert(
115
+ rules.some((rule) => rule.includes('standard ResolveIO build flow in order')),
116
+ 'Expected builder rules to encode the standard ResolveIO build flow'
117
+ );
118
+ assert(
119
+ rules.some((rule) => rule.includes('Feature modules should normally include module, routing, permission, service')),
120
+ 'Expected builder rules to encode expected feature module structure'
121
+ );
122
+ assert(
123
+ rules.some((rule) => rule.includes('operator command center')),
124
+ 'Expected builder rules to require a tailored dashboard hub'
125
+ );
126
+ assert(
127
+ rules.some((rule) => rule.includes('assistant-heuristics.json')),
128
+ 'Expected builder rules to keep app-level assistant heuristics in sync'
129
+ );
130
+ assert(
131
+ rules.some((rule) => rule.includes('single sign-in entry')),
132
+ 'Expected builder rules to preserve default staff login UX'
133
+ );
134
+ }
135
+
136
+ function testAssistantDataRulesPromoteSafeReportBuilderUsage() {
137
+ const rules = getResolveIOPlatformIntelligenceRuleLines({ mode: 'assistant' });
138
+ assert(
139
+ rules.some((rule) => rule.includes('read-only ResolveIO data bridge (`REPORT_BUILDER_READ` / `REPORT_BUILDER_AGG`)')),
140
+ 'Expected rules to prefer the report-builder data bridge for live data'
141
+ );
142
+ assert(
143
+ rules.some((rule) => rule.includes('Always include a verified `permissionView`')),
144
+ 'Expected rules to require verified permissionView for live data queries'
145
+ );
146
+ assert(
147
+ rules.some((rule) => rule.includes('run the smallest safe probe you can')),
148
+ 'Expected rules to require probe validation before concluding no data'
149
+ );
150
+ assert(
151
+ rules.some((rule) => rule.includes('summarize first, then show a clean markdown table')),
152
+ 'Expected rules to require summary-first table output for live data'
153
+ );
154
+ }
155
+
156
+ function testDurableMemoryDefaultsAndFiltering() {
157
+ const defaultEntries = getResolveIOPlatformDurableMemoryEntries({ mode: 'support' });
158
+ assert(
159
+ defaultEntries.some((entry) => entry.family === 'rio-select' && entry.kind === 'accepted_pattern'),
160
+ 'Expected default durable memory to include rio-select accepted patterns'
161
+ );
162
+ assert(
163
+ defaultEntries.some((entry) => entry.family === 'shared-library-ownership' && entry.kind === 'rejected_fix_shape'),
164
+ 'Expected default durable memory to include shared-library rejected fix shapes'
165
+ );
166
+ assert(
167
+ defaultEntries.some((entry) => entry.family === 'dashboard-hub' && entry.kind === 'contract_violation'),
168
+ 'Expected default durable memory to include dashboard-hub contract violations'
169
+ );
170
+ const filteredEntries = getResolveIOPlatformDurableMemoryEntries({
171
+ mode: 'support',
172
+ memoryFamilies: ['rio-select']
173
+ });
174
+ assert(filteredEntries.length > 0, 'Expected filtered durable memory to retain rio-select entries');
175
+ assert(
176
+ filteredEntries.every((entry) => entry.family === 'rio-select' || (entry.tags || []).includes('rio-select')),
177
+ 'Expected filtered durable memory to stay scoped to the requested family'
178
+ );
179
+ assert(
180
+ !filteredEntries.some((entry) => entry.family === 'dashboard-hub'),
181
+ 'Expected unrelated durable memory families to be excluded by filtering'
182
+ );
183
+ }
184
+
185
+ function testPromptCanMergeCustomDurableMemory() {
186
+ const prompt = buildResolveIOPlatformIntelligenceSystemPrompt({
187
+ mode: 'builder',
188
+ outputStyle: 'markdown',
189
+ memoryFamilies: ['rio-select', 'report-builder'],
190
+ durableMemoryEntries: [
191
+ {
192
+ family: 'report-builder',
193
+ kind: 'accepted_pattern',
194
+ summary: 'Prefer verified lookup-aware aggregates when grouped metrics span related collections.'
195
+ }
196
+ ]
197
+ });
198
+ assert(prompt.includes('Durable Memory: Accepted Patterns:'), 'Expected durable memory accepted section');
199
+ assert(prompt.includes('rio-select: Accepted pattern:'), 'Expected prompt to include filtered rio-select durable memory');
200
+ assert(
201
+ prompt.includes('report-builder: Accepted pattern: Prefer verified lookup-aware aggregates when grouped metrics span related collections.'),
202
+ 'Expected prompt to include caller-supplied durable memory'
203
+ );
204
+ assert(
205
+ !prompt.includes('dashboard-hub: Contract violation:'),
206
+ 'Expected family filtering to keep unrelated durable memory out of the prompt'
207
+ );
208
+ }
209
+
210
+ function testSharedMemorySelectionInfersRelevantFamiliesFromContext() {
211
+ const families = inferResolveIOPlatformIntelligenceMemoryFamilies('support', [
212
+ 'The rio-select uses [options] with optionLabelFn and is showing a stale selected label after current_location changes.',
213
+ 'This may belong in resolveio-client-lib rather than the app repo.'
214
+ ]);
215
+ assert(families.includes('rio-select'), 'Expected rio-select family to be inferred from context');
216
+ assert(
217
+ families.includes('shared-library-ownership'),
218
+ 'Expected shared-library ownership family to be inferred from library-root-cause context'
219
+ );
220
+ const entries = listResolveIOPlatformIntelligenceMemoryEntries({
221
+ mode: 'support',
222
+ contextText: [
223
+ 'The rio-select uses [options] with optionLabelFn and is showing a stale selected label after current_location changes.',
224
+ 'This may belong in resolveio-client-lib rather than the app repo.'
225
+ ],
226
+ limit: 4
227
+ });
228
+ assert(entries.length > 0, 'Expected shared memory selection to return relevant entries');
229
+ assert(
230
+ entries.some((entry) => entry.family === 'rio-select'),
231
+ 'Expected shared memory selection to include rio-select entries'
232
+ );
233
+ assert(
234
+ entries.some((entry) => entry.family === 'shared-library-ownership'),
235
+ 'Expected shared memory selection to include shared-library ownership entries'
236
+ );
237
+ }
238
+
239
+ function testHydrateRuleOptionsUsesRelevantSharedMemoryInsteadOfWholeCorpus() {
240
+ const hydrated = hydrateResolveIOPlatformIntelligenceRuleOptions(
241
+ {
242
+ mode: 'assistant'
243
+ },
244
+ {
245
+ contextText: [
246
+ 'The issue mentions ObjectId assumptions for _id and a direct edit to angular/app/methods.ts.',
247
+ 'We need to keep _id as a string and regenerate generated socket files.'
248
+ ],
249
+ limit: 5
250
+ }
251
+ );
252
+ assert(hydrated.includeDefaultDurableMemory === false, 'Expected hydrated options to disable full-corpus default injection');
253
+ const entries = hydrated.durableMemoryEntries || [];
254
+ assert(
255
+ entries.some((entry) => entry.family === 'identifier-contract'),
256
+ 'Expected hydrated options to include identifier-contract memory'
257
+ );
258
+ assert(
259
+ entries.some((entry) => entry.family === 'generated-method-publication'),
260
+ 'Expected hydrated options to include generated-method-publication memory'
261
+ );
262
+ assert(
263
+ !entries.some((entry) => entry.family === 'dashboard-hub'),
264
+ 'Expected unrelated memory families to stay out of the hydrated options'
265
+ );
266
+ }
267
+
268
+ function testSharedPromptBuilderRendersRelevantCodeBackedMemory() {
269
+ const prompt = buildResolveIOPlatformIntelligenceSystemPromptWithSharedMemory(
270
+ {
271
+ mode: 'builder',
272
+ outputStyle: 'markdown'
273
+ },
274
+ {
275
+ contextText: [
276
+ 'This new app feature needs a real dashboard hub and full feature module wiring.',
277
+ 'Do not leave placeholder quick actions or dead links in the hub.'
278
+ ],
279
+ limit: 4
280
+ }
281
+ );
282
+ assert(prompt.includes('dashboard-hub: Contract violation:'), 'Expected prompt to include relevant dashboard-hub memory');
283
+ assert(
284
+ prompt.includes('feature-module-generation: Accepted pattern:'),
285
+ 'Expected prompt to include relevant feature-module-generation memory'
286
+ );
287
+ assert(
288
+ !prompt.includes('rio-select: Accepted pattern:'),
289
+ 'Expected unrelated rio-select memory to stay out of the shared-memory prompt'
290
+ );
291
+ }
292
+
293
+ function testPromptBuildsSectionedVerifyFirstGuidance() {
294
+ const prompt = buildResolveIOPlatformIntelligenceSystemPrompt({
295
+ mode: 'assistant',
296
+ outputStyle: 'markdown',
297
+ extraRules: ['Always verify the claimed fix with the most relevant local test or reproduction path before finalizing.']
298
+ });
299
+ assert(prompt.includes('Investigation Loop:'), 'Expected sectioned investigation loop guidance');
300
+ assert(prompt.includes('Data And ID Contracts:'), 'Expected sectioned data contract guidance');
301
+ assert(prompt.includes('Generated Files:'), 'Expected generated file guidance section');
302
+ assert(prompt.includes('Path Grounding And Scope:'), 'Expected path grounding guidance section');
303
+ assert(prompt.includes('Collection And Workflow Inference:'), 'Expected collection inference guidance section');
304
+ assert(prompt.includes('Platform Architecture:'), 'Expected architecture guidance section');
305
+ assert(prompt.includes('Server Implementation:'), 'Expected server implementation guidance section');
306
+ assert(prompt.includes('ResolveIO UI Libraries:'), 'Expected sectioned UI library guidance');
307
+ assert(prompt.includes('App Generation And UX:'), 'Expected app generation guidance section');
308
+ assert(prompt.includes('Auth And Shell:'), 'Expected auth and shell guidance section');
309
+ assert(prompt.includes('Shared Library Ownership:'), 'Expected sectioned shared-library guidance');
310
+ assert(prompt.includes('Live Data And Report Builder:'), 'Expected report builder guidance section');
311
+ assert(prompt.includes('Durable Memory: Accepted Patterns:'), 'Expected durable memory accepted section');
312
+ assert(prompt.includes('Durable Memory: Rejected Fix Shapes:'), 'Expected durable memory rejected section');
313
+ assert(prompt.includes('Durable Memory: Contract Violations:'), 'Expected durable memory contract-violation section');
314
+ assert(prompt.includes('Build an evidence-to-fix chain:'), 'Expected evidence-to-fix guidance to be rendered');
315
+ assert(prompt.includes('Always verify the claimed fix with the most relevant local test or reproduction path before finalizing.'), 'Expected extra rules to be appended');
316
+ }
317
+
318
+ function testSectionsStayDedupedAndModeAware() {
319
+ const sections = getResolveIOPlatformIntelligenceRuleSections({
320
+ mode: 'app_terminal',
321
+ outputStyle: 'plain_english',
322
+ extraRules: ['Respond with the final user-facing outcome clearly.']
323
+ });
324
+ const titles = sections.map((section) => section.title);
325
+ assert(titles.includes('Mode Rules'), 'Expected mode rules section');
326
+ assert(titles.includes('Output Style'), 'Expected output style section');
327
+ assert(
328
+ sections.some((section) => section.title === 'Mode Rules' && section.rules.some((rule) => rule.includes('plain English'))),
329
+ 'Expected app terminal mode rules to remain present'
330
+ );
331
+ assert(
332
+ sections.some((section) => section.title === 'Extra Rules' && section.rules.includes('Respond with the final user-facing outcome clearly.')),
333
+ 'Expected extra rules section to contain caller-supplied rules'
334
+ );
335
+ }
336
+
337
+ function run() {
338
+ testCommonRulesIncludeResolveIOContracts();
339
+ testRioSelectRulesPreferOptionsMode();
340
+ testBuilderRulesPromoteAppGenerationDiscipline();
341
+ testAssistantDataRulesPromoteSafeReportBuilderUsage();
342
+ testDurableMemoryDefaultsAndFiltering();
343
+ testPromptCanMergeCustomDurableMemory();
344
+ testSharedMemorySelectionInfersRelevantFamiliesFromContext();
345
+ testHydrateRuleOptionsUsesRelevantSharedMemoryInsteadOfWholeCorpus();
346
+ testSharedPromptBuilderRendersRelevantCodeBackedMemory();
347
+ testPromptBuildsSectionedVerifyFirstGuidance();
348
+ testSectionsStayDedupedAndModeAware();
349
+ console.log('resolveio platform intelligence tests passed');
350
+ }
351
+
352
+ run();
@@ -0,0 +1,127 @@
1
+ import { ResolveIOMainServer } from '../src/server-app';
2
+
3
+ function assert(condition: boolean, message: string) {
4
+ if (!condition) {
5
+ throw new Error(message);
6
+ }
7
+ }
8
+
9
+ const ENV_KEYS = [
10
+ 'WORKER_INDEX',
11
+ 'NODE_APP_INSTANCE',
12
+ 'SERVER_MANAGER_WORKER_INDEX',
13
+ 'SERVER_MANAGER_WORKER_INSTANCE',
14
+ 'SERVER_MANAGER_NODE_APP_INSTANCE'
15
+ ];
16
+
17
+ function withEnv(env: Record<string, string | undefined>, test: () => void) {
18
+ const previous: Record<string, string | undefined> = {};
19
+ for (const key of ENV_KEYS) {
20
+ previous[key] = process.env[key];
21
+ delete process.env[key];
22
+ }
23
+
24
+ for (const [key, value] of Object.entries(env)) {
25
+ if (value !== undefined) {
26
+ process.env[key] = value;
27
+ }
28
+ }
29
+
30
+ try {
31
+ test();
32
+ }
33
+ finally {
34
+ for (const key of ENV_KEYS) {
35
+ delete process.env[key];
36
+ if (previous[key] !== undefined) {
37
+ process.env[key] = previous[key];
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ function shouldStartCron(): boolean {
44
+ const server = new ResolveIOMainServer() as any;
45
+ return server.shouldStartCronManagerForWorker();
46
+ }
47
+
48
+ async function testStandaloneNodeReaperAlertsAreThrottled() {
49
+ const server = new ResolveIOMainServer() as any;
50
+ const proc = {
51
+ pid: 12345,
52
+ ppid: 1,
53
+ ageSeconds: 600,
54
+ cpuPct: 99,
55
+ rssKb: 512 * 1024,
56
+ command: 'node',
57
+ args: 'node -e while(true){}'
58
+ };
59
+ const reports: any[] = [];
60
+
61
+ server._standaloneNodeReaperAlertWindowMs = 60 * 60 * 1000;
62
+ server.resolveProcessCwd = () => '/tmp/resolveio-reaper-test';
63
+ server.reportServerError = async (...args: any[]) => {
64
+ reports.push(args);
65
+ };
66
+
67
+ await server.reportStandaloneNodeReaperAction(proc, 'orphan_high_cpu_for_2_scans', 'dry-run');
68
+ await server.reportStandaloneNodeReaperAction(proc, 'orphan_high_cpu_for_2_scans', 'dry-run');
69
+ assert(reports.length === 1, 'Expected duplicate dry-run reaper alert to be throttled');
70
+
71
+ await server.reportStandaloneNodeReaperAction(proc, 'orphan_high_cpu_for_2_scans', 'terminated');
72
+ assert(reports.length === 2, 'Expected different reaper action to report independently');
73
+
74
+ const alertKey = `dry-run|${server.resolveStandaloneNodeProcessSignature(proc)}`;
75
+ server._standaloneNodeReaperAlertTimes.set(alertKey, Date.now() - server._standaloneNodeReaperAlertWindowMs - 1);
76
+ await server.reportStandaloneNodeReaperAction(proc, 'orphan_high_cpu_for_2_scans', 'dry-run');
77
+ assert(reports.length === 3, 'Expected reaper alert to report again after throttle window');
78
+ }
79
+
80
+ async function run() {
81
+ withEnv({ WORKER_INDEX: '0', NODE_APP_INSTANCE: '0' }, () => {
82
+ assert(shouldStartCron() === true, 'Expected default worker 0 to start cron');
83
+ });
84
+
85
+ withEnv({ WORKER_INDEX: '1', NODE_APP_INSTANCE: '0' }, () => {
86
+ assert(shouldStartCron() === false, 'Expected default non-zero worker to skip cron');
87
+ });
88
+
89
+ withEnv({
90
+ WORKER_INDEX: '0',
91
+ NODE_APP_INSTANCE: '0',
92
+ SERVER_MANAGER_WORKER_INDEX: '0',
93
+ SERVER_MANAGER_WORKER_INSTANCE: '1'
94
+ }, () => {
95
+ assert(shouldStartCron() === false, 'Expected publication worker to skip ResolveIO server-manager cron');
96
+ });
97
+
98
+ withEnv({
99
+ WORKER_INDEX: '0',
100
+ NODE_APP_INSTANCE: '1',
101
+ SERVER_MANAGER_WORKER_INDEX: '0',
102
+ SERVER_MANAGER_WORKER_INSTANCE: '1'
103
+ }, () => {
104
+ assert(shouldStartCron() === true, 'Expected ResolveIO server-manager worker to start cron');
105
+ });
106
+
107
+ withEnv({
108
+ WORKER_INDEX: '0',
109
+ NODE_APP_INSTANCE: '0',
110
+ SERVER_MANAGER_WORKER_INDEX: '0',
111
+ SERVER_MANAGER_WORKER_INSTANCE: '0'
112
+ }, () => {
113
+ assert(shouldStartCron() === true, 'Expected explicit default server-manager owner to preserve cron behavior');
114
+ });
115
+
116
+ await testStandaloneNodeReaperAlertsAreThrottled();
117
+ }
118
+
119
+ run()
120
+ .then(() => {
121
+ console.log('server-app-cron-owner.test.ts passed');
122
+ process.exit(0);
123
+ })
124
+ .catch(error => {
125
+ console.error(error);
126
+ process.exit(1);
127
+ });
@@ -0,0 +1,158 @@
1
+ import { ResolveIOMainServer } from '../src/server-app';
2
+
3
+ function assert(condition: boolean, message: string) {
4
+ if (!condition) {
5
+ throw new Error(message);
6
+ }
7
+ }
8
+
9
+ function sleep(ms: number) {
10
+ return new Promise(resolve => setTimeout(resolve, ms));
11
+ }
12
+
13
+ class FakeWebSocket {
14
+ public readyState = 1;
15
+ public closed = false;
16
+ public sent: any[] = [];
17
+ private _handlers = new Map<string, Function>();
18
+
19
+ on(event: string, handler: Function) {
20
+ this._handlers.set(event, handler);
21
+ return this;
22
+ }
23
+
24
+ send(data: any, cb?: (error?: Error) => void) {
25
+ this.sent.push(data);
26
+ if (cb) {
27
+ cb();
28
+ }
29
+ }
30
+
31
+ ping() {
32
+ // noop
33
+ }
34
+
35
+ close() {
36
+ this.closed = true;
37
+ }
38
+
39
+ getHandler(event: string): Function | undefined {
40
+ return this._handlers.get(event);
41
+ }
42
+ }
43
+
44
+ async function testConnectionHandlerDoesNotBlockOnLoggedInUserInsert() {
45
+ const server = new ResolveIOMainServer();
46
+ const serverAny = server as any;
47
+
48
+ let connectionHandler: ((ws: FakeWebSocket, req: any) => Promise<void>) | null = null;
49
+ let createLoggedInUserCalled = false;
50
+
51
+ let resolveCreateLoggedInUser: () => void = null;
52
+ const createLoggedInUserPromise = new Promise<void>(resolve => {
53
+ resolveCreateLoggedInUser = resolve;
54
+ });
55
+
56
+ serverAny._portHTTP = 8080;
57
+ serverAny._clientHeartbeatInitialDelayMs = 1;
58
+ serverAny._methodManager = {
59
+ getEnableDebug: () => false,
60
+ _methods: {}
61
+ };
62
+ serverAny._subscriptionManager = {
63
+ createLoggedInUser: () => {
64
+ createLoggedInUserCalled = true;
65
+ return createLoggedInUserPromise;
66
+ },
67
+ loggedInLatency: () => {},
68
+ unsubscribeAll: async () => {},
69
+ subscribe: async () => {},
70
+ unsubscribe: () => {}
71
+ };
72
+ serverAny._websocketManager = {
73
+ addWebSocket: () => {},
74
+ getWebSocket: () => null,
75
+ send: () => {}
76
+ };
77
+ serverAny._workerDispatcherManager = {
78
+ addWorker: () => {},
79
+ disconnectWorker: () => {},
80
+ sendWorkerPayload: () => {},
81
+ handleWorkerMessage: () => {}
82
+ };
83
+ serverAny._clientRoutes = [];
84
+ serverAny.publicProgram = false;
85
+ serverAny.LOGGER = 'ERROR';
86
+ serverAny.triggerClientHeartbeat = async () => {};
87
+ serverAny.unsubscribeWS = async () => {};
88
+ serverAny._serverHTTP = {
89
+ listen: (_port: number, _host: string, cb: () => void) => cb()
90
+ };
91
+ serverAny._serverWSS = {
92
+ clients: new Set(),
93
+ on: (event: string, handler: any) => {
94
+ if (event === 'connection') {
95
+ connectionHandler = handler;
96
+ }
97
+ }
98
+ };
99
+
100
+ const originalSetInterval = global.setInterval;
101
+ (global as any).setInterval = (() => 0) as any;
102
+
103
+ try {
104
+ serverAny.listen();
105
+
106
+ assert(typeof connectionHandler === 'function', 'Expected WS connection handler registration');
107
+
108
+ const ws = new FakeWebSocket();
109
+ const req = {
110
+ url: '/',
111
+ id_user: 'user-1',
112
+ user: 'Test User',
113
+ user_readonly: false,
114
+ doc_user: {
115
+ roles: {
116
+ groups: [],
117
+ super_admin: true
118
+ }
119
+ },
120
+ socket: {
121
+ remoteAddress: '127.0.0.1'
122
+ },
123
+ headers: {
124
+ origin: 'http://localhost:4200'
125
+ }
126
+ };
127
+
128
+ const connectionResult = await Promise.race([
129
+ connectionHandler(ws, req).then(() => 'resolved'),
130
+ sleep(100).then(() => 'timed_out')
131
+ ]);
132
+
133
+ assert(connectionResult === 'resolved', 'Connection handler blocked on createLoggedInUser');
134
+ await sleep(0);
135
+ assert(createLoggedInUserCalled, 'Expected createLoggedInUser to be called');
136
+ assert(typeof ws.getHandler('message') === 'function', 'Expected message handler registered immediately');
137
+
138
+ const messageHandler = ws.getHandler('message') as (message: any) => Promise<void>;
139
+ await messageHandler('ping');
140
+ assert(ws.sent.includes('pong'), 'Expected ping message to be handled immediately after connection');
141
+
142
+ resolveCreateLoggedInUser();
143
+ }
144
+ finally {
145
+ global.setInterval = originalSetInterval;
146
+ }
147
+ }
148
+
149
+ async function run() {
150
+ await testConnectionHandlerDoesNotBlockOnLoggedInUserInsert();
151
+ console.log('subscription-connect-race tests completed');
152
+ process.exit(0);
153
+ }
154
+
155
+ run().catch(error => {
156
+ console.error(error);
157
+ process.exit(1);
158
+ });