@oneuptime/common 11.5.4 → 11.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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/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 +2 -1
- 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/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/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/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.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
|
@@ -27,7 +27,8 @@ import IncidentRole from "../../Models/DatabaseModels/IncidentRole";
|
|
|
27
27
|
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
28
28
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
29
29
|
import IncidentFeedService from "./IncidentFeedService";
|
|
30
|
-
import
|
|
30
|
+
import AIIncidentPostmortemRunner from "../Utils/AI/SRE/IncidentPostmortemRunner";
|
|
31
|
+
import InvestigationGrader from "../Utils/AI/SRE/InvestigationGrader";
|
|
31
32
|
import { IncidentFeedEventType } from "../../Models/DatabaseModels/IncidentFeed";
|
|
32
33
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
33
34
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
@@ -558,14 +559,33 @@ ${createdItem.rootCause}`,
|
|
|
558
559
|
}
|
|
559
560
|
|
|
560
561
|
/*
|
|
561
|
-
*
|
|
562
|
+
* AI: auto-draft a postmortem now that the incident is resolved
|
|
562
563
|
* (gated per project; never overwrites an existing postmortem).
|
|
563
564
|
*/
|
|
564
|
-
|
|
565
|
+
AIIncidentPostmortemRunner.draftPostmortemOnResolve({
|
|
565
566
|
incidentId: createdItem.incidentId!,
|
|
566
567
|
projectId: createdItem.projectId!,
|
|
567
568
|
}).catch((error: Error) => {
|
|
568
|
-
logger.error(`
|
|
569
|
+
logger.error(`AI auto-postmortem failed on resolve:`, {
|
|
570
|
+
projectId: createdItem.projectId?.toString(),
|
|
571
|
+
incidentId: createdItem.incidentId?.toString(),
|
|
572
|
+
} as LogAttributes);
|
|
573
|
+
logger.error(error, {
|
|
574
|
+
projectId: createdItem.projectId?.toString(),
|
|
575
|
+
incidentId: createdItem.incidentId?.toString(),
|
|
576
|
+
} as LogAttributes);
|
|
577
|
+
});
|
|
578
|
+
|
|
579
|
+
/*
|
|
580
|
+
* AI measurement layer: grade the completed investigation (if
|
|
581
|
+
* any) against the human-recorded root cause. Fire-and-forget like
|
|
582
|
+
* the postmortem draft above — must never block or fail the resolve.
|
|
583
|
+
*/
|
|
584
|
+
InvestigationGrader.gradeInvestigationOnResolve({
|
|
585
|
+
incidentId: createdItem.incidentId!,
|
|
586
|
+
projectId: createdItem.projectId!,
|
|
587
|
+
}).catch((error: Error) => {
|
|
588
|
+
logger.error(`AI investigation grading failed on resolve:`, {
|
|
569
589
|
projectId: createdItem.projectId?.toString(),
|
|
570
590
|
incidentId: createdItem.incidentId?.toString(),
|
|
571
591
|
} as LogAttributes);
|
package/Server/Services/Index.ts
CHANGED
|
@@ -13,6 +13,7 @@ import CallLogService from "./CallLogService";
|
|
|
13
13
|
import CallService from "./CallService";
|
|
14
14
|
import DataMigrationService from "./DataMigrationService";
|
|
15
15
|
import MigrationFailureService from "./MigrationFailureService";
|
|
16
|
+
import InstanceHealthLogService from "./InstanceHealthLogService";
|
|
16
17
|
import DomainService from "./DomainService";
|
|
17
18
|
import EmailLogService from "./EmailLogService";
|
|
18
19
|
import EmailVerificationTokenService from "./EmailVerificationTokenService";
|
|
@@ -81,6 +82,7 @@ import MonitorOwnerUserService from "./MonitorOwnerUserService";
|
|
|
81
82
|
import MonitorProbeService from "./MonitorProbeService";
|
|
82
83
|
import MonitorSecretService from "./MonitorSecretService";
|
|
83
84
|
import RunbookSecretService from "./RunbookSecretService";
|
|
85
|
+
import AIInsightService from "./AIInsightService";
|
|
84
86
|
|
|
85
87
|
// Monitors
|
|
86
88
|
import MonitorService from "./MonitorService";
|
|
@@ -104,7 +106,6 @@ import ProbeService from "./ProbeService";
|
|
|
104
106
|
import AIAgentService from "./AIAgentService";
|
|
105
107
|
import AIAgentOwnerUserService from "./AIAgentOwnerUserService";
|
|
106
108
|
import AIAgentOwnerTeamService from "./AIAgentOwnerTeamService";
|
|
107
|
-
import AIAgentTaskLogService from "./AIAgentTaskLogService";
|
|
108
109
|
import AIAgentTaskPullRequestService from "./AIAgentTaskPullRequestService";
|
|
109
110
|
import ProjectCallSMSConfigService from "./ProjectCallSMSConfigService";
|
|
110
111
|
import ProjectService from "./ProjectService";
|
|
@@ -137,7 +138,6 @@ import ScheduledMaintenanceStateTimelineService from "./ScheduledMaintenanceStat
|
|
|
137
138
|
import ServiceOwnerTeamService from "./ServiceOwnerTeamService";
|
|
138
139
|
import ServiceOwnerUserService from "./ServiceOwnerUserService";
|
|
139
140
|
import ServiceService from "./ServiceService";
|
|
140
|
-
import ServiceCodeRepositoryService from "./ServiceCodeRepositoryService";
|
|
141
141
|
import ShortLinkService from "./ShortLinkService";
|
|
142
142
|
// SMS Log Service
|
|
143
143
|
import SmsLogService from "./SmsLogService";
|
|
@@ -282,6 +282,7 @@ const services: Array<BaseService> = [
|
|
|
282
282
|
|
|
283
283
|
DataMigrationService,
|
|
284
284
|
MigrationFailureService,
|
|
285
|
+
InstanceHealthLogService,
|
|
285
286
|
DomainService,
|
|
286
287
|
|
|
287
288
|
EmailLogService,
|
|
@@ -346,6 +347,7 @@ const services: Array<BaseService> = [
|
|
|
346
347
|
MonitorStatusTimelineService,
|
|
347
348
|
MonitorSecretService,
|
|
348
349
|
RunbookSecretService,
|
|
350
|
+
AIInsightService,
|
|
349
351
|
MonitorFeedService,
|
|
350
352
|
|
|
351
353
|
NotificationService,
|
|
@@ -365,7 +367,6 @@ const services: Array<BaseService> = [
|
|
|
365
367
|
AIAgentService,
|
|
366
368
|
AIAgentOwnerUserService,
|
|
367
369
|
AIAgentOwnerTeamService,
|
|
368
|
-
AIAgentTaskLogService,
|
|
369
370
|
AIAgentTaskPullRequestService,
|
|
370
371
|
ProjectSsoService,
|
|
371
372
|
ProjectOidcService,
|
|
@@ -456,7 +457,6 @@ const services: Array<BaseService> = [
|
|
|
456
457
|
ServiceService,
|
|
457
458
|
ServiceOwnerTeamService,
|
|
458
459
|
ServiceOwnerUserService,
|
|
459
|
-
ServiceCodeRepositoryService,
|
|
460
460
|
|
|
461
461
|
TelemetryExceptionService,
|
|
462
462
|
TelemetryEntityService,
|
|
@@ -35,6 +35,33 @@ export class Service extends DatabaseService<Model> {
|
|
|
35
35
|
|
|
36
36
|
return Number(rows[0]?.total || 0);
|
|
37
37
|
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* Per-run LLM usage for the server-mediated code-fix agent loop budgets
|
|
41
|
+
* (B4 Tier 0): how many completion calls a run has made and how many
|
|
42
|
+
* output tokens they produced. One SQL aggregate over the run's LlmLog
|
|
43
|
+
* rows — executeWithLogging writes exactly one row per call (success,
|
|
44
|
+
* error, or budget rejection), so the count is the honest call count and
|
|
45
|
+
* errored calls conservatively consume a slot. Runs are bounded to ~30
|
|
46
|
+
* minutes, far inside the 3-day cloud LlmLog retention.
|
|
47
|
+
*/
|
|
48
|
+
@CaptureSpan()
|
|
49
|
+
public async getRunCompletionUsage(data: {
|
|
50
|
+
aiRunId: ObjectID;
|
|
51
|
+
}): Promise<{ completionCalls: number; outputTokens: number }> {
|
|
52
|
+
const rows: Array<{
|
|
53
|
+
calls: string | number | null;
|
|
54
|
+
outputTokens: string | number | null;
|
|
55
|
+
}> = await this.getRepository().manager.query(
|
|
56
|
+
`SELECT COUNT(*) AS "calls", COALESCE(SUM("completionTokens"), 0) AS "outputTokens" FROM "LlmLog" WHERE "aiRunId" = $1 AND "deletedAt" IS NULL`,
|
|
57
|
+
[data.aiRunId.toString()],
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
completionCalls: Number(rows[0]?.calls || 0),
|
|
62
|
+
outputTokens: Number(rows[0]?.outputTokens || 0),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
38
65
|
}
|
|
39
66
|
|
|
40
67
|
export default new Service();
|
|
@@ -157,6 +157,114 @@ export class Service extends DatabaseService<Model> {
|
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
/*
|
|
161
|
+
* Resolve a provider the project OWNS — never the global fallback.
|
|
162
|
+
* Callers that may also use the shared global provider layer that
|
|
163
|
+
* fallback themselves (see getLlmProviderForMeteredAgentPath). Prefers
|
|
164
|
+
* the project default, else any project-owned provider.
|
|
165
|
+
*/
|
|
166
|
+
@CaptureSpan()
|
|
167
|
+
public async getProjectOwnedLlmProvider(
|
|
168
|
+
projectId: ObjectID,
|
|
169
|
+
): Promise<Model | null> {
|
|
170
|
+
const select: {
|
|
171
|
+
_id: boolean;
|
|
172
|
+
name: boolean;
|
|
173
|
+
llmType: boolean;
|
|
174
|
+
apiKey: boolean;
|
|
175
|
+
baseUrl: boolean;
|
|
176
|
+
modelName: boolean;
|
|
177
|
+
additionalParams: boolean;
|
|
178
|
+
isGlobalLlm: boolean;
|
|
179
|
+
costPerMillionTokensInUSDCents: boolean;
|
|
180
|
+
} = {
|
|
181
|
+
_id: true,
|
|
182
|
+
name: true,
|
|
183
|
+
llmType: true,
|
|
184
|
+
apiKey: true,
|
|
185
|
+
baseUrl: true,
|
|
186
|
+
modelName: true,
|
|
187
|
+
additionalParams: true,
|
|
188
|
+
isGlobalLlm: true,
|
|
189
|
+
costPerMillionTokensInUSDCents: true,
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const defaultProvider: Model | null = await this.findOneBy({
|
|
193
|
+
query: {
|
|
194
|
+
projectId: projectId,
|
|
195
|
+
isDefault: true,
|
|
196
|
+
},
|
|
197
|
+
select,
|
|
198
|
+
props: {
|
|
199
|
+
isRoot: true,
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
if (defaultProvider) {
|
|
204
|
+
return defaultProvider;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return this.findOneBy({
|
|
208
|
+
query: {
|
|
209
|
+
projectId: projectId,
|
|
210
|
+
},
|
|
211
|
+
sort: {
|
|
212
|
+
createdAt: SortOrder.Ascending,
|
|
213
|
+
},
|
|
214
|
+
select,
|
|
215
|
+
props: {
|
|
216
|
+
isRoot: true,
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/*
|
|
222
|
+
* Resolve the provider for the METERED agent path (B4 Tier 0): the
|
|
223
|
+
* server-mediated /ai-agent-data/llm-completion endpoint, whose calls run
|
|
224
|
+
* through AIService.executeWithLogging — logged to LlmLog, billed when the
|
|
225
|
+
* global provider is costed, and inside the daily autonomous token budget.
|
|
226
|
+
*
|
|
227
|
+
* Because metering is universal on this path, a project-owned provider
|
|
228
|
+
* still wins, but when the project owns none the shared global provider
|
|
229
|
+
* is returned ON CLOUD TOO — its usage is billed as metered AI tokens.
|
|
230
|
+
* Cloud zero-config completes: fix tasks work with no per-project
|
|
231
|
+
* provider. (The old raw-key path — get-llm-config handing the provider
|
|
232
|
+
* apiKey to the worker for unmetered direct calls — is removed; this is
|
|
233
|
+
* the only agent provider resolution left.)
|
|
234
|
+
*/
|
|
235
|
+
@CaptureSpan()
|
|
236
|
+
public async getLlmProviderForMeteredAgentPath(
|
|
237
|
+
projectId: ObjectID,
|
|
238
|
+
): Promise<Model | null> {
|
|
239
|
+
const projectOwnedProvider: Model | null =
|
|
240
|
+
await this.getProjectOwnedLlmProvider(projectId);
|
|
241
|
+
|
|
242
|
+
if (projectOwnedProvider) {
|
|
243
|
+
return projectOwnedProvider;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return this.findOneBy({
|
|
247
|
+
query: {
|
|
248
|
+
projectId: QueryHelper.isNull(),
|
|
249
|
+
isGlobalLlm: true,
|
|
250
|
+
},
|
|
251
|
+
select: {
|
|
252
|
+
_id: true,
|
|
253
|
+
name: true,
|
|
254
|
+
llmType: true,
|
|
255
|
+
apiKey: true,
|
|
256
|
+
baseUrl: true,
|
|
257
|
+
modelName: true,
|
|
258
|
+
additionalParams: true,
|
|
259
|
+
isGlobalLlm: true,
|
|
260
|
+
costPerMillionTokensInUSDCents: true,
|
|
261
|
+
},
|
|
262
|
+
props: {
|
|
263
|
+
isRoot: true,
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
|
|
160
268
|
/*
|
|
161
269
|
* Resolve the provider to use for a chat turn. When the user has explicitly
|
|
162
270
|
* chosen a provider (llmProviderId), use it — but only if it is actually
|
|
@@ -44,6 +44,20 @@ export interface BandPoint {
|
|
|
44
44
|
expectedLow: number;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* One (metric, entity) cell's finalized mean/sample-count for one of the
|
|
49
|
+
* two week-over-week drift windows. The AI MetricDrift detector
|
|
50
|
+
* joins the "recent" and "prior" rows in JS (the join stays app-side so
|
|
51
|
+
* the drift decision is a pure, unit-testable function).
|
|
52
|
+
*/
|
|
53
|
+
export interface MetricDriftWindowRow {
|
|
54
|
+
name: string;
|
|
55
|
+
primaryEntityId: string;
|
|
56
|
+
mean: number;
|
|
57
|
+
sampleCount: number;
|
|
58
|
+
window: "recent" | "prior";
|
|
59
|
+
}
|
|
60
|
+
|
|
47
61
|
/**
|
|
48
62
|
* Read-side service for the `MetricBaselineHourly` MV target table.
|
|
49
63
|
*
|
|
@@ -96,6 +110,14 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
96
110
|
public static readonly WINDOW_DAYS_OPTIONS: ReadonlyArray<number> = [
|
|
97
111
|
14, 28, 60, 90,
|
|
98
112
|
];
|
|
113
|
+
/**
|
|
114
|
+
* Hard cap on rows returned per drift window. Params travel in the
|
|
115
|
+
* ClickHouse HTTP URI and the detector joins both windows in JS, so an
|
|
116
|
+
* unbounded GROUP BY over a high-cardinality tenant would be both a
|
|
117
|
+
* memory and a transfer problem. Ranked by sampleCount so the busiest
|
|
118
|
+
* (most statistically trustworthy) cells always make the cut.
|
|
119
|
+
*/
|
|
120
|
+
public static readonly DRIFT_MAX_ROWS_PER_WINDOW: number = 500;
|
|
99
121
|
|
|
100
122
|
/**
|
|
101
123
|
* Fetch the rolling-window baseline for one (metric, [entity],
|
|
@@ -285,6 +307,107 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
285
307
|
return { totalSamples, oldestDay };
|
|
286
308
|
}
|
|
287
309
|
|
|
310
|
+
/**
|
|
311
|
+
* Week-over-week drift feed for the AI MetricDrift detector: the
|
|
312
|
+
* finalized mean + sample count per (metric name, entity) cell for two
|
|
313
|
+
* adjacent 7-day windows — "recent" (last 7 days including today) and
|
|
314
|
+
* "prior" (the 7 days before that). Two GROUP BY finalization queries
|
|
315
|
+
* over the MetricBaselineHourly states (same *Merge idiom as
|
|
316
|
+
* getBaseline); the recent/prior JOIN deliberately happens in the
|
|
317
|
+
* caller's pure decision function, not in SQL, so it is unit-testable.
|
|
318
|
+
* Each window is capped at `limitPerWindow` rows (≤
|
|
319
|
+
* DRIFT_MAX_ROWS_PER_WINDOW) ranked by sampleCount descending.
|
|
320
|
+
*/
|
|
321
|
+
public async getWeekOverWeekDrift(data: {
|
|
322
|
+
projectId: ObjectID;
|
|
323
|
+
limitPerWindow: number;
|
|
324
|
+
}): Promise<Array<MetricDriftWindowRow>> {
|
|
325
|
+
const projectIdStr: string = this.escapeString(data.projectId.toString());
|
|
326
|
+
const limit: number = Math.max(
|
|
327
|
+
1,
|
|
328
|
+
Math.min(
|
|
329
|
+
Math.floor(data.limitPerWindow),
|
|
330
|
+
MetricBaselineService.DRIFT_MAX_ROWS_PER_WINDOW,
|
|
331
|
+
),
|
|
332
|
+
);
|
|
333
|
+
|
|
334
|
+
const windows: Array<{ window: "recent" | "prior"; dayFilter: string }> = [
|
|
335
|
+
{
|
|
336
|
+
window: "recent",
|
|
337
|
+
dayFilter: "day >= today() - INTERVAL 7 DAY",
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
window: "prior",
|
|
341
|
+
dayFilter:
|
|
342
|
+
"day BETWEEN today() - INTERVAL 14 DAY AND today() - INTERVAL 8 DAY",
|
|
343
|
+
},
|
|
344
|
+
];
|
|
345
|
+
|
|
346
|
+
const out: Array<MetricDriftWindowRow> = [];
|
|
347
|
+
|
|
348
|
+
for (const windowSpec of windows) {
|
|
349
|
+
const sql: string = `
|
|
350
|
+
SELECT
|
|
351
|
+
name,
|
|
352
|
+
primaryEntityId,
|
|
353
|
+
avgMerge(meanState) AS mean,
|
|
354
|
+
countMerge(sampleCountState) AS sampleCount
|
|
355
|
+
FROM MetricBaselineHourly
|
|
356
|
+
WHERE projectId = '${projectIdStr}'
|
|
357
|
+
AND ${windowSpec.dayFilter}
|
|
358
|
+
GROUP BY name, primaryEntityId
|
|
359
|
+
ORDER BY sampleCount DESC
|
|
360
|
+
LIMIT ${limit}
|
|
361
|
+
`;
|
|
362
|
+
|
|
363
|
+
const resultSet: {
|
|
364
|
+
json: () => Promise<{
|
|
365
|
+
data: Array<{
|
|
366
|
+
name: string;
|
|
367
|
+
primaryEntityId: string;
|
|
368
|
+
mean: number | string;
|
|
369
|
+
sampleCount: number | string;
|
|
370
|
+
}>;
|
|
371
|
+
}>;
|
|
372
|
+
} = (await this.executeQuery(sql)) as unknown as {
|
|
373
|
+
json: () => Promise<{
|
|
374
|
+
data: Array<{
|
|
375
|
+
name: string;
|
|
376
|
+
primaryEntityId: string;
|
|
377
|
+
mean: number | string;
|
|
378
|
+
sampleCount: number | string;
|
|
379
|
+
}>;
|
|
380
|
+
}>;
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
const parsed: {
|
|
384
|
+
data: Array<{
|
|
385
|
+
name: string;
|
|
386
|
+
primaryEntityId: string;
|
|
387
|
+
mean: number | string;
|
|
388
|
+
sampleCount: number | string;
|
|
389
|
+
}>;
|
|
390
|
+
} = await resultSet.json();
|
|
391
|
+
|
|
392
|
+
for (const row of parsed.data) {
|
|
393
|
+
out.push({
|
|
394
|
+
name: String(row.name || ""),
|
|
395
|
+
primaryEntityId: String(row.primaryEntityId || ""),
|
|
396
|
+
mean: this.toNumber(row.mean),
|
|
397
|
+
sampleCount: this.toNumber(row.sampleCount),
|
|
398
|
+
window: windowSpec.window,
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
logger.debug("MetricBaselineService.getWeekOverWeekDrift", {
|
|
404
|
+
projectId: projectIdStr,
|
|
405
|
+
rowCount: out.length,
|
|
406
|
+
} as LogAttributes);
|
|
407
|
+
|
|
408
|
+
return out;
|
|
409
|
+
}
|
|
410
|
+
|
|
288
411
|
/**
|
|
289
412
|
* Build a series of (time, mean, expectedHigh, expectedLow) points
|
|
290
413
|
* spanning [startTime, endTime] in `intervalMinutes` steps. Each
|
|
@@ -148,6 +148,21 @@ export class Service extends DatabaseService<Model> {
|
|
|
148
148
|
monitorDestination =
|
|
149
149
|
firstStep.data.externalStatusPageMonitor.statusPageUrl || "";
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
// For SQL monitors, show host:port/database (never the credentials).
|
|
153
|
+
if (
|
|
154
|
+
monitorType === MonitorType.SQLQuery &&
|
|
155
|
+
firstStep?.data?.sqlMonitor
|
|
156
|
+
) {
|
|
157
|
+
const sql: {
|
|
158
|
+
host: string;
|
|
159
|
+
port: number;
|
|
160
|
+
databaseName: string;
|
|
161
|
+
} = firstStep.data.sqlMonitor;
|
|
162
|
+
if (sql.host) {
|
|
163
|
+
monitorDestination = `${sql.host}:${sql.port}/${sql.databaseName}`;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
151
166
|
}
|
|
152
167
|
}
|
|
153
168
|
|