@resolveio/server-lib 22.3.221 → 22.3.223

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/ai/assistant-core-heuristics.d.ts +11 -0
  2. package/ai/assistant-core-heuristics.js +356 -0
  3. package/ai/assistant-core-heuristics.js.map +1 -0
  4. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +3 -0
  5. package/ai/resolveio-platform-intelligence-memory-corpus.js +214 -0
  6. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +1 -0
  7. package/ai/resolveio-platform-intelligence-memory.d.ts +20 -0
  8. package/ai/resolveio-platform-intelligence-memory.js +341 -0
  9. package/ai/resolveio-platform-intelligence-memory.js.map +1 -0
  10. package/{src/ai/resolveio-platform-intelligence-types.ts → ai/resolveio-platform-intelligence-types.d.ts} +15 -20
  11. package/ai/resolveio-platform-intelligence-types.js +4 -0
  12. package/ai/resolveio-platform-intelligence-types.js.map +1 -0
  13. package/ai/resolveio-platform-intelligence.d.ts +6 -0
  14. package/ai/resolveio-platform-intelligence.js +463 -0
  15. package/ai/resolveio-platform-intelligence.js.map +1 -0
  16. package/client-server-app.d.ts +1 -0
  17. package/client-server-app.js +68 -0
  18. package/client-server-app.js.map +1 -0
  19. package/collections/ai-run.collection.d.ts +3 -0
  20. package/collections/ai-run.collection.js +170 -0
  21. package/collections/ai-run.collection.js.map +1 -0
  22. package/collections/ai-terminal-conversation.collection.d.ts +2 -0
  23. package/collections/ai-terminal-conversation.collection.js +140 -0
  24. package/collections/ai-terminal-conversation.collection.js.map +1 -0
  25. package/collections/ai-terminal-issue-report.collection.d.ts +2 -0
  26. package/collections/ai-terminal-issue-report.collection.js +148 -0
  27. package/collections/ai-terminal-issue-report.collection.js.map +1 -0
  28. package/collections/ai-terminal-message.collection.d.ts +2 -0
  29. package/collections/ai-terminal-message.collection.js +121 -0
  30. package/collections/ai-terminal-message.collection.js.map +1 -0
  31. package/collections/app-setting.collection.d.ts +3 -0
  32. package/collections/app-setting.collection.js +103 -0
  33. package/collections/app-setting.collection.js.map +1 -0
  34. package/collections/app-status.collection.d.ts +3 -0
  35. package/collections/app-status.collection.js +57 -0
  36. package/collections/app-status.collection.js.map +1 -0
  37. package/collections/communication-metric.collection.d.ts +2 -0
  38. package/collections/communication-metric.collection.js +133 -0
  39. package/collections/communication-metric.collection.js.map +1 -0
  40. package/collections/counter.collection.d.ts +3 -0
  41. package/collections/counter.collection.js +56 -0
  42. package/collections/counter.collection.js.map +1 -0
  43. package/collections/cron-job-history.collection.d.ts +3 -0
  44. package/collections/cron-job-history.collection.js +137 -0
  45. package/collections/cron-job-history.collection.js.map +1 -0
  46. package/collections/cron-job.collection.d.ts +3 -0
  47. package/collections/cron-job.collection.js +92 -0
  48. package/collections/cron-job.collection.js.map +1 -0
  49. package/collections/customer-notification.collection.d.ts +3 -0
  50. package/collections/customer-notification.collection.js +130 -0
  51. package/collections/customer-notification.collection.js.map +1 -0
  52. package/collections/customer-portal-password.collection.d.ts +3 -0
  53. package/collections/customer-portal-password.collection.js +75 -0
  54. package/collections/customer-portal-password.collection.js.map +1 -0
  55. package/collections/email-history.collection.d.ts +3 -0
  56. package/collections/email-history.collection.js +134 -0
  57. package/collections/email-history.collection.js.map +1 -0
  58. package/collections/email-verified.collection.d.ts +3 -0
  59. package/collections/email-verified.collection.js +62 -0
  60. package/collections/email-verified.collection.js.map +1 -0
  61. package/collections/file.collection.d.ts +3 -0
  62. package/collections/file.collection.js +74 -0
  63. package/collections/file.collection.js.map +1 -0
  64. package/collections/flag-update.collection.d.ts +3 -0
  65. package/collections/flag-update.collection.js +57 -0
  66. package/collections/flag-update.collection.js.map +1 -0
  67. package/collections/flag.collection.d.ts +3 -0
  68. package/collections/flag.collection.js +57 -0
  69. package/collections/flag.collection.js.map +1 -0
  70. package/collections/log-method-latency.collection.d.ts +3 -0
  71. package/collections/log-method-latency.collection.js +77 -0
  72. package/collections/log-method-latency.collection.js.map +1 -0
  73. package/collections/log-subscription.collection.d.ts +3 -0
  74. package/collections/log-subscription.collection.js +80 -0
  75. package/collections/log-subscription.collection.js.map +1 -0
  76. package/collections/log.collection.d.ts +3 -0
  77. package/collections/log.collection.js +93 -0
  78. package/collections/log.collection.js.map +1 -0
  79. package/collections/logged-in-users.collection.d.ts +3 -0
  80. package/collections/logged-in-users.collection.js +67 -0
  81. package/collections/logged-in-users.collection.js.map +1 -0
  82. package/collections/monitor-cpu.collection.d.ts +3 -0
  83. package/collections/monitor-cpu.collection.js +65 -0
  84. package/collections/monitor-cpu.collection.js.map +1 -0
  85. package/collections/monitor-function.collection.d.ts +3 -0
  86. package/collections/monitor-function.collection.js +74 -0
  87. package/collections/monitor-function.collection.js.map +1 -0
  88. package/collections/monitor-memory.collection.d.ts +3 -0
  89. package/collections/monitor-memory.collection.js +77 -0
  90. package/collections/monitor-memory.collection.js.map +1 -0
  91. package/collections/monitor-mongo.collection.d.ts +3 -0
  92. package/collections/monitor-mongo.collection.js +71 -0
  93. package/collections/monitor-mongo.collection.js.map +1 -0
  94. package/collections/notification.collection.d.ts +3 -0
  95. package/collections/notification.collection.js +57 -0
  96. package/collections/notification.collection.js.map +1 -0
  97. package/collections/openai-usage-ledger.collection.d.ts +2 -0
  98. package/collections/openai-usage-ledger.collection.js +188 -0
  99. package/collections/openai-usage-ledger.collection.js.map +1 -0
  100. package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
  101. package/collections/report-builder-dashboard-builder.collection.js +109 -0
  102. package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
  103. package/collections/report-builder-library.collection.d.ts +3 -0
  104. package/collections/report-builder-library.collection.js +87 -0
  105. package/collections/report-builder-library.collection.js.map +1 -0
  106. package/collections/report-builder-report.collection.d.ts +4 -0
  107. package/collections/report-builder-report.collection.js +184 -0
  108. package/collections/report-builder-report.collection.js.map +1 -0
  109. package/collections/user-group.collection.d.ts +4 -0
  110. package/collections/user-group.collection.js +89 -0
  111. package/collections/user-group.collection.js.map +1 -0
  112. package/collections/user-guide.collection.d.ts +3 -0
  113. package/collections/user-guide.collection.js +57 -0
  114. package/collections/user-guide.collection.js.map +1 -0
  115. package/collections/user.collection.d.ts +4 -0
  116. package/collections/user.collection.js +180 -0
  117. package/collections/user.collection.js.map +1 -0
  118. package/cron/cron.d.ts +14 -0
  119. package/cron/cron.js +216 -0
  120. package/cron/cron.js.map +1 -0
  121. package/fixtures/cron-jobs.d.ts +1 -0
  122. package/fixtures/cron-jobs.js +150 -0
  123. package/fixtures/cron-jobs.js.map +1 -0
  124. package/fixtures/init.d.ts +1 -0
  125. package/fixtures/init.js +91 -0
  126. package/fixtures/init.js.map +1 -0
  127. package/http/auth.d.ts +2 -0
  128. package/http/auth.js +951 -0
  129. package/http/auth.js.map +1 -0
  130. package/http/health.d.ts +1 -0
  131. package/http/health.js +11 -0
  132. package/http/health.js.map +1 -0
  133. package/http/home.d.ts +1 -0
  134. package/http/home.js +134 -0
  135. package/http/home.js.map +1 -0
  136. package/http/slow-query-publication.d.ts +2 -0
  137. package/http/slow-query-publication.js +99 -0
  138. package/http/slow-query-publication.js.map +1 -0
  139. package/index.d.ts +1 -0
  140. package/index.js +19 -0
  141. package/index.js.map +1 -0
  142. package/managers/ai-assistant-codex-manager.manager.d.ts +67 -0
  143. package/managers/ai-assistant-codex-manager.manager.js +1113 -0
  144. package/managers/ai-assistant-codex-manager.manager.js.map +1 -0
  145. package/managers/ai-run-evidence.manager.d.ts +36 -0
  146. package/managers/ai-run-evidence.manager.js +377 -0
  147. package/managers/ai-run-evidence.manager.js.map +1 -0
  148. package/managers/communication-metric.manager.d.ts +16 -0
  149. package/managers/communication-metric.manager.js +134 -0
  150. package/managers/communication-metric.manager.js.map +1 -0
  151. package/managers/cron.manager.d.ts +20 -0
  152. package/managers/cron.manager.js +534 -0
  153. package/managers/cron.manager.js.map +1 -0
  154. package/managers/customer-notification-content.manager.d.ts +55 -0
  155. package/managers/customer-notification-content.manager.js +158 -0
  156. package/managers/customer-notification-content.manager.js.map +1 -0
  157. package/managers/diagnostic-manager-bootstrap.d.ts +9 -0
  158. package/managers/diagnostic-manager-bootstrap.js +260 -0
  159. package/managers/diagnostic-manager-bootstrap.js.map +1 -0
  160. package/managers/error-auto-fix.manager.d.ts +149 -0
  161. package/managers/error-auto-fix.manager.js +3064 -0
  162. package/managers/error-auto-fix.manager.js.map +1 -0
  163. package/managers/local-log.manager.d.ts +18 -0
  164. package/managers/local-log.manager.js +88 -0
  165. package/managers/local-log.manager.js.map +1 -0
  166. package/managers/method.manager.d.ts +84 -0
  167. package/managers/method.manager.js +1964 -0
  168. package/managers/method.manager.js.map +1 -0
  169. package/managers/mongo.manager.d.ts +224 -0
  170. package/managers/mongo.manager.js +5000 -0
  171. package/managers/mongo.manager.js.map +1 -0
  172. package/managers/monitor.manager.d.ts +70 -0
  173. package/managers/monitor.manager.js +550 -0
  174. package/managers/monitor.manager.js.map +1 -0
  175. package/managers/openai-usage-ledger.manager.d.ts +30 -0
  176. package/managers/openai-usage-ledger.manager.js +142 -0
  177. package/managers/openai-usage-ledger.manager.js.map +1 -0
  178. package/managers/slow-query-verifier.manager.d.ts +144 -0
  179. package/managers/slow-query-verifier.manager.js +3857 -0
  180. package/managers/slow-query-verifier.manager.js.map +1 -0
  181. package/managers/slow-query.manager.d.ts +28 -0
  182. package/managers/slow-query.manager.js +468 -0
  183. package/managers/slow-query.manager.js.map +1 -0
  184. package/managers/subscription.manager.d.ts +169 -0
  185. package/managers/subscription.manager.js +3434 -0
  186. package/managers/subscription.manager.js.map +1 -0
  187. package/managers/websocket.manager.d.ts +73 -0
  188. package/managers/websocket.manager.js +673 -0
  189. package/managers/websocket.manager.js.map +1 -0
  190. package/managers/worker-dispatcher.manager.d.ts +120 -0
  191. package/managers/worker-dispatcher.manager.js +1266 -0
  192. package/managers/worker-dispatcher.manager.js.map +1 -0
  193. package/managers/worker-server.manager.d.ts +35 -0
  194. package/managers/worker-server.manager.js +582 -0
  195. package/managers/worker-server.manager.js.map +1 -0
  196. package/methods/accounts.d.ts +2 -0
  197. package/methods/accounts.js +624 -0
  198. package/methods/accounts.js.map +1 -0
  199. package/methods/ai-terminal.d.ts +458 -0
  200. package/methods/ai-terminal.js +27991 -0
  201. package/methods/ai-terminal.js.map +1 -0
  202. package/methods/app-settings.d.ts +2 -0
  203. package/methods/app-settings.js +169 -0
  204. package/methods/app-settings.js.map +1 -0
  205. package/methods/aws.d.ts +2 -0
  206. package/methods/aws.js +877 -0
  207. package/methods/aws.js.map +1 -0
  208. package/methods/collections.d.ts +2 -0
  209. package/methods/collections.js +719 -0
  210. package/methods/collections.js.map +1 -0
  211. package/methods/counters.d.ts +2 -0
  212. package/methods/counters.js +113 -0
  213. package/methods/counters.js.map +1 -0
  214. package/methods/cron-jobs.d.ts +2 -0
  215. package/methods/cron-jobs.js +2475 -0
  216. package/methods/cron-jobs.js.map +1 -0
  217. package/methods/customer-notifications.d.ts +2 -0
  218. package/methods/customer-notifications.js +528 -0
  219. package/methods/customer-notifications.js.map +1 -0
  220. package/methods/diagnostics.d.ts +2 -0
  221. package/methods/diagnostics.js +703 -0
  222. package/methods/diagnostics.js.map +1 -0
  223. package/methods/flag-updates.d.ts +2 -0
  224. package/methods/flag-updates.js +8 -0
  225. package/methods/flag-updates.js.map +1 -0
  226. package/methods/flags.d.ts +2 -0
  227. package/methods/flags.js +8 -0
  228. package/methods/flags.js.map +1 -0
  229. package/methods/logs.d.ts +2 -0
  230. package/methods/logs.js +751 -0
  231. package/methods/logs.js.map +1 -0
  232. package/methods/mongo-explorer.d.ts +2 -0
  233. package/methods/mongo-explorer.js +1808 -0
  234. package/methods/mongo-explorer.js.map +1 -0
  235. package/methods/monitor.d.ts +2 -0
  236. package/methods/monitor.js +543 -0
  237. package/methods/monitor.js.map +1 -0
  238. package/methods/pdf.d.ts +2 -0
  239. package/methods/pdf.js +1216 -0
  240. package/methods/pdf.js.map +1 -0
  241. package/methods/publications.d.ts +1 -0
  242. package/methods/publications.js +183 -0
  243. package/methods/publications.js.map +1 -0
  244. package/methods/report-builder.d.ts +2 -0
  245. package/methods/report-builder.js +3094 -0
  246. package/methods/report-builder.js.map +1 -0
  247. package/methods/support.d.ts +2 -0
  248. package/methods/support.js +430 -0
  249. package/methods/support.js.map +1 -0
  250. package/models/ai-run.model.d.ts +19 -0
  251. package/models/ai-run.model.js +4 -0
  252. package/models/ai-run.model.js.map +1 -0
  253. package/models/ai-terminal-conversation.model.d.ts +17 -0
  254. package/models/ai-terminal-conversation.model.js +4 -0
  255. package/models/ai-terminal-conversation.model.js.map +1 -0
  256. package/models/ai-terminal-issue-report.model.d.ts +19 -0
  257. package/models/ai-terminal-issue-report.model.js +4 -0
  258. package/models/ai-terminal-issue-report.model.js.map +1 -0
  259. package/models/ai-terminal-message.model.d.ts +22 -0
  260. package/models/ai-terminal-message.model.js +4 -0
  261. package/models/ai-terminal-message.model.js.map +1 -0
  262. package/models/app-setting.model.d.ts +16 -0
  263. package/models/app-setting.model.js +4 -0
  264. package/models/app-setting.model.js.map +1 -0
  265. package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
  266. package/models/app-status.model.js +4 -0
  267. package/models/app-status.model.js.map +1 -0
  268. package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
  269. package/models/billing-logged-in-users.model.js +4 -0
  270. package/models/billing-logged-in-users.model.js.map +1 -0
  271. package/models/collection-document.model.d.ts +21 -0
  272. package/models/collection-document.model.js +4 -0
  273. package/models/collection-document.model.js.map +1 -0
  274. package/models/communication-metric.model.d.ts +20 -0
  275. package/models/communication-metric.model.js +4 -0
  276. package/models/communication-metric.model.js.map +1 -0
  277. package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
  278. package/models/counter.model.js +4 -0
  279. package/models/counter.model.js.map +1 -0
  280. package/models/cron-job-history.model.d.ts +15 -0
  281. package/models/cron-job-history.model.js +4 -0
  282. package/models/cron-job-history.model.js.map +1 -0
  283. package/models/cron-job.model.d.ts +14 -0
  284. package/models/cron-job.model.js +4 -0
  285. package/models/cron-job.model.js.map +1 -0
  286. package/models/customer-notification.model.d.ts +26 -0
  287. package/models/customer-notification.model.js +4 -0
  288. package/models/customer-notification.model.js.map +1 -0
  289. package/models/customer-portal-password.model.d.ts +11 -0
  290. package/models/customer-portal-password.model.js +4 -0
  291. package/models/customer-portal-password.model.js.map +1 -0
  292. package/models/dialog.model.d.ts +23 -0
  293. package/models/dialog.model.js +4 -0
  294. package/models/dialog.model.js.map +1 -0
  295. package/models/email-history.model.d.ts +32 -0
  296. package/{src/models/email-history.model.ts → models/email-history.model.js} +4 -36
  297. package/models/email-history.model.js.map +1 -0
  298. package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
  299. package/models/email-verified.model.js +4 -0
  300. package/models/email-verified.model.js.map +1 -0
  301. package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
  302. package/models/file.model.js +4 -0
  303. package/models/file.model.js.map +1 -0
  304. package/{src/models/flag-update.model.ts → models/flag-update.model.d.ts} +3 -4
  305. package/models/flag-update.model.js +4 -0
  306. package/models/flag-update.model.js.map +1 -0
  307. package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
  308. package/models/flag.model.js +4 -0
  309. package/models/flag.model.js.map +1 -0
  310. package/models/log-method-latency.model.d.ts +10 -0
  311. package/models/log-method-latency.model.js +4 -0
  312. package/models/log-method-latency.model.js.map +1 -0
  313. package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +9 -11
  314. package/models/log-subscription.model.js +4 -0
  315. package/models/log-subscription.model.js.map +1 -0
  316. package/models/log.model.d.ts +17 -0
  317. package/models/log.model.js +4 -0
  318. package/models/log.model.js.map +1 -0
  319. package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
  320. package/models/logged-in-users.model.js +4 -0
  321. package/models/logged-in-users.model.js.map +1 -0
  322. package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
  323. package/models/method-response.model.js +4 -0
  324. package/models/method-response.model.js.map +1 -0
  325. package/models/method.model.d.ts +26 -0
  326. package/models/method.model.js +4 -0
  327. package/models/method.model.js.map +1 -0
  328. package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
  329. package/models/monitor-cpu.model.js +4 -0
  330. package/models/monitor-cpu.model.js.map +1 -0
  331. package/models/monitor-function.model.d.ts +14 -0
  332. package/models/monitor-function.model.js +4 -0
  333. package/models/monitor-function.model.js.map +1 -0
  334. package/models/monitor-memory.model.d.ts +15 -0
  335. package/models/monitor-memory.model.js +4 -0
  336. package/models/monitor-memory.model.js.map +1 -0
  337. package/models/monitor-mongo.model.d.ts +13 -0
  338. package/models/monitor-mongo.model.js +4 -0
  339. package/models/monitor-mongo.model.js.map +1 -0
  340. package/{src/models/notification.model.ts → models/notification.model.d.ts} +4 -6
  341. package/models/notification.model.js +4 -0
  342. package/models/notification.model.js.map +1 -0
  343. package/models/openai-usage-ledger.model.d.ts +30 -0
  344. package/models/openai-usage-ledger.model.js +4 -0
  345. package/models/openai-usage-ledger.model.js.map +1 -0
  346. package/models/pagination.model.d.ts +11 -0
  347. package/models/pagination.model.js +28 -0
  348. package/models/pagination.model.js.map +1 -0
  349. package/models/permission.model.d.ts +12 -0
  350. package/models/permission.model.js +4 -0
  351. package/models/permission.model.js.map +1 -0
  352. package/models/report-builder-dashboard-builder.model.d.ts +25 -0
  353. package/models/report-builder-dashboard-builder.model.js +4 -0
  354. package/models/report-builder-dashboard-builder.model.js.map +1 -0
  355. package/models/report-builder-library.model.d.ts +17 -0
  356. package/models/report-builder-library.model.js +4 -0
  357. package/models/report-builder-library.model.js.map +1 -0
  358. package/models/report-builder-report.model.d.ts +121 -0
  359. package/models/report-builder-report.model.js +4 -0
  360. package/models/report-builder-report.model.js.map +1 -0
  361. package/models/report-builder.model.d.ts +61 -0
  362. package/models/report-builder.model.js +4 -0
  363. package/models/report-builder.model.js.map +1 -0
  364. package/models/select-data-label.model.d.ts +9 -0
  365. package/models/select-data-label.model.js +4 -0
  366. package/models/select-data-label.model.js.map +1 -0
  367. package/models/server-message.model.d.ts +32 -0
  368. package/models/server-message.model.js +4 -0
  369. package/models/server-message.model.js.map +1 -0
  370. package/models/slow-query-report.model.d.ts +23 -0
  371. package/models/slow-query-report.model.js +4 -0
  372. package/models/slow-query-report.model.js.map +1 -0
  373. package/models/subscription.model.d.ts +31 -0
  374. package/models/subscription.model.js +4 -0
  375. package/models/subscription.model.js.map +1 -0
  376. package/models/support-ticket.model.d.ts +87 -0
  377. package/models/support-ticket.model.js +4 -0
  378. package/models/support-ticket.model.js.map +1 -0
  379. package/models/user-group.model.d.ts +20 -0
  380. package/models/user-group.model.js +4 -0
  381. package/models/user-group.model.js.map +1 -0
  382. package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
  383. package/models/user-guide.model.js +4 -0
  384. package/models/user-guide.model.js.map +1 -0
  385. package/models/user.model.d.ts +84 -0
  386. package/models/user.model.js +4 -0
  387. package/models/user.model.js.map +1 -0
  388. package/package.json +1 -1
  389. package/private/images/ResolveIO.png +0 -0
  390. package/public_api.js +127 -0
  391. package/public_api.js.map +1 -0
  392. package/publications/ai-terminal.d.ts +1 -0
  393. package/publications/ai-terminal.js +122 -0
  394. package/publications/ai-terminal.js.map +1 -0
  395. package/publications/app-settings.d.ts +2 -0
  396. package/publications/app-settings.js +28 -0
  397. package/publications/app-settings.js.map +1 -0
  398. package/publications/app-status.d.ts +2 -0
  399. package/publications/app-status.js +16 -0
  400. package/publications/app-status.js.map +1 -0
  401. package/publications/cron-jobs.d.ts +2 -0
  402. package/publications/cron-jobs.js +88 -0
  403. package/publications/cron-jobs.js.map +1 -0
  404. package/publications/customer-notifications.d.ts +2 -0
  405. package/publications/customer-notifications.js +161 -0
  406. package/publications/customer-notifications.js.map +1 -0
  407. package/publications/files.d.ts +2 -0
  408. package/publications/files.js +36 -0
  409. package/publications/files.js.map +1 -0
  410. package/publications/flags-update.d.ts +2 -0
  411. package/publications/flags-update.js +22 -0
  412. package/publications/flags-update.js.map +1 -0
  413. package/publications/flags.d.ts +2 -0
  414. package/publications/flags.js +22 -0
  415. package/publications/flags.js.map +1 -0
  416. package/publications/logs.d.ts +2 -0
  417. package/publications/logs.js +164 -0
  418. package/publications/logs.js.map +1 -0
  419. package/publications/notifications.d.ts +2 -0
  420. package/publications/notifications.js +16 -0
  421. package/publications/notifications.js.map +1 -0
  422. package/publications/report-builder-dashboard-builders.d.ts +2 -0
  423. package/publications/report-builder-dashboard-builders.js +42 -0
  424. package/publications/report-builder-dashboard-builders.js.map +1 -0
  425. package/publications/report-builder-libraries.d.ts +2 -0
  426. package/publications/report-builder-libraries.js +90 -0
  427. package/publications/report-builder-libraries.js.map +1 -0
  428. package/publications/report-builder-reports.d.ts +2 -0
  429. package/publications/report-builder-reports.js +50 -0
  430. package/publications/report-builder-reports.js.map +1 -0
  431. package/publications/super-admin.d.ts +2 -0
  432. package/publications/super-admin.js +16 -0
  433. package/publications/super-admin.js.map +1 -0
  434. package/publications/user-groups.d.ts +1 -0
  435. package/publications/user-groups.js +16 -0
  436. package/publications/user-groups.js.map +1 -0
  437. package/publications/user-guides.d.ts +1 -0
  438. package/publications/user-guides.js +16 -0
  439. package/publications/user-guides.js.map +1 -0
  440. package/resolveio-server-app.d.ts +70 -0
  441. package/resolveio-server-app.js +801 -0
  442. package/resolveio-server-app.js.map +1 -0
  443. package/server-app.d.ts +228 -0
  444. package/server-app.js +3566 -0
  445. package/server-app.js.map +1 -0
  446. package/services/codex-client.d.ts +128 -0
  447. package/services/codex-client.js +1629 -0
  448. package/services/codex-client.js.map +1 -0
  449. package/services/openai-client.d.ts +46 -0
  450. package/services/openai-client.js +318 -0
  451. package/services/openai-client.js.map +1 -0
  452. package/types/error-report.d.ts +25 -0
  453. package/types/error-report.js +4 -0
  454. package/types/error-report.js.map +1 -0
  455. package/types/slow-query-report.d.ts +27 -0
  456. package/types/slow-query-report.js +6 -0
  457. package/types/slow-query-report.js.map +1 -0
  458. package/util/ai-qa-policy.d.ts +124 -0
  459. package/util/ai-qa-policy.js +736 -0
  460. package/util/ai-qa-policy.js.map +1 -0
  461. package/util/ai-run-evidence-adapters.d.ts +109 -0
  462. package/util/ai-run-evidence-adapters.js +7234 -0
  463. package/util/ai-run-evidence-adapters.js.map +1 -0
  464. package/util/ai-run-evidence-dashboard.d.ts +88 -0
  465. package/util/ai-run-evidence-dashboard.js +343 -0
  466. package/util/ai-run-evidence-dashboard.js.map +1 -0
  467. package/util/ai-run-evidence-eval.d.ts +86 -0
  468. package/util/ai-run-evidence-eval.js +1018 -0
  469. package/util/ai-run-evidence-eval.js.map +1 -0
  470. package/util/ai-run-evidence.d.ts +244 -0
  471. package/util/ai-run-evidence.js +1096 -0
  472. package/util/ai-run-evidence.js.map +1 -0
  473. package/util/ai-runner-artifacts.d.ts +82 -0
  474. package/util/ai-runner-artifacts.js +713 -0
  475. package/util/ai-runner-artifacts.js.map +1 -0
  476. package/util/ai-runner-manager-autopilot.d.ts +210 -0
  477. package/util/ai-runner-manager-autopilot.js +642 -0
  478. package/util/ai-runner-manager-autopilot.js.map +1 -0
  479. package/util/ai-runner-manager-policy.d.ts +807 -0
  480. package/util/ai-runner-manager-policy.js +3501 -0
  481. package/util/ai-runner-manager-policy.js.map +1 -0
  482. package/util/ai-runner-qa-auth.d.ts +5 -0
  483. package/util/ai-runner-qa-auth.js +839 -0
  484. package/util/ai-runner-qa-auth.js.map +1 -0
  485. package/util/ai-runner-qa-tools.d.ts +26 -0
  486. package/util/ai-runner-qa-tools.js +3520 -0
  487. package/util/ai-runner-qa-tools.js.map +1 -0
  488. package/util/aicoder-runner-v6.d.ts +426 -0
  489. package/util/aicoder-runner-v6.js +2464 -0
  490. package/util/aicoder-runner-v6.js.map +1 -0
  491. package/util/common.d.ts +31 -0
  492. package/util/common.js +683 -0
  493. package/util/common.js.map +1 -0
  494. package/util/customer-portal-password.d.ts +13 -0
  495. package/util/customer-portal-password.js +209 -0
  496. package/util/customer-portal-password.js.map +1 -0
  497. package/util/error-reporter.d.ts +52 -0
  498. package/util/error-reporter.js +326 -0
  499. package/util/error-reporter.js.map +1 -0
  500. package/util/error-tracking.d.ts +13 -0
  501. package/util/error-tracking.js +120 -0
  502. package/util/error-tracking.js.map +1 -0
  503. package/util/openai-usage-cost.d.ts +6 -0
  504. package/util/openai-usage-cost.js +103 -0
  505. package/util/openai-usage-cost.js.map +1 -0
  506. package/util/report-builder-unwinds.d.ts +15 -0
  507. package/util/report-builder-unwinds.js +156 -0
  508. package/util/report-builder-unwinds.js.map +1 -0
  509. package/util/runner-process-janitor.d.ts +27 -0
  510. package/util/runner-process-janitor.js +208 -0
  511. package/util/runner-process-janitor.js.map +1 -0
  512. package/util/schema-report-builder.d.ts +6 -0
  513. package/util/schema-report-builder.js +481 -0
  514. package/util/schema-report-builder.js.map +1 -0
  515. package/util/slow-query-reporter.d.ts +28 -0
  516. package/util/slow-query-reporter.js +226 -0
  517. package/util/slow-query-reporter.js.map +1 -0
  518. package/util/subscription-dependency-context.d.ts +34 -0
  519. package/util/subscription-dependency-context.js +1283 -0
  520. package/util/subscription-dependency-context.js.map +1 -0
  521. package/util/support-runner-v5.d.ts +1426 -0
  522. package/util/support-runner-v5.js +7647 -0
  523. package/util/support-runner-v5.js.map +1 -0
  524. package/util/tokenizer.d.ts +5 -0
  525. package/util/tokenizer.js +41 -0
  526. package/util/tokenizer.js.map +1 -0
  527. package/workers/codex-runner.worker.d.ts +1 -0
  528. package/workers/codex-runner.worker.js +192 -0
  529. package/workers/codex-runner.worker.js.map +1 -0
  530. package/.nodemon.json +0 -5
  531. package/.vscode/settings.json +0 -21
  532. package/AGENTS.md +0 -195
  533. package/README.md +0 -22
  534. package/build_package.sh +0 -5
  535. package/compileDTS.pl +0 -64
  536. package/docs/ai-assistant-nightly-eval.md +0 -65
  537. package/docs/ai-assistant-preflight-checklist.md +0 -23
  538. package/docs/ai-assistant-report-builder-bridge-playbook.md +0 -115
  539. package/eslint-plugin-custom/index.js +0 -7
  540. package/eslint-plugin-custom/rules/no-filter-zero-index.js +0 -44
  541. package/eslint.config.js +0 -103
  542. package/gulpfile.js +0 -216
  543. package/methodAndPublicationListGenerator.py +0 -375
  544. package/mongodbensurers.js +0 -2
  545. package/mongostop.js +0 -3
  546. package/scripts/cleanup-bypassed-callmethod-logs.js +0 -616
  547. package/settings.development.json +0 -25
  548. package/settings.development.redacted.json +0 -25
  549. package/src/.env +0 -12
  550. package/src/ai/assistant-core-heuristics.ts +0 -379
  551. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +0 -185
  552. package/src/ai/resolveio-platform-intelligence-memory.ts +0 -325
  553. package/src/ai/resolveio-platform-intelligence.ts +0 -462
  554. package/src/client-server-app.ts +0 -12
  555. package/src/collections/ai-run.collection.ts +0 -117
  556. package/src/collections/ai-terminal-conversation.collection.ts +0 -91
  557. package/src/collections/ai-terminal-issue-report.collection.ts +0 -99
  558. package/src/collections/ai-terminal-message.collection.ts +0 -77
  559. package/src/collections/app-setting.collection.ts +0 -104
  560. package/src/collections/app-status.collection.ts +0 -58
  561. package/src/collections/communication-metric.collection.ts +0 -84
  562. package/src/collections/counter.collection.ts +0 -56
  563. package/src/collections/cron-job-history.collection.ts +0 -94
  564. package/src/collections/cron-job.collection.ts +0 -92
  565. package/src/collections/customer-notification.collection.ts +0 -131
  566. package/src/collections/customer-portal-password.collection.ts +0 -76
  567. package/src/collections/email-history.collection.ts +0 -134
  568. package/src/collections/email-verified.collection.ts +0 -62
  569. package/src/collections/file.collection.ts +0 -74
  570. package/src/collections/flag-update.collection.ts +0 -57
  571. package/src/collections/flag.collection.ts +0 -57
  572. package/src/collections/log-method-latency.collection.ts +0 -77
  573. package/src/collections/log-subscription.collection.ts +0 -80
  574. package/src/collections/log.collection.ts +0 -93
  575. package/src/collections/logged-in-users.collection.ts +0 -67
  576. package/src/collections/monitor-cpu.collection.ts +0 -65
  577. package/src/collections/monitor-function.collection.ts +0 -74
  578. package/src/collections/monitor-memory.collection.ts +0 -77
  579. package/src/collections/monitor-mongo.collection.ts +0 -71
  580. package/src/collections/notification.collection.ts +0 -57
  581. package/src/collections/openai-usage-ledger.collection.ts +0 -131
  582. package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
  583. package/src/collections/report-builder-library.collection.ts +0 -89
  584. package/src/collections/report-builder-report.collection.ts +0 -184
  585. package/src/collections/user-group.collection.ts +0 -89
  586. package/src/collections/user-guide.collection.ts +0 -57
  587. package/src/collections/user.collection.ts +0 -181
  588. package/src/cron/cron.ts +0 -117
  589. package/src/fixtures/cron-jobs.ts +0 -95
  590. package/src/fixtures/init.ts +0 -35
  591. package/src/http/auth.ts +0 -818
  592. package/src/http/health.ts +0 -7
  593. package/src/http/home.ts +0 -90
  594. package/src/http/slow-query-publication.ts +0 -49
  595. package/src/index.ts +0 -1
  596. package/src/managers/ai-assistant-codex-manager.manager.ts +0 -1131
  597. package/src/managers/ai-run-evidence.manager.ts +0 -264
  598. package/src/managers/communication-metric.manager.ts +0 -82
  599. package/src/managers/cron.manager.ts +0 -333
  600. package/src/managers/customer-notification-content.manager.ts +0 -236
  601. package/src/managers/diagnostic-manager-bootstrap.ts +0 -165
  602. package/src/managers/error-auto-fix.manager.ts +0 -2767
  603. package/src/managers/local-log.manager.ts +0 -113
  604. package/src/managers/method.manager.ts +0 -1857
  605. package/src/managers/mongo.manager.ts +0 -4575
  606. package/src/managers/monitor.manager.ts +0 -507
  607. package/src/managers/openai-usage-ledger.manager.ts +0 -112
  608. package/src/managers/slow-query-verifier.manager.ts +0 -3590
  609. package/src/managers/slow-query.manager.ts +0 -519
  610. package/src/managers/subscription.manager.ts +0 -3128
  611. package/src/managers/websocket.manager.ts +0 -746
  612. package/src/managers/worker-dispatcher.manager.ts +0 -1360
  613. package/src/managers/worker-server.manager.ts +0 -536
  614. package/src/methods/accounts.ts +0 -532
  615. package/src/methods/ai-terminal.ts +0 -29070
  616. package/src/methods/app-settings.ts +0 -114
  617. package/src/methods/aws.ts +0 -649
  618. package/src/methods/collections.ts +0 -641
  619. package/src/methods/counters.ts +0 -69
  620. package/src/methods/cron-jobs.ts +0 -2614
  621. package/src/methods/customer-notifications.ts +0 -458
  622. package/src/methods/diagnostics.ts +0 -616
  623. package/src/methods/flag-updates.ts +0 -7
  624. package/src/methods/flags.ts +0 -7
  625. package/src/methods/logs.ts +0 -657
  626. package/src/methods/mongo-explorer.ts +0 -1880
  627. package/src/methods/monitor.ts +0 -540
  628. package/src/methods/pdf.ts +0 -1236
  629. package/src/methods/publications.ts +0 -129
  630. package/src/methods/report-builder.ts +0 -3300
  631. package/src/methods/support.ts +0 -335
  632. package/src/models/ai-run.model.ts +0 -27
  633. package/src/models/ai-terminal-conversation.model.ts +0 -19
  634. package/src/models/ai-terminal-issue-report.model.ts +0 -21
  635. package/src/models/ai-terminal-message.model.ts +0 -24
  636. package/src/models/app-setting.model.ts +0 -17
  637. package/src/models/collection-document.model.ts +0 -24
  638. package/src/models/communication-metric.model.ts +0 -23
  639. package/src/models/cron-job-history.model.ts +0 -16
  640. package/src/models/cron-job.model.ts +0 -15
  641. package/src/models/customer-notification.model.ts +0 -28
  642. package/src/models/customer-portal-password.model.ts +0 -12
  643. package/src/models/dialog.model.ts +0 -25
  644. package/src/models/log-method-latency.model.ts +0 -11
  645. package/src/models/log.model.ts +0 -19
  646. package/src/models/method.model.ts +0 -25
  647. package/src/models/monitor-function.model.ts +0 -16
  648. package/src/models/monitor-memory.model.ts +0 -17
  649. package/src/models/monitor-mongo.model.ts +0 -15
  650. package/src/models/openai-usage-ledger.model.ts +0 -56
  651. package/src/models/pagination.model.ts +0 -35
  652. package/src/models/permission.model.ts +0 -14
  653. package/src/models/report-builder-dashboard-builder.model.ts +0 -29
  654. package/src/models/report-builder-library.model.ts +0 -20
  655. package/src/models/report-builder-report.model.ts +0 -136
  656. package/src/models/report-builder.model.ts +0 -68
  657. package/src/models/select-data-label.model.ts +0 -9
  658. package/src/models/server-message.model.ts +0 -31
  659. package/src/models/slow-query-report.model.ts +0 -23
  660. package/src/models/subscription.model.ts +0 -73
  661. package/src/models/support-ticket.model.ts +0 -104
  662. package/src/models/user-group.model.ts +0 -24
  663. package/src/models/user.model.ts +0 -96
  664. package/src/private/images/ResolveIO.png +0 -0
  665. package/src/publications/ai-terminal.ts +0 -73
  666. package/src/publications/app-settings.ts +0 -25
  667. package/src/publications/app-status.ts +0 -13
  668. package/src/publications/cron-jobs.ts +0 -40
  669. package/src/publications/customer-notifications.ts +0 -101
  670. package/src/publications/files.ts +0 -33
  671. package/src/publications/flags-update.ts +0 -19
  672. package/src/publications/flags.ts +0 -19
  673. package/src/publications/logs.ts +0 -163
  674. package/src/publications/notifications.ts +0 -13
  675. package/src/publications/report-builder-dashboard-builders.ts +0 -39
  676. package/src/publications/report-builder-libraries.ts +0 -41
  677. package/src/publications/report-builder-reports.ts +0 -47
  678. package/src/publications/super-admin.ts +0 -13
  679. package/src/publications/user-groups.ts +0 -12
  680. package/src/publications/user-guides.ts +0 -12
  681. package/src/resolveio-server-app.ts +0 -617
  682. package/src/server-app.ts +0 -3354
  683. package/src/services/codex-client.ts +0 -1231
  684. package/src/services/openai-client.ts +0 -265
  685. package/src/types/error-report.ts +0 -26
  686. package/src/types/js-tiktoken.d.ts +0 -11
  687. package/src/types/slow-query-report.ts +0 -28
  688. package/src/util/ai-qa-policy.ts +0 -925
  689. package/src/util/ai-run-evidence-adapters.ts +0 -8347
  690. package/src/util/ai-run-evidence-dashboard.ts +0 -323
  691. package/src/util/ai-run-evidence-eval.ts +0 -1057
  692. package/src/util/ai-run-evidence.ts +0 -1430
  693. package/src/util/ai-runner-artifacts.ts +0 -586
  694. package/src/util/ai-runner-manager-autopilot.ts +0 -961
  695. package/src/util/ai-runner-manager-policy.ts +0 -5011
  696. package/src/util/ai-runner-qa-auth.ts +0 -838
  697. package/src/util/ai-runner-qa-tools.ts +0 -3536
  698. package/src/util/aicoder-runner-v6.ts +0 -3121
  699. package/src/util/common.ts +0 -649
  700. package/src/util/customer-portal-password.ts +0 -183
  701. package/src/util/error-reporter.ts +0 -332
  702. package/src/util/error-tracking.ts +0 -79
  703. package/src/util/openai-usage-cost.ts +0 -114
  704. package/src/util/report-builder-unwinds.ts +0 -180
  705. package/src/util/runner-process-janitor.ts +0 -219
  706. package/src/util/schema-report-builder.ts +0 -448
  707. package/src/util/slow-query-reporter.ts +0 -216
  708. package/src/util/subscription-dependency-context.ts +0 -1096
  709. package/src/util/support-runner-v5.ts +0 -10040
  710. package/src/util/tokenizer.ts +0 -38
  711. package/src/workers/codex-runner.worker.ts +0 -142
  712. package/start_server.sh +0 -5
  713. package/tests/ai-assistant-corpus-build.ts +0 -484
  714. package/tests/ai-assistant-corpus-replay-e2e.ts +0 -774
  715. package/tests/ai-assistant-data-parity-e2e.ts +0 -1989
  716. package/tests/ai-assistant-eval-triage.ts +0 -831
  717. package/tests/ai-assistant-openai-e2e.ts +0 -1061
  718. package/tests/ai-assistant-openai-git-e2e.ts +0 -155
  719. package/tests/ai-assistant-preflight-matrix.ts +0 -215
  720. package/tests/ai-assistant-routing-eval.test.ts +0 -585
  721. package/tests/ai-assistant-snf-live-eval.ts +0 -975
  722. package/tests/ai-assistant-utils.test.ts +0 -4834
  723. package/tests/ai-manager-autopilot-snapshot.test.ts +0 -193
  724. package/tests/ai-manager-recovery-checkpoint.test.ts +0 -1383
  725. package/tests/ai-run-eval.test.ts +0 -132
  726. package/tests/ai-run-evidence.test.ts +0 -3773
  727. package/tests/ai-runner-contract.test.ts +0 -515
  728. package/tests/aicoder-runner-v6.test.ts +0 -822
  729. package/tests/error-reporter.test.ts +0 -145
  730. package/tests/method-publication-generator.test.ts +0 -46
  731. package/tests/report-builder-linking.test.ts +0 -79
  732. package/tests/resolveio-platform-intelligence.test.ts +0 -352
  733. package/tests/server-app-cron-owner.test.ts +0 -127
  734. package/tests/subscription-connect-race.test.ts +0 -158
  735. package/tests/subscription-dependency-context.test.ts +0 -324
  736. package/tests/subscription-manager-collection-tracking.test.ts +0 -86
  737. package/tests/subscription-manager-invalidation.test.ts +0 -86
  738. package/tests/support-runner-v5.test.ts +0 -3201
  739. package/tsconfig.json +0 -34
  740. /package/{src/private → private}/email-templates/enrollment.html +0 -0
  741. /package/{src/private → private}/email-templates/forgot-password.html +0 -0
  742. /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{src/private → private}/email-templates/support-ticket.html +0 -0
  745. /package/{src/public_api.ts → public_api.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/managers/error-auto-fix.manager.ts"],"names":[],"mappings":"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","file":"error-auto-fix.manager.js","sourcesContent":["import { ResolveIOServer } from '../resolveio-server-app';\nimport { objectIdHexString, pad } from '../util/common';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { createHash } from 'crypto';\nimport { URL } from 'url';\nimport { Users } from '../collections/user.collection';\nimport { AppSettings } from '../collections/app-setting.collection';\nimport { buildGeneratedAppAutoFixSummary, buildResolveIOProjectAutoFixDetails } from './customer-notification-content.manager';\nimport { ErrorReportAttachment, ErrorReportPayload } from '../types/error-report';\n\ntype AICoderAppModel = Record<string, any>;\ntype AIDashboardJob = Record<string, any>;\ntype ClientModel = Record<string, any>;\ntype ErrorAutoFixLogModel = Record<string, any>;\n\nexport interface ErrorAutoFixManagerDependencies {\n\tClients?: any;\n\tErrorAutoFixLogs: any;\n\tAICoderApps?: any;\n\tAIDashboardJobs?: any;\n}\n\nconst OPTIONAL_COLLECTION = {\n\tfindOne: () => Promise.resolve(null),\n\tfindById: () => Promise.resolve(null),\n\tfind: () => Promise.resolve([])\n};\n\nlet AICoderApps: any = OPTIONAL_COLLECTION;\nlet AIDashboardJobs: any = OPTIONAL_COLLECTION;\nlet Clients: any = OPTIONAL_COLLECTION;\nlet ErrorAutoFixLogs: any = null;\nlet configuredErrorAutoFixDependencies: ErrorAutoFixManagerDependencies | null = null;\n\nfunction resolveErrorAutoFixManagerDependencies(\n\toverrides?: Partial<ErrorAutoFixManagerDependencies>\n): ErrorAutoFixManagerDependencies {\n\tconst resolved: ErrorAutoFixManagerDependencies = {\n\t\t...(configuredErrorAutoFixDependencies || {} as ErrorAutoFixManagerDependencies),\n\t\t...(overrides || {})\n\t};\n\n\tif (!resolved.ErrorAutoFixLogs) {\n\t\tthrow new Error('ErrorAutoFixManager dependencies are not configured.');\n\t}\n\n\treturn resolved;\n}\n\nfunction applyErrorAutoFixDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tconfiguredErrorAutoFixDependencies = dependencies;\n\tClients = dependencies.Clients || OPTIONAL_COLLECTION;\n\tErrorAutoFixLogs = dependencies.ErrorAutoFixLogs;\n\tAICoderApps = dependencies.AICoderApps || OPTIONAL_COLLECTION;\n\tAIDashboardJobs = dependencies.AIDashboardJobs || OPTIONAL_COLLECTION;\n}\n\nexport function registerErrorAutoFixManagerDependencies(dependencies: ErrorAutoFixManagerDependencies): void {\n\tapplyErrorAutoFixDependencies(dependencies);\n\tensureErrorAutoFixManager();\n}\n\ninterface AutoFixConfig {\n\tenabled: boolean;\n\trepoRoot: string;\n\tbaseBranch: string;\n\tbranchPrefix: string;\n\tgithubToken?: string;\n\tgithubOwner: string;\n\tgithubRepo: string;\n\tcommandTimeoutMs: number;\n\tnotifyEmails: string[];\n\tdebugLogging: boolean;\n\tconfigSource: string;\n\topenaiEnvironment?: string;\n\topenaiProjectId?: string;\n\tautoOptimizeEnabled: boolean;\n\tingestKeys: string[];\n\tdashboardWorkflowEnabled: boolean;\n\tdashboardFallbackToGithub: boolean;\n\tdashboardWaitTimeoutMs: number;\n\tdashboardPublishRequired: boolean;\n\tmaxAutoRunAttemptsPerIssue: number;\n\tescalationEmails: string[];\n}\n\ninterface ErrorEmail {\n\tkey: string;\n\tsubject: string;\n\tbody: string;\n\tfrom?: string;\n\tmessageId?: string;\n\thash?: string;\n\trawHash?: string;\n\tissueHash?: string;\n\tlogId?: string;\n\traw: string;\n\tfromAddress?: string;\n\tid_client?: string;\n\tclient_name?: string;\n\tsource_type?: 'app' | 'infrastructure' | 'noise';\n\tclassification_reason?: string;\n\topenai_environment?: string;\n\tsourceApp?: string;\n\tsourceEnvironment?: string;\n\tseverity?: string;\n\treportedBy?: string;\n\treportMetadata?: Record<string, any>;\n\treportContext?: Record<string, any>;\n\tattachments?: ErrorReportAttachment[];\n\treportedAt?: Date;\n}\n\ninterface AutoFixResult {\n\tstatus: 'skipped' | 'failed' | 'success' | 'in_progress';\n\temail: ErrorEmail;\n\terror?: string;\n\tbranchName?: string;\n\tprUrl?: string;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n\tsummary?: string;\n\tnotes?: string;\n}\n\ninterface LogReservation {\n\tproceed: boolean;\n\tlog?: ErrorAutoFixLogModel;\n\treason?: string;\n}\n\ninterface EmailClassification {\n\tsource: 'app' | 'infrastructure' | 'noise';\n\tskip: boolean;\n\treason?: string;\n\tnotify?: boolean;\n\tmarkIgnored?: boolean;\n}\n\ninterface LibraryIssueGateDecision {\n\tblocked: boolean;\n\treason?: string;\n\tevidence: string[];\n}\n\nconst INFRA_SUBJECT_KEYWORDS = [\n\t'failed snapshot',\n\t'replica set',\n\t'data size used',\n\t'oplog',\n\t'lock during backup',\n\t'backup',\n\t'no primary',\n\t'no secondary',\n\t'preferred primary',\n\t'exceeding memory',\n\t'exceeding storage',\n\t'unhealthy status',\n\t'disconnected status',\n\t'replication lag',\n\t'database storage size',\n\t'compacting collections',\n\t'failed connection',\n\t'heartbeat',\n\t'high cpu usage',\n\t'high ram usage'\n];\nconst MONGO_SOURCE_KEYWORDS = [\n\t'mongo-explorer',\n\t'mongo explorer',\n\t'mongo-manager',\n\t'mongo manager',\n\t'mongomanager',\n\t'mongodb'\n];\nconst MONGO_TEXT_PATTERNS: RegExp[] = [\n\t/\\[mongo\\]/i,\n\t/\\bmongo(?:db)?\\s+(?:server\\s+)?error\\b/i,\n\t/\\bmongoservererror\\b/i,\n\t/\\bmongonetwork(?:timeout)?error\\b/i,\n\t/\\bmongonetworktimeouterror\\b/i\n];\nconst DEFAULT_ERROR_ALERT_EMAIL = 'dev@resolveio.com';\nconst MAX_LOCAL_NOTIFICATION_USERS = 5000;\nconst LIBRARY_MARKER_PATTERNS: Array<{label: string; pattern: RegExp}> = [\n\t{label: 'node_modules stack', pattern: /(?:^|[\\/\\\\])node_modules(?:[\\/\\\\]|$)/i},\n\t{label: '@resolveio/client-lib', pattern: /@resolveio\\/client-lib(?:-[a-z0-9-]+)?/i},\n\t{label: '@resolveio/server-lib', pattern: /@resolveio\\/server-lib/i},\n\t{label: 'resolveio-client-lib path', pattern: /(?:^|[\\/\\\\])resolveio-client-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'resolveio-server-lib path', pattern: /(?:^|[\\/\\\\])resolveio-server-lib(?:[\\/\\\\]|$)/i},\n\t{label: 'base template path', pattern: /(?:^|[\\/\\\\])aicoder[\\/\\\\]templates[\\/\\\\]base_(?:small|medium|large|tool)(?:[\\/\\\\]|$)/i}\n];\nconst APP_OWNED_PATH_PATTERN = /(?:^|[\\/\\\\])(angular[\\/\\\\]app|server[\\/\\\\]src)(?:[\\/\\\\]|$)/i;\nconst FILE_PATH_PATTERN = /(?:webpack:\\/\\/\\/?|\\/|\\.\\/|[A-Za-z]:\\\\)[^\\s'\"`]+?\\.(?:ts|tsx|js|jsx|mjs|cjs|html|scss|css)/g;\n\ninterface RepoTarget {\n\towner: string;\n\trepo: string;\n}\n\ninterface GithubPullRequest {\n\tnumber: number;\n\thtml_url: string;\n}\n\ninterface ErrorReportIngestResult {\n\tstatus: 'queued' | 'skipped' | 'duplicate' | 'ignored' | 'success' | 'failed' | 'in_progress';\n\treason?: string;\n\tlog?: ErrorAutoFixLogModel;\n}\n\nexport interface DevErrorReportOptions {\n\tsubject: string;\n\tbody?: string;\n\tsourceApp?: string;\n\tenvironment?: string;\n\tseverity?: string;\n\tfingerprint?: string;\n\tidempotencyKey?: string;\n\tmetadata?: Record<string, any>;\n\tclientId?: string;\n\tclientName?: string;\n\tclientSlug?: string;\n}\n\nexport class ErrorAutoFixManager {\n\tprivate config: AutoFixConfig;\n\tprivate _serverConfig = null;\n\tprivate readonly githubApiBase = 'https://api.github.com';\n\tprivate readonly dashboardMonitors = new Map<string, Promise<void>>();\n\tprivate static readonly APP_SETTINGS_CACHE_TTL_MS = 10000;\n\tprivate appSettingsAutoOptimizeCacheExpiresAt = 0;\n\tprivate appSettingsAutoOptimizeCacheValue: boolean | null = null;\n\tprivate ready = false;\n\n\tconstructor(serverConfig, dependencies?: Partial<ErrorAutoFixManagerDependencies>) {\n\t\tconst resolvedDependencies = resolveErrorAutoFixManagerDependencies(dependencies);\n\t\tapplyErrorAutoFixDependencies(resolvedDependencies);\n\n\t\tthis._serverConfig = serverConfig || {};\n\t\tthis.config = this.resolveConfig();\n\n\t\tif (!resolvedDependencies.AICoderApps || !resolvedDependencies.AIDashboardJobs) {\n\t\t\tthis.config.dashboardWorkflowEnabled = false;\n\t\t}\n\n\t\tif (!this.config.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this.config.dashboardWorkflowEnabled && (!this.config.repoRoot || !this.config.githubOwner || !this.config.githubRepo)) {\n\t\t\tconsole.warn('ErrorAutoFixManager auto-optimize unavailable - missing repository configuration. Ingest and manual runs remain available.');\n\t\t}\n\n\t\tthis.ready = true;\n\n\t\t// console.log('ErrorAutoFixManager initialized (HTTP intake mode).');\n\t\t// console.log('ErrorAutoFixManager config source:', this.config.configSource);\n\t\t// if (this.config.debugLogging) {\n\t\t// \tconsole.log('ErrorAutoFixManager debug logging enabled.');\n\t\t// }\n\t\t// if (!this.config.autoOptimizeEnabled) {\n\t\t// \tconsole.log('ErrorAutoFixManager auto-run disabled. Manual OpenAI runs required.');\n\t\t// }\n\t}\n\n\tpublic isReady(): boolean {\n\t\treturn !!(this.ready && this.config?.enabled);\n\t}\n\n\tpublic validateIngestKey(candidate?: string): boolean {\n\t\tconst keys = Array.isArray(this.config?.ingestKeys) ? this.config.ingestKeys.filter(Boolean) : [];\n\n\t\tif (!keys.length) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (!candidate) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn keys.includes(candidate.trim());\n\t}\n\n\tprivate debugLog(message: string, details?: any): void {\n\t\tif (!this.config?.debugLogging) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn;\n\n\t\tif (typeof details === 'undefined') {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`);\n\t\t}\n\t\telse {\n\t\t\tconsole.log(`[ErrorAutoFixManager][debug] ${message}`, details);\n\t\t}\n\t}\n\n\tprivate resolveConfig(): AutoFixConfig {\n\t\tconst scAutofix = (this._serverConfig && (this._serverConfig.autofix || this._serverConfig.AUTOFIX)) || {};\n\t\tlet notifyEmails: string[] = [];\n\t\tlet escalationEmails: string[] = [];\n\n\t\tif (process.env.AUTOFIX_NOTIFY_EMAILS) {\n\t\t\tnotifyEmails = process.env.AUTOFIX_NOTIFY_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.notifyEmails)) {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.notifyEmails === 'string') {\n\t\t\tnotifyEmails = scAutofix.notifyEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tif (process.env.AUTOFIX_ESCALATION_EMAILS) {\n\t\t\tescalationEmails = process.env.AUTOFIX_ESCALATION_EMAILS.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\t\telse if (Array.isArray(scAutofix.escalationEmails)) {\n\t\t\tescalationEmails = scAutofix.escalationEmails.map(a => (a || '').trim()).filter(Boolean);\n\t\t}\n\t\telse if (typeof scAutofix.escalationEmails === 'string') {\n\t\t\tescalationEmails = scAutofix.escalationEmails.split(',').map(a => a.trim()).filter(Boolean);\n\t\t}\n\n\t\tconst getString = (envKey: string, scKey: string, fallback = ''): string => {\n\t\t\treturn process.env[envKey] || scAutofix[scKey] || fallback;\n\t\t};\n\n\t\tconst getNumber = (envKey: string, scKey: string, fallback: number) => {\n\t\t\tconst envVal = Number(process.env[envKey]);\n\t\t\tif (!Number.isNaN(envVal) && process.env[envKey] !== undefined) {\n\t\t\t\treturn envVal;\n\t\t\t}\n\t\t\tconst scVal = Number(scAutofix[scKey]);\n\t\t\tif (!Number.isNaN(scVal) && scAutofix[scKey] !== undefined) {\n\t\t\t\treturn scVal;\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst getBoolean = (envKey: string, scKey: string, fallback = false) => {\n\t\t\tif (typeof process.env[envKey] !== 'undefined') {\n\t\t\t\treturn process.env[envKey] === 'true';\n\t\t\t}\n\t\t\tif (typeof scAutofix[scKey] !== 'undefined') {\n\t\t\t\treturn !!scAutofix[scKey];\n\t\t\t}\n\t\t\treturn fallback;\n\t\t};\n\n\t\tconst parseKeyList = (value: any): string[] => {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.map(val => `${val || ''}`.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\tif (typeof value === 'string') {\n\t\t\t\treturn value.split(',').map(val => val.trim()).filter(Boolean);\n\t\t\t}\n\n\t\t\treturn [];\n\t\t};\n\n\t\tconst normalizePositiveInt = (value: number, fallback: number): number => {\n\t\t\tif (!Number.isFinite(value) || value <= 0) {\n\t\t\t\treturn fallback;\n\t\t\t}\n\t\t\treturn Math.floor(value);\n\t\t};\n\n\t\tconst openaiProjectId = getString('OPENAI_PROJECT_ID', 'openaiProjectId');\n\t\tconst openaiEnvironment = getString('OPENAI_ENVIRONMENT', 'openaiEnvironment', openaiProjectId);\n\t\tconst ingestSource = typeof process.env.AUTOFIX_INGEST_KEYS !== 'undefined'\n\t\t\t? process.env.AUTOFIX_INGEST_KEYS\n\t\t\t: scAutofix.ingestKeys;\n\t\tconst hasAutoOptimizeEnv = typeof process.env.AUTOFIX_AUTO_OPTIMIZE_ENABLED !== 'undefined';\n\t\tconst autoOptimizeEnabled = getBoolean('AUTOFIX_AUTO_OPTIMIZE_ENABLED', 'autoOptimizeEnabled', false);\n\n\t\treturn {\n\t\t\tenabled: true,\n\t\t\trepoRoot: getString('AUTOFIX_REPO_ROOT', 'repoRoot', ''),\n\t\t\tbaseBranch: getString('AUTOFIX_BASE_BRANCH', 'baseBranch', 'main'),\n\t\t\tbranchPrefix: getString('AUTOFIX_BRANCH_PREFIX', 'branchPrefix', 'openai/auto'),\n\t\t\tgithubToken: getString('GITHUB_TOKEN', 'githubToken', getString('AUTOFIX_GITHUB_TOKEN', 'githubToken')),\n\t\t\tgithubOwner: getString('AUTOFIX_GITHUB_OWNER', 'githubOwner', 'resolveio'),\n\t\t\tgithubRepo: getString('AUTOFIX_GITHUB_REPO', 'githubRepo', 'resolveio-all'),\n\t\t\tcommandTimeoutMs: getNumber('AUTOFIX_COMMAND_TIMEOUT_MS', 'commandTimeoutMs', 600000),\n\t\t\tnotifyEmails,\n\t\t\tdebugLogging: getBoolean('AUTOFIX_DEBUG_LOGS', 'debugLogging', false),\n\t\t\tconfigSource: hasAutoOptimizeEnv ? 'environment' : (Object.keys(scAutofix).length ? 'serverConfig' : 'defaults'),\n\t\t\topenaiEnvironment,\n\t\t\topenaiProjectId,\n\t\t\tautoOptimizeEnabled: autoOptimizeEnabled,\n\t\t\tingestKeys: parseKeyList(ingestSource),\n\t\t\tdashboardWorkflowEnabled: getBoolean('AUTOFIX_DASHBOARD_WORKFLOW_ENABLED', 'dashboardWorkflowEnabled', true),\n\t\t\tdashboardFallbackToGithub: getBoolean('AUTOFIX_DASHBOARD_FALLBACK_TO_GITHUB', 'dashboardFallbackToGithub', true),\n\t\t\tdashboardWaitTimeoutMs: getNumber('AUTOFIX_DASHBOARD_WAIT_TIMEOUT_MS', 'dashboardWaitTimeoutMs', 45 * 60 * 1000),\n\t\t\tdashboardPublishRequired: getBoolean('AUTOFIX_DASHBOARD_PUBLISH_REQUIRED', 'dashboardPublishRequired', true),\n\t\t\tmaxAutoRunAttemptsPerIssue: normalizePositiveInt(\n\t\t\t\tgetNumber('AUTOFIX_MAX_AUTORUN_ATTEMPTS_PER_ISSUE', 'maxAutoRunAttemptsPerIssue', 3),\n\t\t\t\t3\n\t\t\t),\n\t\t\tescalationEmails\n\t\t};\n\t}\n\n\tprivate extractEmailAddress(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet email = value;\n\t\tconst angleMatch = value.match(/<([^>]+)>/);\n\n\t\tif (angleMatch && angleMatch[1]) {\n\t\t\temail = angleMatch[1];\n\t\t}\n\n\t\temail = email.split(';')[0].split(',')[0];\n\t\treturn email.trim().toLowerCase();\n\t}\n\n\tprivate escapeRegex(value: string): string {\n\t\treturn value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\t}\n\n\tprivate async resolveClientForEnvironment(environment?: string): Promise<ClientModel> {\n\t\tconst host = this.extractHostFromUrl(environment);\n\t\tif (!host) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst escaped = this.escapeRegex(host);\n\t\t\tconst query = {\n\t\t\t\twebsite: {\n\t\t\t\t\t$regex: escaped,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn await Clients.findOne(query);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForEnvironment error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate extractHostFromUrl(value?: string): string | null {\n\t\tif (!value) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst trimmed = value.trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\ttry {\n\t\t\tconst parsed = new URL(trimmed);\n\t\t\treturn parsed.hostname.toLowerCase();\n\t\t}\n\t\tcatch {\n\t\t\treturn trimmed.toLowerCase();\n\t\t}\n\t}\n\nprivate async resolveClientForReport(report: ErrorReportPayload): Promise<ClientModel> {\n\tif (!report) {\n\t\treturn null;\n\t}\n\n\t\ttry {\n\t\t\tif (report.clientId) {\n\t\t\t\tconst byId = await Clients.findById(report.clientId);\n\t\t\t\tif (byId) {\n\t\t\t\t\treturn byId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst tryField = async (field: string, value?: string): Promise<ClientModel> => {\n\t\t\t\tif (!value) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst escaped = this.escapeRegex(value);\n\t\t\t\tconst query: {[key: string]: any} = {};\n\t\t\t\tquery[field] = {$regex: `^${escaped}$`, $options: 'i'};\n\t\t\t\treturn await Clients.findOne(query);\n\t\t\t};\n\n\t\t\treturn (\n\t\t\t\t(await tryField('name', report.clientName)) ||\n\t\t\t\t(await tryField('demo_name', report.clientSlug)) ||\n\t\t\t\t(await tryField('repo', report.clientRepo)) ||\n\t\t\t\t(await this.resolveClientForEnvironment(report.environment))\n\t\t\t);\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('ErrorAutoFixManager resolveClientForReport error:', err);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate determineOpenAIEnvironment(client?: ClientModel): string {\n\t\tconst repoCandidate = (client?.repo || '').trim();\n\n\t\tif (repoCandidate) {\n\t\t\treturn repoCandidate;\n\t\t}\n\n\t\tconst configEnv = (this.config.openaiEnvironment || '').trim();\n\n\t\tif (configEnv) {\n\t\t\treturn configEnv;\n\t\t}\n\n\t\tif ((this.config.githubOwner || '').trim() && (this.config.githubRepo || '').trim()) {\n\t\t\treturn `${this.config.githubOwner}/${this.config.githubRepo}`.trim();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tprivate resolveEnvironmentForTask(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tif (email && email.openai_environment && email.openai_environment.trim()) {\n\t\t\treturn email.openai_environment.trim();\n\t\t}\n\n\t\tif (log && log.openai_environment && log.openai_environment.trim()) {\n\t\t\treturn log.openai_environment.trim();\n\t\t}\n\n\t\treturn this.determineOpenAIEnvironment();\n\t}\n\n\n\tprivate buildEmailFromReport(report: ErrorReportPayload): ErrorEmail {\n\t\tconst timestamp = report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime())\n\t\t\t? report.reportedAt\n\t\t\t: new Date();\n\t\tconst safeMessage = (report.message || '').toString().trim() || 'Unknown error';\n\t\tconst subjectBase = `[AppError] ${report.sourceApp || 'application'}${report.environment ? ` (${report.environment})` : ''}`;\n\t\tconst subject = `${subjectBase} - ${safeMessage.slice(0, 120)}`;\n\t\tconst lines: string[] = [\n\t\t\t`Source App:\\t${report.sourceApp}`,\n\t\t\t`Environment:\\t${report.environment || 'n/a'}`,\n\t\t\t`Severity:\\t${report.severity || 'error'}`,\n\t\t\t`Client Hint:\\t${report.clientName || report.clientSlug || report.clientRepo || report.clientId || 'n/a'}`,\n\t\t\t`Reported By:\\t${report.reportedBy || report.clientEmail || 'n/a'}`,\n\t\t\t`Reported At:\\t${timestamp.toISOString()}`,\n\t\t\t`Message:\\t${safeMessage}`\n\t\t];\n\n\t\tif (report.stack) {\n\t\t\tlines.push('', 'Stack Trace:', report.stack);\n\t\t}\n\n\t\tif (report.context && typeof report.context === 'object' && Object.keys(report.context).length) {\n\t\t\tlines.push('', 'Context JSON:', JSON.stringify(report.context, null, 2));\n\t\t}\n\n\t\tif (report.metadata && typeof report.metadata === 'object' && Object.keys(report.metadata).length) {\n\t\t\tlines.push('', 'Metadata JSON:', JSON.stringify(report.metadata, null, 2));\n\t\t}\n\n\t\tif (Array.isArray(report.attachments) && report.attachments.length) {\n\t\t\tlines.push('', 'Attachments:');\n\t\t\treport.attachments.forEach((att: ErrorReportAttachment) => {\n\t\t\t\tconst desc: string[] = [];\n\t\t\t\tif (att.name) {\n\t\t\t\t\tdesc.push(att.name);\n\t\t\t\t}\n\t\t\t\tif (att.contentType) {\n\t\t\t\t\tdesc.push(att.contentType);\n\t\t\t\t}\n\t\t\t\tif (typeof att.size === 'number') {\n\t\t\t\t\tdesc.push(`${att.size}b`);\n\t\t\t\t}\n\n\t\t\t\tconst summary = desc.length ? desc.join(' | ') : 'attachment';\n\t\t\t\tlines.push(`- ${summary}${att.url ? ` -> ${att.url}` : ''}`);\n\t\t\t});\n\t\t}\n\n\t\tif (report.fingerprint) {\n\t\t\tlines.push('', `Fingerprint:\\t${report.fingerprint}`);\n\t\t}\n\n\t\tif (report.idempotencyKey) {\n\t\t\tlines.push(`Idempotency Key:\\t${report.idempotencyKey}`);\n\t\t}\n\n\t\tconst body = lines.join('\\n');\n\n\t\treturn {\n\t\t\tkey: `report:${timestamp.getTime().toString(36)}:${Math.random().toString(36).slice(2, 10)}`,\n\t\t\tsubject,\n\t\t\tbody,\n\t\t\traw: body,\n\t\t\tfrom: report.reportedBy || report.clientEmail || 'errors@resolveio.com',\n\t\t\tsourceApp: report.sourceApp,\n\t\t\tsourceEnvironment: report.environment,\n\t\t\tseverity: report.severity,\n\t\t\treportedBy: report.reportedBy,\n\t\t\treportMetadata: report.metadata,\n\t\t\treportContext: report.context,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : [],\n\t\t\topenai_environment: report.clientRepo,\n\t\t\treportedAt: timestamp\n\t\t};\n\t}\n\n\tprivate classifyEmail(email: ErrorEmail): EmailClassification {\n\t\tconst subject = (email.subject || '').toLowerCase();\n\t\tconst body = email.body || '';\n\t\tconst normalizedBody = body.toLowerCase();\n\n\t\tif (\n\t\t\tsubject.includes('autofix') &&\n\t\t\t(normalizedBody.includes('auto-fix workflow') || normalizedBody.includes('autofix workflow'))\n\t\t) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'AutoFix status notification'};\n\t\t}\n\n\t\tif (this.isMongoOriginError(email)) {\n\t\t\treturn {\n\t\t\t\tsource: 'infrastructure',\n\t\t\t\tskip: true,\n\t\t\t\treason: 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tmarkIgnored: true\n\t\t\t};\n\t\t}\n\n\t\tif (subject.includes('[database]') || subject.includes('[server]')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Infrastructure alert (subject tag)'};\n\t\t}\n\n\t\tconst infraKeyword = INFRA_SUBJECT_KEYWORDS.find(keyword => subject.includes(keyword));\n\t\tif (infraKeyword) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: `Infrastructure alert (${infraKeyword})`};\n\t\t}\n\n\t\tif (!body.trim()) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error payload'};\n\t\t}\n\n\t\tconst emptyErrorsRegex = /errors\\s*[\\r\\n]+(\\{\\s*\\}|\\[\\s*\\])/i;\n\t\tif (emptyErrorsRegex.test(body)) {\n\t\t\treturn {source: 'noise', skip: true, reason: 'Empty error details'};\n\t\t}\n\n\t\tif (subject.includes('database is down') || normalizedBody.includes('database is down')) {\n\t\t\treturn {source: 'infrastructure', skip: true, reason: 'Database outage alert'};\n\t\t}\n\n\t\treturn {source: 'app', skip: false};\n\t}\n\n\tprivate isMongoOriginError(email: ErrorEmail): boolean {\n\t\tconst sourceApp = String(email?.sourceApp || '').toLowerCase();\n\t\tconst sourceEnvironment = String(email?.sourceEnvironment || '').toLowerCase();\n\t\tconst subject = String(email?.subject || '').toLowerCase();\n\t\tconst body = String(email?.body || '');\n\n\t\tconst sourceMatches = MONGO_SOURCE_KEYWORDS.some(keyword =>\n\t\t\tsourceApp.includes(keyword) || sourceEnvironment.includes(keyword)\n\t\t);\n\t\tif (sourceMatches) {\n\t\t\treturn true;\n\t\t}\n\n\t\tconst text = `${subject}\\n${body}`;\n\t\treturn MONGO_TEXT_PATTERNS.some(pattern => pattern.test(text));\n\t}\n\n\tprivate generateRawEmailHash(email: ErrorEmail): string {\n\t\treturn createHash('sha256').update(`${email.subject || ''}\\n${email.body || ''}`, 'utf8').digest('hex');\n\t}\n\n\tprivate generateIssueHash(email: ErrorEmail): string {\n\t\tconst subject = this.normalizeTextForHash(email.subject || '');\n\t\tconst body = this.normalizeBodyForHash(email.body || '');\n\t\treturn createHash('sha256').update(`${subject}\\n${body}`, 'utf8').digest('hex');\n\t}\n\n\tprivate normalizeTextForHash(value: string): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst normalized = value\n\t\t\t.replace(/\\r/g, '\\n')\n\t\t\t.toLowerCase()\n\t\t\t.replace(/0x[0-9a-f]+/gi, '0x#')\n\t\t\t.replace(/\\b[0-9a-f]{7,64}\\b/gi, '#')\n\t\t\t.replace(/\\b[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}(?:[ t][0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]{1,6})?)?\\b/g, '#datetime#')\n\t\t\t.replace(/\\b[0-9]{2}:[0-9]{2}:[0-9]{2}\\b/g, '#time#')\n\t\t\t.replace(/[0-9]+/g, '#')\n\t\t\t.replace(/[^\\S\\n]+/g, ' ')\n\t\t\t.split('\\n')\n\t\t\t.map(line => line.trim())\n\t\t\t.filter(Boolean)\n\t\t\t.slice(0, 60)\n\t\t\t.join('\\n');\n\n\t\treturn normalized.length > 4000 ? normalized.slice(0, 4000) : normalized;\n\t}\n\n\tprivate normalizeBodyForHash(body: string): string {\n\t\tif (!body) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst withoutStackNoise = body\n\t\t\t.replace(/=+\\s*stack trace\\s*=+/gi, 'stack trace')\n\t\t\t.replace(/-{3,}/g, '-')\n\t\t\t.replace(/\\[[^\\]]*request id[^\\]]*\\]/gi, '[request id]')\n\t\t\t.replace(/guid:[^\\s]+/gi, 'guid:#')\n\t\t\t.replace(/request id:[^\\s]+/gi, 'request id:#')\n\t\t\t.replace(/correlation id:[^\\s]+/gi, 'correlation id:#');\n\n\t\treturn this.normalizeTextForHash(withoutStackNoise);\n\t}\n\n\tprivate parseRepoTarget(env: string): RepoTarget {\n\t\tconst trimmed = (env || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst [owner, repo] = trimmed.split('/', 2);\n\t\tif (!owner || !repo) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\towner: owner.trim(),\n\t\t\trepo: repo.trim()\n\t\t};\n\t}\n\n\tprivate buildWorkBranch(hash: string): string {\n\t\tconst shortHash = (hash || '').toLowerCase().replace(/[^a-z0-9]/g, '').slice(0, 12) || 'autofix';\n\t\tconst prefix = (this.config.branchPrefix || 'openai/auto').trim();\n\t\tif (!prefix) {\n\t\t\treturn shortHash;\n\t\t}\n\n\t\tconst segments = prefix.split('/').map(segment => segment.trim()).filter(Boolean);\n\t\tconst sanitized = segments.map(segment => segment.replace(/[^a-zA-Z0-9._-]/g, '-'));\n\t\treturn `${sanitized.join('/')}/${shortHash}`;\n\t}\n\n\tprivate normalizeEmailText(value: string, limit = 20000): string {\n\t\tif (!value) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst cleaned = value.replace(/\\r/g, '');\n\t\tif (cleaned.length <= limit) {\n\t\t\treturn cleaned;\n\t\t}\n\n\t\treturn `${cleaned.slice(0, limit)}\\n... (truncated)`;\n\t}\n\n\tprivate buildContextMarkdown(email: ErrorEmail, identifier: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t`# OpenAI Error Context: ${identifier}`,\n\t\t\t'',\n\t\t\t`**Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\temail.source_type ? `**Classification**: ${email.source_type}${email.classification_reason ? ` (${email.classification_reason})` : ''}` : undefined,\n\t\t\temail.id_client ? `**Client Id**: ${email.id_client}` : undefined,\n\t\t\t'',\n\t\t\t'## Body',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'_Generated by ErrorAutoFixManager_'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate buildOpenAIComment(email: ErrorEmail, contextPath: string, normalizedBody: string): string {\n\t\tconst lines: string[] = [\n\t\t\t'@openai review',\n\t\t\t'',\n\t\t\t`**Email Subject**: ${email.subject || '(no subject)'}`,\n\t\t\temail.fromAddress ? `**From**: ${email.fromAddress}` : undefined,\n\t\t\temail.client_name ? `**Client**: ${email.client_name}` : undefined,\n\t\t\tcontextPath ? `Context file: \\`${contextPath}\\`` : undefined,\n\t\t\t'',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Please investigate this error and propose a minimal, safe fix.'\n\t\t];\n\n\t\treturn lines.filter(line => typeof line !== 'undefined').join('\\n');\n\t}\n\n\tprivate formatGithubError(error: any): string {\n\t\tif (!error) {\n\t\t\treturn 'GitHub request failed.';\n\t\t}\n\n\t\tconst status = error?.response?.status;\n\t\tconst message = error?.response?.data?.message || error?.message || 'GitHub request failed.';\n\n\t\tif (status) {\n\t\t\treturn `GitHub API error (${status}): ${message}`;\n\t\t}\n\n\t\treturn `GitHub API error: ${message}`;\n\t}\n\n\tprivate buildGithubAuthHeader(token?: string): string {\n\t\tconst trimmed = (token || '').trim();\n\t\tif (!trimmed) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (/^(token|Bearer)\\s+/i.test(trimmed)) {\n\t\t\treturn trimmed;\n\t\t}\n\n\t\tif (trimmed.includes('.') && !trimmed.startsWith('gh')) {\n\t\t\treturn `Bearer ${trimmed}`;\n\t\t}\n\n\t\treturn `token ${trimmed}`;\n\t}\n\n\tprivate async githubRequest<T>(config: AxiosRequestConfig, allow404 = false): Promise<T> {\n\t\tconst authHeader = this.buildGithubAuthHeader(this.config.githubToken);\n\t\tconst headers = {\n\t\t\t...(authHeader ? {Authorization: authHeader} : {}),\n\t\t\tAccept: 'application/vnd.github+json',\n\t\t\t'User-Agent': 'ResolveIO-AutoFix',\n\t\t\t'X-GitHub-Api-Version': '2022-11-28'\n\t\t};\n\n\t\tconst finalConfig: AxiosRequestConfig = {\n\t\t\t...config,\n\t\t\tbaseURL: this.githubApiBase,\n\t\t\theaders: {\n\t\t\t\t...headers,\n\t\t\t\t...(config.headers || {})\n\t\t\t},\n\t\t\ttimeout: Math.min(Math.max(this.config.commandTimeoutMs || 600000, 1000), 120000)\n\t\t};\n\n\t\ttry {\n\t\t\tconst response = await axios.request<T>(finalConfig);\n\t\t\treturn response.data;\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst status = err?.response?.status;\n\t\t\tif (allow404 && status === 404) {\n\t\t\t\treturn null as unknown as T;\n\t\t\t}\n\t\t\tthrow new Error(this.formatGithubError(err));\n\t\t}\n\t}\n\n\tprivate async resolveBaseBranch(target: RepoTarget): Promise<string> {\n\t\tconst fallback = (this.config.baseBranch || 'main').trim();\n\t\ttry {\n\t\t\tconst repo = await this.githubRequest<{default_branch?: string}>(\n\t\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}`}\n\t\t\t);\n\t\t\tconst defaultBranch = (repo?.default_branch || '').trim();\n\t\t\treturn defaultBranch || fallback;\n\t\t}\n\t\tcatch (err) {\n\t\t\tthis.debugLog('Failed to fetch default branch. Falling back to configured branch.', {\n\t\t\t\ttarget,\n\t\t\t\terror: err?.message\n\t\t\t});\n\t\t\treturn fallback;\n\t\t}\n\t}\n\n\tprivate async getBranchSha(target: RepoTarget, branch: string): Promise<string> {\n\t\tconst ref = await this.githubRequest<{object?: {sha?: string}}>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${branch}`}\n\t\t);\n\t\tconst sha = ref?.object?.sha;\n\t\tif (!sha) {\n\t\t\tthrow new Error(`Base branch ${branch} not found.`);\n\t\t}\n\t\treturn sha;\n\t}\n\n\tprivate async ensureBranch(target: RepoTarget, newBranch: string, baseBranch: string, baseSha: string): Promise<void> {\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{method: 'GET', url: `/repos/${target.owner}/${target.repo}/git/ref/heads/${newBranch}`},\n\t\t\ttrue\n\t\t);\n\t\tif (existing) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/git/refs`,\n\t\t\t\tdata: {\n\t\t\t\t\tref: `refs/heads/${newBranch}`,\n\t\t\t\t\tsha: baseSha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async upsertContextFile(target: RepoTarget, branch: string, contextPath: string, content: string): Promise<void> {\n\t\tconst encodedPath = encodeURIComponent(contextPath).replace(/%2F/g, '/');\n\t\tconst existing = await this.githubRequest<any>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tparams: {ref: branch}\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\t\tconst sha = existing && existing.sha ? existing.sha : undefined;\n\t\tconst commitMessage = `chore(openai): update error context ${contextPath}`;\n\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/contents/${encodedPath}`,\n\t\t\t\tdata: {\n\t\t\t\t\tmessage: commitMessage.slice(0, 200),\n\t\t\t\t\tcontent: Buffer.from(content, 'utf8').toString('base64'),\n\t\t\t\t\tbranch,\n\t\t\t\t\tsha\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate async findOpenPullRequest(target: RepoTarget, branch: string, base: string): Promise<GithubPullRequest> {\n\t\tconst prs = await this.githubRequest<GithubPullRequest[]>(\n\t\t\t{\n\t\t\t\tmethod: 'GET',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tparams: {\n\t\t\t\t\tstate: 'open',\n\t\t\t\t\thead: `${target.owner}:${branch}`,\n\t\t\t\t\tbase,\n\t\t\t\t\tper_page: 1\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tif (prs && prs.length) {\n\t\t\treturn prs[0];\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate async createPullRequest(target: RepoTarget, branch: string, base: string, title: string, body: string): Promise<GithubPullRequest> {\n\t\tconst pr = await this.githubRequest<GithubPullRequest>(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/pulls`,\n\t\t\t\tdata: {\n\t\t\t\t\ttitle,\n\t\t\t\t\thead: branch,\n\t\t\t\t\tbase,\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\treturn pr;\n\t}\n\n\tprivate async commentOnPullRequest(target: RepoTarget, prNumber: number, body: string): Promise<void> {\n\t\tawait this.githubRequest(\n\t\t\t{\n\t\t\t\tmethod: 'POST',\n\t\t\t\turl: `/repos/${target.owner}/${target.repo}/issues/${prNumber}/comments`,\n\t\t\t\tdata: {\n\t\t\t\t\tbody\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate parseBooleanEnv(envKey: string): boolean | null {\n\t\tif (typeof process.env[envKey] === 'undefined') {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn process.env[envKey] === 'true';\n\t}\n\n\tprivate async resolveAutoOptimizeEnabled(): Promise<boolean> {\n\t\tconst now = Date.now();\n\t\tif (this.appSettingsAutoOptimizeCacheValue !== null && now < this.appSettingsAutoOptimizeCacheExpiresAt) {\n\t\t\treturn this.appSettingsAutoOptimizeCacheValue;\n\t\t}\n\n\t\tconst envValue = this.parseBooleanEnv('AUTOFIX_AUTO_OPTIMIZE_ENABLED');\n\t\tlet enabled = envValue !== null ? envValue : !!this.config.autoOptimizeEnabled;\n\t\ttry {\n\t\t\tif (AppSettings && typeof AppSettings.findOne === 'function') {\n\t\t\t\tconst activeSetting = await AppSettings.findOne({\n\t\t\t\t\tis_active: {\n\t\t\t\t\t\t$ne: false\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\t\tcreatedAt: -1\n\t\t\t\t\t}\n\t\t\t\t}) || await AppSettings.findOne({}, {\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\t\tcreatedAt: -1\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (activeSetting && typeof activeSetting.enable_auto_fix === 'boolean') {\n\t\t\t\t\tenabled = !!activeSetting.enable_auto_fix;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (this.config?.debugLogging) {\n\t\t\t\tconsole.warn('ErrorAutoFixManager failed to read app settings auto-fix toggle', error);\n\t\t\t}\n\t\t}\n\n\t\tthis.appSettingsAutoOptimizeCacheValue = enabled;\n\t\tthis.appSettingsAutoOptimizeCacheExpiresAt = now + ErrorAutoFixManager.APP_SETTINGS_CACHE_TTL_MS;\n\t\treturn enabled;\n\t}\n\n\tprivate async reserveLog(email: ErrorEmail, client?: ClientModel, autoOptimizeEnabled = false): Promise<LogReservation> {\n\t\tconst hash = email.hash;\n\t\tconst rawHash = email.rawHash || hash;\n\t\tconst now = email.reportedAt || new Date();\n\n\t\tlet existing: ErrorAutoFixLogModel = null;\n\n\t\tif (hash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({issue_hash: hash});\n\t\t}\n\n\t\tif (!existing && rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: rawHash});\n\t\t}\n\n\t\tif (!existing && hash && hash !== rawHash) {\n\t\t\texisting = await ErrorAutoFixLogs.findOne({email_hash: hash});\n\t\t}\n\n\t\tif (existing) {\n\t\t\tawait this.markDuplicate(existing._id, now);\n\t\t\tconst updatedExisting = await ErrorAutoFixLogs.findOne({_id: existing._id}) || existing;\n\n\t\t\tconst metaUpdate: Partial<ErrorAutoFixLogModel> = {};\n\n\t\t\tif (hash && (!updatedExisting.issue_hash || updatedExisting.issue_hash !== hash)) {\n\t\t\t\tmetaUpdate.issue_hash = hash;\n\t\t\t}\n\n\t\t\tif (rawHash && (!updatedExisting.email_hash || updatedExisting.email_hash !== rawHash)) {\n\t\t\t\tmetaUpdate.email_hash = rawHash;\n\t\t\t}\n\n\t\t\tif (email.fromAddress && email.fromAddress !== updatedExisting.from_email) {\n\t\t\t\tmetaUpdate.from_email = email.fromAddress;\n\t\t\t}\n\n\t\t\tif (client) {\n\t\t\t\tif (!updatedExisting.id_client || updatedExisting.id_client !== client._id) {\n\t\t\t\t\tmetaUpdate.id_client = client._id;\n\t\t\t\t}\n\n\t\t\t\tif (!updatedExisting.client_name || updatedExisting.client_name !== client.name) {\n\t\t\t\t\tmetaUpdate.client_name = client.name;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (email.openai_environment && email.openai_environment !== updatedExisting.openai_environment) {\n\t\t\t\tmetaUpdate.openai_environment = email.openai_environment;\n\t\t\t}\n\n\t\t\tif (email.sourceApp && email.sourceApp !== updatedExisting.source_app) {\n\t\t\t\tmetaUpdate.source_app = email.sourceApp;\n\t\t\t}\n\n\t\t\tif (email.sourceEnvironment && email.sourceEnvironment !== updatedExisting.source_environment) {\n\t\t\t\tmetaUpdate.source_environment = email.sourceEnvironment;\n\t\t\t}\n\n\t\t\tif (email.severity && email.severity !== updatedExisting.severity) {\n\t\t\t\tmetaUpdate.severity = email.severity;\n\t\t\t}\n\n\t\t\tif (email.reportedBy && email.reportedBy !== updatedExisting.reported_by) {\n\t\t\t\tmetaUpdate.reported_by = email.reportedBy;\n\t\t\t}\n\n\t\t\tif (typeof email.reportMetadata !== 'undefined') {\n\t\t\t\tmetaUpdate.report_metadata = email.reportMetadata;\n\t\t\t}\n\n\t\t\tif (typeof email.reportContext !== 'undefined') {\n\t\t\t\tmetaUpdate.report_context = email.reportContext;\n\t\t\t}\n\n\t\t\tif (typeof email.attachments !== 'undefined') {\n\t\t\t\tmetaUpdate.attachments = email.attachments;\n\t\t\t}\n\n\t\t\tmetaUpdate.last_reported_at = now;\n\n\t\t\tif (Object.keys(metaUpdate).length) {\n\t\t\t\tawait this.updateLog(updatedExisting._id, metaUpdate);\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'completed') {\n\t\t\t\tconst reactivated = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'pending',\n\t\t\t\t\t\tignored: false,\n\t\t\t\t\t\tlast_error: '',\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t})) || updatedExisting;\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: reactivated\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.ignored) {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'ignored'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (autoOptimizeEnabled && (updatedExisting.status === 'failed' || updatedExisting.status === 'skipped') && !updatedExisting.ignored) {\n\t\t\t\tconst attemptsUsed = Number.isFinite(Number(updatedExisting.attempt_count))\n\t\t\t\t\t? Number(updatedExisting.attempt_count)\n\t\t\t\t\t: 0;\n\t\t\t\tconst maxAttempts = Number.isFinite(Number(this.config.maxAutoRunAttemptsPerIssue))\n\t\t\t\t\t? Number(this.config.maxAutoRunAttemptsPerIssue)\n\t\t\t\t\t: 0;\n\t\t\t\tif (maxAttempts > 0 && attemptsUsed >= maxAttempts) {\n\t\t\t\t\tconst reason = `Auto-fix attempt budget reached (${attemptsUsed}/${maxAttempts}).`;\n\t\t\t\t\tconst exhausted = (await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t\t$set: {\n\t\t\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\t\t\tignored: true,\n\t\t\t\t\t\t\tlast_error: `${reason} Marked ignored pending manual intervention.`,\n\t\t\t\t\t\t\tlast_result_at: now,\n\t\t\t\t\t\t\tupdatedAt: now\n\t\t\t\t\t\t}\n\t\t\t\t\t}, {\n\t\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t\t})) || updatedExisting;\n\n\t\t\t\t\tawait this.sendEscalationNotice(exhausted, reason);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tproceed: false,\n\t\t\t\t\t\tlog: exhausted,\n\t\t\t\t\t\treason: 'budget_exhausted'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst resumed = await ErrorAutoFixLogs.findOneAndUpdate({_id: updatedExisting._id}, {\n\t\t\t\t\t$inc: {\n\t\t\t\t\t\tattempt_count: 1\n\t\t\t\t\t},\n\t\t\t\t\t$set: {\n\t\t\t\t\t\tstatus: 'in_progress',\n\t\t\t\t\t\tlast_attempt_at: now,\n\t\t\t\t\t\topenai_task_id: '',\n\t\t\t\t\t\tbranch_name: '',\n\t\t\t\t\t\tpr_url: '',\n\t\t\t\t\t\tlast_error: ''\n\t\t\t\t\t}\n\t\t\t\t}, {\n\t\t\t\t\treturnDocument: 'after'\n\t\t\t\t});\n\n\t\t\t\treturn {\n\t\t\t\t\tproceed: true,\n\t\t\t\t\tlog: resumed || updatedExisting\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'in_progress') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'in_progress'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (updatedExisting.status === 'success') {\n\t\t\t\treturn {\n\t\t\t\t\tproceed: false,\n\t\t\t\t\tlog: updatedExisting,\n\t\t\t\t\treason: 'success'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tproceed: false,\n\t\t\t\tlog: updatedExisting,\n\t\t\t\treason: 'duplicate'\n\t\t\t};\n\t\t}\n\n\t\tconst counterValue = await ResolveIOServer.getMainServer().getMethodManager().callMethod('incCounter', 'autofix_error');\n\t\tconst counterString = pad(counterValue, 6);\n\n\t\tconst doc: ErrorAutoFixLogModel = {\n\t\t\t_id: objectIdHexString(),\n\t\t\temail_hash: rawHash,\n\t\t\tissue_hash: hash,\n\t\t\tsubject: email.subject,\n\t\t\tmessage_id: email.messageId,\n\t\t\tbody: email.body,\n\t\t\tstatus: autoOptimizeEnabled ? 'in_progress' : 'pending',\n\t\t\tignored: false,\n\t\t\tattempt_count: autoOptimizeEnabled ? 1 : 0,\n\t\t\tduplicate_count: 0,\n\t\t\tautofix_error_count: counterValue,\n\t\t\tautofix_error_count_string: counterString,\n\t\t\tfirst_seen_at: now,\n\t\t\tlast_attempt_at: autoOptimizeEnabled ? now : undefined,\n\t\t\tfrom_email: email.fromAddress || '',\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\topenai_environment: email.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress || '',\n\t\t\tlast_reported_at: now,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments\n\t\t};\n\n\t\tawait ErrorAutoFixLogs.insertOne(doc as any);\n\n\t\treturn {\n\t\t\tproceed: true,\n\t\t\tlog: doc\n\t\t};\n\t}\n\n\tprivate async markDuplicate(logId: string, timestamp: Date): Promise<void> {\n\t\tawait ErrorAutoFixLogs.updateOne({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tduplicate_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tlast_duplicate_at: timestamp,\n\t\t\t\tlast_reported_at: timestamp,\n\t\t\t\tupdatedAt: timestamp\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate async updateLog(logId: string, set: Partial<ErrorAutoFixLogModel>, inc?: {[key: string]: number}): Promise<ErrorAutoFixLogModel> {\n\t\tconst cleanedSet: {[key: string]: any} = {};\n\t\tconst rawSet: {[key: string]: any} = set ? {...set} : {};\n\n\t\tObject.keys(rawSet).forEach(key => {\n\t\t\tif (typeof rawSet[key] !== 'undefined') {\n\t\t\t\tcleanedSet[key] = rawSet[key];\n\t\t\t}\n\t\t});\n\n\t\tcleanedSet.updatedAt = new Date();\n\n\t\tconst update: any = {\n\t\t\t$set: cleanedSet\n\t\t};\n\n\t\tif (inc) {\n\t\t\tupdate.$inc = inc;\n\t\t}\n\n\t\tconst result = await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, update, {\n\t\t\treturnDocument: 'after'\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tprivate getEscalationRecipients(): string[] {\n\t\tconst unique = new Set<string>();\n\t\tconst add = (value: string) => {\n\t\t\tconst normalized = String(value || '').trim().toLowerCase();\n\t\t\tif (!normalized) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tunique.add(normalized);\n\t\t};\n\n\t\t(this.config.escalationEmails || []).forEach(add);\n\t\t(this.config.notifyEmails || []).forEach(add);\n\t\tif (!unique.size) {\n\t\t\tadd(DEFAULT_ERROR_ALERT_EMAIL);\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async sendEscalationNotice(log: ErrorAutoFixLogModel, reason: string): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Escalation: ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix retry budget was exhausted for this recurring issue and further autonomous attempts were stopped.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Attempts: ${log.attempt_count || 0}/${this.config.maxAutoRunAttemptsPerIssue}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'The issue is now marked ignored for auto-fix to protect customer token usage. Manual intervention is required.'\n\t\t].join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending auto-fix escalation email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate collectLibraryIssueSignalText(email: ErrorEmail, log: ErrorAutoFixLogModel): string {\n\t\tconst attachments = Array.isArray(log?.attachments) ? log.attachments : [];\n\t\tconst attachmentSignals = attachments.map((attachment) => {\n\t\t\treturn [\n\t\t\t\tattachment?.name || '',\n\t\t\t\tattachment?.url || '',\n\t\t\t\tattachment?.contentType || ''\n\t\t\t].filter(Boolean).join(' ');\n\t\t});\n\t\tconst metadata = log?.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata)\n\t\t\t: '';\n\t\tconst context = log?.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context)\n\t\t\t: '';\n\t\treturn [\n\t\t\temail?.subject || '',\n\t\t\temail?.body || '',\n\t\t\tlog?.body || '',\n\t\t\tmetadata,\n\t\t\tcontext,\n\t\t\tattachmentSignals.join('\\n')\n\t\t].filter(Boolean).join('\\n');\n\t}\n\n\tprivate evaluateLibraryIssueGate(email: ErrorEmail, log: ErrorAutoFixLogModel): LibraryIssueGateDecision {\n\t\tconst signalText = this.collectLibraryIssueSignalText(email, log);\n\t\tif (!signalText) {\n\t\t\treturn {blocked: false, evidence: []};\n\t\t}\n\n\t\tconst evidence: string[] = [];\n\t\tlet markerHits = 0;\n\t\tfor (const marker of LIBRARY_MARKER_PATTERNS) {\n\t\t\tif (!marker.pattern.test(signalText)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tmarkerHits += 1;\n\t\t\tevidence.push(marker.label);\n\t\t}\n\n\t\tconst rawPaths = signalText.match(FILE_PATH_PATTERN) || [];\n\t\tconst normalizedPaths = rawPaths\n\t\t\t.map((value) => String(value || '').trim())\n\t\t\t.filter(Boolean)\n\t\t\t.map((value) => value.replace(/\\\\/g, '/').toLowerCase());\n\t\tconst appOwnedPathCount = normalizedPaths.filter((value) => APP_OWNED_PATH_PATTERN.test(value)).length;\n\t\tconst libraryPathCount = normalizedPaths.filter((value) => {\n\t\t\treturn value.includes('/node_modules/')\n\t\t\t\t|| value.includes('@resolveio/client-lib')\n\t\t\t\t|| value.includes('@resolveio/server-lib')\n\t\t\t\t|| value.includes('/resolveio-client-lib/')\n\t\t\t\t|| value.includes('/resolveio-server-lib/')\n\t\t\t\t|| value.includes('/aicoder/templates/base_');\n\t\t}).length;\n\n\t\tconst shouldBlock = (libraryPathCount > 0 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 2 && appOwnedPathCount === 0)\n\t\t\t|| (markerHits >= 1 && libraryPathCount >= 2);\n\t\tif (!shouldBlock) {\n\t\t\treturn {blocked: false, evidence};\n\t\t}\n\n\t\tconst compactEvidence = Array.from(new Set([\n\t\t\t...evidence,\n\t\t\t...(libraryPathCount ? [`library_paths=${libraryPathCount}`] : []),\n\t\t\t...(appOwnedPathCount ? [`app_paths=${appOwnedPathCount}`] : [])\n\t\t])).slice(0, 8);\n\t\treturn {\n\t\t\tblocked: true,\n\t\t\treason: 'Root cause appears to be in shared ResolveIO libraries/templates; app-level auto-fix was blocked.',\n\t\t\tevidence: compactEvidence\n\t\t};\n\t}\n\n\tprivate async sendLibraryIssueNotice(log: ErrorAutoFixLogModel, reason: string, evidence: string[]): Promise<void> {\n\t\tconst recipients = this.getEscalationRecipients();\n\t\tif (!recipients.length || !log?._id) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst identifier = log.autofix_error_count_string || log._id;\n\t\tconst subject = `ResolveIO AutoFix Blocked (Library): ${identifier}`;\n\t\tconst body = [\n\t\t\t'Auto-fix was blocked because the issue appears library-owned, so no autonomous patch was attempted.',\n\t\t\t'',\n\t\t\t`Reason: ${reason}`,\n\t\t\tevidence.length ? `Evidence: ${evidence.join(', ')}` : '',\n\t\t\t`Issue Log ID: ${log._id}`,\n\t\t\t`Issue Counter: ${log.autofix_error_count_string || 'n/a'}`,\n\t\t\t`Client: ${log.client_name || log.id_client || 'unknown'}`,\n\t\t\t`Source App: ${log.source_app || 'unknown'}`,\n\t\t\t`Environment: ${log.source_environment || log.openai_environment || 'unknown'}`,\n\t\t\t`Issue Hash: ${log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Manual library release/fix is required. App-level auto-fix remains blocked for this issue to protect credits.'\n\t\t].filter(Boolean).join('\\n');\n\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\tfor (const recipient of recipients) {\n\t\t\ttry {\n\t\t\t\tawait methodManager.sendEmail(recipient, subject, body);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed sending library-issue auto-fix email', {recipient, logId: log._id, error});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async blockLibraryOwnedIssue(email: ErrorEmail, log: ErrorAutoFixLogModel, gate: LibraryIssueGateDecision): Promise<AutoFixResult> {\n\t\tconst reason = gate.reason || 'Library-owned issue detected.';\n\t\tconst details = gate.evidence.length ? `Signals: ${gate.evidence.join(', ')}` : '';\n\t\tconst message = [reason, details].filter(Boolean).join(' ');\n\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\tstatus: 'skipped',\n\t\t\tignored: true,\n\t\t\tlast_error: message,\n\t\t\tlast_result_at: new Date()\n\t\t})) || log;\n\t\tawait this.notifyCustomerWorkflowStatus('blocked_library_issue', email, updated, {\n\t\t\terror: reason,\n\t\t\tnotes: details\n\t\t});\n\t\tawait this.sendLibraryIssueNotice(updated, reason, gate.evidence);\n\t\treturn {\n\t\t\tstatus: 'skipped',\n\t\t\temail,\n\t\t\terror: message,\n\t\t\tlog: updated,\n\t\t\treason: 'library_issue_blocked',\n\t\t\tsummary: updated.plan_summary || email.subject,\n\t\t\tnotes: details\n\t\t};\n\t}\n\n\tprivate shouldNotifySkip(reason: string): boolean {\n\t\treturn ['in_progress', 'success', 'ignored', 'duplicate', 'pending'].indexOf(reason) === -1;\n\t}\n\n\tprivate async isGeneratedAICoderClient(idClient: string): Promise<boolean> {\n\t\tconst normalizedClientId = String(idClient || '').trim();\n\t\tif (!normalizedClientId) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst match = await AICoderApps.findOne({\n\t\t\tclient_id: normalizedClientId\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t}\n\t\t});\n\n\t\treturn !!match?._id;\n\t}\n\n\tprivate buildAICoderWorkflowSummary(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildGeneratedAppAutoFixSummary(stage, {\n\t\t\tsource_app: String(log?.source_app || email?.sourceApp || '').trim(),\n\t\t\tenvironment: String(log?.source_environment || email?.sourceEnvironment || '').trim(),\n\t\t\tseverity: String(log?.severity || email?.severity || '').trim(),\n\t\t\terror: extra?.error\n\t\t}, extra);\n\t}\n\n\tprivate buildResolveIOProjectWorkflowDetails(\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): string {\n\t\treturn buildResolveIOProjectAutoFixDetails({\n\t\t\tclient_name: log?.client_name || email?.client_name || '',\n\t\t\tissue_counter: log?.autofix_error_count_string || '',\n\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\tenvironment: log?.source_environment || email?.sourceEnvironment || log?.openai_environment || '',\n\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\tissue_hash: log?.issue_hash || email?.issueHash || log?.email_hash || '',\n\t\t\tlog_id: log?._id || '',\n\t\t\tnotes: extra?.notes,\n\t\t\terror: extra?.error\n\t\t});\n\t}\n\n\tprivate buildLocalInternalUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$and: [\n\t\t\t\t{\n\t\t\t\t\tis_customer: {\n\t\t\t\t\t\t$ne: true\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t$nor: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'other.id_customer': {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tid_customer: {\n\t\t\t\t\t\t\t\t$exists: true,\n\t\t\t\t\t\t\t\t$nin: ['', null]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate buildLocalAdminUserCriteria(): Record<string, any> {\n\t\treturn {\n\t\t\t$or: [\n\t\t\t\t{\n\t\t\t\t\t'roles.super_admin': true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.name': {\n\t\t\t\t\t\t$regex: 'admin',\n\t\t\t\t\t\t$options: 'i'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': {\n\t\t\t\t\t\t$regex: '^/manage'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t'roles.groups.views': '/manage'\n\t\t\t\t}\n\t\t\t]\n\t\t};\n\t}\n\n\tprivate async resolveLocalNotificationUserIds(isGeneratedApp: boolean): Promise<string[]> {\n\t\tconst andClauses: Record<string, any>[] = [\n\t\t\t{\n\t\t\t\tactive: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tusername: {\n\t\t\t\t\t$exists: true\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\tif (isGeneratedApp) {\n\t\t\tandClauses.push(this.buildLocalInternalUserCriteria());\n\t\t}\n\t\telse {\n\t\t\tandClauses.push(this.buildLocalAdminUserCriteria());\n\t\t}\n\n\t\tconst users = await Users.find({\n\t\t\t$and: andClauses\n\t\t}, {\n\t\t\tprojection: {\n\t\t\t\t_id: 1\n\t\t\t},\n\t\t\tlimit: MAX_LOCAL_NOTIFICATION_USERS\n\t\t});\n\n\t\tif (!Array.isArray(users) || !users.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst unique = new Set<string>();\n\t\tfor (const user of users) {\n\t\t\tconst idUser = String(user?._id || '').trim();\n\t\t\tif (idUser) {\n\t\t\t\tunique.add(idUser);\n\t\t\t}\n\t\t\tif (unique.size >= MAX_LOCAL_NOTIFICATION_USERS) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Array.from(unique);\n\t}\n\n\tprivate async notifyCustomerWorkflowStatus(\n\t\tstage: 'detected_autofix_enabled' | 'detected_autofix_disabled' | 'completed_success' | 'completed_failed' | 'blocked_library_issue',\n\t\temail: ErrorEmail,\n\t\tlog: ErrorAutoFixLogModel,\n\t\textra?: { error?: string; notes?: string }\n\t): Promise<void> {\n\t\tconst idClient = String(log?.id_client || email?.id_client || '').trim();\n\t\tlet isGeneratedApp = false;\n\t\tif (idClient) {\n\t\t\tisGeneratedApp = await this.isGeneratedAICoderClient(idClient);\n\t\t}\n\t\telse {\n\t\t\tconst resolvedEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\t\tconst app = await this.resolveAutoFixApp(email, log, resolvedEnvironment);\n\t\t\tisGeneratedApp = !!app;\n\t\t}\n\n\t\tif (!isGeneratedApp && stage !== 'completed_success') {\n\t\t\treturn;\n\t\t}\n\n\t\tconst issueKey = String(log?.issue_hash || log?.email_hash || email?.issueHash || email?.hash || log?._id || '').trim();\n\t\tconst clientName = String(log?.client_name || email?.client_name || '').trim();\n\t\tconst targetPayload: Record<string, any> = {};\n\t\tif (idClient) {\n\t\t\ttargetPayload.target_type = isGeneratedApp ? 'client_internal' : 'client_admins';\n\t\t\ttargetPayload.id_client = idClient;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\t\telse {\n\t\t\tconst idUsers = await this.resolveLocalNotificationUserIds(isGeneratedApp);\n\t\t\tif (!idUsers.length) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttargetPayload.target_type = 'users';\n\t\t\ttargetPayload.id_users = idUsers;\n\t\t\ttargetPayload.client_name = clientName || undefined;\n\t\t}\n\n\t\tconst basePayload: Record<string, any> = {\n\t\t\t...targetPayload,\n\t\t\tcategory: 'autofix',\n\t\t\tsource: 'error-auto-fix',\n\t\t\tsource_id: String(log?._id || '').trim() || undefined,\n\t\t\tdedupe_key: issueKey ? `autofix:${issueKey}:${stage}` : `autofix:${String(log?._id || '').trim()}:${stage}`,\n\t\t\tmetadata: {\n\t\t\t\tissue_hash: log?.issue_hash || email?.issueHash || '',\n\t\t\t\tlog_id: log?._id || '',\n\t\t\t\tseverity: log?.severity || email?.severity || '',\n\t\t\t\tsource_app: log?.source_app || email?.sourceApp || '',\n\t\t\t\tsource_environment: log?.source_environment || email?.sourceEnvironment || '',\n\t\t\t\terror: extra?.error || '',\n\t\t\t\tnotes: extra?.notes || ''\n\t\t\t}\n\t\t};\n\n\t\tlet payload: Record<string, any> = {};\n\t\tif (isGeneratedApp) {\n\t\t\tif (stage === 'detected_autofix_enabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is in progress.',\n\t\t\t\t\tmessage: 'We detected an issue in your app and started an automatic fix workflow. We will notify you when it is complete.',\n\t\t\t\t\tseverity: 'info',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'detected_autofix_disabled') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue detected. Auto-fix is disabled.',\n\t\t\t\t\tmessage: 'We detected an issue, but automatic fixing is not enabled. Please ask the AI assistant to investigate this issue.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'completed_success') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix completed successfully.',\n\t\t\t\t\tmessage: 'Your issue was fixed automatically and the update was published.',\n\t\t\t\t\tseverity: 'success',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse if (stage === 'blocked_library_issue') {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Issue requires a platform library update.',\n\t\t\t\t\tmessage: 'We detected this issue in shared platform libraries, so app auto-fix was stopped. Our engineering team has been notified to ship a library-level fix.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t\telse {\n\t\t\t\tpayload = {\n\t\t\t\t\ttitle: 'Auto-fix needs manual review.',\n\t\t\t\t\tmessage: 'We could not complete an automatic fix for this issue. Manual follow-up is required.',\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tdetails: this.buildAICoderWorkflowSummary(stage, email, log, extra)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tpayload = {\n\t\t\t\ttitle: 'ResolveIO project auto-fix completed',\n\t\t\t\tmessage: `A fix for ${String(log?.source_app || email?.sourceApp || 'the project').trim()} completed successfully.`,\n\t\t\t\tseverity: 'success',\n\t\t\t\tdetails: this.buildResolveIOProjectWorkflowDetails(email, log, extra)\n\t\t\t};\n\t\t}\n\n\t\ttry {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().callMethod('createCustomerNotification', {\n\t\t\t\t...basePayload,\n\t\t\t\t...payload\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tthis.debugLog('Failed to create customer auto-fix notification', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\tstage,\n\t\t\t\terror: error?.message || error\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate async delay(ms: number): Promise<void> {\n\t\t// eslint-disable-next-line no-restricted-syntax\n\t\tawait new Promise(resolve => setTimeout(resolve, ms));\n\t}\n\n\tpublic async reportDevError(options: DevErrorReportOptions): Promise<void> {\n\t\tconst subject = (options?.subject || '').trim() || 'ResolveIO alert';\n\t\tconst body = options?.body || '';\n\t\tconst sourceApp = options?.sourceApp || ResolveIOServer.getClientName() || 'resolveio-server';\n\t\tconst environment = options?.environment || process.env.NODE_ENV || '';\n\t\tconst severity = options?.severity || 'infrastructure';\n\t\tconst fingerprint = (options?.fingerprint || createHash('sha256').update(`${sourceApp}:${environment || 'env'}:${subject}`).digest('hex')).trim();\n\t\tconst metadata = options?.metadata && Object.keys(options.metadata).length ? options.metadata : undefined;\n\n\t\tif (!this.isReady()) {\n\t\t\tconsole.warn('AutoFix manager not ready for dev alert', {subject, environment});\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tawait this.ingestErrorReport({\n\t\t\t\tsourceApp,\n\t\t\t\tenvironment,\n\t\t\t\tmessage: subject,\n\t\t\t\tstack: body,\n\t\t\t\tseverity,\n\t\t\t\tmetadata,\n\t\t\t\tfingerprint,\n\t\t\t\tidempotencyKey: options?.idempotencyKey,\n\t\t\t\tclientId: options?.clientId,\n\t\t\t\tclientName: options?.clientName,\n\t\t\t\tclientSlug: options?.clientSlug,\n\t\t\t\treportedBy: 'resolveio-server'\n\t\t\t});\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error('Failed to log developer alert', subject, err);\n\t\t}\n\t}\n\n\tpublic async ingestErrorReport(report: ErrorReportPayload): Promise<ErrorReportIngestResult> {\n\t\tif (!this.isReady()) {\n\t\t\tthrow new Error('ErrorAutoFixManager is not enabled.');\n\t\t}\n\n\t\tif (!report || !report.sourceApp || !report.message) {\n\t\t\tthrow new Error('Invalid error report payload.');\n\t\t}\n\n\t\tconst normalizedReport: ErrorReportPayload = {\n\t\t\t...report,\n\t\t\tmessage: (report.message || '').toString(),\n\t\t\tstack: report.stack ? report.stack.toString() : undefined,\n\t\t\tmetadata: report.metadata || undefined,\n\t\t\tcontext: report.context || undefined,\n\t\t\tattachments: Array.isArray(report.attachments) ? report.attachments : undefined,\n\t\t\treportedAt: report.reportedAt instanceof Date && !Number.isNaN(report.reportedAt.getTime()) ? report.reportedAt : new Date()\n\t\t};\n\n\t\tconst email = this.buildEmailFromReport(normalizedReport);\n\t\temail.reportedAt = normalizedReport.reportedAt;\n\t\temail.openai_environment = normalizedReport.clientRepo || email.openai_environment;\n\t\temail.fromAddress = this.extractEmailAddress(normalizedReport.clientEmail || normalizedReport.reportedBy || email.from || '');\n\t\tif (!email.fromAddress && normalizedReport.clientSlug) {\n\t\t\temail.fromAddress = `${normalizedReport.clientSlug}@errors.resolveio.com`;\n\t\t}\n\n\t\tconst rawHash = normalizedReport.idempotencyKey ? normalizedReport.idempotencyKey.trim() : '';\n\t\temail.rawHash = rawHash || this.generateRawEmailHash(email);\n\t\tconst fingerprint = normalizedReport.fingerprint ? normalizedReport.fingerprint.trim() : '';\n\t\tif (fingerprint) {\n\t\t\temail.issueHash = fingerprint;\n\t\t\temail.hash = fingerprint;\n\t\t}\n\t\telse {\n\t\t\temail.issueHash = this.generateIssueHash(email);\n\t\t\temail.hash = email.issueHash || email.rawHash;\n\t\t}\n\n\t\tconst client = await this.resolveClientForReport(normalizedReport);\n\t\tconst autoOptimizeEnabled = await this.resolveAutoOptimizeEnabled();\n\t\tconst reservation = await this.reserveLog(email, client, autoOptimizeEnabled);\n\n\t\tif (!reservation.proceed) {\n\t\t\tif (reservation.reason && this.shouldNotifySkip(reservation.reason)) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\treason: reservation.reason,\n\t\t\t\t\terror: `Skipped auto-fix (${reservation.reason}).`,\n\t\t\t\t\tlog: reservation.log\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: reservation.reason === 'duplicate' ? 'duplicate' : (reservation.reason as any) || 'skipped',\n\t\t\t\treason: reservation.reason,\n\t\t\t\tlog: reservation.log\n\t\t\t};\n\t\t}\n\n\t\temail.logId = reservation.log._id;\n\t\tconst classification = this.classifyEmail(email);\n\t\tawait this.updateLog(email.logId, {\n\t\t\tid_client: client?._id,\n\t\t\tclient_name: client?.name,\n\t\t\tfrom_email: email.fromAddress,\n\t\t\tsource_type: classification.source,\n\t\t\tclassification_reason: classification.reason || '',\n\t\t\topenai_environment: email.openai_environment || reservation.log.openai_environment || this.determineOpenAIEnvironment(client),\n\t\t\tsource_app: email.sourceApp,\n\t\t\tsource_environment: email.sourceEnvironment,\n\t\t\tseverity: email.severity,\n\t\t\treported_by: email.reportedBy || email.fromAddress,\n\t\t\treport_metadata: email.reportMetadata,\n\t\t\treport_context: email.reportContext,\n\t\t\tattachments: email.attachments,\n\t\t\tlast_reported_at: email.reportedAt || new Date()\n\t\t});\n\n\t\tif (classification.skip) {\n\t\t\tconst updated = await this.updateLog(email.logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: !!classification.markIgnored,\n\t\t\t\tlast_error: classification.reason || 'Ignored non-app alert',\n\t\t\t\tlast_result_at: new Date()\n\t\t\t});\n\n\t\t\tif (classification.notify) {\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'skipped',\n\t\t\t\t\temail,\n\t\t\t\t\terror: classification.reason,\n\t\t\t\t\tlog: updated,\n\t\t\t\t\treason: 'classified'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\treason: classification.reason,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\n\t\tif (!autoOptimizeEnabled) {\n\t\t\tconst queued = await this.updateLog(email.logId, {\n\t\t\t\tstatus: 'pending'\n\t\t\t});\n\t\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_disabled', email, queued || reservation.log);\n\n\t\t\treturn {\n\t\t\t\tstatus: 'queued',\n\t\t\t\tlog: queued\n\t\t\t};\n\t\t}\n\n\t\tawait this.notifyCustomerWorkflowStatus('detected_autofix_enabled', email, reservation.log);\n\t\tconst result = await this.processEmail(email, reservation.log);\n\t\tawait this.notify(result);\n\t\tconst finalLog = result.log || (await ErrorAutoFixLogs.findOne({_id: email.logId}));\n\t\treturn {\n\t\t\tstatus: result.status,\n\t\t\treason: result.reason,\n\t\t\tlog: finalLog || result.log\n\t\t};\n\t}\n\n\tpublic async runLog(logId: string): Promise<AutoFixResult> {\n\t\tif (!this.config.enabled) {\n\t\t\tthrow new Error('Auto-fix manager disabled.');\n\t\t}\n\n\t\tconst log = await ErrorAutoFixLogs.findOne({_id: logId});\n\t\tif (!log) {\n\t\t\tthrow new Error('Auto-fix log not found.');\n\t\t}\n\n\t\tif (log.ignored) {\n\t\t\tthrow new Error('Auto-fix log is ignored.');\n\t\t}\n\n\t\tif (log.status === 'in_progress') {\n\t\t\tthrow new Error('Auto-fix workflow already running.');\n\t\t}\n\n\t\tif (!log.body) {\n\t\t\tthrow new Error('Auto-fix log is missing email body.');\n\t\t}\n\n\t\tconst now = new Date();\n\t\tconst email = this.buildEmailFromLog(log);\n\t\tconst classification = this.classifyEmail(email);\n\t\tif (classification.skip && classification.markIgnored) {\n\t\t\tconst ignoredLog = await this.updateLog(logId, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tignored: true,\n\t\t\t\tlast_error: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlast_result_at: now\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\treason: 'classified',\n\t\t\t\terror: classification.reason || 'Mongo-origin error ignored for auto-fix',\n\t\t\t\tlog: ignoredLog\n\t\t\t};\n\t\t}\n\n\t\tconst inProgressLog = (await ErrorAutoFixLogs.findOneAndUpdate({_id: logId}, {\n\t\t\t$inc: {\n\t\t\t\tattempt_count: 1\n\t\t\t},\n\t\t\t$set: {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: now,\n\t\t\t\tlast_error: '',\n\t\t\t\tignored: false\n\t\t\t}\n\t\t}, {\n\t\t\treturnDocument: 'after'\n\t\t})) || log;\n\n\t\tconst result = await this.processEmail(email, inProgressLog);\n\t\tawait this.notify(result);\n\t\treturn result;\n\t}\n\n\tprivate buildEmailFromLog(log: ErrorAutoFixLogModel): ErrorEmail {\n\t\treturn {\n\t\t\tkey: log.message_id || log._id,\n\t\t\tsubject: log.subject,\n\t\t\tbody: log.body || '',\n\t\t\tmessageId: log.message_id,\n\t\t\thash: log.issue_hash || log.email_hash,\n\t\t\trawHash: log.email_hash,\n\t\t\tissueHash: log.issue_hash,\n\t\t\traw: log.body || '',\n\t\t\tid_client: log.id_client,\n\t\t\tclient_name: log.client_name,\n\t\t\tfromAddress: log.from_email,\n\t\t\tsource_type: log.source_type || 'app',\n\t\t\tclassification_reason: log.classification_reason,\n\t\t\topenai_environment: log.openai_environment,\n\t\t\tsourceApp: log.source_app,\n\t\t\tsourceEnvironment: log.source_environment,\n\t\t\tseverity: log.severity,\n\t\t\treportedBy: log.reported_by,\n\t\t\treportMetadata: log.report_metadata,\n\t\t\treportContext: log.report_context,\n\t\t\tattachments: log.attachments,\n\t\t\treportedAt: log.last_reported_at\n\t\t};\n\t}\n\n\tprivate async processEmail(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst libraryIssueGate = this.evaluateLibraryIssueGate(email, log);\n\t\tif (libraryIssueGate.blocked) {\n\t\t\treturn await this.blockLibraryOwnedIssue(email, log, libraryIssueGate);\n\t\t}\n\n\t\tif (this.config.dashboardWorkflowEnabled) {\n\t\t\tconst dashboardResult = await this.dispatchDashboardWorkflow(email, log);\n\t\t\tif (dashboardResult.status === 'in_progress' || dashboardResult.status === 'success') {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\t\t\tif (!this.config.dashboardFallbackToGithub) {\n\t\t\t\treturn dashboardResult;\n\t\t\t}\n\n\t\t\tthis.debugLog('Dashboard workflow unavailable; falling back to GitHub workflow.', {\n\t\t\t\tlogId: log?._id,\n\t\t\t\treason: dashboardResult.reason,\n\t\t\t\terror: dashboardResult.error\n\t\t\t});\n\t\t}\n\n\t\treturn await this.dispatchGithubWorkflow(email, log);\n\t}\n\n\tprivate shouldFallbackDashboardMethod(error: any): boolean {\n\t\tconst message = `${error?.message || ''}`.toLowerCase();\n\t\treturn message.includes('not found')\n\t\t\t|| message.includes('worker dispatch unavailable')\n\t\t\t|| message.includes('no worker')\n\t\t\t|| message.includes('unavailable for aidashboard');\n\t}\n\n\tprivate async createDashboardJob(payload: Record<string, any>): Promise<AIDashboardJob> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\treturn await methodManager.callMethod('aiDashboardCreateJob', payload);\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn await manager.createJob(payload);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async waitForDashboardJobStop(jobId: string, timeoutMs: number): Promise<void> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tawait methodManager.callMethod('aiDashboardWaitForJobStop', jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\tawait manager.waitForJobStop(jobId, timeoutMs);\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async isDashboardJobRunning(jobId: string): Promise<boolean> {\n\t\tconst methodManager = ResolveIOServer.getMainServer().getMethodManager();\n\t\ttry {\n\t\t\tconst running = await methodManager.callMethod('aiDashboardIsJobRunning', jobId);\n\t\t\treturn !!running;\n\t\t}\n\t\tcatch (error) {\n\t\t\tif (!this.shouldFallbackDashboardMethod(error)) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\n\t\tconst manager: any = ResolveIOServer['AIDashboardManager'];\n\t\tif (manager && manager.isEnabled && manager.isEnabled()) {\n\t\t\treturn !!manager.isJobRunning(jobId);\n\t\t}\n\n\t\tthrow new Error('AI Dashboard manager is not available.');\n\t}\n\n\tprivate async resolveAutoFixApp(email: ErrorEmail, log: ErrorAutoFixLogModel, resolvedEnvironment: string): Promise<AICoderAppModel | null> {\n\t\tconst clientId = (email.id_client || log.id_client || '').trim();\n\t\tif (clientId) {\n\t\t\tconst byClientId = await AICoderApps.findOne({client_id: clientId}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClientId) {\n\t\t\t\treturn byClientId;\n\t\t\t}\n\t\t}\n\n\t\tconst lookupClientCandidates = [\n\t\t\t(email.client_name || '').trim(),\n\t\t\t(log.client_name || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of lookupClientCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst clientDoc = await Clients.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{demo_name: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{repo: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t});\n\t\t\tif (!clientDoc?._id) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst byClient = await AICoderApps.findOne({client_id: clientDoc._id}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byClient) {\n\t\t\t\treturn byClient;\n\t\t\t}\n\t\t}\n\n\t\tconst environmentRepo = (resolvedEnvironment || '').trim();\n\t\tif (environmentRepo) {\n\t\t\tconst escapedRepo = this.escapeRegex(environmentRepo);\n\t\t\tconst byRepo = await AICoderApps.findOne({\n\t\t\t\trepo: {\n\t\t\t\t\t$regex: `^${escapedRepo}$`,\n\t\t\t\t\t$options: 'i'\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (byRepo) {\n\t\t\t\treturn byRepo;\n\t\t\t}\n\t\t}\n\n\t\tconst appNameCandidates = [\n\t\t\t(email.sourceApp || '').trim(),\n\t\t\t(log.source_app || '').trim()\n\t\t].filter(Boolean);\n\t\tfor (const candidate of appNameCandidates) {\n\t\t\tconst escaped = this.escapeRegex(candidate);\n\t\t\tconst bySlugOrName = await AICoderApps.findOne({\n\t\t\t\t$or: [\n\t\t\t\t\t{slug: {$regex: `^${escaped}$`, $options: 'i'}},\n\t\t\t\t\t{name: {$regex: `^${escaped}$`, $options: 'i'}}\n\t\t\t\t]\n\t\t\t}, {\n\t\t\t\tsort: {\n\t\t\t\t\tupdatedAt: -1,\n\t\t\t\t\tcreatedAt: -1\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (bySlugOrName) {\n\t\t\t\treturn bySlugOrName;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate buildDashboardAutoFixTitle(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst identifier = log.autofix_error_count_string || (log._id || '').slice(-6) || 'error';\n\t\tconst source = (email.sourceApp || log.source_app || app?.name || 'application').trim();\n\t\treturn `Auto-fix ${identifier}: ${source}`;\n\t}\n\n\tprivate buildDashboardAutoFixDescription(email: ErrorEmail, log: ErrorAutoFixLogModel, app: AICoderAppModel): string {\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || log.body || '', 15000);\n\t\tconst metadata = log.report_metadata && Object.keys(log.report_metadata).length\n\t\t\t? JSON.stringify(log.report_metadata, null, 2)\n\t\t\t: '';\n\t\tconst context = log.report_context && Object.keys(log.report_context).length\n\t\t\t? JSON.stringify(log.report_context, null, 2)\n\t\t\t: '';\n\t\tconst attachments = Array.isArray(log.attachments) ? log.attachments : [];\n\t\tconst attachmentLines = attachments.length\n\t\t\t? attachments.map(att => `- ${(att?.name || 'attachment').trim()} ${att?.url ? `(${att.url})` : ''}`.trim()).join('\\n')\n\t\t\t: '(none)';\n\t\tconst lines: string[] = [\n\t\t\t'Autonomous production error remediation request.',\n\t\t\t'',\n\t\t\t'Hard requirements:',\n\t\t\t'1. Before changing code, query the project MongoDB diagnostics logs for the latest context.',\n\t\t\t'2. Query `error-autofix-logs` using `_id`, `issue_hash`, and `email_hash` from this task, then use the newest matching records.',\n\t\t\t'3. If a previous dashboard job id is provided, query `ai-development-jobs` by that `_id` and review recent failure logs before retrying.',\n\t\t\t'4. Treat `.dashboard-output/build-*.log` as primary build evidence, and `.build-output/build-*.log` as retained history when diagnosing failures.',\n\t\t\t'5. Reproduce and fix the reported issue with the smallest safe code change.',\n\t\t\t'6. Keep query/result behavior backward compatible unless explicitly required by the bug fix.',\n\t\t\t'7. Run project build checks and continue iterating until the build is green.',\n\t\t\t'8. Ensure there are no new lint/type/runtime regressions introduced by the fix.',\n\t\t\t'9. Finish by publishing the passing fix to the default branch and deploying artifacts.',\n\t\t\t'',\n\t\t\t`App: ${app?.name || app?._id || 'unknown'}`,\n\t\t\t`Repo: ${app?.repo || 'unknown'}`,\n\t\t\t`Environment: ${email.sourceEnvironment || log.source_environment || 'unknown'}`,\n\t\t\t`Severity: ${email.severity || log.severity || 'error'}`,\n\t\t\t`Fingerprint: ${email.issueHash || log.issue_hash || log.email_hash || 'n/a'}`,\n\t\t\t`Error Log Id: ${String(log?._id || '').trim() || 'n/a'}`,\n\t\t\t`Previous Dashboard Job Id: ${String(log?.openai_task_id || '').trim() || 'n/a'}`,\n\t\t\t'',\n\t\t\t'Reported error payload:',\n\t\t\t'```',\n\t\t\tnormalizedBody || '(empty error body)',\n\t\t\t'```',\n\t\t\t'',\n\t\t\t'Attachments:',\n\t\t\tattachmentLines\n\t\t];\n\t\tif (metadata) {\n\t\t\tlines.push('', 'Metadata JSON:', '```json', metadata, '```');\n\t\t}\n\t\tif (context) {\n\t\t\tlines.push('', 'Context JSON:', '```json', context, '```');\n\t\t}\n\t\treturn lines.join('\\n');\n\t}\n\n\tprivate evaluateDashboardPublishOutcome(job: AIDashboardJob): { success: boolean; branchName?: string; message: string } {\n\t\tconst logEntries = Array.isArray(job?.log) ? job.log : [];\n\t\tconst lastMatch = (predicate): string => {\n\t\t\tfor (let i = logEntries.length - 1; i >= 0; i -= 1) {\n\t\t\t\tif (predicate(logEntries[i] || '')) {\n\t\t\t\t\treturn logEntries[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t};\n\n\t\tconst failureEntry = lastMatch(entry => /publish failed|artifact publish failed|deploy failed/i.test(entry || ''));\n\t\tif (failureEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\tmessage: failureEntry\n\t\t\t};\n\t\t}\n\n\t\tconst publishEntry = lastMatch(entry => /Published build to /i.test(entry || ''));\n\t\tif (publishEntry) {\n\t\t\tconst branchMatch = publishEntry.match(/\\(([^()]+)\\)\\.?$/);\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tbranchName: (branchMatch && branchMatch[1]) ? branchMatch[1].trim() : undefined,\n\t\t\t\tmessage: publishEntry\n\t\t\t};\n\t\t}\n\n\t\tconst skippedEntry = lastMatch(entry => /Publish skipped/i.test(entry || ''));\n\t\tif (skippedEntry) {\n\t\t\treturn {\n\t\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\t\tmessage: skippedEntry\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: !this.config.dashboardPublishRequired,\n\t\t\tmessage: 'Dashboard job completed without a publish confirmation log entry.'\n\t\t};\n\t}\n\n\tprivate queueDashboardMonitor(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): void {\n\t\tconst logId = (log?._id || '').trim();\n\t\tconst normalizedJobId = (jobId || '').trim();\n\t\tif (!logId || !normalizedJobId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.dashboardMonitors.has(logId)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst monitor = (async () => {\n\t\t\ttry {\n\t\t\t\tawait this.monitorDashboardAutoFixJob(log, email, normalizedJobId, effectiveEnvironment);\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Auto-fix dashboard monitor failed', {logId, jobId: normalizedJobId, error});\n\t\t\t}\n\t\t\tfinally {\n\t\t\t\tthis.dashboardMonitors.delete(logId);\n\t\t\t}\n\t\t})();\n\n\t\tthis.dashboardMonitors.set(logId, monitor);\n\t}\n\n\tprivate async monitorDashboardAutoFixJob(log: ErrorAutoFixLogModel, email: ErrorEmail, jobId: string, effectiveEnvironment: string): Promise<void> {\n\t\tconst logId = (log?._id || '').trim();\n\t\tif (!logId) {\n\t\t\treturn;\n\t\t}\n\n\t\t\tconst fail = async (message: string): Promise<void> => {\n\t\t\t\tconst failedLog = (await this.updateLog(logId, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\topenai_task_id: jobId,\n\t\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t\t})) || log;\n\t\t\t\tawait this.notifyCustomerWorkflowStatus('completed_failed', email, failedLog, {error: message});\n\t\t\t\tawait this.notify({\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: failedLog,\n\t\t\t\tsummary: failedLog.plan_summary || email.subject\n\t\t\t});\n\t\t};\n\n\t\ttry {\n\t\t\tawait this.waitForDashboardJobStop(jobId, this.config.dashboardWaitTimeoutMs);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Failed while waiting for dashboard job completion.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tlet isRunning = false;\n\t\ttry {\n\t\t\tisRunning = await this.isDashboardJobRunning(jobId);\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to confirm dashboard job completion state.';\n\t\t\tawait fail(message);\n\t\t\treturn;\n\t\t}\n\n\t\tif (isRunning) {\n\t\t\tawait fail(`Dashboard job ${jobId} timed out before completion.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst job = await AIDashboardJobs.findOne({_id: jobId}) as AIDashboardJob | null;\n\t\tif (!job) {\n\t\t\tawait fail(`Dashboard job ${jobId} not found.`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (job.phase !== 'COMPLETE' || job.paused) {\n\t\t\tawait fail(`Dashboard job ${jobId} ended in phase ${job.phase || 'unknown'}${job.paused ? ' (paused)' : ''}.`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst publishOutcome = this.evaluateDashboardPublishOutcome(job);\n\t\tif (!publishOutcome.success) {\n\t\t\tawait fail(publishOutcome.message);\n\t\t\treturn;\n\t\t}\n\n\t\tconst fallbackBranch = (String(this._serverConfig?.['GITHUB_DEFAULT_BRANCH'] || process.env.GITHUB_DEFAULT_BRANCH || 'main').trim() || 'main');\n\t\tconst branchName = publishOutcome.branchName || fallbackBranch;\n\t\t\tconst successLog = (await this.updateLog(logId, {\n\t\t\t\tstatus: 'success',\n\t\t\tbranch_name: branchName,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\tlast_result_at: new Date(),\n\t\t\topenai_task_id: jobId,\n\t\t\t\topenai_environment: effectiveEnvironment\n\t\t\t})) || log;\n\t\t\tawait this.notifyCustomerWorkflowStatus('completed_success', email, successLog, {notes: publishOutcome.message});\n\n\t\t\tawait this.notify({\n\t\t\t\tstatus: 'success',\n\t\t\temail,\n\t\t\tbranchName,\n\t\t\tlog: successLog,\n\t\t\tsummary: successLog.plan_summary || email.subject,\n\t\t\tnotes: publishOutcome.message\n\t\t});\n\t}\n\n\tprivate async dispatchDashboardWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst fail = async (\n\t\t\tstatus: 'failed' | 'skipped',\n\t\t\treason: string,\n\t\t\tmessage: string\n\t\t): Promise<AutoFixResult> => {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus,\n\t\t\t\tlast_error: message,\n\t\t\t\tlast_result_at: new Date()\n\t\t\t})) || log;\n\t\t\treturn {\n\t\t\t\tstatus,\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated,\n\t\t\t\treason\n\t\t\t};\n\t\t};\n\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst app = await this.resolveAutoFixApp(email, log, openaiEnvironment);\n\t\tif (!app?._id) {\n\t\t\treturn await fail('skipped', 'dashboard_app_not_found', 'No AI Coder app found for this error log.');\n\t\t}\n\n\t\tconst repo = (app.repo || '').trim();\n\t\tif (!repo) {\n\t\t\treturn await fail('skipped', 'dashboard_repo_missing', 'Resolved AI Coder app is missing repo configuration.');\n\t\t}\n\n\t\tconst effectiveEnvironment = repo;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst title = this.buildDashboardAutoFixTitle(email, log, app);\n\t\tconst description = this.buildDashboardAutoFixDescription(email, log, app);\n\n\t\tlet job: AIDashboardJob;\n\t\ttry {\n\t\t\tjob = await this.createDashboardJob({\n\t\t\t\tproject: app._id,\n\t\t\t\ttitle,\n\t\t\t\tdescription,\n\t\t\t\trepo,\n\t\t\t\tpath: app.git_local_path || undefined,\n\t\t\t\tprojectRoot: app.project_root || undefined\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = error?.message || 'Unable to enqueue dashboard auto-fix job.';\n\t\t\treturn await fail('failed', 'dashboard_job_create_failed', message);\n\t\t}\n\n\t\tconst jobId = (job?._id || '').trim();\n\t\tif (!jobId) {\n\t\t\treturn await fail('failed', 'dashboard_job_missing_id', 'Dashboard job created without an id.');\n\t\t}\n\n\t\t\tconst queuedLog = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'in_progress',\n\t\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: '',\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnvironment,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash,\n\t\t\topenai_task_id: jobId,\n\t\t\tplan_summary: title,\n\t\t\t\tplan_body: description\n\t\t\t})) || log;\n\t\t\tthis.queueDashboardMonitor(queuedLog, email, jobId, effectiveEnvironment);\n\n\t\t\treturn {\n\t\t\tstatus: 'in_progress',\n\t\t\temail,\n\t\t\tlog: queuedLog,\n\t\t\treason: 'dashboard_job_queued',\n\t\t\tsummary: title,\n\t\t\tnotes: `Dashboard job ${jobId} queued for autonomous build/fix/publish/deploy.`\n\t\t};\n\t}\n\n\tprivate async dispatchGithubWorkflow(email: ErrorEmail, log: ErrorAutoFixLogModel): Promise<AutoFixResult> {\n\t\tconst openaiEnvironment = this.resolveEnvironmentForTask(email, log);\n\t\tconst fallbackEnv = this.config.githubOwner && this.config.githubRepo ? `${this.config.githubOwner}/${this.config.githubRepo}` : '';\n\t\tconst resolvedEnvironment = (openaiEnvironment || fallbackEnv || '').trim();\n\t\tconst repoTarget = this.parseRepoTarget(resolvedEnvironment) || this.parseRepoTarget(fallbackEnv);\n\n\t\tthis.debugLog('Starting GitHub PR workflow.', {\n\t\t\temailKey: email.key,\n\t\t\tlogId: log._id,\n\t\t\topenaiEnvironment: resolvedEnvironment,\n\t\t\trepoTarget\n\t\t});\n\n\t\tif (!this.config.githubToken) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub token not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub token not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_token'\n\t\t\t};\n\t\t}\n\n\t\tif (!repoTarget) {\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\tlast_error: 'GitHub repository not configured',\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: resolvedEnvironment\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'skipped',\n\t\t\t\temail,\n\t\t\t\terror: 'GitHub repository not configured',\n\t\t\t\tlog: updated,\n\t\t\t\treason: 'missing_github_repo'\n\t\t\t};\n\t\t}\n\n\t\tconst effectiveEnv = `${repoTarget.owner}/${repoTarget.repo}`;\n\t\tconst emailHash = email.issueHash || email.hash || this.generateIssueHash(email);\n\t\tconst rawHash = email.rawHash || this.generateRawEmailHash(email);\n\t\tconst workBranch = this.buildWorkBranch(emailHash);\n\t\tconst contextIdentifier = (emailHash || '').slice(0, 12) || 'autofix';\n\t\tconst contextPath = `.openai/error-context/${contextIdentifier}.md`;\n\t\tconst normalizedBody = this.normalizeEmailText(email.body || '');\n\t\tconst contextContent = this.buildContextMarkdown(email, contextIdentifier, normalizedBody);\n\t\tconst commentBody = this.buildOpenAIComment(email, contextPath, normalizedBody);\n\n\t\tawait this.updateLog(log._id, {\n\t\t\tstatus: 'in_progress',\n\t\t\tlast_attempt_at: new Date(),\n\t\t\tbranch_name: workBranch,\n\t\t\tpr_url: '',\n\t\t\tlast_error: '',\n\t\t\topenai_environment: effectiveEnv,\n\t\t\tissue_hash: emailHash,\n\t\t\temail_hash: rawHash\n\t\t});\n\n\t\ttry {\n\t\t\tconst baseBranch = await this.resolveBaseBranch(repoTarget);\n\t\t\tconst baseSha = await this.getBranchSha(repoTarget, baseBranch);\n\t\t\tawait this.ensureBranch(repoTarget, workBranch, baseBranch, baseSha);\n\t\t\tawait this.upsertContextFile(repoTarget, workBranch, contextPath, contextContent);\n\n\t\t\t\tlet pr = await this.findOpenPullRequest(repoTarget, workBranch, baseBranch);\n\t\t\t\tif (!pr) {\n\t\t\t\t\tconst title = `AI Autofix: ${(email.subject || 'ResolveIO Error').slice(0, 180)}`;\n\t\t\t\t\tconst bodyLines = [\n\t\t\t\t\t\t'This PR was opened automatically to let AI investigate the reported failure.',\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t`Context file: \\`${contextPath}\\``\n\t\t\t\t\t];\n\t\t\t\tpr = await this.createPullRequest(repoTarget, workBranch, baseBranch, title, bodyLines.join('\\n'));\n\t\t\t}\n\n\t\t\tawait this.commentOnPullRequest(repoTarget, pr.number, commentBody);\n\n\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\tstatus: 'success',\n\t\t\t\tbranch_name: workBranch,\n\t\t\t\tpr_url: pr.html_url,\n\t\t\t\tplan_summary: email.subject,\n\t\t\t\tplan_body: commentBody,\n\t\t\t\tlast_result_at: new Date(),\n\t\t\t\tid_client: email.id_client,\n\t\t\t\tclient_name: email.client_name,\n\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\tsource_type: email.source_type,\n\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\tissue_hash: emailHash,\n\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'success',\n\t\t\t\temail,\n\t\t\t\tbranchName: workBranch,\n\t\t\t\tprUrl: pr.html_url,\n\t\t\t\tlog: updated,\n\t\t\t\tsummary: email.subject,\n\t\t\t\tnotes: `Context file: ${contextPath}`\n\t\t\t};\n\t\t}\n\t\tcatch (err) {\n\t\t\tconst message = err?.message || 'GitHub workflow failed.';\n\t\t\t\tconst updated = (await this.updateLog(log._id, {\n\t\t\t\t\tstatus: 'failed',\n\t\t\t\t\tlast_error: message,\n\t\t\t\t\tlast_result_at: new Date(),\n\t\t\t\t\tid_client: email.id_client,\n\t\t\t\t\tclient_name: email.client_name,\n\t\t\t\t\tfrom_email: email.fromAddress,\n\t\t\t\t\tsource_type: email.source_type,\n\t\t\t\t\tclassification_reason: email.classification_reason || '',\n\t\t\t\t\topenai_environment: effectiveEnv,\n\t\t\t\t\tissue_hash: emailHash,\n\t\t\t\t\temail_hash: rawHash\n\t\t\t})) || log;\n\n\t\t\treturn {\n\t\t\t\tstatus: 'failed',\n\t\t\t\temail,\n\t\t\t\terror: message,\n\t\t\t\tlog: updated\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate async notify(result: AutoFixResult): Promise<void> {\n\t\tif (result.status === 'in_progress') {\n\t\t\treturn;\n\t\t}\n\n\t\tif (result.status === 'skipped' && result.reason && !this.shouldNotifySkip(result.reason)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst recipients = this.config.notifyEmails.length\n\t\t\t? this.config.notifyEmails\n\t\t\t: (result.status === 'failed' ? [DEFAULT_ERROR_ALERT_EMAIL] : []);\n\t\tif (!recipients.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet subject = '';\n\t\tlet bodyLines: string[] = [];\n\t\tconst logId = result.log?._id || '';\n\t\tconst summary = result.summary || result.log?.plan_summary || result.email.subject;\n\n\t\tif (result.status === 'success') {\n\t\t\tsubject = `ResolveIO AutoFix ✔ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow completed successfully.',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t`Branch: ${result.branchName || 'unknown'}`,\n\t\t\t\t`PR: ${result.prUrl || 'pending'}`,\n\t\t\t\t'',\n\t\t\t\t'Summary:',\n\t\t\t\tsummary || '(none)',\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (result.notes) {\n\t\t\t\tbodyLines.push(`Notes: ${result.notes}`, '');\n\t\t\t}\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse if (result.status === 'failed') {\n\t\t\tsubject = `ResolveIO AutoFix ✖ ${summary}`;\n\t\t\tbodyLines = [\n\t\t\t\t'Auto-fix workflow failed.',\n\t\t\t\t`Reason: ${result.error || result.log?.last_error || 'Unknown error'}`,\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t'',\n\t\t\t\t'Email Subject:',\n\t\t\t\tresult.email.subject\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push('', `Log ID: ${logId}`);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tsubject = `ResolveIO AutoFix ⚠ ${result.email.subject}`;\n\t\t\tconst reason = result.reason || 'skipped';\n\n\t\t\tbodyLines = [\n\t\t\t\t`Auto-fix skipped. Reason: ${reason}.`,\n\t\t\t\tresult.error && result.error !== reason ? `Details: ${result.error}` : '',\n\t\t\t\t`Client: ${result.log?.client_name || result.email.client_name || 'Unknown'}`,\n\t\t\t\t`Source: ${result.log?.source_type || result.email.source_type || 'app'}`,\n\t\t\t\t''\n\t\t\t];\n\n\t\t\tif (logId) {\n\t\t\t\tbodyLines.push(`Log ID: ${logId}`);\n\t\t\t}\n\n\t\t\tbodyLines.push('Update or remove the log entry to retry processing.');\n\t\t}\n\n\t\tconst textBody = bodyLines.filter(line => line !== undefined && line !== null && line !== '').join('\\n');\n\n\t\tfor (let email of recipients) {\n\t\t\tawait ResolveIOServer.getMainServer().getMethodManager().sendEmail(email, subject, textBody);\n\t\t}\n\t}\n\n}\n\nexport function ensureErrorAutoFixManager(serverConfig?: any): ErrorAutoFixManager | null {\n\tconst existing = ResolveIOServer['AutoFixManager'] as ErrorAutoFixManager | null;\n\tif (existing) {\n\t\treturn existing;\n\t}\n\n\tif (!configuredErrorAutoFixDependencies) {\n\t\treturn null;\n\t}\n\n\tconst resolvedServerConfig = serverConfig || ResolveIOServer.getServerConfig();\n\tif (!resolvedServerConfig) {\n\t\treturn null;\n\t}\n\n\tconst manager = new ErrorAutoFixManager(resolvedServerConfig);\n\tResolveIOServer['AutoFixManager'] = manager;\n\treturn manager;\n}\n\nexport async function reportDevError(options: DevErrorReportOptions): Promise<void> {\n\tconst manager = ensureErrorAutoFixManager();\n\tif (!manager) {\n\t\tconsole.warn('AutoFix manager not initialized for dev alert', options?.subject);\n\t\treturn;\n\t}\n\n\tawait manager.reportDevError(options);\n}\n"]}
@@ -0,0 +1,18 @@
1
+ export type LocalLogType = 'monitor-mongo' | 'monitor-memory' | 'monitor-cpu' | 'monitor-function' | 'log' | 'log-subscription' | 'log-method-latency';
2
+ export interface LocalLogModel {
3
+ type: LocalLogType;
4
+ data: any;
5
+ instance_index?: string;
6
+ }
7
+ export declare class LocalLogManager {
8
+ private _logFilePath;
9
+ constructor();
10
+ static create(): LocalLogManager;
11
+ private initialize;
12
+ writeLog(logEntry: LocalLogModel): void;
13
+ writeLogs(logEntries: LocalLogModel[]): void;
14
+ /**
15
+ * Reads all logs from disk, then empties the file.
16
+ */
17
+ offloadLogs(): any[];
18
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocalLogManager = void 0;
4
+ /***************
5
+ local-logs.manager.ts
6
+ ****************/
7
+ var fs = require("fs");
8
+ var path = require("path");
9
+ var resolveio_server_app_1 = require("../resolveio-server-app");
10
+ var LocalLogManager = /** @class */ (function () {
11
+ function LocalLogManager() {
12
+ }
13
+ LocalLogManager.create = function () {
14
+ var localLogManager = new LocalLogManager();
15
+ localLogManager.initialize();
16
+ return localLogManager;
17
+ };
18
+ LocalLogManager.prototype.initialize = function () {
19
+ var logDir = resolveLocalLogDir();
20
+ if (resolveio_server_app_1.ResolveIOServer.shouldWriteLogsOffline()) {
21
+ if (!fs.existsSync(logDir)) {
22
+ fs.mkdirSync(logDir, { recursive: true });
23
+ }
24
+ }
25
+ this._logFilePath = path.join(logDir, 'local-logs.jsonl');
26
+ };
27
+ // Internal method to append a JSON line to the file
28
+ LocalLogManager.prototype.writeLog = function (logEntry) {
29
+ try {
30
+ logEntry.instance_index = process.env.NODE_APP_INSTANCE || '';
31
+ var log = JSON.stringify(logEntry) + '\n';
32
+ fs.appendFileSync(this._logFilePath, log, { encoding: 'utf8' });
33
+ }
34
+ catch (err) {
35
+ // If there's an error writing logs, you might want to handle it or queue it
36
+ console.error(new Date(), 'LocalLogManager', 'Failed to write log to file:', err);
37
+ }
38
+ };
39
+ LocalLogManager.prototype.writeLogs = function (logEntries) {
40
+ if (!logEntries || logEntries.length === 0) {
41
+ return;
42
+ }
43
+ try {
44
+ // Convert each item to a JSON string, add newline
45
+ var logs = logEntries.map(function (logEntry) {
46
+ logEntry.instance_index = process.env.NODE_APP_INSTANCE || '';
47
+ return JSON.stringify(logEntry);
48
+ }).join('\n') + '\n';
49
+ fs.appendFileSync(this._logFilePath, logs, { encoding: 'utf8' });
50
+ }
51
+ catch (err) {
52
+ console.error(new Date(), 'LocalLogManager', 'Failed to write logs batch:', err);
53
+ }
54
+ };
55
+ /**
56
+ * Reads all logs from disk, then empties the file.
57
+ */
58
+ LocalLogManager.prototype.offloadLogs = function () {
59
+ var result = [];
60
+ try {
61
+ if (!fs.existsSync(this._logFilePath)) {
62
+ return result;
63
+ }
64
+ var fileData = fs.readFileSync(this._logFilePath, 'utf8');
65
+ if (fileData.trim().length === 0) {
66
+ return result;
67
+ }
68
+ result = fileData.split('\n').filter(function (l) { return l.trim() !== ''; });
69
+ // Truncate the file so we don't send logs more than once
70
+ fs.writeFileSync(this._logFilePath, '');
71
+ }
72
+ catch (err) {
73
+ console.error(new Date(), 'LocalLogManager', 'Failed to offload logs:', err);
74
+ }
75
+ return result;
76
+ };
77
+ return LocalLogManager;
78
+ }());
79
+ exports.LocalLogManager = LocalLogManager;
80
+ function resolveLocalLogDir() {
81
+ var overrideDir = String(process.env.RESOLVEIO_LOCAL_LOG_DIR || '').trim();
82
+ if (overrideDir) {
83
+ return overrideDir;
84
+ }
85
+ return '/home/ubuntu/resolveio/logs';
86
+ }
87
+
88
+ //# sourceMappingURL=local-log.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/managers/local-log.manager.ts"],"names":[],"mappings":"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","file":"local-log.manager.js","sourcesContent":["/***************\nlocal-logs.manager.ts\n****************/\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport type LocalLogType = 'monitor-mongo' \n\t| 'monitor-memory'\n\t| 'monitor-cpu'\n\t| 'monitor-function'\n\t| 'log'\n\t| 'log-subscription'\n\t| 'log-method-latency';\n\nexport interface LocalLogModel {\n\ttype: LocalLogType;\n\tdata: any;\n\tinstance_index?: string;\n}\n\nexport class LocalLogManager {\n\tprivate _logFilePath: string;\n\n\tconstructor() {}\n\n\tstatic create() {\n\t\tconst localLogManager = new LocalLogManager();\n\t\tlocalLogManager.initialize();\n\t\treturn localLogManager;\n\t}\n\n\tprivate initialize() {\n\t\tconst logDir = resolveLocalLogDir();\n\t\tif (\n\t\t\tResolveIOServer.shouldWriteLogsOffline()\n\t\t) {\n\t\t\tif (!fs.existsSync(logDir)) {\n\t\t\t\tfs.mkdirSync(logDir, { recursive: true });\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis._logFilePath = path.join(logDir, 'local-logs.jsonl');\n\t}\n\n\t// Internal method to append a JSON line to the file\n\tpublic writeLog(logEntry: LocalLogModel): void {\n\t\ttry {\n\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\n\t\t\tlet log = JSON.stringify(logEntry) + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, log, { encoding: 'utf8' });\n\t\t}\n\t\tcatch(err) {\n\t\t\t// If there's an error writing logs, you might want to handle it or queue it\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write log to file:', err);\n\t\t}\n\t}\n\n\tpublic writeLogs(logEntries: LocalLogModel[]): void {\n\t\tif (!logEntries || logEntries.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert each item to a JSON string, add newline\n\t\t\tlet logs = logEntries.map(logEntry => {\n\t\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\t\t\t\treturn JSON.stringify(logEntry);\n\t\t\t}).join('\\n') + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, logs, { encoding: 'utf8' });\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write logs batch:', err);\n\t\t}\n\t}\n\n\t/**\n\t * Reads all logs from disk, then empties the file.\n\t */\n\tpublic offloadLogs(): any[] {\n\t\tlet result = [];\n\n\t\ttry {\n\t\t\tif (!fs.existsSync(this._logFilePath)) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tlet fileData = fs.readFileSync(this._logFilePath, 'utf8');\n\t\t\tif (fileData.trim().length === 0) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tresult = fileData.split('\\n').filter(l => l.trim() !== '');\n\n\t\t\t// Truncate the file so we don't send logs more than once\n\t\t\tfs.writeFileSync(this._logFilePath, '');\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to offload logs:', err);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\nfunction resolveLocalLogDir(): string {\n\tconst overrideDir = String(process.env.RESOLVEIO_LOCAL_LOG_DIR || '').trim();\n\tif (overrideDir) {\n\t\treturn overrideDir;\n\t}\n\treturn '/home/ubuntu/resolveio/logs';\n}\n"]}