@resolveio/server-lib 22.3.221 → 22.3.222

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (745) hide show
  1. package/ai/assistant-core-heuristics.d.ts +11 -0
  2. package/ai/assistant-core-heuristics.js +356 -0
  3. package/ai/assistant-core-heuristics.js.map +1 -0
  4. package/ai/resolveio-platform-intelligence-memory-corpus.d.ts +3 -0
  5. package/ai/resolveio-platform-intelligence-memory-corpus.js +214 -0
  6. package/ai/resolveio-platform-intelligence-memory-corpus.js.map +1 -0
  7. package/ai/resolveio-platform-intelligence-memory.d.ts +20 -0
  8. package/ai/resolveio-platform-intelligence-memory.js +341 -0
  9. package/ai/resolveio-platform-intelligence-memory.js.map +1 -0
  10. package/{src/ai/resolveio-platform-intelligence-types.ts → ai/resolveio-platform-intelligence-types.d.ts} +15 -20
  11. package/ai/resolveio-platform-intelligence-types.js +4 -0
  12. package/ai/resolveio-platform-intelligence-types.js.map +1 -0
  13. package/ai/resolveio-platform-intelligence.d.ts +6 -0
  14. package/ai/resolveio-platform-intelligence.js +463 -0
  15. package/ai/resolveio-platform-intelligence.js.map +1 -0
  16. package/client-server-app.d.ts +1 -0
  17. package/client-server-app.js +68 -0
  18. package/client-server-app.js.map +1 -0
  19. package/collections/ai-run.collection.d.ts +3 -0
  20. package/collections/ai-run.collection.js +170 -0
  21. package/collections/ai-run.collection.js.map +1 -0
  22. package/collections/ai-terminal-conversation.collection.d.ts +2 -0
  23. package/collections/ai-terminal-conversation.collection.js +140 -0
  24. package/collections/ai-terminal-conversation.collection.js.map +1 -0
  25. package/collections/ai-terminal-issue-report.collection.d.ts +2 -0
  26. package/collections/ai-terminal-issue-report.collection.js +148 -0
  27. package/collections/ai-terminal-issue-report.collection.js.map +1 -0
  28. package/collections/ai-terminal-message.collection.d.ts +2 -0
  29. package/collections/ai-terminal-message.collection.js +121 -0
  30. package/collections/ai-terminal-message.collection.js.map +1 -0
  31. package/collections/app-setting.collection.d.ts +3 -0
  32. package/collections/app-setting.collection.js +103 -0
  33. package/collections/app-setting.collection.js.map +1 -0
  34. package/collections/app-status.collection.d.ts +3 -0
  35. package/collections/app-status.collection.js +57 -0
  36. package/collections/app-status.collection.js.map +1 -0
  37. package/collections/communication-metric.collection.d.ts +2 -0
  38. package/collections/communication-metric.collection.js +133 -0
  39. package/collections/communication-metric.collection.js.map +1 -0
  40. package/collections/counter.collection.d.ts +3 -0
  41. package/collections/counter.collection.js +56 -0
  42. package/collections/counter.collection.js.map +1 -0
  43. package/collections/cron-job-history.collection.d.ts +3 -0
  44. package/collections/cron-job-history.collection.js +137 -0
  45. package/collections/cron-job-history.collection.js.map +1 -0
  46. package/collections/cron-job.collection.d.ts +3 -0
  47. package/collections/cron-job.collection.js +92 -0
  48. package/collections/cron-job.collection.js.map +1 -0
  49. package/collections/customer-notification.collection.d.ts +3 -0
  50. package/collections/customer-notification.collection.js +130 -0
  51. package/collections/customer-notification.collection.js.map +1 -0
  52. package/collections/customer-portal-password.collection.d.ts +3 -0
  53. package/collections/customer-portal-password.collection.js +75 -0
  54. package/collections/customer-portal-password.collection.js.map +1 -0
  55. package/collections/email-history.collection.d.ts +3 -0
  56. package/collections/email-history.collection.js +134 -0
  57. package/collections/email-history.collection.js.map +1 -0
  58. package/collections/email-verified.collection.d.ts +3 -0
  59. package/collections/email-verified.collection.js +62 -0
  60. package/collections/email-verified.collection.js.map +1 -0
  61. package/collections/file.collection.d.ts +3 -0
  62. package/collections/file.collection.js +74 -0
  63. package/collections/file.collection.js.map +1 -0
  64. package/collections/flag-update.collection.d.ts +3 -0
  65. package/collections/flag-update.collection.js +57 -0
  66. package/collections/flag-update.collection.js.map +1 -0
  67. package/collections/flag.collection.d.ts +3 -0
  68. package/collections/flag.collection.js +57 -0
  69. package/collections/flag.collection.js.map +1 -0
  70. package/collections/log-method-latency.collection.d.ts +3 -0
  71. package/collections/log-method-latency.collection.js +77 -0
  72. package/collections/log-method-latency.collection.js.map +1 -0
  73. package/collections/log-subscription.collection.d.ts +3 -0
  74. package/collections/log-subscription.collection.js +80 -0
  75. package/collections/log-subscription.collection.js.map +1 -0
  76. package/collections/log.collection.d.ts +3 -0
  77. package/collections/log.collection.js +93 -0
  78. package/collections/log.collection.js.map +1 -0
  79. package/collections/logged-in-users.collection.d.ts +3 -0
  80. package/collections/logged-in-users.collection.js +67 -0
  81. package/collections/logged-in-users.collection.js.map +1 -0
  82. package/collections/monitor-cpu.collection.d.ts +3 -0
  83. package/collections/monitor-cpu.collection.js +65 -0
  84. package/collections/monitor-cpu.collection.js.map +1 -0
  85. package/collections/monitor-function.collection.d.ts +3 -0
  86. package/collections/monitor-function.collection.js +74 -0
  87. package/collections/monitor-function.collection.js.map +1 -0
  88. package/collections/monitor-memory.collection.d.ts +3 -0
  89. package/collections/monitor-memory.collection.js +77 -0
  90. package/collections/monitor-memory.collection.js.map +1 -0
  91. package/collections/monitor-mongo.collection.d.ts +3 -0
  92. package/collections/monitor-mongo.collection.js +71 -0
  93. package/collections/monitor-mongo.collection.js.map +1 -0
  94. package/collections/notification.collection.d.ts +3 -0
  95. package/collections/notification.collection.js +57 -0
  96. package/collections/notification.collection.js.map +1 -0
  97. package/collections/openai-usage-ledger.collection.d.ts +2 -0
  98. package/collections/openai-usage-ledger.collection.js +188 -0
  99. package/collections/openai-usage-ledger.collection.js.map +1 -0
  100. package/collections/report-builder-dashboard-builder.collection.d.ts +3 -0
  101. package/collections/report-builder-dashboard-builder.collection.js +109 -0
  102. package/collections/report-builder-dashboard-builder.collection.js.map +1 -0
  103. package/collections/report-builder-library.collection.d.ts +3 -0
  104. package/collections/report-builder-library.collection.js +87 -0
  105. package/collections/report-builder-library.collection.js.map +1 -0
  106. package/collections/report-builder-report.collection.d.ts +4 -0
  107. package/collections/report-builder-report.collection.js +184 -0
  108. package/collections/report-builder-report.collection.js.map +1 -0
  109. package/collections/user-group.collection.d.ts +4 -0
  110. package/collections/user-group.collection.js +89 -0
  111. package/collections/user-group.collection.js.map +1 -0
  112. package/collections/user-guide.collection.d.ts +3 -0
  113. package/collections/user-guide.collection.js +57 -0
  114. package/collections/user-guide.collection.js.map +1 -0
  115. package/collections/user.collection.d.ts +4 -0
  116. package/collections/user.collection.js +180 -0
  117. package/collections/user.collection.js.map +1 -0
  118. package/cron/cron.d.ts +14 -0
  119. package/cron/cron.js +216 -0
  120. package/cron/cron.js.map +1 -0
  121. package/fixtures/cron-jobs.d.ts +1 -0
  122. package/fixtures/cron-jobs.js +150 -0
  123. package/fixtures/cron-jobs.js.map +1 -0
  124. package/fixtures/init.d.ts +1 -0
  125. package/fixtures/init.js +91 -0
  126. package/fixtures/init.js.map +1 -0
  127. package/http/auth.d.ts +2 -0
  128. package/http/auth.js +951 -0
  129. package/http/auth.js.map +1 -0
  130. package/http/health.d.ts +1 -0
  131. package/http/health.js +11 -0
  132. package/http/health.js.map +1 -0
  133. package/http/home.d.ts +1 -0
  134. package/http/home.js +134 -0
  135. package/http/home.js.map +1 -0
  136. package/http/slow-query-publication.d.ts +2 -0
  137. package/http/slow-query-publication.js +99 -0
  138. package/http/slow-query-publication.js.map +1 -0
  139. package/index.d.ts +1 -0
  140. package/index.js +19 -0
  141. package/index.js.map +1 -0
  142. package/managers/ai-assistant-codex-manager.manager.d.ts +67 -0
  143. package/managers/ai-assistant-codex-manager.manager.js +1113 -0
  144. package/managers/ai-assistant-codex-manager.manager.js.map +1 -0
  145. package/managers/ai-run-evidence.manager.d.ts +36 -0
  146. package/managers/ai-run-evidence.manager.js +377 -0
  147. package/managers/ai-run-evidence.manager.js.map +1 -0
  148. package/managers/communication-metric.manager.d.ts +16 -0
  149. package/managers/communication-metric.manager.js +134 -0
  150. package/managers/communication-metric.manager.js.map +1 -0
  151. package/managers/cron.manager.d.ts +20 -0
  152. package/managers/cron.manager.js +534 -0
  153. package/managers/cron.manager.js.map +1 -0
  154. package/managers/customer-notification-content.manager.d.ts +55 -0
  155. package/managers/customer-notification-content.manager.js +158 -0
  156. package/managers/customer-notification-content.manager.js.map +1 -0
  157. package/managers/diagnostic-manager-bootstrap.d.ts +9 -0
  158. package/managers/diagnostic-manager-bootstrap.js +260 -0
  159. package/managers/diagnostic-manager-bootstrap.js.map +1 -0
  160. package/managers/error-auto-fix.manager.d.ts +149 -0
  161. package/managers/error-auto-fix.manager.js +3064 -0
  162. package/managers/error-auto-fix.manager.js.map +1 -0
  163. package/managers/local-log.manager.d.ts +18 -0
  164. package/managers/local-log.manager.js +88 -0
  165. package/managers/local-log.manager.js.map +1 -0
  166. package/managers/method.manager.d.ts +84 -0
  167. package/managers/method.manager.js +1964 -0
  168. package/managers/method.manager.js.map +1 -0
  169. package/managers/mongo.manager.d.ts +224 -0
  170. package/managers/mongo.manager.js +5000 -0
  171. package/managers/mongo.manager.js.map +1 -0
  172. package/managers/monitor.manager.d.ts +70 -0
  173. package/managers/monitor.manager.js +550 -0
  174. package/managers/monitor.manager.js.map +1 -0
  175. package/managers/openai-usage-ledger.manager.d.ts +30 -0
  176. package/managers/openai-usage-ledger.manager.js +142 -0
  177. package/managers/openai-usage-ledger.manager.js.map +1 -0
  178. package/managers/slow-query-verifier.manager.d.ts +144 -0
  179. package/managers/slow-query-verifier.manager.js +3857 -0
  180. package/managers/slow-query-verifier.manager.js.map +1 -0
  181. package/managers/slow-query.manager.d.ts +28 -0
  182. package/managers/slow-query.manager.js +468 -0
  183. package/managers/slow-query.manager.js.map +1 -0
  184. package/managers/subscription.manager.d.ts +169 -0
  185. package/managers/subscription.manager.js +3434 -0
  186. package/managers/subscription.manager.js.map +1 -0
  187. package/managers/websocket.manager.d.ts +73 -0
  188. package/managers/websocket.manager.js +673 -0
  189. package/managers/websocket.manager.js.map +1 -0
  190. package/managers/worker-dispatcher.manager.d.ts +120 -0
  191. package/managers/worker-dispatcher.manager.js +1266 -0
  192. package/managers/worker-dispatcher.manager.js.map +1 -0
  193. package/managers/worker-server.manager.d.ts +35 -0
  194. package/managers/worker-server.manager.js +582 -0
  195. package/managers/worker-server.manager.js.map +1 -0
  196. package/methods/accounts.d.ts +2 -0
  197. package/methods/accounts.js +624 -0
  198. package/methods/accounts.js.map +1 -0
  199. package/methods/ai-terminal.d.ts +458 -0
  200. package/methods/ai-terminal.js +27991 -0
  201. package/methods/ai-terminal.js.map +1 -0
  202. package/methods/app-settings.d.ts +2 -0
  203. package/methods/app-settings.js +169 -0
  204. package/methods/app-settings.js.map +1 -0
  205. package/methods/aws.d.ts +2 -0
  206. package/methods/aws.js +877 -0
  207. package/methods/aws.js.map +1 -0
  208. package/methods/collections.d.ts +2 -0
  209. package/methods/collections.js +719 -0
  210. package/methods/collections.js.map +1 -0
  211. package/methods/counters.d.ts +2 -0
  212. package/methods/counters.js +113 -0
  213. package/methods/counters.js.map +1 -0
  214. package/methods/cron-jobs.d.ts +2 -0
  215. package/methods/cron-jobs.js +2475 -0
  216. package/methods/cron-jobs.js.map +1 -0
  217. package/methods/customer-notifications.d.ts +2 -0
  218. package/methods/customer-notifications.js +528 -0
  219. package/methods/customer-notifications.js.map +1 -0
  220. package/methods/diagnostics.d.ts +2 -0
  221. package/methods/diagnostics.js +703 -0
  222. package/methods/diagnostics.js.map +1 -0
  223. package/methods/flag-updates.d.ts +2 -0
  224. package/methods/flag-updates.js +8 -0
  225. package/methods/flag-updates.js.map +1 -0
  226. package/methods/flags.d.ts +2 -0
  227. package/methods/flags.js +8 -0
  228. package/methods/flags.js.map +1 -0
  229. package/methods/logs.d.ts +2 -0
  230. package/methods/logs.js +751 -0
  231. package/methods/logs.js.map +1 -0
  232. package/methods/mongo-explorer.d.ts +2 -0
  233. package/methods/mongo-explorer.js +1808 -0
  234. package/methods/mongo-explorer.js.map +1 -0
  235. package/methods/monitor.d.ts +2 -0
  236. package/methods/monitor.js +543 -0
  237. package/methods/monitor.js.map +1 -0
  238. package/methods/pdf.d.ts +2 -0
  239. package/methods/pdf.js +1216 -0
  240. package/methods/pdf.js.map +1 -0
  241. package/methods/publications.d.ts +1 -0
  242. package/methods/publications.js +183 -0
  243. package/methods/publications.js.map +1 -0
  244. package/methods/report-builder.d.ts +2 -0
  245. package/methods/report-builder.js +3094 -0
  246. package/methods/report-builder.js.map +1 -0
  247. package/methods/support.d.ts +2 -0
  248. package/methods/support.js +430 -0
  249. package/methods/support.js.map +1 -0
  250. package/models/ai-run.model.d.ts +19 -0
  251. package/models/ai-run.model.js +4 -0
  252. package/models/ai-run.model.js.map +1 -0
  253. package/models/ai-terminal-conversation.model.d.ts +17 -0
  254. package/models/ai-terminal-conversation.model.js +4 -0
  255. package/models/ai-terminal-conversation.model.js.map +1 -0
  256. package/models/ai-terminal-issue-report.model.d.ts +19 -0
  257. package/models/ai-terminal-issue-report.model.js +4 -0
  258. package/models/ai-terminal-issue-report.model.js.map +1 -0
  259. package/models/ai-terminal-message.model.d.ts +22 -0
  260. package/models/ai-terminal-message.model.js +4 -0
  261. package/models/ai-terminal-message.model.js.map +1 -0
  262. package/models/app-setting.model.d.ts +16 -0
  263. package/models/app-setting.model.js +4 -0
  264. package/models/app-setting.model.js.map +1 -0
  265. package/{src/models/app-status.model.ts → models/app-status.model.d.ts} +2 -3
  266. package/models/app-status.model.js +4 -0
  267. package/models/app-status.model.js.map +1 -0
  268. package/{src/models/billing-logged-in-users.model.ts → models/billing-logged-in-users.model.d.ts} +4 -5
  269. package/models/billing-logged-in-users.model.js +4 -0
  270. package/models/billing-logged-in-users.model.js.map +1 -0
  271. package/models/collection-document.model.d.ts +21 -0
  272. package/models/collection-document.model.js +4 -0
  273. package/models/collection-document.model.js.map +1 -0
  274. package/models/communication-metric.model.d.ts +20 -0
  275. package/models/communication-metric.model.js +4 -0
  276. package/models/communication-metric.model.js.map +1 -0
  277. package/{src/models/counter.model.ts → models/counter.model.d.ts} +3 -4
  278. package/models/counter.model.js +4 -0
  279. package/models/counter.model.js.map +1 -0
  280. package/models/cron-job-history.model.d.ts +15 -0
  281. package/models/cron-job-history.model.js +4 -0
  282. package/models/cron-job-history.model.js.map +1 -0
  283. package/models/cron-job.model.d.ts +14 -0
  284. package/models/cron-job.model.js +4 -0
  285. package/models/cron-job.model.js.map +1 -0
  286. package/models/customer-notification.model.d.ts +26 -0
  287. package/models/customer-notification.model.js +4 -0
  288. package/models/customer-notification.model.js.map +1 -0
  289. package/models/customer-portal-password.model.d.ts +11 -0
  290. package/models/customer-portal-password.model.js +4 -0
  291. package/models/customer-portal-password.model.js.map +1 -0
  292. package/models/dialog.model.d.ts +23 -0
  293. package/models/dialog.model.js +4 -0
  294. package/models/dialog.model.js.map +1 -0
  295. package/models/email-history.model.d.ts +32 -0
  296. package/{src/models/email-history.model.ts → models/email-history.model.js} +4 -36
  297. package/models/email-history.model.js.map +1 -0
  298. package/{src/models/email-verified.model.ts → models/email-verified.model.d.ts} +5 -6
  299. package/models/email-verified.model.js +4 -0
  300. package/models/email-verified.model.js.map +1 -0
  301. package/{src/models/file.model.ts → models/file.model.d.ts} +7 -8
  302. package/models/file.model.js +4 -0
  303. package/models/file.model.js.map +1 -0
  304. package/{src/models/flag-update.model.ts → models/flag-update.model.d.ts} +3 -4
  305. package/models/flag-update.model.js +4 -0
  306. package/models/flag-update.model.js.map +1 -0
  307. package/{src/models/flag.model.ts → models/flag.model.d.ts} +3 -4
  308. package/models/flag.model.js +4 -0
  309. package/models/flag.model.js.map +1 -0
  310. package/models/log-method-latency.model.d.ts +10 -0
  311. package/models/log-method-latency.model.js +4 -0
  312. package/models/log-method-latency.model.js.map +1 -0
  313. package/{src/models/log-subscription.model.ts → models/log-subscription.model.d.ts} +9 -11
  314. package/models/log-subscription.model.js +4 -0
  315. package/models/log-subscription.model.js.map +1 -0
  316. package/models/log.model.d.ts +17 -0
  317. package/models/log.model.js +4 -0
  318. package/models/log.model.js.map +1 -0
  319. package/{src/models/logged-in-users.model.ts → models/logged-in-users.model.d.ts} +5 -6
  320. package/models/logged-in-users.model.js +4 -0
  321. package/models/logged-in-users.model.js.map +1 -0
  322. package/{src/models/method-response.model.ts → models/method-response.model.d.ts} +6 -7
  323. package/models/method-response.model.js +4 -0
  324. package/models/method-response.model.js.map +1 -0
  325. package/models/method.model.d.ts +26 -0
  326. package/models/method.model.js +4 -0
  327. package/models/method.model.js.map +1 -0
  328. package/{src/models/monitor-cpu.model.ts → models/monitor-cpu.model.d.ts} +7 -9
  329. package/models/monitor-cpu.model.js +4 -0
  330. package/models/monitor-cpu.model.js.map +1 -0
  331. package/models/monitor-function.model.d.ts +14 -0
  332. package/models/monitor-function.model.js +4 -0
  333. package/models/monitor-function.model.js.map +1 -0
  334. package/models/monitor-memory.model.d.ts +15 -0
  335. package/models/monitor-memory.model.js +4 -0
  336. package/models/monitor-memory.model.js.map +1 -0
  337. package/models/monitor-mongo.model.d.ts +13 -0
  338. package/models/monitor-mongo.model.js +4 -0
  339. package/models/monitor-mongo.model.js.map +1 -0
  340. package/{src/models/notification.model.ts → models/notification.model.d.ts} +4 -6
  341. package/models/notification.model.js +4 -0
  342. package/models/notification.model.js.map +1 -0
  343. package/models/openai-usage-ledger.model.d.ts +30 -0
  344. package/models/openai-usage-ledger.model.js +4 -0
  345. package/models/openai-usage-ledger.model.js.map +1 -0
  346. package/models/pagination.model.d.ts +11 -0
  347. package/models/pagination.model.js +28 -0
  348. package/models/pagination.model.js.map +1 -0
  349. package/models/permission.model.d.ts +12 -0
  350. package/models/permission.model.js +4 -0
  351. package/models/permission.model.js.map +1 -0
  352. package/models/report-builder-dashboard-builder.model.d.ts +25 -0
  353. package/models/report-builder-dashboard-builder.model.js +4 -0
  354. package/models/report-builder-dashboard-builder.model.js.map +1 -0
  355. package/models/report-builder-library.model.d.ts +17 -0
  356. package/models/report-builder-library.model.js +4 -0
  357. package/models/report-builder-library.model.js.map +1 -0
  358. package/models/report-builder-report.model.d.ts +121 -0
  359. package/models/report-builder-report.model.js +4 -0
  360. package/models/report-builder-report.model.js.map +1 -0
  361. package/models/report-builder.model.d.ts +61 -0
  362. package/models/report-builder.model.js +4 -0
  363. package/models/report-builder.model.js.map +1 -0
  364. package/models/select-data-label.model.d.ts +9 -0
  365. package/models/select-data-label.model.js +4 -0
  366. package/models/select-data-label.model.js.map +1 -0
  367. package/models/server-message.model.d.ts +32 -0
  368. package/models/server-message.model.js +4 -0
  369. package/models/server-message.model.js.map +1 -0
  370. package/models/slow-query-report.model.d.ts +23 -0
  371. package/models/slow-query-report.model.js +4 -0
  372. package/models/slow-query-report.model.js.map +1 -0
  373. package/models/subscription.model.d.ts +31 -0
  374. package/models/subscription.model.js +4 -0
  375. package/models/subscription.model.js.map +1 -0
  376. package/models/support-ticket.model.d.ts +87 -0
  377. package/models/support-ticket.model.js +4 -0
  378. package/models/support-ticket.model.js.map +1 -0
  379. package/models/user-group.model.d.ts +20 -0
  380. package/models/user-group.model.js +4 -0
  381. package/models/user-group.model.js.map +1 -0
  382. package/{src/models/user-guide.model.ts → models/user-guide.model.d.ts} +4 -5
  383. package/models/user-guide.model.js +4 -0
  384. package/models/user-guide.model.js.map +1 -0
  385. package/models/user.model.d.ts +84 -0
  386. package/models/user.model.js +4 -0
  387. package/models/user.model.js.map +1 -0
  388. package/package.json +1 -1
  389. package/private/images/ResolveIO.png +0 -0
  390. package/public_api.js +127 -0
  391. package/public_api.js.map +1 -0
  392. package/publications/ai-terminal.d.ts +1 -0
  393. package/publications/ai-terminal.js +122 -0
  394. package/publications/ai-terminal.js.map +1 -0
  395. package/publications/app-settings.d.ts +2 -0
  396. package/publications/app-settings.js +28 -0
  397. package/publications/app-settings.js.map +1 -0
  398. package/publications/app-status.d.ts +2 -0
  399. package/publications/app-status.js +16 -0
  400. package/publications/app-status.js.map +1 -0
  401. package/publications/cron-jobs.d.ts +2 -0
  402. package/publications/cron-jobs.js +88 -0
  403. package/publications/cron-jobs.js.map +1 -0
  404. package/publications/customer-notifications.d.ts +2 -0
  405. package/publications/customer-notifications.js +161 -0
  406. package/publications/customer-notifications.js.map +1 -0
  407. package/publications/files.d.ts +2 -0
  408. package/publications/files.js +36 -0
  409. package/publications/files.js.map +1 -0
  410. package/publications/flags-update.d.ts +2 -0
  411. package/publications/flags-update.js +22 -0
  412. package/publications/flags-update.js.map +1 -0
  413. package/publications/flags.d.ts +2 -0
  414. package/publications/flags.js +22 -0
  415. package/publications/flags.js.map +1 -0
  416. package/publications/logs.d.ts +2 -0
  417. package/publications/logs.js +164 -0
  418. package/publications/logs.js.map +1 -0
  419. package/publications/notifications.d.ts +2 -0
  420. package/publications/notifications.js +16 -0
  421. package/publications/notifications.js.map +1 -0
  422. package/publications/report-builder-dashboard-builders.d.ts +2 -0
  423. package/publications/report-builder-dashboard-builders.js +42 -0
  424. package/publications/report-builder-dashboard-builders.js.map +1 -0
  425. package/publications/report-builder-libraries.d.ts +2 -0
  426. package/publications/report-builder-libraries.js +90 -0
  427. package/publications/report-builder-libraries.js.map +1 -0
  428. package/publications/report-builder-reports.d.ts +2 -0
  429. package/publications/report-builder-reports.js +50 -0
  430. package/publications/report-builder-reports.js.map +1 -0
  431. package/publications/super-admin.d.ts +2 -0
  432. package/publications/super-admin.js +16 -0
  433. package/publications/super-admin.js.map +1 -0
  434. package/publications/user-groups.d.ts +1 -0
  435. package/publications/user-groups.js +16 -0
  436. package/publications/user-groups.js.map +1 -0
  437. package/publications/user-guides.d.ts +1 -0
  438. package/publications/user-guides.js +16 -0
  439. package/publications/user-guides.js.map +1 -0
  440. package/resolveio-server-app.d.ts +70 -0
  441. package/resolveio-server-app.js +801 -0
  442. package/resolveio-server-app.js.map +1 -0
  443. package/server-app.d.ts +228 -0
  444. package/server-app.js +3566 -0
  445. package/server-app.js.map +1 -0
  446. package/services/codex-client.d.ts +128 -0
  447. package/services/codex-client.js +1629 -0
  448. package/services/codex-client.js.map +1 -0
  449. package/services/openai-client.d.ts +46 -0
  450. package/services/openai-client.js +318 -0
  451. package/services/openai-client.js.map +1 -0
  452. package/types/error-report.d.ts +25 -0
  453. package/types/error-report.js +4 -0
  454. package/types/error-report.js.map +1 -0
  455. package/types/slow-query-report.d.ts +27 -0
  456. package/types/slow-query-report.js +6 -0
  457. package/types/slow-query-report.js.map +1 -0
  458. package/util/ai-qa-policy.d.ts +124 -0
  459. package/util/ai-qa-policy.js +736 -0
  460. package/util/ai-qa-policy.js.map +1 -0
  461. package/util/ai-run-evidence-adapters.d.ts +109 -0
  462. package/util/ai-run-evidence-adapters.js +7234 -0
  463. package/util/ai-run-evidence-adapters.js.map +1 -0
  464. package/util/ai-run-evidence-dashboard.d.ts +88 -0
  465. package/util/ai-run-evidence-dashboard.js +343 -0
  466. package/util/ai-run-evidence-dashboard.js.map +1 -0
  467. package/util/ai-run-evidence-eval.d.ts +86 -0
  468. package/util/ai-run-evidence-eval.js +1018 -0
  469. package/util/ai-run-evidence-eval.js.map +1 -0
  470. package/util/ai-run-evidence.d.ts +244 -0
  471. package/util/ai-run-evidence.js +1096 -0
  472. package/util/ai-run-evidence.js.map +1 -0
  473. package/util/ai-runner-artifacts.d.ts +82 -0
  474. package/util/ai-runner-artifacts.js +713 -0
  475. package/util/ai-runner-artifacts.js.map +1 -0
  476. package/util/ai-runner-manager-autopilot.d.ts +210 -0
  477. package/util/ai-runner-manager-autopilot.js +642 -0
  478. package/util/ai-runner-manager-autopilot.js.map +1 -0
  479. package/util/ai-runner-manager-policy.d.ts +807 -0
  480. package/util/ai-runner-manager-policy.js +3501 -0
  481. package/util/ai-runner-manager-policy.js.map +1 -0
  482. package/util/ai-runner-qa-auth.d.ts +5 -0
  483. package/util/ai-runner-qa-auth.js +839 -0
  484. package/util/ai-runner-qa-auth.js.map +1 -0
  485. package/util/ai-runner-qa-tools.d.ts +26 -0
  486. package/util/ai-runner-qa-tools.js +3520 -0
  487. package/util/ai-runner-qa-tools.js.map +1 -0
  488. package/util/aicoder-runner-v6.d.ts +426 -0
  489. package/util/aicoder-runner-v6.js +2464 -0
  490. package/util/aicoder-runner-v6.js.map +1 -0
  491. package/util/common.d.ts +31 -0
  492. package/util/common.js +683 -0
  493. package/util/common.js.map +1 -0
  494. package/util/customer-portal-password.d.ts +13 -0
  495. package/util/customer-portal-password.js +209 -0
  496. package/util/customer-portal-password.js.map +1 -0
  497. package/util/error-reporter.d.ts +52 -0
  498. package/util/error-reporter.js +326 -0
  499. package/util/error-reporter.js.map +1 -0
  500. package/util/error-tracking.d.ts +13 -0
  501. package/util/error-tracking.js +120 -0
  502. package/util/error-tracking.js.map +1 -0
  503. package/util/openai-usage-cost.d.ts +6 -0
  504. package/util/openai-usage-cost.js +103 -0
  505. package/util/openai-usage-cost.js.map +1 -0
  506. package/util/report-builder-unwinds.d.ts +15 -0
  507. package/util/report-builder-unwinds.js +156 -0
  508. package/util/report-builder-unwinds.js.map +1 -0
  509. package/util/runner-process-janitor.d.ts +27 -0
  510. package/util/runner-process-janitor.js +208 -0
  511. package/util/runner-process-janitor.js.map +1 -0
  512. package/util/schema-report-builder.d.ts +6 -0
  513. package/util/schema-report-builder.js +481 -0
  514. package/util/schema-report-builder.js.map +1 -0
  515. package/util/slow-query-reporter.d.ts +28 -0
  516. package/util/slow-query-reporter.js +226 -0
  517. package/util/slow-query-reporter.js.map +1 -0
  518. package/util/subscription-dependency-context.d.ts +34 -0
  519. package/util/subscription-dependency-context.js +1283 -0
  520. package/util/subscription-dependency-context.js.map +1 -0
  521. package/util/support-runner-v5.d.ts +1426 -0
  522. package/util/support-runner-v5.js +7643 -0
  523. package/util/support-runner-v5.js.map +1 -0
  524. package/util/tokenizer.d.ts +5 -0
  525. package/util/tokenizer.js +41 -0
  526. package/util/tokenizer.js.map +1 -0
  527. package/workers/codex-runner.worker.d.ts +1 -0
  528. package/workers/codex-runner.worker.js +192 -0
  529. package/workers/codex-runner.worker.js.map +1 -0
  530. package/.nodemon.json +0 -5
  531. package/.vscode/settings.json +0 -21
  532. package/AGENTS.md +0 -195
  533. package/README.md +0 -22
  534. package/build_package.sh +0 -5
  535. package/compileDTS.pl +0 -64
  536. package/docs/ai-assistant-nightly-eval.md +0 -65
  537. package/docs/ai-assistant-preflight-checklist.md +0 -23
  538. package/docs/ai-assistant-report-builder-bridge-playbook.md +0 -115
  539. package/eslint-plugin-custom/index.js +0 -7
  540. package/eslint-plugin-custom/rules/no-filter-zero-index.js +0 -44
  541. package/eslint.config.js +0 -103
  542. package/gulpfile.js +0 -216
  543. package/methodAndPublicationListGenerator.py +0 -375
  544. package/mongodbensurers.js +0 -2
  545. package/mongostop.js +0 -3
  546. package/scripts/cleanup-bypassed-callmethod-logs.js +0 -616
  547. package/settings.development.json +0 -25
  548. package/settings.development.redacted.json +0 -25
  549. package/src/.env +0 -12
  550. package/src/ai/assistant-core-heuristics.ts +0 -379
  551. package/src/ai/resolveio-platform-intelligence-memory-corpus.ts +0 -185
  552. package/src/ai/resolveio-platform-intelligence-memory.ts +0 -325
  553. package/src/ai/resolveio-platform-intelligence.ts +0 -462
  554. package/src/client-server-app.ts +0 -12
  555. package/src/collections/ai-run.collection.ts +0 -117
  556. package/src/collections/ai-terminal-conversation.collection.ts +0 -91
  557. package/src/collections/ai-terminal-issue-report.collection.ts +0 -99
  558. package/src/collections/ai-terminal-message.collection.ts +0 -77
  559. package/src/collections/app-setting.collection.ts +0 -104
  560. package/src/collections/app-status.collection.ts +0 -58
  561. package/src/collections/communication-metric.collection.ts +0 -84
  562. package/src/collections/counter.collection.ts +0 -56
  563. package/src/collections/cron-job-history.collection.ts +0 -94
  564. package/src/collections/cron-job.collection.ts +0 -92
  565. package/src/collections/customer-notification.collection.ts +0 -131
  566. package/src/collections/customer-portal-password.collection.ts +0 -76
  567. package/src/collections/email-history.collection.ts +0 -134
  568. package/src/collections/email-verified.collection.ts +0 -62
  569. package/src/collections/file.collection.ts +0 -74
  570. package/src/collections/flag-update.collection.ts +0 -57
  571. package/src/collections/flag.collection.ts +0 -57
  572. package/src/collections/log-method-latency.collection.ts +0 -77
  573. package/src/collections/log-subscription.collection.ts +0 -80
  574. package/src/collections/log.collection.ts +0 -93
  575. package/src/collections/logged-in-users.collection.ts +0 -67
  576. package/src/collections/monitor-cpu.collection.ts +0 -65
  577. package/src/collections/monitor-function.collection.ts +0 -74
  578. package/src/collections/monitor-memory.collection.ts +0 -77
  579. package/src/collections/monitor-mongo.collection.ts +0 -71
  580. package/src/collections/notification.collection.ts +0 -57
  581. package/src/collections/openai-usage-ledger.collection.ts +0 -131
  582. package/src/collections/report-builder-dashboard-builder.collection.ts +0 -109
  583. package/src/collections/report-builder-library.collection.ts +0 -89
  584. package/src/collections/report-builder-report.collection.ts +0 -184
  585. package/src/collections/user-group.collection.ts +0 -89
  586. package/src/collections/user-guide.collection.ts +0 -57
  587. package/src/collections/user.collection.ts +0 -181
  588. package/src/cron/cron.ts +0 -117
  589. package/src/fixtures/cron-jobs.ts +0 -95
  590. package/src/fixtures/init.ts +0 -35
  591. package/src/http/auth.ts +0 -818
  592. package/src/http/health.ts +0 -7
  593. package/src/http/home.ts +0 -90
  594. package/src/http/slow-query-publication.ts +0 -49
  595. package/src/index.ts +0 -1
  596. package/src/managers/ai-assistant-codex-manager.manager.ts +0 -1131
  597. package/src/managers/ai-run-evidence.manager.ts +0 -264
  598. package/src/managers/communication-metric.manager.ts +0 -82
  599. package/src/managers/cron.manager.ts +0 -333
  600. package/src/managers/customer-notification-content.manager.ts +0 -236
  601. package/src/managers/diagnostic-manager-bootstrap.ts +0 -165
  602. package/src/managers/error-auto-fix.manager.ts +0 -2767
  603. package/src/managers/local-log.manager.ts +0 -113
  604. package/src/managers/method.manager.ts +0 -1857
  605. package/src/managers/mongo.manager.ts +0 -4575
  606. package/src/managers/monitor.manager.ts +0 -507
  607. package/src/managers/openai-usage-ledger.manager.ts +0 -112
  608. package/src/managers/slow-query-verifier.manager.ts +0 -3590
  609. package/src/managers/slow-query.manager.ts +0 -519
  610. package/src/managers/subscription.manager.ts +0 -3128
  611. package/src/managers/websocket.manager.ts +0 -746
  612. package/src/managers/worker-dispatcher.manager.ts +0 -1360
  613. package/src/managers/worker-server.manager.ts +0 -536
  614. package/src/methods/accounts.ts +0 -532
  615. package/src/methods/ai-terminal.ts +0 -29070
  616. package/src/methods/app-settings.ts +0 -114
  617. package/src/methods/aws.ts +0 -649
  618. package/src/methods/collections.ts +0 -641
  619. package/src/methods/counters.ts +0 -69
  620. package/src/methods/cron-jobs.ts +0 -2614
  621. package/src/methods/customer-notifications.ts +0 -458
  622. package/src/methods/diagnostics.ts +0 -616
  623. package/src/methods/flag-updates.ts +0 -7
  624. package/src/methods/flags.ts +0 -7
  625. package/src/methods/logs.ts +0 -657
  626. package/src/methods/mongo-explorer.ts +0 -1880
  627. package/src/methods/monitor.ts +0 -540
  628. package/src/methods/pdf.ts +0 -1236
  629. package/src/methods/publications.ts +0 -129
  630. package/src/methods/report-builder.ts +0 -3300
  631. package/src/methods/support.ts +0 -335
  632. package/src/models/ai-run.model.ts +0 -27
  633. package/src/models/ai-terminal-conversation.model.ts +0 -19
  634. package/src/models/ai-terminal-issue-report.model.ts +0 -21
  635. package/src/models/ai-terminal-message.model.ts +0 -24
  636. package/src/models/app-setting.model.ts +0 -17
  637. package/src/models/collection-document.model.ts +0 -24
  638. package/src/models/communication-metric.model.ts +0 -23
  639. package/src/models/cron-job-history.model.ts +0 -16
  640. package/src/models/cron-job.model.ts +0 -15
  641. package/src/models/customer-notification.model.ts +0 -28
  642. package/src/models/customer-portal-password.model.ts +0 -12
  643. package/src/models/dialog.model.ts +0 -25
  644. package/src/models/log-method-latency.model.ts +0 -11
  645. package/src/models/log.model.ts +0 -19
  646. package/src/models/method.model.ts +0 -25
  647. package/src/models/monitor-function.model.ts +0 -16
  648. package/src/models/monitor-memory.model.ts +0 -17
  649. package/src/models/monitor-mongo.model.ts +0 -15
  650. package/src/models/openai-usage-ledger.model.ts +0 -56
  651. package/src/models/pagination.model.ts +0 -35
  652. package/src/models/permission.model.ts +0 -14
  653. package/src/models/report-builder-dashboard-builder.model.ts +0 -29
  654. package/src/models/report-builder-library.model.ts +0 -20
  655. package/src/models/report-builder-report.model.ts +0 -136
  656. package/src/models/report-builder.model.ts +0 -68
  657. package/src/models/select-data-label.model.ts +0 -9
  658. package/src/models/server-message.model.ts +0 -31
  659. package/src/models/slow-query-report.model.ts +0 -23
  660. package/src/models/subscription.model.ts +0 -73
  661. package/src/models/support-ticket.model.ts +0 -104
  662. package/src/models/user-group.model.ts +0 -24
  663. package/src/models/user.model.ts +0 -96
  664. package/src/private/images/ResolveIO.png +0 -0
  665. package/src/publications/ai-terminal.ts +0 -73
  666. package/src/publications/app-settings.ts +0 -25
  667. package/src/publications/app-status.ts +0 -13
  668. package/src/publications/cron-jobs.ts +0 -40
  669. package/src/publications/customer-notifications.ts +0 -101
  670. package/src/publications/files.ts +0 -33
  671. package/src/publications/flags-update.ts +0 -19
  672. package/src/publications/flags.ts +0 -19
  673. package/src/publications/logs.ts +0 -163
  674. package/src/publications/notifications.ts +0 -13
  675. package/src/publications/report-builder-dashboard-builders.ts +0 -39
  676. package/src/publications/report-builder-libraries.ts +0 -41
  677. package/src/publications/report-builder-reports.ts +0 -47
  678. package/src/publications/super-admin.ts +0 -13
  679. package/src/publications/user-groups.ts +0 -12
  680. package/src/publications/user-guides.ts +0 -12
  681. package/src/resolveio-server-app.ts +0 -617
  682. package/src/server-app.ts +0 -3354
  683. package/src/services/codex-client.ts +0 -1231
  684. package/src/services/openai-client.ts +0 -265
  685. package/src/types/error-report.ts +0 -26
  686. package/src/types/js-tiktoken.d.ts +0 -11
  687. package/src/types/slow-query-report.ts +0 -28
  688. package/src/util/ai-qa-policy.ts +0 -925
  689. package/src/util/ai-run-evidence-adapters.ts +0 -8347
  690. package/src/util/ai-run-evidence-dashboard.ts +0 -323
  691. package/src/util/ai-run-evidence-eval.ts +0 -1057
  692. package/src/util/ai-run-evidence.ts +0 -1430
  693. package/src/util/ai-runner-artifacts.ts +0 -586
  694. package/src/util/ai-runner-manager-autopilot.ts +0 -961
  695. package/src/util/ai-runner-manager-policy.ts +0 -5011
  696. package/src/util/ai-runner-qa-auth.ts +0 -838
  697. package/src/util/ai-runner-qa-tools.ts +0 -3536
  698. package/src/util/aicoder-runner-v6.ts +0 -3121
  699. package/src/util/common.ts +0 -649
  700. package/src/util/customer-portal-password.ts +0 -183
  701. package/src/util/error-reporter.ts +0 -332
  702. package/src/util/error-tracking.ts +0 -79
  703. package/src/util/openai-usage-cost.ts +0 -114
  704. package/src/util/report-builder-unwinds.ts +0 -180
  705. package/src/util/runner-process-janitor.ts +0 -219
  706. package/src/util/schema-report-builder.ts +0 -448
  707. package/src/util/slow-query-reporter.ts +0 -216
  708. package/src/util/subscription-dependency-context.ts +0 -1096
  709. package/src/util/support-runner-v5.ts +0 -10040
  710. package/src/util/tokenizer.ts +0 -38
  711. package/src/workers/codex-runner.worker.ts +0 -142
  712. package/start_server.sh +0 -5
  713. package/tests/ai-assistant-corpus-build.ts +0 -484
  714. package/tests/ai-assistant-corpus-replay-e2e.ts +0 -774
  715. package/tests/ai-assistant-data-parity-e2e.ts +0 -1989
  716. package/tests/ai-assistant-eval-triage.ts +0 -831
  717. package/tests/ai-assistant-openai-e2e.ts +0 -1061
  718. package/tests/ai-assistant-openai-git-e2e.ts +0 -155
  719. package/tests/ai-assistant-preflight-matrix.ts +0 -215
  720. package/tests/ai-assistant-routing-eval.test.ts +0 -585
  721. package/tests/ai-assistant-snf-live-eval.ts +0 -975
  722. package/tests/ai-assistant-utils.test.ts +0 -4834
  723. package/tests/ai-manager-autopilot-snapshot.test.ts +0 -193
  724. package/tests/ai-manager-recovery-checkpoint.test.ts +0 -1383
  725. package/tests/ai-run-eval.test.ts +0 -132
  726. package/tests/ai-run-evidence.test.ts +0 -3773
  727. package/tests/ai-runner-contract.test.ts +0 -515
  728. package/tests/aicoder-runner-v6.test.ts +0 -822
  729. package/tests/error-reporter.test.ts +0 -145
  730. package/tests/method-publication-generator.test.ts +0 -46
  731. package/tests/report-builder-linking.test.ts +0 -79
  732. package/tests/resolveio-platform-intelligence.test.ts +0 -352
  733. package/tests/server-app-cron-owner.test.ts +0 -127
  734. package/tests/subscription-connect-race.test.ts +0 -158
  735. package/tests/subscription-dependency-context.test.ts +0 -324
  736. package/tests/subscription-manager-collection-tracking.test.ts +0 -86
  737. package/tests/subscription-manager-invalidation.test.ts +0 -86
  738. package/tests/support-runner-v5.test.ts +0 -3201
  739. package/tsconfig.json +0 -34
  740. /package/{src/private → private}/email-templates/enrollment.html +0 -0
  741. /package/{src/private → private}/email-templates/forgot-password.html +0 -0
  742. /package/{src/private → private}/email-templates/support-ticket-deleted.html +0 -0
  743. /package/{src/private → private}/email-templates/support-ticket-modified.html +0 -0
  744. /package/{src/private → private}/email-templates/support-ticket.html +0 -0
  745. /package/{src/public_api.ts → public_api.d.ts} +0 -0
@@ -1,961 +0,0 @@
1
- import {
2
- assessResolveIOAIManagerEvidenceChange,
3
- decideResolveIOAIManagerAutonomyPolicy,
4
- ResolveIOAIManagerAutonomyPolicyDecision,
5
- ResolveIOAIManagerAutonomyPolicyInput,
6
- ResolveIOAIManagerFailureRecord,
7
- ResolveIOAIManagerRecoveryActionDispatchRecord,
8
- ResolveIOAIManagerRecoveryActionPacket,
9
- ResolveIOAIManagerRecoveryCheckpoint,
10
- ResolveIOAIManagerRecoveryExecutionDirective,
11
- ResolveIOAIManagerRecoveryEvidenceProbe,
12
- ResolveIOAIManagerRecoveryPlan
13
- } from './ai-runner-manager-policy';
14
-
15
- export type ResolveIOAIManagerAutopilotSafetyLevel = 'low' | 'medium' | 'high' | 'blocked';
16
-
17
- export interface ResolveIOAIManagerAutopilotRecommendedAction {
18
- action: string;
19
- label: string;
20
- reason: string;
21
- safety: ResolveIOAIManagerAutopilotSafetyLevel;
22
- enabled: boolean;
23
- autoRunnable: boolean;
24
- expectedResult: string;
25
- requiresNewEvidence: boolean;
26
- canRunProductRepair: boolean;
27
- canRunExpensiveModel: boolean;
28
- canResetLoopAfterEvidence: boolean;
29
- singleActionOnly: boolean;
30
- allowedDispatchAction: string;
31
- costCeilingUsd: number;
32
- requiredStateTransition: string;
33
- proofRequiredBeforeContinuation: boolean;
34
- autonomyMode: string;
35
- autonomyCanAutoDispatch: boolean;
36
- autonomyBlocked: boolean;
37
- expectedValueScore: number;
38
- expectedValueSource: string;
39
- expectedValuePositive: boolean;
40
- evidenceBacked: boolean;
41
- evidenceStrength: string;
42
- dispatchAction?: string;
43
- }
44
-
45
- export interface ResolveIOAIManagerAutopilotControlAction {
46
- action: string;
47
- label: string;
48
- group: 'primary' | 'policy' | 'evidence' | 'release' | 'danger';
49
- enabled: boolean;
50
- autoRunnable: boolean;
51
- requiresConfirmation: boolean;
52
- confirmationReason: string;
53
- safety: ResolveIOAIManagerAutopilotSafetyLevel;
54
- reason: string;
55
- nextCommand: string;
56
- expectedResult: string;
57
- costCeilingUsd: number;
58
- }
59
-
60
- export interface ResolveIOAIManagerAutopilotControlGroup {
61
- groupId: 'policy' | 'evidence' | 'release' | 'danger';
62
- label: string;
63
- actions: ResolveIOAIManagerAutopilotControlAction[];
64
- }
65
-
66
- export interface ResolveIOAIManagerAutopilotControlPolicy {
67
- mode: string;
68
- modeLabel: string;
69
- modeDescription: string;
70
- onePrimaryActionOnly: true;
71
- blocked: boolean;
72
- blockedReason: string;
73
- canAutoDispatch: boolean;
74
- requiresHumanDecision: boolean;
75
- primaryAction: ResolveIOAIManagerAutopilotControlAction;
76
- secondaryActionGroups: ResolveIOAIManagerAutopilotControlGroup[];
77
- budget: {
78
- currentRunUsd: number;
79
- totalUsd: number;
80
- projectedActionCostUsd: number;
81
- projectedSpendUsd: number;
82
- budgetSoftUsd: number;
83
- budgetHardUsd: number;
84
- softBudgetExceeded: boolean;
85
- hardBudgetExceeded: boolean;
86
- untrackedWarning: string;
87
- };
88
- }
89
-
90
- export interface ResolveIOAIManagerHumanDecisionChoice {
91
- choiceId: string;
92
- label: string;
93
- action: string;
94
- description: string;
95
- safety: ResolveIOAIManagerAutopilotSafetyLevel;
96
- requiresConfirmation: boolean;
97
- nextCommand: string;
98
- expectedResult: string;
99
- }
100
-
101
- export interface ResolveIOAIManagerHumanDecisionRequest {
102
- requestId: string;
103
- required: boolean;
104
- status: 'not_required' | 'waiting_for_operator';
105
- reason: string;
106
- question: string;
107
- preferredChoiceId: string;
108
- evidence: {
109
- failureClass: string;
110
- blocker: string;
111
- blockerFingerprint: string;
112
- evidenceHash: string;
113
- checkpointId: string;
114
- recoveryClass: string;
115
- dispatchAction: string;
116
- requiredArtifacts: string[];
117
- forbiddenActions: string[];
118
- recentArtifactPaths: string[];
119
- };
120
- choices: ResolveIOAIManagerHumanDecisionChoice[];
121
- blockedUntil: string[];
122
- createdAt: string;
123
- }
124
-
125
- export interface ResolveIOAIManagerAutopilotLoopGuard {
126
- state: 'clear' | 'collecting_evidence' | 'parked' | 'manual_handoff' | 'complete';
127
- blocked: boolean;
128
- reason: string;
129
- failureClass: string;
130
- blocker: string;
131
- blockerFingerprint: string;
132
- evidenceHash: string;
133
- materialEvidence: boolean;
134
- evidenceStrength: string;
135
- evidenceSignals: string[];
136
- sameEvidenceDispatchCount: number;
137
- sameEvidenceAlreadyAttempted: boolean;
138
- loopCount: number;
139
- maxLoopCount: number;
140
- attempts: number;
141
- maxAttemptsBeforePark: number;
142
- canResetLoopAfterEvidence: boolean;
143
- resetRequires: string[];
144
- }
145
-
146
- export interface ResolveIOAIManagerAutopilotRecentDispatch {
147
- dispatchId: string;
148
- actionId: string;
149
- checkpointId: string;
150
- probeId: string;
151
- mode: string;
152
- dispatchAction: string;
153
- status: string;
154
- reason: string;
155
- evidenceHash: string;
156
- blockerFingerprint: string;
157
- artifactPaths: string[];
158
- startedAt: string;
159
- completedAt: string;
160
- createdAt: string;
161
- }
162
-
163
- export interface ResolveIOAIManagerAutopilotSnapshot {
164
- surface: string;
165
- runId: string;
166
- title: string;
167
- status: string;
168
- phase: string;
169
- lane: string;
170
- stepType: string;
171
- runKind: string;
172
- recommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;
173
- controlPolicy: ResolveIOAIManagerAutopilotControlPolicy;
174
- loopGuard: ResolveIOAIManagerAutopilotLoopGuard;
175
- recovery: {
176
- checkpointId: string;
177
- recoveryClass: string;
178
- dispatchAction: string;
179
- singleActionOnly: boolean;
180
- allowedDispatchAction: string;
181
- directiveAllowed: boolean;
182
- evidenceOnly: boolean;
183
- productRepairAllowed: boolean;
184
- expensiveModelAllowed: boolean;
185
- costCeilingUsd: number;
186
- requiredStateTransition: string;
187
- proofRequiredBeforeContinuation: boolean;
188
- requiredArtifacts: string[];
189
- nextCommands: string[];
190
- successCriteria: string[];
191
- exitCriteria: string[];
192
- forbiddenActions: string[];
193
- };
194
- autonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;
195
- recentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];
196
- humanDecision: ResolveIOAIManagerHumanDecisionRequest;
197
- cost: {
198
- currentRunUsd: number;
199
- totalUsd: number;
200
- currentRunTokens: number;
201
- totalTokens: number;
202
- untrackedWarning: string;
203
- };
204
- updatedAt: string;
205
- }
206
-
207
- export interface ResolveIOAIManagerAutopilotSnapshotInput {
208
- surface: string;
209
- runId?: string;
210
- title?: string;
211
- status?: string;
212
- phase?: string;
213
- lane?: string;
214
- stepType?: string;
215
- runKind?: string;
216
- current?: ResolveIOAIManagerFailureRecord;
217
- recoveryPlan?: ResolveIOAIManagerRecoveryPlan;
218
- recoveryCheckpoint?: ResolveIOAIManagerRecoveryCheckpoint;
219
- recoveryEvidenceProbe?: ResolveIOAIManagerRecoveryEvidenceProbe;
220
- recoveryAction?: ResolveIOAIManagerRecoveryActionPacket;
221
- recoveryDirective?: ResolveIOAIManagerRecoveryExecutionDirective;
222
- recoveryDispatchHistory?: ResolveIOAIManagerRecoveryActionDispatchRecord[];
223
- loopCount?: number;
224
- maxLoopCount?: number;
225
- currentRunUsd?: number;
226
- totalUsd?: number;
227
- currentRunTokens?: number;
228
- totalTokens?: number;
229
- untrackedCostWarning?: string;
230
- autonomyPolicy?: ResolveIOAIManagerAutonomyPolicyInput;
231
- updatedAt?: Date | string;
232
- }
233
-
234
- function cleanText(value: any, max = 1000): string {
235
- return String(value || '').replace(/\s+/g, ' ').trim().slice(0, max);
236
- }
237
-
238
- function cleanList(value: any, limit = 20, max = 500): string[] {
239
- const raw = Array.isArray(value) ? value : [];
240
- const output: string[] = [];
241
- for (const entry of raw) {
242
- const cleaned = cleanText(entry, max);
243
- if (cleaned && !output.includes(cleaned)) {
244
- output.push(cleaned);
245
- }
246
- if (output.length >= limit) {
247
- break;
248
- }
249
- }
250
- return output;
251
- }
252
-
253
- function cleanNumber(value: any): number {
254
- const parsed = Number(value);
255
- return Number.isFinite(parsed) && parsed > 0 ? parsed : 0;
256
- }
257
-
258
- function isoNow(value?: Date | string): string {
259
- if (value instanceof Date) {
260
- return value.toISOString();
261
- }
262
- const parsed = value ? new Date(value) : new Date();
263
- return Number.isFinite(parsed.getTime()) ? parsed.toISOString() : new Date().toISOString();
264
- }
265
-
266
- function stableHash(prefix: string, value: any): string {
267
- const normalized = typeof value === 'string'
268
- ? cleanText(value, 12000)
269
- : JSON.stringify(value || {});
270
- let hash = 0;
271
- for (let index = 0; index < normalized.length; index += 1) {
272
- hash = ((hash << 5) - hash + normalized.charCodeAt(index)) | 0;
273
- }
274
- return `${prefix}-${Math.abs(hash).toString(36) || '0'}`;
275
- }
276
-
277
- function defaultLabelForAction(action: string): string {
278
- switch (action) {
279
- case 'run_evidence_probe':
280
- return 'Collect New Evidence';
281
- case 'run_read_only_diagnosis':
282
- return 'Run Diagnosis';
283
- case 'run_infra_repair':
284
- return 'Repair Infra';
285
- case 'run_compile_repair':
286
- return 'Repair Compile';
287
- case 'run_journey_contract_repair':
288
- return 'Repair Journey';
289
- case 'run_business_assertion_repair':
290
- return 'Repair Business Proof';
291
- case 'run_release_repair':
292
- return 'Repair Release';
293
- case 'run_targeted_product_repair':
294
- return 'Run Targeted Repair';
295
- case 'advance':
296
- return 'Advance';
297
- case 'continue_gate':
298
- return 'Continue Gate';
299
- case 'park_manual':
300
- return 'Attach New Evidence';
301
- default:
302
- return action ? cleanText(action.replace(/_/g, ' '), 120) : 'Review Manager State';
303
- }
304
- }
305
-
306
- function expectedResultForAction(action: string, evidenceOnly: boolean): string {
307
- if (action === 'park_manual') {
308
- return 'Runner stays parked until new evidence, operator approval, or a changed blocker is recorded.';
309
- }
310
- if (evidenceOnly || action === 'run_evidence_probe' || action === 'run_read_only_diagnosis') {
311
- return 'Runner records a new artifact path or changed evidence hash before any more product repair.';
312
- }
313
- if (action === 'run_infra_repair' || action === 'run_compile_repair' || action === 'run_release_repair') {
314
- return 'Runner repairs only the named deterministic gate and reruns that gate.';
315
- }
316
- if (action === 'run_targeted_product_repair') {
317
- return 'Runner performs one bounded owner-scope repair and then returns to deterministic proof.';
318
- }
319
- return 'Runner advances only after the current gate has proof.';
320
- }
321
-
322
- function autonomyModeLabel(mode: string): string {
323
- switch (mode) {
324
- case 'monitor_only':
325
- return 'Monitor Only';
326
- case 'auto_retry_within_budget':
327
- return 'Auto Retry Within Budget';
328
- case 'manual_only':
329
- default:
330
- return 'Manual Only';
331
- }
332
- }
333
-
334
- function autonomyModeDescription(mode: string): string {
335
- switch (mode) {
336
- case 'monitor_only':
337
- return 'Watch the runner and record evidence, but do not dispatch recovery, repair, QA, release, or customer actions.';
338
- case 'auto_retry_within_budget':
339
- return 'Auto-dispatch only evidence-backed actions with positive expected value inside the configured budget.';
340
- case 'manual_only':
341
- default:
342
- return 'Show the safest next action, but require an operator to dispatch it.';
343
- }
344
- }
345
-
346
- function controlAction(input: {
347
- action: string;
348
- label?: string;
349
- group: ResolveIOAIManagerAutopilotControlAction['group'];
350
- enabled?: boolean;
351
- autoRunnable?: boolean;
352
- requiresConfirmation?: boolean;
353
- confirmationReason?: string;
354
- safety?: ResolveIOAIManagerAutopilotSafetyLevel;
355
- reason?: string;
356
- nextCommand?: string;
357
- expectedResult?: string;
358
- costCeilingUsd?: number;
359
- }): ResolveIOAIManagerAutopilotControlAction {
360
- const action = cleanText(input.action, 120) || 'review';
361
- return {
362
- action,
363
- label: cleanText(input.label, 160) || defaultLabelForAction(action),
364
- group: input.group,
365
- enabled: input.enabled !== false,
366
- autoRunnable: input.autoRunnable === true,
367
- requiresConfirmation: input.requiresConfirmation === true,
368
- confirmationReason: cleanText(input.confirmationReason, 500),
369
- safety: input.safety || 'medium',
370
- reason: cleanText(input.reason, 1000),
371
- nextCommand: cleanText(input.nextCommand || action, 160),
372
- expectedResult: cleanText(input.expectedResult || expectedResultForAction(action, false), 500),
373
- costCeilingUsd: cleanNumber(input.costCeilingUsd)
374
- };
375
- }
376
-
377
- function safetyFor(input: {
378
- action: string;
379
- enabled: boolean;
380
- evidenceOnly: boolean;
381
- productRepairAllowed: boolean;
382
- expensiveModelAllowed: boolean;
383
- }): ResolveIOAIManagerAutopilotSafetyLevel {
384
- if (!input.enabled || input.action === 'park_manual') {
385
- return 'blocked';
386
- }
387
- if (input.evidenceOnly || input.action === 'run_evidence_probe' || input.action === 'run_read_only_diagnosis') {
388
- return 'low';
389
- }
390
- if (input.expensiveModelAllowed || input.action === 'run_targeted_product_repair') {
391
- return 'high';
392
- }
393
- if (input.productRepairAllowed) {
394
- return 'medium';
395
- }
396
- return 'medium';
397
- }
398
-
399
- function buildControlPolicy(input: {
400
- recommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;
401
- autonomyPolicy: ResolveIOAIManagerAutonomyPolicyDecision;
402
- humanDecision: ResolveIOAIManagerHumanDecisionRequest;
403
- recoveryRequiredArtifacts: string[];
404
- recoveryForbiddenActions: string[];
405
- currentRunUsd: number;
406
- totalUsd: number;
407
- untrackedWarning: string;
408
- }): ResolveIOAIManagerAutopilotControlPolicy {
409
- const recommended = input.recommendedAction;
410
- const autonomy = input.autonomyPolicy;
411
- const blocked = recommended.enabled === false || autonomy.blocked === true || recommended.action === 'park_manual';
412
- const primaryAction = controlAction({
413
- action: recommended.action,
414
- label: recommended.label,
415
- group: 'primary',
416
- enabled: recommended.enabled,
417
- autoRunnable: recommended.autoRunnable,
418
- requiresConfirmation: recommended.safety === 'high'
419
- || recommended.canRunExpensiveModel
420
- || recommended.action === 'run_targeted_product_repair'
421
- || recommended.action === 'run_release_repair',
422
- confirmationReason: recommended.safety === 'high'
423
- ? 'This can spend model tokens or modify product code; confirm the diagnosis/proof gate is current.'
424
- : recommended.action === 'run_release_repair'
425
- ? 'This can affect release state; confirm hotfix/release evidence first.'
426
- : '',
427
- safety: recommended.safety,
428
- reason: recommended.reason,
429
- nextCommand: recommended.allowedDispatchAction || recommended.dispatchAction || recommended.action,
430
- expectedResult: recommended.expectedResult,
431
- costCeilingUsd: recommended.costCeilingUsd
432
- });
433
- const policyActions = (['manual_only', 'monitor_only', 'auto_retry_within_budget'] as const).map((mode) => controlAction({
434
- action: `set_mode:${mode}`,
435
- label: autonomyModeLabel(mode),
436
- group: 'policy',
437
- enabled: autonomy.mode !== mode,
438
- autoRunnable: false,
439
- requiresConfirmation: mode === 'auto_retry_within_budget',
440
- confirmationReason: mode === 'auto_retry_within_budget'
441
- ? 'Auto retry will dispatch only evidence-backed actions inside budget, but can still spend runner tokens.'
442
- : '',
443
- safety: mode === 'auto_retry_within_budget' ? 'medium' : 'low',
444
- reason: mode === autonomy.mode ? 'Current manager mode.' : autonomyModeDescription(mode),
445
- nextCommand: `set_manager_mode_${mode}`,
446
- expectedResult: mode === autonomy.mode ? 'Mode is unchanged.' : `Manager switches to ${autonomyModeLabel(mode)}.`,
447
- costCeilingUsd: 0
448
- }));
449
- const choiceActions = (input.humanDecision.choices || [])
450
- .filter((choice) => choice.action !== recommended.action)
451
- .map((choice) => controlAction({
452
- action: choice.action,
453
- label: choice.label,
454
- group: choice.action === 'record_hotfix_evidence' ? 'release' : (choice.action === 'park_manual' ? 'danger' : 'evidence'),
455
- enabled: true,
456
- autoRunnable: false,
457
- requiresConfirmation: choice.requiresConfirmation || choice.action === 'park_manual',
458
- confirmationReason: choice.requiresConfirmation
459
- ? choice.description
460
- : choice.action === 'park_manual'
461
- ? 'Parking stops automated progress until new evidence or operator policy changes.'
462
- : '',
463
- safety: choice.safety,
464
- reason: choice.description,
465
- nextCommand: choice.nextCommand,
466
- expectedResult: choice.expectedResult,
467
- costCeilingUsd: 0
468
- }));
469
- if (recommended.requiresNewEvidence && !choiceActions.some((action) => action.action === 'run_evidence_probe')) {
470
- choiceActions.unshift(controlAction({
471
- action: 'run_evidence_probe',
472
- label: 'Collect New Evidence',
473
- group: 'evidence',
474
- enabled: true,
475
- autoRunnable: false,
476
- requiresConfirmation: false,
477
- safety: 'low',
478
- reason: 'Collect deterministic evidence before another repair loop.',
479
- nextCommand: 'run_evidence_probe',
480
- expectedResult: 'A new artifact path or changed evidence hash is recorded.',
481
- costCeilingUsd: 0.25
482
- }));
483
- }
484
- const grouped = ([
485
- { groupId: 'policy', label: 'Mode', actions: policyActions },
486
- { groupId: 'evidence', label: 'Evidence', actions: choiceActions.filter((action) => action.group === 'evidence') },
487
- { groupId: 'release', label: 'Release', actions: choiceActions.filter((action) => action.group === 'release') },
488
- { groupId: 'danger', label: 'Danger Zone', actions: choiceActions.filter((action) => action.group === 'danger') }
489
- ] as ResolveIOAIManagerAutopilotControlGroup[]).filter((group) => group.actions.length > 0);
490
- return {
491
- mode: autonomy.mode,
492
- modeLabel: autonomyModeLabel(autonomy.mode),
493
- modeDescription: autonomyModeDescription(autonomy.mode),
494
- onePrimaryActionOnly: true,
495
- blocked,
496
- blockedReason: blocked ? cleanText(autonomy.reason || recommended.reason, 1000) : '',
497
- canAutoDispatch: recommended.autoRunnable === true && autonomy.canAutoDispatch === true,
498
- requiresHumanDecision: input.humanDecision.required === true || recommended.autoRunnable !== true,
499
- primaryAction,
500
- secondaryActionGroups: grouped,
501
- budget: {
502
- currentRunUsd: input.currentRunUsd,
503
- totalUsd: input.totalUsd,
504
- projectedActionCostUsd: autonomy.projectedActionCostUsd,
505
- projectedSpendUsd: autonomy.projectedSpendUsd,
506
- budgetSoftUsd: autonomy.budgetSoftUsd,
507
- budgetHardUsd: autonomy.budgetHardUsd,
508
- softBudgetExceeded: autonomy.softBudgetExceeded,
509
- hardBudgetExceeded: autonomy.hardBudgetExceeded,
510
- untrackedWarning: input.untrackedWarning
511
- }
512
- };
513
- }
514
-
515
- function resolveDispatchAction(input: ResolveIOAIManagerAutopilotSnapshotInput): string {
516
- const directiveAction = cleanText(input.recoveryDirective?.dispatchAction, 120);
517
- if (directiveAction) {
518
- return directiveAction;
519
- }
520
- const actionMode = cleanText(input.recoveryAction?.mode, 120);
521
- switch (actionMode) {
522
- case 'collect_evidence':
523
- return 'run_evidence_probe';
524
- case 'read_only_diagnosis':
525
- return 'run_read_only_diagnosis';
526
- case 'repair_infra':
527
- return 'run_infra_repair';
528
- case 'repair_compile':
529
- return 'run_compile_repair';
530
- case 'repair_journey_contract':
531
- return 'run_journey_contract_repair';
532
- case 'repair_business_assertion':
533
- return 'run_business_assertion_repair';
534
- case 'repair_release':
535
- return 'run_release_repair';
536
- case 'targeted_product_repair':
537
- return 'run_targeted_product_repair';
538
- case 'advance':
539
- return 'advance';
540
- case 'continue_gate':
541
- return 'continue_gate';
542
- case 'manual_review':
543
- return 'park_manual';
544
- default:
545
- return input.recoveryCheckpoint?.status === 'parked' ? 'run_evidence_probe' : 'continue_gate';
546
- }
547
- }
548
-
549
- function countSameEvidenceDispatches(input: ResolveIOAIManagerAutopilotSnapshotInput, dispatchAction: string): number {
550
- const checkpointId = cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160);
551
- const actionId = cleanText(input.recoveryAction?.actionId, 160);
552
- const evidenceHash = cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160);
553
- const blockerFingerprint = cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160);
554
- const history = Array.isArray(input.recoveryDispatchHistory) ? input.recoveryDispatchHistory : [];
555
- return history.filter((entry) => {
556
- const sameCheckpoint = checkpointId && cleanText(entry?.checkpointId, 160) === checkpointId;
557
- const sameAction = actionId && cleanText(entry?.actionId, 160) === actionId;
558
- const sameEvidence = !evidenceHash || cleanText(entry?.evidenceHash, 160) === evidenceHash;
559
- const sameBlocker = !blockerFingerprint || cleanText(entry?.blockerFingerprint, 160) === blockerFingerprint;
560
- const sameDispatchAction = !dispatchAction
561
- || dispatchAction === 'park_manual'
562
- || cleanText(entry?.dispatchAction, 120) === dispatchAction
563
- || cleanText(entry?.dispatchAction, 120) === 'park_manual';
564
- return (sameCheckpoint || sameAction) && sameEvidence && sameBlocker && sameDispatchAction;
565
- }).length;
566
- }
567
-
568
- function normalizeRecentDispatches(history: ResolveIOAIManagerRecoveryActionDispatchRecord[] | undefined): ResolveIOAIManagerAutopilotRecentDispatch[] {
569
- const source = Array.isArray(history) ? history.filter(Boolean) : [];
570
- return source.slice(-5).reverse().map((entry) => ({
571
- dispatchId: cleanText(entry?.dispatchId, 160),
572
- actionId: cleanText(entry?.actionId, 160),
573
- checkpointId: cleanText(entry?.checkpointId, 160),
574
- probeId: cleanText(entry?.probeId, 160),
575
- mode: cleanText(entry?.mode, 120),
576
- dispatchAction: cleanText(entry?.dispatchAction, 120),
577
- status: cleanText(entry?.status, 80),
578
- reason: cleanText(entry?.reason, 500),
579
- evidenceHash: cleanText(entry?.evidenceHash, 160),
580
- blockerFingerprint: cleanText(entry?.blockerFingerprint, 160),
581
- artifactPaths: cleanList(entry?.artifactPaths, 8, 500),
582
- startedAt: cleanText(entry?.startedAt, 80),
583
- completedAt: cleanText(entry?.completedAt, 80),
584
- createdAt: cleanText(entry?.createdAt, 80)
585
- }));
586
- }
587
-
588
- function humanDecisionChoice(
589
- choiceId: string,
590
- label: string,
591
- action: string,
592
- description: string,
593
- safety: ResolveIOAIManagerAutopilotSafetyLevel,
594
- nextCommand: string,
595
- expectedResult: string,
596
- requiresConfirmation = false
597
- ): ResolveIOAIManagerHumanDecisionChoice {
598
- return {
599
- choiceId,
600
- label,
601
- action,
602
- description: cleanText(description, 500),
603
- safety,
604
- requiresConfirmation,
605
- nextCommand,
606
- expectedResult: cleanText(expectedResult, 500)
607
- };
608
- }
609
-
610
- function buildHumanDecisionRequest(input: {
611
- snapshot: ResolveIOAIManagerAutopilotSnapshotInput;
612
- recommendedAction: ResolveIOAIManagerAutopilotRecommendedAction;
613
- loopState: ResolveIOAIManagerAutopilotLoopGuard['state'];
614
- reason: string;
615
- dispatchAction: string;
616
- sameEvidenceAlreadyAttempted: boolean;
617
- requiresNewEvidence: boolean;
618
- requiredArtifacts: string[];
619
- forbiddenActions: string[];
620
- recentDispatches: ResolveIOAIManagerAutopilotRecentDispatch[];
621
- updatedAt?: Date | string;
622
- }): ResolveIOAIManagerHumanDecisionRequest {
623
- const checkpoint = input.snapshot.recoveryCheckpoint;
624
- const current = input.snapshot.current || {};
625
- const recoveryClass = cleanText(checkpoint?.recoveryClass || input.snapshot.recoveryAction?.recoveryClass || input.snapshot.recoveryPlan?.recoveryClass, 120);
626
- const failureClass = cleanText(current.failureClass, 120);
627
- const blocker = cleanText(current.blocker || current.summary || input.reason, 1000);
628
- const evidenceHash = cleanText(current.evidenceHash || checkpoint?.evidenceHash, 160);
629
- const blockerFingerprint = cleanText(current.blockerFingerprint || checkpoint?.blockerFingerprint, 160);
630
- const checkpointId = cleanText(checkpoint?.checkpointId || input.snapshot.recoveryAction?.checkpointId, 160);
631
- const recentArtifactPaths = cleanList(
632
- current.artifactPaths?.length
633
- ? current.artifactPaths
634
- : input.recentDispatches.flatMap((entry) => entry.artifactPaths || []),
635
- 12,
636
- 500
637
- );
638
- const required = input.sameEvidenceAlreadyAttempted
639
- || input.loopState === 'parked'
640
- || input.loopState === 'manual_handoff'
641
- || input.recommendedAction.enabled === false
642
- || input.recommendedAction.action === 'park_manual';
643
- const baseEvidence = {
644
- failureClass,
645
- blocker,
646
- blockerFingerprint,
647
- evidenceHash,
648
- checkpointId,
649
- recoveryClass,
650
- dispatchAction: input.dispatchAction,
651
- requiredArtifacts: input.requiredArtifacts,
652
- forbiddenActions: input.forbiddenActions,
653
- recentArtifactPaths
654
- };
655
- const blockedUntil = input.requiresNewEvidence
656
- ? Array.from(new Set([
657
- 'new material evidence changes the evidenceHash or blockerFingerprint',
658
- 'new artifact path is recorded from the failed deterministic gate',
659
- 'operator updates scope, diagnosis, budget, or retry policy'
660
- ]))
661
- : [];
662
- if (!required) {
663
- return {
664
- requestId: stableHash('mgr-human', {
665
- checkpointId,
666
- evidenceHash,
667
- blockerFingerprint,
668
- required: false
669
- }),
670
- required: false,
671
- status: 'not_required',
672
- reason: 'No human decision is required for the current bounded next action.',
673
- question: '',
674
- preferredChoiceId: '',
675
- evidence: baseEvidence,
676
- choices: [],
677
- blockedUntil: [],
678
- createdAt: isoNow(input.updatedAt)
679
- };
680
- }
681
- const choices: ResolveIOAIManagerHumanDecisionChoice[] = [];
682
- if (input.requiresNewEvidence || input.sameEvidenceAlreadyAttempted || input.loopState === 'parked') {
683
- choices.push(humanDecisionChoice(
684
- 'attach_new_evidence',
685
- 'Attach New Evidence',
686
- 'run_evidence_probe',
687
- 'Collect a new deterministic artifact before allowing another model/code loop.',
688
- 'low',
689
- 'run_evidence_probe',
690
- 'The runner records a new artifact path or changed evidence hash, then re-evaluates the same gate.'
691
- ));
692
- }
693
- if (/diagnosis|owner|scope|product_code|business|unknown/i.test(`${recoveryClass} ${failureClass}`)) {
694
- choices.push(humanDecisionChoice(
695
- 'revise_diagnosis',
696
- 'Revise Diagnosis',
697
- 'run_read_only_diagnosis',
698
- 'Run a read-only diagnosis revision to change owner files or proof plan with evidence.',
699
- 'low',
700
- 'run_read_only_diagnosis',
701
- 'The diagnosis gate is updated before any product-code repair is allowed.'
702
- ));
703
- }
704
- if (/infra|compile/i.test(`${recoveryClass} ${failureClass}`)) {
705
- choices.push(humanDecisionChoice(
706
- 'repair_named_gate',
707
- /compile/i.test(`${recoveryClass} ${failureClass}`) ? 'Repair Compile Gate' : 'Repair Infra Gate',
708
- /compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',
709
- 'Repair only the deterministic gate that failed; do not count this as product-code failure.',
710
- 'medium',
711
- /compile/i.test(`${recoveryClass} ${failureClass}`) ? 'run_compile_repair' : 'run_infra_repair',
712
- 'The named infra/compile gate passes or returns a new blocker hash.',
713
- true
714
- ));
715
- }
716
- if (/release/i.test(`${recoveryClass} ${failureClass}`)) {
717
- choices.push(humanDecisionChoice(
718
- 'record_hotfix_evidence',
719
- 'Record Hotfix Evidence',
720
- 'record_hotfix_evidence',
721
- 'Record commit, checksum, restart, health, and self-test proof before continuing release repair.',
722
- 'low',
723
- 'record_hotfix_evidence',
724
- 'Hotfix evidence validates and the runner reruns the smallest release gate.'
725
- ));
726
- }
727
- choices.push(humanDecisionChoice(
728
- 'keep_parked',
729
- 'Keep Parked',
730
- 'park_manual',
731
- 'Leave the run parked until a human changes the evidence, scope, budget, or retry policy.',
732
- 'blocked',
733
- 'park_manual',
734
- 'No additional model, QA, repair, publish, or deploy work is queued.'
735
- ));
736
- const dedupedChoices = choices.filter((choice, index, source) => {
737
- return source.findIndex((candidate) => candidate.choiceId === choice.choiceId) === index;
738
- }).slice(0, 4);
739
- return {
740
- requestId: stableHash('mgr-human', {
741
- checkpointId,
742
- evidenceHash,
743
- blockerFingerprint,
744
- choices: dedupedChoices.map((choice) => choice.choiceId)
745
- }),
746
- required: true,
747
- status: 'waiting_for_operator',
748
- reason: cleanText(input.reason || input.recommendedAction.reason, 1000),
749
- question: 'Choose the one evidence-backed action that should unblock this runner.',
750
- preferredChoiceId: dedupedChoices[0]?.choiceId || 'keep_parked',
751
- evidence: baseEvidence,
752
- choices: dedupedChoices,
753
- blockedUntil,
754
- createdAt: isoNow(input.updatedAt)
755
- };
756
- }
757
-
758
- export function buildResolveIOAIManagerAutopilotSnapshot(
759
- input: ResolveIOAIManagerAutopilotSnapshotInput
760
- ): ResolveIOAIManagerAutopilotSnapshot {
761
- const dispatchAction = resolveDispatchAction(input);
762
- const directiveAllowed = input.recoveryDirective
763
- ? input.recoveryDirective.allowed === true
764
- : input.recoveryAction?.autoRunnable === true;
765
- const evidenceOnly = input.recoveryDirective?.evidenceOnly === true
766
- || input.recoveryAction?.evidenceOnly === true
767
- || input.recoveryEvidenceProbe?.evidenceOnly === true
768
- || input.recoveryCheckpoint?.status === 'parked';
769
- const productRepairAllowed = (input.recoveryDirective?.canRunProductRepair ?? input.recoveryDirective?.productRepairAllowed ?? input.recoveryAction?.productRepairAllowed ?? input.recoveryCheckpoint?.productRepairAllowed) === true;
770
- const expensiveModelAllowed = (input.recoveryDirective?.canRunExpensiveModel ?? input.recoveryDirective?.expensiveModelAllowed ?? input.recoveryAction?.expensiveModelAllowed ?? input.recoveryCheckpoint?.expensiveModelAllowed) === true;
771
- const requiresNewEvidence = input.recoveryDirective?.requiresNewEvidence === true
772
- || input.recoveryAction?.retryPolicy?.requireNewEvidence === true
773
- || input.recoveryCheckpoint?.status === 'parked';
774
- const sameEvidenceDispatchCount = countSameEvidenceDispatches(input, dispatchAction);
775
- const sameEvidenceAlreadyAttempted = requiresNewEvidence && sameEvidenceDispatchCount > 0 && input.recoveryDirective?.newEvidence !== true;
776
- const checkpointStatus = cleanText(input.recoveryCheckpoint?.status, 80);
777
- const evidenceAssessment = input.recoveryCheckpoint && input.current
778
- ? assessResolveIOAIManagerEvidenceChange(input.recoveryCheckpoint, input.current, input.recoveryCheckpoint.objective)
779
- : {
780
- changed: false,
781
- material: false,
782
- strength: 'none',
783
- signals: [] as string[]
784
- };
785
- const loopState = checkpointStatus === 'manual_handoff'
786
- ? 'manual_handoff'
787
- : checkpointStatus === 'complete'
788
- ? 'complete'
789
- : sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false
790
- ? 'parked'
791
- : evidenceOnly && requiresNewEvidence
792
- ? 'collecting_evidence'
793
- : 'clear';
794
- const enabled = directiveAllowed && !sameEvidenceAlreadyAttempted && loopState !== 'manual_handoff';
795
- const recommendedAction = sameEvidenceAlreadyAttempted || input.recoveryDirective?.allowed === false
796
- ? 'park_manual'
797
- : dispatchAction;
798
- const label = cleanText(
799
- sameEvidenceAlreadyAttempted
800
- ? 'Attach New Evidence'
801
- : input.recoveryDirective?.nextActionLabel || input.recoveryAction?.label || defaultLabelForAction(recommendedAction),
802
- 140
803
- );
804
- const reason = cleanText(
805
- sameEvidenceAlreadyAttempted
806
- ? 'The same recovery action already ran against the same evidence; a new artifact path or changed evidence hash is required.'
807
- : input.recoveryDirective?.reason || input.recoveryAction?.blockedReason || input.recoveryPlan?.objective || input.current?.blocker || 'Manager can continue the current gate.',
808
- 1000
809
- );
810
- const canResetLoopAfterEvidence = input.recoveryDirective?.canResetLoopAfterEvidence === true
811
- || input.recoveryAction?.canResetLoopAfterEvidence === true
812
- || cleanList(input.recoveryCheckpoint?.loopResetEvidence, 20, 500).length > 0;
813
- const resetRequires = cleanList(
814
- input.recoveryAction?.retryPolicy?.resetLoopWhen?.length
815
- ? input.recoveryAction.retryPolicy.resetLoopWhen
816
- : input.recoveryCheckpoint?.loopResetEvidence,
817
- 20,
818
- 500
819
- );
820
- const recoveryRequiredArtifacts = cleanList(input.recoveryDirective?.requiredArtifacts?.length ? input.recoveryDirective.requiredArtifacts : input.recoveryAction?.requiredArtifacts, 20, 500);
821
- const recoveryForbiddenActions = cleanList(input.recoveryDirective?.forbiddenActions?.length ? input.recoveryDirective.forbiddenActions : input.recoveryAction?.retryPolicy?.stopWhen, 20, 500);
822
- const singleActionOnly = input.recoveryDirective?.singleActionOnly !== false && input.recoveryAction?.singleActionOnly !== false;
823
- const allowedDispatchAction = cleanText(input.recoveryDirective?.allowedDispatchAction || input.recoveryAction?.allowedDispatchAction || dispatchAction, 120);
824
- const costCeilingUsd = cleanNumber(input.recoveryDirective?.costCeilingUsd || input.recoveryAction?.costCeilingUsd);
825
- const requiredStateTransition = cleanText(input.recoveryDirective?.requiredStateTransition || input.recoveryAction?.requiredStateTransition, 500);
826
- const proofRequiredBeforeContinuation = input.recoveryDirective?.proofRequiredBeforeContinuation === true || input.recoveryAction?.proofRequiredBeforeContinuation === true;
827
- const exitCriteria = cleanList(input.recoveryDirective?.exitCriteria?.length ? input.recoveryDirective.exitCriteria : input.recoveryAction?.exitCriteria, 30, 500);
828
- const currentRunUsd = cleanNumber(input.currentRunUsd);
829
- const totalUsd = cleanNumber(input.totalUsd);
830
- const autonomyPolicy = decideResolveIOAIManagerAutonomyPolicy({
831
- ...(input.autonomyPolicy || {}),
832
- currentSpendUsd: input.autonomyPolicy?.currentSpendUsd ?? totalUsd,
833
- projectedActionCostUsd: input.autonomyPolicy?.projectedActionCostUsd ?? costCeilingUsd,
834
- dispatchAction,
835
- newEvidence: input.autonomyPolicy?.newEvidence ?? evidenceAssessment.changed,
836
- materialEvidence: input.autonomyPolicy?.materialEvidence ?? evidenceAssessment.material,
837
- evidenceStrength: input.autonomyPolicy?.evidenceStrength ?? evidenceAssessment.strength,
838
- evidenceSignals: input.autonomyPolicy?.evidenceSignals ?? evidenceAssessment.signals,
839
- sameEvidenceAlreadyAttempted: input.autonomyPolicy?.sameEvidenceAlreadyAttempted ?? sameEvidenceAlreadyAttempted
840
- });
841
- const recentDispatches = normalizeRecentDispatches(input.recoveryDispatchHistory);
842
- const recommendedActionPacket: ResolveIOAIManagerAutopilotRecommendedAction = {
843
- action: recommendedAction,
844
- label,
845
- reason,
846
- safety: safetyFor({
847
- action: recommendedAction,
848
- enabled,
849
- evidenceOnly,
850
- productRepairAllowed,
851
- expensiveModelAllowed
852
- }),
853
- enabled,
854
- autoRunnable: enabled && input.recoveryAction?.autoRunnable !== false && autonomyPolicy.canAutoDispatch === true,
855
- expectedResult: expectedResultForAction(recommendedAction, evidenceOnly),
856
- requiresNewEvidence,
857
- canRunProductRepair: enabled && productRepairAllowed,
858
- canRunExpensiveModel: enabled && expensiveModelAllowed,
859
- canResetLoopAfterEvidence,
860
- singleActionOnly,
861
- allowedDispatchAction,
862
- costCeilingUsd,
863
- requiredStateTransition,
864
- proofRequiredBeforeContinuation,
865
- autonomyMode: autonomyPolicy.mode,
866
- autonomyCanAutoDispatch: autonomyPolicy.canAutoDispatch,
867
- autonomyBlocked: autonomyPolicy.blocked,
868
- expectedValueScore: autonomyPolicy.expectedValueScore,
869
- expectedValueSource: autonomyPolicy.expectedValueSource,
870
- expectedValuePositive: autonomyPolicy.expectedValuePositive,
871
- evidenceBacked: autonomyPolicy.evidenceBacked,
872
- evidenceStrength: autonomyPolicy.evidenceStrength,
873
- dispatchAction
874
- };
875
- const humanDecision = buildHumanDecisionRequest({
876
- snapshot: input,
877
- recommendedAction: recommendedActionPacket,
878
- loopState,
879
- reason,
880
- dispatchAction,
881
- sameEvidenceAlreadyAttempted,
882
- requiresNewEvidence,
883
- requiredArtifacts: recoveryRequiredArtifacts,
884
- forbiddenActions: recoveryForbiddenActions,
885
- recentDispatches,
886
- updatedAt: input.updatedAt
887
- });
888
- const untrackedWarning = cleanText(input.untrackedCostWarning || 'Manual Codex sessions outside this runner are not included unless recorded in the usage ledger.', 500);
889
- const controlPolicy = buildControlPolicy({
890
- recommendedAction: recommendedActionPacket,
891
- autonomyPolicy,
892
- humanDecision,
893
- recoveryRequiredArtifacts,
894
- recoveryForbiddenActions,
895
- currentRunUsd,
896
- totalUsd,
897
- untrackedWarning
898
- });
899
- return {
900
- surface: cleanText(input.surface || 'unknown', 120),
901
- runId: cleanText(input.runId, 160),
902
- title: cleanText(input.title, 240),
903
- status: cleanText(input.status || input.recoveryCheckpoint?.status, 80),
904
- phase: cleanText(input.phase || input.recoveryDirective?.phase, 80),
905
- lane: cleanText(input.lane || input.recoveryDirective?.lane || input.recoveryCheckpoint?.lane || input.current?.lane, 120),
906
- stepType: cleanText(input.stepType || input.recoveryDirective?.stepType || input.recoveryCheckpoint?.stepType || input.current?.stepType, 120),
907
- runKind: cleanText(input.runKind, 120),
908
- recommendedAction: recommendedActionPacket,
909
- controlPolicy,
910
- loopGuard: {
911
- state: loopState,
912
- blocked: loopState === 'parked' || loopState === 'manual_handoff',
913
- reason,
914
- failureClass: cleanText(input.current?.failureClass, 120),
915
- blocker: cleanText(input.current?.blocker || input.current?.summary, 1000),
916
- blockerFingerprint: cleanText(input.current?.blockerFingerprint || input.recoveryCheckpoint?.blockerFingerprint, 160),
917
- evidenceHash: cleanText(input.current?.evidenceHash || input.recoveryCheckpoint?.evidenceHash, 160),
918
- materialEvidence: evidenceAssessment.material === true,
919
- evidenceStrength: cleanText(evidenceAssessment.strength, 40),
920
- evidenceSignals: cleanList(evidenceAssessment.signals, 12, 120),
921
- sameEvidenceDispatchCount,
922
- sameEvidenceAlreadyAttempted,
923
- loopCount: cleanNumber(input.loopCount),
924
- maxLoopCount: cleanNumber(input.maxLoopCount),
925
- attempts: cleanNumber(input.recoveryCheckpoint?.attempts),
926
- maxAttemptsBeforePark: cleanNumber(input.recoveryCheckpoint?.maxAttemptsBeforePark),
927
- canResetLoopAfterEvidence,
928
- resetRequires
929
- },
930
- recovery: {
931
- checkpointId: cleanText(input.recoveryCheckpoint?.checkpointId || input.recoveryAction?.checkpointId, 160),
932
- recoveryClass: cleanText(input.recoveryCheckpoint?.recoveryClass || input.recoveryAction?.recoveryClass || input.recoveryPlan?.recoveryClass, 120),
933
- dispatchAction,
934
- singleActionOnly,
935
- allowedDispatchAction,
936
- directiveAllowed,
937
- evidenceOnly,
938
- productRepairAllowed,
939
- expensiveModelAllowed,
940
- costCeilingUsd,
941
- requiredStateTransition,
942
- proofRequiredBeforeContinuation,
943
- requiredArtifacts: recoveryRequiredArtifacts,
944
- nextCommands: cleanList(input.recoveryDirective?.nextCommands?.length ? input.recoveryDirective.nextCommands : input.recoveryAction?.nextCommands, 20, 500),
945
- successCriteria: cleanList(input.recoveryDirective?.successCriteria?.length ? input.recoveryDirective.successCriteria : input.recoveryAction?.successCriteria, 20, 500),
946
- exitCriteria,
947
- forbiddenActions: recoveryForbiddenActions
948
- },
949
- autonomyPolicy,
950
- recentDispatches,
951
- humanDecision,
952
- cost: {
953
- currentRunUsd,
954
- totalUsd,
955
- currentRunTokens: cleanNumber(input.currentRunTokens),
956
- totalTokens: cleanNumber(input.totalTokens),
957
- untrackedWarning
958
- },
959
- updatedAt: isoNow(input.updatedAt)
960
- };
961
- }