@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,1096 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __values = (this && this.__values) || function(o) {
14
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
+ if (m) return m.call(o);
16
+ if (o && typeof o.length === "number") return {
17
+ next: function () {
18
+ if (o && i >= o.length) o = void 0;
19
+ return { value: o && o[i++], done: !o };
20
+ }
21
+ };
22
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
23
+ };
24
+ var __read = (this && this.__read) || function (o, n) {
25
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
26
+ if (!m) return o;
27
+ var i = m.call(o), r, ar = [], e;
28
+ try {
29
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
30
+ }
31
+ catch (error) { e = { error: error }; }
32
+ finally {
33
+ try {
34
+ if (r && !r.done && (m = i["return"])) m.call(i);
35
+ }
36
+ finally { if (e) throw e.error; }
37
+ }
38
+ return ar;
39
+ };
40
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
41
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
42
+ if (ar || !(i in from)) {
43
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
44
+ ar[i] = from[i];
45
+ }
46
+ }
47
+ return to.concat(ar || Array.prototype.slice.call(from));
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.isCumulativeCodexUsageEntry = isCumulativeCodexUsageEntry;
51
+ exports.resolveOpenAIUsageThreadKey = resolveOpenAIUsageThreadKey;
52
+ exports.normalizeOpenAIUsageRowsForCosting = normalizeOpenAIUsageRowsForCosting;
53
+ exports.buildAIQaRun = buildAIQaRun;
54
+ exports.classifyAIRunOutcome = classifyAIRunOutcome;
55
+ exports.buildAIRun = buildAIRun;
56
+ exports.buildAIRunCost = buildAIRunCost;
57
+ exports.redactAIRunTrainingExample = redactAIRunTrainingExample;
58
+ function isoNow(value) {
59
+ if (value instanceof Date) {
60
+ return value.toISOString();
61
+ }
62
+ var parsed = value ? new Date(value) : new Date();
63
+ if (Number.isFinite(parsed.getTime())) {
64
+ return parsed.toISOString();
65
+ }
66
+ return new Date().toISOString();
67
+ }
68
+ function cleanText(value, max) {
69
+ if (max === void 0) { max = 1000; }
70
+ return String(value || '').replace(/\s+/g, ' ').trim().slice(0, max);
71
+ }
72
+ function cleanUsageNumber(value) {
73
+ var parsed = Number(value);
74
+ return Number.isFinite(parsed) ? parsed : 0;
75
+ }
76
+ function cleanUsageDate(value) {
77
+ if (!value) {
78
+ return undefined;
79
+ }
80
+ var date = value instanceof Date ? value : new Date(value);
81
+ return Number.isFinite(date.getTime()) ? date : undefined;
82
+ }
83
+ function isCumulativeCodexUsageEntry(entry) {
84
+ return cleanText(entry === null || entry === void 0 ? void 0 : entry.category, 180).toLowerCase().startsWith('ai-dashboard-codex:');
85
+ }
86
+ function resolveOpenAIUsageThreadKey(entry) {
87
+ var _a, _b;
88
+ var conversationId = cleanText((_a = entry === null || entry === void 0 ? void 0 : entry.id_conversation) !== null && _a !== void 0 ? _a : entry === null || entry === void 0 ? void 0 : entry.idConversation, 240);
89
+ if (conversationId) {
90
+ return conversationId;
91
+ }
92
+ return cleanText((_b = entry === null || entry === void 0 ? void 0 : entry.id_request) !== null && _b !== void 0 ? _b : entry === null || entry === void 0 ? void 0 : entry.idRequest, 240);
93
+ }
94
+ function normalizeOpenAIUsageRowsForCosting(rows) {
95
+ if (rows === void 0) { rows = []; }
96
+ if (!Array.isArray(rows) || !rows.length) {
97
+ return [];
98
+ }
99
+ var sortedRows = rows
100
+ .map(function (row, index) { return (__assign(__assign({}, row), { _sortIndex: index })); })
101
+ .sort(function (a, b) {
102
+ var _a, _b, _c, _d, _e, _f;
103
+ var timeA = ((_a = cleanUsageDate(a.timestamp)) === null || _a === void 0 ? void 0 : _a.getTime()) || 0;
104
+ var timeB = ((_b = cleanUsageDate(b.timestamp)) === null || _b === void 0 ? void 0 : _b.getTime()) || 0;
105
+ if (timeA !== timeB) {
106
+ return timeA - timeB;
107
+ }
108
+ var requestCompare = cleanText((_c = a.id_request) !== null && _c !== void 0 ? _c : a.idRequest, 240)
109
+ .localeCompare(cleanText((_d = b.id_request) !== null && _d !== void 0 ? _d : b.idRequest, 240));
110
+ if (requestCompare) {
111
+ return requestCompare;
112
+ }
113
+ var conversationCompare = cleanText((_e = a.id_conversation) !== null && _e !== void 0 ? _e : a.idConversation, 240)
114
+ .localeCompare(cleanText((_f = b.id_conversation) !== null && _f !== void 0 ? _f : b.idConversation, 240));
115
+ if (conversationCompare) {
116
+ return conversationCompare;
117
+ }
118
+ return cleanUsageNumber(a._sortIndex) - cleanUsageNumber(b._sortIndex);
119
+ });
120
+ var previousByThread = new Map();
121
+ return sortedRows.map(function (row) {
122
+ var _a, _b, _c, _d, _e, _f;
123
+ var inputTokens = cleanUsageNumber((_a = row.input_tokens) !== null && _a !== void 0 ? _a : row.inputTokens);
124
+ var cachedInputTokens = cleanUsageNumber((_b = row.cached_input_tokens) !== null && _b !== void 0 ? _b : row.cachedInputTokens);
125
+ var outputTokens = cleanUsageNumber((_c = row.output_tokens) !== null && _c !== void 0 ? _c : row.outputTokens);
126
+ var totalTokens = cleanUsageNumber((_e = (_d = row.total_tokens) !== null && _d !== void 0 ? _d : row.totalTokens) !== null && _e !== void 0 ? _e : (inputTokens + outputTokens));
127
+ var estimatedUsd = cleanUsageNumber((_f = row.cost_estimate) !== null && _f !== void 0 ? _f : row.estimatedUsd);
128
+ var threadKey = isCumulativeCodexUsageEntry(row) ? resolveOpenAIUsageThreadKey(row) : '';
129
+ var normalizedInputTokens = inputTokens;
130
+ var normalizedCachedInputTokens = cachedInputTokens;
131
+ var normalizedOutputTokens = outputTokens;
132
+ var normalizedTotalTokens = totalTokens;
133
+ var normalizedEstimatedUsd = estimatedUsd;
134
+ if (threadKey) {
135
+ var previous = previousByThread.get(threadKey);
136
+ if (previous
137
+ && inputTokens >= previous.inputTokens
138
+ && cachedInputTokens >= previous.cachedInputTokens
139
+ && outputTokens >= previous.outputTokens
140
+ && totalTokens >= previous.totalTokens
141
+ && estimatedUsd >= previous.estimatedUsd) {
142
+ normalizedInputTokens = Math.max(0, inputTokens - previous.inputTokens);
143
+ normalizedCachedInputTokens = Math.max(0, cachedInputTokens - previous.cachedInputTokens);
144
+ normalizedOutputTokens = Math.max(0, outputTokens - previous.outputTokens);
145
+ normalizedTotalTokens = Math.max(0, totalTokens - previous.totalTokens);
146
+ normalizedEstimatedUsd = Math.max(0, estimatedUsd - previous.estimatedUsd);
147
+ }
148
+ previousByThread.set(threadKey, {
149
+ inputTokens: inputTokens,
150
+ cachedInputTokens: cachedInputTokens,
151
+ outputTokens: outputTokens,
152
+ totalTokens: totalTokens,
153
+ estimatedUsd: estimatedUsd
154
+ });
155
+ }
156
+ var resolvedTotalTokens = normalizedTotalTokens || (normalizedInputTokens + normalizedOutputTokens);
157
+ var resolvedEstimatedUsd = Number(normalizedEstimatedUsd.toFixed(6));
158
+ return __assign(__assign({}, row), { input_tokens: normalizedInputTokens, inputTokens: normalizedInputTokens, cached_input_tokens: normalizedCachedInputTokens, cachedInputTokens: normalizedCachedInputTokens, output_tokens: normalizedOutputTokens, outputTokens: normalizedOutputTokens, total_tokens: resolvedTotalTokens, totalTokens: resolvedTotalTokens, cost_estimate: resolvedEstimatedUsd, estimatedUsd: resolvedEstimatedUsd });
159
+ });
160
+ }
161
+ function cleanList(values, limit, max) {
162
+ var e_1, _a;
163
+ if (limit === void 0) { limit = 20; }
164
+ if (max === void 0) { max = 500; }
165
+ if (!Array.isArray(values)) {
166
+ return [];
167
+ }
168
+ var result = [];
169
+ try {
170
+ for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {
171
+ var value = values_1_1.value;
172
+ var normalized = cleanText(value, max);
173
+ if (normalized && !result.includes(normalized)) {
174
+ result.push(normalized);
175
+ }
176
+ if (result.length >= limit) {
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
182
+ finally {
183
+ try {
184
+ if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);
185
+ }
186
+ finally { if (e_1) throw e_1.error; }
187
+ }
188
+ return result;
189
+ }
190
+ function normalizeCheckStatus(value) {
191
+ var normalized = cleanText(value, 40).toLowerCase().replace(/[_\s-]+/g, '_');
192
+ if (normalized === 'passed' || normalized === 'ok' || normalized === 'ready') {
193
+ return 'pass';
194
+ }
195
+ if (normalized === 'failed' || normalized === 'error' || normalized === 'fail') {
196
+ return 'fail';
197
+ }
198
+ if (normalized === 'blocked' || normalized === 'dependency_blocked') {
199
+ return 'blocked';
200
+ }
201
+ if (normalized === 'warning') {
202
+ return 'warn';
203
+ }
204
+ if (normalized === 'skipped' || normalized === 'not_applicable') {
205
+ return 'skipped';
206
+ }
207
+ return normalized === 'pass' || normalized === 'warn' ? normalized : 'unknown';
208
+ }
209
+ function normalizeCompileStatus(value) {
210
+ var normalized = cleanText(value, 40).toLowerCase().replace(/[_\s-]+/g, '_');
211
+ if (normalized === 'passed' || normalized === 'ok') {
212
+ return 'pass';
213
+ }
214
+ if (normalized === 'failed' || normalized === 'error') {
215
+ return 'fail';
216
+ }
217
+ if (normalized === 'blocked') {
218
+ return 'blocked';
219
+ }
220
+ if (normalized === 'stale' || normalized === 'stale_evidence') {
221
+ return 'stale';
222
+ }
223
+ if (normalized === 'skipped' || normalized === 'not_applicable') {
224
+ return 'skipped';
225
+ }
226
+ return normalized === 'pass' || normalized === 'fail' ? normalized : 'unknown';
227
+ }
228
+ function makeGate(key, label, status, reason, evidenceRefs, now, metadata) {
229
+ if (evidenceRefs === void 0) { evidenceRefs = []; }
230
+ return __assign({ key: key, label: label, status: status, reason: cleanText(reason, 1400), evidenceRefs: cleanList(evidenceRefs, 20, 500), recordedAt: isoNow(now) }, (metadata ? { metadata: metadata } : {}));
231
+ }
232
+ function failedOrBlocked(status) {
233
+ return status === 'fail' || status === 'blocked';
234
+ }
235
+ function passed(status) {
236
+ return status === 'pass';
237
+ }
238
+ function normalizeInfraChecks(values) {
239
+ return (Array.isArray(values) ? values : []).map(function (entry) { return (__assign(__assign({}, entry), { name: cleanText(entry === null || entry === void 0 ? void 0 : entry.name, 120) || 'infra_check', status: normalizeCheckStatus(entry === null || entry === void 0 ? void 0 : entry.status), message: cleanText(entry === null || entry === void 0 ? void 0 : entry.message, 1000), path: cleanText(entry === null || entry === void 0 ? void 0 : entry.path, 500) })); });
240
+ }
241
+ function normalizeRouteProbes(values) {
242
+ return (Array.isArray(values) ? values : []).map(function (entry) { return (__assign(__assign({}, entry), { route: cleanText(entry === null || entry === void 0 ? void 0 : entry.route, 500) || '/', status: normalizeCheckStatus(entry === null || entry === void 0 ? void 0 : entry.status), screenshot: cleanText(entry === null || entry === void 0 ? void 0 : entry.screenshot, 500), caption: cleanText(entry === null || entry === void 0 ? void 0 : entry.caption, 1000), message: cleanText(entry === null || entry === void 0 ? void 0 : entry.message, 1000), consoleErrors: cleanList(entry === null || entry === void 0 ? void 0 : entry.consoleErrors, 30, 500), networkErrors: cleanList(entry === null || entry === void 0 ? void 0 : entry.networkErrors, 30, 500) })); });
243
+ }
244
+ function normalizeBusinessAssertions(values) {
245
+ return (Array.isArray(values) ? values : []).map(function (entry) { return (__assign(__assign({}, entry), { assertion: cleanText(entry === null || entry === void 0 ? void 0 : entry.assertion, 1000) || 'business assertion', status: normalizeCheckStatus(entry === null || entry === void 0 ? void 0 : entry.status), workflow: cleanText(entry === null || entry === void 0 ? void 0 : entry.workflow, 400), route: cleanText(entry === null || entry === void 0 ? void 0 : entry.route, 500), action: cleanText(entry === null || entry === void 0 ? void 0 : entry.action, 500), expected: cleanText(entry === null || entry === void 0 ? void 0 : entry.expected, 1000), observed: cleanText(entry === null || entry === void 0 ? void 0 : entry.observed, 1000), dataProof: cleanText(entry === null || entry === void 0 ? void 0 : entry.dataProof, 1400), artifactPaths: cleanList(entry === null || entry === void 0 ? void 0 : entry.artifactPaths, 30, 500), message: cleanText(entry === null || entry === void 0 ? void 0 : entry.message, 1000) })); });
246
+ }
247
+ function collectBusinessAssertionArtifactPaths(assertions) {
248
+ var e_2, _a, e_3, _b;
249
+ var paths = [];
250
+ try {
251
+ for (var assertions_1 = __values(assertions), assertions_1_1 = assertions_1.next(); !assertions_1_1.done; assertions_1_1 = assertions_1.next()) {
252
+ var assertion = assertions_1_1.value;
253
+ try {
254
+ for (var _c = (e_3 = void 0, __values(assertion.artifactPaths || [])), _d = _c.next(); !_d.done; _d = _c.next()) {
255
+ var artifactPath = _d.value;
256
+ if (artifactPath && !paths.includes(artifactPath)) {
257
+ paths.push(artifactPath);
258
+ }
259
+ }
260
+ }
261
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
262
+ finally {
263
+ try {
264
+ if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
265
+ }
266
+ finally { if (e_3) throw e_3.error; }
267
+ }
268
+ }
269
+ }
270
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
271
+ finally {
272
+ try {
273
+ if (assertions_1_1 && !assertions_1_1.done && (_a = assertions_1.return)) _a.call(assertions_1);
274
+ }
275
+ finally { if (e_2) throw e_2.error; }
276
+ }
277
+ return paths;
278
+ }
279
+ function buildAIQaRun(input) {
280
+ if (input === void 0) { input = {}; }
281
+ var now = isoNow(input.now);
282
+ var infraChecks = normalizeInfraChecks(input.infraChecks);
283
+ var compile = input.compile
284
+ ? __assign(__assign({}, input.compile), { status: normalizeCompileStatus(input.compile.status), command: cleanText(input.compile.command, 500), artifactPath: cleanText(input.compile.artifactPath, 500), message: cleanText(input.compile.message, 1000) }) : undefined;
285
+ var routeProbes = normalizeRouteProbes(input.routeProbes);
286
+ var businessAssertions = normalizeBusinessAssertions(input.businessAssertions);
287
+ var artifacts = Array.isArray(input.artifacts) ? input.artifacts : [];
288
+ var gateResults = [];
289
+ var failedInfra = infraChecks.filter(function (check) { return failedOrBlocked(check.status); });
290
+ if (failedInfra.length) {
291
+ gateResults.push(makeGate('qa_infra', 'QA infrastructure', 'blocked', "QA infrastructure failed before model/business validation: ".concat(failedInfra.map(function (check) { return "".concat(check.name, ": ").concat(check.message || check.status); }).join('; ')), failedInfra.map(function (check) { return check.path || ''; }).filter(Boolean), now, { failed_checks: failedInfra.map(function (check) { return check.name; }) }));
292
+ return { outcome: 'infra_failed', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
293
+ }
294
+ if (infraChecks.length) {
295
+ gateResults.push(makeGate('qa_infra', 'QA infrastructure', 'pass', 'QA infrastructure preflight checks passed.', [], now));
296
+ }
297
+ if (compile && (failedOrBlocked(compile.status) || compile.status === 'stale' || compile.staleEvidence === true)) {
298
+ gateResults.push(makeGate('qa_compile', 'Compile/build', 'fail', compile.status === 'stale' || compile.staleEvidence === true
299
+ ? 'Compile/build evidence is stale and cannot be used for acceptance.'
300
+ : (compile.message || 'Compile/build failed before browser QA.'), compile.artifactPath ? [compile.artifactPath] : [], now, { command: compile.command || '' }));
301
+ return { outcome: 'compile_failed', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
302
+ }
303
+ if (compile && passed(compile.status)) {
304
+ gateResults.push(makeGate('qa_compile', 'Compile/build', 'pass', 'Compile/build evidence passed.', compile.artifactPath ? [compile.artifactPath] : [], now));
305
+ }
306
+ var failedRouteProbes = routeProbes.filter(function (probe) { return failedOrBlocked(probe.status) || probe.shellOnly === true; });
307
+ if (failedRouteProbes.length) {
308
+ gateResults.push(makeGate('qa_route_probe', 'Browser route probe', 'fail', "Browser route probe failed or showed shell-only UI: ".concat(failedRouteProbes.map(function (probe) { return "".concat(probe.route, ": ").concat(probe.message || probe.caption || probe.status); }).join('; ')), failedRouteProbes.map(function (probe) { return probe.screenshot || ''; }).filter(Boolean), now));
309
+ return { outcome: 'route_failed', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
310
+ }
311
+ if (routeProbes.some(function (probe) { return passed(probe.status); })) {
312
+ gateResults.push(makeGate('qa_route_probe', 'Browser route probe', 'pass', 'Browser route reached authenticated application content. This is not business acceptance by itself.', routeProbes.map(function (probe) { return probe.screenshot || ''; }).filter(Boolean), now));
313
+ }
314
+ var failedBusinessAssertions = businessAssertions.filter(function (assertion) { return failedOrBlocked(assertion.status); });
315
+ if (failedBusinessAssertions.length) {
316
+ gateResults.push(makeGate('qa_business_assertion', 'Business assertion', 'fail', "Issue-specific workflow assertion failed: ".concat(failedBusinessAssertions.map(function (assertion) { return assertion.message || assertion.observed || assertion.assertion; }).join('; ')), collectBusinessAssertionArtifactPaths(failedBusinessAssertions), now));
317
+ return { outcome: 'business_assertion_failed', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
318
+ }
319
+ var passedBusinessAssertions = businessAssertions.filter(function (assertion) { return passed(assertion.status); });
320
+ if (passedBusinessAssertions.length) {
321
+ gateResults.push(makeGate('qa_business_assertion', 'Business assertion', 'pass', 'At least one issue-specific workflow/data assertion passed.', collectBusinessAssertionArtifactPaths(passedBusinessAssertions), now, { passed_assertions: passedBusinessAssertions.map(function (assertion) { return assertion.assertion; }) }));
322
+ return { outcome: 'business_assertion_passed', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
323
+ }
324
+ if (routeProbes.some(function (probe) { return passed(probe.status); })) {
325
+ gateResults.push(makeGate('qa_business_assertion', 'Business assertion', 'blocked', 'Browser route loaded, but no issue-specific business assertion passed. Route-only proof cannot accept the run.', [], now));
326
+ return { outcome: 'route_only_pass', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
327
+ }
328
+ gateResults.push(makeGate('qa_business_assertion', 'Business assertion', 'blocked', 'No issue-specific QA assertion was recorded.', [], now));
329
+ return { outcome: 'incomplete', infraChecks: infraChecks, compile: compile, routeProbes: routeProbes, businessAssertions: businessAssertions, artifacts: artifacts, gateResults: gateResults, updatedAt: now };
330
+ }
331
+ function normalizeQaRun(input) {
332
+ if (!input) {
333
+ return undefined;
334
+ }
335
+ if (input.outcome && Array.isArray(input.gateResults)) {
336
+ return input;
337
+ }
338
+ return buildAIQaRun(input);
339
+ }
340
+ function statusLooksFailed(value) {
341
+ var normalized = cleanText(value, 120).toLowerCase();
342
+ return !!normalized && /(fail|failed|error|blocked|missing|empty|stale|skipped|not ready|not_ready|could not|cannot)/i.test(normalized);
343
+ }
344
+ function statusLooksPassed(value) {
345
+ var normalized = cleanText(value, 120).toLowerCase();
346
+ return !!normalized && /(pass|passed|success|complete|completed|ready|published|deployed|live|merged)/i.test(normalized);
347
+ }
348
+ function addGateOnce(gates, gate) {
349
+ if (gates.some(function (entry) { return entry.key === gate.key && entry.status === gate.status && entry.reason === gate.reason; })) {
350
+ return;
351
+ }
352
+ gates.push(gate);
353
+ }
354
+ function classifyAIRunOutcome(input) {
355
+ var e_4, _a;
356
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y;
357
+ if (input === void 0) { input = {}; }
358
+ var now = isoNow(input.now);
359
+ var gates = Array.isArray(input.gates) ? __spreadArray([], __read(input.gates), false) : [];
360
+ var warnings = [];
361
+ var qa = normalizeQaRun(input.qa);
362
+ if (qa) {
363
+ try {
364
+ for (var _z = __values(qa.gateResults), _0 = _z.next(); !_0.done; _0 = _z.next()) {
365
+ var gate = _0.value;
366
+ addGateOnce(gates, gate);
367
+ }
368
+ }
369
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
370
+ finally {
371
+ try {
372
+ if (_0 && !_0.done && (_a = _z.return)) _a.call(_z);
373
+ }
374
+ finally { if (e_4) throw e_4.error; }
375
+ }
376
+ }
377
+ var supportParkedByStatus = input.source === 'support_ticket'
378
+ && (input.manualHandoff === true || input.stopped === true || /stop|stopped|cancel|cancelled|paused|handoff/i.test("".concat(input.status || '', " ").concat(input.phase || '')));
379
+ if (supportParkedByStatus) {
380
+ var blockedSupportAutoloopNoProgressGate_1 = gates.find(function (gate) { return gate.key === 'support_autoloop_no_progress' && gate.status === 'blocked'; });
381
+ if (blockedSupportAutoloopNoProgressGate_1) {
382
+ return {
383
+ outcome: 'manual_handoff',
384
+ reason: "Support autoloop parked before another repair loop because no new evidence was recorded: ".concat(blockedSupportAutoloopNoProgressGate_1.reason),
385
+ nextAction: 'Collect new material evidence, rerun read-only diagnosis or issue-class proof, then resume only if the blocker fingerprint changes.',
386
+ gates: gates,
387
+ warnings: warnings,
388
+ recordedAt: now
389
+ };
390
+ }
391
+ var blockedSupportAutoloopApprovalGate_1 = gates.find(function (gate) { return gate.key === 'support_autoloop_approval_block' && gate.status === 'blocked'; });
392
+ if (blockedSupportAutoloopApprovalGate_1) {
393
+ var nextAction = cleanText((_b = blockedSupportAutoloopApprovalGate_1.metadata) === null || _b === void 0 ? void 0 : _b.nextAction, 160)
394
+ || cleanText((_c = blockedSupportAutoloopApprovalGate_1.metadata) === null || _c === void 0 ? void 0 : _c.action, 160);
395
+ var elapsedReapproval = ((_d = blockedSupportAutoloopApprovalGate_1.metadata) === null || _d === void 0 ? void 0 : _d.requiresElapsedReapproval) === true;
396
+ return {
397
+ outcome: 'manual_handoff',
398
+ reason: "Support autoloop parked before another repair loop because approval/scope is blocked: ".concat(blockedSupportAutoloopApprovalGate_1.reason),
399
+ nextAction: elapsedReapproval
400
+ ? 'Approve continued runtime beyond the current wall-clock boundary or park the ticket for manual review; do not run another model/code/QA continuation until that decision is recorded.'
401
+ : nextAction
402
+ ? "Run ".concat(nextAction, " or revise the blocked scope, then resume the approved autoloop toward A-grade QA/business proof.")
403
+ : 'Approve the blocked support autonomy scope or revise the diagnosis, owner files, planned change, estimate, or classification before the autoloop continues.',
404
+ gates: gates,
405
+ warnings: warnings,
406
+ recordedAt: now
407
+ };
408
+ }
409
+ var blockedSupportAutonomyApprovalGate_1 = gates.find(function (gate) { return gate.key === 'support_autonomy_approval' && gate.status === 'blocked'; });
410
+ if (blockedSupportAutonomyApprovalGate_1) {
411
+ return {
412
+ outcome: 'manual_handoff',
413
+ reason: "Support autonomy is waiting on operator approval or revised intake/diagnosis scope: ".concat(blockedSupportAutonomyApprovalGate_1.reason),
414
+ nextAction: ((_e = blockedSupportAutonomyApprovalGate_1.metadata) === null || _e === void 0 ? void 0 : _e.approvalAction)
415
+ ? "Use ".concat(blockedSupportAutonomyApprovalGate_1.metadata.approvalAction, " or revise the blocked scope, then allow the runner to continue until A-grade QA/business proof.")
416
+ : 'Approve the bounded support autonomy request or revise classification, estimate, owner files, or diagnosis scope before product-code repair.',
417
+ gates: gates,
418
+ warnings: warnings,
419
+ recordedAt: now
420
+ };
421
+ }
422
+ var blockedSupportProductRepairDispatchGate_1 = gates.find(function (gate) { return gate.key === 'support_product_repair_dispatch_guard' && gate.status === 'blocked'; });
423
+ if (blockedSupportProductRepairDispatchGate_1) {
424
+ return {
425
+ outcome: 'manual_handoff',
426
+ reason: "Support product-code repair dispatch is blocked by the approval/scope guard: ".concat(blockedSupportProductRepairDispatchGate_1.reason),
427
+ nextAction: ((_f = blockedSupportProductRepairDispatchGate_1.metadata) === null || _f === void 0 ? void 0 : _f.nextAction)
428
+ ? "Run ".concat(blockedSupportProductRepairDispatchGate_1.metadata.nextAction, " before product-code repair continues.")
429
+ : 'Approve the current support autonomy scope or revise the diagnosis/owner-file set before product-code repair continues.',
430
+ gates: gates,
431
+ warnings: warnings,
432
+ recordedAt: now
433
+ };
434
+ }
435
+ var blockedSupportHumanDecisionGate_1 = gates.find(function (gate) { return gate.key === 'support_human_decision_request' && gate.status === 'blocked'; });
436
+ if (blockedSupportHumanDecisionGate_1) {
437
+ return {
438
+ outcome: 'manual_handoff',
439
+ reason: "Support run is waiting on a specific operator decision: ".concat(blockedSupportHumanDecisionGate_1.reason),
440
+ nextAction: ((_g = blockedSupportHumanDecisionGate_1.metadata) === null || _g === void 0 ? void 0 : _g.preferredChoiceId)
441
+ ? "Choose ".concat(blockedSupportHumanDecisionGate_1.metadata.preferredChoiceId, " or an equivalent safe console action, then resume the runner.")
442
+ : 'Answer the requested support runner decision, then resume the runner.',
443
+ gates: gates,
444
+ warnings: warnings,
445
+ recordedAt: now
446
+ };
447
+ }
448
+ }
449
+ if (input.manualHandoff === true) {
450
+ return {
451
+ outcome: 'manual_handoff',
452
+ reason: 'Run requires manual handoff.',
453
+ nextAction: 'Ask a human operator to resolve the blocked run.',
454
+ gates: gates,
455
+ warnings: warnings,
456
+ recordedAt: now
457
+ };
458
+ }
459
+ if (input.stopped === true || /stop|stopped|cancel|cancelled|paused/i.test("".concat(input.status || '', " ").concat(input.phase || ''))) {
460
+ return {
461
+ outcome: 'stopped',
462
+ reason: 'Run was stopped before accepted evidence was recorded.',
463
+ nextAction: 'Resume or restart only if the request is still active.',
464
+ gates: gates,
465
+ warnings: warnings,
466
+ recordedAt: now
467
+ };
468
+ }
469
+ if (input.rejected === true) {
470
+ return {
471
+ outcome: 'rejected',
472
+ reason: 'Run was explicitly rejected.',
473
+ nextAction: 'Start a repair run from the failing evidence.',
474
+ gates: gates,
475
+ warnings: warnings,
476
+ recordedAt: now
477
+ };
478
+ }
479
+ var blockedHotfixCommitGate = gates.find(function (gate) { return gate.key === 'hotfix_commit_proof' && (gate.status === 'blocked' || gate.status === 'fail'); });
480
+ if (blockedHotfixCommitGate) {
481
+ return {
482
+ outcome: 'release_blocked',
483
+ reason: "Hotfix cannot be treated as durable until GitHub commit proof passes: ".concat(blockedHotfixCommitGate.reason),
484
+ nextAction: 'Commit and push the hotfix to GitHub, record sourceCommitSha/githubCommitUrl/gitCommitStatus/gitPushStatus, then rerun the smallest release gate.',
485
+ gates: gates,
486
+ warnings: warnings,
487
+ recordedAt: now
488
+ };
489
+ }
490
+ var blockedNoBlindLoopGate = gates.find(function (gate) { return gate.key === 'manager_no_blind_loop_policy' && gate.status === 'blocked'; });
491
+ if (blockedNoBlindLoopGate) {
492
+ return {
493
+ outcome: 'manual_handoff',
494
+ reason: "Manager parked the run to avoid a blind loop: ".concat(blockedNoBlindLoopGate.reason),
495
+ nextAction: 'Collect new material evidence or approve the specific recovery decision before any more model/code repair.',
496
+ gates: gates,
497
+ warnings: warnings,
498
+ recordedAt: now
499
+ };
500
+ }
501
+ var blockedSupportAutoloopNoProgressGate = gates.find(function (gate) { return gate.key === 'support_autoloop_no_progress' && gate.status === 'blocked'; });
502
+ if (input.source === 'support_ticket' && blockedSupportAutoloopNoProgressGate) {
503
+ return {
504
+ outcome: 'manual_handoff',
505
+ reason: "Support autoloop parked before another repair loop because no new evidence was recorded: ".concat(blockedSupportAutoloopNoProgressGate.reason),
506
+ nextAction: 'Collect new material evidence, rerun read-only diagnosis or issue-class proof, then resume only if the blocker fingerprint changes.',
507
+ gates: gates,
508
+ warnings: warnings,
509
+ recordedAt: now
510
+ };
511
+ }
512
+ var blockedSupportDiagnosisBeforeRepairGate = gates.find(function (gate) { return gate.key === 'support_diagnosis_before_repair' && gate.status === 'blocked'; });
513
+ if (blockedSupportDiagnosisBeforeRepairGate) {
514
+ return {
515
+ outcome: 'manual_handoff',
516
+ reason: "Support repair is parked until root-cause diagnosis validates: ".concat(blockedSupportDiagnosisBeforeRepairGate.reason),
517
+ nextAction: 'Run read-only support diagnosis, record support_diagnosis_gate with owner_files and before/action/after proof, then retry only the owner-scoped repair.',
518
+ gates: gates,
519
+ warnings: warnings,
520
+ recordedAt: now
521
+ };
522
+ }
523
+ var blockedSupportOwnerFileScopeGate = gates.find(function (gate) { return gate.key === 'support_owner_file_scope' && gate.status === 'blocked'; });
524
+ if (blockedSupportOwnerFileScopeGate) {
525
+ return {
526
+ outcome: 'manual_handoff',
527
+ reason: "Support repair exceeded the diagnosed owner-file scope: ".concat(blockedSupportOwnerFileScopeGate.reason),
528
+ nextAction: 'Revise the SupportDiagnosisGate with evidence for each new owner file, update failing_path/proof_plan, then run only the bounded owner-scoped repair.',
529
+ gates: gates,
530
+ warnings: warnings,
531
+ recordedAt: now
532
+ };
533
+ }
534
+ var blockedSupportIntakeRevisionGate = gates.find(function (gate) { return gate.key === 'support_intake_revision_contract' && gate.status === 'blocked'; });
535
+ if (input.source === 'support_ticket' && blockedSupportIntakeRevisionGate) {
536
+ var requiredOperatorAction = cleanText((_h = blockedSupportIntakeRevisionGate.metadata) === null || _h === void 0 ? void 0 : _h.requiredOperatorAction, 160);
537
+ return {
538
+ outcome: 'manual_handoff',
539
+ reason: "Support intake/classification changed after approval: ".concat(blockedSupportIntakeRevisionGate.reason),
540
+ nextAction: requiredOperatorAction
541
+ ? "Run ".concat(requiredOperatorAction, " to approve the revised intake/scope before product-code repair continues.")
542
+ : 'Approve the revised support intake/scope before product-code repair continues.',
543
+ gates: gates,
544
+ warnings: warnings,
545
+ recordedAt: now
546
+ };
547
+ }
548
+ var blockedSupportAutoloopApprovalGate = gates.find(function (gate) { return gate.key === 'support_autoloop_approval_block' && gate.status === 'blocked'; });
549
+ if (input.source === 'support_ticket' && blockedSupportAutoloopApprovalGate) {
550
+ var nextAction = cleanText((_j = blockedSupportAutoloopApprovalGate.metadata) === null || _j === void 0 ? void 0 : _j.nextAction, 160)
551
+ || cleanText((_k = blockedSupportAutoloopApprovalGate.metadata) === null || _k === void 0 ? void 0 : _k.action, 160);
552
+ var elapsedReapproval = ((_l = blockedSupportAutoloopApprovalGate.metadata) === null || _l === void 0 ? void 0 : _l.requiresElapsedReapproval) === true;
553
+ return {
554
+ outcome: 'manual_handoff',
555
+ reason: "Support autoloop parked before another repair loop because approval/scope is blocked: ".concat(blockedSupportAutoloopApprovalGate.reason),
556
+ nextAction: elapsedReapproval
557
+ ? 'Approve continued runtime beyond the current wall-clock boundary or park the ticket for manual review; do not run another model/code/QA continuation until that decision is recorded.'
558
+ : nextAction
559
+ ? "Run ".concat(nextAction, " or revise the blocked scope, then resume the approved autoloop toward A-grade QA/business proof.")
560
+ : 'Approve the blocked support autonomy scope or revise the diagnosis, owner files, planned change, estimate, or classification before the autoloop continues.',
561
+ gates: gates,
562
+ warnings: warnings,
563
+ recordedAt: now
564
+ };
565
+ }
566
+ var blockedSupportAutonomyApprovalGate = gates.find(function (gate) { return gate.key === 'support_autonomy_approval' && gate.status === 'blocked'; });
567
+ if (input.source === 'support_ticket' && blockedSupportAutonomyApprovalGate) {
568
+ return {
569
+ outcome: 'manual_handoff',
570
+ reason: "Support autonomy is waiting on operator approval or revised intake/diagnosis scope: ".concat(blockedSupportAutonomyApprovalGate.reason),
571
+ nextAction: ((_m = blockedSupportAutonomyApprovalGate.metadata) === null || _m === void 0 ? void 0 : _m.approvalAction)
572
+ ? "Use ".concat(blockedSupportAutonomyApprovalGate.metadata.approvalAction, " or revise the blocked scope, then allow the runner to continue until A-grade QA/business proof.")
573
+ : 'Approve the bounded support autonomy request or revise classification, estimate, owner files, or diagnosis scope before product-code repair.',
574
+ gates: gates,
575
+ warnings: warnings,
576
+ recordedAt: now
577
+ };
578
+ }
579
+ var blockedSupportProductRepairDispatchGate = gates.find(function (gate) { return gate.key === 'support_product_repair_dispatch_guard' && gate.status === 'blocked'; });
580
+ if (input.source === 'support_ticket' && blockedSupportProductRepairDispatchGate) {
581
+ return {
582
+ outcome: 'manual_handoff',
583
+ reason: "Support product-code repair dispatch is blocked by the approval/scope guard: ".concat(blockedSupportProductRepairDispatchGate.reason),
584
+ nextAction: ((_o = blockedSupportProductRepairDispatchGate.metadata) === null || _o === void 0 ? void 0 : _o.nextAction)
585
+ ? "Run ".concat(blockedSupportProductRepairDispatchGate.metadata.nextAction, " before product-code repair continues.")
586
+ : 'Approve the current support autonomy scope or revise the diagnosis/owner-file set before product-code repair continues.',
587
+ gates: gates,
588
+ warnings: warnings,
589
+ recordedAt: now
590
+ };
591
+ }
592
+ var blockedSupportHumanDecisionGate = gates.find(function (gate) { return gate.key === 'support_human_decision_request' && gate.status === 'blocked'; });
593
+ if (input.source === 'support_ticket' && blockedSupportHumanDecisionGate) {
594
+ return {
595
+ outcome: 'manual_handoff',
596
+ reason: "Support run is waiting on a specific operator decision: ".concat(blockedSupportHumanDecisionGate.reason),
597
+ nextAction: ((_p = blockedSupportHumanDecisionGate.metadata) === null || _p === void 0 ? void 0 : _p.preferredChoiceId)
598
+ ? "Choose ".concat(blockedSupportHumanDecisionGate.metadata.preferredChoiceId, " or an equivalent safe console action, then resume the runner.")
599
+ : 'Answer the requested support runner decision, then resume the runner.',
600
+ gates: gates,
601
+ warnings: warnings,
602
+ recordedAt: now
603
+ };
604
+ }
605
+ var blockedSupportPostApprovalResumeAttemptGate = gates.find(function (gate) { return gate.key === 'support_post_approval_resume_attempt' && gate.status === 'blocked'; });
606
+ if (input.source === 'support_ticket' && blockedSupportPostApprovalResumeAttemptGate) {
607
+ var nextAction = cleanText((_q = blockedSupportPostApprovalResumeAttemptGate.metadata) === null || _q === void 0 ? void 0 : _q.nextAction, 160);
608
+ var failureClass = cleanText((_r = blockedSupportPostApprovalResumeAttemptGate.metadata) === null || _r === void 0 ? void 0 : _r.failureClass, 160);
609
+ return {
610
+ outcome: 'manual_handoff',
611
+ reason: "Approved support autoloop resume did not start: ".concat(blockedSupportPostApprovalResumeAttemptGate.reason),
612
+ nextAction: nextAction
613
+ ? "Review ".concat(failureClass || 'resume blocker', " and run ").concat(nextAction, " only after the blocker fingerprint changes; product repair and customer reply remain blocked.")
614
+ : 'Review the approved autoloop resume blocker and require a changed blocker fingerprint before another retry.',
615
+ gates: gates,
616
+ warnings: warnings,
617
+ recordedAt: now
618
+ };
619
+ }
620
+ var blockedSupportPostApprovalAutostartGate = gates.find(function (gate) { return gate.key === 'support_post_approval_autostart' && gate.status === 'blocked'; });
621
+ if (input.source === 'support_ticket' && blockedSupportPostApprovalAutostartGate) {
622
+ var nextAction = cleanText((_s = blockedSupportPostApprovalAutostartGate.metadata) === null || _s === void 0 ? void 0 : _s.nextAction, 160);
623
+ var canRetryWithoutReapproval = ((_t = blockedSupportPostApprovalAutostartGate.metadata) === null || _t === void 0 ? void 0 : _t.canRetryWithoutReapproval) === true;
624
+ var safeRetryAction = cleanText((_u = blockedSupportPostApprovalAutostartGate.metadata) === null || _u === void 0 ? void 0 : _u.safeRetryAction, 160);
625
+ return {
626
+ outcome: 'manual_handoff',
627
+ reason: "Support autonomy was approved, but the post-approval autostart did not begin: ".concat(blockedSupportPostApprovalAutostartGate.reason),
628
+ nextAction: canRetryWithoutReapproval && safeRetryAction === 'run_autoloop'
629
+ ? 'Retry the approved auto-improve loop under the same approval/scope fingerprint; no product repair or customer reply is allowed until the loop starts and records proof.'
630
+ : nextAction === 'resolve_autostart_blocker'
631
+ ? 'Resolve the autostart blocker or clear the active run, then rerun runSupportTicketAutoImproveLoopManual under the approved scope until A-grade PR proof.'
632
+ : 'Review the post-approval autostart result, then resume the approved auto-improve loop without changing scope.',
633
+ gates: gates,
634
+ warnings: warnings,
635
+ recordedAt: now
636
+ };
637
+ }
638
+ if ((qa === null || qa === void 0 ? void 0 : qa.outcome) === 'infra_failed') {
639
+ return {
640
+ outcome: 'qa_infra_failed',
641
+ reason: 'QA infrastructure failed before product validation.',
642
+ nextAction: 'Repair QA harness dependencies, ports, browser, Mongo, or startup before another model repair loop.',
643
+ gates: gates,
644
+ warnings: warnings,
645
+ recordedAt: now
646
+ };
647
+ }
648
+ if ((qa === null || qa === void 0 ? void 0 : qa.outcome) === 'compile_failed') {
649
+ return {
650
+ outcome: 'build_failed',
651
+ reason: 'Compile/build evidence failed or was stale.',
652
+ nextAction: 'Repair compile/build first, then rerun QA from the same failed step.',
653
+ gates: gates,
654
+ warnings: warnings,
655
+ recordedAt: now
656
+ };
657
+ }
658
+ if ((qa === null || qa === void 0 ? void 0 : qa.outcome) === 'route_failed') {
659
+ return {
660
+ outcome: 'qa_incomplete',
661
+ reason: 'Browser route probe failed before business proof.',
662
+ nextAction: 'Repair route/auth/startup issue and rerun the same browser route probe.',
663
+ gates: gates,
664
+ warnings: warnings,
665
+ recordedAt: now
666
+ };
667
+ }
668
+ var blockedAICoderJourneyContractGate = gates.find(function (gate) { return gate.key === 'aicoder_journey_contract' && (gate.status === 'blocked' || gate.status === 'fail'); });
669
+ if (blockedAICoderJourneyContractGate) {
670
+ var claimedSuccess = input.explicitAccepted === true || input.scorecardPassed === true || statusLooksPassed(input.scorecardStatus) || statusLooksPassed("".concat(input.status || '', " ").concat(input.phase || ''));
671
+ return {
672
+ outcome: claimedSuccess ? 'false_pass' : 'qa_incomplete',
673
+ reason: claimedSuccess
674
+ ? "AICoder run claimed success without a valid Journey Contract: ".concat(blockedAICoderJourneyContractGate.reason)
675
+ : "AICoder workflow is blocked until the Journey Contract validates: ".concat(blockedAICoderJourneyContractGate.reason),
676
+ nextAction: 'Generate or repair docs/APP_JOURNEY_CONTRACT.md, validate first/next/last workflow/data story/QA assertions, then rerun workflow build and workflow QA.',
677
+ gates: gates,
678
+ warnings: warnings,
679
+ recordedAt: now
680
+ };
681
+ }
682
+ var blockedSupportNextActionContractGate = gates.find(function (gate) { return gate.key === 'support_next_action_contract' && gate.status === 'blocked'; });
683
+ if (blockedSupportNextActionContractGate
684
+ && (qa === null || qa === void 0 ? void 0 : qa.outcome) !== 'business_assertion_passed'
685
+ && input.scorecardPassed !== true
686
+ && !statusLooksPassed(input.scorecardStatus)) {
687
+ return {
688
+ outcome: 'manual_handoff',
689
+ reason: "Support manager cannot safely continue without a valid next-action contract: ".concat(blockedSupportNextActionContractGate.reason),
690
+ nextAction: 'Record one validated next-action contract with safeToAutoRun, canRunWithoutCodexMonitor, codexFallbackRequired, preconditions, stop conditions, and success evidence before another autonomous recovery.',
691
+ gates: gates,
692
+ warnings: warnings,
693
+ recordedAt: now
694
+ };
695
+ }
696
+ var blockedSupportIssueClassProbePlanGate = gates.find(function (gate) { return gate.key === 'support_issue_class_probe_plan' && (gate.status === 'blocked' || gate.status === 'fail'); });
697
+ if (input.source === 'support_ticket' && blockedSupportIssueClassProbePlanGate) {
698
+ var claimedSuccess = input.explicitAccepted === true
699
+ || input.scorecardPassed === true
700
+ || statusLooksPassed(input.scorecardStatus)
701
+ || statusLooksPassed("".concat(input.status || '', " ").concat(input.phase || ''));
702
+ return {
703
+ outcome: claimedSuccess ? 'false_pass' : 'qa_incomplete',
704
+ reason: claimedSuccess
705
+ ? "Support run claimed success without a valid issue-class probe plan: ".concat(blockedSupportIssueClassProbePlanGate.reason)
706
+ : "Support business proof is blocked until the issue-class probe plan validates: ".concat(blockedSupportIssueClassProbePlanGate.reason),
707
+ nextAction: 'Generate or repair the Support IssueClassProbePlan from the diagnosis proof_plan, then rerun issue-specific business proof QA.',
708
+ gates: gates,
709
+ warnings: warnings,
710
+ recordedAt: now
711
+ };
712
+ }
713
+ var blockedAssistantAnswerActionabilityGate = gates.find(function (gate) { return gate.key === 'assistant_answer_actionability' && (gate.status === 'blocked' || gate.status === 'fail'); });
714
+ if (input.source === 'ai_assistant' && blockedAssistantAnswerActionabilityGate) {
715
+ var claimedSuccess = input.explicitAccepted === true
716
+ || statusLooksPassed("".concat(input.status || '', " ").concat(input.phase || ''));
717
+ return {
718
+ outcome: claimedSuccess ? 'false_pass' : 'qa_incomplete',
719
+ reason: claimedSuccess
720
+ ? "Assistant answer was marked accepted without a valid actionability contract: ".concat(blockedAssistantAnswerActionabilityGate.reason)
721
+ : "Assistant answer is blocked until actionability evidence validates: ".concat(blockedAssistantAnswerActionabilityGate.reason),
722
+ nextAction: 'Record verified query/date/permission/citation/confidence evidence and one assistant actionability contract before answering or drafting customer-facing text.',
723
+ gates: gates,
724
+ warnings: warnings,
725
+ recordedAt: now
726
+ };
727
+ }
728
+ if ((qa === null || qa === void 0 ? void 0 : qa.outcome) === 'route_only_pass' || (qa === null || qa === void 0 ? void 0 : qa.outcome) === 'incomplete') {
729
+ return {
730
+ outcome: input.scorecardPassed === true ? 'false_pass' : 'qa_incomplete',
731
+ reason: input.scorecardPassed === true
732
+ ? 'Scorecard or workflow status passed without issue-specific business assertion proof.'
733
+ : 'QA has not recorded issue-specific business assertion proof.',
734
+ nextAction: 'Add before/action/after workflow proof with screenshot/data assertions before acceptance.',
735
+ gates: gates,
736
+ warnings: warnings,
737
+ recordedAt: now
738
+ };
739
+ }
740
+ if ((qa === null || qa === void 0 ? void 0 : qa.outcome) === 'business_assertion_failed') {
741
+ return {
742
+ outcome: input.terminal === true ? 'rejected' : 'qa_incomplete',
743
+ reason: 'Issue-specific business assertion failed.',
744
+ nextAction: 'Repair the product/data defect and rerun the failing assertion.',
745
+ gates: gates,
746
+ warnings: warnings,
747
+ recordedAt: now
748
+ };
749
+ }
750
+ var hasBusinessPass = (qa === null || qa === void 0 ? void 0 : qa.outcome) === 'business_assertion_passed';
751
+ var scorecardPassed = input.scorecardPassed === true || statusLooksPassed(input.scorecardStatus);
752
+ var releaseBlockers = [];
753
+ if (statusLooksFailed(input.deployStatus)) {
754
+ releaseBlockers.push("deploy=".concat(cleanText(input.deployStatus, 120)));
755
+ }
756
+ if (statusLooksFailed(input.publishStatus)) {
757
+ releaseBlockers.push("publish=".concat(cleanText(input.publishStatus, 120)));
758
+ }
759
+ if (statusLooksFailed(input.sampleDataStatus)) {
760
+ releaseBlockers.push("sample_data=".concat(cleanText(input.sampleDataStatus, 120)));
761
+ }
762
+ if (releaseBlockers.length && (scorecardPassed || hasBusinessPass)) {
763
+ addGateOnce(gates, makeGate('release', 'Release/deploy', 'fail', "Final acceptance is blocked after QA/scorecard because release gates failed: ".concat(releaseBlockers.join(', '), "."), [], now));
764
+ return {
765
+ outcome: 'release_blocked',
766
+ reason: "Release gates failed after QA/scorecard: ".concat(releaseBlockers.join(', '), "."),
767
+ nextAction: 'Repair deploy/publish/sample-data coverage before marking the run accepted.',
768
+ gates: gates,
769
+ warnings: warnings,
770
+ recordedAt: now
771
+ };
772
+ }
773
+ var failedSupportPrCreationGate = gates.find(function (gate) { return gate.key === 'support_pr_creation_result' && (gate.status === 'fail' || gate.status === 'blocked'); });
774
+ if (input.source === 'support_ticket' && failedSupportPrCreationGate) {
775
+ return {
776
+ outcome: 'release_blocked',
777
+ reason: "Support PR creation is blocked after proof-ready work: ".concat(failedSupportPrCreationGate.reason),
778
+ nextAction: ((_v = failedSupportPrCreationGate.metadata) === null || _v === void 0 ? void 0 : _v.nextAction) === 'repair_pr_creation_blocker'
779
+ ? 'Repair the PR creation/release-safety blocker or route to platform repair; do not rerun product-code repair unless new issue evidence changes.'
780
+ : 'Check PR creation status before another repair loop.',
781
+ gates: gates,
782
+ warnings: warnings,
783
+ recordedAt: now
784
+ };
785
+ }
786
+ var blockedSupportAutopilotCompletionGate = gates.find(function (gate) { return gate.key === 'support_autopilot_completion_contract' && gate.status === 'blocked'; });
787
+ if (input.source === 'support_ticket' && blockedSupportAutopilotCompletionGate) {
788
+ var nextAction = cleanText((_w = blockedSupportAutopilotCompletionGate.metadata) === null || _w === void 0 ? void 0 : _w.nextAction, 160);
789
+ var missingEvidence = Array.isArray((_x = blockedSupportAutopilotCompletionGate.metadata) === null || _x === void 0 ? void 0 : _x.missingCompletionEvidence)
790
+ ? blockedSupportAutopilotCompletionGate.metadata.missingCompletionEvidence
791
+ .map(function (entry) { return cleanText(entry, 240); })
792
+ .filter(Boolean)
793
+ : [];
794
+ var outcome = nextAction === 'create_pr'
795
+ ? 'release_blocked'
796
+ : (input.explicitAccepted === true || scorecardPassed || statusLooksPassed("".concat(input.status || '', " ").concat(input.phase || '')) || hasBusinessPass)
797
+ ? 'false_pass'
798
+ : 'qa_incomplete';
799
+ return {
800
+ outcome: outcome,
801
+ reason: "Approved support autopilot has not reached A-grade PR proof: ".concat(blockedSupportAutopilotCompletionGate.reason),
802
+ nextAction: nextAction === 'create_pr'
803
+ ? 'Create the proof-backed support PR; merge, release, deploy, and customer reply remain separately gated.'
804
+ : nextAction === 'run_business_proof_qa'
805
+ ? 'Run issue-specific business proof QA until AIQaBusinessAssertion, before/action/after proof, and screenshot/trace evidence pass.'
806
+ : nextAction === 'run_a_grade_pr_review'
807
+ ? 'Run strict A-grade PR review; do not merge, release, deploy, or send the customer reply until execution, artifact, pull_request, business-proof, and screenshot/trace evidence pass.'
808
+ : 'Continue only the bounded owner-scoped support workflow until PR readiness or a new blocker/scope change.',
809
+ gates: gates,
810
+ warnings: missingEvidence.length
811
+ ? __spreadArray(__spreadArray([], __read(warnings), false), __read(missingEvidence.map(function (entry) { return "missing_completion_evidence:".concat(entry); })), false) : warnings,
812
+ recordedAt: now
813
+ };
814
+ }
815
+ var blockedSupportReleaseCustomerGate = gates.find(function (gate) { return gate.key === 'support_release_customer_acceptance' && (gate.status === 'blocked' || gate.status === 'fail'); });
816
+ if (input.source === 'support_ticket' && blockedSupportReleaseCustomerGate) {
817
+ var nextAction = cleanText((_y = blockedSupportReleaseCustomerGate.metadata) === null || _y === void 0 ? void 0 : _y.nextAction, 160);
818
+ return {
819
+ outcome: 'release_blocked',
820
+ reason: "Support PR proof is ready, but release/customer acceptance is incomplete: ".concat(blockedSupportReleaseCustomerGate.reason),
821
+ nextAction: nextAction === 'draft_or_review_proof_backed_customer_reply'
822
+ ? 'Draft or review the proof-backed customer reply from the accepted QA/release evidence; do not rerun product-code repair unless new issue evidence appears.'
823
+ : 'Complete the release/hotfix gate for the A-grade PR, then generate or review the proof-backed customer reply.',
824
+ gates: gates,
825
+ warnings: warnings,
826
+ recordedAt: now
827
+ };
828
+ }
829
+ var blockedAICoderNextActionContractGate = gates.find(function (gate) { return gate.key === 'aicoder_next_action_contract' && (gate.status === 'blocked' || gate.status === 'fail'); });
830
+ if (input.source === 'aicoder_app' && blockedAICoderNextActionContractGate) {
831
+ var claimedSuccess = input.explicitAccepted === true
832
+ || input.scorecardPassed === true
833
+ || statusLooksPassed(input.scorecardStatus)
834
+ || statusLooksPassed("".concat(input.status || '', " ").concat(input.phase || ''));
835
+ return {
836
+ outcome: claimedSuccess ? 'false_pass' : 'manual_handoff',
837
+ reason: claimedSuccess
838
+ ? "AICoder run claimed success without a manager-safe next-action contract: ".concat(blockedAICoderNextActionContractGate.reason)
839
+ : "AICoder manager cannot safely continue without a manager-safe next-action contract: ".concat(blockedAICoderNextActionContractGate.reason),
840
+ nextAction: 'Record one validated AICoder next-action contract with safeToAutoRun, canRunWithoutCodexMonitor, codexFallbackRequired, stop conditions, and success evidence before another autonomous loop.',
841
+ gates: gates,
842
+ warnings: warnings,
843
+ recordedAt: now
844
+ };
845
+ }
846
+ if (scorecardPassed && !hasBusinessPass) {
847
+ warnings.push('scorecard_pass_without_business_assertion');
848
+ addGateOnce(gates, makeGate('business_assertion_required', 'Business assertion', 'blocked', 'Scorecard passed, but no issue-specific business assertion proof was recorded.', [], now));
849
+ return {
850
+ outcome: 'false_pass',
851
+ reason: 'Scorecard-only proof is not acceptance.',
852
+ nextAction: 'Record issue-specific workflow/data proof, then reclassify the run.',
853
+ gates: gates,
854
+ warnings: warnings,
855
+ recordedAt: now
856
+ };
857
+ }
858
+ var statusPhase = "".concat(input.status || '', " ").concat(input.phase || '');
859
+ if ((input.explicitAccepted === true || statusLooksPassed(statusPhase) || scorecardPassed) && hasBusinessPass) {
860
+ return {
861
+ outcome: 'accepted',
862
+ reason: 'Run has terminal success signal and issue-specific business assertion proof.',
863
+ nextAction: 'No repair action required.',
864
+ gates: gates,
865
+ warnings: warnings,
866
+ recordedAt: now
867
+ };
868
+ }
869
+ if (statusLooksFailed(statusPhase)) {
870
+ return {
871
+ outcome: 'rejected',
872
+ reason: 'Run ended with a failure status and no accepted proof.',
873
+ nextAction: 'Classify the failing gate and rerun the smallest repair step.',
874
+ gates: gates,
875
+ warnings: warnings,
876
+ recordedAt: now
877
+ };
878
+ }
879
+ return {
880
+ outcome: 'unknown',
881
+ reason: 'Run does not have enough normalized evidence for a terminal label.',
882
+ nextAction: 'Ingest QA, deploy, assistant, usage, and commit evidence before using this run for training.',
883
+ gates: gates,
884
+ warnings: warnings,
885
+ recordedAt: now
886
+ };
887
+ }
888
+ function buildAIRun(input) {
889
+ var decision = input.outcome
890
+ ? {
891
+ outcome: input.outcome,
892
+ gates: input.gates || [],
893
+ warnings: input.warnings || [],
894
+ nextAction: input.nextAction || '',
895
+ reason: '',
896
+ recordedAt: isoNow(input.now)
897
+ }
898
+ : classifyAIRunOutcome({
899
+ source: input.source,
900
+ status: input.status,
901
+ phase: input.phase,
902
+ qa: input.qa,
903
+ gates: input.gates,
904
+ scorecardPassed: input.scorecardPassed,
905
+ deployStatus: input.deployStatus,
906
+ publishStatus: input.publishStatus,
907
+ sampleDataStatus: input.sampleDataStatus,
908
+ manualHandoff: input.manualHandoff,
909
+ stopped: input.stopped,
910
+ rejected: input.rejected,
911
+ explicitAccepted: input.explicitAccepted,
912
+ terminal: input.terminal,
913
+ now: input.now
914
+ });
915
+ return {
916
+ id: input.id,
917
+ source: input.source || 'unknown',
918
+ sourceIds: input.sourceIds || {},
919
+ title: input.title,
920
+ status: input.status,
921
+ phase: input.phase,
922
+ startedAt: input.startedAt,
923
+ completedAt: input.completedAt,
924
+ outcome: decision.outcome,
925
+ events: Array.isArray(input.events) ? input.events : [],
926
+ gates: decision.gates,
927
+ qa: normalizeQaRun(input.qa),
928
+ cost: input.cost,
929
+ nextAction: decision.nextAction,
930
+ warnings: decision.warnings,
931
+ metadata: input.metadata
932
+ };
933
+ }
934
+ function buildAIRunCost(entries) {
935
+ var e_5, _a, e_6, _b, e_7, _c, e_8, _d;
936
+ var _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
937
+ if (entries === void 0) { entries = []; }
938
+ var cost = {
939
+ inputTokens: 0,
940
+ cachedInputTokens: 0,
941
+ outputTokens: 0,
942
+ totalTokens: 0,
943
+ estimatedUsd: 0,
944
+ models: [],
945
+ categories: {},
946
+ sources: {},
947
+ surfaces: {},
948
+ manualEstimatedUsd: 0,
949
+ untrackedEstimatedUsd: 0,
950
+ untrackedWarnings: []
951
+ };
952
+ try {
953
+ for (var _x = __values(normalizeOpenAIUsageRowsForCosting(entries)), _y = _x.next(); !_y.done; _y = _x.next()) {
954
+ var entry = _y.value;
955
+ var category = cleanText(entry.category, 120) || 'unknown';
956
+ var source = cleanText((_e = entry.usage_source) !== null && _e !== void 0 ? _e : entry.usageSource, 80) || 'unknown';
957
+ var surface = cleanText((_f = entry.usage_surface) !== null && _f !== void 0 ? _f : entry.usageSurface, 80) || 'unknown';
958
+ var isManual = entry.is_manual === true || entry.isManual === true || source === 'manual_codex';
959
+ var isUntracked = entry.is_untracked === true || entry.isUntracked === true;
960
+ var untrackedReason = cleanText((_g = entry.untracked_reason) !== null && _g !== void 0 ? _g : entry.untrackedReason, 500);
961
+ var model = cleanText(entry.model, 120);
962
+ var inputTokens = Number((_j = (_h = entry.input_tokens) !== null && _h !== void 0 ? _h : entry.inputTokens) !== null && _j !== void 0 ? _j : 0) || 0;
963
+ var cachedInputTokens = Number((_l = (_k = entry.cached_input_tokens) !== null && _k !== void 0 ? _k : entry.cachedInputTokens) !== null && _l !== void 0 ? _l : 0) || 0;
964
+ var outputTokens = Number((_o = (_m = entry.output_tokens) !== null && _m !== void 0 ? _m : entry.outputTokens) !== null && _o !== void 0 ? _o : 0) || 0;
965
+ var totalTokens = Number((_q = (_p = entry.total_tokens) !== null && _p !== void 0 ? _p : entry.totalTokens) !== null && _q !== void 0 ? _q : (inputTokens + outputTokens)) || 0;
966
+ var estimatedUsd = Number((_s = (_r = entry.cost_estimate) !== null && _r !== void 0 ? _r : entry.estimatedUsd) !== null && _s !== void 0 ? _s : 0) || 0;
967
+ cost.inputTokens += inputTokens;
968
+ cost.cachedInputTokens += cachedInputTokens;
969
+ cost.outputTokens += outputTokens;
970
+ cost.totalTokens += totalTokens;
971
+ cost.estimatedUsd += estimatedUsd;
972
+ if (isManual) {
973
+ cost.manualEstimatedUsd = Number(cost.manualEstimatedUsd || 0) + estimatedUsd;
974
+ }
975
+ if (isUntracked) {
976
+ cost.untrackedEstimatedUsd = Number(cost.untrackedEstimatedUsd || 0) + estimatedUsd;
977
+ var warning = untrackedReason || "".concat(source, " usage is an estimate outside managed runner telemetry.");
978
+ if (warning && !((_t = cost.untrackedWarnings) === null || _t === void 0 ? void 0 : _t.includes(warning))) {
979
+ (_u = cost.untrackedWarnings) === null || _u === void 0 ? void 0 : _u.push(warning);
980
+ }
981
+ }
982
+ if (model && !cost.models.includes(model)) {
983
+ cost.models.push(model);
984
+ }
985
+ if (!cost.categories[category]) {
986
+ cost.categories[category] = {
987
+ inputTokens: 0,
988
+ cachedInputTokens: 0,
989
+ outputTokens: 0,
990
+ totalTokens: 0,
991
+ estimatedUsd: 0,
992
+ count: 0
993
+ };
994
+ }
995
+ cost.categories[category].inputTokens += inputTokens;
996
+ cost.categories[category].cachedInputTokens += cachedInputTokens;
997
+ cost.categories[category].outputTokens += outputTokens;
998
+ cost.categories[category].totalTokens += totalTokens;
999
+ cost.categories[category].estimatedUsd += estimatedUsd;
1000
+ cost.categories[category].count += 1;
1001
+ if (!((_v = cost.sources) === null || _v === void 0 ? void 0 : _v[source])) {
1002
+ cost.sources[source] = {
1003
+ inputTokens: 0,
1004
+ cachedInputTokens: 0,
1005
+ outputTokens: 0,
1006
+ totalTokens: 0,
1007
+ estimatedUsd: 0,
1008
+ count: 0,
1009
+ manualCount: 0,
1010
+ untrackedCount: 0
1011
+ };
1012
+ }
1013
+ cost.sources[source].inputTokens += inputTokens;
1014
+ cost.sources[source].cachedInputTokens += cachedInputTokens;
1015
+ cost.sources[source].outputTokens += outputTokens;
1016
+ cost.sources[source].totalTokens += totalTokens;
1017
+ cost.sources[source].estimatedUsd += estimatedUsd;
1018
+ cost.sources[source].count += 1;
1019
+ if (isManual) {
1020
+ cost.sources[source].manualCount += 1;
1021
+ }
1022
+ if (isUntracked) {
1023
+ cost.sources[source].untrackedCount += 1;
1024
+ }
1025
+ if (!((_w = cost.surfaces) === null || _w === void 0 ? void 0 : _w[surface])) {
1026
+ cost.surfaces[surface] = {
1027
+ totalTokens: 0,
1028
+ estimatedUsd: 0,
1029
+ count: 0
1030
+ };
1031
+ }
1032
+ cost.surfaces[surface].totalTokens += totalTokens;
1033
+ cost.surfaces[surface].estimatedUsd += estimatedUsd;
1034
+ cost.surfaces[surface].count += 1;
1035
+ }
1036
+ }
1037
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
1038
+ finally {
1039
+ try {
1040
+ if (_y && !_y.done && (_a = _x.return)) _a.call(_x);
1041
+ }
1042
+ finally { if (e_5) throw e_5.error; }
1043
+ }
1044
+ cost.estimatedUsd = Number(cost.estimatedUsd.toFixed(6));
1045
+ cost.manualEstimatedUsd = Number(Number(cost.manualEstimatedUsd || 0).toFixed(6));
1046
+ cost.untrackedEstimatedUsd = Number(Number(cost.untrackedEstimatedUsd || 0).toFixed(6));
1047
+ try {
1048
+ for (var _z = __values(Object.keys(cost.categories)), _0 = _z.next(); !_0.done; _0 = _z.next()) {
1049
+ var category = _0.value;
1050
+ cost.categories[category].estimatedUsd = Number(cost.categories[category].estimatedUsd.toFixed(6));
1051
+ }
1052
+ }
1053
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
1054
+ finally {
1055
+ try {
1056
+ if (_0 && !_0.done && (_b = _z.return)) _b.call(_z);
1057
+ }
1058
+ finally { if (e_6) throw e_6.error; }
1059
+ }
1060
+ try {
1061
+ for (var _1 = __values(Object.keys(cost.sources || {})), _2 = _1.next(); !_2.done; _2 = _1.next()) {
1062
+ var source = _2.value;
1063
+ cost.sources[source].estimatedUsd = Number(cost.sources[source].estimatedUsd.toFixed(6));
1064
+ }
1065
+ }
1066
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
1067
+ finally {
1068
+ try {
1069
+ if (_2 && !_2.done && (_c = _1.return)) _c.call(_1);
1070
+ }
1071
+ finally { if (e_7) throw e_7.error; }
1072
+ }
1073
+ try {
1074
+ for (var _3 = __values(Object.keys(cost.surfaces || {})), _4 = _3.next(); !_4.done; _4 = _3.next()) {
1075
+ var surface = _4.value;
1076
+ cost.surfaces[surface].estimatedUsd = Number(cost.surfaces[surface].estimatedUsd.toFixed(6));
1077
+ }
1078
+ }
1079
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
1080
+ finally {
1081
+ try {
1082
+ if (_4 && !_4.done && (_d = _3.return)) _d.call(_3);
1083
+ }
1084
+ finally { if (e_8) throw e_8.error; }
1085
+ }
1086
+ return cost;
1087
+ }
1088
+ function redactAIRunTrainingExample(example) {
1089
+ var redact = function (value) { return cleanText(value, 5000)
1090
+ .replace(/mongodb(?:\+srv)?:\/\/[^\s"'<>]+/ig, '[redacted-mongo-url]')
1091
+ .replace(/\b(?:sk|ghp|xoxb|AKIA)[A-Za-z0-9_\-]{12,}\b/g, '[redacted-secret]')
1092
+ .replace(/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z]{2,}\b/ig, '[redacted-email]'); };
1093
+ return __assign(__assign({}, example), { inputSummary: redact(example.inputSummary), actionSummary: redact(example.actionSummary), evidence: cleanList(example.evidence, 80, 5000).map(redact) });
1094
+ }
1095
+
1096
+ //# sourceMappingURL=ai-run-evidence.js.map