@oneuptime/common 11.5.4 → 11.5.6

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 (539) 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/Models/DatabaseModels/User.ts +47 -0
  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/1784048917994-AddCreatedByUserToUser.ts +23 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +32 -0
  39. package/Server/Infrastructure/Queue.ts +82 -4
  40. package/Server/Infrastructure/Semaphore.ts +62 -1
  41. package/Server/Middleware/MasterAdminAuthorization.ts +37 -0
  42. package/Server/Middleware/ProjectAuthorization.ts +40 -15
  43. package/Server/Services/AIAgentService.ts +32 -0
  44. package/Server/Services/AIAgentTaskPullRequestService.ts +117 -0
  45. package/Server/Services/AIInsightService.ts +174 -0
  46. package/Server/Services/AIRunEventService.ts +63 -0
  47. package/Server/Services/AIRunService.ts +259 -1
  48. package/Server/Services/AIService.ts +249 -7
  49. package/Server/Services/AlertService.ts +4 -4
  50. package/Server/Services/CodeRepositoryService.ts +209 -0
  51. package/Server/Services/GlobalConfigService.ts +148 -0
  52. package/Server/Services/IncidentService.ts +183 -38
  53. package/Server/Services/IncidentStateTimelineService.ts +24 -4
  54. package/Server/Services/Index.ts +4 -4
  55. package/Server/Services/{AIAgentTaskLogService.ts → InstanceHealthLogService.ts} +1 -1
  56. package/Server/Services/LlmLogService.ts +27 -0
  57. package/Server/Services/LlmProviderService.ts +108 -0
  58. package/Server/Services/MetricBaselineService.ts +123 -0
  59. package/Server/Services/MonitorService.ts +15 -0
  60. package/Server/Services/TeamMemberService.ts +2 -0
  61. package/Server/Services/TelemetryExceptionService.ts +323 -116
  62. package/Server/Services/TraceAggregationService.ts +176 -0
  63. package/Server/Services/UserService.ts +10 -0
  64. package/Server/Types/Workflow/ComponentCode.ts +6 -0
  65. package/Server/Types/Workflow/Components/AI/GenerateText.ts +326 -0
  66. package/Server/Types/Workflow/Components/Index.ts +2 -0
  67. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +1 -1
  68. package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +71 -0
  69. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +243 -0
  70. package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +131 -0
  71. package/Server/Utils/AI/CodeFix/FixRunBudget.ts +148 -0
  72. package/Server/Utils/AI/CodeFix/OpenPullRequestCap.ts +117 -0
  73. package/Server/Utils/AI/Eval/EvalCorpus.ts +369 -0
  74. package/Server/Utils/AI/Eval/EvalScores.ts +172 -0
  75. package/Server/Utils/AI/Eval/ReplayInvestigation.ts +87 -0
  76. package/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.ts +676 -0
  77. package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts} +58 -37
  78. package/Server/Utils/AI/{Sentinel/SentinelMemory.ts → SRE/AIMemory.ts} +3 -3
  79. package/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.ts +50 -20
  80. package/Server/Utils/AI/SRE/ConfidenceSignal.ts +293 -0
  81. package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +115 -0
  82. package/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts +223 -0
  83. package/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.ts +71 -21
  84. package/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.ts +8 -8
  85. package/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.ts +364 -0
  86. package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +317 -0
  87. package/Server/Utils/AI/SRE/Insights/Detectors/Index.ts +27 -0
  88. package/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.ts +221 -0
  89. package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +238 -0
  90. package/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts +521 -0
  91. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +242 -0
  92. package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +290 -0
  93. package/Server/Utils/AI/SRE/Insights/InsightStore.ts +283 -0
  94. package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +242 -0
  95. package/Server/Utils/AI/SRE/Insights/Triage.ts +162 -0
  96. package/Server/Utils/AI/SRE/Insights/Types.ts +49 -0
  97. package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +212 -0
  98. package/Server/Utils/AI/SRE/InvestigationGrader.ts +282 -0
  99. package/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.ts +114 -19
  100. package/Server/Utils/AI/{Sentinel → SRE}/README.md +4 -4
  101. package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +172 -0
  102. package/Server/Utils/AI/Toolbox/{SentinelActionTools.ts → AIActionTools.ts} +22 -1
  103. package/Server/Utils/AI/Toolbox/Index.ts +2 -2
  104. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +526 -0
  105. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +319 -1
  106. package/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.ts +221 -0
  107. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +571 -0
  108. package/Server/Utils/Execute.ts +2 -1
  109. package/Server/Utils/LLM/LLMService.ts +160 -30
  110. package/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.ts +152 -0
  111. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +29 -0
  112. package/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.ts +16 -6
  113. package/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.ts +14 -0
  114. package/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.ts +14 -3
  115. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +130 -12
  116. package/Tests/Server/Infrastructure/Queue.test.ts +227 -0
  117. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +159 -0
  118. package/Tests/Server/Services/AIAgentTaskPullRequestOutcomeStats.test.ts +154 -0
  119. package/Tests/Server/Services/AIInsightService.test.ts +324 -0
  120. package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +401 -0
  121. package/Tests/Server/Services/AIRunHumanVerdict.test.ts +161 -0
  122. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +95 -5
  123. package/Tests/Server/Services/AIServiceProjectAccess.test.ts +259 -0
  124. package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +249 -0
  125. package/Tests/Server/Services/FixPerformanceTaskTrigger.test.ts +274 -0
  126. package/Tests/Server/Services/GlobalConfigService.test.ts +80 -0
  127. package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +1 -1
  128. package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +313 -0
  129. package/Tests/Server/Services/LlmProviderProjectOwned.test.ts +132 -0
  130. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +405 -0
  131. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +322 -0
  132. package/Tests/Server/Services/TraceServiceLatencyProfile.test.ts +278 -0
  133. package/Tests/Server/Types/Workflow/Components/AIGenerateText.test.ts +722 -0
  134. package/Tests/Server/Utils/AI/{SentinelAlertGating.test.ts → AIAlertGating.test.ts} +19 -19
  135. package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +362 -0
  136. package/Tests/Server/Utils/AI/{SentinelInvestigationQueue.test.ts → AIInvestigationQueue.test.ts} +19 -19
  137. package/Tests/Server/Utils/AI/CodeAgentWorkspaceGuard.test.ts +138 -0
  138. package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +335 -0
  139. package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +134 -0
  140. package/Tests/Server/Utils/AI/EvalCorpus.test.ts +209 -0
  141. package/Tests/Server/Utils/AI/EvalScores.test.ts +343 -0
  142. package/Tests/Server/Utils/AI/FixRunBudget.test.ts +218 -0
  143. package/Tests/Server/Utils/AI/Insights/ErrorLogSpikeDetector.test.ts +437 -0
  144. package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +287 -0
  145. package/Tests/Server/Utils/AI/Insights/InsightDetectorsIndex.test.ts +34 -0
  146. package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +572 -0
  147. package/Tests/Server/Utils/AI/Insights/InsightNeverThrowsHardening.test.ts +344 -0
  148. package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +720 -0
  149. package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +467 -0
  150. package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +370 -0
  151. package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +210 -0
  152. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +221 -0
  153. package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +328 -0
  154. package/Tests/Server/Utils/AI/Insights/MetricBaselineDrift.test.ts +182 -0
  155. package/Tests/Server/Utils/AI/Insights/MetricDriftDetector.test.ts +280 -0
  156. package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +259 -0
  157. package/Tests/Server/Utils/AI/Insights/TraceLatencyRegressionDetector.test.ts +770 -0
  158. package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +343 -0
  159. package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +307 -0
  160. package/Tests/Server/Utils/AI/OpenPullRequestCap.test.ts +170 -0
  161. package/Tests/Server/Utils/AI/SpanTreeAnalyzer.test.ts +559 -0
  162. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +158 -0
  163. package/Tests/Server/Utils/GitHubCheckRunsConclusion.test.ts +100 -0
  164. package/Tests/Server/Utils/GitHubPullRequestStateMapping.test.ts +50 -0
  165. package/Tests/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.test.ts +266 -0
  166. package/Tests/Server/Utils/Monitor/MonitorCriteriaExpectationBuilderUnits.test.ts +553 -0
  167. package/Tests/Server/Utils/Monitor/MonitorCriteriaMessageBuilderUnits.test.ts +590 -0
  168. package/Tests/Server/Utils/Monitor/MonitorCriteriaMessageFormatterUnits.test.ts +254 -0
  169. package/Tests/Server/Utils/Monitor/MonitorCriteriaObservationBuilderUnits.test.ts +821 -0
  170. package/Tests/Server/Utils/ServiceRepoLinkSuggester.test.ts +167 -0
  171. package/Tests/Server/Utils/StackTraceRepoResolver.test.ts +527 -0
  172. package/Tests/Types/AI/AIChatPermissionMode.test.ts +112 -0
  173. package/Tests/Types/AI/CodeFixTaskType.test.ts +152 -0
  174. package/Tests/Types/AI/FixPullRequestCiStatus.test.ts +181 -0
  175. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +110 -0
  176. package/Tests/Types/Monitor/SqlDatabaseType.test.ts +55 -0
  177. package/Tests/Types/Workflow/AIGenerateTextMetadata.test.ts +180 -0
  178. package/Tests/UI/Components/TableBulkCsvExport.test.tsx +168 -0
  179. package/Tests/UI/Utils/TableColumnsToCsv.test.ts +523 -0
  180. package/Types/AI/AIChatTypes.ts +8 -0
  181. package/Types/AI/AIInsightEvidence.ts +77 -0
  182. package/Types/AI/AIInsightHumanVerdict.ts +15 -0
  183. package/Types/AI/AIInsightSeverity.ts +13 -0
  184. package/Types/AI/AIInsightStatus.ts +38 -0
  185. package/Types/AI/AIInsightType.ts +41 -0
  186. package/Types/AI/AIRunAutoGrade.ts +18 -0
  187. package/Types/AI/AIRunEventType.ts +5 -0
  188. package/Types/AI/AIRunHumanVerdict.ts +17 -0
  189. package/Types/AI/AIRunType.ts +6 -0
  190. package/Types/AI/CodeFixTaskContext.ts +88 -0
  191. package/Types/AI/CodeFixTaskType.ts +132 -0
  192. package/Types/AI/FixPullRequestCiStatus.ts +132 -0
  193. package/Types/BaseDatabase/AggregationIntervalUtil.ts +67 -0
  194. package/Types/Incident/IncidentMetricType.ts +7 -0
  195. package/Types/Monitor/CriteriaFilter.ts +8 -0
  196. package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
  197. package/Types/Monitor/MonitorStep.ts +38 -0
  198. package/Types/Monitor/MonitorStepSqlMonitor.ts +141 -0
  199. package/Types/Monitor/MonitorType.ts +17 -0
  200. package/Types/Monitor/SqlDatabaseType.ts +49 -0
  201. package/Types/Monitor/SqlMonitor/SqlMonitorResponse.ts +28 -0
  202. package/Types/Permission.ts +11 -95
  203. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  204. package/Types/Runbook/RunbookStep.ts +26 -2
  205. package/Types/Runbook/RunbookStepType.ts +1 -0
  206. package/Types/Workflow/Component.ts +13 -0
  207. package/Types/Workflow/ComponentID.ts +1 -0
  208. package/Types/Workflow/Components/AI.ts +148 -0
  209. package/Types/Workflow/Components.ts +8 -0
  210. package/UI/Components/AI/GenerateFromAIModal.tsx +1 -1
  211. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +11 -0
  212. package/UI/Components/MoreMenu/MoreMenu.tsx +1 -1
  213. package/UI/Components/Table/Table.tsx +38 -2
  214. package/UI/Utils/TableColumnsToCsv.ts +385 -0
  215. package/Utils/Monitor/MonitorMetricType.ts +1 -0
  216. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +59 -45
  217. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  218. package/build/dist/Models/DatabaseModels/AIInsight.js +795 -0
  219. package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -0
  220. package/build/dist/Models/DatabaseModels/AIRun.js +274 -0
  221. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  222. package/build/dist/Models/DatabaseModels/CodeRepository.js +43 -0
  223. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  224. package/build/dist/Models/DatabaseModels/GlobalConfig.js +110 -0
  225. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  226. package/build/dist/Models/DatabaseModels/Index.js +4 -8
  227. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  228. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +304 -0
  229. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -0
  230. package/build/dist/Models/DatabaseModels/LlmLog.js +35 -0
  231. package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
  232. package/build/dist/Models/DatabaseModels/Project.js +127 -6
  233. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  234. package/build/dist/Models/DatabaseModels/Runbook.js +1 -1
  235. package/build/dist/Models/DatabaseModels/Runbook.js.map +1 -1
  236. package/build/dist/Models/DatabaseModels/User.js +46 -0
  237. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  238. package/build/dist/Server/API/AIAgentDataAPI.js +568 -85
  239. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  240. package/build/dist/Server/API/AIAgentTaskAPI.js +100 -44
  241. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  242. package/build/dist/Server/API/AIAgentTaskLogAPI.js +49 -25
  243. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  244. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +27 -0
  245. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -1
  246. package/build/dist/Server/API/AIInsightAPI.js +140 -0
  247. package/build/dist/Server/API/AIInsightAPI.js.map +1 -0
  248. package/build/dist/Server/API/AIInvestigationAPI.js +257 -1
  249. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  250. package/build/dist/Server/API/CodeFixRunAPI.js +181 -0
  251. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -0
  252. package/build/dist/Server/API/GitHubAPI.js +164 -2
  253. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  254. package/build/dist/Server/API/TelemetryExceptionAPI.js +148 -43
  255. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  256. package/build/dist/Server/EnvironmentConfig.js +1 -1
  257. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  258. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js +23 -0
  259. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js.map +1 -0
  260. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js +32 -0
  261. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js.map +1 -0
  262. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js +16 -0
  263. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js.map +1 -0
  264. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js +16 -0
  265. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js.map +1 -0
  266. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js +24 -0
  267. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js.map +1 -0
  268. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js +16 -0
  269. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js.map +1 -0
  270. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js +24 -0
  271. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js.map +1 -0
  272. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js +24 -0
  273. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js.map +1 -0
  274. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js +24 -0
  275. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js.map +1 -0
  276. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js +18 -0
  277. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js.map +1 -0
  278. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js +18 -0
  279. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js.map +1 -0
  280. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js +32 -0
  281. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js.map +1 -0
  282. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js +18 -0
  283. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js.map +1 -0
  284. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js +125 -0
  285. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js.map +1 -0
  286. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js +62 -0
  287. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js.map +1 -0
  288. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784048917994-AddCreatedByUserToUser.js +18 -0
  289. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784048917994-AddCreatedByUserToUser.js.map +1 -0
  290. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +32 -0
  291. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  292. package/build/dist/Server/Infrastructure/Queue.js +73 -3
  293. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  294. package/build/dist/Server/Infrastructure/Semaphore.js +44 -1
  295. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  296. package/build/dist/Server/Middleware/MasterAdminAuthorization.js +26 -0
  297. package/build/dist/Server/Middleware/MasterAdminAuthorization.js.map +1 -1
  298. package/build/dist/Server/Middleware/ProjectAuthorization.js +40 -14
  299. package/build/dist/Server/Middleware/ProjectAuthorization.js.map +1 -1
  300. package/build/dist/Server/Services/AIAgentService.js +29 -0
  301. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  302. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +78 -0
  303. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -1
  304. package/build/dist/Server/Services/AIInsightService.js +164 -0
  305. package/build/dist/Server/Services/AIInsightService.js.map +1 -0
  306. package/build/dist/Server/Services/AIRunEventService.js +49 -0
  307. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  308. package/build/dist/Server/Services/AIRunService.js +221 -0
  309. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  310. package/build/dist/Server/Services/AIService.js +198 -11
  311. package/build/dist/Server/Services/AIService.js.map +1 -1
  312. package/build/dist/Server/Services/AlertService.js +4 -4
  313. package/build/dist/Server/Services/AlertService.js.map +1 -1
  314. package/build/dist/Server/Services/CodeRepositoryService.js +180 -0
  315. package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
  316. package/build/dist/Server/Services/GlobalConfigService.js +84 -0
  317. package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
  318. package/build/dist/Server/Services/IncidentService.js +149 -37
  319. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  320. package/build/dist/Server/Services/IncidentStateTimelineService.js +24 -4
  321. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  322. package/build/dist/Server/Services/Index.js +4 -4
  323. package/build/dist/Server/Services/Index.js.map +1 -1
  324. package/build/dist/Server/Services/{AIAgentTaskLogService.js → InstanceHealthLogService.js} +2 -2
  325. package/build/dist/Server/Services/InstanceHealthLogService.js.map +1 -0
  326. package/build/dist/Server/Services/LlmLogService.js +23 -0
  327. package/build/dist/Server/Services/LlmLogService.js.map +1 -1
  328. package/build/dist/Server/Services/LlmProviderService.js +96 -0
  329. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  330. package/build/dist/Server/Services/MetricBaselineService.js +65 -0
  331. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  332. package/build/dist/Server/Services/MonitorService.js +9 -1
  333. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  334. package/build/dist/Server/Services/TeamMemberService.js +2 -0
  335. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  336. package/build/dist/Server/Services/TelemetryExceptionService.js +243 -82
  337. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  338. package/build/dist/Server/Services/TraceAggregationService.js +124 -0
  339. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  340. package/build/dist/Server/Services/UserService.js +8 -0
  341. package/build/dist/Server/Services/UserService.js.map +1 -1
  342. package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
  343. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js +240 -0
  344. package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js.map +1 -0
  345. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  346. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  347. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +48 -0
  348. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -0
  349. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +174 -0
  350. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -0
  351. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +126 -0
  352. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -0
  353. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +131 -0
  354. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -0
  355. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js +99 -0
  356. package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js.map +1 -0
  357. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js +245 -0
  358. package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js.map +1 -0
  359. package/build/dist/Server/Utils/AI/Eval/EvalScores.js +83 -0
  360. package/build/dist/Server/Utils/AI/Eval/EvalScores.js.map +1 -0
  361. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js +12 -0
  362. package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js.map +1 -0
  363. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js +439 -0
  364. package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js.map +1 -0
  365. package/build/dist/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.js → SRE/AIInvestigationEngine.js} +47 -31
  366. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -0
  367. package/build/dist/Server/Utils/AI/{Sentinel/SentinelMemory.js → SRE/AIMemory.js} +5 -5
  368. package/build/dist/Server/Utils/AI/SRE/AIMemory.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.js +42 -19
  370. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +226 -0
  372. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -0
  373. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +100 -0
  374. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -0
  375. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js +174 -0
  376. package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js.map +1 -0
  377. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.js +60 -22
  378. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -0
  379. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.js +9 -9
  380. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -0
  381. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js +268 -0
  382. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js.map +1 -0
  383. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +226 -0
  384. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -0
  385. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js +26 -0
  386. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js.map +1 -0
  387. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js +159 -0
  388. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js.map +1 -0
  389. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +177 -0
  390. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -0
  391. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js +384 -0
  392. package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js.map +1 -0
  393. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js +180 -0
  394. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -0
  395. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +269 -0
  396. package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -0
  397. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +231 -0
  398. package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -0
  399. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +206 -0
  400. package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -0
  401. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +121 -0
  402. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -0
  403. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js +2 -0
  404. package/build/dist/Server/Utils/AI/SRE/Insights/Types.js.map +1 -0
  405. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +148 -0
  406. package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -0
  407. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +231 -0
  408. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -0
  409. package/build/dist/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.js +102 -23
  410. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -0
  411. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +167 -0
  412. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -0
  413. package/build/dist/Server/Utils/AI/Toolbox/{SentinelActionTools.js → AIActionTools.js} +18 -2
  414. package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -0
  415. package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -2
  416. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  417. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +301 -0
  418. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -0
  419. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +240 -2
  420. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  421. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js +127 -0
  422. package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js.map +1 -0
  423. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +336 -0
  424. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -0
  425. package/build/dist/Server/Utils/Execute.js.map +1 -1
  426. package/build/dist/Server/Utils/LLM/LLMService.js +125 -25
  427. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  428. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js +120 -0
  429. package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js.map +1 -0
  430. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -0
  431. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +15 -7
  433. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js +12 -1
  435. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js +8 -3
  437. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +96 -12
  439. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -1
  440. package/build/dist/Types/AI/AIInsightEvidence.js +2 -0
  441. package/build/dist/Types/AI/AIInsightEvidence.js.map +1 -0
  442. package/build/dist/Types/AI/AIInsightHumanVerdict.js +16 -0
  443. package/build/dist/Types/AI/AIInsightHumanVerdict.js.map +1 -0
  444. package/build/dist/Types/AI/AIInsightSeverity.js +14 -0
  445. package/build/dist/Types/AI/AIInsightSeverity.js.map +1 -0
  446. package/build/dist/Types/AI/AIInsightStatus.js +36 -0
  447. package/build/dist/Types/AI/AIInsightStatus.js.map +1 -0
  448. package/build/dist/Types/AI/AIInsightType.js +42 -0
  449. package/build/dist/Types/AI/AIInsightType.js.map +1 -0
  450. package/build/dist/Types/AI/AIRunAutoGrade.js +19 -0
  451. package/build/dist/Types/AI/AIRunAutoGrade.js.map +1 -0
  452. package/build/dist/Types/AI/AIRunEventType.js +5 -0
  453. package/build/dist/Types/AI/AIRunEventType.js.map +1 -1
  454. package/build/dist/Types/AI/AIRunHumanVerdict.js +18 -0
  455. package/build/dist/Types/AI/AIRunHumanVerdict.js.map +1 -0
  456. package/build/dist/Types/AI/AIRunType.js +6 -0
  457. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  458. package/build/dist/Types/AI/CodeFixTaskContext.js +29 -0
  459. package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -0
  460. package/build/dist/Types/AI/CodeFixTaskType.js +122 -0
  461. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -0
  462. package/build/dist/Types/AI/FixPullRequestCiStatus.js +102 -0
  463. package/build/dist/Types/AI/FixPullRequestCiStatus.js.map +1 -0
  464. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +55 -0
  465. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  466. package/build/dist/Types/Incident/IncidentMetricType.js +7 -0
  467. package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
  468. package/build/dist/Types/Monitor/CriteriaFilter.js +7 -0
  469. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  470. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
  471. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  472. package/build/dist/Types/Monitor/MonitorStep.js +28 -0
  473. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  474. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +93 -0
  475. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -0
  476. package/build/dist/Types/Monitor/MonitorType.js +15 -0
  477. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  478. package/build/dist/Types/Monitor/SqlDatabaseType.js +47 -0
  479. package/build/dist/Types/Monitor/SqlDatabaseType.js.map +1 -0
  480. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js +2 -0
  481. package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js.map +1 -0
  482. package/build/dist/Types/Permission.js +10 -84
  483. package/build/dist/Types/Permission.js.map +1 -1
  484. package/build/dist/Types/Runbook/RunbookStepType.js +1 -0
  485. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  486. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  487. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  488. package/build/dist/Types/Workflow/Components/AI.js +135 -0
  489. package/build/dist/Types/Workflow/Components/AI.js.map +1 -0
  490. package/build/dist/Types/Workflow/Components.js +7 -0
  491. package/build/dist/Types/Workflow/Components.js.map +1 -1
  492. package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -1
  493. package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
  494. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +9 -0
  495. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  496. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +1 -1
  497. package/build/dist/UI/Components/Table/Table.js +28 -2
  498. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  499. package/build/dist/UI/Utils/TableColumnsToCsv.js +291 -0
  500. package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -0
  501. package/build/dist/Utils/Monitor/MonitorMetricType.js +1 -0
  502. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  503. package/package.json +1 -1
  504. package/Models/DatabaseModels/AIAgentTask.ts +0 -660
  505. package/Models/DatabaseModels/AIAgentTaskLog.ts +0 -426
  506. package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +0 -399
  507. package/Models/DatabaseModels/ServiceCodeRepository.ts +0 -647
  508. package/Server/Services/AIAgentTaskService.ts +0 -240
  509. package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +0 -39
  510. package/Server/Services/ServiceCodeRepositoryService.ts +0 -55
  511. package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +0 -146
  512. package/Types/AI/AIAgentTaskMetadata.ts +0 -25
  513. package/Types/AI/AIAgentTaskType.ts +0 -40
  514. package/build/dist/Models/DatabaseModels/AIAgentTask.js +0 -691
  515. package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +0 -1
  516. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +0 -447
  517. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +0 -1
  518. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +0 -415
  519. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +0 -1
  520. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +0 -665
  521. package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +0 -1
  522. package/build/dist/Server/Services/AIAgentTaskLogService.js.map +0 -1
  523. package/build/dist/Server/Services/AIAgentTaskService.js +0 -217
  524. package/build/dist/Server/Services/AIAgentTaskService.js.map +0 -1
  525. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +0 -36
  526. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +0 -1
  527. package/build/dist/Server/Services/ServiceCodeRepositoryService.js +0 -54
  528. package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +0 -1
  529. package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +0 -1
  530. package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +0 -1
  531. package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +0 -1
  532. package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +0 -1
  533. package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +0 -1
  534. package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +0 -1
  535. package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +0 -1
  536. package/build/dist/Types/AI/AIAgentTaskMetadata.js +0 -6
  537. package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +0 -1
  538. package/build/dist/Types/AI/AIAgentTaskType.js +0 -29
  539. package/build/dist/Types/AI/AIAgentTaskType.js.map +0 -1
@@ -0,0 +1,384 @@
1
+ import ObjectID from "../../../../../../Types/ObjectID";
2
+ import OneUptimeDate from "../../../../../../Types/Date";
3
+ import SortOrder from "../../../../../../Types/BaseDatabase/SortOrder";
4
+ import InBetween from "../../../../../../Types/BaseDatabase/InBetween";
5
+ import AIInsightType from "../../../../../../Types/AI/AIInsightType";
6
+ import AIInsightSeverity from "../../../../../../Types/AI/AIInsightSeverity";
7
+ import SpanService from "../../../../../Services/SpanService";
8
+ import ServiceService from "../../../../../Services/ServiceService";
9
+ import TraceAggregationService from "../../../../../Services/TraceAggregationService";
10
+ import SpanTreeAnalyzer from "../../../PerfEvidence/SpanTreeAnalyzer";
11
+ import FixPerformanceTaskTrigger from "../../FixPerformanceTaskTrigger";
12
+ import logger from "../../../../Logger";
13
+ /*
14
+ * TraceLatencyRegression — a service whose recent p99 span latency
15
+ * regressed to a multiple of its own 24-hour baseline, with the evidence
16
+ * drilled down to span-tree findings from a representative slow trace.
17
+ *
18
+ * Stage 1 is two per-service latency-profile queries (recent hour vs the
19
+ * prior 24h) via TraceAggregationService.getServiceLatencyProfile, which is
20
+ * served by the Span proj_agg_by_service aggregate projection: this runs
21
+ * unattended for every opted-in project every 15 minutes, so it must read
22
+ * pre-aggregated minute rows, not 25 hours of raw spans. p99 (not p95) on
23
+ * purpose: quantile(0.99) is the only percentile state that projection
24
+ * stores, and quantile states of different levels do not merge. The drill
25
+ * (slowest operation → representative trace → span-tree analysis → code
26
+ * locations) runs ONLY for services that regressed, and the resulting
27
+ * findings are stored on the insight because ClickHouse span retention is
28
+ * short — the stored evidence must outlive the spans (FixPerformance
29
+ * taskContext precedent). Deterministic — no LLM anywhere in this detector.
30
+ */
31
+ // The regression window, compared against the prior baseline window.
32
+ export const LATENCY_RECENT_WINDOW_HOURS = 1;
33
+ /*
34
+ * Baseline: the 24 hours before the regression window. Self-baselining
35
+ * per service — a chronically slow service does not alert on being its
36
+ * usual slow self.
37
+ */
38
+ export const LATENCY_BASELINE_WINDOW_HOURS = 24;
39
+ /*
40
+ * Absolute floor: a p99 under one second is not worth a human's attention
41
+ * even if it doubled — sub-second "regressions" are dominated by cache
42
+ * and GC noise.
43
+ */
44
+ export const LATENCY_MIN_RECENT_P99_MS = 1000;
45
+ // p99 multiplier over the service's own baseline that counts as regression.
46
+ export const LATENCY_MIN_REGRESSION_MULTIPLIER = 2;
47
+ // A >= 4x p99 regression is a step change — escalate to High.
48
+ export const LATENCY_HIGH_SEVERITY_MULTIPLIER = 4;
49
+ /*
50
+ * The baseline p99 is only trustworthy with enough prior samples; below
51
+ * this the "baseline" is a handful of requests and the multiplier is
52
+ * noise. Matches the cold-start posture of the metric baselines.
53
+ */
54
+ export const LATENCY_MIN_PRIOR_SAMPLE_COUNT = 100;
55
+ /*
56
+ * Per-service rows fetched per window. The profile query ranks by request
57
+ * volume, so this bounds the scan to the 25 busiest services — the ones a
58
+ * p99 regression actually hurts (and the prior-sample-count gate would
59
+ * reject quiet services anyway).
60
+ */
61
+ export const LATENCY_SERVICE_LIMIT = 25;
62
+ /*
63
+ * Span cap for the representative-trace fetch — mirrors the trace
64
+ * waterfall tools' cap; beyond this the analyzer's evidence quality
65
+ * degrades anyway.
66
+ */
67
+ export const LATENCY_MAX_TRACE_SPANS = 500;
68
+ /*
69
+ * The drill's top-list ranks operations by p99, and for a group of ONE span
70
+ * the p99 IS that span's own duration — so a single freak-slow request would
71
+ * take the top slot outright. Fetch a small candidate set instead of one row
72
+ * and let the sample floor below choose among them. Ten is enough: an
73
+ * operation that cannot beat ten rivals on p99 is not the story.
74
+ */
75
+ export const LATENCY_TOP_OPERATION_CANDIDATES = 10;
76
+ /*
77
+ * Minimum spans an operation must have in the recent window before its p99
78
+ * is treated as evidence — and, just as load-bearing, before its name is
79
+ * allowed into the fingerprint. The fingerprint embeds the operation, so a
80
+ * noisy winner does not merely mislabel one insight: it churns the dedupe
81
+ * key tick after tick, and each new key is a NEW insight row plus a NEW
82
+ * triage LLM run for one and the same ongoing regression. Deliberately far
83
+ * below LATENCY_MIN_PRIOR_SAMPLE_COUNT — this gate only asks "is this
84
+ * operation real traffic", not "is this baseline trustworthy".
85
+ */
86
+ export const LATENCY_MIN_OPERATION_SAMPLE_COUNT = 20;
87
+ export default class TraceLatencyRegressionDetector {
88
+ constructor() {
89
+ this.insightType = AIInsightType.TraceLatencyRegression;
90
+ }
91
+ /*
92
+ * Pure decision: regression ⇔ recent p99 >= LATENCY_MIN_RECENT_P99_MS
93
+ * AND prior window has >= LATENCY_MIN_PRIOR_SAMPLE_COUNT samples AND
94
+ * recent p99 >= LATENCY_MIN_REGRESSION_MULTIPLIER * prior p99 (> 0).
95
+ */
96
+ static evaluateRegression(input) {
97
+ const multiplier = input.priorP99Ms > 0 ? input.recentP99Ms / input.priorP99Ms : 0;
98
+ const isRegression = input.recentP99Ms >= LATENCY_MIN_RECENT_P99_MS &&
99
+ input.priorSampleCount >= LATENCY_MIN_PRIOR_SAMPLE_COUNT &&
100
+ input.priorP99Ms > 0 &&
101
+ multiplier >= LATENCY_MIN_REGRESSION_MULTIPLIER;
102
+ return {
103
+ isRegression,
104
+ multiplier,
105
+ severity: multiplier >= LATENCY_HIGH_SEVERITY_MULTIPLIER
106
+ ? AIInsightSeverity.High
107
+ : AIInsightSeverity.Medium,
108
+ };
109
+ }
110
+ /*
111
+ * Pure join of the two per-service profile query results on
112
+ * primaryEntityId. Services missing from the prior window join with a
113
+ * zero baseline (and are then rejected by the sample-count gate).
114
+ */
115
+ static joinServiceWindows(recentRows, priorRows) {
116
+ const priorByEntity = new Map();
117
+ for (const row of priorRows) {
118
+ if (row.primaryEntityId) {
119
+ priorByEntity.set(row.primaryEntityId, row);
120
+ }
121
+ }
122
+ const joined = [];
123
+ for (const row of recentRows) {
124
+ const entityId = row.primaryEntityId || "";
125
+ if (!entityId) {
126
+ continue;
127
+ }
128
+ const prior = priorByEntity.get(entityId);
129
+ joined.push({
130
+ primaryEntityId: entityId,
131
+ recentP99Ms: row.p99DurationMs,
132
+ recentSampleCount: row.count,
133
+ priorP99Ms: (prior === null || prior === void 0 ? void 0 : prior.p99DurationMs) || 0,
134
+ priorSampleCount: (prior === null || prior === void 0 ? void 0 : prior.count) || 0,
135
+ });
136
+ }
137
+ return joined;
138
+ }
139
+ /*
140
+ * Pure decision: the slowest operation whose p99 is backed by real
141
+ * traffic. Candidates below LATENCY_MIN_OPERATION_SAMPLE_COUNT are
142
+ * dropped outright — with n=1 the "p99" is just that one span, so an
143
+ * unfiltered ranking hands the top slot to whatever freak request the
144
+ * window happened to catch.
145
+ *
146
+ * Ranking is re-established here rather than trusting the query's row
147
+ * order: ClickHouse's ORDER BY val DESC is not a total order, and ties
148
+ * broken arbitrarily by the server would move the fingerprint (which
149
+ * embeds the operation name) from tick to tick. Ties fall to volume,
150
+ * then to the name — a total, deterministic order.
151
+ *
152
+ * Undefined when nothing clears the floor. The caller then emits
153
+ * service-level evidence under the stable service-scoped fingerprint,
154
+ * which is strictly better than naming an operation we do not believe.
155
+ */
156
+ static pickSlowestOperation(items) {
157
+ var _a;
158
+ const credible = items.filter((item) => {
159
+ return (item.value.length > 0 &&
160
+ item.count >= LATENCY_MIN_OPERATION_SAMPLE_COUNT);
161
+ });
162
+ credible.sort((a, b) => {
163
+ if (b.metricValue !== a.metricValue) {
164
+ return b.metricValue - a.metricValue;
165
+ }
166
+ if (b.count !== a.count) {
167
+ return b.count - a.count;
168
+ }
169
+ return a.value.localeCompare(b.value);
170
+ });
171
+ return (_a = credible[0]) === null || _a === void 0 ? void 0 : _a.value;
172
+ }
173
+ /*
174
+ * Nanoseconds → milliseconds conversion into the analyzer's input shape
175
+ * (the AIInvestigationAPI conversion, kept local because the API file
176
+ * does not export it). Pure — the ns→ms arithmetic is unit-tested.
177
+ */
178
+ static toAnalyzableSpans(spans) {
179
+ return spans.map((span) => {
180
+ var _a, _b;
181
+ const attributes = {};
182
+ for (const [key, value] of Object.entries(span.attributes || {})) {
183
+ if (value !== null && value !== undefined) {
184
+ attributes[key] = String(value);
185
+ }
186
+ }
187
+ return {
188
+ spanId: ((_a = span.spanId) === null || _a === void 0 ? void 0 : _a.toString()) || "",
189
+ parentSpanId: ((_b = span.parentSpanId) === null || _b === void 0 ? void 0 : _b.toString()) || undefined,
190
+ name: span.name || "",
191
+ startMs: Number(span.startTimeUnixNano) / 1000000,
192
+ endMs: Number(span.endTimeUnixNano) / 1000000,
193
+ durationMs: Number(span.durationUnixNano) / 1000000,
194
+ attributes,
195
+ };
196
+ });
197
+ }
198
+ /*
199
+ * Stable dedupe key: service + NORMALIZED operation name (ids/digits
200
+ * collapsed), so the same regressing endpoint refreshes one insight no
201
+ * matter which concrete URL the representative trace hit.
202
+ */
203
+ static buildFingerprint(serviceEntityId, operationName) {
204
+ return `latency:${serviceEntityId}:${SpanTreeAnalyzer.normalizeSpanName(operationName || "")}`;
205
+ }
206
+ async detect(context) {
207
+ const recentWindowStart = OneUptimeDate.addRemoveHours(context.now, -1 * LATENCY_RECENT_WINDOW_HOURS);
208
+ const priorWindowStart = OneUptimeDate.addRemoveHours(recentWindowStart, -1 * LATENCY_BASELINE_WINDOW_HOURS);
209
+ // Stage 1 — per-service latency profile: recent hour vs prior 24h.
210
+ const recentProfile = await TraceAggregationService.getServiceLatencyProfile({
211
+ projectId: context.projectId,
212
+ startTime: recentWindowStart,
213
+ endTime: context.now,
214
+ limit: LATENCY_SERVICE_LIMIT,
215
+ });
216
+ const priorProfile = await TraceAggregationService.getServiceLatencyProfile({
217
+ projectId: context.projectId,
218
+ startTime: priorWindowStart,
219
+ endTime: recentWindowStart,
220
+ limit: LATENCY_SERVICE_LIMIT,
221
+ });
222
+ /*
223
+ * A partial window is not "less data", it is WRONG data: a p99 and a
224
+ * span count computed over whatever fraction ClickHouse managed before
225
+ * the execution cap fired. Comparing a partial window against a
226
+ * complete one manufactures regressions that never happened (and hides
227
+ * ones that did). Skip this project's latency detection for the tick
228
+ * and let the next one, 15 minutes out, decide — a delayed insight is
229
+ * recoverable, a fabricated one (which may open a fix PR) is not.
230
+ */
231
+ if (recentProfile.isPartial || priorProfile.isPartial) {
232
+ logger.info(`TraceLatencyRegressionDetector: skipping project ${context.projectId.toString()} for this scan — the service latency profile query returned a possibly partial result (execution cap reached).`);
233
+ return [];
234
+ }
235
+ const joined = TraceLatencyRegressionDetector.joinServiceWindows(recentProfile.rows, priorProfile.rows);
236
+ const candidates = [];
237
+ for (const windows of joined) {
238
+ const decision = TraceLatencyRegressionDetector.evaluateRegression({
239
+ recentP99Ms: windows.recentP99Ms,
240
+ priorP99Ms: windows.priorP99Ms,
241
+ priorSampleCount: windows.priorSampleCount,
242
+ });
243
+ if (!decision.isRegression) {
244
+ continue;
245
+ }
246
+ candidates.push(await this.drillRegression({
247
+ context,
248
+ windows,
249
+ decision,
250
+ recentWindowStart,
251
+ }));
252
+ }
253
+ return candidates;
254
+ }
255
+ /*
256
+ * Drill one regressed service down to a concrete, code-shaped story:
257
+ * slowest CREDIBLE operation (p99 in the spike hour, sample floor
258
+ * applied) → the single slowest span of that operation → its whole trace
259
+ * → deterministic span-tree findings + code.* locations. When no
260
+ * operation clears the floor the insight stays at service level rather
261
+ * than pinning the blame — and the drill queries are skipped entirely.
262
+ */
263
+ async drillRegression(input) {
264
+ var _a, _b;
265
+ const serviceEntityId = new ObjectID(input.windows.primaryEntityId);
266
+ /*
267
+ * Candidate operations for the service — the top-list ranks by the
268
+ * metric (p99) and returns each operation's span count alongside it,
269
+ * which is exactly what the sample floor needs. Bounded: one 1-hour
270
+ * query pinned to the one service that regressed.
271
+ */
272
+ const topOperations = await TraceAggregationService.getAnalyticsTopList({
273
+ projectId: input.context.projectId,
274
+ startTime: input.recentWindowStart,
275
+ endTime: input.context.now,
276
+ bucketSizeInMinutes: LATENCY_RECENT_WINDOW_HOURS * 60,
277
+ chartType: "toplist",
278
+ metric: "p99Duration",
279
+ groupBy: ["name"],
280
+ serviceIds: [serviceEntityId],
281
+ limit: LATENCY_TOP_OPERATION_CANDIDATES,
282
+ });
283
+ const operationName = TraceLatencyRegressionDetector.pickSlowestOperation(topOperations);
284
+ /*
285
+ * Representative trace: the slowest span of the slowest operation in
286
+ * the spike window, then that trace's full span set. Explicit
287
+ * projectId in every root query — the scanner never relies on ACL.
288
+ */
289
+ let sampleTraceId = undefined;
290
+ let findings = [];
291
+ let codeLocations = [];
292
+ if (operationName) {
293
+ const slowestSpans = await SpanService.findBy({
294
+ query: {
295
+ projectId: input.context.projectId,
296
+ primaryEntityId: serviceEntityId,
297
+ name: operationName,
298
+ startTime: new InBetween(input.recentWindowStart, input.context.now),
299
+ },
300
+ select: {
301
+ traceId: true,
302
+ },
303
+ sort: {
304
+ durationUnixNano: SortOrder.Descending,
305
+ },
306
+ limit: 1,
307
+ skip: 0,
308
+ props: { isRoot: true },
309
+ });
310
+ sampleTraceId = ((_b = (_a = slowestSpans[0]) === null || _a === void 0 ? void 0 : _a.traceId) === null || _b === void 0 ? void 0 : _b.toString()) || undefined;
311
+ }
312
+ if (sampleTraceId) {
313
+ const traceSpans = await SpanService.findBy({
314
+ query: {
315
+ projectId: input.context.projectId,
316
+ traceId: sampleTraceId,
317
+ },
318
+ select: {
319
+ spanId: true,
320
+ parentSpanId: true,
321
+ name: true,
322
+ startTimeUnixNano: true,
323
+ endTimeUnixNano: true,
324
+ durationUnixNano: true,
325
+ attributes: true,
326
+ },
327
+ sort: {
328
+ startTimeUnixNano: SortOrder.Ascending,
329
+ },
330
+ limit: LATENCY_MAX_TRACE_SPANS,
331
+ skip: 0,
332
+ props: { isRoot: true },
333
+ });
334
+ const analyzableSpans = TraceLatencyRegressionDetector.toAnalyzableSpans(traceSpans);
335
+ findings = SpanTreeAnalyzer.analyzeTrace(analyzableSpans);
336
+ codeLocations = FixPerformanceTaskTrigger.collectCodeLocations(analyzableSpans, findings);
337
+ }
338
+ const service = await ServiceService.findOneById({
339
+ id: serviceEntityId,
340
+ select: { name: true },
341
+ props: { isRoot: true },
342
+ });
343
+ const serviceName = (service === null || service === void 0 ? void 0 : service.name) || null;
344
+ const detailLines = [
345
+ "**Trace latency regression detected**",
346
+ "",
347
+ `- Service: ${serviceName || input.windows.primaryEntityId}`,
348
+ `- Recent p99 (last ${LATENCY_RECENT_WINDOW_HOURS}h): ${input.windows.recentP99Ms.toFixed(0)} ms over ${input.windows.recentSampleCount} spans`,
349
+ `- Baseline p99 (prior ${LATENCY_BASELINE_WINDOW_HOURS}h): ${input.windows.priorP99Ms.toFixed(0)} ms over ${input.windows.priorSampleCount} spans`,
350
+ `- Regression multiplier: ${input.decision.multiplier.toFixed(1)}x`,
351
+ ];
352
+ if (operationName) {
353
+ detailLines.push(`- Slowest operation: \`${operationName}\``);
354
+ }
355
+ if (sampleTraceId) {
356
+ detailLines.push(`- Representative trace: \`${sampleTraceId}\``);
357
+ }
358
+ if (findings.length > 0) {
359
+ detailLines.push("", "## Span-tree findings (representative trace)", "", SpanTreeAnalyzer.renderFindingsMarkdown(findings));
360
+ }
361
+ return {
362
+ insightType: AIInsightType.TraceLatencyRegression,
363
+ fingerprint: TraceLatencyRegressionDetector.buildFingerprint(input.windows.primaryEntityId, operationName),
364
+ title: `Latency regression: p99 ${input.decision.multiplier.toFixed(1)}x${operationName ? ` on ${operationName}` : ""}${serviceName ? ` in ${serviceName}` : ""}`,
365
+ detailMarkdown: detailLines.join("\n"),
366
+ severity: input.decision.severity,
367
+ serviceName: serviceName || undefined,
368
+ telemetryServiceId: serviceName ? serviceEntityId : undefined,
369
+ traceId: sampleTraceId,
370
+ evidence: {
371
+ latency: {
372
+ recentP99Ms: input.windows.recentP99Ms,
373
+ baselineP99Ms: input.windows.priorP99Ms,
374
+ regressionMultiplier: input.decision.multiplier,
375
+ operationName,
376
+ sampleTraceId,
377
+ performanceFindings: findings.length > 0 ? findings : undefined,
378
+ codeLocations: codeLocations.length > 0 ? codeLocations : undefined,
379
+ },
380
+ },
381
+ };
382
+ }
383
+ }
384
+ //# sourceMappingURL=TraceLatencyRegressionDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceLatencyRegressionDetector.js","sourceRoot":"","sources":["../../../../../../../../Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,kCAAkC,CAAC;AACxD,OAAO,aAAa,MAAM,8BAA8B,CAAC;AACzD,OAAO,SAAS,MAAM,gDAAgD,CAAC;AACvE,OAAO,SAAS,MAAM,gDAAgD,CAAC;AACvE,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,iBAAiB,MAAM,8CAA8C,CAAC;AAO7E,OAAO,WAAW,MAAM,qCAAqC,CAAC;AAC9D,OAAO,cAAc,MAAM,wCAAwC,CAAC;AACpE,OAAO,uBAIN,MAAM,iDAAiD,CAAC;AACzD,OAAO,gBAEN,MAAM,wCAAwC,CAAC;AAChD,OAAO,yBAAyB,MAAM,iCAAiC,CAAC;AACxE,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAOxC;;;;;;;;;;;;;;;;;GAiBG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,2BAA2B,GAAW,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAW,EAAE,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAW,IAAI,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAW,CAAC,CAAC;AAE3D,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gCAAgC,GAAW,CAAC,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAW,GAAG,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAW,EAAE,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAW,GAAG,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAW,EAAE,CAAC;AAE3D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAW,EAAE,CAAC;AAkB7D,MAAM,CAAC,OAAO,OAAO,8BAA8B;IAAnD;QACS,gBAAW,GAAkB,aAAa,CAAC,sBAAsB,CAAC;IAoY3E,CAAC;IAlYC;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAAC,KAIhC;QACC,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,YAAY,GAChB,KAAK,CAAC,WAAW,IAAI,yBAAyB;YAC9C,KAAK,CAAC,gBAAgB,IAAI,8BAA8B;YACxD,KAAK,CAAC,UAAU,GAAG,CAAC;YACpB,UAAU,IAAI,iCAAiC,CAAC;QAElD,OAAO;YACL,YAAY;YACZ,UAAU;YACV,QAAQ,EACN,UAAU,IAAI,gCAAgC;gBAC5C,CAAC,CAAC,iBAAiB,CAAC,IAAI;gBACxB,CAAC,CAAC,iBAAiB,CAAC,MAAM;SAC/B,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAC9B,UAA2C,EAC3C,SAA0C;QAE1C,MAAM,aAAa,GAA0C,IAAI,GAAG,EAAE,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;gBACxB,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAiC,EAAE,CAAC;QAChD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAW,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GACT,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,eAAe,EAAE,QAAQ;gBACzB,WAAW,EAAE,GAAG,CAAC,aAAa;gBAC9B,iBAAiB,EAAE,GAAG,CAAC,KAAK;gBAC5B,UAAU,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,KAAI,CAAC;gBACrC,gBAAgB,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,CAAC;aACpC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,MAAM,CAAC,oBAAoB,CAChC,KAAmC;;QAEnC,MAAM,QAAQ,GAAiC,KAAK,CAAC,MAAM,CACzD,CAAC,IAA2B,EAAW,EAAE;YACvC,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBACrB,IAAI,CAAC,KAAK,IAAI,kCAAkC,CACjD,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,QAAQ,CAAC,IAAI,CACX,CAAC,CAAwB,EAAE,CAAwB,EAAU,EAAE;YAC7D,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QAEF,OAAO,MAAA,QAAQ,CAAC,CAAC,CAAC,0CAAE,KAAK,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB,CAAC,KAAkB;QAChD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAU,EAAkB,EAAE;;YAC9C,MAAM,UAAU,GAA2B,EAAE,CAAC;YAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,UAAU,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,OAAO;gBACL,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ,EAAE,KAAI,EAAE;gBACrC,YAAY,EAAE,CAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,QAAQ,EAAE,KAAI,SAAS;gBACxD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,OAAS;gBACnD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,OAAS;gBAC/C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,OAAS;gBACrD,UAAU;aACX,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,gBAAgB,CAC5B,eAAuB,EACvB,aAAiC;QAEjC,OAAO,WAAW,eAAe,IAAI,gBAAgB,CAAC,iBAAiB,CACrE,aAAa,IAAI,EAAE,CACpB,EAAE,CAAC;IACN,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,OAA2B;QAE3B,MAAM,iBAAiB,GAAS,aAAa,CAAC,cAAc,CAC1D,OAAO,CAAC,GAAG,EACX,CAAC,CAAC,GAAG,2BAA2B,CACjC,CAAC;QACF,MAAM,gBAAgB,GAAS,aAAa,CAAC,cAAc,CACzD,iBAAiB,EACjB,CAAC,CAAC,GAAG,6BAA6B,CACnC,CAAC;QAEF,mEAAmE;QACnE,MAAM,aAAa,GACjB,MAAM,uBAAuB,CAAC,wBAAwB,CAAC;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,OAAO,CAAC,GAAG;YACpB,KAAK,EAAE,qBAAqB;SAC7B,CAAC,CAAC;QAEL,MAAM,YAAY,GAChB,MAAM,uBAAuB,CAAC,wBAAwB,CAAC;YACrD,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,gBAAgB;YAC3B,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,qBAAqB;SAC7B,CAAC,CAAC;QAEL;;;;;;;;WAQG;QACH,IAAI,aAAa,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CACT,oDAAoD,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,gHAAgH,CACjM,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GACV,8BAA8B,CAAC,kBAAkB,CAC/C,aAAa,CAAC,IAAI,EAClB,YAAY,CAAC,IAAI,CAClB,CAAC;QAEJ,MAAM,UAAU,GAA4B,EAAE,CAAC;QAE/C,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,QAAQ,GACZ,8BAA8B,CAAC,kBAAkB,CAAC;gBAChD,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;aAC3C,CAAC,CAAC;YAEL,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YAED,UAAU,CAAC,IAAI,CACb,MAAM,IAAI,CAAC,eAAe,CAAC;gBACzB,OAAO;gBACP,OAAO;gBACP,QAAQ;gBACR,iBAAiB;aAClB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,eAAe,CAAC,KAK7B;;QACC,MAAM,eAAe,GAAa,IAAI,QAAQ,CAC5C,KAAK,CAAC,OAAO,CAAC,eAAe,CAC9B,CAAC;QAEF;;;;;WAKG;QACH,MAAM,aAAa,GACjB,MAAM,uBAAuB,CAAC,mBAAmB,CAAC;YAChD,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAClC,SAAS,EAAE,KAAK,CAAC,iBAAiB;YAClC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG;YAC1B,mBAAmB,EAAE,2BAA2B,GAAG,EAAE;YACrD,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,KAAK,EAAE,gCAAgC;SACxC,CAAC,CAAC;QAEL,MAAM,aAAa,GACjB,8BAA8B,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAErE;;;;WAIG;QACH,IAAI,aAAa,GAAuB,SAAS,CAAC;QAClD,IAAI,QAAQ,GAA8B,EAAE,CAAC;QAC7C,IAAI,aAAa,GAAmC,EAAE,CAAC;QAEvD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,YAAY,GAAgB,MAAM,WAAW,CAAC,MAAM,CAAC;gBACzD,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBAClC,eAAe,EAAE,eAAe;oBAChC,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,IAAI,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;iBAC5D;gBACV,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;iBACL;gBACV,IAAI,EAAE;oBACJ,gBAAgB,EAAE,SAAS,CAAC,UAAU;iBAC9B;gBACV,KAAK,EAAE,CAAC;gBACR,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,aAAa,GAAG,CAAA,MAAA,MAAA,YAAY,CAAC,CAAC,CAAC,0CAAE,OAAO,0CAAE,QAAQ,EAAE,KAAI,SAAS,CAAC;QACpE,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,UAAU,GAAgB,MAAM,WAAW,CAAC,MAAM,CAAC;gBACvD,KAAK,EAAE;oBACL,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;oBAClC,OAAO,EAAE,aAAa;iBACd;gBACV,MAAM,EAAE;oBACN,MAAM,EAAE,IAAI;oBACZ,YAAY,EAAE,IAAI;oBAClB,IAAI,EAAE,IAAI;oBACV,iBAAiB,EAAE,IAAI;oBACvB,eAAe,EAAE,IAAI;oBACrB,gBAAgB,EAAE,IAAI;oBACtB,UAAU,EAAE,IAAI;iBACR;gBACV,IAAI,EAAE;oBACJ,iBAAiB,EAAE,SAAS,CAAC,SAAS;iBAC9B;gBACV,KAAK,EAAE,uBAAuB;gBAC9B,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;aACxB,CAAC,CAAC;YAEH,MAAM,eAAe,GACnB,8BAA8B,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAE/D,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC1D,aAAa,GAAG,yBAAyB,CAAC,oBAAoB,CAC5D,eAAe,EACf,QAAQ,CACT,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAmB,MAAM,cAAc,CAAC,WAAW,CAAC;YAC/D,EAAE,EAAE,eAAe;YACnB,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;YACtB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,MAAM,WAAW,GAAkB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,KAAI,IAAI,CAAC;QAEzD,MAAM,WAAW,GAAkB;YACjC,uCAAuC;YACvC,EAAE;YACF,cAAc,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;YAC5D,sBAAsB,2BAA2B,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,iBAAiB,QAAQ;YAC/I,yBAAyB,6BAA6B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,OAAO,CAAC,gBAAgB,QAAQ;YAClJ,4BAA4B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;SACpE,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC,0BAA0B,aAAa,IAAI,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC,6BAA6B,aAAa,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,IAAI,CACd,EAAE,EACF,8CAA8C,EAC9C,EAAE,EACF,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAClD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW,EAAE,aAAa,CAAC,sBAAsB;YACjD,WAAW,EAAE,8BAA8B,CAAC,gBAAgB,CAC1D,KAAK,CAAC,OAAO,CAAC,eAAe,EAC7B,aAAa,CACd;YACD,KAAK,EAAE,2BAA2B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;YACjK,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;YACjC,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YAC7D,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE;gBACR,OAAO,EAAE;oBACP,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;oBACtC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;oBACvC,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU;oBAC/C,aAAa;oBACb,aAAa;oBACb,mBAAmB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC/D,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBACpE;aACF;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,180 @@
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 AIInsightType from "../../../../../Types/AI/AIInsightType";
11
+ import CodeFixTaskType from "../../../../../Types/AI/CodeFixTaskType";
12
+ import AIRunService from "../../../../Services/AIRunService";
13
+ import TelemetryExceptionService from "../../../../Services/TelemetryExceptionService";
14
+ import FixPerformanceTaskTrigger from "../FixPerformanceTaskTrigger";
15
+ import FixRunBudget from "../../CodeFix/FixRunBudget";
16
+ import logger from "../../../Logger";
17
+ import CaptureSpan from "../../../Telemetry/CaptureSpan";
18
+ export default class InsightFixRouting {
19
+ /*
20
+ * NEVER throws — this runs inside the scanner's per-insight routing and a
21
+ * failed fix enqueue must not fail (or duplicate) the scan itself. Every
22
+ * failure is logged and swallowed; an empty result means "no fix opened"
23
+ * (the insight stays ActionRequired, where the manual fix paths remain
24
+ * available).
25
+ */
26
+ static async routeInsightFix(data) {
27
+ var _a, _b, _c, _d, _e, _f, _g;
28
+ const { insight, project } = data;
29
+ try {
30
+ if (!insight.id || !insight.projectId) {
31
+ return {};
32
+ }
33
+ /*
34
+ * The master AI kill switch, checked BEFORE the per-feature opt-in —
35
+ * the same order InstrumentationTaskTrigger and InsightTriage use. A
36
+ * project that turned AI off gets no autonomous agent work at all,
37
+ * whatever a legacy per-feature flag still says. `=== false` (not
38
+ * `!== true`) because the column defaults to TRUE: an unselected or
39
+ * undefined value must never be read as "AI disabled". The scanner
40
+ * selects enableAi onto the project row it hands us.
41
+ */
42
+ if (project.enableAi === false) {
43
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — AI is disabled for the project.`);
44
+ return {};
45
+ }
46
+ /*
47
+ * Strict opt-in — the column defaults to false, so unset/legacy rows
48
+ * never enqueue. Autonomous PR creation must never be default-on.
49
+ */
50
+ if (project.enableInsightFixTasks !== true) {
51
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — project has not opted in to insight fix tasks.`);
52
+ return {};
53
+ }
54
+ const isExceptionInsight = insight.insightType === AIInsightType.NewException ||
55
+ insight.insightType === AIInsightType.ExceptionSpike;
56
+ const isLatencyInsight = insight.insightType === AIInsightType.TraceLatencyRegression;
57
+ /*
58
+ * ErrorLogSpike and MetricDrift are NEVER auto-fixed: neither carries
59
+ * evidence that points at a specific code path, so there is no
60
+ * grounded recipe to run — they route to triage + the human inbox.
61
+ */
62
+ if (!isExceptionInsight && !isLatencyInsight) {
63
+ return {};
64
+ }
65
+ // Exception insights are only fixable with the exception row to fix.
66
+ if (isExceptionInsight && !insight.telemetryExceptionId) {
67
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — no telemetryExceptionId on the insight.`);
68
+ return {};
69
+ }
70
+ /*
71
+ * Latency insights are only fixable with the deterministic span-tree
72
+ * findings (and the trace they came from) captured at detect time.
73
+ */
74
+ const latencyFindings = ((_b = (_a = insight.evidence) === null || _a === void 0 ? void 0 : _a.latency) === null || _b === void 0 ? void 0 : _b.performanceFindings) || [];
75
+ const latencyCodeLocations = ((_d = (_c = insight.evidence) === null || _c === void 0 ? void 0 : _c.latency) === null || _d === void 0 ? void 0 : _d.codeLocations) || [];
76
+ const latencyTraceId = insight.traceId || ((_f = (_e = insight.evidence) === null || _e === void 0 ? void 0 : _e.latency) === null || _f === void 0 ? void 0 : _f.sampleTraceId);
77
+ if (isLatencyInsight &&
78
+ (latencyFindings.length === 0 || !latencyTraceId)) {
79
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — the latency evidence has no span-tree findings or no trace id.`);
80
+ return {};
81
+ }
82
+ /*
83
+ * G11 guardrail: the per-project daily fix-run budget. For this
84
+ * AUTOMATIC trigger, over-budget is a logged skip — never an error
85
+ * (the creation paths below would throw the same rejection, but that
86
+ * lands in the catch as an unexpected failure; a budget skip is
87
+ * expected behavior, not a failure).
88
+ */
89
+ const budget = await FixRunBudget.getBudgetStatus(insight.projectId);
90
+ if (!budget.allowed) {
91
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — ${FixRunBudget.describeRejection(budget)}`);
92
+ return {};
93
+ }
94
+ let createdRun;
95
+ if (isExceptionInsight) {
96
+ /*
97
+ * Readiness precheck (provider payable, repository resolvable,
98
+ * agent alive) so an unready project gets a quiet skip instead of
99
+ * a thrown gate: the insight stays ActionRequired and the exception
100
+ * page's manual "Fix with AI Agent" button remains available once
101
+ * the project fixes its setup.
102
+ */
103
+ const readiness = await TelemetryExceptionService.getAIFixReadiness({
104
+ telemetryExceptionId: insight.telemetryExceptionId,
105
+ props: { isRoot: true },
106
+ });
107
+ if (!readiness.ready) {
108
+ logger.debug(`AI insights: not routing a fix for insight ${insight.id.toString()} — AI fix readiness checks failed.`);
109
+ return {};
110
+ }
111
+ /*
112
+ * The exception-page creation path, system-triggered (no userId in
113
+ * props — the run stays system-authored): budget, readiness
114
+ * re-check and per-(exception, recipe) dedupe are enforced inside.
115
+ */
116
+ createdRun =
117
+ await TelemetryExceptionService.createCodeFixRunForException({
118
+ telemetryExceptionId: insight.telemetryExceptionId,
119
+ props: { isRoot: true },
120
+ taskType: CodeFixTaskType.FixException,
121
+ });
122
+ }
123
+ else {
124
+ /*
125
+ * The findings-based FixPerformance path: the deterministic
126
+ * evidence gate already ran at detect time (the stored findings ARE
127
+ * its output); repo gate, per-trace dedupe and budget are enforced
128
+ * inside.
129
+ */
130
+ createdRun =
131
+ await FixPerformanceTaskTrigger.createPerformanceFixTaskFromFindings({
132
+ projectId: insight.projectId,
133
+ traceId: latencyTraceId,
134
+ serviceName: insight.serviceName,
135
+ findings: latencyFindings,
136
+ codeLocations: latencyCodeLocations,
137
+ });
138
+ }
139
+ if (!createdRun.id) {
140
+ return {};
141
+ }
142
+ /*
143
+ * Provenance: stamp the created run with the insight that opened it,
144
+ * so the run's origin is queryable from either side. Best-effort —
145
+ * the fix run exists either way, and the scanner links insight ->
146
+ * run via the returned fixAiRunId.
147
+ */
148
+ try {
149
+ await AIRunService.updateOneById({
150
+ id: createdRun.id,
151
+ data: {
152
+ triggeredByAiInsightId: insight.id,
153
+ },
154
+ props: { isRoot: true },
155
+ });
156
+ }
157
+ catch (error) {
158
+ logger.error(`AI insights: failed to stamp fix run ${createdRun.id.toString()} with insight ${insight.id.toString()}: ${error}`);
159
+ }
160
+ logger.debug(`AI insights: queued ${isExceptionInsight ? "FixException" : "FixPerformance"} run ${createdRun.id.toString()} for insight ${insight.id.toString()}.`);
161
+ return { fixAiRunId: createdRun.id };
162
+ }
163
+ catch (error) {
164
+ /*
165
+ * Creation-path throws are mostly EXPECTED quiet skips for this
166
+ * automatic trigger (dedupe hit, readiness re-check raced, budget
167
+ * raced) — log at debug and leave the insight on the human path.
168
+ */
169
+ logger.debug(`AI insights: fix routing skipped for insight ${(_g = insight.id) === null || _g === void 0 ? void 0 : _g.toString()}: ${error}`);
170
+ return {};
171
+ }
172
+ }
173
+ }
174
+ __decorate([
175
+ CaptureSpan(),
176
+ __metadata("design:type", Function),
177
+ __metadata("design:paramtypes", [Object]),
178
+ __metadata("design:returntype", Promise)
179
+ ], InsightFixRouting, "routeInsightFix", null);
180
+ //# sourceMappingURL=FixRouting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixRouting.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/AI/SRE/Insights/FixRouting.ts"],"names":[],"mappings":"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"}