@oneuptime/common 11.5.4 → 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 (505) 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/GlobalConfig.ts +105 -0
  6. package/Models/DatabaseModels/Index.ts +4 -8
  7. package/Models/DatabaseModels/InstanceHealthLog.ts +277 -0
  8. package/Models/DatabaseModels/LlmLog.ts +33 -0
  9. package/Models/DatabaseModels/Project.ts +123 -6
  10. package/Models/DatabaseModels/Runbook.ts +1 -1
  11. package/Server/API/AIAgentDataAPI.ts +802 -140
  12. package/Server/API/AIAgentTaskAPI.ts +132 -69
  13. package/Server/API/AIAgentTaskLogAPI.ts +65 -41
  14. package/Server/API/AIAgentTaskPullRequestAPI.ts +41 -0
  15. package/Server/API/AIInsightAPI.ts +220 -0
  16. package/Server/API/AIInvestigationAPI.ts +363 -1
  17. package/Server/API/CodeFixRunAPI.ts +251 -0
  18. package/Server/API/GitHubAPI.ts +246 -3
  19. package/Server/API/TelemetryExceptionAPI.ts +193 -48
  20. package/Server/EnvironmentConfig.ts +1 -1
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.ts +26 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.ts +73 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.ts +29 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.ts +31 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.ts +51 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.ts +25 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.ts +47 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.ts +53 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.ts +31 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.ts +37 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.ts +25 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.ts +75 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.ts +37 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.ts +203 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.ts +163 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +30 -0
  37. package/Server/Infrastructure/Queue.ts +82 -4
  38. package/Server/Infrastructure/Semaphore.ts +62 -1
  39. package/Server/Services/AIAgentService.ts +32 -0
  40. package/Server/Services/AIAgentTaskPullRequestService.ts +117 -0
  41. package/Server/Services/AIInsightService.ts +174 -0
  42. package/Server/Services/AIRunEventService.ts +63 -0
  43. package/Server/Services/AIRunService.ts +259 -1
  44. package/Server/Services/AIService.ts +249 -7
  45. package/Server/Services/AlertService.ts +4 -4
  46. package/Server/Services/CodeRepositoryService.ts +209 -0
  47. package/Server/Services/GlobalConfigService.ts +148 -0
  48. package/Server/Services/IncidentService.ts +183 -38
  49. package/Server/Services/IncidentStateTimelineService.ts +24 -4
  50. package/Server/Services/Index.ts +4 -4
  51. package/Server/Services/{AIAgentTaskLogService.ts → InstanceHealthLogService.ts} +1 -1
  52. package/Server/Services/LlmLogService.ts +27 -0
  53. package/Server/Services/LlmProviderService.ts +108 -0
  54. package/Server/Services/MetricBaselineService.ts +123 -0
  55. package/Server/Services/MonitorService.ts +15 -0
  56. package/Server/Services/TelemetryExceptionService.ts +323 -116
  57. package/Server/Services/TraceAggregationService.ts +176 -0
  58. package/Server/Types/Workflow/ComponentCode.ts +6 -0
  59. package/Server/Types/Workflow/Components/AI/GenerateText.ts +326 -0
  60. package/Server/Types/Workflow/Components/Index.ts +2 -0
  61. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +1 -1
  62. package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +71 -0
  63. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +243 -0
  64. package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +131 -0
  65. package/Server/Utils/AI/CodeFix/FixRunBudget.ts +148 -0
  66. package/Server/Utils/AI/CodeFix/OpenPullRequestCap.ts +117 -0
  67. package/Server/Utils/AI/Eval/EvalCorpus.ts +369 -0
  68. package/Server/Utils/AI/Eval/EvalScores.ts +172 -0
  69. package/Server/Utils/AI/Eval/ReplayInvestigation.ts +87 -0
  70. package/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.ts +676 -0
  71. package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts} +58 -37
  72. package/Server/Utils/AI/{Sentinel/SentinelMemory.ts → SRE/AIMemory.ts} +3 -3
  73. package/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.ts +50 -20
  74. package/Server/Utils/AI/SRE/ConfidenceSignal.ts +293 -0
  75. package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +115 -0
  76. package/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts +223 -0
  77. package/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.ts +71 -21
  78. package/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.ts +8 -8
  79. package/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.ts +364 -0
  80. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +317 -0
  81. package/Server/Utils/AI/SRE/Insights/Detectors/Index.ts +27 -0
  82. package/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.ts +221 -0
  83. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +238 -0
  84. package/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts +521 -0
  85. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +242 -0
  86. package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +290 -0
  87. package/Server/Utils/AI/SRE/Insights/InsightStore.ts +283 -0
  88. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +242 -0
  89. package/Server/Utils/AI/SRE/Insights/Triage.ts +162 -0
  90. package/Server/Utils/AI/SRE/Insights/Types.ts +49 -0
  91. package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +212 -0
  92. package/Server/Utils/AI/SRE/InvestigationGrader.ts +282 -0
  93. package/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.ts +114 -19
  94. package/Server/Utils/AI/{Sentinel → SRE}/README.md +4 -4
  95. package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +172 -0
  96. package/Server/Utils/AI/Toolbox/{SentinelActionTools.ts → AIActionTools.ts} +22 -1
  97. package/Server/Utils/AI/Toolbox/Index.ts +2 -2
  98. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +526 -0
  99. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +319 -1
  100. package/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.ts +221 -0
  101. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +571 -0
  102. package/Server/Utils/Execute.ts +2 -1
  103. package/Server/Utils/LLM/LLMService.ts +160 -30
  104. package/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.ts +152 -0
  105. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +29 -0
  106. package/Tests/Server/Infrastructure/Queue.test.ts +227 -0
  107. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +159 -0
  108. package/Tests/Server/Services/AIAgentTaskPullRequestOutcomeStats.test.ts +154 -0
  109. package/Tests/Server/Services/AIInsightService.test.ts +324 -0
  110. package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +401 -0
  111. package/Tests/Server/Services/AIRunHumanVerdict.test.ts +161 -0
  112. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +95 -5
  113. package/Tests/Server/Services/AIServiceProjectAccess.test.ts +259 -0
  114. package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +249 -0
  115. package/Tests/Server/Services/FixPerformanceTaskTrigger.test.ts +274 -0
  116. package/Tests/Server/Services/GlobalConfigService.test.ts +80 -0
  117. package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +1 -1
  118. package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +313 -0
  119. package/Tests/Server/Services/LlmProviderProjectOwned.test.ts +132 -0
  120. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +405 -0
  121. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +322 -0
  122. package/Tests/Server/Services/TraceServiceLatencyProfile.test.ts +278 -0
  123. package/Tests/Server/Types/Workflow/Components/AIGenerateText.test.ts +722 -0
  124. package/Tests/Server/Utils/AI/{SentinelAlertGating.test.ts → AIAlertGating.test.ts} +19 -19
  125. package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +362 -0
  126. package/Tests/Server/Utils/AI/{SentinelInvestigationQueue.test.ts → AIInvestigationQueue.test.ts} +19 -19
  127. package/Tests/Server/Utils/AI/CodeAgentWorkspaceGuard.test.ts +138 -0
  128. package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +335 -0
  129. package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +134 -0
  130. package/Tests/Server/Utils/AI/EvalCorpus.test.ts +209 -0
  131. package/Tests/Server/Utils/AI/EvalScores.test.ts +343 -0
  132. package/Tests/Server/Utils/AI/FixRunBudget.test.ts +218 -0
  133. package/Tests/Server/Utils/AI/Insights/ErrorLogSpikeDetector.test.ts +437 -0
  134. package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +287 -0
  135. package/Tests/Server/Utils/AI/Insights/InsightDetectorsIndex.test.ts +34 -0
  136. package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +572 -0
  137. package/Tests/Server/Utils/AI/Insights/InsightNeverThrowsHardening.test.ts +344 -0
  138. package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +720 -0
  139. package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +467 -0
  140. package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +370 -0
  141. package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +210 -0
  142. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +221 -0
  143. package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +328 -0
  144. package/Tests/Server/Utils/AI/Insights/MetricBaselineDrift.test.ts +182 -0
  145. package/Tests/Server/Utils/AI/Insights/MetricDriftDetector.test.ts +280 -0
  146. package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +259 -0
  147. package/Tests/Server/Utils/AI/Insights/TraceLatencyRegressionDetector.test.ts +770 -0
  148. package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +343 -0
  149. package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +307 -0
  150. package/Tests/Server/Utils/AI/OpenPullRequestCap.test.ts +170 -0
  151. package/Tests/Server/Utils/AI/SpanTreeAnalyzer.test.ts +559 -0
  152. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +158 -0
  153. package/Tests/Server/Utils/GitHubCheckRunsConclusion.test.ts +100 -0
  154. package/Tests/Server/Utils/GitHubPullRequestStateMapping.test.ts +50 -0
  155. package/Tests/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.test.ts +266 -0
  156. package/Tests/Server/Utils/ServiceRepoLinkSuggester.test.ts +167 -0
  157. package/Tests/Server/Utils/StackTraceRepoResolver.test.ts +527 -0
  158. package/Tests/Types/AI/AIChatPermissionMode.test.ts +112 -0
  159. package/Tests/Types/AI/CodeFixTaskType.test.ts +152 -0
  160. package/Tests/Types/AI/FixPullRequestCiStatus.test.ts +181 -0
  161. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +110 -0
  162. package/Tests/Types/Monitor/SqlDatabaseType.test.ts +55 -0
  163. package/Tests/Types/Workflow/AIGenerateTextMetadata.test.ts +180 -0
  164. package/Tests/UI/Components/TableBulkCsvExport.test.tsx +168 -0
  165. package/Tests/UI/Utils/TableColumnsToCsv.test.ts +523 -0
  166. package/Types/AI/AIChatTypes.ts +8 -0
  167. package/Types/AI/AIInsightEvidence.ts +77 -0
  168. package/Types/AI/AIInsightHumanVerdict.ts +15 -0
  169. package/Types/AI/AIInsightSeverity.ts +13 -0
  170. package/Types/AI/AIInsightStatus.ts +38 -0
  171. package/Types/AI/AIInsightType.ts +41 -0
  172. package/Types/AI/AIRunAutoGrade.ts +18 -0
  173. package/Types/AI/AIRunEventType.ts +5 -0
  174. package/Types/AI/AIRunHumanVerdict.ts +17 -0
  175. package/Types/AI/AIRunType.ts +6 -0
  176. package/Types/AI/CodeFixTaskContext.ts +88 -0
  177. package/Types/AI/CodeFixTaskType.ts +132 -0
  178. package/Types/AI/FixPullRequestCiStatus.ts +132 -0
  179. package/Types/BaseDatabase/AggregationIntervalUtil.ts +67 -0
  180. package/Types/Incident/IncidentMetricType.ts +7 -0
  181. package/Types/Monitor/CriteriaFilter.ts +8 -0
  182. package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
  183. package/Types/Monitor/MonitorStep.ts +38 -0
  184. package/Types/Monitor/MonitorStepSqlMonitor.ts +141 -0
  185. package/Types/Monitor/MonitorType.ts +17 -0
  186. package/Types/Monitor/SqlDatabaseType.ts +49 -0
  187. package/Types/Monitor/SqlMonitor/SqlMonitorResponse.ts +28 -0
  188. package/Types/Permission.ts +11 -95
  189. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  190. package/Types/Runbook/RunbookStep.ts +26 -2
  191. package/Types/Runbook/RunbookStepType.ts +1 -0
  192. package/Types/Workflow/Component.ts +13 -0
  193. package/Types/Workflow/ComponentID.ts +1 -0
  194. package/Types/Workflow/Components/AI.ts +148 -0
  195. package/Types/Workflow/Components.ts +8 -0
  196. package/UI/Components/AI/GenerateFromAIModal.tsx +1 -1
  197. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +11 -0
  198. package/UI/Components/MoreMenu/MoreMenu.tsx +1 -1
  199. package/UI/Components/Table/Table.tsx +38 -2
  200. package/UI/Utils/TableColumnsToCsv.ts +385 -0
  201. package/Utils/Monitor/MonitorMetricType.ts +1 -0
  202. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +59 -45
  203. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  204. package/build/dist/Models/DatabaseModels/AIInsight.js +795 -0
  205. package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -0
  206. package/build/dist/Models/DatabaseModels/AIRun.js +274 -0
  207. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  208. package/build/dist/Models/DatabaseModels/CodeRepository.js +43 -0
  209. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  210. package/build/dist/Models/DatabaseModels/GlobalConfig.js +110 -0
  211. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  212. package/build/dist/Models/DatabaseModels/Index.js +4 -8
  213. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  214. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +304 -0
  215. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -0
  216. package/build/dist/Models/DatabaseModels/LlmLog.js +35 -0
  217. package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
  218. package/build/dist/Models/DatabaseModels/Project.js +127 -6
  219. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  220. package/build/dist/Models/DatabaseModels/Runbook.js +1 -1
  221. package/build/dist/Models/DatabaseModels/Runbook.js.map +1 -1
  222. package/build/dist/Server/API/AIAgentDataAPI.js +568 -85
  223. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  224. package/build/dist/Server/API/AIAgentTaskAPI.js +100 -44
  225. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  226. package/build/dist/Server/API/AIAgentTaskLogAPI.js +49 -25
  227. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  228. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +27 -0
  229. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -1
  230. package/build/dist/Server/API/AIInsightAPI.js +140 -0
  231. package/build/dist/Server/API/AIInsightAPI.js.map +1 -0
  232. package/build/dist/Server/API/AIInvestigationAPI.js +257 -1
  233. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  234. package/build/dist/Server/API/CodeFixRunAPI.js +181 -0
  235. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -0
  236. package/build/dist/Server/API/GitHubAPI.js +164 -2
  237. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  238. package/build/dist/Server/API/TelemetryExceptionAPI.js +148 -43
  239. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  240. package/build/dist/Server/EnvironmentConfig.js +1 -1
  241. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  242. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js +23 -0
  243. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js.map +1 -0
  244. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js +32 -0
  245. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js.map +1 -0
  246. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js +16 -0
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js.map +1 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js +16 -0
  249. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js.map +1 -0
  250. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js +24 -0
  251. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js.map +1 -0
  252. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js +16 -0
  253. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js.map +1 -0
  254. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js +24 -0
  255. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js.map +1 -0
  256. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js +24 -0
  257. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js.map +1 -0
  258. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js +24 -0
  259. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js.map +1 -0
  260. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js +18 -0
  261. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js.map +1 -0
  262. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js +18 -0
  263. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js.map +1 -0
  264. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js +32 -0
  265. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js.map +1 -0
  266. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js +18 -0
  267. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js.map +1 -0
  268. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js +125 -0
  269. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js.map +1 -0
  270. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js +62 -0
  271. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js.map +1 -0
  272. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +30 -0
  273. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  274. package/build/dist/Server/Infrastructure/Queue.js +73 -3
  275. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  276. package/build/dist/Server/Infrastructure/Semaphore.js +44 -1
  277. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  278. package/build/dist/Server/Services/AIAgentService.js +29 -0
  279. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  280. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +78 -0
  281. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -1
  282. package/build/dist/Server/Services/AIInsightService.js +164 -0
  283. package/build/dist/Server/Services/AIInsightService.js.map +1 -0
  284. package/build/dist/Server/Services/AIRunEventService.js +49 -0
  285. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  286. package/build/dist/Server/Services/AIRunService.js +221 -0
  287. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  288. package/build/dist/Server/Services/AIService.js +198 -11
  289. package/build/dist/Server/Services/AIService.js.map +1 -1
  290. package/build/dist/Server/Services/AlertService.js +4 -4
  291. package/build/dist/Server/Services/AlertService.js.map +1 -1
  292. package/build/dist/Server/Services/CodeRepositoryService.js +180 -0
  293. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  294. package/build/dist/Server/Services/GlobalConfigService.js +84 -0
  295. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  296. package/build/dist/Server/Services/IncidentService.js +149 -37
  297. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  298. package/build/dist/Server/Services/IncidentStateTimelineService.js +24 -4
  299. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  300. package/build/dist/Server/Services/Index.js +4 -4
  301. package/build/dist/Server/Services/Index.js.map +1 -1
  302. package/build/dist/Server/Services/{AIAgentTaskLogService.js → InstanceHealthLogService.js} +2 -2
  303. package/build/dist/Server/Services/InstanceHealthLogService.js.map +1 -0
  304. package/build/dist/Server/Services/LlmLogService.js +23 -0
  305. package/build/dist/Server/Services/LlmLogService.js.map +1 -1
  306. package/build/dist/Server/Services/LlmProviderService.js +96 -0
  307. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  308. package/build/dist/Server/Services/MetricBaselineService.js +65 -0
  309. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  310. package/build/dist/Server/Services/MonitorService.js +9 -1
  311. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  312. package/build/dist/Server/Services/TelemetryExceptionService.js +243 -82
  313. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  314. package/build/dist/Server/Services/TraceAggregationService.js +124 -0
  315. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  316. package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
  317. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js +240 -0
  318. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js.map +1 -0
  319. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  320. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  321. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +48 -0
  322. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -0
  323. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +174 -0
  324. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -0
  325. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +126 -0
  326. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -0
  327. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +131 -0
  328. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -0
  329. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js +99 -0
  330. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js.map +1 -0
  331. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js +245 -0
  332. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js.map +1 -0
  333. package/build/dist/Server/Utils/AI/Eval/EvalScores.js +83 -0
  334. package/build/dist/Server/Utils/AI/Eval/EvalScores.js.map +1 -0
  335. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js +12 -0
  336. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js.map +1 -0
  337. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js +439 -0
  338. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js.map +1 -0
  339. package/build/dist/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.js → SRE/AIInvestigationEngine.js} +47 -31
  340. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -0
  341. package/build/dist/Server/Utils/AI/{Sentinel/SentinelMemory.js → SRE/AIMemory.js} +5 -5
  342. package/build/dist/Server/Utils/AI/SRE/AIMemory.js.map +1 -0
  343. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.js +42 -19
  344. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -0
  345. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +226 -0
  346. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -0
  347. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +100 -0
  348. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -0
  349. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js +174 -0
  350. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js.map +1 -0
  351. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.js +60 -22
  352. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -0
  353. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.js +9 -9
  354. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -0
  355. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js +268 -0
  356. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js.map +1 -0
  357. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +226 -0
  358. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -0
  359. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js +26 -0
  360. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js.map +1 -0
  361. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js +159 -0
  362. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js.map +1 -0
  363. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +177 -0
  364. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -0
  365. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js +384 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js.map +1 -0
  367. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js +180 -0
  368. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +269 -0
  370. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +231 -0
  372. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -0
  373. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +206 -0
  374. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -0
  375. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +121 -0
  376. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -0
  377. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js +2 -0
  378. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js.map +1 -0
  379. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +148 -0
  380. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -0
  381. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +231 -0
  382. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -0
  383. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.js +102 -23
  384. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -0
  385. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +167 -0
  386. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -0
  387. package/build/dist/Server/Utils/AI/Toolbox/{SentinelActionTools.js → AIActionTools.js} +18 -2
  388. package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -0
  389. package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -2
  390. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  391. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +301 -0
  392. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -0
  393. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +240 -2
  394. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  395. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js +127 -0
  396. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js.map +1 -0
  397. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +336 -0
  398. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -0
  399. package/build/dist/Server/Utils/Execute.js.map +1 -1
  400. package/build/dist/Server/Utils/LLM/LLMService.js +125 -25
  401. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  402. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js +120 -0
  403. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js.map +1 -0
  404. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -0
  405. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  406. package/build/dist/Types/AI/AIInsightEvidence.js +2 -0
  407. package/build/dist/Types/AI/AIInsightEvidence.js.map +1 -0
  408. package/build/dist/Types/AI/AIInsightHumanVerdict.js +16 -0
  409. package/build/dist/Types/AI/AIInsightHumanVerdict.js.map +1 -0
  410. package/build/dist/Types/AI/AIInsightSeverity.js +14 -0
  411. package/build/dist/Types/AI/AIInsightSeverity.js.map +1 -0
  412. package/build/dist/Types/AI/AIInsightStatus.js +36 -0
  413. package/build/dist/Types/AI/AIInsightStatus.js.map +1 -0
  414. package/build/dist/Types/AI/AIInsightType.js +42 -0
  415. package/build/dist/Types/AI/AIInsightType.js.map +1 -0
  416. package/build/dist/Types/AI/AIRunAutoGrade.js +19 -0
  417. package/build/dist/Types/AI/AIRunAutoGrade.js.map +1 -0
  418. package/build/dist/Types/AI/AIRunEventType.js +5 -0
  419. package/build/dist/Types/AI/AIRunEventType.js.map +1 -1
  420. package/build/dist/Types/AI/AIRunHumanVerdict.js +18 -0
  421. package/build/dist/Types/AI/AIRunHumanVerdict.js.map +1 -0
  422. package/build/dist/Types/AI/AIRunType.js +6 -0
  423. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  424. package/build/dist/Types/AI/CodeFixTaskContext.js +29 -0
  425. package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -0
  426. package/build/dist/Types/AI/CodeFixTaskType.js +122 -0
  427. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -0
  428. package/build/dist/Types/AI/FixPullRequestCiStatus.js +102 -0
  429. package/build/dist/Types/AI/FixPullRequestCiStatus.js.map +1 -0
  430. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +55 -0
  431. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  432. package/build/dist/Types/Incident/IncidentMetricType.js +7 -0
  433. package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
  434. package/build/dist/Types/Monitor/CriteriaFilter.js +7 -0
  435. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  436. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
  437. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  438. package/build/dist/Types/Monitor/MonitorStep.js +28 -0
  439. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  440. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +93 -0
  441. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -0
  442. package/build/dist/Types/Monitor/MonitorType.js +15 -0
  443. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  444. package/build/dist/Types/Monitor/SqlDatabaseType.js +47 -0
  445. package/build/dist/Types/Monitor/SqlDatabaseType.js.map +1 -0
  446. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js +2 -0
  447. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js.map +1 -0
  448. package/build/dist/Types/Permission.js +10 -84
  449. package/build/dist/Types/Permission.js.map +1 -1
  450. package/build/dist/Types/Runbook/RunbookStepType.js +1 -0
  451. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  452. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  453. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  454. package/build/dist/Types/Workflow/Components/AI.js +135 -0
  455. package/build/dist/Types/Workflow/Components/AI.js.map +1 -0
  456. package/build/dist/Types/Workflow/Components.js +7 -0
  457. package/build/dist/Types/Workflow/Components.js.map +1 -1
  458. package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -1
  459. package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
  460. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +9 -0
  461. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  462. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +1 -1
  463. package/build/dist/UI/Components/Table/Table.js +28 -2
  464. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  465. package/build/dist/UI/Utils/TableColumnsToCsv.js +291 -0
  466. package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -0
  467. package/build/dist/Utils/Monitor/MonitorMetricType.js +1 -0
  468. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  469. package/package.json +1 -1
  470. package/Models/DatabaseModels/AIAgentTask.ts +0 -660
  471. package/Models/DatabaseModels/AIAgentTaskLog.ts +0 -426
  472. package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +0 -399
  473. package/Models/DatabaseModels/ServiceCodeRepository.ts +0 -647
  474. package/Server/Services/AIAgentTaskService.ts +0 -240
  475. package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +0 -39
  476. package/Server/Services/ServiceCodeRepositoryService.ts +0 -55
  477. package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +0 -146
  478. package/Types/AI/AIAgentTaskMetadata.ts +0 -25
  479. package/Types/AI/AIAgentTaskType.ts +0 -40
  480. package/build/dist/Models/DatabaseModels/AIAgentTask.js +0 -691
  481. package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +0 -1
  482. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +0 -447
  483. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +0 -1
  484. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +0 -415
  485. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +0 -1
  486. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +0 -665
  487. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +0 -1
  488. package/build/dist/Server/Services/AIAgentTaskLogService.js.map +0 -1
  489. package/build/dist/Server/Services/AIAgentTaskService.js +0 -217
  490. package/build/dist/Server/Services/AIAgentTaskService.js.map +0 -1
  491. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +0 -36
  492. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +0 -1
  493. package/build/dist/Server/Services/ServiceCodeRepositoryService.js +0 -54
  494. package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +0 -1
  495. package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +0 -1
  496. package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +0 -1
  497. package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +0 -1
  498. package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +0 -1
  499. package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +0 -1
  500. package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +0 -1
  501. package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +0 -1
  502. package/build/dist/Types/AI/AIAgentTaskMetadata.js +0 -6
  503. package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +0 -1
  504. package/build/dist/Types/AI/AIAgentTaskType.js +0 -29
  505. package/build/dist/Types/AI/AIAgentTaskType.js.map +0 -1
@@ -0,0 +1,231 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import OneUptimeDate from "../../../../Types/Date";
11
+ import AIRunType from "../../../../Types/AI/AIRunType";
12
+ import AIRunStatus from "../../../../Types/AI/AIRunStatus";
13
+ import AIRunAutoGrade from "../../../../Types/AI/AIRunAutoGrade";
14
+ import SortOrder from "../../../../Types/BaseDatabase/SortOrder";
15
+ import { IncidentFeedEventType, } from "../../../../Models/DatabaseModels/IncidentFeed";
16
+ import AIRunService from "../../../Services/AIRunService";
17
+ import IncidentService from "../../../Services/IncidentService";
18
+ import IncidentFeedService from "../../../Services/IncidentFeedService";
19
+ import AIService, { AI_INVESTIGATION_GRADING_FEATURE, } from "../../../Services/AIService";
20
+ import logger from "../../Logger";
21
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
22
+ /*
23
+ * AI SRE — on-resolve investigation grading (Phase 2 measurement layer).
24
+ *
25
+ * When an incident resolves with a human-recorded root cause AND a completed
26
+ * AI investigation exists for it, ONE constrained LLM call compares the
27
+ * investigation's posted analysis (the RootCause feed item — the only
28
+ * persisted copy, the same source the fix recipes read) with
29
+ * Incident.rootCause and stores MATCH / PARTIAL / MISMATCH on the run
30
+ * (AIRun.autoGrade + autoGradeAt). This feeds the vision §8 accuracy metrics
31
+ * and the G3 eval work.
32
+ *
33
+ * Trigger idiom mirrors IncidentPostmortemRunner: fired (fire-and-forget)
34
+ * from IncidentStateTimelineService when the incident enters a resolved
35
+ * state; never throws, never blocks the resolve. Deduped via autoGrade — a
36
+ * run is graded at most once. Budgeted: the feature is in
37
+ * AUTONOMOUS_AI_FEATURES, so the daily autonomous token budget covers it.
38
+ *
39
+ * Incidents only for now: alerts do have a rootCause column, but no
40
+ * human-authored resolution flow populates it the way incident resolution
41
+ * does — grade quality there is unproven, so the alert side is deliberately
42
+ * skipped (noted in the roadmap).
43
+ */
44
+ /*
45
+ * Persisted LlmLog label. Owned by AIService so this writer and the G4 budget
46
+ * match-list (AUTONOMOUS_AI_FEATURES) can never drift — a drift here would
47
+ * silently drop grading out of the daily budget forever.
48
+ */
49
+ const FEATURE_NAME = AI_INVESTIGATION_GRADING_FEATURE;
50
+ // Truncation caps keep the comparison call cheap and inside context limits.
51
+ const MAX_ANALYSIS_CHARS = 8000;
52
+ const MAX_ROOT_CAUSE_CHARS = 2000;
53
+ // Word-bounded token matchers (hoisted: wrap-regex and prettier disagree inline).
54
+ const MISMATCH_RE = /\bMISMATCH\b/;
55
+ const PARTIAL_RE = /\bPARTIAL\b/;
56
+ const MATCH_RE = /\bMATCH\b/;
57
+ export default class InvestigationGrader {
58
+ /*
59
+ * Pure gating decision (exported for tests): grade only when a completed
60
+ * investigation run exists, it has not been graded yet (dedupe), and the
61
+ * incident carries a non-empty human-recorded root cause to grade against.
62
+ */
63
+ static shouldGradeInvestigation(data) {
64
+ if (!data.run || !data.run.id) {
65
+ return false;
66
+ }
67
+ if (data.run.autoGrade) {
68
+ // Dedupe: a run is graded at most once.
69
+ return false;
70
+ }
71
+ if (!data.rootCause || data.rootCause.trim().length === 0) {
72
+ return false;
73
+ }
74
+ return true;
75
+ }
76
+ /*
77
+ * Defensive one-token parse (pure, exported for tests). The prompt demands
78
+ * exactly one token, but models editorialize — accept the verdict when
79
+ * exactly ONE of the three tokens appears in the response, word-bounded so
80
+ * the MATCH inside MISMATCH does not double-count. None found, or more
81
+ * than one distinct token → unparseable → null (no grade stored).
82
+ */
83
+ static parseAutoGradeToken(response) {
84
+ if (!response) {
85
+ return null;
86
+ }
87
+ const text = response.toUpperCase();
88
+ const found = [];
89
+ if (MISMATCH_RE.test(text)) {
90
+ found.push(AIRunAutoGrade.Mismatch);
91
+ }
92
+ if (PARTIAL_RE.test(text)) {
93
+ found.push(AIRunAutoGrade.Partial);
94
+ }
95
+ if (MATCH_RE.test(text)) {
96
+ found.push(AIRunAutoGrade.Match);
97
+ }
98
+ if (found.length !== 1) {
99
+ return null;
100
+ }
101
+ return found[0];
102
+ }
103
+ /*
104
+ * Entry point called (fire-and-forget) from IncidentStateTimelineService
105
+ * when an incident enters a resolved state. Never throws — all failures
106
+ * are logged and swallowed so the resolve flow can never be affected.
107
+ */
108
+ static async gradeInvestigationOnResolve(data) {
109
+ const { incidentId, projectId } = data;
110
+ try {
111
+ // The latest completed investigation for this incident (if any).
112
+ const run = await AIRunService.findOneBy({
113
+ query: {
114
+ runType: AIRunType.Investigation,
115
+ status: AIRunStatus.Completed,
116
+ triggeredByIncidentId: incidentId,
117
+ },
118
+ select: {
119
+ _id: true,
120
+ autoGrade: true,
121
+ },
122
+ sort: { createdAt: SortOrder.Descending },
123
+ props: { isRoot: true },
124
+ });
125
+ if (!run) {
126
+ // Nothing to grade — skip before loading anything else.
127
+ return;
128
+ }
129
+ const incident = await IncidentService.findOneById({
130
+ id: incidentId,
131
+ select: {
132
+ _id: true,
133
+ rootCause: true,
134
+ },
135
+ props: { isRoot: true },
136
+ });
137
+ if (!this.shouldGradeInvestigation({
138
+ run,
139
+ rootCause: incident === null || incident === void 0 ? void 0 : incident.rootCause,
140
+ })) {
141
+ return;
142
+ }
143
+ /*
144
+ * The posted analysis: the latest RootCause feed item — the AI's
145
+ * postAnalysis is its only writer, and it is the only persisted copy
146
+ * of the analysis (the same source the fix recipes read).
147
+ */
148
+ const feedItem = await IncidentFeedService.findOneBy({
149
+ query: {
150
+ incidentId: incidentId,
151
+ incidentFeedEventType: IncidentFeedEventType.RootCause,
152
+ },
153
+ select: {
154
+ feedInfoInMarkdown: true,
155
+ },
156
+ sort: {
157
+ createdAt: SortOrder.Descending,
158
+ },
159
+ props: { isRoot: true },
160
+ });
161
+ const analysisMarkdown = ((feedItem === null || feedItem === void 0 ? void 0 : feedItem.feedInfoInMarkdown) || "").trim();
162
+ if (!analysisMarkdown) {
163
+ logger.debug(`AI grading: no posted analysis found for incident ${incidentId.toString()} — skipping.`);
164
+ return;
165
+ }
166
+ const rootCause = incident.rootCause.trim();
167
+ const response = await AIService.executeWithLogging({
168
+ projectId,
169
+ feature: FEATURE_NAME,
170
+ incidentId,
171
+ aiRunId: run.id,
172
+ // Grades are stored on the run; no need to persist prompt previews.
173
+ storeContentPreviews: false,
174
+ temperature: 0,
175
+ maxTokens: 20,
176
+ messages: [
177
+ {
178
+ role: "system",
179
+ content: [
180
+ "You grade an AI incident investigation against the root cause humans recorded when they resolved the incident.",
181
+ "Respond with EXACTLY one token and nothing else:",
182
+ "MATCH — the investigation identified the same root cause.",
183
+ "PARTIAL — the investigation identified part of the cause, or a closely related cause.",
184
+ "MISMATCH — the investigation pointed somewhere else.",
185
+ ].join("\n"),
186
+ },
187
+ {
188
+ role: "user",
189
+ content: [
190
+ "Human-recorded root cause:",
191
+ '"""',
192
+ rootCause.substring(0, MAX_ROOT_CAUSE_CHARS),
193
+ '"""',
194
+ "",
195
+ "AI investigation analysis:",
196
+ '"""',
197
+ analysisMarkdown.substring(0, MAX_ANALYSIS_CHARS),
198
+ '"""',
199
+ "",
200
+ "One token only: MATCH, PARTIAL, or MISMATCH.",
201
+ ].join("\n"),
202
+ },
203
+ ],
204
+ });
205
+ const grade = this.parseAutoGradeToken(response.content);
206
+ if (!grade) {
207
+ logger.warn(`AI grading: unparseable grade response for incident ${incidentId.toString()} (run ${run.id.toString()}) — no grade stored.`);
208
+ return;
209
+ }
210
+ await AIRunService.updateOneById({
211
+ id: run.id,
212
+ data: {
213
+ autoGrade: grade,
214
+ autoGradeAt: OneUptimeDate.getCurrentDate(),
215
+ },
216
+ props: { isRoot: true },
217
+ });
218
+ logger.debug(`AI grading: incident ${incidentId.toString()} investigation graded ${grade}.`);
219
+ }
220
+ catch (error) {
221
+ logger.error(`AI grading: failed for incident ${incidentId.toString()}: ${error}`);
222
+ }
223
+ }
224
+ }
225
+ __decorate([
226
+ CaptureSpan(),
227
+ __metadata("design:type", Function),
228
+ __metadata("design:paramtypes", [Object]),
229
+ __metadata("design:returntype", Promise)
230
+ ], InvestigationGrader, "gradeInvestigationOnResolve", null);
231
+ //# sourceMappingURL=InvestigationGrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvestigationGrader.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/InvestigationGrader.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import QueryHelper from "../../../Types/Database/QueryHelper";
19
19
  import logger from "../../Logger";
20
20
  import CaptureSpan from "../../Telemetry/CaptureSpan";
21
21
  /*
22
- * Sentinel — the durable investigation queue (Phase 2's first item; Q1
22
+ * AI SRE — the durable investigation queue (Phase 2's first item; Q1
23
23
  * decided as the DB-claim pattern on AIRun rows, no new infrastructure).
24
24
  *
25
25
  * The problem it replaces: investigations ran as detached in-process
@@ -64,6 +64,29 @@ export const DEFAULT_MAX_CONCURRENT_INVESTIGATIONS = 3;
64
64
  */
65
65
  const MIN_CONCURRENT_INVESTIGATIONS = 1;
66
66
  const MAX_CONCURRENT_INVESTIGATIONS = 25;
67
+ /*
68
+ * Lane priority. Two kinds of run share this queue and the per-project
69
+ * concurrency cap above:
70
+ * - the INTERACTIVE lane (incident/alert RCA) — a human is waiting;
71
+ * - the PREVENTIVE lane (AI-insight triage, identified by
72
+ * triggeredByAiInsightId) — nobody is waiting, and one scan tick
73
+ * can file up to MAX_NEW_INSIGHTS_PER_PROJECT_PER_SCAN (10) of them.
74
+ *
75
+ * Without a sub-cap the preventive lane can hold every slot, and since the
76
+ * poller drains oldest-first, an incident that fires after a scan queues
77
+ * BEHIND that backlog — the exact RCA latency the product promises.
78
+ *
79
+ * So the preventive lane may hold at most (cap - RESERVED) slots: at least
80
+ * one slot is always unreachable by triage. Combined with the inline kick
81
+ * that enqueue() fires for every run, that reserved slot is enough on its
82
+ * own — an incident/alert enqueue calls processRun immediately, passes the
83
+ * gates against a cap that triage cannot have saturated, and dispatches
84
+ * without ever touching the poller (so it can also never be TTL-expired
85
+ * behind triage). Splitting the poller's oldest-first query into two lane
86
+ * queries would therefore only re-order runs that are ALREADY late, at the
87
+ * cost of an extra query every tick — deliberately not done.
88
+ */
89
+ export const INSIGHT_TRIAGE_RESERVED_SLOTS = 1;
67
90
  /*
68
91
  * A first-pass RCA is only useful while the incident is fresh. Queued runs
69
92
  * older than this are expired rather than run late — this also caps queue
@@ -72,12 +95,16 @@ const MAX_CONCURRENT_INVESTIGATIONS = 25;
72
95
  export const QUEUE_TTL_MINUTES = 30;
73
96
  // How many queued runs one poller tick will try to claim.
74
97
  const POLLER_BATCH_SIZE = 10;
75
- export default class SentinelInvestigationQueue {
98
+ export default class AIInvestigationQueue {
76
99
  /*
77
100
  * Record the durable intent to investigate, then try to process it
78
101
  * immediately (detached — the poller is the safety net if this pod dies).
79
102
  * Callers have already passed the subject-specific gates (opt-in,
80
103
  * severity floor, dedupe window).
104
+ *
105
+ * Returns the created run's id (so subject rows can link back to it), or
106
+ * null when the enqueue was quiet-skipped (budget) or failed — enqueue
107
+ * itself never throws.
81
108
  */
82
109
  static async enqueue(data) {
83
110
  const { projectId } = data;
@@ -89,13 +116,13 @@ export default class SentinelInvestigationQueue {
89
116
  try {
90
117
  const budget = await AIService.getAutonomousDailyBudgetStatus(projectId);
91
118
  if (budget.exhausted) {
92
- logger.debug(`Sentinel: not enqueueing investigation for project ${projectId.toString()} — daily autonomous token budget exhausted (${budget.usedTokensToday} of ${budget.limitInTokens} tokens used today).`);
93
- return;
119
+ logger.debug(`AI: not enqueueing investigation for project ${projectId.toString()} — daily autonomous token budget exhausted (${budget.usedTokensToday} of ${budget.limitInTokens} tokens used today).`);
120
+ return null;
94
121
  }
95
122
  }
96
123
  catch (error) {
97
- logger.error(`Sentinel: budget check failed, not enqueueing investigation: ${error}`);
98
- return;
124
+ logger.error(`AI: budget check failed, not enqueueing investigation: ${error}`);
125
+ return null;
99
126
  }
100
127
  const run = new AIRun();
101
128
  run.projectId = projectId;
@@ -110,6 +137,9 @@ export default class SentinelInvestigationQueue {
110
137
  if (data.subjectMonitorId) {
111
138
  run.monitorId = data.subjectMonitorId;
112
139
  }
140
+ if (data.subjectAIInsightId) {
141
+ run.triggeredByAiInsightId = data.subjectAIInsightId;
142
+ }
113
143
  let createdRun;
114
144
  try {
115
145
  createdRun = await AIRunService.create({
@@ -118,8 +148,8 @@ export default class SentinelInvestigationQueue {
118
148
  });
119
149
  }
120
150
  catch (error) {
121
- logger.error(`Sentinel: failed to enqueue investigation run: ${error}`);
122
- return;
151
+ logger.error(`AI: failed to enqueue investigation run: ${error}`);
152
+ return null;
123
153
  }
124
154
  // Inline kick — preserves the 1-3 minute RCA latency on the happy path.
125
155
  this.processRun({
@@ -128,10 +158,12 @@ export default class SentinelInvestigationQueue {
128
158
  attemptCount: 0,
129
159
  triggeredByIncidentId: data.subjectIncidentId,
130
160
  triggeredByAlertId: data.subjectAlertId,
161
+ triggeredByAiInsightId: data.subjectAIInsightId,
131
162
  }).catch((error) => {
132
163
  var _a;
133
- logger.error(`Sentinel: inline processing of queued run ${(_a = createdRun.id) === null || _a === void 0 ? void 0 : _a.toString()} failed: ${error}`);
164
+ logger.error(`AI: inline processing of queued run ${(_a = createdRun.id) === null || _a === void 0 ? void 0 : _a.toString()} failed: ${error}`);
134
165
  });
166
+ return createdRun.id || null;
135
167
  }
136
168
  /*
137
169
  * Claim a queued run and execute it to completion. Safe to call from
@@ -151,7 +183,7 @@ export default class SentinelInvestigationQueue {
151
183
  await this.dispatch(run, attempt);
152
184
  }
153
185
  catch (error) {
154
- logger.error(`Sentinel: failed to process queued run ${run.id.toString()}: ${error}`);
186
+ logger.error(`AI: failed to process queued run ${run.id.toString()}: ${error}`);
155
187
  }
156
188
  }
157
189
  /*
@@ -198,6 +230,7 @@ export default class SentinelInvestigationQueue {
198
230
  attemptCount: true,
199
231
  triggeredByIncidentId: true,
200
232
  triggeredByAlertId: true,
233
+ triggeredByAiInsightId: true,
201
234
  },
202
235
  sort: { createdAt: SortOrder.Ascending },
203
236
  limit: POLLER_BATCH_SIZE,
@@ -211,6 +244,7 @@ export default class SentinelInvestigationQueue {
211
244
  attemptCount: queued.attemptCount || 0,
212
245
  triggeredByIncidentId: queued.triggeredByIncidentId,
213
246
  triggeredByAlertId: queued.triggeredByAlertId,
247
+ triggeredByAiInsightId: queued.triggeredByAiInsightId,
214
248
  };
215
249
  try {
216
250
  if (!(await this.passesClaimGates(ref))) {
@@ -225,11 +259,11 @@ export default class SentinelInvestigationQueue {
225
259
  * the sweeper owns recovery if this pod dies mid-flight.
226
260
  */
227
261
  this.dispatch(ref, attempt).catch((error) => {
228
- logger.error(`Sentinel: detached execution of run ${ref.id.toString()} failed: ${error}`);
262
+ logger.error(`AI: detached execution of run ${ref.id.toString()} failed: ${error}`);
229
263
  });
230
264
  }
231
265
  catch (error) {
232
- logger.error(`Sentinel: poller failed on queued run ${ref.id.toString()}: ${error}`);
266
+ logger.error(`AI: poller failed on queued run ${ref.id.toString()}: ${error}`);
233
267
  }
234
268
  }
235
269
  }
@@ -251,7 +285,7 @@ export default class SentinelInvestigationQueue {
251
285
  },
252
286
  });
253
287
  if (requeued > 0) {
254
- logger.debug(`Sentinel: requeued run ${data.aiRunId.toString()} after attempt ${data.attemptCount} failed.`);
288
+ logger.debug(`AI: requeued run ${data.aiRunId.toString()} after attempt ${data.attemptCount} failed.`);
255
289
  }
256
290
  return;
257
291
  }
@@ -296,9 +330,10 @@ export default class SentinelInvestigationQueue {
296
330
  return "stale";
297
331
  }
298
332
  /*
299
- * The claim-time cost gates: concurrency cap and daily budget. A run
300
- * failing these stays Queued — the poller retries and the TTL expires
301
- * what never fits. Fails cheap (skip) on gate errors.
333
+ * The claim-time cost gates: concurrency cap, the preventive-lane sub-cap
334
+ * and the daily budget. A run failing these stays Queued — the poller
335
+ * retries and the TTL expires what never fits. Fails cheap (skip) on gate
336
+ * errors.
302
337
  */
303
338
  static async passesClaimGates(run) {
304
339
  var _a;
@@ -318,12 +353,38 @@ export default class SentinelInvestigationQueue {
318
353
  props: { isRoot: true },
319
354
  })).toNumber();
320
355
  if (runningCount >= concurrencyCap) {
321
- logger.debug(`Sentinel: leaving run ${run.id.toString()} queued — ${runningCount} investigations already running (cap: ${concurrencyCap}).`);
356
+ logger.debug(`AI: leaving run ${run.id.toString()} queued — ${runningCount} investigations already running (cap: ${concurrencyCap}).`);
322
357
  return false;
323
358
  }
359
+ /*
360
+ * The preventive lane's sub-cap: insight triage may never occupy the
361
+ * slot(s) reserved for incident/alert RCA (see
362
+ * INSIGHT_TRIAGE_RESERVED_SLOTS). Floored at 1 so a project running at
363
+ * the minimum cap of 1 still triages its insights (slower, one at a
364
+ * time) instead of deadlocking the lane entirely — the interactive lane
365
+ * keeps its priority through the global cap check above, which a single
366
+ * running triage run cannot outlast for long (triage is read-only and
367
+ * short).
368
+ */
369
+ if (run.triggeredByAiInsightId) {
370
+ const triageCap = Math.max(1, concurrencyCap - INSIGHT_TRIAGE_RESERVED_SLOTS);
371
+ const runningTriageCount = (await AIRunService.countBy({
372
+ query: {
373
+ projectId: run.projectId,
374
+ runType: AIRunType.Investigation,
375
+ status: AIRunStatus.Running,
376
+ triggeredByAiInsightId: QueryHelper.notNull(),
377
+ },
378
+ props: { isRoot: true },
379
+ })).toNumber();
380
+ if (runningTriageCount >= triageCap) {
381
+ logger.debug(`AI: leaving insight triage run ${run.id.toString()} queued — ${runningTriageCount} triage runs already running (triage lane cap: ${triageCap} of ${concurrencyCap}).`);
382
+ return false;
383
+ }
384
+ }
324
385
  const budget = await AIService.getAutonomousDailyBudgetStatus(run.projectId);
325
386
  if (budget.exhausted) {
326
- logger.debug(`Sentinel: leaving run ${run.id.toString()} queued — daily autonomous token budget exhausted.`);
387
+ logger.debug(`AI: leaving run ${run.id.toString()} queued — daily autonomous token budget exhausted.`);
327
388
  return false;
328
389
  }
329
390
  return true;
@@ -383,6 +444,24 @@ export default class SentinelInvestigationQueue {
383
444
  });
384
445
  return;
385
446
  }
447
+ /*
448
+ * AI-insight triage runs carry their subject in
449
+ * triggeredByAiInsightId — they must be recognized here as
450
+ * subject-BEARING, or the fallthrough below would fail every one of
451
+ * them as subject-less.
452
+ */
453
+ if (run.triggeredByAiInsightId) {
454
+ const insightTriageRunner =
455
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
456
+ require("./Insights/InsightTriageRunner").default;
457
+ await insightTriageRunner.executeTriage({
458
+ aiRunId: run.id,
459
+ projectId: run.projectId,
460
+ sentinelInsightId: run.triggeredByAiInsightId,
461
+ attemptCount: attempt,
462
+ });
463
+ return;
464
+ }
386
465
  // A queued investigation without a subject cannot be executed.
387
466
  await AIRunService.attemptStatusTransition({
388
467
  aiRunId: run.id,
@@ -400,29 +479,29 @@ __decorate([
400
479
  __metadata("design:type", Function),
401
480
  __metadata("design:paramtypes", [Object]),
402
481
  __metadata("design:returntype", Promise)
403
- ], SentinelInvestigationQueue, "enqueue", null);
482
+ ], AIInvestigationQueue, "enqueue", null);
404
483
  __decorate([
405
484
  CaptureSpan(),
406
485
  __metadata("design:type", Function),
407
486
  __metadata("design:paramtypes", [Object]),
408
487
  __metadata("design:returntype", Promise)
409
- ], SentinelInvestigationQueue, "processRun", null);
488
+ ], AIInvestigationQueue, "processRun", null);
410
489
  __decorate([
411
490
  CaptureSpan(),
412
491
  __metadata("design:type", Function),
413
492
  __metadata("design:paramtypes", []),
414
493
  __metadata("design:returntype", Promise)
415
- ], SentinelInvestigationQueue, "processQueuedRuns", null);
494
+ ], AIInvestigationQueue, "processQueuedRuns", null);
416
495
  __decorate([
417
496
  CaptureSpan(),
418
497
  __metadata("design:type", Function),
419
498
  __metadata("design:paramtypes", [Object]),
420
499
  __metadata("design:returntype", Promise)
421
- ], SentinelInvestigationQueue, "failOrRequeue", null);
500
+ ], AIInvestigationQueue, "failOrRequeue", null);
422
501
  __decorate([
423
502
  CaptureSpan(),
424
503
  __metadata("design:type", Function),
425
504
  __metadata("design:paramtypes", [Object]),
426
505
  __metadata("design:returntype", Promise)
427
- ], SentinelInvestigationQueue, "requeueOrMarkStale", null);
506
+ ], AIInvestigationQueue, "requeueOrMarkStale", null);
428
507
  //# sourceMappingURL=InvestigationQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvestigationQueue.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/InvestigationQueue.ts"],"names":[],"mappings":"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"}