@oneuptime/common 11.5.3 → 11.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +56 -45
- package/Models/DatabaseModels/AIInsight.ts +748 -0
- package/Models/DatabaseModels/AIRun.ts +262 -0
- package/Models/DatabaseModels/CodeRepository.ts +42 -0
- package/Models/DatabaseModels/Dashboard.ts +3 -3
- package/Models/DatabaseModels/GlobalConfig.ts +105 -0
- package/Models/DatabaseModels/Index.ts +4 -8
- package/Models/DatabaseModels/InstanceHealthLog.ts +277 -0
- package/Models/DatabaseModels/LlmLog.ts +33 -0
- package/Models/DatabaseModels/Project.ts +123 -6
- package/Models/DatabaseModels/Runbook.ts +1 -1
- package/Server/API/AIAgentDataAPI.ts +802 -140
- package/Server/API/AIAgentTaskAPI.ts +132 -69
- package/Server/API/AIAgentTaskLogAPI.ts +65 -41
- package/Server/API/AIAgentTaskPullRequestAPI.ts +41 -0
- package/Server/API/AIInsightAPI.ts +220 -0
- package/Server/API/AIInvestigationAPI.ts +363 -1
- package/Server/API/CodeFixRunAPI.ts +251 -0
- package/Server/API/GitHubAPI.ts +246 -3
- package/Server/API/TelemetryExceptionAPI.ts +193 -48
- package/Server/EnvironmentConfig.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.ts +26 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.ts +73 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.ts +51 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.ts +53 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.ts +37 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.ts +75 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.ts +37 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.ts +203 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.ts +163 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +30 -0
- package/Server/Infrastructure/Queue.ts +82 -4
- package/Server/Infrastructure/Semaphore.ts +62 -1
- package/Server/Services/AIAgentService.ts +32 -0
- package/Server/Services/AIAgentTaskPullRequestService.ts +117 -0
- package/Server/Services/AIInsightService.ts +174 -0
- package/Server/Services/AIRunEventService.ts +63 -0
- package/Server/Services/AIRunService.ts +259 -1
- package/Server/Services/AIService.ts +249 -7
- package/Server/Services/AlertService.ts +4 -4
- package/Server/Services/CodeRepositoryService.ts +209 -0
- package/Server/Services/DashboardService.ts +11 -2
- package/Server/Services/GlobalConfigService.ts +148 -0
- package/Server/Services/IncidentService.ts +183 -38
- package/Server/Services/IncidentStateTimelineService.ts +24 -4
- package/Server/Services/Index.ts +4 -4
- package/Server/Services/{AIAgentTaskLogService.ts → InstanceHealthLogService.ts} +1 -1
- package/Server/Services/LlmLogService.ts +27 -0
- package/Server/Services/LlmProviderService.ts +108 -0
- package/Server/Services/MetricBaselineService.ts +123 -0
- package/Server/Services/MonitorService.ts +15 -0
- package/Server/Services/TelemetryExceptionService.ts +323 -116
- package/Server/Services/TraceAggregationService.ts +176 -0
- package/Server/Types/Workflow/ComponentCode.ts +6 -0
- package/Server/Types/Workflow/Components/AI/GenerateText.ts +326 -0
- package/Server/Types/Workflow/Components/Index.ts +2 -0
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +1 -1
- package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +71 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +243 -0
- package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +131 -0
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +148 -0
- package/Server/Utils/AI/CodeFix/OpenPullRequestCap.ts +117 -0
- package/Server/Utils/AI/Eval/EvalCorpus.ts +369 -0
- package/Server/Utils/AI/Eval/EvalScores.ts +172 -0
- package/Server/Utils/AI/Eval/ReplayInvestigation.ts +87 -0
- package/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.ts +676 -0
- package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts} +58 -37
- package/Server/Utils/AI/{Sentinel/SentinelMemory.ts → SRE/AIMemory.ts} +3 -3
- package/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.ts +50 -20
- package/Server/Utils/AI/SRE/ConfidenceSignal.ts +293 -0
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +115 -0
- package/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.ts +223 -0
- package/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.ts +71 -21
- package/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.ts +8 -8
- package/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.ts +364 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +317 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/Index.ts +27 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.ts +221 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +238 -0
- package/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.ts +521 -0
- package/Server/Utils/AI/SRE/Insights/FixRouting.ts +242 -0
- package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +290 -0
- package/Server/Utils/AI/SRE/Insights/InsightStore.ts +283 -0
- package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +242 -0
- package/Server/Utils/AI/SRE/Insights/Triage.ts +162 -0
- package/Server/Utils/AI/SRE/Insights/Types.ts +49 -0
- package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +212 -0
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +282 -0
- package/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.ts +114 -19
- package/Server/Utils/AI/{Sentinel → SRE}/README.md +4 -4
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +172 -0
- package/Server/Utils/AI/Toolbox/{SentinelActionTools.ts → AIActionTools.ts} +22 -1
- package/Server/Utils/AI/Toolbox/Index.ts +2 -2
- package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +526 -0
- package/Server/Utils/CodeRepository/GitHub/GitHub.ts +319 -1
- package/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.ts +221 -0
- package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +571 -0
- package/Server/Utils/Execute.ts +34 -13
- package/Server/Utils/LLM/LLMService.ts +160 -30
- package/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.ts +152 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +29 -0
- package/Tests/Server/API/DashboardMasterPasswordAPI.test.ts +225 -0
- package/Tests/Server/Infrastructure/Queue.test.ts +227 -0
- package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +159 -0
- package/Tests/Server/Services/AIAgentTaskPullRequestOutcomeStats.test.ts +154 -0
- package/Tests/Server/Services/AIInsightService.test.ts +324 -0
- package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +401 -0
- package/Tests/Server/Services/AIRunHumanVerdict.test.ts +161 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +95 -5
- package/Tests/Server/Services/AIServiceProjectAccess.test.ts +259 -0
- package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +249 -0
- package/Tests/Server/Services/FixPerformanceTaskTrigger.test.ts +274 -0
- package/Tests/Server/Services/GlobalConfigService.test.ts +80 -0
- package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +1 -1
- package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +313 -0
- package/Tests/Server/Services/LlmProviderProjectOwned.test.ts +132 -0
- package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +405 -0
- package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +322 -0
- package/Tests/Server/Services/TraceServiceLatencyProfile.test.ts +278 -0
- package/Tests/Server/Types/Workflow/Components/AIGenerateText.test.ts +722 -0
- package/Tests/Server/Utils/AI/{SentinelAlertGating.test.ts → AIAlertGating.test.ts} +19 -19
- package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +362 -0
- package/Tests/Server/Utils/AI/{SentinelInvestigationQueue.test.ts → AIInvestigationQueue.test.ts} +19 -19
- package/Tests/Server/Utils/AI/CodeAgentWorkspaceGuard.test.ts +138 -0
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +335 -0
- package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +134 -0
- package/Tests/Server/Utils/AI/EvalCorpus.test.ts +209 -0
- package/Tests/Server/Utils/AI/EvalScores.test.ts +343 -0
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +218 -0
- package/Tests/Server/Utils/AI/Insights/ErrorLogSpikeDetector.test.ts +437 -0
- package/Tests/Server/Utils/AI/Insights/ExceptionSpikeDetector.test.ts +287 -0
- package/Tests/Server/Utils/AI/Insights/InsightDetectorsIndex.test.ts +34 -0
- package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +572 -0
- package/Tests/Server/Utils/AI/Insights/InsightNeverThrowsHardening.test.ts +344 -0
- package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +720 -0
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +467 -0
- package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +370 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +210 -0
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +221 -0
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +328 -0
- package/Tests/Server/Utils/AI/Insights/MetricBaselineDrift.test.ts +182 -0
- package/Tests/Server/Utils/AI/Insights/MetricDriftDetector.test.ts +280 -0
- package/Tests/Server/Utils/AI/Insights/NewExceptionDetector.test.ts +259 -0
- package/Tests/Server/Utils/AI/Insights/TraceLatencyRegressionDetector.test.ts +770 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +343 -0
- package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +307 -0
- package/Tests/Server/Utils/AI/OpenPullRequestCap.test.ts +170 -0
- package/Tests/Server/Utils/AI/SpanTreeAnalyzer.test.ts +559 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +158 -0
- package/Tests/Server/Utils/GitHubCheckRunsConclusion.test.ts +100 -0
- package/Tests/Server/Utils/GitHubPullRequestStateMapping.test.ts +50 -0
- package/Tests/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.test.ts +266 -0
- package/Tests/Server/Utils/ServiceRepoLinkSuggester.test.ts +167 -0
- package/Tests/Server/Utils/StackTraceRepoResolver.test.ts +527 -0
- package/Tests/Types/AI/AIChatPermissionMode.test.ts +112 -0
- package/Tests/Types/AI/CodeFixTaskType.test.ts +152 -0
- package/Tests/Types/AI/FixPullRequestCiStatus.test.ts +181 -0
- package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +110 -0
- package/Tests/Types/Monitor/SqlDatabaseType.test.ts +55 -0
- package/Tests/Types/Workflow/AIGenerateTextMetadata.test.ts +180 -0
- package/Tests/UI/Components/TableBulkCsvExport.test.tsx +168 -0
- package/Tests/UI/Utils/TableColumnsToCsv.test.ts +523 -0
- package/Types/AI/AIChatTypes.ts +8 -0
- package/Types/AI/AIInsightEvidence.ts +77 -0
- package/Types/AI/AIInsightHumanVerdict.ts +15 -0
- package/Types/AI/AIInsightSeverity.ts +13 -0
- package/Types/AI/AIInsightStatus.ts +38 -0
- package/Types/AI/AIInsightType.ts +41 -0
- package/Types/AI/AIRunAutoGrade.ts +18 -0
- package/Types/AI/AIRunEventType.ts +5 -0
- package/Types/AI/AIRunHumanVerdict.ts +17 -0
- package/Types/AI/AIRunType.ts +6 -0
- package/Types/AI/CodeFixTaskContext.ts +88 -0
- package/Types/AI/CodeFixTaskType.ts +132 -0
- package/Types/AI/FixPullRequestCiStatus.ts +132 -0
- package/Types/BaseDatabase/AggregationIntervalUtil.ts +67 -0
- package/Types/Incident/IncidentMetricType.ts +7 -0
- package/Types/Monitor/CriteriaFilter.ts +8 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +67 -0
- package/Types/Monitor/MonitorStep.ts +38 -0
- package/Types/Monitor/MonitorStepSqlMonitor.ts +141 -0
- package/Types/Monitor/MonitorType.ts +17 -0
- package/Types/Monitor/SqlDatabaseType.ts +49 -0
- package/Types/Monitor/SqlMonitor/SqlMonitorResponse.ts +28 -0
- package/Types/Permission.ts +11 -95
- package/Types/Probe/ProbeMonitorResponse.ts +2 -0
- package/Types/Runbook/RunbookStep.ts +26 -2
- package/Types/Runbook/RunbookStepType.ts +1 -0
- package/Types/Workflow/Component.ts +13 -0
- package/Types/Workflow/ComponentID.ts +1 -0
- package/Types/Workflow/Components/AI.ts +148 -0
- package/Types/Workflow/Components.ts +8 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +1 -1
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +11 -0
- package/UI/Components/MoreMenu/MoreMenu.tsx +1 -1
- package/UI/Components/Table/Table.tsx +38 -2
- package/UI/Utils/TableColumnsToCsv.ts +385 -0
- package/Utils/Monitor/MonitorMetricType.ts +1 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +59 -45
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIInsight.js +795 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +274 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +43 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Dashboard.js +3 -3
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +110 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -8
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +304 -0
- package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js +35 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +127 -6
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Runbook.js +1 -1
- package/build/dist/Models/DatabaseModels/Runbook.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +568 -85
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskAPI.js +100 -44
- package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskLogAPI.js +49 -25
- package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
- package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +27 -0
- package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -1
- package/build/dist/Server/API/AIInsightAPI.js +140 -0
- package/build/dist/Server/API/AIInsightAPI.js.map +1 -0
- package/build/dist/Server/API/AIInvestigationAPI.js +257 -1
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/CodeFixRunAPI.js +181 -0
- package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -0
- package/build/dist/Server/API/GitHubAPI.js +164 -2
- package/build/dist/Server/API/GitHubAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryExceptionAPI.js +148 -43
- package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +1 -1
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783943300000-DropServiceCodeRepository.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783947444597-CodeFixRunsOnAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783950962813-AddCodeFixTaskType.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783954040984-AddInstrumentationFixTasksFlag.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783957160597-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783958542237-AddTaskContextToAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783965945957-AddInvestigationVerdictAndGrade.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619301-AddFixGuardrailColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js +24 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783970619302-DropLegacyAIAgentTaskTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783977781677-AddCiStatusToFixPullRequests.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783990000000-AddCompletionTokensToLlmLog.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274993-AddSentinelInsight.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784010274994-AddSentinelInsightFlags.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js +125 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784030612266-RenameSentinelToAI.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js +62 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784033837629-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +73 -3
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Infrastructure/Semaphore.js +44 -1
- package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
- package/build/dist/Server/Services/AIAgentService.js +29 -0
- package/build/dist/Server/Services/AIAgentService.js.map +1 -1
- package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +78 -0
- package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -1
- package/build/dist/Server/Services/AIInsightService.js +164 -0
- package/build/dist/Server/Services/AIInsightService.js.map +1 -0
- package/build/dist/Server/Services/AIRunEventService.js +49 -0
- package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +221 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +198 -11
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +4 -4
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/CodeRepositoryService.js +180 -0
- package/build/dist/Server/Services/CodeRepositoryService.js.map +1 -1
- package/build/dist/Server/Services/DashboardService.js +8 -2
- package/build/dist/Server/Services/DashboardService.js.map +1 -1
- package/build/dist/Server/Services/GlobalConfigService.js +84 -0
- package/build/dist/Server/Services/GlobalConfigService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +149 -37
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +24 -4
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +4 -4
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/{AIAgentTaskLogService.js → InstanceHealthLogService.js} +2 -2
- package/build/dist/Server/Services/InstanceHealthLogService.js.map +1 -0
- package/build/dist/Server/Services/LlmLogService.js +23 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -1
- package/build/dist/Server/Services/LlmProviderService.js +96 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/MetricBaselineService.js +65 -0
- package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +9 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +243 -82
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +124 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/Workflow/ComponentCode.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js +240 -0
- package/build/dist/Server/Types/Workflow/Components/AI/GenerateText.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
- package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +48 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +174 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +126 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +131 -0
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -0
- package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js +99 -0
- package/build/dist/Server/Utils/AI/CodeFix/OpenPullRequestCap.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js +245 -0
- package/build/dist/Server/Utils/AI/Eval/EvalCorpus.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/EvalScores.js +83 -0
- package/build/dist/Server/Utils/AI/Eval/EvalScores.js.map +1 -0
- package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js +12 -0
- package/build/dist/Server/Utils/AI/Eval/ReplayInvestigation.js.map +1 -0
- package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js +439 -0
- package/build/dist/Server/Utils/AI/PerfEvidence/SpanTreeAnalyzer.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.js → SRE/AIInvestigationEngine.js} +47 -31
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel/SentinelMemory.js → SRE/AIMemory.js} +5 -5
- package/build/dist/Server/Utils/AI/SRE/AIMemory.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/AlertInvestigationRunner.js +42 -19
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +226 -0
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +100 -0
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js +174 -0
- package/build/dist/Server/Utils/AI/SRE/FixPerformanceTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentInvestigationRunner.js +60 -22
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/IncidentPostmortemRunner.js +9 -9
- package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js +268 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ErrorLogSpikeDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +226 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js +26 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/Index.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js +159 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/MetricDriftDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +177 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js +384 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/TraceLatencyRegressionDetector.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js +180 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +269 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js +231 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightStore.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +206 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +121 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Types.js +2 -0
- package/build/dist/Server/Utils/AI/SRE/Insights/Types.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +148 -0
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +231 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -0
- package/build/dist/Server/Utils/AI/{Sentinel → SRE}/InvestigationQueue.js +102 -23
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +167 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/{SentinelActionTools.js → AIActionTools.js} +18 -2
- package/build/dist/Server/Utils/AI/Toolbox/AIActionTools.js.map +1 -0
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -2
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +301 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +240 -2
- package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js +127 -0
- package/build/dist/Server/Utils/CodeRepository/ServiceRepoLinkSuggester.js.map +1 -0
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +336 -0
- package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -0
- package/build/dist/Server/Utils/Execute.js +21 -11
- package/build/dist/Server/Utils/Execute.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +125 -25
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js +120 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SqlMonitorCriteria.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Types/AI/AIInsightEvidence.js +2 -0
- package/build/dist/Types/AI/AIInsightEvidence.js.map +1 -0
- package/build/dist/Types/AI/AIInsightHumanVerdict.js +16 -0
- package/build/dist/Types/AI/AIInsightHumanVerdict.js.map +1 -0
- package/build/dist/Types/AI/AIInsightSeverity.js +14 -0
- package/build/dist/Types/AI/AIInsightSeverity.js.map +1 -0
- package/build/dist/Types/AI/AIInsightStatus.js +36 -0
- package/build/dist/Types/AI/AIInsightStatus.js.map +1 -0
- package/build/dist/Types/AI/AIInsightType.js +42 -0
- package/build/dist/Types/AI/AIInsightType.js.map +1 -0
- package/build/dist/Types/AI/AIRunAutoGrade.js +19 -0
- package/build/dist/Types/AI/AIRunAutoGrade.js.map +1 -0
- package/build/dist/Types/AI/AIRunEventType.js +5 -0
- package/build/dist/Types/AI/AIRunEventType.js.map +1 -1
- package/build/dist/Types/AI/AIRunHumanVerdict.js +18 -0
- package/build/dist/Types/AI/AIRunHumanVerdict.js.map +1 -0
- package/build/dist/Types/AI/AIRunType.js +6 -0
- package/build/dist/Types/AI/AIRunType.js.map +1 -1
- package/build/dist/Types/AI/CodeFixTaskContext.js +29 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskType.js +122 -0
- package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -0
- package/build/dist/Types/AI/FixPullRequestCiStatus.js +102 -0
- package/build/dist/Types/AI/FixPullRequestCiStatus.js.map +1 -0
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +55 -0
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
- package/build/dist/Types/Incident/IncidentMetricType.js +7 -0
- package/build/dist/Types/Incident/IncidentMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +7 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +62 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +28 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +93 -0
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +15 -0
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SqlDatabaseType.js +47 -0
- package/build/dist/Types/Monitor/SqlDatabaseType.js.map +1 -0
- package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js +2 -0
- package/build/dist/Types/Monitor/SqlMonitor/SqlMonitorResponse.js.map +1 -0
- package/build/dist/Types/Permission.js +10 -84
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Runbook/RunbookStepType.js +1 -0
- package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
- package/build/dist/Types/Workflow/ComponentID.js +1 -0
- package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
- package/build/dist/Types/Workflow/Components/AI.js +135 -0
- package/build/dist/Types/Workflow/Components/AI.js.map +1 -0
- package/build/dist/Types/Workflow/Components.js +7 -0
- package/build/dist/Types/Workflow/Components.js.map +1 -1
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -1
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +9 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +1 -1
- package/build/dist/UI/Components/Table/Table.js +28 -2
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Utils/TableColumnsToCsv.js +291 -0
- package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/package.json +1 -1
- package/Models/DatabaseModels/AIAgentTask.ts +0 -660
- package/Models/DatabaseModels/AIAgentTaskLog.ts +0 -426
- package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +0 -399
- package/Models/DatabaseModels/ServiceCodeRepository.ts +0 -647
- package/Server/Services/AIAgentTaskService.ts +0 -240
- package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +0 -39
- package/Server/Services/ServiceCodeRepositoryService.ts +0 -55
- package/Tests/Server/Services/AIAgentTaskServiceClaim.test.ts +0 -146
- package/Types/AI/AIAgentTaskMetadata.ts +0 -25
- package/Types/AI/AIAgentTaskType.ts +0 -40
- package/build/dist/Models/DatabaseModels/AIAgentTask.js +0 -691
- package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +0 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +0 -447
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +0 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +0 -415
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +0 -1
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +0 -665
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskLogService.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskService.js +0 -217
- package/build/dist/Server/Services/AIAgentTaskService.js.map +0 -1
- package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +0 -36
- package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +0 -1
- package/build/dist/Server/Services/ServiceCodeRepositoryService.js +0 -54
- package/build/dist/Server/Services/ServiceCodeRepositoryService.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/IncidentPostmortemRunner.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +0 -1
- package/build/dist/Server/Utils/AI/Sentinel/SentinelMemory.js.map +0 -1
- package/build/dist/Server/Utils/AI/Toolbox/SentinelActionTools.js.map +0 -1
- package/build/dist/Types/AI/AIAgentTaskMetadata.js +0 -6
- package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +0 -1
- package/build/dist/Types/AI/AIAgentTaskType.js +0 -29
- package/build/dist/Types/AI/AIAgentTaskType.js.map +0 -1
package/Server/Utils/AI/{Sentinel/SentinelInvestigationEngine.ts → SRE/AIInvestigationEngine.ts}
RENAMED
|
@@ -14,7 +14,8 @@ import AIRunService from "../../../Services/AIRunService";
|
|
|
14
14
|
import AIRunEventService from "../../../Services/AIRunEventService";
|
|
15
15
|
import ProjectService from "../../../Services/ProjectService";
|
|
16
16
|
import LlmProviderService from "../../../Services/LlmProviderService";
|
|
17
|
-
import
|
|
17
|
+
import AIInvestigationQueue from "./InvestigationQueue";
|
|
18
|
+
import AIConfidenceSignal, { ConfidenceSignal } from "./ConfidenceSignal";
|
|
18
19
|
import ObservabilityAssistant, {
|
|
19
20
|
ObservabilityAssistantResult,
|
|
20
21
|
ObservabilityAssistantStep,
|
|
@@ -24,14 +25,16 @@ import logger from "../../Logger";
|
|
|
24
25
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
25
26
|
|
|
26
27
|
/*
|
|
27
|
-
*
|
|
28
|
+
* AI SRE — the shared autonomous-investigation engine.
|
|
28
29
|
*
|
|
29
30
|
* A single subject-agnostic core that powers "wake on signal" investigations
|
|
30
31
|
* for both incidents and alerts (and, later, anomalies). It:
|
|
31
32
|
* 1. records the run as an AIRun(Investigation) + AIRunEvents (audit trail),
|
|
32
33
|
* 2. runs the existing read-only, tool-grounded, citation-minting agent loop
|
|
33
|
-
* (ObservabilityAssistant) with the
|
|
34
|
-
* 3. brands the cited analysis, judges confidence
|
|
34
|
+
* (ObservabilityAssistant) with the AI persona and a larger budget,
|
|
35
|
+
* 3. brands the cited analysis, judges confidence via the structured
|
|
36
|
+
* ConfidenceSignal (deterministic evidence floor + one constrained
|
|
37
|
+
* classification call — G6: no control flow from free-form prose), and
|
|
35
38
|
* 4. hands the finished analysis back to the caller to post to the subject's
|
|
36
39
|
* timeline.
|
|
37
40
|
*
|
|
@@ -45,13 +48,6 @@ const MAX_TOOL_CALLS: number = 12;
|
|
|
45
48
|
const MAX_WALL_CLOCK_MS: number = 150 * 1000;
|
|
46
49
|
const MAX_OUTPUT_TOKENS: number = 2000;
|
|
47
50
|
|
|
48
|
-
/*
|
|
49
|
-
* Sentinel's own contract: it writes exactly this phrase when it cannot
|
|
50
|
-
* determine a cause. We match it deterministically to drive "quiet mode" —
|
|
51
|
-
* a non-answer should never loudly page the on-call.
|
|
52
|
-
*/
|
|
53
|
-
const INCONCLUSIVE_RE: RegExp = /inconclusive[^.\n]*insufficient signal/i;
|
|
54
|
-
|
|
55
51
|
/*
|
|
56
52
|
* Failures a retry cannot fix within the run's usefulness window: missing/
|
|
57
53
|
* broken provider configuration and budget exhaustion (both messages minted
|
|
@@ -70,7 +66,7 @@ const STEP_EVENT_TYPE: Record<ObservabilityAssistantStepType, AIRunEventType> =
|
|
|
70
66
|
tool_failed: AIRunEventType.ToolCallFailed,
|
|
71
67
|
};
|
|
72
68
|
|
|
73
|
-
const INVESTIGATION_PERSONA: string = `You are
|
|
69
|
+
const INVESTIGATION_PERSONA: string = `You are OneUptime AI, OneUptime's autonomous AI Site Reliability Engineer. You have been woken automatically because a NEW signal (an incident or alert) was just declared in this project — no human has asked you a question yet. Investigate it proactively and produce a first-pass root cause analysis that the on-call engineer will read the moment they are paged.
|
|
74
70
|
|
|
75
71
|
Investigate like a senior on-call engineer:
|
|
76
72
|
- Start from the affected monitors/services named in the signal.
|
|
@@ -80,34 +76,37 @@ Investigate like a senior on-call engineer:
|
|
|
80
76
|
|
|
81
77
|
Write your final answer as a concise incident-response note with exactly these sections (use these markdown headings):
|
|
82
78
|
**Summary** — one or two sentences a paged engineer can read in five seconds.
|
|
83
|
-
**Most likely root cause** — your hypothesis, with only the confidence the evidence actually supports, each factual claim carrying its [C#] citation. If you could not determine it,
|
|
79
|
+
**Most likely root cause** — your hypothesis, with only the confidence the evidence actually supports, each factual claim carrying its [C#] citation. If you could not determine it, say so plainly and explain what is missing.
|
|
84
80
|
**Evidence** — the key findings that support or rule out the hypothesis, each cited.
|
|
85
81
|
**Suggested next steps** — concrete actions for the on-call engineer.
|
|
86
82
|
|
|
87
83
|
Keep it tight and skimmable. You are read-only: never claim to have changed anything.`;
|
|
88
84
|
|
|
89
85
|
// Which signal an investigation is about — each has its own per-project opt-in.
|
|
90
|
-
export type
|
|
86
|
+
export type AISubjectType = "Incident" | "Alert";
|
|
91
87
|
|
|
92
88
|
export interface InvestigationRequest {
|
|
93
|
-
// Label recorded on LlmLog, e.g. "
|
|
89
|
+
// Label recorded on LlmLog, e.g. "AI Incident Investigation".
|
|
94
90
|
feature: string;
|
|
95
91
|
// A compact markdown summary of the subject that seeds the investigation.
|
|
96
92
|
contextSummary: string;
|
|
97
93
|
/*
|
|
98
|
-
* Called with the finished, branded, cited analysis so the caller can post
|
|
99
|
-
* to the subject's timeline. `
|
|
100
|
-
*
|
|
101
|
-
*
|
|
94
|
+
* Called with the finished, branded, cited analysis so the caller can post
|
|
95
|
+
* it to the subject's timeline. `confidence` is the structured,
|
|
96
|
+
* server-verified G6 signal (see ConfidenceSignal.ts) — callers must route
|
|
97
|
+
* every control-flow decision through its helpers
|
|
98
|
+
* (shouldSendWorkspaceNotification / shouldEnqueueInstrumentationTask),
|
|
99
|
+
* never through the analysis prose; the helpers encode each consumer's
|
|
100
|
+
* fail direction when the classification itself failed.
|
|
102
101
|
*/
|
|
103
102
|
postAnalysis: (data: {
|
|
104
103
|
analysisMarkdown: string;
|
|
105
|
-
|
|
104
|
+
confidence: ConfidenceSignal;
|
|
106
105
|
result: ObservabilityAssistantResult;
|
|
107
106
|
}) => Promise<void>;
|
|
108
107
|
}
|
|
109
108
|
|
|
110
|
-
export default class
|
|
109
|
+
export default class AIInvestigationEngine {
|
|
111
110
|
/*
|
|
112
111
|
* Shared gate: AI enabled, the subject's auto-investigation opt-in on, and an
|
|
113
112
|
* LLM provider configured. Incidents and alerts each have their own opt-in so
|
|
@@ -117,7 +116,7 @@ export default class SentinelInvestigationEngine {
|
|
|
117
116
|
@CaptureSpan()
|
|
118
117
|
public static async isEnabledForProject(
|
|
119
118
|
projectId: ObjectID,
|
|
120
|
-
subjectType:
|
|
119
|
+
subjectType: AISubjectType,
|
|
121
120
|
): Promise<boolean> {
|
|
122
121
|
const project: Project | null = await ProjectService.findOneById({
|
|
123
122
|
id: projectId,
|
|
@@ -151,7 +150,7 @@ export default class SentinelInvestigationEngine {
|
|
|
151
150
|
|
|
152
151
|
if (!llmProvider) {
|
|
153
152
|
logger.debug(
|
|
154
|
-
`
|
|
153
|
+
`AI: skipping investigation for project ${projectId.toString()} — no LLM provider configured.`,
|
|
155
154
|
);
|
|
156
155
|
return false;
|
|
157
156
|
}
|
|
@@ -161,7 +160,7 @@ export default class SentinelInvestigationEngine {
|
|
|
161
160
|
|
|
162
161
|
/*
|
|
163
162
|
* Execute an already-CLAIMED (Running) investigation run end-to-end.
|
|
164
|
-
* Called by
|
|
163
|
+
* Called by AIInvestigationQueue after a successful CAS claim —
|
|
165
164
|
* cap/budget gating and run creation live in the queue now. Never throws;
|
|
166
165
|
* failures are handed to the queue's retry policy (failOrRequeue).
|
|
167
166
|
*/
|
|
@@ -188,7 +187,7 @@ export default class SentinelInvestigationEngine {
|
|
|
188
187
|
).toNumber();
|
|
189
188
|
} catch (error) {
|
|
190
189
|
logger.error(
|
|
191
|
-
`
|
|
190
|
+
`AI: failed to read event count for run ${aiRunId.toString()}; starting sequence at 0: ${error}`,
|
|
192
191
|
);
|
|
193
192
|
}
|
|
194
193
|
|
|
@@ -277,7 +276,7 @@ export default class SentinelInvestigationEngine {
|
|
|
277
276
|
|
|
278
277
|
if (completedCount === 0) {
|
|
279
278
|
logger.warn(
|
|
280
|
-
`
|
|
279
|
+
`AI: run ${aiRunId.toString()} finished but was no longer Running (likely requeued as stale mid-flight); skipping postAnalysis to avoid a duplicate RCA.`,
|
|
281
280
|
);
|
|
282
281
|
return;
|
|
283
282
|
}
|
|
@@ -293,21 +292,43 @@ export default class SentinelInvestigationEngine {
|
|
|
293
292
|
|
|
294
293
|
if (!analysis) {
|
|
295
294
|
logger.debug(
|
|
296
|
-
`
|
|
295
|
+
`AI: investigation (run ${aiRunId.toString()}) produced no analysis; nothing posted.`,
|
|
297
296
|
);
|
|
298
297
|
return;
|
|
299
298
|
}
|
|
300
299
|
|
|
301
|
-
|
|
300
|
+
/*
|
|
301
|
+
* G6: judge confidence via the structured signal — the deterministic
|
|
302
|
+
* evidence floor over this run's own server-minted citations, then
|
|
303
|
+
* (only when the floor passes) one constrained classification call.
|
|
304
|
+
* Budget accounting: that call fires AFTER the agent loop finished, so
|
|
305
|
+
* it is deliberately OUTSIDE the per-run caps above (MAX_LLM_CALLS /
|
|
306
|
+
* MAX_OUTPUT_TOKENS govern the loop, whose counts were already
|
|
307
|
+
* persisted at the Completed transition). It is still metered in
|
|
308
|
+
* LlmLog under an AUTONOMOUS_AI_FEATURES feature, so the G4 daily
|
|
309
|
+
* autonomous budget covers it; a budget rejection degrades the signal
|
|
310
|
+
* to "classification-failed" — never a run failure. Running it after
|
|
311
|
+
* the WON Completed transition also means a falsely-requeued duplicate
|
|
312
|
+
* attempt can never double-spend it.
|
|
313
|
+
*/
|
|
314
|
+
const confidence: ConfidenceSignal =
|
|
315
|
+
await AIConfidenceSignal.computeConfidenceSignal({
|
|
316
|
+
projectId,
|
|
317
|
+
aiRunId,
|
|
318
|
+
analysisMarkdown: analysis,
|
|
319
|
+
evidence: AIConfidenceSignal.evidenceFromCitations(
|
|
320
|
+
result.citations || [],
|
|
321
|
+
),
|
|
322
|
+
});
|
|
302
323
|
|
|
303
324
|
await request.postAnalysis({
|
|
304
325
|
analysisMarkdown: this.buildBrandedMarkdown(result, analysis),
|
|
305
|
-
|
|
326
|
+
confidence,
|
|
306
327
|
result,
|
|
307
328
|
});
|
|
308
329
|
|
|
309
330
|
logger.debug(
|
|
310
|
-
`
|
|
331
|
+
`AI: investigation complete (run ${aiRunId.toString()}, confident=${confidence.confident} via ${confidence.source}, ${result.llmCallCount} LLM calls, ${result.toolCallCount} tools, ${result.totalTokens} tokens).`,
|
|
311
332
|
);
|
|
312
333
|
} catch (error) {
|
|
313
334
|
const message: string =
|
|
@@ -330,7 +351,7 @@ export default class SentinelInvestigationEngine {
|
|
|
330
351
|
* Only configuration/budget gating — which a retry cannot change
|
|
331
352
|
* within the run's usefulness window — counts as permanent.
|
|
332
353
|
*/
|
|
333
|
-
await
|
|
354
|
+
await AIInvestigationQueue.failOrRequeue({
|
|
334
355
|
aiRunId,
|
|
335
356
|
attemptCount: data.attemptCount,
|
|
336
357
|
errorMessage: message,
|
|
@@ -338,17 +359,17 @@ export default class SentinelInvestigationEngine {
|
|
|
338
359
|
});
|
|
339
360
|
|
|
340
361
|
logger.error(
|
|
341
|
-
`
|
|
362
|
+
`AI: investigation attempt ${data.attemptCount} failed (run ${aiRunId.toString()}): ${message}`,
|
|
342
363
|
);
|
|
343
364
|
}
|
|
344
365
|
}
|
|
345
366
|
|
|
346
|
-
// Wrap the agent's analysis with
|
|
367
|
+
// Wrap the agent's analysis with AI branding + an evidence list.
|
|
347
368
|
private static buildBrandedMarkdown(
|
|
348
369
|
result: ObservabilityAssistantResult,
|
|
349
370
|
analysisMarkdown: string,
|
|
350
371
|
): string {
|
|
351
|
-
let markdown: string = `## 🧠
|
|
372
|
+
let markdown: string = `## 🧠 AI — Automated Root Cause Analysis\n\n${analysisMarkdown}`;
|
|
352
373
|
|
|
353
374
|
const citations: Array<AIChatCitation> = result.citations || [];
|
|
354
375
|
|
|
@@ -359,7 +380,7 @@ export default class SentinelInvestigationEngine {
|
|
|
359
380
|
}
|
|
360
381
|
}
|
|
361
382
|
|
|
362
|
-
markdown += `\n\n---\n*Investigated automatically by OneUptime
|
|
383
|
+
markdown += `\n\n---\n*Investigated automatically by OneUptime AI — read-only, ${result.toolCallCount} quer${
|
|
363
384
|
result.toolCallCount === 1 ? "y" : "ies"
|
|
364
385
|
} run across your own telemetry${
|
|
365
386
|
result.modelName ? ` using ${result.modelName}` : ""
|
|
@@ -379,7 +400,7 @@ export default class SentinelInvestigationEngine {
|
|
|
379
400
|
props: { isRoot: true },
|
|
380
401
|
});
|
|
381
402
|
} catch (error) {
|
|
382
|
-
logger.error(`
|
|
403
|
+
logger.error(`AI: heartbeat update failed: ${error}`);
|
|
383
404
|
}
|
|
384
405
|
}
|
|
385
406
|
|
|
@@ -419,7 +440,7 @@ export default class SentinelInvestigationEngine {
|
|
|
419
440
|
});
|
|
420
441
|
} catch (error) {
|
|
421
442
|
// Events are best-effort telemetry — never fail the run because of them.
|
|
422
|
-
logger.error(`
|
|
443
|
+
logger.error(`AI: failed to emit AIRunEvent: ${error}`);
|
|
423
444
|
}
|
|
424
445
|
}
|
|
425
446
|
}
|
|
@@ -7,7 +7,7 @@ import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
|
7
7
|
import logger from "../../Logger";
|
|
8
8
|
|
|
9
9
|
/*
|
|
10
|
-
*
|
|
10
|
+
* AI SRE — episodic memory (Phase 4, "I've seen this before").
|
|
11
11
|
*
|
|
12
12
|
* The first, no-new-storage cut of the recurrence short-circuit: instead of a
|
|
13
13
|
* vector store, retrieve past RESOLVED incidents in the same project that share
|
|
@@ -28,7 +28,7 @@ const MAX_ROOT_CAUSE_CHARS: number = 300;
|
|
|
28
28
|
const SHARED_MONITOR_SCORE: number = 2;
|
|
29
29
|
const SHARED_LABEL_SCORE: number = 1;
|
|
30
30
|
|
|
31
|
-
export default class
|
|
31
|
+
export default class AIMemory {
|
|
32
32
|
/*
|
|
33
33
|
* Returns a markdown "past resolved incidents" section to append to the
|
|
34
34
|
* investigation context, or an empty string when there is nothing useful.
|
|
@@ -160,7 +160,7 @@ export default class SentinelMemory {
|
|
|
160
160
|
|
|
161
161
|
return markdown;
|
|
162
162
|
} catch (error) {
|
|
163
|
-
logger.error(`
|
|
163
|
+
logger.error(`AI: failed to load recurrence context: ${error}`);
|
|
164
164
|
return "";
|
|
165
165
|
}
|
|
166
166
|
}
|
|
@@ -16,19 +16,22 @@ import QueryHelper from "../../../Types/Database/QueryHelper";
|
|
|
16
16
|
import AlertAIContextBuilder, {
|
|
17
17
|
AlertContextData,
|
|
18
18
|
} from "../AlertAIContextBuilder";
|
|
19
|
-
import
|
|
20
|
-
import
|
|
19
|
+
import { AI_ALERT_INVESTIGATION_FEATURE } from "../../../Services/AIService";
|
|
20
|
+
import AIInvestigationEngine from "./AIInvestigationEngine";
|
|
21
|
+
import AIInvestigationQueue from "./InvestigationQueue";
|
|
22
|
+
import AIConfidenceSignal, { ConfidenceSignal } from "./ConfidenceSignal";
|
|
23
|
+
import InstrumentationTaskTrigger from "./InstrumentationTaskTrigger";
|
|
21
24
|
import { ObservabilityAssistantResult } from "../Chat/ObservabilityAssistant";
|
|
22
25
|
import logger from "../../Logger";
|
|
23
26
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
24
27
|
|
|
25
28
|
/*
|
|
26
|
-
*
|
|
29
|
+
* AI SRE — alert investigation.
|
|
27
30
|
*
|
|
28
31
|
* Alerts are the earlier, "left of boom" signal. When a new alert is declared,
|
|
29
|
-
*
|
|
32
|
+
* AI investigates it (read-only) and posts a cited root-cause analysis to
|
|
30
33
|
* the alert timeline + Slack/Teams. Symmetric to incident investigation and
|
|
31
|
-
* built on the same shared
|
|
34
|
+
* built on the same shared AIInvestigationEngine.
|
|
32
35
|
*
|
|
33
36
|
* Gated by the same per-project opt-in as incidents, PLUS alert-specific cost
|
|
34
37
|
* gates (alert volume can be far higher than incidents):
|
|
@@ -52,7 +55,7 @@ export interface AlertGateDecision {
|
|
|
52
55
|
monitorId?: ObjectID | undefined;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
|
-
export default class
|
|
58
|
+
export default class AIAlertInvestigationRunner {
|
|
56
59
|
/*
|
|
57
60
|
* Entry point called (fire-and-forget) from AlertService.onCreateSuccess.
|
|
58
61
|
* Cheap: gates + a Queued AIRun row; execution happens via the queue.
|
|
@@ -67,10 +70,7 @@ export default class SentinelAlertInvestigationRunner {
|
|
|
67
70
|
|
|
68
71
|
try {
|
|
69
72
|
if (
|
|
70
|
-
!(await
|
|
71
|
-
projectId,
|
|
72
|
-
"Alert",
|
|
73
|
-
))
|
|
73
|
+
!(await AIInvestigationEngine.isEnabledForProject(projectId, "Alert"))
|
|
74
74
|
) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
@@ -82,26 +82,26 @@ export default class SentinelAlertInvestigationRunner {
|
|
|
82
82
|
|
|
83
83
|
if (!gate.investigate) {
|
|
84
84
|
logger.debug(
|
|
85
|
-
`
|
|
85
|
+
`AI: skipping investigation for alert ${alertId.toString()} — ${gate.reason}.`,
|
|
86
86
|
);
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
await
|
|
90
|
+
await AIInvestigationQueue.enqueue({
|
|
91
91
|
projectId,
|
|
92
92
|
subjectAlertId: alertId,
|
|
93
93
|
subjectMonitorId: gate.monitorId,
|
|
94
94
|
});
|
|
95
95
|
} catch (error) {
|
|
96
96
|
logger.error(
|
|
97
|
-
`
|
|
97
|
+
`AI: unexpected error enqueueing investigation for alert ${alertId.toString()}: ${error}`,
|
|
98
98
|
);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/*
|
|
103
103
|
* Execute a claimed run: assemble alert context and hand it to the engine.
|
|
104
|
-
* Called by
|
|
104
|
+
* Called by AIInvestigationQueue after a successful claim. Never
|
|
105
105
|
* throws — failures are handed to the queue's retry policy so a claimed
|
|
106
106
|
* run is always finalized or requeued.
|
|
107
107
|
*/
|
|
@@ -127,7 +127,7 @@ export default class SentinelAlertInvestigationRunner {
|
|
|
127
127
|
* Context assembly failed — the run is claimed, so hand it to the
|
|
128
128
|
* retry policy rather than leaving it Running until the sweeper.
|
|
129
129
|
*/
|
|
130
|
-
await
|
|
130
|
+
await AIInvestigationQueue.failOrRequeue({
|
|
131
131
|
aiRunId,
|
|
132
132
|
attemptCount,
|
|
133
133
|
errorMessage: `Failed to build alert context: ${
|
|
@@ -138,16 +138,17 @@ export default class SentinelAlertInvestigationRunner {
|
|
|
138
138
|
return;
|
|
139
139
|
}
|
|
140
140
|
|
|
141
|
-
await
|
|
141
|
+
await AIInvestigationEngine.executeRun({
|
|
142
142
|
aiRunId,
|
|
143
143
|
projectId,
|
|
144
144
|
attemptCount,
|
|
145
145
|
request: {
|
|
146
|
-
|
|
146
|
+
// Persisted LlmLog label — owned by AIService (G4 budget list).
|
|
147
|
+
feature: AI_ALERT_INVESTIGATION_FEATURE,
|
|
147
148
|
contextSummary,
|
|
148
149
|
postAnalysis: async (postData: {
|
|
149
150
|
analysisMarkdown: string;
|
|
150
|
-
|
|
151
|
+
confidence: ConfidenceSignal;
|
|
151
152
|
result: ObservabilityAssistantResult;
|
|
152
153
|
}): Promise<void> => {
|
|
153
154
|
await AlertFeedService.createAlertFeedItem({
|
|
@@ -158,12 +159,41 @@ export default class SentinelAlertInvestigationRunner {
|
|
|
158
159
|
feedInfoInMarkdown: postData.analysisMarkdown,
|
|
159
160
|
/*
|
|
160
161
|
* Quiet mode: an inconclusive investigation posts to the timeline
|
|
161
|
-
* but does NOT loudly ping the workspace / on-call.
|
|
162
|
+
* but does NOT loudly ping the workspace / on-call. Fail
|
|
163
|
+
* direction (G6): when the confidence classification itself
|
|
164
|
+
* failed, the ping SENDS — quiet mode fails louder, not silent.
|
|
162
165
|
*/
|
|
163
166
|
workspaceNotification: {
|
|
164
|
-
sendWorkspaceNotification:
|
|
167
|
+
sendWorkspaceNotification:
|
|
168
|
+
AIConfidenceSignal.shouldSendWorkspaceNotification(
|
|
169
|
+
postData.confidence,
|
|
170
|
+
),
|
|
165
171
|
},
|
|
166
172
|
});
|
|
173
|
+
|
|
174
|
+
/*
|
|
175
|
+
* Inconclusive means the telemetry was insufficient — for
|
|
176
|
+
* opted-in projects (Project.enableInstrumentationFixTasks,
|
|
177
|
+
* default false), queue an ImproveInstrumentation fix task that
|
|
178
|
+
* opens a PR adding the missing observability. Runs strictly
|
|
179
|
+
* AFTER the analysis is posted, and the trigger never throws, so
|
|
180
|
+
* the investigation can neither be blocked nor failed by it.
|
|
181
|
+
* Fail direction (G6): only a POSITIVE inconclusive verdict
|
|
182
|
+
* (deterministic floor or classification) enqueues — a failed
|
|
183
|
+
* classification does NOT create a PR.
|
|
184
|
+
*/
|
|
185
|
+
if (
|
|
186
|
+
AIConfidenceSignal.shouldEnqueueInstrumentationTask(
|
|
187
|
+
postData.confidence,
|
|
188
|
+
)
|
|
189
|
+
) {
|
|
190
|
+
await InstrumentationTaskTrigger.enqueueForInconclusiveInvestigation(
|
|
191
|
+
{
|
|
192
|
+
projectId,
|
|
193
|
+
alertId,
|
|
194
|
+
},
|
|
195
|
+
);
|
|
196
|
+
}
|
|
167
197
|
},
|
|
168
198
|
},
|
|
169
199
|
});
|