@oneuptime/common 11.5.3 → 11.5.5

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 (513) hide show
  1. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +56 -45
  2. package/Models/DatabaseModels/AIInsight.ts +748 -0
  3. package/Models/DatabaseModels/AIRun.ts +262 -0
  4. package/Models/DatabaseModels/CodeRepository.ts +42 -0
  5. package/Models/DatabaseModels/Dashboard.ts +3 -3
  6. package/Models/DatabaseModels/GlobalConfig.ts +105 -0
  7. package/Models/DatabaseModels/Index.ts +4 -8
  8. package/Models/DatabaseModels/InstanceHealthLog.ts +277 -0
  9. package/Models/DatabaseModels/LlmLog.ts +33 -0
  10. package/Models/DatabaseModels/Project.ts +123 -6
  11. package/Models/DatabaseModels/Runbook.ts +1 -1
  12. package/Server/API/AIAgentDataAPI.ts +802 -140
  13. package/Server/API/AIAgentTaskAPI.ts +132 -69
  14. package/Server/API/AIAgentTaskLogAPI.ts +65 -41
  15. package/Server/API/AIAgentTaskPullRequestAPI.ts +41 -0
  16. package/Server/API/AIInsightAPI.ts +220 -0
  17. package/Server/API/AIInvestigationAPI.ts +363 -1
  18. package/Server/API/CodeFixRunAPI.ts +251 -0
  19. package/Server/API/GitHubAPI.ts +246 -3
  20. package/Server/API/TelemetryExceptionAPI.ts +193 -48
  21. package/Server/EnvironmentConfig.ts +1 -1
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.ts +26 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.ts +73 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.ts +29 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.ts +31 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.ts +51 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.ts +25 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.ts +47 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.ts +53 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.ts +31 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.ts +37 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.ts +25 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.ts +75 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.ts +37 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.ts +203 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.ts +163 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +30 -0
  38. package/Server/Infrastructure/Queue.ts +82 -4
  39. package/Server/Infrastructure/Semaphore.ts +62 -1
  40. package/Server/Services/AIAgentService.ts +32 -0
  41. package/Server/Services/AIAgentTaskPullRequestService.ts +117 -0
  42. package/Server/Services/AIInsightService.ts +174 -0
  43. package/Server/Services/AIRunEventService.ts +63 -0
  44. package/Server/Services/AIRunService.ts +259 -1
  45. package/Server/Services/AIService.ts +249 -7
  46. package/Server/Services/AlertService.ts +4 -4
  47. package/Server/Services/CodeRepositoryService.ts +209 -0
  48. package/Server/Services/DashboardService.ts +11 -2
  49. package/Server/Services/GlobalConfigService.ts +148 -0
  50. package/Server/Services/IncidentService.ts +183 -38
  51. package/Server/Services/IncidentStateTimelineService.ts +24 -4
  52. package/Server/Services/Index.ts +4 -4
  53. package/Server/Services/{AIAgentTaskLogService.ts → InstanceHealthLogService.ts} +1 -1
  54. package/Server/Services/LlmLogService.ts +27 -0
  55. package/Server/Services/LlmProviderService.ts +108 -0
  56. package/Server/Services/MetricBaselineService.ts +123 -0
  57. package/Server/Services/MonitorService.ts +15 -0
  58. package/Server/Services/TelemetryExceptionService.ts +323 -116
  59. package/Server/Services/TraceAggregationService.ts +176 -0
  60. package/Server/Types/Workflow/ComponentCode.ts +6 -0
  61. package/Server/Types/Workflow/Components/AI/GenerateText.ts +326 -0
  62. package/Server/Types/Workflow/Components/Index.ts +2 -0
  63. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +1 -1
  64. package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +71 -0
  65. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +243 -0
  66. package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +131 -0
  67. package/Server/Utils/AI/CodeFix/FixRunBudget.ts +148 -0
  68. package/Server/Utils/AI/CodeFix/OpenPullRequestCap.ts +117 -0
  69. package/Server/Utils/AI/Eval/EvalCorpus.ts +369 -0
  70. package/Server/Utils/AI/Eval/EvalScores.ts +172 -0
  71. package/Server/Utils/AI/Eval/ReplayInvestigation.ts +87 -0
  72. package/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.ts +676 -0
  73. package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts} +58 -37
  74. package/Server/Utils/AI/{Sentinel/SentinelMemory.ts → SRE/AIMemory.ts} +3 -3
  75. package/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.ts +50 -20
  76. package/Server/Utils/AI/SRE/ConfidenceSignal.ts +293 -0
  77. package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +115 -0
  78. package/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts +223 -0
  79. package/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.ts +71 -21
  80. package/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.ts +8 -8
  81. package/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.ts +364 -0
  82. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +317 -0
  83. package/Server/Utils/AI/SRE/Insights/Detectors/Index.ts +27 -0
  84. package/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.ts +221 -0
  85. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +238 -0
  86. package/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts +521 -0
  87. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +242 -0
  88. package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +290 -0
  89. package/Server/Utils/AI/SRE/Insights/InsightStore.ts +283 -0
  90. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +242 -0
  91. package/Server/Utils/AI/SRE/Insights/Triage.ts +162 -0
  92. package/Server/Utils/AI/SRE/Insights/Types.ts +49 -0
  93. package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +212 -0
  94. package/Server/Utils/AI/SRE/InvestigationGrader.ts +282 -0
  95. package/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.ts +114 -19
  96. package/Server/Utils/AI/{Sentinel → SRE}/README.md +4 -4
  97. package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +172 -0
  98. package/Server/Utils/AI/Toolbox/{SentinelActionTools.ts → AIActionTools.ts} +22 -1
  99. package/Server/Utils/AI/Toolbox/Index.ts +2 -2
  100. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +526 -0
  101. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +319 -1
  102. package/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.ts +221 -0
  103. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +571 -0
  104. package/Server/Utils/Execute.ts +34 -13
  105. package/Server/Utils/LLM/LLMService.ts +160 -30
  106. package/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.ts +152 -0
  107. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +29 -0
  108. package/Tests/Server/API/DashboardMasterPasswordAPI.test.ts +225 -0
  109. package/Tests/Server/Infrastructure/Queue.test.ts +227 -0
  110. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +159 -0
  111. package/Tests/Server/Services/AIAgentTaskPullRequestOutcomeStats.test.ts +154 -0
  112. package/Tests/Server/Services/AIInsightService.test.ts +324 -0
  113. package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +401 -0
  114. package/Tests/Server/Services/AIRunHumanVerdict.test.ts +161 -0
  115. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +95 -5
  116. package/Tests/Server/Services/AIServiceProjectAccess.test.ts +259 -0
  117. package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +249 -0
  118. package/Tests/Server/Services/FixPerformanceTaskTrigger.test.ts +274 -0
  119. package/Tests/Server/Services/GlobalConfigService.test.ts +80 -0
  120. package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +1 -1
  121. package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +313 -0
  122. package/Tests/Server/Services/LlmProviderProjectOwned.test.ts +132 -0
  123. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +405 -0
  124. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +322 -0
  125. package/Tests/Server/Services/TraceServiceLatencyProfile.test.ts +278 -0
  126. package/Tests/Server/Types/Workflow/Components/AIGenerateText.test.ts +722 -0
  127. package/Tests/Server/Utils/AI/{SentinelAlertGating.test.ts → AIAlertGating.test.ts} +19 -19
  128. package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +362 -0
  129. package/Tests/Server/Utils/AI/{SentinelInvestigationQueue.test.ts → AIInvestigationQueue.test.ts} +19 -19
  130. package/Tests/Server/Utils/AI/CodeAgentWorkspaceGuard.test.ts +138 -0
  131. package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +335 -0
  132. package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +134 -0
  133. package/Tests/Server/Utils/AI/EvalCorpus.test.ts +209 -0
  134. package/Tests/Server/Utils/AI/EvalScores.test.ts +343 -0
  135. package/Tests/Server/Utils/AI/FixRunBudget.test.ts +218 -0
  136. package/Tests/Server/Utils/AI/Insights/ErrorLogSpikeDetector.test.ts +437 -0
  137. package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +287 -0
  138. package/Tests/Server/Utils/AI/Insights/InsightDetectorsIndex.test.ts +34 -0
  139. package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +572 -0
  140. package/Tests/Server/Utils/AI/Insights/InsightNeverThrowsHardening.test.ts +344 -0
  141. package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +720 -0
  142. package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +467 -0
  143. package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +370 -0
  144. package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +210 -0
  145. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +221 -0
  146. package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +328 -0
  147. package/Tests/Server/Utils/AI/Insights/MetricBaselineDrift.test.ts +182 -0
  148. package/Tests/Server/Utils/AI/Insights/MetricDriftDetector.test.ts +280 -0
  149. package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +259 -0
  150. package/Tests/Server/Utils/AI/Insights/TraceLatencyRegressionDetector.test.ts +770 -0
  151. package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +343 -0
  152. package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +307 -0
  153. package/Tests/Server/Utils/AI/OpenPullRequestCap.test.ts +170 -0
  154. package/Tests/Server/Utils/AI/SpanTreeAnalyzer.test.ts +559 -0
  155. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +158 -0
  156. package/Tests/Server/Utils/GitHubCheckRunsConclusion.test.ts +100 -0
  157. package/Tests/Server/Utils/GitHubPullRequestStateMapping.test.ts +50 -0
  158. package/Tests/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.test.ts +266 -0
  159. package/Tests/Server/Utils/ServiceRepoLinkSuggester.test.ts +167 -0
  160. package/Tests/Server/Utils/StackTraceRepoResolver.test.ts +527 -0
  161. package/Tests/Types/AI/AIChatPermissionMode.test.ts +112 -0
  162. package/Tests/Types/AI/CodeFixTaskType.test.ts +152 -0
  163. package/Tests/Types/AI/FixPullRequestCiStatus.test.ts +181 -0
  164. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +110 -0
  165. package/Tests/Types/Monitor/SqlDatabaseType.test.ts +55 -0
  166. package/Tests/Types/Workflow/AIGenerateTextMetadata.test.ts +180 -0
  167. package/Tests/UI/Components/TableBulkCsvExport.test.tsx +168 -0
  168. package/Tests/UI/Utils/TableColumnsToCsv.test.ts +523 -0
  169. package/Types/AI/AIChatTypes.ts +8 -0
  170. package/Types/AI/AIInsightEvidence.ts +77 -0
  171. package/Types/AI/AIInsightHumanVerdict.ts +15 -0
  172. package/Types/AI/AIInsightSeverity.ts +13 -0
  173. package/Types/AI/AIInsightStatus.ts +38 -0
  174. package/Types/AI/AIInsightType.ts +41 -0
  175. package/Types/AI/AIRunAutoGrade.ts +18 -0
  176. package/Types/AI/AIRunEventType.ts +5 -0
  177. package/Types/AI/AIRunHumanVerdict.ts +17 -0
  178. package/Types/AI/AIRunType.ts +6 -0
  179. package/Types/AI/CodeFixTaskContext.ts +88 -0
  180. package/Types/AI/CodeFixTaskType.ts +132 -0
  181. package/Types/AI/FixPullRequestCiStatus.ts +132 -0
  182. package/Types/BaseDatabase/AggregationIntervalUtil.ts +67 -0
  183. package/Types/Incident/IncidentMetricType.ts +7 -0
  184. package/Types/Monitor/CriteriaFilter.ts +8 -0
  185. package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
  186. package/Types/Monitor/MonitorStep.ts +38 -0
  187. package/Types/Monitor/MonitorStepSqlMonitor.ts +141 -0
  188. package/Types/Monitor/MonitorType.ts +17 -0
  189. package/Types/Monitor/SqlDatabaseType.ts +49 -0
  190. package/Types/Monitor/SqlMonitor/SqlMonitorResponse.ts +28 -0
  191. package/Types/Permission.ts +11 -95
  192. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  193. package/Types/Runbook/RunbookStep.ts +26 -2
  194. package/Types/Runbook/RunbookStepType.ts +1 -0
  195. package/Types/Workflow/Component.ts +13 -0
  196. package/Types/Workflow/ComponentID.ts +1 -0
  197. package/Types/Workflow/Components/AI.ts +148 -0
  198. package/Types/Workflow/Components.ts +8 -0
  199. package/UI/Components/AI/GenerateFromAIModal.tsx +1 -1
  200. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +11 -0
  201. package/UI/Components/MoreMenu/MoreMenu.tsx +1 -1
  202. package/UI/Components/Table/Table.tsx +38 -2
  203. package/UI/Utils/TableColumnsToCsv.ts +385 -0
  204. package/Utils/Monitor/MonitorMetricType.ts +1 -0
  205. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +59 -45
  206. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/AIInsight.js +795 -0
  208. package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -0
  209. package/build/dist/Models/DatabaseModels/AIRun.js +274 -0
  210. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  211. package/build/dist/Models/DatabaseModels/CodeRepository.js +43 -0
  212. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  213. package/build/dist/Models/DatabaseModels/Dashboard.js +3 -3
  214. package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
  215. package/build/dist/Models/DatabaseModels/GlobalConfig.js +110 -0
  216. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  217. package/build/dist/Models/DatabaseModels/Index.js +4 -8
  218. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  219. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +304 -0
  220. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -0
  221. package/build/dist/Models/DatabaseModels/LlmLog.js +35 -0
  222. package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
  223. package/build/dist/Models/DatabaseModels/Project.js +127 -6
  224. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  225. package/build/dist/Models/DatabaseModels/Runbook.js +1 -1
  226. package/build/dist/Models/DatabaseModels/Runbook.js.map +1 -1
  227. package/build/dist/Server/API/AIAgentDataAPI.js +568 -85
  228. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  229. package/build/dist/Server/API/AIAgentTaskAPI.js +100 -44
  230. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  231. package/build/dist/Server/API/AIAgentTaskLogAPI.js +49 -25
  232. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  233. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +27 -0
  234. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -1
  235. package/build/dist/Server/API/AIInsightAPI.js +140 -0
  236. package/build/dist/Server/API/AIInsightAPI.js.map +1 -0
  237. package/build/dist/Server/API/AIInvestigationAPI.js +257 -1
  238. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  239. package/build/dist/Server/API/CodeFixRunAPI.js +181 -0
  240. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -0
  241. package/build/dist/Server/API/GitHubAPI.js +164 -2
  242. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  243. package/build/dist/Server/API/TelemetryExceptionAPI.js +148 -43
  244. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  245. package/build/dist/Server/EnvironmentConfig.js +1 -1
  246. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js +23 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js.map +1 -0
  249. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js +32 -0
  250. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js.map +1 -0
  251. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js +16 -0
  252. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js.map +1 -0
  253. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js +16 -0
  254. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js.map +1 -0
  255. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js +24 -0
  256. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js.map +1 -0
  257. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js +16 -0
  258. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js.map +1 -0
  259. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js +24 -0
  260. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js.map +1 -0
  261. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js +24 -0
  262. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js.map +1 -0
  263. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js +24 -0
  264. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js.map +1 -0
  265. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js +18 -0
  266. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js.map +1 -0
  267. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js +18 -0
  268. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js.map +1 -0
  269. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js +32 -0
  270. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js.map +1 -0
  271. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js +18 -0
  272. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js.map +1 -0
  273. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js +125 -0
  274. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js.map +1 -0
  275. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js +62 -0
  276. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js.map +1 -0
  277. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +30 -0
  278. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  279. package/build/dist/Server/Infrastructure/Queue.js +73 -3
  280. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  281. package/build/dist/Server/Infrastructure/Semaphore.js +44 -1
  282. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  283. package/build/dist/Server/Services/AIAgentService.js +29 -0
  284. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  285. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +78 -0
  286. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -1
  287. package/build/dist/Server/Services/AIInsightService.js +164 -0
  288. package/build/dist/Server/Services/AIInsightService.js.map +1 -0
  289. package/build/dist/Server/Services/AIRunEventService.js +49 -0
  290. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  291. package/build/dist/Server/Services/AIRunService.js +221 -0
  292. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  293. package/build/dist/Server/Services/AIService.js +198 -11
  294. package/build/dist/Server/Services/AIService.js.map +1 -1
  295. package/build/dist/Server/Services/AlertService.js +4 -4
  296. package/build/dist/Server/Services/AlertService.js.map +1 -1
  297. package/build/dist/Server/Services/CodeRepositoryService.js +180 -0
  298. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  299. package/build/dist/Server/Services/DashboardService.js +8 -2
  300. package/build/dist/Server/Services/DashboardService.js.map +1 -1
  301. package/build/dist/Server/Services/GlobalConfigService.js +84 -0
  302. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  303. package/build/dist/Server/Services/IncidentService.js +149 -37
  304. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  305. package/build/dist/Server/Services/IncidentStateTimelineService.js +24 -4
  306. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  307. package/build/dist/Server/Services/Index.js +4 -4
  308. package/build/dist/Server/Services/Index.js.map +1 -1
  309. package/build/dist/Server/Services/{AIAgentTaskLogService.js → InstanceHealthLogService.js} +2 -2
  310. package/build/dist/Server/Services/InstanceHealthLogService.js.map +1 -0
  311. package/build/dist/Server/Services/LlmLogService.js +23 -0
  312. package/build/dist/Server/Services/LlmLogService.js.map +1 -1
  313. package/build/dist/Server/Services/LlmProviderService.js +96 -0
  314. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  315. package/build/dist/Server/Services/MetricBaselineService.js +65 -0
  316. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  317. package/build/dist/Server/Services/MonitorService.js +9 -1
  318. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  319. package/build/dist/Server/Services/TelemetryExceptionService.js +243 -82
  320. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  321. package/build/dist/Server/Services/TraceAggregationService.js +124 -0
  322. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  323. package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
  324. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js +240 -0
  325. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js.map +1 -0
  326. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  327. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  328. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +48 -0
  329. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -0
  330. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +174 -0
  331. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -0
  332. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +126 -0
  333. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -0
  334. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +131 -0
  335. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -0
  336. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js +99 -0
  337. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js.map +1 -0
  338. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js +245 -0
  339. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js.map +1 -0
  340. package/build/dist/Server/Utils/AI/Eval/EvalScores.js +83 -0
  341. package/build/dist/Server/Utils/AI/Eval/EvalScores.js.map +1 -0
  342. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js +12 -0
  343. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js.map +1 -0
  344. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js +439 -0
  345. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js.map +1 -0
  346. package/build/dist/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.js → SRE/AIInvestigationEngine.js} +47 -31
  347. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -0
  348. package/build/dist/Server/Utils/AI/{Sentinel/SentinelMemory.js → SRE/AIMemory.js} +5 -5
  349. package/build/dist/Server/Utils/AI/SRE/AIMemory.js.map +1 -0
  350. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.js +42 -19
  351. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -0
  352. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +226 -0
  353. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -0
  354. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +100 -0
  355. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -0
  356. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js +174 -0
  357. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js.map +1 -0
  358. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.js +60 -22
  359. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -0
  360. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.js +9 -9
  361. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -0
  362. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js +268 -0
  363. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js.map +1 -0
  364. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +226 -0
  365. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js +26 -0
  367. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js.map +1 -0
  368. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js +159 -0
  369. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js.map +1 -0
  370. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +177 -0
  371. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -0
  372. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js +384 -0
  373. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js.map +1 -0
  374. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js +180 -0
  375. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -0
  376. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +269 -0
  377. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -0
  378. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +231 -0
  379. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -0
  380. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +206 -0
  381. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -0
  382. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +121 -0
  383. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -0
  384. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js +2 -0
  385. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js.map +1 -0
  386. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +148 -0
  387. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -0
  388. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +231 -0
  389. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -0
  390. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.js +102 -23
  391. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -0
  392. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +167 -0
  393. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -0
  394. package/build/dist/Server/Utils/AI/Toolbox/{SentinelActionTools.js → AIActionTools.js} +18 -2
  395. package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -0
  396. package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -2
  397. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  398. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +301 -0
  399. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -0
  400. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +240 -2
  401. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  402. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js +127 -0
  403. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js.map +1 -0
  404. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +336 -0
  405. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -0
  406. package/build/dist/Server/Utils/Execute.js +21 -11
  407. package/build/dist/Server/Utils/Execute.js.map +1 -1
  408. package/build/dist/Server/Utils/LLM/LLMService.js +125 -25
  409. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  410. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js +120 -0
  411. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js.map +1 -0
  412. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -0
  413. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  414. package/build/dist/Types/AI/AIInsightEvidence.js +2 -0
  415. package/build/dist/Types/AI/AIInsightEvidence.js.map +1 -0
  416. package/build/dist/Types/AI/AIInsightHumanVerdict.js +16 -0
  417. package/build/dist/Types/AI/AIInsightHumanVerdict.js.map +1 -0
  418. package/build/dist/Types/AI/AIInsightSeverity.js +14 -0
  419. package/build/dist/Types/AI/AIInsightSeverity.js.map +1 -0
  420. package/build/dist/Types/AI/AIInsightStatus.js +36 -0
  421. package/build/dist/Types/AI/AIInsightStatus.js.map +1 -0
  422. package/build/dist/Types/AI/AIInsightType.js +42 -0
  423. package/build/dist/Types/AI/AIInsightType.js.map +1 -0
  424. package/build/dist/Types/AI/AIRunAutoGrade.js +19 -0
  425. package/build/dist/Types/AI/AIRunAutoGrade.js.map +1 -0
  426. package/build/dist/Types/AI/AIRunEventType.js +5 -0
  427. package/build/dist/Types/AI/AIRunEventType.js.map +1 -1
  428. package/build/dist/Types/AI/AIRunHumanVerdict.js +18 -0
  429. package/build/dist/Types/AI/AIRunHumanVerdict.js.map +1 -0
  430. package/build/dist/Types/AI/AIRunType.js +6 -0
  431. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  432. package/build/dist/Types/AI/CodeFixTaskContext.js +29 -0
  433. package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -0
  434. package/build/dist/Types/AI/CodeFixTaskType.js +122 -0
  435. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -0
  436. package/build/dist/Types/AI/FixPullRequestCiStatus.js +102 -0
  437. package/build/dist/Types/AI/FixPullRequestCiStatus.js.map +1 -0
  438. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +55 -0
  439. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  440. package/build/dist/Types/Incident/IncidentMetricType.js +7 -0
  441. package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
  442. package/build/dist/Types/Monitor/CriteriaFilter.js +7 -0
  443. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  444. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
  445. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  446. package/build/dist/Types/Monitor/MonitorStep.js +28 -0
  447. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  448. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +93 -0
  449. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -0
  450. package/build/dist/Types/Monitor/MonitorType.js +15 -0
  451. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  452. package/build/dist/Types/Monitor/SqlDatabaseType.js +47 -0
  453. package/build/dist/Types/Monitor/SqlDatabaseType.js.map +1 -0
  454. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js +2 -0
  455. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js.map +1 -0
  456. package/build/dist/Types/Permission.js +10 -84
  457. package/build/dist/Types/Permission.js.map +1 -1
  458. package/build/dist/Types/Runbook/RunbookStepType.js +1 -0
  459. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  460. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  461. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  462. package/build/dist/Types/Workflow/Components/AI.js +135 -0
  463. package/build/dist/Types/Workflow/Components/AI.js.map +1 -0
  464. package/build/dist/Types/Workflow/Components.js +7 -0
  465. package/build/dist/Types/Workflow/Components.js.map +1 -1
  466. package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -1
  467. package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
  468. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +9 -0
  469. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  470. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +1 -1
  471. package/build/dist/UI/Components/Table/Table.js +28 -2
  472. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  473. package/build/dist/UI/Utils/TableColumnsToCsv.js +291 -0
  474. package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -0
  475. package/build/dist/Utils/Monitor/MonitorMetricType.js +1 -0
  476. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  477. package/package.json +1 -1
  478. package/Models/DatabaseModels/AIAgentTask.ts +0 -660
  479. package/Models/DatabaseModels/AIAgentTaskLog.ts +0 -426
  480. package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +0 -399
  481. package/Models/DatabaseModels/ServiceCodeRepository.ts +0 -647
  482. package/Server/Services/AIAgentTaskService.ts +0 -240
  483. package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +0 -39
  484. package/Server/Services/ServiceCodeRepositoryService.ts +0 -55
  485. package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +0 -146
  486. package/Types/AI/AIAgentTaskMetadata.ts +0 -25
  487. package/Types/AI/AIAgentTaskType.ts +0 -40
  488. package/build/dist/Models/DatabaseModels/AIAgentTask.js +0 -691
  489. package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +0 -1
  490. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +0 -447
  491. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +0 -1
  492. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +0 -415
  493. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +0 -1
  494. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +0 -665
  495. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +0 -1
  496. package/build/dist/Server/Services/AIAgentTaskLogService.js.map +0 -1
  497. package/build/dist/Server/Services/AIAgentTaskService.js +0 -217
  498. package/build/dist/Server/Services/AIAgentTaskService.js.map +0 -1
  499. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +0 -36
  500. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +0 -1
  501. package/build/dist/Server/Services/ServiceCodeRepositoryService.js +0 -54
  502. package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +0 -1
  503. package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +0 -1
  504. package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +0 -1
  505. package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +0 -1
  506. package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +0 -1
  507. package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +0 -1
  508. package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +0 -1
  509. package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +0 -1
  510. package/build/dist/Types/AI/AIAgentTaskMetadata.js +0 -6
  511. package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +0 -1
  512. package/build/dist/Types/AI/AIAgentTaskType.js +0 -29
  513. package/build/dist/Types/AI/AIAgentTaskType.js.map +0 -1
@@ -1,38 +1,52 @@
1
1
  import AIAgentService from "../Services/AIAgentService";
2
- import AIAgentTaskService, {
3
- Service as AIAgentTaskServiceType,
4
- } from "../Services/AIAgentTaskService";
5
- import {
2
+ import AIRunService from "../Services/AIRunService";
3
+ import AIRunEventService from "../Services/AIRunEventService";
4
+ import Express, {
6
5
  ExpressRequest,
7
6
  ExpressResponse,
7
+ ExpressRouter,
8
8
  NextFunction,
9
9
  } from "../Utils/Express";
10
10
  import Response from "../Utils/Response";
11
- import BaseAPI from "./BaseAPI";
12
- import AIAgentTask from "../../Models/DatabaseModels/AIAgentTask";
13
11
  import AIAgent from "../../Models/DatabaseModels/AIAgent";
12
+ import AIRun from "../../Models/DatabaseModels/AIRun";
14
13
  import BadDataException from "../../Types/Exception/BadDataException";
15
14
  import { JSONObject } from "../../Types/JSON";
16
15
  import ObjectID from "../../Types/ObjectID";
17
16
  import OneUptimeDate from "../../Types/Date";
18
17
  import AIAgentTaskStatus from "../../Types/AI/AIAgentTaskStatus";
18
+ import AIRunStatus from "../../Types/AI/AIRunStatus";
19
+ import AIRunType from "../../Types/AI/AIRunType";
20
+ import AIRunEventType from "../../Types/AI/AIRunEventType";
21
+ import { CodeFixTaskTypeHelper } from "../../Types/AI/CodeFixTaskType";
19
22
  import PositiveNumber from "../../Types/PositiveNumber";
20
23
 
21
- export default class AIAgentTaskAPI extends BaseAPI<
22
- AIAgentTask,
23
- AIAgentTaskServiceType
24
- > {
24
+ /*
25
+ * The agent worker's task protocol. The route names and request shapes are
26
+ * unchanged from the legacy AIAgentTask days (the wire keeps the
27
+ * AIAgentTaskStatus strings), but the substrate underneath is the unified
28
+ * AIRun table: `taskId` carries an AIRun id, claims are CAS status
29
+ * transitions, and progress reports touch the run heartbeat that the
30
+ * stale-run sweeper watches. The legacy AIAgentTask MODEL is gone — this is
31
+ * a plain protocol router, not a CRUD API.
32
+ */
33
+
34
+ const API_BASE_PATH: string = "/ai-agent-task";
35
+
36
+ export default class AIAgentTaskAPI {
37
+ public router!: ExpressRouter;
38
+
25
39
  public constructor() {
26
- super(AIAgentTask, AIAgentTaskService);
40
+ this.router = Express.getRouter();
27
41
 
28
42
  /*
29
- * Claim the next pending (scheduled) task for processing.
30
- * Validates aiAgentId and aiAgentKey before claiming. The task is
31
- * atomically transitioned Scheduled -> InProgress before it is
32
- * returned, so concurrent workers can never receive the same task.
43
+ * Claim the next pending code-fix run for processing.
44
+ * Validates aiAgentId and aiAgentKey before claiming. The run is
45
+ * atomically transitioned Queued -> Running before it is returned, so
46
+ * concurrent workers can never receive the same run.
33
47
  */
34
48
  this.router.post(
35
- `${new this.entityType().getCrudApiPath()?.toString()}/get-pending-task`,
49
+ `${API_BASE_PATH}/get-pending-task`,
36
50
  async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
37
51
  try {
38
52
  const data: JSONObject = req.body;
@@ -48,12 +62,12 @@ export default class AIAgentTaskAPI extends BaseAPI<
48
62
  );
49
63
  }
50
64
 
51
- const task: AIAgentTask | null =
52
- await AIAgentTaskService.claimNextScheduledTask({
65
+ const run: AIRun | null =
66
+ await AIRunService.claimNextQueuedCodeFixRun({
53
67
  aiAgentId: aiAgent.id,
54
68
  });
55
69
 
56
- if (!task) {
70
+ if (!run) {
57
71
  return Response.sendJsonObjectResponse(req, res, {
58
72
  task: null,
59
73
  message: "No pending tasks available",
@@ -62,11 +76,24 @@ export default class AIAgentTaskAPI extends BaseAPI<
62
76
 
63
77
  return Response.sendJsonObjectResponse(req, res, {
64
78
  task: {
65
- _id: task._id?.toString(),
66
- projectId: task.projectId?.toString(),
67
- taskType: task.taskType,
68
- metadata: task.metadata as JSONObject | undefined,
69
- createdAt: task.createdAt,
79
+ id: run.id!.toString(),
80
+ projectId: run.projectId?.toString(),
81
+ /*
82
+ * exceptionId is present only for exception-based recipes.
83
+ * ImproveInstrumentation / FixFromIncident runs carry an
84
+ * incident/alert subject instead — the worker fetches their
85
+ * context via /ai-agent-data/get-instrumentation-task-details
86
+ * with the run id, so this field is optional on the wire.
87
+ */
88
+ exceptionId: run.triggeredByTelemetryExceptionId?.toString(),
89
+ /*
90
+ * The worker dispatches its task handler on this. The claim
91
+ * already normalized legacy null to FixException; normalize
92
+ * again here so the wire contract can never regress.
93
+ */
94
+ taskType: CodeFixTaskTypeHelper.fromDatabaseValue(
95
+ run.codeFixTaskType,
96
+ ),
70
97
  },
71
98
  message: "Task claimed successfully",
72
99
  });
@@ -77,11 +104,11 @@ export default class AIAgentTaskAPI extends BaseAPI<
77
104
  );
78
105
 
79
106
  /*
80
- * Get the count of pending (scheduled) tasks for KEDA autoscaling
107
+ * Get the count of pending (queued) code-fix runs for KEDA autoscaling
81
108
  * Validates aiAgentId and aiAgentKey before returning count
82
109
  */
83
110
  this.router.post(
84
- `${new this.entityType().getCrudApiPath()?.toString()}/get-pending-task-count`,
111
+ `${API_BASE_PATH}/get-pending-task-count`,
85
112
  async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
86
113
  try {
87
114
  const data: JSONObject = req.body;
@@ -97,10 +124,11 @@ export default class AIAgentTaskAPI extends BaseAPI<
97
124
  );
98
125
  }
99
126
 
100
- /* Count scheduled tasks */
101
- const count: PositiveNumber = await AIAgentTaskService.countBy({
127
+ /* Count queued code-fix runs */
128
+ const count: PositiveNumber = await AIRunService.countBy({
102
129
  query: {
103
- status: AIAgentTaskStatus.Scheduled,
130
+ runType: AIRunType.CodeFix,
131
+ status: AIRunStatus.Queued,
104
132
  },
105
133
  props: {
106
134
  isRoot: true,
@@ -118,11 +146,14 @@ export default class AIAgentTaskAPI extends BaseAPI<
118
146
  );
119
147
 
120
148
  /*
121
- * Update task status (InProgress, Completed, Error)
122
- * Validates aiAgentId and aiAgentKey before updating
149
+ * Update task status (InProgress, Completed, Error).
150
+ * `taskId` is an AIRun id. InProgress is a heartbeat touch (the run is
151
+ * already Running from the claim); Completed/Error are CAS transitions
152
+ * Running -> Completed/Error that also write the terminal
153
+ * RunCompleted/RunFailed event to the run's glass-box trail.
123
154
  */
124
155
  this.router.post(
125
- `${new this.entityType().getCrudApiPath()?.toString()}/update-task-status`,
156
+ `${API_BASE_PATH}/update-task-status`,
126
157
  async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
127
158
  try {
128
159
  const data: JSONObject = req.body;
@@ -155,7 +186,7 @@ export default class AIAgentTaskAPI extends BaseAPI<
155
186
  );
156
187
  }
157
188
 
158
- const taskId: ObjectID = new ObjectID(data["taskId"] as string);
189
+ const runId: ObjectID = new ObjectID(data["taskId"] as string);
159
190
  const status: AIAgentTaskStatus = data["status"] as AIAgentTaskStatus;
160
191
  const statusMessage: string | undefined = data["statusMessage"] as
161
192
  | string
@@ -178,20 +209,20 @@ export default class AIAgentTaskAPI extends BaseAPI<
178
209
  );
179
210
  }
180
211
 
181
- /* Check if task exists */
182
- const existingTask: AIAgentTask | null =
183
- await AIAgentTaskService.findOneById({
184
- id: taskId,
185
- select: {
186
- _id: true,
187
- status: true,
188
- },
189
- props: {
190
- isRoot: true,
191
- },
192
- });
212
+ /* Check if the run exists */
213
+ const existingRun: AIRun | null = await AIRunService.findOneById({
214
+ id: runId,
215
+ select: {
216
+ _id: true,
217
+ projectId: true,
218
+ status: true,
219
+ },
220
+ props: {
221
+ isRoot: true,
222
+ },
223
+ });
193
224
 
194
- if (!existingTask) {
225
+ if (!existingRun) {
195
226
  return Response.sendErrorResponse(
196
227
  req,
197
228
  res,
@@ -199,39 +230,67 @@ export default class AIAgentTaskAPI extends BaseAPI<
199
230
  );
200
231
  }
201
232
 
202
- /* Update the task based on status */
203
233
  if (status === AIAgentTaskStatus.InProgress) {
204
- await AIAgentTaskService.updateOneById({
205
- id: taskId,
206
- data: {
207
- status: status,
208
- ...(aiAgent.id && { aiAgentId: aiAgent.id }),
209
- startedAt: OneUptimeDate.getCurrentDate(),
210
- ...(statusMessage && { statusMessage: statusMessage }),
211
- },
212
- props: {
213
- isRoot: true,
234
+ /*
235
+ * Back-compat no-op refresh: the run went Running at claim time,
236
+ * so an InProgress report only keeps it visibly alive for the
237
+ * stale-run sweeper.
238
+ */
239
+ await AIRunService.updateOneBy({
240
+ query: {
241
+ _id: runId.toString(),
242
+ status: AIRunStatus.Running,
214
243
  },
215
- });
216
- } else if (
217
- status === AIAgentTaskStatus.Completed ||
218
- status === AIAgentTaskStatus.Error
219
- ) {
220
- await AIAgentTaskService.updateOneById({
221
- id: taskId,
222
244
  data: {
223
- status: status,
224
- completedAt: OneUptimeDate.getCurrentDate(),
225
- ...(statusMessage && { statusMessage: statusMessage }),
226
- },
245
+ lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
246
+ } as never,
227
247
  props: {
228
248
  isRoot: true,
229
249
  },
230
250
  });
251
+ } else {
252
+ const toStatus: AIRunStatus =
253
+ status === AIAgentTaskStatus.Completed
254
+ ? AIRunStatus.Completed
255
+ : AIRunStatus.Error;
256
+
257
+ /*
258
+ * CAS Running -> Completed/Error. Losing the race (0 rows) means
259
+ * another actor already finalized the run — e.g. the sweeper
260
+ * marked it Error after a heartbeat gap — and that outcome wins;
261
+ * we do not clobber it or write a duplicate terminal event.
262
+ */
263
+ const transitionedCount: number =
264
+ await AIRunService.attemptStatusTransition({
265
+ aiRunId: runId,
266
+ fromStatus: AIRunStatus.Running,
267
+ set: {
268
+ status: toStatus,
269
+ completedAt: OneUptimeDate.getCurrentDate(),
270
+ lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
271
+ ...(toStatus === AIRunStatus.Error && statusMessage
272
+ ? { errorMessage: statusMessage }
273
+ : {}),
274
+ },
275
+ });
276
+
277
+ if (transitionedCount > 0 && existingRun.projectId) {
278
+ await AIRunEventService.appendEventToRun({
279
+ projectId: existingRun.projectId,
280
+ aiRunId: runId,
281
+ eventType:
282
+ toStatus === AIRunStatus.Completed
283
+ ? AIRunEventType.RunCompleted
284
+ : AIRunEventType.RunFailed,
285
+ ...(statusMessage
286
+ ? { resultSummary: { message: statusMessage } }
287
+ : {}),
288
+ });
289
+ }
231
290
  }
232
291
 
233
292
  return Response.sendJsonObjectResponse(req, res, {
234
- taskId: taskId.toString(),
293
+ taskId: runId.toString(),
235
294
  status: status,
236
295
  message: "Task status updated successfully",
237
296
  });
@@ -242,6 +301,10 @@ export default class AIAgentTaskAPI extends BaseAPI<
242
301
  );
243
302
  }
244
303
 
304
+ public getRouter(): ExpressRouter {
305
+ return this.router;
306
+ }
307
+
245
308
  /*
246
309
  * Validate AI Agent credentials from request body
247
310
  * Returns AIAgent if valid, null otherwise
@@ -1,36 +1,48 @@
1
- import AIAgentTaskLogService, {
2
- Service as AIAgentTaskLogServiceType,
3
- } from "../Services/AIAgentTaskLogService";
4
1
  import AIAgentService from "../Services/AIAgentService";
5
- import AIAgentTaskService from "../Services/AIAgentTaskService";
6
- import {
2
+ import AIRunService from "../Services/AIRunService";
3
+ import AIRunEventService from "../Services/AIRunEventService";
4
+ import Express, {
7
5
  ExpressRequest,
8
6
  ExpressResponse,
7
+ ExpressRouter,
9
8
  NextFunction,
10
9
  } from "../Utils/Express";
11
10
  import Response from "../Utils/Response";
12
- import BaseAPI from "./BaseAPI";
13
- import AIAgentTaskLog from "../../Models/DatabaseModels/AIAgentTaskLog";
14
11
  import AIAgent from "../../Models/DatabaseModels/AIAgent";
15
- import AIAgentTask from "../../Models/DatabaseModels/AIAgentTask";
12
+ import AIRun from "../../Models/DatabaseModels/AIRun";
16
13
  import BadDataException from "../../Types/Exception/BadDataException";
17
14
  import { JSONObject } from "../../Types/JSON";
18
15
  import ObjectID from "../../Types/ObjectID";
16
+ import OneUptimeDate from "../../Types/Date";
17
+ import AIRunStatus from "../../Types/AI/AIRunStatus";
18
+ import AIRunEventType from "../../Types/AI/AIRunEventType";
19
19
  import LogSeverity from "../../Types/Log/LogSeverity";
20
20
 
21
- export default class AIAgentTaskLogAPI extends BaseAPI<
22
- AIAgentTaskLog,
23
- AIAgentTaskLogServiceType
24
- > {
21
+ /*
22
+ * The agent worker's progress-log protocol. The route name predates the
23
+ * AIRun substrate (the legacy AIAgentTaskLog MODEL is gone — this is a
24
+ * plain protocol router, not a CRUD API); log lines land as ProgressLog
25
+ * AIRunEvents on the run's glass-box trail.
26
+ */
27
+
28
+ const API_BASE_PATH: string = "/ai-agent-task-log";
29
+
30
+ export default class AIAgentTaskLogAPI {
31
+ public router!: ExpressRouter;
32
+
25
33
  public constructor() {
26
- super(AIAgentTaskLog, AIAgentTaskLogService);
34
+ this.router = Express.getRouter();
27
35
 
28
36
  /*
29
- * Create a log entry for an AI Agent task
30
- * Validates aiAgentId and aiAgentKey before creating log
37
+ * Record a progress log line for a code-fix run. The route name and
38
+ * request shape are unchanged from the legacy AIAgentTaskLog days, but
39
+ * `taskId` now carries an AIRun id and the line lands as a ProgressLog
40
+ * AIRunEvent in the run's glass-box trail (message + severity in
41
+ * resultSummary). Each log also touches the run heartbeat so a chatty
42
+ * agent is never swept as stale. Validates aiAgentId and aiAgentKey.
31
43
  */
32
44
  this.router.post(
33
- `${new this.entityType().getCrudApiPath()?.toString()}/create-log`,
45
+ `${API_BASE_PATH}/create-log`,
34
46
  async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
35
47
  try {
36
48
  const data: JSONObject = req.body;
@@ -71,7 +83,7 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
71
83
  );
72
84
  }
73
85
 
74
- const taskId: ObjectID = new ObjectID(data["taskId"] as string);
86
+ const runId: ObjectID = new ObjectID(data["taskId"] as string);
75
87
  const severity: LogSeverity = data["severity"] as LogSeverity;
76
88
  const message: string = data["message"] as string;
77
89
 
@@ -88,20 +100,19 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
88
100
  );
89
101
  }
90
102
 
91
- /* Check if task exists and get project ID */
92
- const existingTask: AIAgentTask | null =
93
- await AIAgentTaskService.findOneById({
94
- id: taskId,
95
- select: {
96
- _id: true,
97
- projectId: true,
98
- },
99
- props: {
100
- isRoot: true,
101
- },
102
- });
103
-
104
- if (!existingTask) {
103
+ /* Check if the run exists and get its project ID */
104
+ const existingRun: AIRun | null = await AIRunService.findOneById({
105
+ id: runId,
106
+ select: {
107
+ _id: true,
108
+ projectId: true,
109
+ },
110
+ props: {
111
+ isRoot: true,
112
+ },
113
+ });
114
+
115
+ if (!existingRun || !existingRun.projectId) {
105
116
  return Response.sendErrorResponse(
106
117
  req,
107
118
  res,
@@ -109,23 +120,32 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
109
120
  );
110
121
  }
111
122
 
112
- /* Create the log entry */
113
- const logEntry: AIAgentTaskLog = new AIAgentTaskLog();
114
- logEntry.projectId = existingTask.projectId!;
115
- logEntry.aiAgentTaskId = taskId;
116
- logEntry.aiAgentId = aiAgent.id!;
117
- logEntry.severity = severity;
118
- logEntry.message = message;
123
+ await AIRunEventService.appendEventToRun({
124
+ projectId: existingRun.projectId,
125
+ aiRunId: runId,
126
+ eventType: AIRunEventType.ProgressLog,
127
+ resultSummary: {
128
+ message: message,
129
+ severity: severity,
130
+ },
131
+ });
119
132
 
120
- await AIAgentTaskLogService.create({
121
- data: logEntry,
133
+ /* A progress report proves the agent is alive — refresh the heartbeat. */
134
+ await AIRunService.updateOneBy({
135
+ query: {
136
+ _id: runId.toString(),
137
+ status: AIRunStatus.Running,
138
+ },
139
+ data: {
140
+ lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
141
+ } as never,
122
142
  props: {
123
143
  isRoot: true,
124
144
  },
125
145
  });
126
146
 
127
147
  return Response.sendJsonObjectResponse(req, res, {
128
- taskId: taskId.toString(),
148
+ taskId: runId.toString(),
129
149
  message: "Log entry created successfully",
130
150
  });
131
151
  } catch (err) {
@@ -135,6 +155,10 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
135
155
  );
136
156
  }
137
157
 
158
+ public getRouter(): ExpressRouter {
159
+ return this.router;
160
+ }
161
+
138
162
  /*
139
163
  * Validate AI Agent credentials from request body
140
164
  * Returns AIAgent if valid, null otherwise
@@ -1,8 +1,18 @@
1
1
  import AIAgentTaskPullRequestService, {
2
+ AIFixOutcomeStats,
2
3
  Service as AIAgentTaskPullRequestServiceType,
3
4
  } from "../Services/AIAgentTaskPullRequestService";
4
5
  import BaseAPI from "./BaseAPI";
6
+ import CommonAPI from "./CommonAPI";
7
+ import UserMiddleware from "../Middleware/UserAuthorization";
8
+ import Response from "../Utils/Response";
5
9
  import AIAgentTaskPullRequest from "../../Models/DatabaseModels/AIAgentTaskPullRequest";
10
+ import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
11
+ import {
12
+ ExpressRequest,
13
+ ExpressResponse,
14
+ NextFunction,
15
+ } from "../Utils/Express";
6
16
 
7
17
  export default class AIAgentTaskPullRequestAPI extends BaseAPI<
8
18
  AIAgentTaskPullRequest,
@@ -10,5 +20,36 @@ export default class AIAgentTaskPullRequestAPI extends BaseAPI<
10
20
  > {
11
21
  public constructor() {
12
22
  super(AIAgentTaskPullRequest, AIAgentTaskPullRequestService);
23
+
24
+ /*
25
+ * Outcome counts for the project's AI-authored fix PRs (merged /
26
+ * closed-unmerged / open + acceptance rate + CI-verified-green rate)
27
+ * — the G11 baseline surface.
28
+ */
29
+ this.router.get(
30
+ `${new this.entityType().getCrudApiPath()?.toString()}/outcome-stats`,
31
+ UserMiddleware.getUserMiddleware,
32
+ async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
33
+ try {
34
+ const props: DatabaseCommonInteractionProps =
35
+ await CommonAPI.getDatabaseCommonInteractionProps(req);
36
+
37
+ const stats: AIFixOutcomeStats =
38
+ await this.service.getOutcomeStats(props);
39
+
40
+ return Response.sendJsonObjectResponse(req, res, {
41
+ total: stats.total,
42
+ open: stats.open,
43
+ merged: stats.merged,
44
+ closedUnmerged: stats.closedUnmerged,
45
+ acceptanceRatePercent: stats.acceptanceRatePercent,
46
+ verifiedGreen: stats.verifiedGreen,
47
+ verifiedGreenRatePercent: stats.verifiedGreenRatePercent,
48
+ });
49
+ } catch (err) {
50
+ next(err);
51
+ }
52
+ },
53
+ );
13
54
  }
14
55
  }