@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
|
@@ -1,38 +1,52 @@
|
|
|
1
1
|
import AIAgentService from "../Services/AIAgentService";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
2
|
+
import AIRunService from "../Services/AIRunService";
|
|
3
|
+
import AIRunEventService from "../Services/AIRunEventService";
|
|
4
|
+
import Express, {
|
|
6
5
|
ExpressRequest,
|
|
7
6
|
ExpressResponse,
|
|
7
|
+
ExpressRouter,
|
|
8
8
|
NextFunction,
|
|
9
9
|
} from "../Utils/Express";
|
|
10
10
|
import Response from "../Utils/Response";
|
|
11
|
-
import BaseAPI from "./BaseAPI";
|
|
12
|
-
import AIAgentTask from "../../Models/DatabaseModels/AIAgentTask";
|
|
13
11
|
import AIAgent from "../../Models/DatabaseModels/AIAgent";
|
|
12
|
+
import AIRun from "../../Models/DatabaseModels/AIRun";
|
|
14
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
15
14
|
import { JSONObject } from "../../Types/JSON";
|
|
16
15
|
import ObjectID from "../../Types/ObjectID";
|
|
17
16
|
import OneUptimeDate from "../../Types/Date";
|
|
18
17
|
import AIAgentTaskStatus from "../../Types/AI/AIAgentTaskStatus";
|
|
18
|
+
import AIRunStatus from "../../Types/AI/AIRunStatus";
|
|
19
|
+
import AIRunType from "../../Types/AI/AIRunType";
|
|
20
|
+
import AIRunEventType from "../../Types/AI/AIRunEventType";
|
|
21
|
+
import { CodeFixTaskTypeHelper } from "../../Types/AI/CodeFixTaskType";
|
|
19
22
|
import PositiveNumber from "../../Types/PositiveNumber";
|
|
20
23
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
/*
|
|
25
|
+
* The agent worker's task protocol. The route names and request shapes are
|
|
26
|
+
* unchanged from the legacy AIAgentTask days (the wire keeps the
|
|
27
|
+
* AIAgentTaskStatus strings), but the substrate underneath is the unified
|
|
28
|
+
* AIRun table: `taskId` carries an AIRun id, claims are CAS status
|
|
29
|
+
* transitions, and progress reports touch the run heartbeat that the
|
|
30
|
+
* stale-run sweeper watches. The legacy AIAgentTask MODEL is gone — this is
|
|
31
|
+
* a plain protocol router, not a CRUD API.
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
const API_BASE_PATH: string = "/ai-agent-task";
|
|
35
|
+
|
|
36
|
+
export default class AIAgentTaskAPI {
|
|
37
|
+
public router!: ExpressRouter;
|
|
38
|
+
|
|
25
39
|
public constructor() {
|
|
26
|
-
|
|
40
|
+
this.router = Express.getRouter();
|
|
27
41
|
|
|
28
42
|
/*
|
|
29
|
-
* Claim the next pending
|
|
30
|
-
* Validates aiAgentId and aiAgentKey before claiming. The
|
|
31
|
-
* atomically transitioned
|
|
32
|
-
*
|
|
43
|
+
* Claim the next pending code-fix run for processing.
|
|
44
|
+
* Validates aiAgentId and aiAgentKey before claiming. The run is
|
|
45
|
+
* atomically transitioned Queued -> Running before it is returned, so
|
|
46
|
+
* concurrent workers can never receive the same run.
|
|
33
47
|
*/
|
|
34
48
|
this.router.post(
|
|
35
|
-
`${
|
|
49
|
+
`${API_BASE_PATH}/get-pending-task`,
|
|
36
50
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
37
51
|
try {
|
|
38
52
|
const data: JSONObject = req.body;
|
|
@@ -48,12 +62,12 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
48
62
|
);
|
|
49
63
|
}
|
|
50
64
|
|
|
51
|
-
const
|
|
52
|
-
await
|
|
65
|
+
const run: AIRun | null =
|
|
66
|
+
await AIRunService.claimNextQueuedCodeFixRun({
|
|
53
67
|
aiAgentId: aiAgent.id,
|
|
54
68
|
});
|
|
55
69
|
|
|
56
|
-
if (!
|
|
70
|
+
if (!run) {
|
|
57
71
|
return Response.sendJsonObjectResponse(req, res, {
|
|
58
72
|
task: null,
|
|
59
73
|
message: "No pending tasks available",
|
|
@@ -62,11 +76,24 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
62
76
|
|
|
63
77
|
return Response.sendJsonObjectResponse(req, res, {
|
|
64
78
|
task: {
|
|
65
|
-
|
|
66
|
-
projectId:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
79
|
+
id: run.id!.toString(),
|
|
80
|
+
projectId: run.projectId?.toString(),
|
|
81
|
+
/*
|
|
82
|
+
* exceptionId is present only for exception-based recipes.
|
|
83
|
+
* ImproveInstrumentation / FixFromIncident runs carry an
|
|
84
|
+
* incident/alert subject instead — the worker fetches their
|
|
85
|
+
* context via /ai-agent-data/get-instrumentation-task-details
|
|
86
|
+
* with the run id, so this field is optional on the wire.
|
|
87
|
+
*/
|
|
88
|
+
exceptionId: run.triggeredByTelemetryExceptionId?.toString(),
|
|
89
|
+
/*
|
|
90
|
+
* The worker dispatches its task handler on this. The claim
|
|
91
|
+
* already normalized legacy null to FixException; normalize
|
|
92
|
+
* again here so the wire contract can never regress.
|
|
93
|
+
*/
|
|
94
|
+
taskType: CodeFixTaskTypeHelper.fromDatabaseValue(
|
|
95
|
+
run.codeFixTaskType,
|
|
96
|
+
),
|
|
70
97
|
},
|
|
71
98
|
message: "Task claimed successfully",
|
|
72
99
|
});
|
|
@@ -77,11 +104,11 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
77
104
|
);
|
|
78
105
|
|
|
79
106
|
/*
|
|
80
|
-
* Get the count of pending (
|
|
107
|
+
* Get the count of pending (queued) code-fix runs for KEDA autoscaling
|
|
81
108
|
* Validates aiAgentId and aiAgentKey before returning count
|
|
82
109
|
*/
|
|
83
110
|
this.router.post(
|
|
84
|
-
`${
|
|
111
|
+
`${API_BASE_PATH}/get-pending-task-count`,
|
|
85
112
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
86
113
|
try {
|
|
87
114
|
const data: JSONObject = req.body;
|
|
@@ -97,10 +124,11 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
97
124
|
);
|
|
98
125
|
}
|
|
99
126
|
|
|
100
|
-
/* Count
|
|
101
|
-
const count: PositiveNumber = await
|
|
127
|
+
/* Count queued code-fix runs */
|
|
128
|
+
const count: PositiveNumber = await AIRunService.countBy({
|
|
102
129
|
query: {
|
|
103
|
-
|
|
130
|
+
runType: AIRunType.CodeFix,
|
|
131
|
+
status: AIRunStatus.Queued,
|
|
104
132
|
},
|
|
105
133
|
props: {
|
|
106
134
|
isRoot: true,
|
|
@@ -118,11 +146,14 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
118
146
|
);
|
|
119
147
|
|
|
120
148
|
/*
|
|
121
|
-
* Update task status (InProgress, Completed, Error)
|
|
122
|
-
*
|
|
149
|
+
* Update task status (InProgress, Completed, Error).
|
|
150
|
+
* `taskId` is an AIRun id. InProgress is a heartbeat touch (the run is
|
|
151
|
+
* already Running from the claim); Completed/Error are CAS transitions
|
|
152
|
+
* Running -> Completed/Error that also write the terminal
|
|
153
|
+
* RunCompleted/RunFailed event to the run's glass-box trail.
|
|
123
154
|
*/
|
|
124
155
|
this.router.post(
|
|
125
|
-
`${
|
|
156
|
+
`${API_BASE_PATH}/update-task-status`,
|
|
126
157
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
127
158
|
try {
|
|
128
159
|
const data: JSONObject = req.body;
|
|
@@ -155,7 +186,7 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
155
186
|
);
|
|
156
187
|
}
|
|
157
188
|
|
|
158
|
-
const
|
|
189
|
+
const runId: ObjectID = new ObjectID(data["taskId"] as string);
|
|
159
190
|
const status: AIAgentTaskStatus = data["status"] as AIAgentTaskStatus;
|
|
160
191
|
const statusMessage: string | undefined = data["statusMessage"] as
|
|
161
192
|
| string
|
|
@@ -178,20 +209,20 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
178
209
|
);
|
|
179
210
|
}
|
|
180
211
|
|
|
181
|
-
/* Check if
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
212
|
+
/* Check if the run exists */
|
|
213
|
+
const existingRun: AIRun | null = await AIRunService.findOneById({
|
|
214
|
+
id: runId,
|
|
215
|
+
select: {
|
|
216
|
+
_id: true,
|
|
217
|
+
projectId: true,
|
|
218
|
+
status: true,
|
|
219
|
+
},
|
|
220
|
+
props: {
|
|
221
|
+
isRoot: true,
|
|
222
|
+
},
|
|
223
|
+
});
|
|
193
224
|
|
|
194
|
-
if (!
|
|
225
|
+
if (!existingRun) {
|
|
195
226
|
return Response.sendErrorResponse(
|
|
196
227
|
req,
|
|
197
228
|
res,
|
|
@@ -199,39 +230,67 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
199
230
|
);
|
|
200
231
|
}
|
|
201
232
|
|
|
202
|
-
/* Update the task based on status */
|
|
203
233
|
if (status === AIAgentTaskStatus.InProgress) {
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
isRoot: true,
|
|
234
|
+
/*
|
|
235
|
+
* Back-compat no-op refresh: the run went Running at claim time,
|
|
236
|
+
* so an InProgress report only keeps it visibly alive for the
|
|
237
|
+
* stale-run sweeper.
|
|
238
|
+
*/
|
|
239
|
+
await AIRunService.updateOneBy({
|
|
240
|
+
query: {
|
|
241
|
+
_id: runId.toString(),
|
|
242
|
+
status: AIRunStatus.Running,
|
|
214
243
|
},
|
|
215
|
-
});
|
|
216
|
-
} else if (
|
|
217
|
-
status === AIAgentTaskStatus.Completed ||
|
|
218
|
-
status === AIAgentTaskStatus.Error
|
|
219
|
-
) {
|
|
220
|
-
await AIAgentTaskService.updateOneById({
|
|
221
|
-
id: taskId,
|
|
222
244
|
data: {
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
...(statusMessage && { statusMessage: statusMessage }),
|
|
226
|
-
},
|
|
245
|
+
lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
|
|
246
|
+
} as never,
|
|
227
247
|
props: {
|
|
228
248
|
isRoot: true,
|
|
229
249
|
},
|
|
230
250
|
});
|
|
251
|
+
} else {
|
|
252
|
+
const toStatus: AIRunStatus =
|
|
253
|
+
status === AIAgentTaskStatus.Completed
|
|
254
|
+
? AIRunStatus.Completed
|
|
255
|
+
: AIRunStatus.Error;
|
|
256
|
+
|
|
257
|
+
/*
|
|
258
|
+
* CAS Running -> Completed/Error. Losing the race (0 rows) means
|
|
259
|
+
* another actor already finalized the run — e.g. the sweeper
|
|
260
|
+
* marked it Error after a heartbeat gap — and that outcome wins;
|
|
261
|
+
* we do not clobber it or write a duplicate terminal event.
|
|
262
|
+
*/
|
|
263
|
+
const transitionedCount: number =
|
|
264
|
+
await AIRunService.attemptStatusTransition({
|
|
265
|
+
aiRunId: runId,
|
|
266
|
+
fromStatus: AIRunStatus.Running,
|
|
267
|
+
set: {
|
|
268
|
+
status: toStatus,
|
|
269
|
+
completedAt: OneUptimeDate.getCurrentDate(),
|
|
270
|
+
lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
|
|
271
|
+
...(toStatus === AIRunStatus.Error && statusMessage
|
|
272
|
+
? { errorMessage: statusMessage }
|
|
273
|
+
: {}),
|
|
274
|
+
},
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
if (transitionedCount > 0 && existingRun.projectId) {
|
|
278
|
+
await AIRunEventService.appendEventToRun({
|
|
279
|
+
projectId: existingRun.projectId,
|
|
280
|
+
aiRunId: runId,
|
|
281
|
+
eventType:
|
|
282
|
+
toStatus === AIRunStatus.Completed
|
|
283
|
+
? AIRunEventType.RunCompleted
|
|
284
|
+
: AIRunEventType.RunFailed,
|
|
285
|
+
...(statusMessage
|
|
286
|
+
? { resultSummary: { message: statusMessage } }
|
|
287
|
+
: {}),
|
|
288
|
+
});
|
|
289
|
+
}
|
|
231
290
|
}
|
|
232
291
|
|
|
233
292
|
return Response.sendJsonObjectResponse(req, res, {
|
|
234
|
-
taskId:
|
|
293
|
+
taskId: runId.toString(),
|
|
235
294
|
status: status,
|
|
236
295
|
message: "Task status updated successfully",
|
|
237
296
|
});
|
|
@@ -242,6 +301,10 @@ export default class AIAgentTaskAPI extends BaseAPI<
|
|
|
242
301
|
);
|
|
243
302
|
}
|
|
244
303
|
|
|
304
|
+
public getRouter(): ExpressRouter {
|
|
305
|
+
return this.router;
|
|
306
|
+
}
|
|
307
|
+
|
|
245
308
|
/*
|
|
246
309
|
* Validate AI Agent credentials from request body
|
|
247
310
|
* Returns AIAgent if valid, null otherwise
|
|
@@ -1,36 +1,48 @@
|
|
|
1
|
-
import AIAgentTaskLogService, {
|
|
2
|
-
Service as AIAgentTaskLogServiceType,
|
|
3
|
-
} from "../Services/AIAgentTaskLogService";
|
|
4
1
|
import AIAgentService from "../Services/AIAgentService";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
2
|
+
import AIRunService from "../Services/AIRunService";
|
|
3
|
+
import AIRunEventService from "../Services/AIRunEventService";
|
|
4
|
+
import Express, {
|
|
7
5
|
ExpressRequest,
|
|
8
6
|
ExpressResponse,
|
|
7
|
+
ExpressRouter,
|
|
9
8
|
NextFunction,
|
|
10
9
|
} from "../Utils/Express";
|
|
11
10
|
import Response from "../Utils/Response";
|
|
12
|
-
import BaseAPI from "./BaseAPI";
|
|
13
|
-
import AIAgentTaskLog from "../../Models/DatabaseModels/AIAgentTaskLog";
|
|
14
11
|
import AIAgent from "../../Models/DatabaseModels/AIAgent";
|
|
15
|
-
import
|
|
12
|
+
import AIRun from "../../Models/DatabaseModels/AIRun";
|
|
16
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
17
14
|
import { JSONObject } from "../../Types/JSON";
|
|
18
15
|
import ObjectID from "../../Types/ObjectID";
|
|
16
|
+
import OneUptimeDate from "../../Types/Date";
|
|
17
|
+
import AIRunStatus from "../../Types/AI/AIRunStatus";
|
|
18
|
+
import AIRunEventType from "../../Types/AI/AIRunEventType";
|
|
19
19
|
import LogSeverity from "../../Types/Log/LogSeverity";
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
/*
|
|
22
|
+
* The agent worker's progress-log protocol. The route name predates the
|
|
23
|
+
* AIRun substrate (the legacy AIAgentTaskLog MODEL is gone — this is a
|
|
24
|
+
* plain protocol router, not a CRUD API); log lines land as ProgressLog
|
|
25
|
+
* AIRunEvents on the run's glass-box trail.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
const API_BASE_PATH: string = "/ai-agent-task-log";
|
|
29
|
+
|
|
30
|
+
export default class AIAgentTaskLogAPI {
|
|
31
|
+
public router!: ExpressRouter;
|
|
32
|
+
|
|
25
33
|
public constructor() {
|
|
26
|
-
|
|
34
|
+
this.router = Express.getRouter();
|
|
27
35
|
|
|
28
36
|
/*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
37
|
+
* Record a progress log line for a code-fix run. The route name and
|
|
38
|
+
* request shape are unchanged from the legacy AIAgentTaskLog days, but
|
|
39
|
+
* `taskId` now carries an AIRun id and the line lands as a ProgressLog
|
|
40
|
+
* AIRunEvent in the run's glass-box trail (message + severity in
|
|
41
|
+
* resultSummary). Each log also touches the run heartbeat so a chatty
|
|
42
|
+
* agent is never swept as stale. Validates aiAgentId and aiAgentKey.
|
|
31
43
|
*/
|
|
32
44
|
this.router.post(
|
|
33
|
-
`${
|
|
45
|
+
`${API_BASE_PATH}/create-log`,
|
|
34
46
|
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
35
47
|
try {
|
|
36
48
|
const data: JSONObject = req.body;
|
|
@@ -71,7 +83,7 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
|
|
|
71
83
|
);
|
|
72
84
|
}
|
|
73
85
|
|
|
74
|
-
const
|
|
86
|
+
const runId: ObjectID = new ObjectID(data["taskId"] as string);
|
|
75
87
|
const severity: LogSeverity = data["severity"] as LogSeverity;
|
|
76
88
|
const message: string = data["message"] as string;
|
|
77
89
|
|
|
@@ -88,20 +100,19 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
|
|
|
88
100
|
);
|
|
89
101
|
}
|
|
90
102
|
|
|
91
|
-
/* Check if
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (!existingTask) {
|
|
103
|
+
/* Check if the run exists and get its project ID */
|
|
104
|
+
const existingRun: AIRun | null = await AIRunService.findOneById({
|
|
105
|
+
id: runId,
|
|
106
|
+
select: {
|
|
107
|
+
_id: true,
|
|
108
|
+
projectId: true,
|
|
109
|
+
},
|
|
110
|
+
props: {
|
|
111
|
+
isRoot: true,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
if (!existingRun || !existingRun.projectId) {
|
|
105
116
|
return Response.sendErrorResponse(
|
|
106
117
|
req,
|
|
107
118
|
res,
|
|
@@ -109,23 +120,32 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
|
|
|
109
120
|
);
|
|
110
121
|
}
|
|
111
122
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
123
|
+
await AIRunEventService.appendEventToRun({
|
|
124
|
+
projectId: existingRun.projectId,
|
|
125
|
+
aiRunId: runId,
|
|
126
|
+
eventType: AIRunEventType.ProgressLog,
|
|
127
|
+
resultSummary: {
|
|
128
|
+
message: message,
|
|
129
|
+
severity: severity,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
119
132
|
|
|
120
|
-
|
|
121
|
-
|
|
133
|
+
/* A progress report proves the agent is alive — refresh the heartbeat. */
|
|
134
|
+
await AIRunService.updateOneBy({
|
|
135
|
+
query: {
|
|
136
|
+
_id: runId.toString(),
|
|
137
|
+
status: AIRunStatus.Running,
|
|
138
|
+
},
|
|
139
|
+
data: {
|
|
140
|
+
lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
|
|
141
|
+
} as never,
|
|
122
142
|
props: {
|
|
123
143
|
isRoot: true,
|
|
124
144
|
},
|
|
125
145
|
});
|
|
126
146
|
|
|
127
147
|
return Response.sendJsonObjectResponse(req, res, {
|
|
128
|
-
taskId:
|
|
148
|
+
taskId: runId.toString(),
|
|
129
149
|
message: "Log entry created successfully",
|
|
130
150
|
});
|
|
131
151
|
} catch (err) {
|
|
@@ -135,6 +155,10 @@ export default class AIAgentTaskLogAPI extends BaseAPI<
|
|
|
135
155
|
);
|
|
136
156
|
}
|
|
137
157
|
|
|
158
|
+
public getRouter(): ExpressRouter {
|
|
159
|
+
return this.router;
|
|
160
|
+
}
|
|
161
|
+
|
|
138
162
|
/*
|
|
139
163
|
* Validate AI Agent credentials from request body
|
|
140
164
|
* Returns AIAgent if valid, null otherwise
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import AIAgentTaskPullRequestService, {
|
|
2
|
+
AIFixOutcomeStats,
|
|
2
3
|
Service as AIAgentTaskPullRequestServiceType,
|
|
3
4
|
} from "../Services/AIAgentTaskPullRequestService";
|
|
4
5
|
import BaseAPI from "./BaseAPI";
|
|
6
|
+
import CommonAPI from "./CommonAPI";
|
|
7
|
+
import UserMiddleware from "../Middleware/UserAuthorization";
|
|
8
|
+
import Response from "../Utils/Response";
|
|
5
9
|
import AIAgentTaskPullRequest from "../../Models/DatabaseModels/AIAgentTaskPullRequest";
|
|
10
|
+
import DatabaseCommonInteractionProps from "../../Types/BaseDatabase/DatabaseCommonInteractionProps";
|
|
11
|
+
import {
|
|
12
|
+
ExpressRequest,
|
|
13
|
+
ExpressResponse,
|
|
14
|
+
NextFunction,
|
|
15
|
+
} from "../Utils/Express";
|
|
6
16
|
|
|
7
17
|
export default class AIAgentTaskPullRequestAPI extends BaseAPI<
|
|
8
18
|
AIAgentTaskPullRequest,
|
|
@@ -10,5 +20,36 @@ export default class AIAgentTaskPullRequestAPI extends BaseAPI<
|
|
|
10
20
|
> {
|
|
11
21
|
public constructor() {
|
|
12
22
|
super(AIAgentTaskPullRequest, AIAgentTaskPullRequestService);
|
|
23
|
+
|
|
24
|
+
/*
|
|
25
|
+
* Outcome counts for the project's AI-authored fix PRs (merged /
|
|
26
|
+
* closed-unmerged / open + acceptance rate + CI-verified-green rate)
|
|
27
|
+
* — the G11 baseline surface.
|
|
28
|
+
*/
|
|
29
|
+
this.router.get(
|
|
30
|
+
`${new this.entityType().getCrudApiPath()?.toString()}/outcome-stats`,
|
|
31
|
+
UserMiddleware.getUserMiddleware,
|
|
32
|
+
async (req: ExpressRequest, res: ExpressResponse, next: NextFunction) => {
|
|
33
|
+
try {
|
|
34
|
+
const props: DatabaseCommonInteractionProps =
|
|
35
|
+
await CommonAPI.getDatabaseCommonInteractionProps(req);
|
|
36
|
+
|
|
37
|
+
const stats: AIFixOutcomeStats =
|
|
38
|
+
await this.service.getOutcomeStats(props);
|
|
39
|
+
|
|
40
|
+
return Response.sendJsonObjectResponse(req, res, {
|
|
41
|
+
total: stats.total,
|
|
42
|
+
open: stats.open,
|
|
43
|
+
merged: stats.merged,
|
|
44
|
+
closedUnmerged: stats.closedUnmerged,
|
|
45
|
+
acceptanceRatePercent: stats.acceptanceRatePercent,
|
|
46
|
+
verifiedGreen: stats.verifiedGreen,
|
|
47
|
+
verifiedGreenRatePercent: stats.verifiedGreenRatePercent,
|
|
48
|
+
});
|
|
49
|
+
} catch (err) {
|
|
50
|
+
next(err);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
);
|
|
13
54
|
}
|
|
14
55
|
}
|