@resolveio/server-lib 22.3.141 → 22.3.142

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/.nodemon.json +5 -0
  2. package/.vscode/settings.json +21 -0
  3. package/AGENTS.md +195 -0
  4. package/README.md +22 -0
  5. package/build_package.sh +5 -0
  6. package/compileDTS.pl +64 -0
  7. package/docs/ai-assistant-nightly-eval.md +65 -0
  8. package/docs/ai-assistant-preflight-checklist.md +23 -0
  9. package/docs/ai-assistant-report-builder-bridge-playbook.md +115 -0
  10. package/eslint-plugin-custom/index.js +7 -0
  11. package/eslint-plugin-custom/rules/no-filter-zero-index.js +44 -0
  12. package/eslint.config.js +103 -0
  13. package/gulpfile.js +216 -0
  14. package/methodAndPublicationListGenerator.py +375 -0
  15. package/mongodbensurers.js +2 -0
  16. package/mongostop.js +3 -0
  17. package/package.json +1 -1
  18. package/scripts/cleanup-bypassed-callmethod-logs.js +616 -0
  19. package/settings.development.json +25 -0
  20. package/settings.development.redacted.json +25 -0
  21. package/src/.env +12 -0
  22. package/src/ai/assistant-core-heuristics.ts +379 -0
  23. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +185 -0
  24. package/src/ai/resolveio-platform-intelligence-memory.ts +325 -0
  25. package/{ai/resolveio-platform-intelligence-types.d.ts → src/ai/resolveio-platform-intelligence-types.ts} +20 -15
  26. package/src/ai/resolveio-platform-intelligence.ts +462 -0
  27. package/src/client-server-app.ts +12 -0
  28. package/src/collections/ai-run.collection.ts +117 -0
  29. package/src/collections/ai-terminal-conversation.collection.ts +91 -0
  30. package/src/collections/ai-terminal-issue-report.collection.ts +99 -0
  31. package/src/collections/ai-terminal-message.collection.ts +77 -0
  32. package/src/collections/app-setting.collection.ts +104 -0
  33. package/src/collections/app-status.collection.ts +58 -0
  34. package/src/collections/communication-metric.collection.ts +84 -0
  35. package/src/collections/counter.collection.ts +56 -0
  36. package/src/collections/cron-job-history.collection.ts +94 -0
  37. package/src/collections/cron-job.collection.ts +92 -0
  38. package/src/collections/customer-notification.collection.ts +131 -0
  39. package/src/collections/customer-portal-password.collection.ts +76 -0
  40. package/src/collections/email-history.collection.ts +134 -0
  41. package/src/collections/email-verified.collection.ts +62 -0
  42. package/src/collections/file.collection.ts +74 -0
  43. package/src/collections/flag-update.collection.ts +57 -0
  44. package/src/collections/flag.collection.ts +57 -0
  45. package/src/collections/log-method-latency.collection.ts +77 -0
  46. package/src/collections/log-subscription.collection.ts +80 -0
  47. package/src/collections/log.collection.ts +93 -0
  48. package/src/collections/logged-in-users.collection.ts +67 -0
  49. package/src/collections/monitor-cpu.collection.ts +65 -0
  50. package/src/collections/monitor-function.collection.ts +74 -0
  51. package/src/collections/monitor-memory.collection.ts +77 -0
  52. package/src/collections/monitor-mongo.collection.ts +71 -0
  53. package/src/collections/notification.collection.ts +57 -0
  54. package/src/collections/openai-usage-ledger.collection.ts +77 -0
  55. package/src/collections/report-builder-dashboard-builder.collection.ts +109 -0
  56. package/src/collections/report-builder-library.collection.ts +89 -0
  57. package/src/collections/report-builder-report.collection.ts +184 -0
  58. package/src/collections/user-group.collection.ts +89 -0
  59. package/src/collections/user-guide.collection.ts +57 -0
  60. package/src/collections/user.collection.ts +181 -0
  61. package/src/cron/cron.ts +117 -0
  62. package/src/fixtures/cron-jobs.ts +95 -0
  63. package/src/fixtures/init.ts +35 -0
  64. package/src/http/auth.ts +818 -0
  65. package/src/http/health.ts +7 -0
  66. package/src/http/home.ts +90 -0
  67. package/src/http/slow-query-publication.ts +49 -0
  68. package/src/index.ts +1 -0
  69. package/src/managers/ai-assistant-codex-manager.manager.ts +1131 -0
  70. package/src/managers/ai-run-evidence.manager.ts +264 -0
  71. package/src/managers/communication-metric.manager.ts +82 -0
  72. package/src/managers/cron.manager.ts +333 -0
  73. package/src/managers/customer-notification-content.manager.ts +236 -0
  74. package/src/managers/diagnostic-manager-bootstrap.ts +165 -0
  75. package/src/managers/error-auto-fix.manager.ts +2767 -0
  76. package/src/managers/local-log.manager.ts +113 -0
  77. package/src/managers/method.manager.ts +1857 -0
  78. package/src/managers/mongo.manager.ts +4575 -0
  79. package/src/managers/monitor.manager.ts +507 -0
  80. package/src/managers/openai-usage-ledger.manager.ts +57 -0
  81. package/src/managers/slow-query-verifier.manager.ts +3590 -0
  82. package/src/managers/slow-query.manager.ts +519 -0
  83. package/src/managers/subscription.manager.ts +3128 -0
  84. package/src/managers/websocket.manager.ts +746 -0
  85. package/src/managers/worker-dispatcher.manager.ts +1360 -0
  86. package/src/managers/worker-server.manager.ts +536 -0
  87. package/src/methods/accounts.ts +532 -0
  88. package/src/methods/ai-terminal.ts +23497 -0
  89. package/src/methods/app-settings.ts +114 -0
  90. package/src/methods/aws.ts +649 -0
  91. package/src/methods/collections.ts +641 -0
  92. package/src/methods/counters.ts +69 -0
  93. package/src/methods/cron-jobs.ts +2614 -0
  94. package/src/methods/customer-notifications.ts +458 -0
  95. package/src/methods/diagnostics.ts +616 -0
  96. package/src/methods/flag-updates.ts +7 -0
  97. package/src/methods/flags.ts +7 -0
  98. package/src/methods/logs.ts +657 -0
  99. package/src/methods/mongo-explorer.ts +1880 -0
  100. package/src/methods/monitor.ts +540 -0
  101. package/src/methods/pdf.ts +1236 -0
  102. package/src/methods/publications.ts +129 -0
  103. package/src/methods/report-builder.ts +3300 -0
  104. package/src/methods/support.ts +335 -0
  105. package/src/models/ai-run.model.ts +27 -0
  106. package/src/models/ai-terminal-conversation.model.ts +19 -0
  107. package/src/models/ai-terminal-issue-report.model.ts +21 -0
  108. package/src/models/ai-terminal-message.model.ts +24 -0
  109. package/src/models/app-setting.model.ts +17 -0
  110. package/{models/app-status.model.d.ts → src/models/app-status.model.ts} +3 -2
  111. package/{models/billing-logged-in-users.model.d.ts → src/models/billing-logged-in-users.model.ts} +5 -4
  112. package/src/models/collection-document.model.ts +24 -0
  113. package/src/models/communication-metric.model.ts +23 -0
  114. package/{models/counter.model.d.ts → src/models/counter.model.ts} +4 -3
  115. package/src/models/cron-job-history.model.ts +16 -0
  116. package/src/models/cron-job.model.ts +15 -0
  117. package/src/models/customer-notification.model.ts +28 -0
  118. package/src/models/customer-portal-password.model.ts +12 -0
  119. package/src/models/dialog.model.ts +25 -0
  120. package/{models/email-history.model.js → src/models/email-history.model.ts} +36 -4
  121. package/{models/email-verified.model.d.ts → src/models/email-verified.model.ts} +6 -5
  122. package/{models/file.model.d.ts → src/models/file.model.ts} +8 -7
  123. package/{models/flag-update.model.d.ts → src/models/flag-update.model.ts} +4 -3
  124. package/{models/flag.model.d.ts → src/models/flag.model.ts} +4 -3
  125. package/src/models/log-method-latency.model.ts +11 -0
  126. package/{models/log-subscription.model.d.ts → src/models/log-subscription.model.ts} +11 -9
  127. package/src/models/log.model.ts +19 -0
  128. package/{models/logged-in-users.model.d.ts → src/models/logged-in-users.model.ts} +6 -5
  129. package/{models/method-response.model.d.ts → src/models/method-response.model.ts} +7 -6
  130. package/src/models/method.model.ts +25 -0
  131. package/{models/monitor-cpu.model.d.ts → src/models/monitor-cpu.model.ts} +9 -7
  132. package/src/models/monitor-function.model.ts +16 -0
  133. package/src/models/monitor-memory.model.ts +17 -0
  134. package/src/models/monitor-mongo.model.ts +15 -0
  135. package/{models/notification.model.d.ts → src/models/notification.model.ts} +6 -4
  136. package/src/models/openai-usage-ledger.model.ts +16 -0
  137. package/src/models/pagination.model.ts +35 -0
  138. package/src/models/permission.model.ts +14 -0
  139. package/src/models/report-builder-dashboard-builder.model.ts +29 -0
  140. package/src/models/report-builder-library.model.ts +20 -0
  141. package/src/models/report-builder-report.model.ts +136 -0
  142. package/src/models/report-builder.model.ts +68 -0
  143. package/src/models/select-data-label.model.ts +9 -0
  144. package/src/models/server-message.model.ts +31 -0
  145. package/src/models/slow-query-report.model.ts +23 -0
  146. package/src/models/subscription.model.ts +73 -0
  147. package/src/models/support-ticket.model.ts +104 -0
  148. package/src/models/user-group.model.ts +24 -0
  149. package/{models/user-guide.model.d.ts → src/models/user-guide.model.ts} +5 -4
  150. package/src/models/user.model.ts +96 -0
  151. package/src/private/images/ResolveIO.png +0 -0
  152. package/src/publications/ai-terminal.ts +73 -0
  153. package/src/publications/app-settings.ts +25 -0
  154. package/src/publications/app-status.ts +13 -0
  155. package/src/publications/cron-jobs.ts +40 -0
  156. package/src/publications/customer-notifications.ts +101 -0
  157. package/src/publications/files.ts +33 -0
  158. package/src/publications/flags-update.ts +19 -0
  159. package/src/publications/flags.ts +19 -0
  160. package/src/publications/logs.ts +163 -0
  161. package/src/publications/notifications.ts +13 -0
  162. package/src/publications/report-builder-dashboard-builders.ts +39 -0
  163. package/src/publications/report-builder-libraries.ts +41 -0
  164. package/src/publications/report-builder-reports.ts +47 -0
  165. package/src/publications/super-admin.ts +13 -0
  166. package/src/publications/user-groups.ts +12 -0
  167. package/src/publications/user-guides.ts +12 -0
  168. package/src/resolveio-server-app.ts +617 -0
  169. package/src/server-app.ts +3354 -0
  170. package/src/services/codex-client.ts +1231 -0
  171. package/src/services/openai-client.ts +265 -0
  172. package/src/types/error-report.ts +26 -0
  173. package/src/types/js-tiktoken.d.ts +11 -0
  174. package/src/types/slow-query-report.ts +28 -0
  175. package/src/util/ai-qa-policy.ts +925 -0
  176. package/src/util/ai-run-evidence-adapters.ts +677 -0
  177. package/src/util/ai-run-evidence-dashboard.ts +271 -0
  178. package/src/util/ai-run-evidence-eval.ts +885 -0
  179. package/src/util/ai-run-evidence.ts +964 -0
  180. package/src/util/ai-runner-artifacts.ts +586 -0
  181. package/src/util/ai-runner-manager-autopilot.ts +380 -0
  182. package/src/util/ai-runner-manager-policy.ts +1740 -0
  183. package/src/util/ai-runner-qa-auth.ts +821 -0
  184. package/src/util/ai-runner-qa-tools.ts +3045 -0
  185. package/src/util/aicoder-runner-v6.ts +875 -0
  186. package/src/util/common.ts +649 -0
  187. package/src/util/customer-portal-password.ts +183 -0
  188. package/src/util/error-reporter.ts +332 -0
  189. package/src/util/error-tracking.ts +79 -0
  190. package/src/util/openai-usage-cost.ts +114 -0
  191. package/src/util/report-builder-unwinds.ts +180 -0
  192. package/src/util/runner-process-janitor.ts +219 -0
  193. package/src/util/schema-report-builder.ts +448 -0
  194. package/src/util/slow-query-reporter.ts +216 -0
  195. package/src/util/subscription-dependency-context.ts +1096 -0
  196. package/src/util/support-runner-v5.ts +2065 -0
  197. package/src/util/tokenizer.ts +38 -0
  198. package/src/workers/codex-runner.worker.ts +142 -0
  199. package/start_server.sh +5 -0
  200. package/tests/ai-assistant-corpus-build.ts +484 -0
  201. package/tests/ai-assistant-corpus-replay-e2e.ts +774 -0
  202. package/tests/ai-assistant-data-parity-e2e.ts +1989 -0
  203. package/tests/ai-assistant-eval-triage.ts +831 -0
  204. package/tests/ai-assistant-openai-e2e.ts +1061 -0
  205. package/tests/ai-assistant-openai-git-e2e.ts +155 -0
  206. package/tests/ai-assistant-preflight-matrix.ts +215 -0
  207. package/tests/ai-assistant-routing-eval.test.ts +560 -0
  208. package/tests/ai-assistant-snf-live-eval.ts +975 -0
  209. package/tests/ai-assistant-utils.test.ts +2968 -0
  210. package/tests/ai-manager-autopilot-snapshot.test.ts +172 -0
  211. package/tests/ai-manager-recovery-checkpoint.test.ts +323 -0
  212. package/tests/ai-run-eval.test.ts +88 -0
  213. package/tests/ai-run-evidence.test.ts +305 -0
  214. package/tests/ai-runner-contract.test.ts +488 -0
  215. package/tests/aicoder-runner-v6.test.ts +268 -0
  216. package/tests/error-reporter.test.ts +145 -0
  217. package/tests/method-publication-generator.test.ts +46 -0
  218. package/tests/report-builder-linking.test.ts +79 -0
  219. package/tests/resolveio-platform-intelligence.test.ts +352 -0
  220. package/tests/server-app-cron-owner.test.ts +127 -0
  221. package/tests/subscription-connect-race.test.ts +158 -0
  222. package/tests/subscription-dependency-context.test.ts +324 -0
  223. package/tests/subscription-manager-collection-tracking.test.ts +86 -0
  224. package/tests/subscription-manager-invalidation.test.ts +86 -0
  225. package/tests/support-runner-v5.test.ts +417 -0
  226. package/tsconfig.json +34 -0
  227. package/ai/assistant-core-heuristics.d.ts +0 -11
  228. package/ai/assistant-core-heuristics.js +0 -356
  229. package/ai/assistant-core-heuristics.js.map +0 -1
  230. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +0 -3
  231. package/ai/resolveio-platform-intelligence-memory-corpus.js +0 -214
  232. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +0 -1
  233. package/ai/resolveio-platform-intelligence-memory.d.ts +0 -20
  234. package/ai/resolveio-platform-intelligence-memory.js +0 -341
  235. package/ai/resolveio-platform-intelligence-memory.js.map +0 -1
  236. package/ai/resolveio-platform-intelligence-types.js +0 -4
  237. package/ai/resolveio-platform-intelligence-types.js.map +0 -1
  238. package/ai/resolveio-platform-intelligence.d.ts +0 -6
  239. package/ai/resolveio-platform-intelligence.js +0 -463
  240. package/ai/resolveio-platform-intelligence.js.map +0 -1
  241. package/client-server-app.d.ts +0 -1
  242. package/client-server-app.js +0 -68
  243. package/client-server-app.js.map +0 -1
  244. package/collections/ai-run.collection.d.ts +0 -3
  245. package/collections/ai-run.collection.js +0 -170
  246. package/collections/ai-run.collection.js.map +0 -1
  247. package/collections/ai-terminal-conversation.collection.d.ts +0 -2
  248. package/collections/ai-terminal-conversation.collection.js +0 -140
  249. package/collections/ai-terminal-conversation.collection.js.map +0 -1
  250. package/collections/ai-terminal-issue-report.collection.d.ts +0 -2
  251. package/collections/ai-terminal-issue-report.collection.js +0 -148
  252. package/collections/ai-terminal-issue-report.collection.js.map +0 -1
  253. package/collections/ai-terminal-message.collection.d.ts +0 -2
  254. package/collections/ai-terminal-message.collection.js +0 -121
  255. package/collections/ai-terminal-message.collection.js.map +0 -1
  256. package/collections/app-setting.collection.d.ts +0 -3
  257. package/collections/app-setting.collection.js +0 -103
  258. package/collections/app-setting.collection.js.map +0 -1
  259. package/collections/app-status.collection.d.ts +0 -3
  260. package/collections/app-status.collection.js +0 -57
  261. package/collections/app-status.collection.js.map +0 -1
  262. package/collections/communication-metric.collection.d.ts +0 -2
  263. package/collections/communication-metric.collection.js +0 -133
  264. package/collections/communication-metric.collection.js.map +0 -1
  265. package/collections/counter.collection.d.ts +0 -3
  266. package/collections/counter.collection.js +0 -56
  267. package/collections/counter.collection.js.map +0 -1
  268. package/collections/cron-job-history.collection.d.ts +0 -3
  269. package/collections/cron-job-history.collection.js +0 -137
  270. package/collections/cron-job-history.collection.js.map +0 -1
  271. package/collections/cron-job.collection.d.ts +0 -3
  272. package/collections/cron-job.collection.js +0 -92
  273. package/collections/cron-job.collection.js.map +0 -1
  274. package/collections/customer-notification.collection.d.ts +0 -3
  275. package/collections/customer-notification.collection.js +0 -130
  276. package/collections/customer-notification.collection.js.map +0 -1
  277. package/collections/customer-portal-password.collection.d.ts +0 -3
  278. package/collections/customer-portal-password.collection.js +0 -75
  279. package/collections/customer-portal-password.collection.js.map +0 -1
  280. package/collections/email-history.collection.d.ts +0 -3
  281. package/collections/email-history.collection.js +0 -134
  282. package/collections/email-history.collection.js.map +0 -1
  283. package/collections/email-verified.collection.d.ts +0 -3
  284. package/collections/email-verified.collection.js +0 -62
  285. package/collections/email-verified.collection.js.map +0 -1
  286. package/collections/file.collection.d.ts +0 -3
  287. package/collections/file.collection.js +0 -74
  288. package/collections/file.collection.js.map +0 -1
  289. package/collections/flag-update.collection.d.ts +0 -3
  290. package/collections/flag-update.collection.js +0 -57
  291. package/collections/flag-update.collection.js.map +0 -1
  292. package/collections/flag.collection.d.ts +0 -3
  293. package/collections/flag.collection.js +0 -57
  294. package/collections/flag.collection.js.map +0 -1
  295. package/collections/log-method-latency.collection.d.ts +0 -3
  296. package/collections/log-method-latency.collection.js +0 -77
  297. package/collections/log-method-latency.collection.js.map +0 -1
  298. package/collections/log-subscription.collection.d.ts +0 -3
  299. package/collections/log-subscription.collection.js +0 -80
  300. package/collections/log-subscription.collection.js.map +0 -1
  301. package/collections/log.collection.d.ts +0 -3
  302. package/collections/log.collection.js +0 -93
  303. package/collections/log.collection.js.map +0 -1
  304. package/collections/logged-in-users.collection.d.ts +0 -3
  305. package/collections/logged-in-users.collection.js +0 -67
  306. package/collections/logged-in-users.collection.js.map +0 -1
  307. package/collections/monitor-cpu.collection.d.ts +0 -3
  308. package/collections/monitor-cpu.collection.js +0 -65
  309. package/collections/monitor-cpu.collection.js.map +0 -1
  310. package/collections/monitor-function.collection.d.ts +0 -3
  311. package/collections/monitor-function.collection.js +0 -74
  312. package/collections/monitor-function.collection.js.map +0 -1
  313. package/collections/monitor-memory.collection.d.ts +0 -3
  314. package/collections/monitor-memory.collection.js +0 -77
  315. package/collections/monitor-memory.collection.js.map +0 -1
  316. package/collections/monitor-mongo.collection.d.ts +0 -3
  317. package/collections/monitor-mongo.collection.js +0 -71
  318. package/collections/monitor-mongo.collection.js.map +0 -1
  319. package/collections/notification.collection.d.ts +0 -3
  320. package/collections/notification.collection.js +0 -57
  321. package/collections/notification.collection.js.map +0 -1
  322. package/collections/openai-usage-ledger.collection.d.ts +0 -2
  323. package/collections/openai-usage-ledger.collection.js +0 -124
  324. package/collections/openai-usage-ledger.collection.js.map +0 -1
  325. package/collections/report-builder-dashboard-builder.collection.d.ts +0 -3
  326. package/collections/report-builder-dashboard-builder.collection.js +0 -109
  327. package/collections/report-builder-dashboard-builder.collection.js.map +0 -1
  328. package/collections/report-builder-library.collection.d.ts +0 -3
  329. package/collections/report-builder-library.collection.js +0 -87
  330. package/collections/report-builder-library.collection.js.map +0 -1
  331. package/collections/report-builder-report.collection.d.ts +0 -4
  332. package/collections/report-builder-report.collection.js +0 -184
  333. package/collections/report-builder-report.collection.js.map +0 -1
  334. package/collections/user-group.collection.d.ts +0 -4
  335. package/collections/user-group.collection.js +0 -89
  336. package/collections/user-group.collection.js.map +0 -1
  337. package/collections/user-guide.collection.d.ts +0 -3
  338. package/collections/user-guide.collection.js +0 -57
  339. package/collections/user-guide.collection.js.map +0 -1
  340. package/collections/user.collection.d.ts +0 -4
  341. package/collections/user.collection.js +0 -180
  342. package/collections/user.collection.js.map +0 -1
  343. package/cron/cron.d.ts +0 -14
  344. package/cron/cron.js +0 -216
  345. package/cron/cron.js.map +0 -1
  346. package/fixtures/cron-jobs.d.ts +0 -1
  347. package/fixtures/cron-jobs.js +0 -150
  348. package/fixtures/cron-jobs.js.map +0 -1
  349. package/fixtures/init.d.ts +0 -1
  350. package/fixtures/init.js +0 -91
  351. package/fixtures/init.js.map +0 -1
  352. package/http/auth.d.ts +0 -2
  353. package/http/auth.js +0 -951
  354. package/http/auth.js.map +0 -1
  355. package/http/health.d.ts +0 -1
  356. package/http/health.js +0 -11
  357. package/http/health.js.map +0 -1
  358. package/http/home.d.ts +0 -1
  359. package/http/home.js +0 -134
  360. package/http/home.js.map +0 -1
  361. package/http/slow-query-publication.d.ts +0 -2
  362. package/http/slow-query-publication.js +0 -99
  363. package/http/slow-query-publication.js.map +0 -1
  364. package/index.d.ts +0 -1
  365. package/index.js +0 -19
  366. package/index.js.map +0 -1
  367. package/managers/ai-assistant-codex-manager.manager.d.ts +0 -67
  368. package/managers/ai-assistant-codex-manager.manager.js +0 -1113
  369. package/managers/ai-assistant-codex-manager.manager.js.map +0 -1
  370. package/managers/ai-run-evidence.manager.d.ts +0 -36
  371. package/managers/ai-run-evidence.manager.js +0 -377
  372. package/managers/ai-run-evidence.manager.js.map +0 -1
  373. package/managers/communication-metric.manager.d.ts +0 -16
  374. package/managers/communication-metric.manager.js +0 -134
  375. package/managers/communication-metric.manager.js.map +0 -1
  376. package/managers/cron.manager.d.ts +0 -20
  377. package/managers/cron.manager.js +0 -534
  378. package/managers/cron.manager.js.map +0 -1
  379. package/managers/customer-notification-content.manager.d.ts +0 -55
  380. package/managers/customer-notification-content.manager.js +0 -158
  381. package/managers/customer-notification-content.manager.js.map +0 -1
  382. package/managers/diagnostic-manager-bootstrap.d.ts +0 -9
  383. package/managers/diagnostic-manager-bootstrap.js +0 -260
  384. package/managers/diagnostic-manager-bootstrap.js.map +0 -1
  385. package/managers/error-auto-fix.manager.d.ts +0 -149
  386. package/managers/error-auto-fix.manager.js +0 -3064
  387. package/managers/error-auto-fix.manager.js.map +0 -1
  388. package/managers/local-log.manager.d.ts +0 -18
  389. package/managers/local-log.manager.js +0 -88
  390. package/managers/local-log.manager.js.map +0 -1
  391. package/managers/method.manager.d.ts +0 -84
  392. package/managers/method.manager.js +0 -1964
  393. package/managers/method.manager.js.map +0 -1
  394. package/managers/mongo.manager.d.ts +0 -224
  395. package/managers/mongo.manager.js +0 -5000
  396. package/managers/mongo.manager.js.map +0 -1
  397. package/managers/monitor.manager.d.ts +0 -70
  398. package/managers/monitor.manager.js +0 -550
  399. package/managers/monitor.manager.js.map +0 -1
  400. package/managers/openai-usage-ledger.manager.d.ts +0 -16
  401. package/managers/openai-usage-ledger.manager.js +0 -93
  402. package/managers/openai-usage-ledger.manager.js.map +0 -1
  403. package/managers/slow-query-verifier.manager.d.ts +0 -144
  404. package/managers/slow-query-verifier.manager.js +0 -3857
  405. package/managers/slow-query-verifier.manager.js.map +0 -1
  406. package/managers/slow-query.manager.d.ts +0 -28
  407. package/managers/slow-query.manager.js +0 -468
  408. package/managers/slow-query.manager.js.map +0 -1
  409. package/managers/subscription.manager.d.ts +0 -169
  410. package/managers/subscription.manager.js +0 -3434
  411. package/managers/subscription.manager.js.map +0 -1
  412. package/managers/websocket.manager.d.ts +0 -73
  413. package/managers/websocket.manager.js +0 -673
  414. package/managers/websocket.manager.js.map +0 -1
  415. package/managers/worker-dispatcher.manager.d.ts +0 -120
  416. package/managers/worker-dispatcher.manager.js +0 -1266
  417. package/managers/worker-dispatcher.manager.js.map +0 -1
  418. package/managers/worker-server.manager.d.ts +0 -35
  419. package/managers/worker-server.manager.js +0 -582
  420. package/managers/worker-server.manager.js.map +0 -1
  421. package/methods/accounts.d.ts +0 -2
  422. package/methods/accounts.js +0 -624
  423. package/methods/accounts.js.map +0 -1
  424. package/methods/ai-terminal.d.ts +0 -337
  425. package/methods/ai-terminal.js +0 -23166
  426. package/methods/ai-terminal.js.map +0 -1
  427. package/methods/app-settings.d.ts +0 -2
  428. package/methods/app-settings.js +0 -169
  429. package/methods/app-settings.js.map +0 -1
  430. package/methods/aws.d.ts +0 -2
  431. package/methods/aws.js +0 -877
  432. package/methods/aws.js.map +0 -1
  433. package/methods/collections.d.ts +0 -2
  434. package/methods/collections.js +0 -719
  435. package/methods/collections.js.map +0 -1
  436. package/methods/counters.d.ts +0 -2
  437. package/methods/counters.js +0 -113
  438. package/methods/counters.js.map +0 -1
  439. package/methods/cron-jobs.d.ts +0 -2
  440. package/methods/cron-jobs.js +0 -2475
  441. package/methods/cron-jobs.js.map +0 -1
  442. package/methods/customer-notifications.d.ts +0 -2
  443. package/methods/customer-notifications.js +0 -528
  444. package/methods/customer-notifications.js.map +0 -1
  445. package/methods/diagnostics.d.ts +0 -2
  446. package/methods/diagnostics.js +0 -703
  447. package/methods/diagnostics.js.map +0 -1
  448. package/methods/flag-updates.d.ts +0 -2
  449. package/methods/flag-updates.js +0 -8
  450. package/methods/flag-updates.js.map +0 -1
  451. package/methods/flags.d.ts +0 -2
  452. package/methods/flags.js +0 -8
  453. package/methods/flags.js.map +0 -1
  454. package/methods/logs.d.ts +0 -2
  455. package/methods/logs.js +0 -751
  456. package/methods/logs.js.map +0 -1
  457. package/methods/mongo-explorer.d.ts +0 -2
  458. package/methods/mongo-explorer.js +0 -1808
  459. package/methods/mongo-explorer.js.map +0 -1
  460. package/methods/monitor.d.ts +0 -2
  461. package/methods/monitor.js +0 -543
  462. package/methods/monitor.js.map +0 -1
  463. package/methods/pdf.d.ts +0 -2
  464. package/methods/pdf.js +0 -1216
  465. package/methods/pdf.js.map +0 -1
  466. package/methods/publications.d.ts +0 -1
  467. package/methods/publications.js +0 -183
  468. package/methods/publications.js.map +0 -1
  469. package/methods/report-builder.d.ts +0 -2
  470. package/methods/report-builder.js +0 -3094
  471. package/methods/report-builder.js.map +0 -1
  472. package/methods/support.d.ts +0 -2
  473. package/methods/support.js +0 -430
  474. package/methods/support.js.map +0 -1
  475. package/models/ai-run.model.d.ts +0 -19
  476. package/models/ai-run.model.js +0 -4
  477. package/models/ai-run.model.js.map +0 -1
  478. package/models/ai-terminal-conversation.model.d.ts +0 -17
  479. package/models/ai-terminal-conversation.model.js +0 -4
  480. package/models/ai-terminal-conversation.model.js.map +0 -1
  481. package/models/ai-terminal-issue-report.model.d.ts +0 -19
  482. package/models/ai-terminal-issue-report.model.js +0 -4
  483. package/models/ai-terminal-issue-report.model.js.map +0 -1
  484. package/models/ai-terminal-message.model.d.ts +0 -22
  485. package/models/ai-terminal-message.model.js +0 -4
  486. package/models/ai-terminal-message.model.js.map +0 -1
  487. package/models/app-setting.model.d.ts +0 -16
  488. package/models/app-setting.model.js +0 -4
  489. package/models/app-setting.model.js.map +0 -1
  490. package/models/app-status.model.js +0 -4
  491. package/models/app-status.model.js.map +0 -1
  492. package/models/billing-logged-in-users.model.js +0 -4
  493. package/models/billing-logged-in-users.model.js.map +0 -1
  494. package/models/collection-document.model.d.ts +0 -21
  495. package/models/collection-document.model.js +0 -4
  496. package/models/collection-document.model.js.map +0 -1
  497. package/models/communication-metric.model.d.ts +0 -20
  498. package/models/communication-metric.model.js +0 -4
  499. package/models/communication-metric.model.js.map +0 -1
  500. package/models/counter.model.js +0 -4
  501. package/models/counter.model.js.map +0 -1
  502. package/models/cron-job-history.model.d.ts +0 -15
  503. package/models/cron-job-history.model.js +0 -4
  504. package/models/cron-job-history.model.js.map +0 -1
  505. package/models/cron-job.model.d.ts +0 -14
  506. package/models/cron-job.model.js +0 -4
  507. package/models/cron-job.model.js.map +0 -1
  508. package/models/customer-notification.model.d.ts +0 -26
  509. package/models/customer-notification.model.js +0 -4
  510. package/models/customer-notification.model.js.map +0 -1
  511. package/models/customer-portal-password.model.d.ts +0 -11
  512. package/models/customer-portal-password.model.js +0 -4
  513. package/models/customer-portal-password.model.js.map +0 -1
  514. package/models/dialog.model.d.ts +0 -23
  515. package/models/dialog.model.js +0 -4
  516. package/models/dialog.model.js.map +0 -1
  517. package/models/email-history.model.d.ts +0 -32
  518. package/models/email-history.model.js.map +0 -1
  519. package/models/email-verified.model.js +0 -4
  520. package/models/email-verified.model.js.map +0 -1
  521. package/models/file.model.js +0 -4
  522. package/models/file.model.js.map +0 -1
  523. package/models/flag-update.model.js +0 -4
  524. package/models/flag-update.model.js.map +0 -1
  525. package/models/flag.model.js +0 -4
  526. package/models/flag.model.js.map +0 -1
  527. package/models/log-method-latency.model.d.ts +0 -10
  528. package/models/log-method-latency.model.js +0 -4
  529. package/models/log-method-latency.model.js.map +0 -1
  530. package/models/log-subscription.model.js +0 -4
  531. package/models/log-subscription.model.js.map +0 -1
  532. package/models/log.model.d.ts +0 -17
  533. package/models/log.model.js +0 -4
  534. package/models/log.model.js.map +0 -1
  535. package/models/logged-in-users.model.js +0 -4
  536. package/models/logged-in-users.model.js.map +0 -1
  537. package/models/method-response.model.js +0 -4
  538. package/models/method-response.model.js.map +0 -1
  539. package/models/method.model.d.ts +0 -26
  540. package/models/method.model.js +0 -4
  541. package/models/method.model.js.map +0 -1
  542. package/models/monitor-cpu.model.js +0 -4
  543. package/models/monitor-cpu.model.js.map +0 -1
  544. package/models/monitor-function.model.d.ts +0 -14
  545. package/models/monitor-function.model.js +0 -4
  546. package/models/monitor-function.model.js.map +0 -1
  547. package/models/monitor-memory.model.d.ts +0 -15
  548. package/models/monitor-memory.model.js +0 -4
  549. package/models/monitor-memory.model.js.map +0 -1
  550. package/models/monitor-mongo.model.d.ts +0 -13
  551. package/models/monitor-mongo.model.js +0 -4
  552. package/models/monitor-mongo.model.js.map +0 -1
  553. package/models/notification.model.js +0 -4
  554. package/models/notification.model.js.map +0 -1
  555. package/models/openai-usage-ledger.model.d.ts +0 -15
  556. package/models/openai-usage-ledger.model.js +0 -4
  557. package/models/openai-usage-ledger.model.js.map +0 -1
  558. package/models/pagination.model.d.ts +0 -11
  559. package/models/pagination.model.js +0 -28
  560. package/models/pagination.model.js.map +0 -1
  561. package/models/permission.model.d.ts +0 -12
  562. package/models/permission.model.js +0 -4
  563. package/models/permission.model.js.map +0 -1
  564. package/models/report-builder-dashboard-builder.model.d.ts +0 -25
  565. package/models/report-builder-dashboard-builder.model.js +0 -4
  566. package/models/report-builder-dashboard-builder.model.js.map +0 -1
  567. package/models/report-builder-library.model.d.ts +0 -17
  568. package/models/report-builder-library.model.js +0 -4
  569. package/models/report-builder-library.model.js.map +0 -1
  570. package/models/report-builder-report.model.d.ts +0 -121
  571. package/models/report-builder-report.model.js +0 -4
  572. package/models/report-builder-report.model.js.map +0 -1
  573. package/models/report-builder.model.d.ts +0 -61
  574. package/models/report-builder.model.js +0 -4
  575. package/models/report-builder.model.js.map +0 -1
  576. package/models/select-data-label.model.d.ts +0 -9
  577. package/models/select-data-label.model.js +0 -4
  578. package/models/select-data-label.model.js.map +0 -1
  579. package/models/server-message.model.d.ts +0 -32
  580. package/models/server-message.model.js +0 -4
  581. package/models/server-message.model.js.map +0 -1
  582. package/models/slow-query-report.model.d.ts +0 -23
  583. package/models/slow-query-report.model.js +0 -4
  584. package/models/slow-query-report.model.js.map +0 -1
  585. package/models/subscription.model.d.ts +0 -31
  586. package/models/subscription.model.js +0 -4
  587. package/models/subscription.model.js.map +0 -1
  588. package/models/support-ticket.model.d.ts +0 -87
  589. package/models/support-ticket.model.js +0 -4
  590. package/models/support-ticket.model.js.map +0 -1
  591. package/models/user-group.model.d.ts +0 -20
  592. package/models/user-group.model.js +0 -4
  593. package/models/user-group.model.js.map +0 -1
  594. package/models/user-guide.model.js +0 -4
  595. package/models/user-guide.model.js.map +0 -1
  596. package/models/user.model.d.ts +0 -84
  597. package/models/user.model.js +0 -4
  598. package/models/user.model.js.map +0 -1
  599. package/private/images/ResolveIO.png +0 -0
  600. package/public_api.js +0 -127
  601. package/public_api.js.map +0 -1
  602. package/publications/ai-terminal.d.ts +0 -1
  603. package/publications/ai-terminal.js +0 -122
  604. package/publications/ai-terminal.js.map +0 -1
  605. package/publications/app-settings.d.ts +0 -2
  606. package/publications/app-settings.js +0 -28
  607. package/publications/app-settings.js.map +0 -1
  608. package/publications/app-status.d.ts +0 -2
  609. package/publications/app-status.js +0 -16
  610. package/publications/app-status.js.map +0 -1
  611. package/publications/cron-jobs.d.ts +0 -2
  612. package/publications/cron-jobs.js +0 -88
  613. package/publications/cron-jobs.js.map +0 -1
  614. package/publications/customer-notifications.d.ts +0 -2
  615. package/publications/customer-notifications.js +0 -161
  616. package/publications/customer-notifications.js.map +0 -1
  617. package/publications/files.d.ts +0 -2
  618. package/publications/files.js +0 -36
  619. package/publications/files.js.map +0 -1
  620. package/publications/flags-update.d.ts +0 -2
  621. package/publications/flags-update.js +0 -22
  622. package/publications/flags-update.js.map +0 -1
  623. package/publications/flags.d.ts +0 -2
  624. package/publications/flags.js +0 -22
  625. package/publications/flags.js.map +0 -1
  626. package/publications/logs.d.ts +0 -2
  627. package/publications/logs.js +0 -164
  628. package/publications/logs.js.map +0 -1
  629. package/publications/notifications.d.ts +0 -2
  630. package/publications/notifications.js +0 -16
  631. package/publications/notifications.js.map +0 -1
  632. package/publications/report-builder-dashboard-builders.d.ts +0 -2
  633. package/publications/report-builder-dashboard-builders.js +0 -42
  634. package/publications/report-builder-dashboard-builders.js.map +0 -1
  635. package/publications/report-builder-libraries.d.ts +0 -2
  636. package/publications/report-builder-libraries.js +0 -90
  637. package/publications/report-builder-libraries.js.map +0 -1
  638. package/publications/report-builder-reports.d.ts +0 -2
  639. package/publications/report-builder-reports.js +0 -50
  640. package/publications/report-builder-reports.js.map +0 -1
  641. package/publications/super-admin.d.ts +0 -2
  642. package/publications/super-admin.js +0 -16
  643. package/publications/super-admin.js.map +0 -1
  644. package/publications/user-groups.d.ts +0 -1
  645. package/publications/user-groups.js +0 -16
  646. package/publications/user-groups.js.map +0 -1
  647. package/publications/user-guides.d.ts +0 -1
  648. package/publications/user-guides.js +0 -16
  649. package/publications/user-guides.js.map +0 -1
  650. package/resolveio-server-app.d.ts +0 -70
  651. package/resolveio-server-app.js +0 -801
  652. package/resolveio-server-app.js.map +0 -1
  653. package/server-app.d.ts +0 -228
  654. package/server-app.js +0 -3566
  655. package/server-app.js.map +0 -1
  656. package/services/codex-client.d.ts +0 -128
  657. package/services/codex-client.js +0 -1629
  658. package/services/codex-client.js.map +0 -1
  659. package/services/openai-client.d.ts +0 -46
  660. package/services/openai-client.js +0 -318
  661. package/services/openai-client.js.map +0 -1
  662. package/types/error-report.d.ts +0 -25
  663. package/types/error-report.js +0 -4
  664. package/types/error-report.js.map +0 -1
  665. package/types/slow-query-report.d.ts +0 -27
  666. package/types/slow-query-report.js +0 -6
  667. package/types/slow-query-report.js.map +0 -1
  668. package/util/ai-qa-policy.d.ts +0 -124
  669. package/util/ai-qa-policy.js +0 -736
  670. package/util/ai-qa-policy.js.map +0 -1
  671. package/util/ai-run-evidence-adapters.d.ts +0 -33
  672. package/util/ai-run-evidence-adapters.js +0 -831
  673. package/util/ai-run-evidence-adapters.js.map +0 -1
  674. package/util/ai-run-evidence-dashboard.d.ts +0 -67
  675. package/util/ai-run-evidence-dashboard.js +0 -309
  676. package/util/ai-run-evidence-dashboard.js.map +0 -1
  677. package/util/ai-run-evidence-eval.d.ts +0 -86
  678. package/util/ai-run-evidence-eval.js +0 -854
  679. package/util/ai-run-evidence-eval.js.map +0 -1
  680. package/util/ai-run-evidence.d.ts +0 -212
  681. package/util/ai-run-evidence.js +0 -649
  682. package/util/ai-run-evidence.js.map +0 -1
  683. package/util/ai-runner-artifacts.d.ts +0 -82
  684. package/util/ai-runner-artifacts.js +0 -713
  685. package/util/ai-runner-artifacts.js.map +0 -1
  686. package/util/ai-runner-manager-autopilot.d.ts +0 -92
  687. package/util/ai-runner-manager-autopilot.js +0 -281
  688. package/util/ai-runner-manager-autopilot.js.map +0 -1
  689. package/util/ai-runner-manager-policy.d.ts +0 -282
  690. package/util/ai-runner-manager-policy.js +0 -997
  691. package/util/ai-runner-manager-policy.js.map +0 -1
  692. package/util/ai-runner-qa-auth.d.ts +0 -5
  693. package/util/ai-runner-qa-auth.js +0 -822
  694. package/util/ai-runner-qa-auth.js.map +0 -1
  695. package/util/ai-runner-qa-tools.d.ts +0 -26
  696. package/util/ai-runner-qa-tools.js +0 -3029
  697. package/util/ai-runner-qa-tools.js.map +0 -1
  698. package/util/aicoder-runner-v6.d.ts +0 -212
  699. package/util/aicoder-runner-v6.js +0 -502
  700. package/util/aicoder-runner-v6.js.map +0 -1
  701. package/util/common.d.ts +0 -31
  702. package/util/common.js +0 -683
  703. package/util/common.js.map +0 -1
  704. package/util/customer-portal-password.d.ts +0 -13
  705. package/util/customer-portal-password.js +0 -209
  706. package/util/customer-portal-password.js.map +0 -1
  707. package/util/error-reporter.d.ts +0 -52
  708. package/util/error-reporter.js +0 -326
  709. package/util/error-reporter.js.map +0 -1
  710. package/util/error-tracking.d.ts +0 -13
  711. package/util/error-tracking.js +0 -120
  712. package/util/error-tracking.js.map +0 -1
  713. package/util/openai-usage-cost.d.ts +0 -6
  714. package/util/openai-usage-cost.js +0 -103
  715. package/util/openai-usage-cost.js.map +0 -1
  716. package/util/report-builder-unwinds.d.ts +0 -15
  717. package/util/report-builder-unwinds.js +0 -156
  718. package/util/report-builder-unwinds.js.map +0 -1
  719. package/util/runner-process-janitor.d.ts +0 -27
  720. package/util/runner-process-janitor.js +0 -208
  721. package/util/runner-process-janitor.js.map +0 -1
  722. package/util/schema-report-builder.d.ts +0 -6
  723. package/util/schema-report-builder.js +0 -481
  724. package/util/schema-report-builder.js.map +0 -1
  725. package/util/slow-query-reporter.d.ts +0 -28
  726. package/util/slow-query-reporter.js +0 -226
  727. package/util/slow-query-reporter.js.map +0 -1
  728. package/util/subscription-dependency-context.d.ts +0 -34
  729. package/util/subscription-dependency-context.js +0 -1283
  730. package/util/subscription-dependency-context.js.map +0 -1
  731. package/util/support-runner-v5.d.ts +0 -413
  732. package/util/support-runner-v5.js +0 -1424
  733. package/util/support-runner-v5.js.map +0 -1
  734. package/util/tokenizer.d.ts +0 -5
  735. package/util/tokenizer.js +0 -41
  736. package/util/tokenizer.js.map +0 -1
  737. package/workers/codex-runner.worker.d.ts +0 -1
  738. package/workers/codex-runner.worker.js +0 -192
  739. package/workers/codex-runner.worker.js.map +0 -1
  740. /package/{private → src/private}/email-templates/enrollment.html +0 -0
  741. /package/{private → src/private}/email-templates/forgot-password.html +0 -0
  742. /package/{private → src/private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{private → src/private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{private → src/private}/email-templates/support-ticket.html +0 -0
  745. /package/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/util/ai-runner-artifacts.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,0FAqBC;AAED,0EASC;AAED,kFAiCC;AAED,wGAqBC;AAED,kFAiBC;AAmID,oHAyDC;AAED,sGAaC;AAED,kGA8DC;AAED,oFAgBC;AAED,0FAoHC;AAzkBD,2CAAyC;AACzC,uBAAyB;AACzB,2BAA6B;AAuE7B,SAAgB,uCAAuC,CAAC,QAAgB;IACvE,IAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACjE,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,OAAO,iBAAiB,CAAC;IAC1B,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO,kBAAkB,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,2BAA2B,CAAC;IACpC,CAAC;IACD,OAAO,0BAA0B,CAAC;AACnC,CAAC;AAED,SAAgB,+BAA+B,CAAC,QAAgB;IAC/D,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC;IACnF,IAAM,UAAU,GAAG,QAAQ;SACzB,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC;IACpC,IAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,OAAO,UAAG,UAAU,cAAI,MAAM,sBAAmB,CAAC;AACnD,CAAC;AAED,SAAgB,mCAAmC,CAAC,cAAsB;IACzE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACjG,IAAM,UAAU,GAAG,QAAQ;SACzB,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IACT,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,2CAA2C,CAAC;IACpD,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,iEAAiE,CAAC;IAC1E,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnE,OAAO,gGAAgG,CAAC;IACzG,CAAC;IACD,IAAI,0EAA0E,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjG,OAAO,qFAAqF,CAAC;IAC9F,CAAC;IACD,IAAI,gCAAgC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,OAAO,oEAAoE,CAAC;IAC7E,CAAC;IACD,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,OAAO,mEAAmE,CAAC;IAC5E,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,8EAA8E,CAAC;IACvF,CAAC;IACD,OAAO,QAAQ;SACb,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,WAAW,EAAE,EAApB,CAAoB,CAAC;SAClD,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACjB,CAAC;AAED,SAAgB,8CAA8C,CAAC,KAAU;IACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,KAAK;SACV,GAAG,CAAC,UAAC,IAAI;QACT,IAAM,MAAM,GAAG,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAA,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChF,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO;YACN,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAC3D,GAAG,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YAChD,WAAW,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,CAAA,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YACtF,OAAO,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YACxD,YAAY,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,YAAY,MAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YAChF,UAAU,EAAE,MAAM,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;SAC9D,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CAAC,UAAC,IAAI,IAAmD,OAAA,CAAC,CAAC,IAAI,EAAN,CAAM,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,mCAAmC;IAAC,gBAAgB;SAAhB,UAAgB,EAAhB,qBAAgB,EAAhB,IAAgB;QAAhB,2BAAgB;;IACnE,IAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAM,IAAI,GAAG,UAAC,KAAU;QACvB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO;QACR,CAAC;QACD,IAAM,EAAE,GAAG,MAAM,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAA,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxF,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAU,EAAE,MAAgB;IACvE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,OAAO;IACR,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACR,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,UAAC,KAAK,IAAK,OAAA,kCAAkC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAjD,CAAiD,CAAC,CAAC;QAC5E,OAAO;IACR,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,KAAK,IAAK,OAAA,kCAAkC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAjD,CAAiD,CAAC,CAAC;IAC5F,CAAC;AACF,CAAC;AAED,SAAS,8BAA8B,CAAC,KAAa;IACpD,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;SACxB,IAAI,EAAE;SACN,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IACnC,IAAI,CAAC;QACJ,OAAO,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;IAChF,CAAC;IACD,WAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB,EAAE,KAAe;;IACnE,IAAM,UAAU,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,CAAC;;QACD,KAAmB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE,CAAC;YAAtB,IAAM,IAAI,kBAAA;YACd,IAAM,cAAc,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACrB,SAAS;YACV,CAAC;YACD,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,QAAQ,CAAC;YACjB,CAAC;QACF,CAAC;;;;;;;;;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAgB,EAAE,WAAoB;IAC1E,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/D,OAAO,GAAG,KAAK,MAAM;WACjB,GAAG,KAAK,MAAM;WACd,GAAG,KAAK,OAAO;WACf,GAAG,KAAK,OAAO;WACf,GAAG,KAAK,MAAM;WACd,CAAC,WAAW,IAAI,GAAG,KAAK,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IAClD,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACrE,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtD,KAAK,IAAI,GAAG,CAAC;IACd,CAAC;IACD,IAAI,iIAAiI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtJ,KAAK,IAAI,EAAE,CAAC;IACb,CAAC;IACD,IAAI,8CAA8C,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,KAAK,IAAI,EAAE,CAAC;IACb,CAAC;IACD,IAAI,mEAAmE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxF,KAAK,IAAI,GAAG,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,yCAAyC,CACjD,OAAe,EACf,WAAoB,EACpB,MAAmE,EACnE,IAAiB,EACjB,KAAS;;IAAT,sBAAA,EAAA,SAAS;IAET,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,OAAO;IACR,CAAC;IACD,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACJ,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,WAAM,CAAC;QACN,OAAO;IACR,CAAC;;QACD,KAAoB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE,CAAC;YAAzB,IAAM,KAAK,oBAAA;YACf,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,IAAI,SAAU,CAAC;YACnB,IAAI,CAAC;gBACJ,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;YACD,WAAM,CAAC;gBACN,SAAS;YACV,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,yCAAyC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC3F,SAAS;YACV,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC9F,SAAS;YACV,CAAC;YACD,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC;gBAC1C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;aAClC,CAAC,CAAC;QACJ,CAAC;;;;;;;;;AACF,CAAC;AAED,SAAgB,oDAAoD,CACnE,KAAwD;;;IAAxD,sBAAA,EAAA,UAAwD;IAExD,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;IAChD,IAAM,gBAAgB,GAAG,CAAC,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,MAAM,EAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;SACnG,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAA1B,CAA0B,CAAC;SAC1C,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;SAClD,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAA1B,CAA0B,CAAC;SAC1C,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAnB,CAAmB,CAAC,CAAC,CAAC,CAAC;IACxC,IAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;;QACvC,KAAmB,IAAA,UAAA,SAAA,KAAK,CAAA,4BAAA,+CAAE,CAAC;YAAtB,IAAM,IAAI,kBAAA;YACd,IAAI,IAAI,GAAoB,IAAI,CAAC;YACjC,IAAI,CAAC;gBACJ,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YACD,WAAM,CAAC;gBACN,IAAI,GAAG,IAAI,CAAC;YACb,CAAC;YACD,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,CAAA,EAAE,CAAC;gBAC1B,SAAS;YACV,CAAC;YACD,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7C,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;;gBACD,KAA8B,IAAA,oCAAA,SAAA,gBAAgB,CAAA,CAAA,kDAAA,gFAAE,CAAC;oBAA5C,IAAM,eAAe,6BAAA;oBACzB,IAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;oBAC3D,IAAI,CAAC;wBACJ,IAAI,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;4BAClD,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;wBACrC,CAAC;oBACF,CAAC;oBACD,WAAM,CAAC;wBACN,uCAAuC;oBACxC,CAAC;gBACF,CAAC;;;;;;;;;QACF,CAAC;;;;;;;;;IACD,IAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAM,KAAK,GAAgE,EAAE,CAAC;;QAC9E,KAA0B,IAAA,iBAAA,SAAA,YAAY,CAAA,0CAAA,oEAAE,CAAC;YAApC,IAAM,WAAW,yBAAA;YACrB,yCAAyC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClF,CAAC;;;;;;;;;IACD,OAAO,KAAK;SACV,IAAI,CAAC,UAAC,IAAI,EAAE,KAAK;QACjB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;SAClB,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,QAAQ,EAAd,CAAc,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,6CAA6C,CAC5D,KAAwD;IAAxD,sBAAA,EAAA,UAAwD;IAExD,OAAO,oDAAoD,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,QAAQ;QAC/E,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO;YACN,QAAQ,UAAA;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uCAAuC,CAAC,QAAQ,CAAC;YAC9D,GAAG,EAAE,+BAA+B,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,mCAAmC,CAAC,QAAQ,CAAC;SACtD,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,2CAA2C,CAAC,KAKtD;;;IALsD,sBAAA,EAAA,UAKtD;IACL,IAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,kCAAkC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;IAC5B,kCAAkC,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAChE,kCAAkC,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACxE,kCAAkC,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAChE,kCAAkC,CAAC,MAAA,GAAG,CAAC,SAAS,0CAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACtE,kCAAkC,CAAC,MAAA,GAAG,CAAC,SAAS,0CAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC5E,kCAAkC,CAAC,MAAA,GAAG,CAAC,SAAS,0CAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IACvE,kCAAkC,CAAC,MAAA,GAAG,CAAC,SAAS,0CAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACxE,kCAAkC,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC7D,kCAAkC,CAAC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACnE,kCAAkC,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;;YAC9B,KAAmB,IAAA,KAAA,SAAA,GAAG,CAAC,KAAK,CAAA,gBAAA,4BAAE,CAAC;gBAA1B,IAAM,IAAI,WAAA;gBACd,kCAAkC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxD,kCAAkC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACxD,kCAAkC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC5D,kCAAkC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC5D,CAAC;;;;;;;;;IACF,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,kCAAkC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,uCAC7B,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACtB,GAAG,CAAC,aAAa;QACjB,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QACzF,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE;QACvG,GAAG,CAAC,SAAS;cACZ,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAA1B,CAA0B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAM,UAAU,GAAa,EAAE,CAAC;;QAChC,KAAoB,IAAA,WAAA,SAAA,MAAM,CAAA,8BAAA,kDAAE,CAAC;YAAxB,IAAM,KAAK,mBAAA;YACf,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;;gBACjC,KAAoB,IAAA,oBAAA,SAAA,IAAI,CAAC,QAAQ,CAAC,kFAAkF,CAAC,CAAA,CAAA,gBAAA,4BAAE,CAAC;oBAAnH,IAAM,KAAK,WAAA;oBACf,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;;;;;;;;;;gBACD,KAAoB,IAAA,oBAAA,SAAA,IAAI,CAAC,QAAQ,CAAC,+JAA+J,CAAC,CAAA,CAAA,gBAAA,4BAAE,CAAC;oBAAhM,IAAM,KAAK,WAAA;oBACf,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3B,CAAC;;;;;;;;;QACF,CAAC;;;;;;;;;IACD,IAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;;QAC/B,KAAwB,IAAA,eAAA,SAAA,UAAU,CAAA,sCAAA,8DAAE,CAAC;YAAhC,IAAM,SAAS,uBAAA;YACnB,IAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrC,SAAS;YACV,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC9C,MAAM;YACP,CAAC;QACF,CAAC;;;;;;;;;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAgB,oCAAoC,CAAC,KAK/C;IAL+C,sBAAA,EAAA,UAK/C;IACL,OAAO,2CAA2C,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,QAAQ;QACtE,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO;YACN,QAAQ,UAAA;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,uCAAuC,CAAC,QAAQ,CAAC;YAC9D,GAAG,EAAE,+BAA+B,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,mCAAmC,CAAC,QAAQ,CAAC;SACtD,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAsB,uCAAuC,CAC5D,OAA8C;;;;;;;oBAExC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;oBAC9C,aAAa,GAAG,8CAA8C,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;oBACtF,cAAc,GAAG,IAAI,GAAG,EAAgD,CAAC;;wBAC/E,KAAmB,kBAAA,SAAA,aAAa,CAAA,mHAAE,CAAC;4BAAxB,IAAI;4BACd,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gCACvB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;4BAC7C,CAAC;wBACF,CAAC;;;;;;;;;oBACK,WAAW,0CACb,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,kBAC3B,oCAAoC,CAAC;wBACvC,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,QAAQ,UAAA;qBACR,CAAC,SACF,CAAC;oBACI,cAAc,4BAAO,aAAa,SAAC,CAAC;oBACpC,OAAO,GAAG,mCAAmC,CAAC,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,CAAC,CAAC,CAAC;oBAClH,MAAM,GAAa,EAAE,CAAC;oBACtB,eAAe,GAAwC,EAAE,CAAC;oBAC1D,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;;;;oBAEX,gBAAA,SAAA,WAAW,CAAA;;;;oBAAzB,UAAU;oBACpB,IAAI,eAAe,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;wBACxC,wBAAM;oBACP,CAAC;oBACK,QAAQ,GAAG,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC1C,wBAAS;oBACV,CAAC;oBACD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAClB,QAAQ,GAAG,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,KAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtG,WAAW,GAAG,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,WAAW,KAAI,uCAAuC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAChH,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACrB,KAAK,GAAG,UAAG,QAAQ,oDAAiD,CAAC;wBAC3E,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,eAAe,CAAC,IAAI,uBAAM,UAAU,KAAE,QAAQ,UAAA,EAAE,YAAY,EAAE,KAAK,IAAG,CAAC;wBACvE,wBAAS;oBACV,CAAC;oBACY,qBAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAA;;oBAAvC,IAAI,GAAG,SAAgC;oBAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;wBAChC,KAAK,GAAG,UAAG,QAAQ,gDAA6C,CAAC;wBACvE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBACnB,eAAe,CAAC,IAAI,uBAAM,UAAU,KAAE,QAAQ,UAAA,EAAE,YAAY,EAAE,KAAK,IAAG,CAAC;wBACvE,wBAAS;oBACV,CAAC;oBACqB,qBAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAA;;oBAApD,aAAa,GAAG,SAAoC;oBACpD,WAAW,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACrF,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBACjD,IAAI,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;wBAC/B,eAAe,CAAC,IAAI,uBAChB,UAAU,KACb,QAAQ,UAAA,EACR,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,GAAG,EAAE,QAAQ,CAAC,GAAG,EACjB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,mCAAmC,CAAC,QAAQ,CAAC,EAChG,YAAY,EAAE,WAAW,EACzB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,UAAU,EACpD,0BAA0B,EAAE,IAAI,IAC/B,CAAC;wBACH,wBAAS;oBACV,CAAC;;;;oBAEiB,qBAAM,OAAO,CAAC,UAAU,CAAC;4BACzC,QAAQ,UAAA;4BACR,QAAQ,UAAA;4BACR,WAAW,aAAA;4BACX,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,aAAa,eAAA;4BACb,WAAW,aAAA;yBACX,CAAC,EAAA;;oBAPI,QAAQ,GAAG,SAOf;oBACI,MAAM,GAAG,MAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,CAAA,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC5F,IAAI,CAAC,MAAM,EAAE,CAAC;wBACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;oBACxD,CAAC;oBACK,SAAS,GAAyC;wBACvD,OAAO,EAAE,MAAM;wBACf,QAAQ,EAAE,MAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAA,IAAI,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ;wBACrF,GAAG,EAAE,MAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;wBACpD,WAAW,aAAA;wBACX,OAAO,EAAE,MAAM,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,mCAAmC,CAAC,QAAQ,CAAC;wBAClG,YAAY,EAAE,WAAW;wBACzB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;qBAC/D,CAAC;oBACF,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,eAAe,CAAC,IAAI,uBAChB,UAAU,KACb,QAAQ,UAAA,EACR,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,SAAS,CAAC,GAAG,EAClB,OAAO,EAAE,SAAS,CAAC,OAAO,EAC1B,YAAY,EAAE,WAAW,EACzB,UAAU,EAAE,SAAS,CAAC,UAAU,EAChC,0BAA0B,EAAE,IAAI,IAC/B,CAAC;;;;oBAGG,OAAO,GAAG,UAAG,QAAQ,eAAK,CAAC,OAAe,aAAf,OAAK,uBAAL,OAAK,CAAY,OAAO,KAAI,OAAK,CAAE,CAAC;oBACrE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,eAAe,CAAC,IAAI,uBAAM,UAAU,KAAE,QAAQ,UAAA,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,IAAG,CAAC;;;;;;;;;;;;;;;;yBAItG,sBAAO;wBACN,WAAW,EAAE,eAAe;wBAC5B,OAAO,EAAE,mCAAmC,CAAC,OAAO,CAAC;wBACrD,KAAK,EAAE,cAAc;wBACrB,MAAM,QAAA;qBACN,EAAC;;;;CACF","file":"ai-runner-artifacts.js","sourcesContent":["import { createHash } from 'node:crypto';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nexport interface ResolveIORunnerEvidenceAttachment {\n\tfilename: string;\n\tpath: string;\n\tcontentType?: string;\n\tcid?: string;\n\tcaption?: string;\n\tfile_id?: string;\n\tkey?: string;\n\tcontent_hash?: string;\n\tticket_url?: string;\n\tuploaded_to_support_ticket?: boolean;\n\tupload_error?: string;\n}\n\nexport interface ResolveIORunnerPersistedEvidenceFile {\n\tfile_id: string;\n\tfilename: string;\n\tkey?: string;\n\tcontentType?: string;\n\tcaption?: string;\n\tcontent_hash?: string;\n\tticket_url?: string;\n}\n\nexport interface ResolveIORunnerEvidenceUploadInput {\n\tfilename: string;\n\tfilePath: string;\n\tcontentType: string;\n\tsize: number;\n\tcontentBuffer: Buffer;\n\tcontentHash: string;\n}\n\nexport interface ResolveIORunnerEvidenceUploadResult {\n\tfile_id?: string;\n\tid_file?: string;\n\t_id?: string;\n\tkey?: string;\n\tname?: string;\n\tfilename?: string;\n}\n\nexport interface ResolveIORunnerPersistEvidenceOptions {\n\tattachments?: ResolveIORunnerEvidenceAttachment[];\n\tevidence?: any;\n\tjob?: any;\n\tticket?: any;\n\tticketUrl?: string;\n\troots?: string[];\n\tpreviousFiles?: any[];\n\texistingFileIds?: any[];\n\tmaxFiles?: number;\n\tuploadFile: any;\n}\n\nexport interface ResolveIORunnerPersistEvidenceResult {\n\tattachments: ResolveIORunnerEvidenceAttachment[];\n\tfileIds: string[];\n\tfiles: ResolveIORunnerPersistedEvidenceFile[];\n\terrors: string[];\n}\n\nexport interface ResolveIORunnerEvidenceArtifactRootScanInput {\n\troots?: string[];\n\tartifactDirNames?: string[];\n\tmaxFiles?: number;\n\tincludeJson?: boolean;\n}\n\nexport function inferResolveIORunnerEvidenceContentType(fileName: string): string {\n\tconst normalized = String(fileName || '').trim().toLowerCase();\n\tif (normalized.endsWith('.png')) {\n\t\treturn 'image/png';\n\t}\n\tif (normalized.endsWith('.jpg') || normalized.endsWith('.jpeg')) {\n\t\treturn 'image/jpeg';\n\t}\n\tif (normalized.endsWith('.webp')) {\n\t\treturn 'image/webp';\n\t}\n\tif (normalized.endsWith('.zip')) {\n\t\treturn 'application/zip';\n\t}\n\tif (normalized.endsWith('.json')) {\n\t\treturn 'application/json';\n\t}\n\tif (normalized.endsWith('.txt') || normalized.endsWith('.log')) {\n\t\treturn 'text/plain; charset=utf-8';\n\t}\n\treturn 'application/octet-stream';\n}\n\nexport function buildResolveIORunnerEvidenceCid(filePath: string): string {\n\tconst baseName = path.basename(String(filePath || '').trim()) || 'runner-artifact';\n\tconst normalized = baseName\n\t\t.toLowerCase()\n\t\t.replace(/[^a-z0-9._-]+/g, '-')\n\t\t.replace(/^-+|-+$/g, '')\n\t\t.slice(0, 80) || 'runner-artifact';\n\tconst digest = createHash('sha1').update(String(filePath || '')).digest('hex').slice(0, 12);\n\treturn `${normalized}-${digest}@resolveio-runner`;\n}\n\nexport function inferResolveIORunnerEvidenceCaption(fileNameOrPath: string): string {\n\tconst baseName = path.basename(String(fileNameOrPath || '').trim()).replace(/\\.[a-z0-9]+$/i, '');\n\tconst normalized = baseName\n\t\t.toLowerCase()\n\t\t.replace(/[_-]+/g, ' ')\n\t\t.replace(/\\b\\d{4,}\\b/g, '')\n\t\t.replace(/\\s+/g, ' ')\n\t\t.trim();\n\tif (!normalized) {\n\t\treturn 'QA screenshot captured during validation.';\n\t}\n\tif (/\\bbefore\\b/.test(normalized)) {\n\t\treturn 'Before: the tested page is loaded at the start of the workflow.';\n\t}\n\tif (/\\bready\\b/.test(normalized) && /\\bimport\\b/.test(normalized)) {\n\t\treturn 'Ready to import: the uploaded data was accepted and is displayed for review before submission.';\n\t}\n\tif (/\\bsubmitted\\b|\\bresult\\b|\\bafter\\b|\\bcomplete\\b|\\bsuccess\\b|\\bverified\\b/.test(normalized)) {\n\t\treturn 'After submission: the workflow completed and the result confirms the change worked.';\n\t}\n\tif (/\\bdialog\\b|\\bmodal\\b|\\bpopup\\b/.test(normalized)) {\n\t\treturn 'Dialog: the tested prompt or modal is shown in the expected state.';\n\t}\n\tif (/\\bmobile\\b/.test(normalized)) {\n\t\treturn 'Mobile view: the tested workflow is shown at the mobile viewport.';\n\t}\n\tif (/\\bdesktop\\b|\\bwide\\b/.test(normalized)) {\n\t\treturn 'Desktop view: the tested workflow is shown at a full-width desktop viewport.';\n\t}\n\treturn baseName\n\t\t.replace(/[_-]+/g, ' ')\n\t\t.replace(/\\b\\w/g, (letter) => letter.toUpperCase())\n\t\t.slice(0, 180);\n}\n\nexport function normalizeResolveIORunnerPersistedEvidenceFiles(value: any): ResolveIORunnerPersistedEvidenceFile[] {\n\tif (!Array.isArray(value)) {\n\t\treturn [];\n\t}\n\treturn value\n\t\t.map((item): ResolveIORunnerPersistedEvidenceFile | null => {\n\t\t\tconst fileId = String(item?.file_id || item?.id_file || item?._id || '').trim();\n\t\t\tif (!fileId) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tfile_id: fileId,\n\t\t\t\tfilename: String(item?.filename || item?.name || '').trim(),\n\t\t\t\tkey: String(item?.key || '').trim() || undefined,\n\t\t\t\tcontentType: String(item?.contentType || item?.content_type || '').trim() || undefined,\n\t\t\t\tcaption: String(item?.caption || '').trim() || undefined,\n\t\t\t\tcontent_hash: String(item?.content_hash || item?.hash || '').trim() || undefined,\n\t\t\t\tticket_url: String(item?.ticket_url || '').trim() || undefined\n\t\t\t};\n\t\t})\n\t\t.filter((item): item is ResolveIORunnerPersistedEvidenceFile => !!item);\n}\n\nexport function mergeResolveIORunnerEvidenceFileIds(...values: any[]): string[] {\n\tconst ids: string[] = [];\n\tconst seen = new Set<string>();\n\tconst push = (value: any) => {\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(push);\n\t\t\treturn;\n\t\t}\n\t\tconst id = String(value?.file_id || value?.id_file || value?._id || value || '').trim();\n\t\tif (!id || seen.has(id)) {\n\t\t\treturn;\n\t\t}\n\t\tseen.add(id);\n\t\tids.push(id);\n\t};\n\tvalues.forEach(push);\n\treturn ids;\n}\n\nfunction collectResolveIORunnerEvidenceText(value: any, output: string[]): void {\n\tif (value === null || value === undefined) {\n\t\treturn;\n\t}\n\tif (typeof value === 'string') {\n\t\toutput.push(value);\n\t\treturn;\n\t}\n\tif (Array.isArray(value)) {\n\t\tvalue.forEach((entry) => collectResolveIORunnerEvidenceText(entry, output));\n\t\treturn;\n\t}\n\tif (typeof value === 'object') {\n\t\tObject.values(value).forEach((entry) => collectResolveIORunnerEvidenceText(entry, output));\n\t}\n}\n\nfunction normalizeArtifactCandidatePath(value: string): string {\n\treturn String(value || '')\n\t\t.trim()\n\t\t.replace(/[),.;:'\"]+$/g, '')\n\t\t.replace(/\\\\/g, '/');\n}\n\nfunction pathExists(filePath: string): boolean {\n\ttry {\n\t\treturn !!filePath && fs.existsSync(filePath) && fs.statSync(filePath).isFile();\n\t}\n\tcatch {\n\t\treturn false;\n\t}\n}\n\nfunction resolveArtifactCandidate(candidate: string, roots: string[]): string {\n\tconst normalized = normalizeArtifactCandidatePath(candidate);\n\tif (!normalized) {\n\t\treturn '';\n\t}\n\tif (path.isAbsolute(normalized)) {\n\t\treturn pathExists(normalized) ? normalized : '';\n\t}\n\tfor (const root of roots) {\n\t\tconst normalizedRoot = String(root || '').trim();\n\t\tif (!normalizedRoot) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst resolved = path.resolve(normalizedRoot, normalized);\n\t\tif (pathExists(resolved)) {\n\t\t\treturn resolved;\n\t\t}\n\t}\n\treturn '';\n}\n\nfunction isEvidenceArtifactExtension(filePath: string, includeJson: boolean): boolean {\n\tconst ext = path.extname(String(filePath || '')).toLowerCase();\n\treturn ext === '.png'\n\t\t|| ext === '.jpg'\n\t\t|| ext === '.jpeg'\n\t\t|| ext === '.webp'\n\t\t|| ext === '.zip'\n\t\t|| (includeJson && ext === '.json');\n}\n\nfunction scoreEvidenceArtifactPath(filePath: string): number {\n\tconst baseName = path.basename(String(filePath || '')).toLowerCase();\n\tconst ext = path.extname(baseName);\n\tlet score = 0;\n\tif (['.png', '.jpg', '.jpeg', '.webp'].includes(ext)) {\n\t\tscore += 100;\n\t}\n\tif (/\\b(invoice|billing|surcharge|tax|inventory|transaction|location|chemical|item|truck|delivery|saved|submit|line|select|modal)\\b/i.test(baseName)) {\n\t\tscore += 60;\n\t}\n\tif (/\\b(coverage|assert|result|summary|matrix)\\b/i.test(baseName)) {\n\t\tscore += 20;\n\t}\n\tif (/\\b(auth|bootstrap|ready|client\\.log|server\\.log|runner|chrome)\\b/i.test(baseName)) {\n\t\tscore -= 120;\n\t}\n\treturn score;\n}\n\nfunction collectEvidenceArtifactFilesFromDirectory(\n\tdirPath: string,\n\tincludeJson: boolean,\n\toutput: Array<{ filePath: string; score: number; mtimeMs: number }>,\n\tseen: Set<string>,\n\tdepth = 0\n): void {\n\tif (depth > 2) {\n\t\treturn;\n\t}\n\tlet entries: string[] = [];\n\ttry {\n\t\tentries = fs.readdirSync(dirPath);\n\t}\n\tcatch {\n\t\treturn;\n\t}\n\tfor (const entry of entries) {\n\t\tconst candidate = path.join(dirPath, entry);\n\t\tlet stat: fs.Stats;\n\t\ttry {\n\t\t\tstat = fs.statSync(candidate);\n\t\t}\n\t\tcatch {\n\t\t\tcontinue;\n\t\t}\n\t\tif (stat.isDirectory()) {\n\t\t\tcollectEvidenceArtifactFilesFromDirectory(candidate, includeJson, output, seen, depth + 1);\n\t\t\tcontinue;\n\t\t}\n\t\tif (!stat.isFile() || stat.size <= 0 || !isEvidenceArtifactExtension(candidate, includeJson)) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst resolved = path.resolve(candidate);\n\t\tif (seen.has(resolved)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(resolved);\n\t\toutput.push({\n\t\t\tfilePath: resolved,\n\t\t\tscore: scoreEvidenceArtifactPath(resolved),\n\t\t\tmtimeMs: Number(stat.mtimeMs || 0)\n\t\t});\n\t}\n}\n\nexport function collectResolveIORunnerEvidenceArtifactFilesFromRoots(\n\tinput: ResolveIORunnerEvidenceArtifactRootScanInput = {}\n): string[] {\n\tconst maxFiles = Math.max(1, Number(input.maxFiles || 12));\n\tconst includeJson = input.includeJson !== false;\n\tconst artifactDirNames = (input.artifactDirNames?.length ? input.artifactDirNames : ['qa-artifacts'])\n\t\t.map((entry) => String(entry || '').trim())\n\t\t.filter(Boolean);\n\tconst roots = Array.from(new Set((input.roots || [])\n\t\t.map((entry) => String(entry || '').trim())\n\t\t.filter(Boolean)\n\t\t.map((entry) => path.resolve(entry))));\n\tconst artifactDirs = new Set<string>();\n\tfor (const root of roots) {\n\t\tlet stat: fs.Stats | null = null;\n\t\ttry {\n\t\t\tstat = fs.statSync(root);\n\t\t}\n\t\tcatch {\n\t\t\tstat = null;\n\t\t}\n\t\tif (!stat?.isDirectory()) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst rootBaseName = path.basename(root);\n\t\tif (artifactDirNames.includes(rootBaseName)) {\n\t\t\tartifactDirs.add(root);\n\t\t}\n\t\tfor (const artifactDirName of artifactDirNames) {\n\t\t\tconst directArtifactDir = path.join(root, artifactDirName);\n\t\t\ttry {\n\t\t\t\tif (fs.statSync(directArtifactDir).isDirectory()) {\n\t\t\t\t\tartifactDirs.add(directArtifactDir);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch {\n\t\t\t\t// Ignore missing artifact directories.\n\t\t\t}\n\t\t}\n\t}\n\tconst seen = new Set<string>();\n\tconst files: Array<{ filePath: string; score: number; mtimeMs: number }> = [];\n\tfor (const artifactDir of artifactDirs) {\n\t\tcollectEvidenceArtifactFilesFromDirectory(artifactDir, includeJson, files, seen);\n\t}\n\treturn files\n\t\t.sort((left, right) => {\n\t\t\tif (right.score !== left.score) {\n\t\t\t\treturn right.score - left.score;\n\t\t\t}\n\t\t\tif (left.mtimeMs !== right.mtimeMs) {\n\t\t\t\treturn left.mtimeMs - right.mtimeMs;\n\t\t\t}\n\t\t\treturn left.filePath.localeCompare(right.filePath);\n\t\t})\n\t\t.slice(0, maxFiles)\n\t\t.map((entry) => entry.filePath);\n}\n\nexport function toResolveIORunnerEvidenceAttachmentsFromRoots(\n\tinput: ResolveIORunnerEvidenceArtifactRootScanInput = {}\n): ResolveIORunnerEvidenceAttachment[] {\n\treturn collectResolveIORunnerEvidenceArtifactFilesFromRoots(input).map((filePath) => {\n\t\tconst filename = path.basename(filePath);\n\t\treturn {\n\t\t\tfilename,\n\t\t\tpath: filePath,\n\t\t\tcontentType: inferResolveIORunnerEvidenceContentType(filename),\n\t\t\tcid: buildResolveIORunnerEvidenceCid(filePath),\n\t\t\tcaption: inferResolveIORunnerEvidenceCaption(filename)\n\t\t};\n\t});\n}\n\nexport function collectResolveIORunnerEvidenceArtifactPaths(input: {\n\tevidence?: any;\n\tjob?: any;\n\troots?: string[];\n\tmaxFiles?: number;\n} = {}): string[] {\n\tconst values: string[] = [];\n\tcollectResolveIORunnerEvidenceText(input.evidence, values);\n\tconst job = input.job || {};\n\tcollectResolveIORunnerEvidenceText(job.responseSummary, values);\n\tcollectResolveIORunnerEvidenceText(job.lastVerificationSummary, values);\n\tcollectResolveIORunnerEvidenceText(job.lastRerunReason, values);\n\tcollectResolveIORunnerEvidenceText(job.artifacts?.agentNotes, values);\n\tcollectResolveIORunnerEvidenceText(job.artifacts?.supportArtifacts, values);\n\tcollectResolveIORunnerEvidenceText(job.artifacts?.qaArtifacts, values);\n\tcollectResolveIORunnerEvidenceText(job.artifacts?.qa_artifacts, values);\n\tcollectResolveIORunnerEvidenceText(job.qa_artifacts, values);\n\tcollectResolveIORunnerEvidenceText(job.supportQaArtifacts, values);\n\tcollectResolveIORunnerEvidenceText(job.runnerEvidenceArtifacts, values);\n\tif (Array.isArray(job.tasks)) {\n\t\tfor (const task of job.tasks) {\n\t\t\tcollectResolveIORunnerEvidenceText(task?.title, values);\n\t\t\tcollectResolveIORunnerEvidenceText(task?.notes, values);\n\t\t\tcollectResolveIORunnerEvidenceText(task?.artifacts, values);\n\t\t\tcollectResolveIORunnerEvidenceText(task?.evidence, values);\n\t\t}\n\t}\n\tif (Array.isArray(job.log)) {\n\t\tcollectResolveIORunnerEvidenceText(job.log.slice(-160), values);\n\t}\n\n\tconst roots = Array.from(new Set([\n\t\t...(input.roots || []),\n\t\tjob.workspacePath,\n\t\tjob.projectRoot && job.workspacePath ? path.join(job.workspacePath, job.projectRoot) : '',\n\t\tjob.projectDisplayPath && job.workspacePath ? path.join(job.workspacePath, job.projectDisplayPath) : '',\n\t\tjob.localPath\n\t].map((entry) => String(entry || '').trim()).filter(Boolean)));\n\tconst candidates: string[] = [];\n\tfor (const value of values) {\n\t\tconst text = String(value || '');\n\t\tfor (const match of text.matchAll(/((?:\\/tmp\\/|\\/var\\/|\\/Users\\/)[^\\s)'\"]+?\\.(?:png|jpe?g|webp|zip|json|txt|log))/gi)) {\n\t\t\tcandidates.push(match[1]);\n\t\t}\n\t\tfor (const match of text.matchAll(/(?:^|[\\s(\"'`])((?:(?:[\\w.-]+\\/)*qa-artifacts|qa-artifacts|test-results|playwright-report|\\.build-output)\\/[^\\s)'\"]+?\\.(?:png|jpe?g|webp|zip|json|txt|log))/gim)) {\n\t\t\tcandidates.push(match[1]);\n\t\t}\n\t}\n\tconst resolved: string[] = [];\n\tconst seen = new Set<string>();\n\tfor (const candidate of candidates) {\n\t\tconst filePath = resolveArtifactCandidate(candidate, roots);\n\t\tif (!filePath || seen.has(filePath)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseen.add(filePath);\n\t\tresolved.push(filePath);\n\t\tif (resolved.length >= (input.maxFiles || 8)) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn resolved;\n}\n\nexport function toResolveIORunnerEvidenceAttachments(input: {\n\tevidence?: any;\n\tjob?: any;\n\troots?: string[];\n\tmaxFiles?: number;\n} = {}): ResolveIORunnerEvidenceAttachment[] {\n\treturn collectResolveIORunnerEvidenceArtifactPaths(input).map((filePath) => {\n\t\tconst filename = path.basename(filePath);\n\t\treturn {\n\t\t\tfilename,\n\t\t\tpath: filePath,\n\t\t\tcontentType: inferResolveIORunnerEvidenceContentType(filename),\n\t\t\tcid: buildResolveIORunnerEvidenceCid(filePath),\n\t\t\tcaption: inferResolveIORunnerEvidenceCaption(filename)\n\t\t};\n\t});\n}\n\nexport async function persistResolveIORunnerEvidenceArtifacts(\n\toptions: ResolveIORunnerPersistEvidenceOptions\n): Promise<ResolveIORunnerPersistEvidenceResult> {\n\tconst maxFiles = Math.max(1, options.maxFiles || 8);\n\tconst previousFiles = normalizeResolveIORunnerPersistedEvidenceFiles(options.previousFiles);\n\tconst existingByHash = new Map<string, ResolveIORunnerPersistedEvidenceFile>();\n\tfor (const file of previousFiles) {\n\t\tif (file.content_hash) {\n\t\t\texistingByHash.set(file.content_hash, file);\n\t\t}\n\t}\n\tconst attachments = [\n\t\t...(options.attachments || []),\n\t\t...toResolveIORunnerEvidenceAttachments({\n\t\t\tevidence: options.evidence,\n\t\t\tjob: options.job,\n\t\t\troots: options.roots,\n\t\t\tmaxFiles\n\t\t})\n\t];\n\tconst persistedFiles = [...previousFiles];\n\tconst fileIds = mergeResolveIORunnerEvidenceFileIds(options.existingFileIds, previousFiles.map((file) => file.file_id));\n\tconst errors: string[] = [];\n\tconst nextAttachments: ResolveIORunnerEvidenceAttachment[] = [];\n\tconst seenPaths = new Set<string>();\n\n\tfor (const attachment of attachments) {\n\t\tif (nextAttachments.length >= maxFiles) {\n\t\t\tbreak;\n\t\t}\n\t\tconst filePath = String(attachment?.path || '').trim();\n\t\tif (!filePath || seenPaths.has(filePath)) {\n\t\t\tcontinue;\n\t\t}\n\t\tseenPaths.add(filePath);\n\t\tconst filename = String(attachment?.filename || path.basename(filePath) || 'runner-qa-artifact.png').trim();\n\t\tconst contentType = String(attachment?.contentType || inferResolveIORunnerEvidenceContentType(filename)).trim();\n\t\tif (!pathExists(filePath)) {\n\t\t\tconst error = `${filename}: evidence file was not found before S3 upload.`;\n\t\t\terrors.push(error);\n\t\t\tnextAttachments.push({ ...attachment, filename, upload_error: error });\n\t\t\tcontinue;\n\t\t}\n\t\tconst stat = await fs.promises.stat(filePath);\n\t\tif (!stat.isFile() || stat.size <= 0) {\n\t\t\tconst error = `${filename}: evidence file was empty before S3 upload.`;\n\t\t\terrors.push(error);\n\t\t\tnextAttachments.push({ ...attachment, filename, upload_error: error });\n\t\t\tcontinue;\n\t\t}\n\t\tconst contentBuffer = await fs.promises.readFile(filePath);\n\t\tconst contentHash = createHash('sha1').update(new Uint8Array(contentBuffer)).digest('hex');\n\t\tconst existing = existingByHash.get(contentHash);\n\t\tif (existing) {\n\t\t\tfileIds.push(existing.file_id);\n\t\t\tnextAttachments.push({\n\t\t\t\t...attachment,\n\t\t\t\tfilename,\n\t\t\t\tfile_id: existing.file_id,\n\t\t\t\tkey: existing.key,\n\t\t\t\tcaption: attachment.caption || existing.caption || inferResolveIORunnerEvidenceCaption(filename),\n\t\t\t\tcontent_hash: contentHash,\n\t\t\t\tticket_url: options.ticketUrl || existing.ticket_url,\n\t\t\t\tuploaded_to_support_ticket: true\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\t\ttry {\n\t\t\tconst uploaded = await options.uploadFile({\n\t\t\t\tfilename,\n\t\t\t\tfilePath,\n\t\t\t\tcontentType,\n\t\t\t\tsize: stat.size,\n\t\t\t\tcontentBuffer,\n\t\t\t\tcontentHash\n\t\t\t});\n\t\t\tconst fileId = String(uploaded?.file_id || uploaded?.id_file || uploaded?._id || '').trim();\n\t\t\tif (!fileId) {\n\t\t\t\tthrow new Error('artifact upload returned no file id');\n\t\t\t}\n\t\t\tconst persisted: ResolveIORunnerPersistedEvidenceFile = {\n\t\t\t\tfile_id: fileId,\n\t\t\t\tfilename: String(uploaded?.filename || uploaded?.name || filename).trim() || filename,\n\t\t\t\tkey: String(uploaded?.key || '').trim() || undefined,\n\t\t\t\tcontentType,\n\t\t\t\tcaption: String(attachment?.caption || '').trim() || inferResolveIORunnerEvidenceCaption(filename),\n\t\t\t\tcontent_hash: contentHash,\n\t\t\t\tticket_url: String(options.ticketUrl || '').trim() || undefined\n\t\t\t};\n\t\t\tpersistedFiles.push(persisted);\n\t\t\texistingByHash.set(contentHash, persisted);\n\t\t\tfileIds.push(fileId);\n\t\t\tnextAttachments.push({\n\t\t\t\t...attachment,\n\t\t\t\tfilename,\n\t\t\t\tfile_id: fileId,\n\t\t\t\tkey: persisted.key,\n\t\t\t\tcaption: persisted.caption,\n\t\t\t\tcontent_hash: contentHash,\n\t\t\t\tticket_url: persisted.ticket_url,\n\t\t\t\tuploaded_to_support_ticket: true\n\t\t\t});\n\t\t}\n\t\tcatch (error) {\n\t\t\tconst message = `${filename}: ${(error as Error)?.message || error}`;\n\t\t\terrors.push(message);\n\t\t\tnextAttachments.push({ ...attachment, filename, content_hash: contentHash, upload_error: message });\n\t\t}\n\t}\n\n\treturn {\n\t\tattachments: nextAttachments,\n\t\tfileIds: mergeResolveIORunnerEvidenceFileIds(fileIds),\n\t\tfiles: persistedFiles,\n\t\terrors\n\t};\n}\n"]}
@@ -1,92 +0,0 @@
1
- import { ResolveIOAIManagerFailureRecord, ResolveIOAIManagerRecoveryActionDispatchRecord, ResolveIOAIManagerRecoveryActionPacket, ResolveIOAIManagerRecoveryCheckpoint, ResolveIOAIManagerRecoveryExecutionDirective, ResolveIOAIManagerRecoveryEvidenceProbe, ResolveIOAIManagerRecoveryPlan } from './ai-runner-manager-policy';
2
- export type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';
3
- export interface ResolveIOAIManagerAutopilotRecommendedAction {
4
- action: string;
5
- label: string;
6
- reason: string;
7
- safety: ResolveIOAIManagerAutopilotSafetyLevel;
8
- enabled: boolean;
9
- autoRunnable: boolean;
10
- expectedResult: string;
11
- requiresNewEvidence: boolean;
12
- canRunProductRepair: boolean;
13
- canRunExpensiveModel: boolean;
14
- canResetLoopAfterEvidence: boolean;
15
- dispatchAction?: string;
16
- }
17
- export interface ResolveIOAIManagerAutopilotLoopGuard {
18
- state: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';
19
- blocked: boolean;
20
- reason: string;
21
- failureClass: string;
22
- blocker: string;
23
- blockerFingerprint: string;
24
- evidenceHash: string;
25
- sameEvidenceDispatchCount: number;
26
- sameEvidenceAlreadyAttempted: boolean;
27
- loopCount: number;
28
- maxLoopCount: number;
29
- attempts: number;
30
- maxAttemptsBeforePark: number;
31
- canResetLoopAfterEvidence: boolean;
32
- resetRequires: string[];
33
- }
34
- export interface ResolveIOAIManagerAutopilotSnapshot {
35
- surface: string;
36
- runId: string;
37
- title: string;
38
- status: string;
39
- phase: string;
40
- lane: string;
41
- stepType: string;
42
- runKind: string;
43
- recommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;
44
- loopGuard: ResolveIOAIManagerAutopilotLoopGuard;
45
- recovery: {
46
- checkpointId: string;
47
- recoveryClass: string;
48
- dispatchAction: string;
49
- directiveAllowed: boolean;
50
- evidenceOnly: boolean;
51
- productRepairAllowed: boolean;
52
- expensiveModelAllowed: boolean;
53
- requiredArtifacts: string[];
54
- nextCommands: string[];
55
- successCriteria: string[];
56
- forbiddenActions: string[];
57
- };
58
- cost: {
59
- currentRunUsd: number;
60
- totalUsd: number;
61
- currentRunTokens: number;
62
- totalTokens: number;
63
- untrackedWarning: string;
64
- };
65
- updatedAt: string;
66
- }
67
- export interface ResolveIOAIManagerAutopilotSnapshotInput {
68
- surface: string;
69
- runId?: string;
70
- title?: string;
71
- status?: string;
72
- phase?: string;
73
- lane?: string;
74
- stepType?: string;
75
- runKind?: string;
76
- current?: ResolveIOAIManagerFailureRecord;
77
- recoveryPlan?: ResolveIOAIManagerRecoveryPlan;
78
- recoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;
79
- recoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;
80
- recoveryAction?: ResolveIOAIManagerRecoveryActionPacket;
81
- recoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;
82
- recoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
83
- loopCount?: number;
84
- maxLoopCount?: number;
85
- currentRunUsd?: number;
86
- totalUsd?: number;
87
- currentRunTokens?: number;
88
- totalTokens?: number;
89
- untrackedCostWarning?: string;
90
- updatedAt?: Date | string;
91
- }
92
- export declare function buildResolveIOAIManagerAutopilotSnapshot(input: ResolveIOAIManagerAutopilotSnapshotInput): ResolveIOAIManagerAutopilotSnapshot;
@@ -1,281 +0,0 @@
1
- "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.buildResolveIOAIManagerAutopilotSnapshot = buildResolveIOAIManagerAutopilotSnapshot;
15
- function cleanText(value, max) {
16
- if (max === void 0) { max = 1000; }
17
- return String(value || '').replace(/\s+/g, ' ').trim().slice(0, max);
18
- }
19
- function cleanList(value, limit, max) {
20
- var e_1, _a;
21
- if (limit === void 0) { limit = 20; }
22
- if (max === void 0) { max = 500; }
23
- var raw = Array.isArray(value) ? value : [];
24
- var output = [];
25
- try {
26
- for (var raw_1 = __values(raw), raw_1_1 = raw_1.next(); !raw_1_1.done; raw_1_1 = raw_1.next()) {
27
- var entry = raw_1_1.value;
28
- var cleaned = cleanText(entry, max);
29
- if (cleaned && !output.includes(cleaned)) {
30
- output.push(cleaned);
31
- }
32
- if (output.length >= limit) {
33
- break;
34
- }
35
- }
36
- }
37
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
38
- finally {
39
- try {
40
- if (raw_1_1 && !raw_1_1.done && (_a = raw_1.return)) _a.call(raw_1);
41
- }
42
- finally { if (e_1) throw e_1.error; }
43
- }
44
- return output;
45
- }
46
- function cleanNumber(value) {
47
- var parsed = Number(value);
48
- return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
49
- }
50
- function isoNow(value) {
51
- if (value instanceof Date) {
52
- return value.toISOString();
53
- }
54
- var parsed = value ? new Date(value) : new Date();
55
- return Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();
56
- }
57
- function defaultLabelForAction(action) {
58
- switch (action) {
59
- case 'run_evidence_probe':
60
- return 'Collect New Evidence';
61
- case 'run_read_only_diagnosis':
62
- return 'Run Diagnosis';
63
- case 'run_infra_repair':
64
- return 'Repair Infra';
65
- case 'run_compile_repair':
66
- return 'Repair Compile';
67
- case 'run_journey_contract_repair':
68
- return 'Repair Journey';
69
- case 'run_business_assertion_repair':
70
- return 'Repair Business Proof';
71
- case 'run_release_repair':
72
- return 'Repair Release';
73
- case 'run_targeted_product_repair':
74
- return 'Run Targeted Repair';
75
- case 'advance':
76
- return 'Advance';
77
- case 'continue_gate':
78
- return 'Continue Gate';
79
- case 'park_manual':
80
- return 'Attach New Evidence';
81
- default:
82
- return action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';
83
- }
84
- }
85
- function expectedResultForAction(action, evidenceOnly) {
86
- if (action === 'park_manual') {
87
- return 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';
88
- }
89
- if (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {
90
- return 'Runner records a new artifact path or changed evidence hash before any more product repair.';
91
- }
92
- if (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {
93
- return 'Runner repairs only the named deterministic gate and reruns that gate.';
94
- }
95
- if (action === 'run_targeted_product_repair') {
96
- return 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';
97
- }
98
- return 'Runner advances only after the current gate has proof.';
99
- }
100
- function safetyFor(input) {
101
- if (!input.enabled || input.action === 'park_manual') {
102
- return 'blocked';
103
- }
104
- if (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {
105
- return 'low';
106
- }
107
- if (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {
108
- return 'high';
109
- }
110
- if (input.productRepairAllowed) {
111
- return 'medium';
112
- }
113
- return 'medium';
114
- }
115
- function resolveDispatchAction(input) {
116
- var _a, _b, _c;
117
- var directiveAction = cleanText((_a = input.recoveryDirective) === null || _a === void 0 ? void 0 : _a.dispatchAction, 120);
118
- if (directiveAction) {
119
- return directiveAction;
120
- }
121
- var actionMode = cleanText((_b = input.recoveryAction) === null || _b === void 0 ? void 0 : _b.mode, 120);
122
- switch (actionMode) {
123
- case 'collect_evidence':
124
- return 'run_evidence_probe';
125
- case 'read_only_diagnosis':
126
- return 'run_read_only_diagnosis';
127
- case 'repair_infra':
128
- return 'run_infra_repair';
129
- case 'repair_compile':
130
- return 'run_compile_repair';
131
- case 'repair_journey_contract':
132
- return 'run_journey_contract_repair';
133
- case 'repair_business_assertion':
134
- return 'run_business_assertion_repair';
135
- case 'repair_release':
136
- return 'run_release_repair';
137
- case 'targeted_product_repair':
138
- return 'run_targeted_product_repair';
139
- case 'advance':
140
- return 'advance';
141
- case 'continue_gate':
142
- return 'continue_gate';
143
- case 'manual_review':
144
- return 'park_manual';
145
- default:
146
- return ((_c = input.recoveryCheckpoint) === null || _c === void 0 ? void 0 : _c.status) === 'parked' ? 'run_evidence_probe' : 'continue_gate';
147
- }
148
- }
149
- function countSameEvidenceDispatches(input, dispatchAction) {
150
- var _a, _b, _c, _d, _e, _f, _g;
151
- var checkpointId = cleanText(((_a = input.recoveryCheckpoint) === null || _a === void 0 ? void 0 : _a.checkpointId) || ((_b = input.recoveryAction) === null || _b === void 0 ? void 0 : _b.checkpointId), 160);
152
- var actionId = cleanText((_c = input.recoveryAction) === null || _c === void 0 ? void 0 : _c.actionId, 160);
153
- var evidenceHash = cleanText(((_d = input.current) === null || _d === void 0 ? void 0 : _d.evidenceHash) || ((_e = input.recoveryCheckpoint) === null || _e === void 0 ? void 0 : _e.evidenceHash), 160);
154
- var blockerFingerprint = cleanText(((_f = input.current) === null || _f === void 0 ? void 0 : _f.blockerFingerprint) || ((_g = input.recoveryCheckpoint) === null || _g === void 0 ? void 0 : _g.blockerFingerprint), 160);
155
- var history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];
156
- return history.filter(function (entry) {
157
- var sameCheckpoint = checkpointId && cleanText(entry === null || entry === void 0 ? void 0 : entry.checkpointId, 160) === checkpointId;
158
- var sameAction = actionId && cleanText(entry === null || entry === void 0 ? void 0 : entry.actionId, 160) === actionId;
159
- var sameEvidence = !evidenceHash || cleanText(entry === null || entry === void 0 ? void 0 : entry.evidenceHash, 160) === evidenceHash;
160
- var sameBlocker = !blockerFingerprint || cleanText(entry === null || entry === void 0 ? void 0 : entry.blockerFingerprint, 160) === blockerFingerprint;
161
- var sameDispatchAction = !dispatchAction
162
- || dispatchAction === 'park_manual'
163
- || cleanText(entry === null || entry === void 0 ? void 0 : entry.dispatchAction, 120) === dispatchAction
164
- || cleanText(entry === null || entry === void 0 ? void 0 : entry.dispatchAction, 120) === 'park_manual';
165
- return (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;
166
- }).length;
167
- }
168
- function buildResolveIOAIManagerAutopilotSnapshot(input) {
169
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51;
170
- var dispatchAction = resolveDispatchAction(input);
171
- var directiveAllowed = input.recoveryDirective
172
- ? input.recoveryDirective.allowed === true
173
- : ((_a = input.recoveryAction) === null || _a === void 0 ? void 0 : _a.autoRunnable) === true;
174
- var evidenceOnly = ((_b = input.recoveryDirective) === null || _b === void 0 ? void 0 : _b.evidenceOnly) === true
175
- || ((_c = input.recoveryAction) === null || _c === void 0 ? void 0 : _c.evidenceOnly) === true
176
- || ((_d = input.recoveryEvidenceProbe) === null || _d === void 0 ? void 0 : _d.evidenceOnly) === true
177
- || ((_e = input.recoveryCheckpoint) === null || _e === void 0 ? void 0 : _e.status) === 'parked';
178
- var productRepairAllowed = ((_l = (_j = (_g = (_f = input.recoveryDirective) === null || _f === void 0 ? void 0 : _f.canRunProductRepair) !== null && _g !== void 0 ? _g : (_h = input.recoveryDirective) === null || _h === void 0 ? void 0 : _h.productRepairAllowed) !== null && _j !== void 0 ? _j : (_k = input.recoveryAction) === null || _k === void 0 ? void 0 : _k.productRepairAllowed) !== null && _l !== void 0 ? _l : (_m = input.recoveryCheckpoint) === null || _m === void 0 ? void 0 : _m.productRepairAllowed) === true;
179
- var expensiveModelAllowed = ((_t = (_r = (_p = (_o = input.recoveryDirective) === null || _o === void 0 ? void 0 : _o.canRunExpensiveModel) !== null && _p !== void 0 ? _p : (_q = input.recoveryDirective) === null || _q === void 0 ? void 0 : _q.expensiveModelAllowed) !== null && _r !== void 0 ? _r : (_s = input.recoveryAction) === null || _s === void 0 ? void 0 : _s.expensiveModelAllowed) !== null && _t !== void 0 ? _t : (_u = input.recoveryCheckpoint) === null || _u === void 0 ? void 0 : _u.expensiveModelAllowed) === true;
180
- var requiresNewEvidence = ((_v = input.recoveryDirective) === null || _v === void 0 ? void 0 : _v.requiresNewEvidence) === true
181
- || ((_x = (_w = input.recoveryAction) === null || _w === void 0 ? void 0 : _w.retryPolicy) === null || _x === void 0 ? void 0 : _x.requireNewEvidence) === true
182
- || ((_y = input.recoveryCheckpoint) === null || _y === void 0 ? void 0 : _y.status) === 'parked';
183
- var sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);
184
- var sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && ((_z = input.recoveryDirective) === null || _z === void 0 ? void 0 : _z.newEvidence) !== true;
185
- var checkpointStatus = cleanText((_0 = input.recoveryCheckpoint) === null || _0 === void 0 ? void 0 : _0.status, 80);
186
- var loopState = checkpointStatus === 'manual_handoff'
187
- ? 'manual_handoff'
188
- : checkpointStatus === 'complete'
189
- ? 'complete'
190
- : sameEvidenceAlreadyAttempted || ((_1 = input.recoveryDirective) === null || _1 === void 0 ? void 0 : _1.allowed) === false
191
- ? 'parked'
192
- : evidenceOnly && requiresNewEvidence
193
- ? 'collecting_evidence'
194
- : 'clear';
195
- var enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';
196
- var recommendedAction = sameEvidenceAlreadyAttempted || ((_2 = input.recoveryDirective) === null || _2 === void 0 ? void 0 : _2.allowed) === false
197
- ? 'park_manual'
198
- : dispatchAction;
199
- var label = cleanText(sameEvidenceAlreadyAttempted
200
- ? 'Attach New Evidence'
201
- : ((_3 = input.recoveryDirective) === null || _3 === void 0 ? void 0 : _3.nextActionLabel) || ((_4 = input.recoveryAction) === null || _4 === void 0 ? void 0 : _4.label) || defaultLabelForAction(recommendedAction), 140);
202
- var reason = cleanText(sameEvidenceAlreadyAttempted
203
- ? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'
204
- : ((_5 = input.recoveryDirective) === null || _5 === void 0 ? void 0 : _5.reason) || ((_6 = input.recoveryAction) === null || _6 === void 0 ? void 0 : _6.blockedReason) || ((_7 = input.recoveryPlan) === null || _7 === void 0 ? void 0 : _7.objective) || ((_8 = input.current) === null || _8 === void 0 ? void 0 : _8.blocker) || 'Manager can continue the current gate.', 1000);
205
- var canResetLoopAfterEvidence = ((_9 = input.recoveryDirective) === null || _9 === void 0 ? void 0 : _9.canResetLoopAfterEvidence) === true
206
- || ((_10 = input.recoveryAction) === null || _10 === void 0 ? void 0 : _10.canResetLoopAfterEvidence) === true
207
- || cleanList((_11 = input.recoveryCheckpoint) === null || _11 === void 0 ? void 0 : _11.loopResetEvidence, 20, 500).length > 0;
208
- var resetRequires = cleanList(((_14 = (_13 = (_12 = input.recoveryAction) === null || _12 === void 0 ? void 0 : _12.retryPolicy) === null || _13 === void 0 ? void 0 : _13.resetLoopWhen) === null || _14 === void 0 ? void 0 : _14.length)
209
- ? input.recoveryAction.retryPolicy.resetLoopWhen
210
- : (_15 = input.recoveryCheckpoint) === null || _15 === void 0 ? void 0 : _15.loopResetEvidence, 20, 500);
211
- return {
212
- surface: cleanText(input.surface || 'unknown', 120),
213
- runId: cleanText(input.runId, 160),
214
- title: cleanText(input.title, 240),
215
- status: cleanText(input.status || ((_16 = input.recoveryCheckpoint) === null || _16 === void 0 ? void 0 : _16.status), 80),
216
- phase: cleanText(input.phase || ((_17 = input.recoveryDirective) === null || _17 === void 0 ? void 0 : _17.phase), 80),
217
- lane: cleanText(input.lane || ((_18 = input.recoveryDirective) === null || _18 === void 0 ? void 0 : _18.lane) || ((_19 = input.recoveryCheckpoint) === null || _19 === void 0 ? void 0 : _19.lane) || ((_20 = input.current) === null || _20 === void 0 ? void 0 : _20.lane), 120),
218
- stepType: cleanText(input.stepType || ((_21 = input.recoveryDirective) === null || _21 === void 0 ? void 0 : _21.stepType) || ((_22 = input.recoveryCheckpoint) === null || _22 === void 0 ? void 0 : _22.stepType) || ((_23 = input.current) === null || _23 === void 0 ? void 0 : _23.stepType), 120),
219
- runKind: cleanText(input.runKind, 120),
220
- recommendedAction: {
221
- action: recommendedAction,
222
- label: label,
223
- reason: reason,
224
- safety: safetyFor({
225
- action: recommendedAction,
226
- enabled: enabled,
227
- evidenceOnly: evidenceOnly,
228
- productRepairAllowed: productRepairAllowed,
229
- expensiveModelAllowed: expensiveModelAllowed
230
- }),
231
- enabled: enabled,
232
- autoRunnable: enabled && ((_24 = input.recoveryAction) === null || _24 === void 0 ? void 0 : _24.autoRunnable) !== false,
233
- expectedResult: expectedResultForAction(recommendedAction, evidenceOnly),
234
- requiresNewEvidence: requiresNewEvidence,
235
- canRunProductRepair: enabled && productRepairAllowed,
236
- canRunExpensiveModel: enabled && expensiveModelAllowed,
237
- canResetLoopAfterEvidence: canResetLoopAfterEvidence,
238
- dispatchAction: dispatchAction
239
- },
240
- loopGuard: {
241
- state: loopState,
242
- blocked: loopState === 'parked' || loopState === 'manual_handoff',
243
- reason: reason,
244
- failureClass: cleanText((_25 = input.current) === null || _25 === void 0 ? void 0 : _25.failureClass, 120),
245
- blocker: cleanText(((_26 = input.current) === null || _26 === void 0 ? void 0 : _26.blocker) || ((_27 = input.current) === null || _27 === void 0 ? void 0 : _27.summary), 1000),
246
- blockerFingerprint: cleanText(((_28 = input.current) === null || _28 === void 0 ? void 0 : _28.blockerFingerprint) || ((_29 = input.recoveryCheckpoint) === null || _29 === void 0 ? void 0 : _29.blockerFingerprint), 160),
247
- evidenceHash: cleanText(((_30 = input.current) === null || _30 === void 0 ? void 0 : _30.evidenceHash) || ((_31 = input.recoveryCheckpoint) === null || _31 === void 0 ? void 0 : _31.evidenceHash), 160),
248
- sameEvidenceDispatchCount: sameEvidenceDispatchCount,
249
- sameEvidenceAlreadyAttempted: sameEvidenceAlreadyAttempted,
250
- loopCount: cleanNumber(input.loopCount),
251
- maxLoopCount: cleanNumber(input.maxLoopCount),
252
- attempts: cleanNumber((_32 = input.recoveryCheckpoint) === null || _32 === void 0 ? void 0 : _32.attempts),
253
- maxAttemptsBeforePark: cleanNumber((_33 = input.recoveryCheckpoint) === null || _33 === void 0 ? void 0 : _33.maxAttemptsBeforePark),
254
- canResetLoopAfterEvidence: canResetLoopAfterEvidence,
255
- resetRequires: resetRequires
256
- },
257
- recovery: {
258
- checkpointId: cleanText(((_34 = input.recoveryCheckpoint) === null || _34 === void 0 ? void 0 : _34.checkpointId) || ((_35 = input.recoveryAction) === null || _35 === void 0 ? void 0 : _35.checkpointId), 160),
259
- recoveryClass: cleanText(((_36 = input.recoveryCheckpoint) === null || _36 === void 0 ? void 0 : _36.recoveryClass) || ((_37 = input.recoveryAction) === null || _37 === void 0 ? void 0 : _37.recoveryClass) || ((_38 = input.recoveryPlan) === null || _38 === void 0 ? void 0 : _38.recoveryClass), 120),
260
- dispatchAction: dispatchAction,
261
- directiveAllowed: directiveAllowed,
262
- evidenceOnly: evidenceOnly,
263
- productRepairAllowed: productRepairAllowed,
264
- expensiveModelAllowed: expensiveModelAllowed,
265
- requiredArtifacts: cleanList(((_40 = (_39 = input.recoveryDirective) === null || _39 === void 0 ? void 0 : _39.requiredArtifacts) === null || _40 === void 0 ? void 0 : _40.length) ? input.recoveryDirective.requiredArtifacts : (_41 = input.recoveryAction) === null || _41 === void 0 ? void 0 : _41.requiredArtifacts, 20, 500),
266
- nextCommands: cleanList(((_43 = (_42 = input.recoveryDirective) === null || _42 === void 0 ? void 0 : _42.nextCommands) === null || _43 === void 0 ? void 0 : _43.length) ? input.recoveryDirective.nextCommands : (_44 = input.recoveryAction) === null || _44 === void 0 ? void 0 : _44.nextCommands, 20, 500),
267
- successCriteria: cleanList(((_46 = (_45 = input.recoveryDirective) === null || _45 === void 0 ? void 0 : _45.successCriteria) === null || _46 === void 0 ? void 0 : _46.length) ? input.recoveryDirective.successCriteria : (_47 = input.recoveryAction) === null || _47 === void 0 ? void 0 : _47.successCriteria, 20, 500),
268
- forbiddenActions: cleanList(((_49 = (_48 = input.recoveryDirective) === null || _48 === void 0 ? void 0 : _48.forbiddenActions) === null || _49 === void 0 ? void 0 : _49.length) ? input.recoveryDirective.forbiddenActions : (_51 = (_50 = input.recoveryAction) === null || _50 === void 0 ? void 0 : _50.retryPolicy) === null || _51 === void 0 ? void 0 : _51.stopWhen, 20, 500)
269
- },
270
- cost: {
271
- currentRunUsd: cleanNumber(input.currentRunUsd),
272
- totalUsd: cleanNumber(input.totalUsd),
273
- currentRunTokens: cleanNumber(input.currentRunTokens),
274
- totalTokens: cleanNumber(input.totalTokens),
275
- untrackedWarning: cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500)
276
- },
277
- updatedAt: isoNow(input.updatedAt)
278
- };
279
- }
280
-
281
- //# sourceMappingURL=ai-runner-manager-autopilot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/util/ai-runner-manager-autopilot.ts"],"names":[],"mappings":"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","file":"ai-runner-manager-autopilot.js","sourcesContent":["import {\n\tResolveIOAIManagerFailureRecord,\n\tResolveIOAIManagerRecoveryActionDispatchRecord,\n\tResolveIOAIManagerRecoveryActionPacket,\n\tResolveIOAIManagerRecoveryCheckpoint,\n\tResolveIOAIManagerRecoveryExecutionDirective,\n\tResolveIOAIManagerRecoveryEvidenceProbe,\n\tResolveIOAIManagerRecoveryPlan\n} from './ai-runner-manager-policy';\n\nexport type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';\n\nexport interface ResolveIOAIManagerAutopilotRecommendedAction {\n\taction: string;\n\tlabel: string;\n\treason: string;\n\tsafety: ResolveIOAIManagerAutopilotSafetyLevel;\n\tenabled: boolean;\n\tautoRunnable: boolean;\n\texpectedResult: string;\n\trequiresNewEvidence: boolean;\n\tcanRunProductRepair: boolean;\n\tcanRunExpensiveModel: boolean;\n\tcanResetLoopAfterEvidence: boolean;\n\tdispatchAction?: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotLoopGuard {\n\tstate: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';\n\tblocked: boolean;\n\treason: string;\n\tfailureClass: string;\n\tblocker: string;\n\tblockerFingerprint: string;\n\tevidenceHash: string;\n\tsameEvidenceDispatchCount: number;\n\tsameEvidenceAlreadyAttempted: boolean;\n\tloopCount: number;\n\tmaxLoopCount: number;\n\tattempts: number;\n\tmaxAttemptsBeforePark: number;\n\tcanResetLoopAfterEvidence: boolean;\n\tresetRequires: string[];\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshot {\n\tsurface: string;\n\trunId: string;\n\ttitle: string;\n\tstatus: string;\n\tphase: string;\n\tlane: string;\n\tstepType: string;\n\trunKind: string;\n\trecommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;\n\tloopGuard: ResolveIOAIManagerAutopilotLoopGuard;\n\trecovery: {\n\t\tcheckpointId: string;\n\t\trecoveryClass: string;\n\t\tdispatchAction: string;\n\t\tdirectiveAllowed: boolean;\n\t\tevidenceOnly: boolean;\n\t\tproductRepairAllowed: boolean;\n\t\texpensiveModelAllowed: boolean;\n\t\trequiredArtifacts: string[];\n\t\tnextCommands: string[];\n\t\tsuccessCriteria: string[];\n\t\tforbiddenActions: string[];\n\t};\n\tcost: {\n\t\tcurrentRunUsd: number;\n\t\ttotalUsd: number;\n\t\tcurrentRunTokens: number;\n\t\ttotalTokens: number;\n\t\tuntrackedWarning: string;\n\t};\n\tupdatedAt: string;\n}\n\nexport interface ResolveIOAIManagerAutopilotSnapshotInput {\n\tsurface: string;\n\trunId?: string;\n\ttitle?: string;\n\tstatus?: string;\n\tphase?: string;\n\tlane?: string;\n\tstepType?: string;\n\trunKind?: string;\n\tcurrent?: ResolveIOAIManagerFailureRecord;\n\trecoveryPlan?: ResolveIOAIManagerRecoveryPlan;\n\trecoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;\n\trecoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;\n\trecoveryAction?: ResolveIOAIManagerRecoveryActionPacket;\n\trecoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;\n\trecoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];\n\tloopCount?: number;\n\tmaxLoopCount?: number;\n\tcurrentRunUsd?: number;\n\ttotalUsd?: number;\n\tcurrentRunTokens?: number;\n\ttotalTokens?: number;\n\tuntrackedCostWarning?: string;\n\tupdatedAt?: Date | string;\n}\n\nfunction cleanText(value: any, max = 1000): string {\n\treturn String(value || '').replace(/\\s+/g, ' ').trim().slice(0, max);\n}\n\nfunction cleanList(value: any, limit = 20, max = 500): string[] {\n\tconst raw = Array.isArray(value) ? value : [];\n\tconst output: string[] = [];\n\tfor (const entry of raw) {\n\t\tconst cleaned = cleanText(entry, max);\n\t\tif (cleaned && !output.includes(cleaned)) {\n\t\t\toutput.push(cleaned);\n\t\t}\n\t\tif (output.length >= limit) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn output;\n}\n\nfunction cleanNumber(value: any): number {\n\tconst parsed = Number(value);\n\treturn Number.isFinite(parsed) && parsed > 0 ? parsed : 0;\n}\n\nfunction isoNow(value?: Date | string): string {\n\tif (value instanceof Date) {\n\t\treturn value.toISOString();\n\t}\n\tconst parsed = value ? new Date(value) : new Date();\n\treturn Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();\n}\n\nfunction defaultLabelForAction(action: string): string {\n\tswitch (action) {\n\t\tcase 'run_evidence_probe':\n\t\t\treturn 'Collect New Evidence';\n\t\tcase 'run_read_only_diagnosis':\n\t\t\treturn 'Run Diagnosis';\n\t\tcase 'run_infra_repair':\n\t\t\treturn 'Repair Infra';\n\t\tcase 'run_compile_repair':\n\t\t\treturn 'Repair Compile';\n\t\tcase 'run_journey_contract_repair':\n\t\t\treturn 'Repair Journey';\n\t\tcase 'run_business_assertion_repair':\n\t\t\treturn 'Repair Business Proof';\n\t\tcase 'run_release_repair':\n\t\t\treturn 'Repair Release';\n\t\tcase 'run_targeted_product_repair':\n\t\t\treturn 'Run Targeted Repair';\n\t\tcase 'advance':\n\t\t\treturn 'Advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'Continue Gate';\n\t\tcase 'park_manual':\n\t\t\treturn 'Attach New Evidence';\n\t\tdefault:\n\t\t\treturn action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';\n\t}\n}\n\nfunction expectedResultForAction(action: string, evidenceOnly: boolean): string {\n\tif (action === 'park_manual') {\n\t\treturn 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';\n\t}\n\tif (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {\n\t\treturn 'Runner records a new artifact path or changed evidence hash before any more product repair.';\n\t}\n\tif (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {\n\t\treturn 'Runner repairs only the named deterministic gate and reruns that gate.';\n\t}\n\tif (action === 'run_targeted_product_repair') {\n\t\treturn 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';\n\t}\n\treturn 'Runner advances only after the current gate has proof.';\n}\n\nfunction safetyFor(input: {\n\taction: string;\n\tenabled: boolean;\n\tevidenceOnly: boolean;\n\tproductRepairAllowed: boolean;\n\texpensiveModelAllowed: boolean;\n}): ResolveIOAIManagerAutopilotSafetyLevel {\n\tif (!input.enabled || input.action === 'park_manual') {\n\t\treturn 'blocked';\n\t}\n\tif (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {\n\t\treturn 'low';\n\t}\n\tif (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {\n\t\treturn 'high';\n\t}\n\tif (input.productRepairAllowed) {\n\t\treturn 'medium';\n\t}\n\treturn 'medium';\n}\n\nfunction resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {\n\tconst directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);\n\tif (directiveAction) {\n\t\treturn directiveAction;\n\t}\n\tconst actionMode = cleanText(input.recoveryAction?.mode, 120);\n\tswitch (actionMode) {\n\t\tcase 'collect_evidence':\n\t\t\treturn 'run_evidence_probe';\n\t\tcase 'read_only_diagnosis':\n\t\t\treturn 'run_read_only_diagnosis';\n\t\tcase 'repair_infra':\n\t\t\treturn 'run_infra_repair';\n\t\tcase 'repair_compile':\n\t\t\treturn 'run_compile_repair';\n\t\tcase 'repair_journey_contract':\n\t\t\treturn 'run_journey_contract_repair';\n\t\tcase 'repair_business_assertion':\n\t\t\treturn 'run_business_assertion_repair';\n\t\tcase 'repair_release':\n\t\t\treturn 'run_release_repair';\n\t\tcase 'targeted_product_repair':\n\t\t\treturn 'run_targeted_product_repair';\n\t\tcase 'advance':\n\t\t\treturn 'advance';\n\t\tcase 'continue_gate':\n\t\t\treturn 'continue_gate';\n\t\tcase 'manual_review':\n\t\t\treturn 'park_manual';\n\t\tdefault:\n\t\t\treturn input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';\n\t}\n}\n\nfunction countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {\n\tconst checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);\n\tconst actionId = cleanText(input.recoveryAction?.actionId, 160);\n\tconst evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);\n\tconst blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);\n\tconst history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];\n\treturn history.filter((entry) => {\n\t\tconst sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;\n\t\tconst sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;\n\t\tconst sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;\n\t\tconst sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;\n\t\tconst sameDispatchAction = !dispatchAction\n\t\t\t|| dispatchAction === 'park_manual'\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === dispatchAction\n\t\t\t|| cleanText(entry?.dispatchAction, 120) === 'park_manual';\n\t\treturn (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;\n\t}).length;\n}\n\nexport function buildResolveIOAIManagerAutopilotSnapshot(\n\tinput: ResolveIOAIManagerAutopilotSnapshotInput\n): ResolveIOAIManagerAutopilotSnapshot {\n\tconst dispatchAction = resolveDispatchAction(input);\n\tconst directiveAllowed = input.recoveryDirective\n\t\t? input.recoveryDirective.allowed === true\n\t\t: input.recoveryAction?.autoRunnable === true;\n\tconst evidenceOnly = input.recoveryDirective?.evidenceOnly === true\n\t\t|| input.recoveryAction?.evidenceOnly === true\n\t\t|| input.recoveryEvidenceProbe?.evidenceOnly === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;\n\tconst expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;\n\tconst requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true\n\t\t|| input.recoveryAction?.retryPolicy?.requireNewEvidence === true\n\t\t|| input.recoveryCheckpoint?.status === 'parked';\n\tconst sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);\n\tconst sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;\n\tconst checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);\n\tconst loopState = checkpointStatus === 'manual_handoff'\n\t\t? 'manual_handoff'\n\t\t: checkpointStatus === 'complete'\n\t\t\t? 'complete'\n\t\t\t: sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t\t\t? 'parked'\n\t\t\t\t: evidenceOnly && requiresNewEvidence\n\t\t\t\t\t? 'collecting_evidence'\n\t\t\t\t\t: 'clear';\n\tconst enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';\n\tconst recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false\n\t\t? 'park_manual'\n\t\t: dispatchAction;\n\tconst label = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'Attach New Evidence'\n\t\t\t: input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),\n\t\t140\n\t);\n\tconst reason = cleanText(\n\t\tsameEvidenceAlreadyAttempted\n\t\t\t? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'\n\t\t\t: input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',\n\t\t1000\n\t);\n\tconst canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true\n\t\t|| input.recoveryAction?.canResetLoopAfterEvidence === true\n\t\t|| cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;\n\tconst resetRequires = cleanList(\n\t\tinput.recoveryAction?.retryPolicy?.resetLoopWhen?.length\n\t\t\t? input.recoveryAction.retryPolicy.resetLoopWhen\n\t\t\t: input.recoveryCheckpoint?.loopResetEvidence,\n\t\t20,\n\t\t500\n\t);\n\treturn {\n\t\tsurface: cleanText(input.surface || 'unknown', 120),\n\t\trunId: cleanText(input.runId, 160),\n\t\ttitle: cleanText(input.title, 240),\n\t\tstatus: cleanText(input.status || input.recoveryCheckpoint?.status, 80),\n\t\tphase: cleanText(input.phase || input.recoveryDirective?.phase, 80),\n\t\tlane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),\n\t\tstepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),\n\t\trunKind: cleanText(input.runKind, 120),\n\t\trecommendedAction: {\n\t\t\taction: recommendedAction,\n\t\t\tlabel,\n\t\t\treason,\n\t\t\tsafety: safetyFor({\n\t\t\t\taction: recommendedAction,\n\t\t\t\tenabled,\n\t\t\t\tevidenceOnly,\n\t\t\t\tproductRepairAllowed,\n\t\t\t\texpensiveModelAllowed\n\t\t\t}),\n\t\t\tenabled,\n\t\t\tautoRunnable: enabled && input.recoveryAction?.autoRunnable !== false,\n\t\t\texpectedResult: expectedResultForAction(recommendedAction, evidenceOnly),\n\t\t\trequiresNewEvidence,\n\t\t\tcanRunProductRepair: enabled && productRepairAllowed,\n\t\t\tcanRunExpensiveModel: enabled && expensiveModelAllowed,\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tdispatchAction\n\t\t},\n\t\tloopGuard: {\n\t\t\tstate: loopState,\n\t\t\tblocked: loopState === 'parked' || loopState === 'manual_handoff',\n\t\t\treason,\n\t\t\tfailureClass: cleanText(input.current?.failureClass, 120),\n\t\t\tblocker: cleanText(input.current?.blocker || input.current?.summary, 1000),\n\t\t\tblockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),\n\t\t\tevidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),\n\t\t\tsameEvidenceDispatchCount,\n\t\t\tsameEvidenceAlreadyAttempted,\n\t\t\tloopCount: cleanNumber(input.loopCount),\n\t\t\tmaxLoopCount: cleanNumber(input.maxLoopCount),\n\t\t\tattempts: cleanNumber(input.recoveryCheckpoint?.attempts),\n\t\t\tmaxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),\n\t\t\tcanResetLoopAfterEvidence,\n\t\t\tresetRequires\n\t\t},\n\t\trecovery: {\n\t\t\tcheckpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),\n\t\t\trecoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),\n\t\t\tdispatchAction,\n\t\t\tdirectiveAllowed,\n\t\t\tevidenceOnly,\n\t\t\tproductRepairAllowed,\n\t\t\texpensiveModelAllowed,\n\t\t\trequiredArtifacts: cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500),\n\t\t\tnextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),\n\t\t\tsuccessCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),\n\t\t\tforbiddenActions: cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500)\n\t\t},\n\t\tcost: {\n\t\t\tcurrentRunUsd: cleanNumber(input.currentRunUsd),\n\t\t\ttotalUsd: cleanNumber(input.totalUsd),\n\t\t\tcurrentRunTokens: cleanNumber(input.currentRunTokens),\n\t\t\ttotalTokens: cleanNumber(input.totalTokens),\n\t\t\tuntrackedWarning: cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500)\n\t\t},\n\t\tupdatedAt: isoNow(input.updatedAt)\n\t};\n}\n"]}