@oneuptime/common 11.7.4 → 12.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (896) hide show
  1. package/Models/AnalyticsModels/ExceptionInstance.ts +67 -0
  2. package/Models/AnalyticsModels/Index.ts +10 -0
  3. package/Models/AnalyticsModels/Log.ts +60 -0
  4. package/Models/AnalyticsModels/RumSession.ts +1401 -0
  5. package/Models/AnalyticsModels/RumSessionChunk.ts +798 -0
  6. package/Models/AnalyticsModels/Span.ts +60 -0
  7. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +52 -0
  8. package/Models/DatabaseModels/AIRun.ts +31 -0
  9. package/Models/DatabaseModels/Alert.ts +29 -0
  10. package/Models/DatabaseModels/AlertCustomField.ts +1 -1
  11. package/Models/DatabaseModels/AlertFeed.ts +1 -0
  12. package/Models/DatabaseModels/AutoRemediationRule.ts +989 -0
  13. package/Models/DatabaseModels/AutoRemediationSuggestion.ts +874 -0
  14. package/Models/DatabaseModels/CodeRepository.ts +129 -0
  15. package/Models/DatabaseModels/GlobalConfig.ts +312 -0
  16. package/Models/DatabaseModels/Incident.ts +29 -0
  17. package/Models/DatabaseModels/IncidentCustomField.ts +1 -1
  18. package/Models/DatabaseModels/IncidentFeed.ts +1 -0
  19. package/Models/DatabaseModels/Index.ts +21 -8
  20. package/Models/DatabaseModels/InstanceHealthLog.ts +8 -0
  21. package/Models/DatabaseModels/MonitorCustomField.ts +1 -1
  22. package/Models/DatabaseModels/MonitorStatus.ts +1 -1
  23. package/Models/DatabaseModels/NetworkDeviceLabelRule.ts +2 -2
  24. package/Models/DatabaseModels/NetworkDeviceOwnerRule.ts +2 -2
  25. package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +1 -1
  26. package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +1 -1
  27. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.ts +12 -2
  28. package/Models/DatabaseModels/Project.ts +231 -0
  29. package/Models/DatabaseModels/RumApplication.ts +906 -0
  30. package/Models/DatabaseModels/RumSessionErasureRequest.ts +561 -0
  31. package/Models/DatabaseModels/RumSessionPin.ts +457 -0
  32. package/Models/DatabaseModels/RumSessionReplayView.ts +406 -0
  33. package/Models/DatabaseModels/RunbookCredential.ts +673 -0
  34. package/Models/DatabaseModels/RunbookSecret.ts +7 -7
  35. package/Models/DatabaseModels/{RunbookAgent.ts → Runner.ts} +206 -46
  36. package/Models/DatabaseModels/{RunbookAgentJob.ts → RunnerJob.ts} +151 -18
  37. package/Models/DatabaseModels/{RunbookAgentOwnerTeam.ts → RunnerOwnerTeam.ts} +41 -43
  38. package/Models/DatabaseModels/{RunbookAgentOwnerUser.ts → RunnerOwnerUser.ts} +41 -43
  39. package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +1 -1
  40. package/Models/DatabaseModels/StatusPageCustomField.ts +1 -1
  41. package/Models/DatabaseModels/TeamCustomField.ts +1 -1
  42. package/Models/DatabaseModels/TeamMemberCustomField.ts +1 -1
  43. package/Server/API/AIAgentDataAPI.ts +179 -48
  44. package/Server/API/AIAgentTaskAPI.ts +36 -37
  45. package/Server/API/AIAgentTaskLogAPI.ts +19 -33
  46. package/Server/API/AutoRemediationAPI.ts +557 -0
  47. package/Server/API/BaseAnalyticsAPI.ts +4 -1
  48. package/Server/API/CommonAPI.ts +35 -0
  49. package/Server/API/DashboardAPI.ts +340 -15
  50. package/Server/API/TelemetryAPI.ts +1622 -3
  51. package/Server/API/UserIncomingCallNumberAPI.ts +31 -0
  52. package/Server/DatabaseConfig.ts +26 -1
  53. package/Server/EnvironmentConfig.ts +13 -0
  54. package/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.ts +12 -2
  55. package/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.ts +293 -0
  56. package/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.ts +67 -0
  57. package/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.ts +33 -0
  58. package/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.ts +40 -0
  59. package/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.ts +54 -0
  60. package/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.ts +104 -0
  61. package/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.ts +349 -0
  62. package/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.ts +67 -0
  63. package/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.ts +23 -0
  64. package/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.ts +42 -0
  65. package/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.ts +84 -0
  66. package/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.ts +152 -0
  67. package/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.ts +81 -0
  68. package/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.ts +151 -0
  69. package/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.ts +597 -0
  70. package/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.ts +71 -0
  71. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +32 -0
  72. package/Server/Services/AIRunService.ts +10 -0
  73. package/Server/Services/AIService.ts +30 -0
  74. package/Server/Services/AlertService.ts +41 -4
  75. package/Server/Services/AlertSeverityService.ts +25 -11
  76. package/Server/Services/AlertStateService.ts +25 -11
  77. package/Server/Services/AutoRemediationRuleEngineService.ts +1101 -0
  78. package/Server/Services/{RunbookAgentOwnerTeamService.ts → AutoRemediationRuleService.ts} +1 -1
  79. package/Server/Services/AutoRemediationSuggestionService.ts +183 -0
  80. package/Server/Services/BillingService.ts +50 -1
  81. package/Server/Services/DatabaseService.ts +92 -4
  82. package/Server/Services/IncidentService.ts +56 -4
  83. package/Server/Services/IncidentSeverityService.ts +25 -11
  84. package/Server/Services/IncidentStateService.ts +25 -11
  85. package/Server/Services/Index.ts +19 -0
  86. package/Server/Services/LlmProviderService.ts +69 -9
  87. package/Server/Services/MonitorService.ts +24 -0
  88. package/Server/Services/MonitorStatusService.ts +25 -11
  89. package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +18 -19
  90. package/Server/Services/NetworkDeviceLabelRuleService.ts +39 -0
  91. package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +18 -19
  92. package/Server/Services/NetworkDeviceOwnerRuleService.ts +37 -0
  93. package/Server/Services/NetworkDeviceService.ts +172 -21
  94. package/Server/Services/NetworkSiteAssignmentRuleService.ts +92 -12
  95. package/Server/Services/NetworkSiteService.ts +27 -10
  96. package/Server/Services/ProjectService.ts +47 -0
  97. package/Server/Services/RumApplicationService.ts +240 -1
  98. package/Server/Services/RumSessionChunkService.ts +11 -0
  99. package/Server/Services/RumSessionErasureRequestService.ts +197 -0
  100. package/Server/Services/RumSessionPinService.ts +213 -0
  101. package/Server/Services/RumSessionReplayViewService.ts +201 -0
  102. package/Server/Services/RumSessionService.ts +123 -0
  103. package/Server/Services/RunbookCredentialService.ts +76 -0
  104. package/Server/Services/{RunbookAgentJobService.ts → RunnerJobService.ts} +202 -51
  105. package/Server/Services/{RunbookAgentOwnerUserService.ts → RunnerOwnerTeamService.ts} +1 -1
  106. package/Server/Services/RunnerOwnerUserService.ts +10 -0
  107. package/Server/Services/RunnerService.ts +166 -0
  108. package/Server/Services/ScheduledMaintenanceStateService.ts +25 -11
  109. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +15 -1
  110. package/Server/Services/ServiceService.ts +8 -2
  111. package/Server/Services/StatusPageService.ts +240 -36
  112. package/Server/Services/StatusPageSubscriberNotificationTemplateService.ts +20 -1
  113. package/Server/Services/TelemetryExceptionService.ts +3 -16
  114. package/Server/Services/TelemetryUsageBillingService.ts +33 -2
  115. package/Server/Services/TraceAggregationService.ts +196 -32
  116. package/Server/Types/Billing/MeteredPlan/AllMeteredPlans.ts +17 -0
  117. package/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.ts +10 -0
  118. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +63 -7
  119. package/Server/Utils/AI/CodeFix/CodeFixAgentAuth.ts +128 -0
  120. package/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.ts +54 -0
  121. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +17 -10
  122. package/Server/Utils/AI/CodeFix/CodeFixRunQueue.ts +8 -6
  123. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +943 -0
  124. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +866 -0
  125. package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +823 -0
  126. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +103 -12
  127. package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +75 -17
  128. package/Server/Utils/AI/SRE/ConfidenceSignal.ts +28 -6
  129. package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +202 -12
  130. package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +264 -14
  131. package/Server/Utils/AI/SRE/Insights/Triage.ts +2 -7
  132. package/Server/Utils/AI/SRE/InvestigationGrader.ts +5 -24
  133. package/Server/Utils/AI/SRE/InvestigationQueue.ts +259 -20
  134. package/Server/Utils/AI/SRE/PostedRootCause.ts +82 -0
  135. package/Server/Utils/AI/SRE/README.md +3 -2
  136. package/Server/Utils/AI/SRE/RemediationHandoff.ts +82 -0
  137. package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +6 -19
  138. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +2 -2
  139. package/Server/Utils/Alert/AlertPrivacyFilter.ts +58 -0
  140. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +604 -0
  141. package/Server/Utils/AutoRemediation/RemediationVerifier.ts +619 -0
  142. package/Server/Utils/CorsOptions.ts +52 -0
  143. package/Server/Utils/Database/RelationIdUtil.ts +68 -0
  144. package/Server/Utils/Incident/IncidentPrivacyFilter.ts +60 -0
  145. package/Server/Utils/InstanceHealth/PostgresHealth.ts +286 -0
  146. package/Server/Utils/InstanceHealth/RedisHealth.ts +434 -0
  147. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +12 -0
  148. package/Server/Utils/Monitor/MonitorAlert.ts +20 -0
  149. package/Server/Utils/Monitor/MonitorIncident.ts +20 -0
  150. package/Server/Utils/Monitor/MonitorResource.ts +19 -0
  151. package/Server/Utils/Monitor/MonitorSummaryCapture.ts +104 -0
  152. package/Server/Utils/NetworkDevice/RulePatternValidator.ts +44 -0
  153. package/Server/Utils/OpenAPI.ts +2 -1
  154. package/Server/Utils/Runbook/RunbookExecutePermission.ts +94 -0
  155. package/Server/Utils/SessionReplay/SessionReplayErasureTombstone.ts +128 -0
  156. package/Server/Utils/SessionReplay/SessionReplayGateCache.ts +586 -0
  157. package/Server/Utils/SessionReplay/SessionReplayGateCacheStore.ts +188 -0
  158. package/Server/Utils/SessionReplay/SessionReplayReadService.ts +1449 -0
  159. package/Server/Utils/SessionReplay/SessionReplayRetention.ts +114 -0
  160. package/Server/Utils/SessionReplay/SessionReplayTargeting.ts +144 -0
  161. package/Server/Utils/SessionReplay/SessionReplayUsage.ts +92 -0
  162. package/Server/Utils/StartServer.ts +47 -3
  163. package/Server/Utils/Telemetry/TelemetryFanInWriter.ts +44 -10
  164. package/Tests/App/Dashboard/AddWidgetModal.test.tsx +557 -0
  165. package/Tests/App/Dashboard/RunnerInstallInstructions.test.tsx +119 -0
  166. package/Tests/App/Dashboard/RunnerStatus.test.tsx +274 -0
  167. package/Tests/App/Dashboard/WidgetCatalog.test.ts +479 -0
  168. package/Tests/App/StatusPage/BulkAddStatusPageMonitors.test.ts +343 -0
  169. package/Tests/App/StatusPage/BulkAddStatusPageMonitorsModal.test.tsx +320 -0
  170. package/Tests/Models/AnalyticsModels/RumSessionSchema.test.ts +455 -0
  171. package/Tests/Models/AnalyticsModels/SessionIdCorrelation.test.ts +158 -0
  172. package/Tests/Models/DatabaseModels/SessionReplayModels.test.ts +447 -0
  173. package/Tests/Models/RunnerVersionLabel.test.ts +223 -0
  174. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +1287 -0
  175. package/Tests/Server/API/LegacyRunbookAgentRoutes.test.ts +117 -0
  176. package/Tests/Server/API/SessionReplayAPI.test.ts +2093 -0
  177. package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +429 -0
  178. package/Tests/Server/API/UserSmsApi.test.ts +68 -2
  179. package/Tests/Server/DatabaseConfig.test.ts +150 -0
  180. package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +2 -2
  181. package/Tests/Server/Infrastructure/ProcessSignalDelivery.test.ts +2 -3
  182. package/Tests/Server/Services/AIRunCodeFixClaimScoping.test.ts +100 -0
  183. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +8 -0
  184. package/Tests/Server/Services/AutoRemediationCommandRuleEngine.test.ts +334 -0
  185. package/Tests/Server/Services/AutoRemediationRuleEngineService.test.ts +517 -0
  186. package/Tests/Server/Services/BillingService.test.ts +158 -1
  187. package/Tests/Server/Services/DatabaseServiceEmptyUpdate.test.ts +24 -2
  188. package/Tests/Server/Services/DatabaseServiceSanitizeUpdateData.test.ts +17 -10
  189. package/Tests/Server/Services/DatabaseServiceUpdateColumnsWithoutHooks.test.ts +128 -0
  190. package/Tests/Server/Services/DatabaseServiceUpdateWriteRouting.test.ts +178 -0
  191. package/Tests/Server/Services/DatabaseServiceUpdateWriteRoutingMonitor.test.ts +206 -0
  192. package/Tests/Server/Services/LlmProviderUsableByProject.test.ts +293 -0
  193. package/Tests/Server/Services/MonitorServiceOperationalStatusSelection.test.ts +145 -0
  194. package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +726 -0
  195. package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +570 -9
  196. package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +94 -1
  197. package/Tests/Server/Services/NetworkSiteService.test.ts +85 -0
  198. package/Tests/Server/Services/RumApplicationReplayHealth.test.ts +114 -0
  199. package/Tests/Server/Services/RunbookCredentialService.test.ts +657 -0
  200. package/Tests/Server/Services/SessionReplayCreatePath.test.ts +376 -0
  201. package/Tests/Server/Services/SessionReplayGateCacheInvalidation.test.ts +211 -0
  202. package/Tests/Server/Services/SessionReplayMetering.test.ts +174 -0
  203. package/Tests/Server/Services/StatusPageSubscriberReport.test.ts +555 -0
  204. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +25 -4
  205. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +17 -2
  206. package/Tests/Server/Services/TraceAggregationService.test.ts +48 -0
  207. package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +855 -0
  208. package/Tests/Server/Services/UpdateOneByIdKeepsRowId.test.ts +38 -27
  209. package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +44 -0
  210. package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +475 -0
  211. package/Tests/Server/Utils/AI/CodeFix/CodeFixAgentAuth.test.ts +257 -0
  212. package/Tests/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.test.ts +236 -0
  213. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +44 -6
  214. package/Tests/Server/Utils/AI/CodeFixRunQueue.test.ts +47 -1
  215. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +2 -2
  216. package/Tests/Server/Utils/AI/FixFromIncidentAutoTrigger.test.ts +294 -0
  217. package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +2 -2
  218. package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +47 -3
  219. package/Tests/Server/Utils/AI/InvestigationQueueRemediationExecution.test.ts +233 -0
  220. package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +463 -0
  221. package/Tests/Server/Utils/AI/PostedRootCause.test.ts +254 -0
  222. package/Tests/Server/Utils/AI/RemediationAllowlistNormalization.test.ts +248 -0
  223. package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +1008 -0
  224. package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +887 -0
  225. package/Tests/Server/Utils/AI/RemediationHandoff.test.ts +306 -0
  226. package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +745 -0
  227. package/Tests/Server/Utils/AI/SubjectCodeFixRunDedupe.test.ts +291 -0
  228. package/Tests/Server/Utils/AI/ToolArgsExtractors.test.ts +141 -0
  229. package/Tests/Server/Utils/AI/Toolbox/WidgetBuilder.test.ts +205 -0
  230. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +1050 -0
  231. package/Tests/Server/Utils/AutoRemediation/CommandPlanVerification.test.ts +350 -0
  232. package/Tests/Server/Utils/AutoRemediation/RemediationVerifier.test.ts +341 -0
  233. package/Tests/Server/Utils/CorsOptions.test.ts +119 -0
  234. package/Tests/Server/Utils/Database/RelationIdUtil.test.ts +120 -0
  235. package/Tests/Server/Utils/Database/ResolveReferenceId.test.ts +60 -0
  236. package/Tests/Server/Utils/InstanceHealth/PostgresHealth.test.ts +337 -0
  237. package/Tests/Server/Utils/InstanceHealth/RedisHealth.test.ts +671 -0
  238. package/Tests/Server/Utils/Monitor/Criteria/CompareCriteria.test.ts +897 -0
  239. package/Tests/Server/Utils/Monitor/MonitorSummaryCapture.test.ts +205 -0
  240. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +313 -0
  241. package/Tests/Server/Utils/PushNotificationUtil.test.ts +228 -0
  242. package/Tests/Server/Utils/SessionReplay/SessionReplayGateCachePolicy.test.ts +177 -0
  243. package/Tests/Server/Utils/SessionReplay/SessionReplayOriginAllowlist.test.ts +108 -0
  244. package/Tests/Server/Utils/SessionReplay/SessionReplayRetention.test.ts +229 -0
  245. package/Tests/Server/Utils/SessionReplay/SessionReplayTargeting.test.ts +246 -0
  246. package/Tests/Server/Utils/Telemetry/TelemetryFanInWriter.test.ts +110 -0
  247. package/Tests/Types/AI/AIRunStatus.test.ts +25 -0
  248. package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +1063 -0
  249. package/Tests/Types/BaseDatabase/AggregationType.test.ts +56 -0
  250. package/Tests/Types/CustomField/CustomFieldDropdownOption.test.ts +227 -0
  251. package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +811 -0
  252. package/Tests/Types/Dashboard/RumDashboardTemplate.test.ts +1238 -0
  253. package/Tests/Types/Day/DayOfWeek.test.ts +46 -0
  254. package/Tests/Types/Docker/DockerInventoryExtractor.test.ts +249 -0
  255. package/Tests/Types/Kubernetes/KubernetesInventoryExtractor.test.ts +231 -0
  256. package/Tests/Types/Kubernetes/KubernetesRightSizing.test.ts +323 -0
  257. package/Tests/Types/Metrics/MetricDownsamplingRetentionDays.test.ts +77 -0
  258. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +42 -14
  259. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +2 -2
  260. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +3 -2
  261. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +1 -1
  262. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +6 -3
  263. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +285 -0
  264. package/Tests/Types/Podman/PodmanInventoryExtractor.test.ts +159 -0
  265. package/Tests/Types/Runbook/RunbookExecutionDeadline.test.ts +268 -0
  266. package/Tests/Types/Runbook/RunbookStepType.test.ts +242 -0
  267. package/Tests/Types/Runner/RunnerLiveStatus.test.ts +320 -0
  268. package/Tests/Types/Telemetry/TelemetryRetentionConfig.test.ts +225 -0
  269. package/Tests/Types/Text.test.ts +60 -0
  270. package/Tests/UI/Components/AiInvestigationSettingsCard.test.tsx +285 -0
  271. package/Tests/UI/Components/AutocompleteTextInputMenu.test.tsx +555 -0
  272. package/Tests/UI/Components/BulkLabelActions.test.tsx +1502 -0
  273. package/Tests/UI/Components/BulkOwnerActions.test.tsx +1255 -0
  274. package/Tests/UI/Components/CustomFields/DropdownOptionsInput.test.tsx +228 -0
  275. package/Tests/UI/Components/Detail/DropdownColors.test.tsx +128 -0
  276. package/Tests/UI/Components/Detail/EntityFields.test.tsx +166 -0
  277. package/Tests/UI/Components/Dropdown/DropdownValueBadge.test.tsx +60 -0
  278. package/Tests/UI/Components/FilterModalOperatorMenu.test.tsx +674 -0
  279. package/Tests/UI/Components/Forms/ColorPicker.test.tsx +48 -0
  280. package/Tests/UI/Components/Forms/ColorPickerPopup.test.tsx +222 -0
  281. package/Tests/UI/Components/Forms/IconPickerPopup.test.tsx +270 -0
  282. package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +125 -6
  283. package/Tests/UI/Components/OperatorSelectorFilterTypes.test.tsx +1595 -0
  284. package/Tests/UI/Components/OperatorSelectorKeyboard.test.tsx +851 -0
  285. package/Tests/UI/Components/OperatorSelectorMenu.test.tsx +1229 -0
  286. package/Tests/UI/Components/Pagination.test.tsx +85 -0
  287. package/Tests/UI/Monitor/MonitorSummarySnapshotRender.test.tsx +248 -0
  288. package/Tests/UI/Rum/ChunkLoader.test.ts +790 -0
  289. package/Tests/UI/Rum/ReplayScrubber.test.tsx +236 -0
  290. package/Tests/UI/Rum/ReplayStage.test.tsx +606 -0
  291. package/Tests/UI/Utils/Timezone.test.ts +86 -0
  292. package/Tests/UI/Utils/UseClockTick.test.tsx +276 -0
  293. package/Tests/Utils/AiRemediation/CommandPolicy.test.ts +1063 -0
  294. package/Tests/Utils/Dashboard/ClockWidgetFormat.test.ts +1374 -0
  295. package/Tests/Utils/Dashboard/DashboardClockComponent.test.ts +362 -0
  296. package/Tests/Utils/Dashboard/DashboardHtmlComponent.test.ts +217 -0
  297. package/Tests/Utils/Dashboard/HtmlWidgetDocument.test.ts +656 -0
  298. package/Tests/Utils/Dashboard/ValueWidgetLayout.test.ts +1007 -0
  299. package/Tests/Utils/Metrics/MetricSeriesScope.test.ts +1197 -0
  300. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +839 -0
  301. package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +69 -0
  302. package/Tests/Utils/Rules/RulePatternMatchUtil.test.ts +274 -0
  303. package/Tests/Utils/Rum/ChunkMath.test.ts +286 -0
  304. package/Tests/Utils/Rum/Masking.test.ts +186 -0
  305. package/Tests/Utils/Rum/SessionIdentity.test.ts +272 -0
  306. package/Tests/Utils/Rum/SessionSampling.test.ts +164 -0
  307. package/Tests/Utils/Rum/UrlScrubber.test.ts +175 -0
  308. package/Tests/Utils/StatusPage/Report.test.ts +708 -0
  309. package/Tests/Utils/ValueFormatter.test.ts +299 -1
  310. package/Types/AI/AIRunStatus.ts +18 -7
  311. package/Types/AI/AIRunType.ts +18 -0
  312. package/Types/AI/FixVerificationStatus.ts +21 -0
  313. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +16 -0
  314. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +304 -0
  315. package/Types/AutoRemediation/AutoRemediationExecutionMode.ts +17 -0
  316. package/Types/AutoRemediation/AutoRemediationSuggestionStatus.ts +35 -0
  317. package/Types/AutoRemediation/AutoRemediationSuggestionType.ts +17 -0
  318. package/Types/AutoRemediation/AutoRemediationTriggerEntity.ts +11 -0
  319. package/Types/AutoRemediation/AutoRemediationVerificationStatus.ts +21 -0
  320. package/Types/CustomField/CustomFieldDropdownOption.ts +190 -0
  321. package/Types/Dashboard/DashboardComponentType.ts +2 -0
  322. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +4 -0
  323. package/Types/Dashboard/DashboardComponents/DashboardClockComponent.ts +45 -0
  324. package/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.ts +27 -0
  325. package/Types/Dashboard/DashboardComponents/DashboardValueComponent.ts +8 -0
  326. package/Types/Dashboard/DashboardTemplates.ts +516 -0
  327. package/Types/Date.ts +6 -0
  328. package/Types/Email/EmailTemplateType.ts +2 -0
  329. package/Types/Kubernetes/KubernetesRightSizing.ts +353 -0
  330. package/Types/MeteredPlan/ProductType.ts +1 -0
  331. package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -1
  332. package/Types/Monitor/MonitorSteps.ts +5 -0
  333. package/Types/Monitor/MonitorSummarySnapshot.ts +88 -0
  334. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +52 -10
  335. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +7 -5
  336. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +101 -20
  337. package/Types/Monitor/RumAlertTemplates.ts +386 -0
  338. package/Types/Permission.ts +204 -24
  339. package/Types/Rum/SessionReplay.ts +452 -0
  340. package/Types/Rum/SessionReplayCaptureTrigger.ts +26 -0
  341. package/Types/Rum/SessionReplayConsentMode.ts +27 -0
  342. package/Types/Rum/SessionReplayMaskingMode.ts +86 -0
  343. package/Types/Rum/SessionReplayTriggerReason.ts +31 -0
  344. package/Types/Runbook/RunbookCredentialType.ts +6 -0
  345. package/Types/Runbook/RunbookStep.ts +81 -1
  346. package/Types/Runbook/RunbookStepType.ts +26 -0
  347. package/Types/Runbook/RunnerJobOrigin.ts +20 -0
  348. package/Types/Runbook/{RunbookAgentJobStatus.ts → RunnerJobStatus.ts} +2 -2
  349. package/Types/Runner/RunnerLiveStatus.ts +114 -0
  350. package/Types/StatusPage/StatusPageReport.ts +99 -0
  351. package/Types/Telemetry/TelemetryRetentionConfig.ts +18 -1
  352. package/Types/Text.ts +33 -0
  353. package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +260 -75
  354. package/UI/Components/BulkUpdate/BulkLabelActions.tsx +99 -9
  355. package/UI/Components/BulkUpdate/BulkOwnerActions.tsx +11 -0
  356. package/UI/Components/CustomFields/CustomFieldsDetail.tsx +19 -14
  357. package/UI/Components/CustomFields/DropdownOptionsInput.tsx +144 -54
  358. package/UI/Components/Detail/Detail.tsx +164 -22
  359. package/UI/Components/Dropdown/Dropdown.tsx +2 -5
  360. package/UI/Components/Dropdown/DropdownMenuZIndex.ts +7 -0
  361. package/UI/Components/Dropdown/DropdownValueBadge.tsx +61 -0
  362. package/UI/Components/Filters/OperatorSelector.tsx +350 -39
  363. package/UI/Components/Forms/Fields/ColorPicker.tsx +60 -27
  364. package/UI/Components/Forms/Fields/IconPicker.tsx +89 -60
  365. package/UI/Components/Forms/Validation.ts +9 -4
  366. package/UI/Components/List/List.tsx +1 -0
  367. package/UI/Components/ModelTable/CustomFieldColumns.tsx +41 -32
  368. package/UI/Components/Pagination/Pagination.tsx +33 -10
  369. package/UI/Components/Table/Table.tsx +1 -0
  370. package/UI/Types/UseAnchoredFieldPopup.ts +321 -0
  371. package/UI/Utils/Dropdown.ts +26 -0
  372. package/UI/Utils/Timezone.ts +18 -2
  373. package/UI/Utils/UseClockTick.ts +78 -0
  374. package/Utils/AiRemediation/CommandPolicy.ts +398 -0
  375. package/Utils/Dashboard/ClockWidgetFormat.ts +604 -0
  376. package/Utils/Dashboard/Components/DashboardClockComponent.ts +181 -0
  377. package/Utils/Dashboard/Components/DashboardHtmlComponent.ts +162 -0
  378. package/Utils/Dashboard/Components/DashboardValueComponent.ts +12 -1
  379. package/Utils/Dashboard/Components/Index.ts +14 -0
  380. package/Utils/Dashboard/HtmlWidgetDocument.ts +309 -0
  381. package/Utils/Dashboard/ValueWidgetLayout.ts +471 -0
  382. package/Utils/Metrics/MetricSeriesScope.ts +301 -0
  383. package/Utils/Monitor/MonitorSummarySnapshotUtil.ts +593 -0
  384. package/Utils/NetworkSite/CidrMatchUtil.ts +30 -17
  385. package/Utils/Rules/RulePatternMatchUtil.ts +103 -0
  386. package/Utils/Rum/ChunkMath.ts +211 -0
  387. package/Utils/Rum/Masking.ts +168 -0
  388. package/Utils/Rum/SessionIdentity.ts +230 -0
  389. package/Utils/Rum/SessionSampling.ts +108 -0
  390. package/Utils/Rum/UrlScrubber.ts +185 -0
  391. package/Utils/Schema/ModelSchema.ts +27 -3
  392. package/Utils/StatusPage/Report.ts +304 -0
  393. package/Utils/ValueFormatter.ts +300 -54
  394. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +63 -0
  395. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  396. package/build/dist/Models/AnalyticsModels/Index.js +10 -0
  397. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  398. package/build/dist/Models/AnalyticsModels/Log.js +56 -0
  399. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  400. package/build/dist/Models/AnalyticsModels/RumSession.js +1159 -0
  401. package/build/dist/Models/AnalyticsModels/RumSession.js.map +1 -0
  402. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js +670 -0
  403. package/build/dist/Models/AnalyticsModels/RumSessionChunk.js.map +1 -0
  404. package/build/dist/Models/AnalyticsModels/Span.js +56 -0
  405. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  406. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +54 -0
  407. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  408. package/build/dist/Models/DatabaseModels/AIRun.js +32 -0
  409. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  410. package/build/dist/Models/DatabaseModels/Alert.js +30 -0
  411. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  412. package/build/dist/Models/DatabaseModels/AlertCustomField.js +1 -1
  413. package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
  414. package/build/dist/Models/DatabaseModels/AlertFeed.js +1 -0
  415. package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
  416. package/build/dist/Models/DatabaseModels/AutoRemediationRule.js +998 -0
  417. package/build/dist/Models/DatabaseModels/AutoRemediationRule.js.map +1 -0
  418. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +917 -0
  419. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -0
  420. package/build/dist/Models/DatabaseModels/CodeRepository.js +132 -0
  421. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  422. package/build/dist/Models/DatabaseModels/GlobalConfig.js +327 -0
  423. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  424. package/build/dist/Models/DatabaseModels/Incident.js +30 -0
  425. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  426. package/build/dist/Models/DatabaseModels/IncidentCustomField.js +1 -1
  427. package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
  428. package/build/dist/Models/DatabaseModels/IncidentFeed.js +1 -0
  429. package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
  430. package/build/dist/Models/DatabaseModels/Index.js +20 -8
  431. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  432. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js +8 -0
  433. package/build/dist/Models/DatabaseModels/InstanceHealthLog.js.map +1 -1
  434. package/build/dist/Models/DatabaseModels/MonitorCustomField.js +1 -1
  435. package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
  436. package/build/dist/Models/DatabaseModels/MonitorStatus.js +1 -1
  437. package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
  438. package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js +2 -2
  439. package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js.map +1 -1
  440. package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js +2 -2
  441. package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js.map +1 -1
  442. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +1 -1
  443. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -1
  444. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +1 -1
  445. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
  446. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js +16 -4
  447. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js.map +1 -1
  448. package/build/dist/Models/DatabaseModels/Project.js +235 -0
  449. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  450. package/build/dist/Models/DatabaseModels/RumApplication.js +930 -0
  451. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  452. package/build/dist/Models/DatabaseModels/RumSessionErasureRequest.js +591 -0
  453. package/build/dist/Models/DatabaseModels/RumSessionErasureRequest.js.map +1 -0
  454. package/build/dist/Models/DatabaseModels/RumSessionPin.js +483 -0
  455. package/build/dist/Models/DatabaseModels/RumSessionPin.js.map +1 -0
  456. package/build/dist/Models/DatabaseModels/RumSessionReplayView.js +433 -0
  457. package/build/dist/Models/DatabaseModels/RumSessionReplayView.js.map +1 -0
  458. package/build/dist/Models/DatabaseModels/RunbookCredential.js +693 -0
  459. package/build/dist/Models/DatabaseModels/RunbookCredential.js.map +1 -0
  460. package/build/dist/Models/DatabaseModels/RunbookSecret.js +8 -8
  461. package/build/dist/Models/DatabaseModels/RunbookSecret.js.map +1 -1
  462. package/build/dist/Models/DatabaseModels/{RunbookAgent.js → Runner.js} +235 -70
  463. package/build/dist/Models/DatabaseModels/Runner.js.map +1 -0
  464. package/build/dist/Models/DatabaseModels/{RunbookAgentJob.js → RunnerJob.js} +173 -40
  465. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -0
  466. package/build/dist/Models/DatabaseModels/{RunbookAgentOwnerTeam.js → RunnerOwnerTeam.js} +57 -57
  467. package/build/dist/Models/DatabaseModels/RunnerOwnerTeam.js.map +1 -0
  468. package/build/dist/Models/DatabaseModels/{RunbookAgentOwnerUser.js → RunnerOwnerUser.js} +57 -57
  469. package/build/dist/Models/DatabaseModels/RunnerOwnerUser.js.map +1 -0
  470. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +1 -1
  471. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
  472. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +1 -1
  473. package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
  474. package/build/dist/Models/DatabaseModels/TeamCustomField.js +1 -1
  475. package/build/dist/Models/DatabaseModels/TeamCustomField.js.map +1 -1
  476. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +1 -1
  477. package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
  478. package/build/dist/Server/API/AIAgentDataAPI.js +130 -45
  479. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  480. package/build/dist/Server/API/AIAgentTaskAPI.js +26 -36
  481. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  482. package/build/dist/Server/API/AIAgentTaskLogAPI.js +11 -28
  483. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  484. package/build/dist/Server/API/AutoRemediationAPI.js +416 -0
  485. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -0
  486. package/build/dist/Server/API/BaseAnalyticsAPI.js +4 -1
  487. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  488. package/build/dist/Server/API/CommonAPI.js +24 -0
  489. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  490. package/build/dist/Server/API/DashboardAPI.js +265 -6
  491. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  492. package/build/dist/Server/API/TelemetryAPI.js +940 -3
  493. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  494. package/build/dist/Server/API/UserIncomingCallNumberAPI.js +18 -0
  495. package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
  496. package/build/dist/Server/DatabaseConfig.js +23 -4
  497. package/build/dist/Server/DatabaseConfig.js.map +1 -1
  498. package/build/dist/Server/EnvironmentConfig.js +8 -0
  499. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  500. package/build/dist/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.js +11 -1
  501. package/build/dist/Server/Infrastructure/Postgres/LocalMigrationGenerationDataSource.js.map +1 -1
  502. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.js +106 -0
  503. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785417351021-AddSessionReplay.js.map +1 -0
  504. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.js +37 -0
  505. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785491583874-EnableSessionReplayByDefault.js.map +1 -0
  506. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.js +18 -0
  507. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785496223183-AddMonitorSummaryToIncidentAndAlert.js.map +1 -0
  508. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.js +29 -0
  509. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785516996695-AddSessionReplayReliabilityColumns.js.map +1 -0
  510. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.js +35 -0
  511. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785533806494-AddSessionReplayCorrelationColumns.js.map +1 -0
  512. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.js +40 -0
  513. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785749674203-AddRedisAndPostgresHealthNotificationColumns.js.map +1 -0
  514. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.js +128 -0
  515. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785763818197-AddAutoRemediation.js.map +1 -0
  516. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.js +28 -0
  517. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785768089408-AddRemediationVerification.js.map +1 -0
  518. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.js +14 -0
  519. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785776960660-AddRunnerCapabilities.js.map +1 -0
  520. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.js +27 -0
  521. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785790000000-AddIncidentInvestigationGating.js.map +1 -0
  522. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.js +44 -0
  523. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785800000000-AddRunbookCredential.js.map +1 -0
  524. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.js +88 -0
  525. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785810000000-RenameRunbookAgentToRunner.js.map +1 -0
  526. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.js +59 -0
  527. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785860000000-SessionReplayDefaultToSensitiveInputMasking.js.map +1 -0
  528. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.js +76 -0
  529. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785870000000-AddAiCommandRemediation.js.map +1 -0
  530. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.js +214 -0
  531. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785880000000-AlignRunnerSchemaWithEntities.js.map +1 -0
  532. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.js +44 -0
  533. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785890000000-AddFixVerificationAndAutomaticCodeFixes.js.map +1 -0
  534. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +32 -0
  535. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  536. package/build/dist/Server/Services/AIRunService.js +1 -4
  537. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  538. package/build/dist/Server/Services/AIService.js +26 -0
  539. package/build/dist/Server/Services/AIService.js.map +1 -1
  540. package/build/dist/Server/Services/AlertService.js +37 -4
  541. package/build/dist/Server/Services/AlertService.js.map +1 -1
  542. package/build/dist/Server/Services/AlertSeverityService.js +24 -11
  543. package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
  544. package/build/dist/Server/Services/AlertStateService.js +24 -11
  545. package/build/dist/Server/Services/AlertStateService.js.map +1 -1
  546. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +917 -0
  547. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -0
  548. package/build/dist/Server/Services/{RunbookAgentOwnerTeamService.js → AutoRemediationRuleService.js} +2 -2
  549. package/build/dist/Server/Services/AutoRemediationRuleService.js.map +1 -0
  550. package/build/dist/Server/Services/AutoRemediationSuggestionService.js +127 -0
  551. package/build/dist/Server/Services/AutoRemediationSuggestionService.js.map +1 -0
  552. package/build/dist/Server/Services/BillingService.js +45 -1
  553. package/build/dist/Server/Services/BillingService.js.map +1 -1
  554. package/build/dist/Server/Services/DatabaseService.js +72 -4
  555. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  556. package/build/dist/Server/Services/IncidentService.js +52 -4
  557. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  558. package/build/dist/Server/Services/IncidentSeverityService.js +24 -11
  559. package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
  560. package/build/dist/Server/Services/IncidentStateService.js +24 -11
  561. package/build/dist/Server/Services/IncidentStateService.js.map +1 -1
  562. package/build/dist/Server/Services/Index.js +18 -0
  563. package/build/dist/Server/Services/Index.js.map +1 -1
  564. package/build/dist/Server/Services/LlmProviderService.js +61 -8
  565. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  566. package/build/dist/Server/Services/MonitorService.js +24 -0
  567. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  568. package/build/dist/Server/Services/MonitorStatusService.js +25 -11
  569. package/build/dist/Server/Services/MonitorStatusService.js.map +1 -1
  570. package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +12 -11
  571. package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
  572. package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js +43 -0
  573. package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js.map +1 -1
  574. package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +12 -11
  575. package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
  576. package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js +41 -0
  577. package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js.map +1 -1
  578. package/build/dist/Server/Services/NetworkDeviceService.js +129 -20
  579. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  580. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +67 -10
  581. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -1
  582. package/build/dist/Server/Services/NetworkSiteService.js +19 -8
  583. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  584. package/build/dist/Server/Services/ProjectService.js +43 -0
  585. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  586. package/build/dist/Server/Services/RumApplicationService.js +202 -0
  587. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  588. package/build/dist/Server/Services/RumSessionChunkService.js +9 -0
  589. package/build/dist/Server/Services/RumSessionChunkService.js.map +1 -0
  590. package/build/dist/Server/Services/RumSessionErasureRequestService.js +190 -0
  591. package/build/dist/Server/Services/RumSessionErasureRequestService.js.map +1 -0
  592. package/build/dist/Server/Services/RumSessionPinService.js +208 -0
  593. package/build/dist/Server/Services/RumSessionPinService.js.map +1 -0
  594. package/build/dist/Server/Services/RumSessionReplayViewService.js +180 -0
  595. package/build/dist/Server/Services/RumSessionReplayViewService.js.map +1 -0
  596. package/build/dist/Server/Services/RumSessionService.js +102 -0
  597. package/build/dist/Server/Services/RumSessionService.js.map +1 -0
  598. package/build/dist/Server/Services/RunbookCredentialService.js +67 -0
  599. package/build/dist/Server/Services/RunbookCredentialService.js.map +1 -0
  600. package/build/dist/Server/Services/{RunbookAgentJobService.js → RunnerJobService.js} +158 -46
  601. package/build/dist/Server/Services/RunnerJobService.js.map +1 -0
  602. package/build/dist/Server/Services/{RunbookAgentOwnerUserService.js → RunnerOwnerTeamService.js} +2 -2
  603. package/build/dist/Server/Services/RunnerOwnerTeamService.js.map +1 -0
  604. package/build/dist/Server/Services/RunnerOwnerUserService.js +9 -0
  605. package/build/dist/Server/Services/RunnerOwnerUserService.js.map +1 -0
  606. package/build/dist/Server/Services/RunnerService.js +163 -0
  607. package/build/dist/Server/Services/RunnerService.js.map +1 -0
  608. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js +24 -11
  609. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js.map +1 -1
  610. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +15 -1
  611. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  612. package/build/dist/Server/Services/ServiceService.js +8 -2
  613. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  614. package/build/dist/Server/Services/StatusPageService.js +173 -16
  615. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  616. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js +17 -1
  617. package/build/dist/Server/Services/StatusPageSubscriberNotificationTemplateService.js.map +1 -1
  618. package/build/dist/Server/Services/TelemetryExceptionService.js +3 -16
  619. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  620. package/build/dist/Server/Services/TelemetryUsageBillingService.js +31 -3
  621. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  622. package/build/dist/Server/Services/TraceAggregationService.js +106 -2
  623. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  624. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js +16 -0
  625. package/build/dist/Server/Types/Billing/MeteredPlan/AllMeteredPlans.js.map +1 -1
  626. package/build/dist/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.js +9 -0
  627. package/build/dist/Server/Types/Billing/MeteredPlan/ServerMeteredPlan.js.map +1 -1
  628. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +38 -6
  629. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  630. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAuth.js +104 -0
  631. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAuth.js.map +1 -0
  632. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.js +54 -0
  633. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentAvailability.js.map +1 -0
  634. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +11 -7
  635. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
  636. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js +3 -4
  637. package/build/dist/Server/Utils/AI/CodeFix/CodeFixRunQueue.js.map +1 -1
  638. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +724 -0
  639. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -0
  640. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +668 -0
  641. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -0
  642. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +657 -0
  643. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -0
  644. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +52 -7
  645. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  646. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +53 -5
  647. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
  648. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +25 -6
  649. package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -1
  650. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +131 -17
  651. package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -1
  652. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +200 -5
  653. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
  654. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js +2 -7
  655. package/build/dist/Server/Utils/AI/SRE/Insights/Triage.js.map +1 -1
  656. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +4 -17
  657. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
  658. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +203 -19
  659. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
  660. package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js +89 -0
  661. package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js.map +1 -0
  662. package/build/dist/Server/Utils/AI/SRE/RemediationHandoff.js +82 -0
  663. package/build/dist/Server/Utils/AI/SRE/RemediationHandoff.js.map +1 -0
  664. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +4 -19
  665. package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -1
  666. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +2 -2
  667. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +36 -0
  668. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
  669. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +498 -0
  670. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -0
  671. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +492 -0
  672. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -0
  673. package/build/dist/Server/Utils/CorsOptions.js +47 -0
  674. package/build/dist/Server/Utils/CorsOptions.js.map +1 -0
  675. package/build/dist/Server/Utils/Database/RelationIdUtil.js +51 -0
  676. package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -0
  677. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +38 -0
  678. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
  679. package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js +194 -0
  680. package/build/dist/Server/Utils/InstanceHealth/PostgresHealth.js.map +1 -0
  681. package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js +292 -0
  682. package/build/dist/Server/Utils/InstanceHealth/RedisHealth.js.map +1 -0
  683. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +11 -0
  684. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  685. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +9 -0
  686. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  687. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +9 -0
  688. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  689. package/build/dist/Server/Utils/Monitor/MonitorResource.js +16 -0
  690. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  691. package/build/dist/Server/Utils/Monitor/MonitorSummaryCapture.js +92 -0
  692. package/build/dist/Server/Utils/Monitor/MonitorSummaryCapture.js.map +1 -0
  693. package/build/dist/Server/Utils/NetworkDevice/RulePatternValidator.js +27 -0
  694. package/build/dist/Server/Utils/NetworkDevice/RulePatternValidator.js.map +1 -0
  695. package/build/dist/Server/Utils/OpenAPI.js +2 -1
  696. package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
  697. package/build/dist/Server/Utils/Runbook/RunbookExecutePermission.js +67 -0
  698. package/build/dist/Server/Utils/Runbook/RunbookExecutePermission.js.map +1 -0
  699. package/build/dist/Server/Utils/SessionReplay/SessionReplayErasureTombstone.js +98 -0
  700. package/build/dist/Server/Utils/SessionReplay/SessionReplayErasureTombstone.js.map +1 -0
  701. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js +378 -0
  702. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCache.js.map +1 -0
  703. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js +137 -0
  704. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js.map +1 -0
  705. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +998 -0
  706. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -0
  707. package/build/dist/Server/Utils/SessionReplay/SessionReplayRetention.js +59 -0
  708. package/build/dist/Server/Utils/SessionReplay/SessionReplayRetention.js.map +1 -0
  709. package/build/dist/Server/Utils/SessionReplay/SessionReplayTargeting.js +98 -0
  710. package/build/dist/Server/Utils/SessionReplay/SessionReplayTargeting.js.map +1 -0
  711. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +69 -0
  712. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -0
  713. package/build/dist/Server/Utils/StartServer.js +40 -3
  714. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  715. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js +27 -6
  716. package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js.map +1 -1
  717. package/build/dist/Types/AI/AIRunStatus.js +17 -5
  718. package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
  719. package/build/dist/Types/AI/AIRunType.js +18 -0
  720. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  721. package/build/dist/Types/AI/FixVerificationStatus.js +22 -0
  722. package/build/dist/Types/AI/FixVerificationStatus.js.map +1 -0
  723. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +16 -0
  724. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  725. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +192 -0
  726. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -0
  727. package/build/dist/Types/AutoRemediation/AutoRemediationExecutionMode.js +18 -0
  728. package/build/dist/Types/AutoRemediation/AutoRemediationExecutionMode.js.map +1 -0
  729. package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionStatus.js +31 -0
  730. package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionStatus.js.map +1 -0
  731. package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionType.js +18 -0
  732. package/build/dist/Types/AutoRemediation/AutoRemediationSuggestionType.js.map +1 -0
  733. package/build/dist/Types/AutoRemediation/AutoRemediationTriggerEntity.js +12 -0
  734. package/build/dist/Types/AutoRemediation/AutoRemediationTriggerEntity.js.map +1 -0
  735. package/build/dist/Types/AutoRemediation/AutoRemediationVerificationStatus.js +22 -0
  736. package/build/dist/Types/AutoRemediation/AutoRemediationVerificationStatus.js.map +1 -0
  737. package/build/dist/Types/CustomField/CustomFieldDropdownOption.js +110 -0
  738. package/build/dist/Types/CustomField/CustomFieldDropdownOption.js.map +1 -0
  739. package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
  740. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  741. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +4 -0
  742. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  743. package/build/dist/Types/Dashboard/DashboardComponents/DashboardClockComponent.js +19 -0
  744. package/build/dist/Types/Dashboard/DashboardComponents/DashboardClockComponent.js.map +1 -0
  745. package/build/dist/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.js +2 -0
  746. package/build/dist/Types/Dashboard/DashboardComponents/DashboardHtmlComponent.js.map +1 -0
  747. package/build/dist/Types/Dashboard/DashboardTemplates.js +487 -0
  748. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  749. package/build/dist/Types/Date.js +6 -0
  750. package/build/dist/Types/Date.js.map +1 -1
  751. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  752. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  753. package/build/dist/Types/Kubernetes/KubernetesRightSizing.js +229 -0
  754. package/build/dist/Types/Kubernetes/KubernetesRightSizing.js.map +1 -0
  755. package/build/dist/Types/MeteredPlan/ProductType.js +1 -0
  756. package/build/dist/Types/MeteredPlan/ProductType.js.map +1 -1
  757. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +12 -2
  758. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  759. package/build/dist/Types/Monitor/MonitorSteps.js +5 -0
  760. package/build/dist/Types/Monitor/MonitorSteps.js.map +1 -1
  761. package/build/dist/Types/Monitor/MonitorSummarySnapshot.js +13 -0
  762. package/build/dist/Types/Monitor/MonitorSummarySnapshot.js.map +1 -0
  763. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +40 -8
  764. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  765. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +4 -3
  766. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  767. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +50 -10
  768. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  769. package/build/dist/Types/Monitor/RumAlertTemplates.js +297 -0
  770. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -0
  771. package/build/dist/Types/Permission.js +184 -24
  772. package/build/dist/Types/Permission.js.map +1 -1
  773. package/build/dist/Types/Rum/SessionReplay.js +155 -0
  774. package/build/dist/Types/Rum/SessionReplay.js.map +1 -0
  775. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js +26 -0
  776. package/build/dist/Types/Rum/SessionReplayCaptureTrigger.js.map +1 -0
  777. package/build/dist/Types/Rum/SessionReplayConsentMode.js +27 -0
  778. package/build/dist/Types/Rum/SessionReplayConsentMode.js.map +1 -0
  779. package/build/dist/Types/Rum/SessionReplayMaskingMode.js +79 -0
  780. package/build/dist/Types/Rum/SessionReplayMaskingMode.js.map +1 -0
  781. package/build/dist/Types/Rum/SessionReplayTriggerReason.js +28 -0
  782. package/build/dist/Types/Rum/SessionReplayTriggerReason.js.map +1 -0
  783. package/build/dist/Types/Runbook/RunbookCredentialType.js +7 -0
  784. package/build/dist/Types/Runbook/RunbookCredentialType.js.map +1 -0
  785. package/build/dist/Types/Runbook/RunbookStep.js +20 -1
  786. package/build/dist/Types/Runbook/RunbookStep.js.map +1 -1
  787. package/build/dist/Types/Runbook/RunbookStepType.js +24 -0
  788. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  789. package/build/dist/Types/Runbook/RunnerJobOrigin.js +21 -0
  790. package/build/dist/Types/Runbook/RunnerJobOrigin.js.map +1 -0
  791. package/build/dist/Types/Runbook/RunnerJobStatus.js +22 -0
  792. package/build/dist/Types/Runbook/RunnerJobStatus.js.map +1 -0
  793. package/build/dist/Types/Runner/RunnerLiveStatus.js +69 -0
  794. package/build/dist/Types/Runner/RunnerLiveStatus.js.map +1 -0
  795. package/build/dist/Types/StatusPage/StatusPageReport.js +22 -0
  796. package/build/dist/Types/StatusPage/StatusPageReport.js.map +1 -0
  797. package/build/dist/Types/Telemetry/TelemetryRetentionConfig.js.map +1 -1
  798. package/build/dist/Types/Text.js +29 -0
  799. package/build/dist/Types/Text.js.map +1 -1
  800. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +143 -28
  801. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
  802. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +82 -9
  803. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
  804. package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js +11 -0
  805. package/build/dist/UI/Components/BulkUpdate/BulkOwnerActions.js.map +1 -1
  806. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js +11 -13
  807. package/build/dist/UI/Components/CustomFields/CustomFieldsDetail.js.map +1 -1
  808. package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js +76 -45
  809. package/build/dist/UI/Components/CustomFields/DropdownOptionsInput.js.map +1 -1
  810. package/build/dist/UI/Components/Detail/Detail.js +100 -8
  811. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  812. package/build/dist/UI/Components/Dropdown/Dropdown.js +2 -5
  813. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  814. package/build/dist/UI/Components/Dropdown/DropdownMenuZIndex.js +7 -0
  815. package/build/dist/UI/Components/Dropdown/DropdownMenuZIndex.js.map +1 -0
  816. package/build/dist/UI/Components/Dropdown/DropdownValueBadge.js +32 -0
  817. package/build/dist/UI/Components/Dropdown/DropdownValueBadge.js.map +1 -0
  818. package/build/dist/UI/Components/Filters/OperatorSelector.js +210 -20
  819. package/build/dist/UI/Components/Filters/OperatorSelector.js.map +1 -1
  820. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +26 -10
  821. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
  822. package/build/dist/UI/Components/Forms/Fields/IconPicker.js +28 -13
  823. package/build/dist/UI/Components/Forms/Fields/IconPicker.js.map +1 -1
  824. package/build/dist/UI/Components/Forms/Validation.js +9 -5
  825. package/build/dist/UI/Components/Forms/Validation.js.map +1 -1
  826. package/build/dist/UI/Components/List/List.js +1 -1
  827. package/build/dist/UI/Components/List/List.js.map +1 -1
  828. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +21 -19
  829. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -1
  830. package/build/dist/UI/Components/Pagination/Pagination.js +14 -3
  831. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  832. package/build/dist/UI/Components/Table/Table.js +1 -1
  833. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  834. package/build/dist/UI/Types/UseAnchoredFieldPopup.js +197 -0
  835. package/build/dist/UI/Types/UseAnchoredFieldPopup.js.map +1 -0
  836. package/build/dist/UI/Utils/Dropdown.js +18 -0
  837. package/build/dist/UI/Utils/Dropdown.js.map +1 -1
  838. package/build/dist/UI/Utils/Timezone.js +13 -2
  839. package/build/dist/UI/Utils/Timezone.js.map +1 -1
  840. package/build/dist/UI/Utils/UseClockTick.js +41 -0
  841. package/build/dist/UI/Utils/UseClockTick.js.map +1 -0
  842. package/build/dist/Utils/AiRemediation/CommandPolicy.js +303 -0
  843. package/build/dist/Utils/AiRemediation/CommandPolicy.js.map +1 -0
  844. package/build/dist/Utils/Dashboard/ClockWidgetFormat.js +232 -0
  845. package/build/dist/Utils/Dashboard/ClockWidgetFormat.js.map +1 -0
  846. package/build/dist/Utils/Dashboard/Components/DashboardClockComponent.js +146 -0
  847. package/build/dist/Utils/Dashboard/Components/DashboardClockComponent.js.map +1 -0
  848. package/build/dist/Utils/Dashboard/Components/DashboardHtmlComponent.js +133 -0
  849. package/build/dist/Utils/Dashboard/Components/DashboardHtmlComponent.js.map +1 -0
  850. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js +10 -1
  851. package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js.map +1 -1
  852. package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
  853. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  854. package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js +198 -0
  855. package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js.map +1 -0
  856. package/build/dist/Utils/Dashboard/ValueWidgetLayout.js +276 -0
  857. package/build/dist/Utils/Dashboard/ValueWidgetLayout.js.map +1 -0
  858. package/build/dist/Utils/Metrics/MetricSeriesScope.js +203 -0
  859. package/build/dist/Utils/Metrics/MetricSeriesScope.js.map +1 -0
  860. package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js +382 -0
  861. package/build/dist/Utils/Monitor/MonitorSummarySnapshotUtil.js.map +1 -0
  862. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +13 -7
  863. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -1
  864. package/build/dist/Utils/Rules/RulePatternMatchUtil.js +87 -0
  865. package/build/dist/Utils/Rules/RulePatternMatchUtil.js.map +1 -0
  866. package/build/dist/Utils/Rum/ChunkMath.js +147 -0
  867. package/build/dist/Utils/Rum/ChunkMath.js.map +1 -0
  868. package/build/dist/Utils/Rum/Masking.js +143 -0
  869. package/build/dist/Utils/Rum/Masking.js.map +1 -0
  870. package/build/dist/Utils/Rum/SessionIdentity.js +161 -0
  871. package/build/dist/Utils/Rum/SessionIdentity.js.map +1 -0
  872. package/build/dist/Utils/Rum/SessionSampling.js +91 -0
  873. package/build/dist/Utils/Rum/SessionSampling.js.map +1 -0
  874. package/build/dist/Utils/Rum/UrlScrubber.js +144 -0
  875. package/build/dist/Utils/Rum/UrlScrubber.js.map +1 -0
  876. package/build/dist/Utils/Schema/ModelSchema.js +28 -3
  877. package/build/dist/Utils/Schema/ModelSchema.js.map +1 -1
  878. package/build/dist/Utils/StatusPage/Report.js +194 -0
  879. package/build/dist/Utils/StatusPage/Report.js.map +1 -0
  880. package/build/dist/Utils/ValueFormatter.js +239 -46
  881. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  882. package/jest.config.json +3 -0
  883. package/package.json +1 -1
  884. package/tsconfig.json +19 -1
  885. package/Server/Services/RunbookAgentService.ts +0 -93
  886. package/build/dist/Models/DatabaseModels/RunbookAgent.js.map +0 -1
  887. package/build/dist/Models/DatabaseModels/RunbookAgentJob.js.map +0 -1
  888. package/build/dist/Models/DatabaseModels/RunbookAgentOwnerTeam.js.map +0 -1
  889. package/build/dist/Models/DatabaseModels/RunbookAgentOwnerUser.js.map +0 -1
  890. package/build/dist/Server/Services/RunbookAgentJobService.js.map +0 -1
  891. package/build/dist/Server/Services/RunbookAgentOwnerTeamService.js.map +0 -1
  892. package/build/dist/Server/Services/RunbookAgentOwnerUserService.js.map +0 -1
  893. package/build/dist/Server/Services/RunbookAgentService.js +0 -91
  894. package/build/dist/Server/Services/RunbookAgentService.js.map +0 -1
  895. package/build/dist/Types/Runbook/RunbookAgentJobStatus.js +0 -22
  896. package/build/dist/Types/Runbook/RunbookAgentJobStatus.js.map +0 -1
@@ -11,6 +11,10 @@ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
11
11
  import { DbJSONResponse, Results } from "./AnalyticsDatabaseService";
12
12
  import logger from "../Utils/Logger";
13
13
  import ServiceType from "../../Types/Telemetry/ServiceType";
14
+ import ResourceFacetResolver, {
15
+ ResolvedFacetValue,
16
+ ResourceFacetSpec,
17
+ } from "../Utils/Telemetry/ResourceFacetResolver";
14
18
 
15
19
  export interface HistogramBucket {
16
20
  time: string;
@@ -18,6 +22,14 @@ export interface HistogramBucket {
18
22
  count: number;
19
23
  }
20
24
 
25
+ /*
26
+ * An exact attribute predicate. A single string is `= value`; an array is
27
+ * `IN (...)`, which is what a multi-select dashboard variable resolves to.
28
+ * Mirrors LogAttributeFilterValue so both explorers filter identically.
29
+ */
30
+ export type TraceAttributeFilterValue = string | Array<string>;
31
+ export type TraceAttributeFilters = Record<string, TraceAttributeFilterValue>;
32
+
21
33
  export interface TraceFilters {
22
34
  serviceIds?: Array<ObjectID> | undefined;
23
35
  entityKeys?: Array<string> | undefined;
@@ -47,7 +59,7 @@ export interface TraceFilters {
47
59
  maxDurationNano?: number | undefined;
48
60
  exactDurationNano?: number | undefined;
49
61
  rootOnly?: boolean | undefined;
50
- attributes?: Record<string, string> | undefined;
62
+ attributes?: TraceAttributeFilters | undefined;
51
63
  /*
52
64
  * Substring (contains) attribute matches — `@key:~value` in the explorer.
53
65
  * Same case-insensitive key matching as `attributes`, value via ILIKE.
@@ -1151,6 +1163,27 @@ export class TraceAggregationService {
1151
1163
  * LogAggregationService.appendCommonFilters. Casings vary across
1152
1164
  * OTEL conventions and app-emitted attributes.
1153
1165
  */
1166
+ if (Array.isArray(attrValue)) {
1167
+ /*
1168
+ * Multi-value selection (a multi-select dashboard variable) — an
1169
+ * empty array means "no selection", which must widen to everything
1170
+ * rather than compile to `IN ()` and match nothing.
1171
+ */
1172
+ if (attrValue.length === 0) {
1173
+ continue;
1174
+ }
1175
+ statement.append(
1176
+ SQL` AND arrayExists((k, v) -> lowerUTF8(k) = lowerUTF8(${{
1177
+ type: TableColumnType.Text,
1178
+ value: attrKey,
1179
+ }}) AND v IN (${{
1180
+ type: TableColumnType.Text,
1181
+ value: new Includes(attrValue),
1182
+ }}), mapKeys(attributes), mapValues(attributes))`,
1183
+ );
1184
+ continue;
1185
+ }
1186
+
1154
1187
  statement.append(
1155
1188
  SQL` AND arrayExists((k, v) -> lowerUTF8(k) = lowerUTF8(${{
1156
1189
  type: TableColumnType.Text,
@@ -1229,7 +1262,116 @@ export class TraceAggregationService {
1229
1262
  * (LogAggregationService.getAnalyticsTimeseries and friends) and shares
1230
1263
  * appendCommonFilters with the histogram/facets, so every explorer filter
1231
1264
  * applies identically.
1265
+ *
1266
+ * A resource dimension (rumApplicationId, hostId, kubernetesClusterId, …)
1267
+ * selects the bare `toString(primaryEntityId)`, so grouping by one returns
1268
+ * internal ObjectIDs. Nothing downstream turns those into names: the traces
1269
+ * explorer resolves only its own `primaryEntityId` split, client-side, and
1270
+ * the dashboard TraceChart / TraceTable widgets have no equivalent — so the
1271
+ * raw id reaches the chart legend, the tooltip series name and the table
1272
+ * cell. Resolve them here, once per query, through the same resolver the
1273
+ * facet sidebar uses.
1274
+ *
1275
+ * Deliberately NOT applied to getAnalyticsTopList: the timeseries path
1276
+ * feeds that method's values straight back into the query as an IN filter
1277
+ * (see getAnalyticsTimeseries), and the AI latency detectors match on them,
1278
+ * so those must stay raw.
1279
+ *
1280
+ * Unresolvable ids — a deleted resource, or one past the resolver's page
1281
+ * size — keep their raw value rather than vanishing from the result.
1232
1282
  */
1283
+ private static async applyResourceDisplayValues<
1284
+ TRow extends { groupValues: Record<string, string> },
1285
+ >(
1286
+ projectId: ObjectID,
1287
+ groupByKeys: Array<string>,
1288
+ rows: Array<TRow>,
1289
+ ): Promise<Array<TRow>> {
1290
+ /*
1291
+ * Both memberships are required, and the two sets genuinely differ:
1292
+ *
1293
+ * - `proxmoxClusterId` / `cephClusterId` are resource dimensions here
1294
+ * but have no branch in ResourceFacetResolver.resolveOne, which
1295
+ * returns [] for them. Asking anyway would cost a round-trip and
1296
+ * still leave the cell raw.
1297
+ * - `primaryEntityId` / `serviceId` are resolvable but are NOT resource
1298
+ * dimensions here — they select the OpenTelemetry-service slot, and
1299
+ * the traces explorer already resolves that split client-side
1300
+ * (TracesAnalyticsView's serviceNameMap). Renaming their values
1301
+ * server-side would change an existing surface for no gain.
1302
+ *
1303
+ * Taking the intersection means a key becomes resolvable here the
1304
+ * moment the resolver learns it, with no second list to update.
1305
+ */
1306
+ const resourceKeys: Array<string> = groupByKeys.filter(
1307
+ (key: string): boolean => {
1308
+ return (
1309
+ TraceAggregationService.RESOURCE_FACET_KEYS.has(key) &&
1310
+ ResourceFacetResolver.isResourceFacet(key)
1311
+ );
1312
+ },
1313
+ );
1314
+
1315
+ if (resourceKeys.length === 0 || rows.length === 0) {
1316
+ return rows;
1317
+ }
1318
+
1319
+ const specs: Array<ResourceFacetSpec> = resourceKeys.map(
1320
+ (key: string): ResourceFacetSpec => {
1321
+ const counts: Map<string, number> = new Map();
1322
+
1323
+ for (const row of rows) {
1324
+ const raw: string | undefined = row.groupValues[key];
1325
+ if (raw) {
1326
+ counts.set(raw, (counts.get(raw) || 0) + 1);
1327
+ }
1328
+ }
1329
+
1330
+ return { facetKey: key, counts: counts };
1331
+ },
1332
+ );
1333
+
1334
+ let resolved: Record<string, Array<ResolvedFacetValue>> = {};
1335
+
1336
+ try {
1337
+ resolved = await ResourceFacetResolver.resolve(projectId, specs);
1338
+ } catch (err: unknown) {
1339
+ logger.warn(
1340
+ `Could not resolve resource display names for trace analytics group-by; falling back to raw ids: ${err}`,
1341
+ );
1342
+ return rows;
1343
+ }
1344
+
1345
+ const displayNamesByKey: Map<string, Map<string, string>> = new Map();
1346
+
1347
+ for (const key of resourceKeys) {
1348
+ const displayNames: Map<string, string> = new Map();
1349
+
1350
+ for (const entry of resolved[key] || []) {
1351
+ if (entry.displayName) {
1352
+ displayNames.set(entry.value, entry.displayName);
1353
+ }
1354
+ }
1355
+
1356
+ displayNamesByKey.set(key, displayNames);
1357
+ }
1358
+
1359
+ for (const row of rows) {
1360
+ for (const key of resourceKeys) {
1361
+ const raw: string | undefined = row.groupValues[key];
1362
+ const displayName: string | undefined = raw
1363
+ ? displayNamesByKey.get(key)?.get(raw)
1364
+ : undefined;
1365
+
1366
+ if (displayName) {
1367
+ row.groupValues[key] = displayName;
1368
+ }
1369
+ }
1370
+ }
1371
+
1372
+ return rows;
1373
+ }
1374
+
1233
1375
  @CaptureSpan()
1234
1376
  public static async getAnalyticsTimeseries(
1235
1377
  request: TraceAnalyticsRequest,
@@ -1285,20 +1427,31 @@ export class TraceAggregationService {
1285
1427
  );
1286
1428
  }
1287
1429
 
1288
- return rows.map((row: JSONObject): TraceAnalyticsTimeseriesRow => {
1289
- const groupValues: Record<string, string> = {};
1430
+ const timeseriesRows: Array<TraceAnalyticsTimeseriesRow> = rows.map(
1431
+ (row: JSONObject): TraceAnalyticsTimeseriesRow => {
1432
+ const groupValues: Record<string, string> = {};
1290
1433
 
1291
- for (const [index, key] of groupByKeys.entries()) {
1292
- const alias: string = TraceAggregationService.groupByAlias(key, index);
1293
- groupValues[key] = String(row[alias] ?? "");
1294
- }
1434
+ for (const [index, key] of groupByKeys.entries()) {
1435
+ const alias: string = TraceAggregationService.groupByAlias(
1436
+ key,
1437
+ index,
1438
+ );
1439
+ groupValues[key] = String(row[alias] ?? "");
1440
+ }
1295
1441
 
1296
- return {
1297
- time: String(row["bucket"] || ""),
1298
- value: Number(row["val"] || 0),
1299
- groupValues,
1300
- };
1301
- });
1442
+ return {
1443
+ time: String(row["bucket"] || ""),
1444
+ value: Number(row["val"] || 0),
1445
+ groupValues,
1446
+ };
1447
+ },
1448
+ );
1449
+
1450
+ return TraceAggregationService.applyResourceDisplayValues(
1451
+ request.projectId,
1452
+ groupByKeys,
1453
+ timeseriesRows,
1454
+ );
1302
1455
  }
1303
1456
 
1304
1457
  @CaptureSpan()
@@ -1370,27 +1523,38 @@ export class TraceAggregationService {
1370
1523
 
1371
1524
  const groupByKeys: Array<string> = request.groupBy;
1372
1525
 
1373
- return rows.map((row: JSONObject): TraceAnalyticsTableRow => {
1374
- const groupValues: Record<string, string> = {};
1526
+ const tableRows: Array<TraceAnalyticsTableRow> = rows.map(
1527
+ (row: JSONObject): TraceAnalyticsTableRow => {
1528
+ const groupValues: Record<string, string> = {};
1375
1529
 
1376
- for (const [index, key] of groupByKeys.entries()) {
1377
- const alias: string = TraceAggregationService.groupByAlias(key, index);
1378
- groupValues[key] = String(row[alias] ?? "");
1379
- }
1530
+ for (const [index, key] of groupByKeys.entries()) {
1531
+ const alias: string = TraceAggregationService.groupByAlias(
1532
+ key,
1533
+ index,
1534
+ );
1535
+ groupValues[key] = String(row[alias] ?? "");
1536
+ }
1380
1537
 
1381
- return {
1382
- groupValues,
1383
- count: Number(row["cnt"] || 0),
1384
- errorCount: Number(row["err_cnt"] || 0),
1385
- avgDurationMs: Number(row["avg_ms"] || 0),
1386
- p50DurationMs: Number(row["p50_ms"] || 0),
1387
- p90DurationMs: Number(row["p90_ms"] || 0),
1388
- p95DurationMs: Number(row["p95_ms"] || 0),
1389
- p99DurationMs: Number(row["p99_ms"] || 0),
1390
- minDurationMs: Number(row["min_ms"] || 0),
1391
- maxDurationMs: Number(row["max_ms"] || 0),
1392
- };
1393
- });
1538
+ return {
1539
+ groupValues,
1540
+ count: Number(row["cnt"] || 0),
1541
+ errorCount: Number(row["err_cnt"] || 0),
1542
+ avgDurationMs: Number(row["avg_ms"] || 0),
1543
+ p50DurationMs: Number(row["p50_ms"] || 0),
1544
+ p90DurationMs: Number(row["p90_ms"] || 0),
1545
+ p95DurationMs: Number(row["p95_ms"] || 0),
1546
+ p99DurationMs: Number(row["p99_ms"] || 0),
1547
+ minDurationMs: Number(row["min_ms"] || 0),
1548
+ maxDurationMs: Number(row["max_ms"] || 0),
1549
+ };
1550
+ },
1551
+ );
1552
+
1553
+ return TraceAggregationService.applyResourceDisplayValues(
1554
+ request.projectId,
1555
+ groupByKeys,
1556
+ tableRows,
1557
+ );
1394
1558
  }
1395
1559
 
1396
1560
  /*
@@ -32,12 +32,27 @@ export const ProfilesDataIngestMeteredPlan: TelemetryMeteredPlanType =
32
32
  unitCostInUSD: 0.1 / 15, // 0.10 per 15 days per GB
33
33
  });
34
34
 
35
+ /*
36
+ * Session replay is priced above the other pillars on purpose.
37
+ *
38
+ * At telemetry parity (0.1 / 15) a project recording 100k sessions a month
39
+ * bills well under a dollar, which does not cover the cost and mis-signals the
40
+ * value of the feature. This rate is still far below comparable products while
41
+ * scaling with the actual driver, which is bytes of recording retained.
42
+ */
43
+ export const SessionReplayDataIngestMeteredPlan: TelemetryMeteredPlanType =
44
+ new TelemetryMeteredPlanType({
45
+ productType: ProductType.SessionReplay,
46
+ unitCostInUSD: 2.0 / 15, // 2.00 per 15 days per GB
47
+ });
48
+
35
49
  const AllMeteredPlans: Array<ServerMeteredPlan> = [
36
50
  ActiveMonitoringMeteredPlan,
37
51
  LogDataIngestMeteredPlan,
38
52
  MetricsDataIngestMeteredPlan,
39
53
  TracesDataIngestMetredPlan,
40
54
  ProfilesDataIngestMeteredPlan,
55
+ SessionReplayDataIngestMeteredPlan,
41
56
  ];
42
57
 
43
58
  export class MeteredPlanUtil {
@@ -53,6 +68,8 @@ export class MeteredPlanUtil {
53
68
  return TracesDataIngestMetredPlan;
54
69
  } else if (productType === ProductType.Profiles) {
55
70
  return ProfilesDataIngestMeteredPlan;
71
+ } else if (productType === ProductType.SessionReplay) {
72
+ return SessionReplayDataIngestMeteredPlan;
56
73
  } else if (productType === ProductType.ActiveMonitoring) {
57
74
  return ActiveMonitoringMeteredPlan;
58
75
  }
@@ -30,4 +30,14 @@ export default class ServerMeteredPlan {
30
30
  public getPriceId(): string {
31
31
  return BillingService.getMeteredPlanPriceId(this.getProductType());
32
32
  }
33
+
34
+ /*
35
+ * Whether this plan has a Stripe price yet. A plan whose price ids are not
36
+ * created in Stripe must be skipped when building Stripe subscription
37
+ * items - getPriceId throws for it - while still staging usage into
38
+ * TelemetryUsageBilling.
39
+ */
40
+ public hasPriceId(): boolean {
41
+ return BillingService.hasMeteredPlanPriceId(this.getProductType());
42
+ }
33
43
  }
@@ -5,7 +5,7 @@ import { JSONObject } from "../../../../Types/JSON";
5
5
  import { AIChatCitation } from "../../../../Types/AI/AIChatTypes";
6
6
  import AIService, { AILogResponse } from "../../../Services/AIService";
7
7
  import logger from "../../Logger";
8
- import { LLMMessage } from "../../LLM/LLMService";
8
+ import { LLMMessage, LLMToolDefinition } from "../../LLM/LLMService";
9
9
  import AIToolbox, { ToolCallOutcome } from "../Toolbox/Index";
10
10
  import { ToolContext } from "../Toolbox/ToolTypes";
11
11
  import AIChatPermissionMode from "../../../../Types/AI/AIChatPermissionMode";
@@ -91,6 +91,25 @@ export interface ObservabilityAssistantRequest {
91
91
  * failing handler should not break the run.
92
92
  */
93
93
  onStep?: ((step: ObservabilityAssistantStep) => Promise<void>) | undefined;
94
+ /*
95
+ * Run-scoped tools offered to the model IN ADDITION to the read-only
96
+ * toolbox. The registered toolbox stays authoritative for its own names —
97
+ * an extra tool can never shadow a registered one.
98
+ */
99
+ extraTools?: Array<ObservabilityAssistantExtraTool> | undefined;
100
+ }
101
+
102
+ /*
103
+ * A caller-supplied tool grafted onto the loop for one run — how the AI
104
+ * remediation-execution runner adds its command tools without registering
105
+ * them in the global chat toolbox (where every conversation would see them).
106
+ * The execute callback owns its own authorization and timeouts; the loop
107
+ * wraps it in a catch so a throw becomes a self-correctable error envelope
108
+ * for the model, never a crashed run.
109
+ */
110
+ export interface ObservabilityAssistantExtraTool {
111
+ definition: LLMToolDefinition;
112
+ execute: (args: JSONObject) => Promise<ToolCallOutcome>;
94
113
  }
95
114
 
96
115
  export interface ObservabilityAssistantResult {
@@ -144,6 +163,18 @@ export default class ObservabilityAssistant {
144
163
  props: request.props,
145
164
  };
146
165
 
166
+ /*
167
+ * Registered toolbox names win over extra tools so a run-scoped tool can
168
+ * never intercept (and man-in-the-middle) a registered tool's calls.
169
+ */
170
+ const extraToolsByName: Map<string, ObservabilityAssistantExtraTool> =
171
+ new Map();
172
+ for (const extraTool of request.extraTools || []) {
173
+ if (!AIToolbox.getToolByName(extraTool.definition.name)) {
174
+ extraToolsByName.set(extraTool.definition.name, extraTool);
175
+ }
176
+ }
177
+
147
178
  let systemPromptContent: string = buildObservabilityChatSystemPrompt({
148
179
  currentTime: OneUptimeDate.getCurrentDate(),
149
180
  /*
@@ -204,7 +235,14 @@ export default class ObservabilityAssistant {
204
235
  messages: messages,
205
236
  tools: budgetExhausted
206
237
  ? undefined
207
- : AIToolbox.getLlmToolDefinitions(AIChatPermissionMode.ReadOnly),
238
+ : [
239
+ ...AIToolbox.getLlmToolDefinitions(AIChatPermissionMode.ReadOnly),
240
+ ...Array.from(extraToolsByName.values()).map(
241
+ (extraTool: ObservabilityAssistantExtraTool) => {
242
+ return extraTool.definition;
243
+ },
244
+ ),
245
+ ],
208
246
  maxTokens: maxOutputTokens,
209
247
  temperature: TEMPERATURE,
210
248
  // Chat-ops content is per-user — do not persist previews to LlmLog.
@@ -269,11 +307,29 @@ export default class ObservabilityAssistant {
269
307
  toolArguments: toolCall.arguments,
270
308
  });
271
309
 
272
- const outcome: ToolCallOutcome = await AIToolbox.executeTool({
273
- name: toolCall.name,
274
- args: toolCall.arguments,
275
- ctx: toolContext,
276
- });
310
+ const extraTool: ObservabilityAssistantExtraTool | undefined =
311
+ extraToolsByName.get(toolCall.name);
312
+
313
+ let outcome: ToolCallOutcome;
314
+ if (extraTool) {
315
+ try {
316
+ outcome = await extraTool.execute(toolCall.arguments);
317
+ } catch (err) {
318
+ const errorMessage: string =
319
+ err instanceof Error ? err.message : String(err);
320
+ outcome = {
321
+ success: false,
322
+ textForLlm: `Error executing ${toolCall.name}: ${errorMessage}. Adjust the arguments and try again, or answer with the data you already have.`,
323
+ errorMessage: errorMessage,
324
+ };
325
+ }
326
+ } else {
327
+ outcome = await AIToolbox.executeTool({
328
+ name: toolCall.name,
329
+ args: toolCall.arguments,
330
+ ctx: toolContext,
331
+ });
332
+ }
277
333
 
278
334
  if (!outcome.success || !outcome.result) {
279
335
  await emitStep({
@@ -0,0 +1,128 @@
1
+ import AIAgentService from "../../../Services/AIAgentService";
2
+ import RunnerService from "../../../Services/RunnerService";
3
+ import ObjectID from "../../../../Types/ObjectID";
4
+ import { JSONObject } from "../../../../Types/JSON";
5
+ import AIAgent from "../../../../Models/DatabaseModels/AIAgent";
6
+ import Runner from "../../../../Models/DatabaseModels/Runner";
7
+
8
+ /*
9
+ * Which registry the presented credentials matched. Consumers that write the
10
+ * agent id into a column with a real foreign key to the AIAgent table (e.g.
11
+ * AIAgentTaskPullRequest.aiAgentId) must only do so for an AIAgent identity —
12
+ * a Runner id would violate the constraint.
13
+ */
14
+ export enum CodeFixAgentSource {
15
+ AIAgent = "AIAgent",
16
+ Runner = "Runner",
17
+ }
18
+
19
+ export interface CodeFixAgentIdentity {
20
+ id: ObjectID;
21
+ projectId?: ObjectID | undefined;
22
+ source: CodeFixAgentSource;
23
+ }
24
+
25
+ /*
26
+ * Resolves the aiAgentId/aiAgentKey pair every code-fix protocol request
27
+ * carries. Two registries can hold the identity:
28
+ *
29
+ * - AIAgent: the in-cluster fleet (cluster-key auto-registration) and any
30
+ * legacy per-project agents created before the Runner merge.
31
+ * - Runner: the unified OneUptime Runner customers install. The
32
+ * dashboard issues its id + key from this table, and the Runner presents
33
+ * them on the code-fix protocol too — so the protocol must accept them.
34
+ *
35
+ * The Runner path is also where the canRunCodeFixTasks capability is
36
+ * enforced: a Runner whose code-fix capability was revoked in the dashboard
37
+ * authenticates like any other invalid credential — it cannot claim work,
38
+ * fetch task data, or mint repository tokens, no matter what its container
39
+ * env vars say.
40
+ */
41
+ export default class CodeFixAgentAuth {
42
+ public static async resolveAgentIdentity(
43
+ data: JSONObject,
44
+ ): Promise<CodeFixAgentIdentity | null> {
45
+ if (!data["aiAgentId"] || !data["aiAgentKey"]) {
46
+ return null;
47
+ }
48
+
49
+ let agentId: ObjectID;
50
+
51
+ try {
52
+ agentId = new ObjectID(data["aiAgentId"] as string);
53
+ } catch {
54
+ return null;
55
+ }
56
+
57
+ const agentKey: string = data["aiAgentKey"] as string;
58
+
59
+ const aiAgent: AIAgent | null = await AIAgentService.findOneBy({
60
+ query: {
61
+ _id: agentId.toString(),
62
+ key: agentKey,
63
+ },
64
+ select: {
65
+ _id: true,
66
+ projectId: true,
67
+ },
68
+ props: {
69
+ isRoot: true,
70
+ },
71
+ });
72
+
73
+ if (aiAgent && aiAgent.id) {
74
+ return {
75
+ id: aiAgent.id,
76
+ projectId: aiAgent.projectId,
77
+ source: CodeFixAgentSource.AIAgent,
78
+ };
79
+ }
80
+
81
+ const runner: Runner | null = await RunnerService.findOneBy({
82
+ query: {
83
+ _id: agentId.toString(),
84
+ key: agentKey,
85
+ },
86
+ select: {
87
+ _id: true,
88
+ projectId: true,
89
+ canRunCodeFixTasks: true,
90
+ },
91
+ props: {
92
+ isRoot: true,
93
+ },
94
+ });
95
+
96
+ if (runner && runner.id && runner.canRunCodeFixTasks === true) {
97
+ return {
98
+ id: runner.id,
99
+ projectId: runner.projectId,
100
+ source: CodeFixAgentSource.Runner,
101
+ };
102
+ }
103
+
104
+ return null;
105
+ }
106
+
107
+ /*
108
+ * A project-scoped identity may only touch resources of its own project.
109
+ * Global identities (no projectId — the in-cluster fleet) serve every
110
+ * tenant. Callers should answer a denial with the same "not found"
111
+ * response they give for a missing resource, so a probing key cannot
112
+ * distinguish "exists in another tenant" from "does not exist".
113
+ */
114
+ public static deniesAccessToProject(
115
+ identity: CodeFixAgentIdentity,
116
+ resourceProjectId: ObjectID | undefined,
117
+ ): boolean {
118
+ if (!identity.projectId) {
119
+ return false;
120
+ }
121
+
122
+ if (!resourceProjectId) {
123
+ return true;
124
+ }
125
+
126
+ return identity.projectId.toString() !== resourceProjectId.toString();
127
+ }
128
+ }
@@ -0,0 +1,54 @@
1
+ import AIAgentService from "../../../Services/AIAgentService";
2
+ import RunnerService from "../../../Services/RunnerService";
3
+ import ObjectID from "../../../../Types/ObjectID";
4
+ import AIAgent from "../../../../Models/DatabaseModels/AIAgent";
5
+ import Runner from "../../../../Models/DatabaseModels/Runner";
6
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
7
+
8
+ export interface OnlineCodeFixAgent {
9
+ name: string;
10
+ }
11
+
12
+ /*
13
+ * Who can actually pick up a code-fix run for a project. Two kinds of agent
14
+ * claim that work, so both count:
15
+ *
16
+ * - an AIAgent row: the in-cluster fleet, and legacy per-project agents.
17
+ * - a OneUptime Runner (Runner row) with the code-fix capability
18
+ * enabled — what a customer installs today.
19
+ *
20
+ * Readiness checks and the orphaned-run sweeper share this, so a project
21
+ * served only by a Runner is never told "no agent is online" and never has
22
+ * its queued runs failed out from under a Runner that was polling all along.
23
+ */
24
+ export default class CodeFixAgentAvailability {
25
+ @CaptureSpan()
26
+ public static async getOnlineAgentForProject(
27
+ projectId: ObjectID,
28
+ ): Promise<OnlineCodeFixAgent | null> {
29
+ const aiAgent: AIAgent | null =
30
+ await AIAgentService.getConnectedAIAgentForProject(projectId);
31
+
32
+ if (aiAgent) {
33
+ return { name: aiAgent.name || "AI agent" };
34
+ }
35
+
36
+ const runner: Runner | null =
37
+ await RunnerService.getOnlineCodeFixRunnerForProject(projectId);
38
+
39
+ if (runner) {
40
+ return { name: runner.name || "Runner" };
41
+ }
42
+
43
+ return null;
44
+ }
45
+
46
+ @CaptureSpan()
47
+ public static async hasOnlineAgentForProject(
48
+ projectId: ObjectID,
49
+ ): Promise<boolean> {
50
+ return Boolean(
51
+ await CodeFixAgentAvailability.getOnlineAgentForProject(projectId),
52
+ );
53
+ }
54
+ }
@@ -3,6 +3,9 @@ import AIService, { AutonomousBudgetStatus } from "../../../Services/AIService";
3
3
  import LlmProviderService from "../../../Services/LlmProviderService";
4
4
  import ProjectService from "../../../Services/ProjectService";
5
5
  import SubjectCodeFixRun from "../SRE/SubjectCodeFixRun";
6
+ import CodeFixAgentAvailability, {
7
+ OnlineCodeFixAgent,
8
+ } from "./CodeFixAgentAvailability";
6
9
  import AIAgent from "../../../../Models/DatabaseModels/AIAgent";
7
10
  import LlmProvider from "../../../../Models/DatabaseModels/LlmProvider";
8
11
  import Project from "../../../../Models/DatabaseModels/Project";
@@ -165,30 +168,34 @@ export default class CodeFixReadiness {
165
168
  public static async getAgentCheck(params: {
166
169
  projectId: ObjectID;
167
170
  }): Promise<AIFixReadinessCheck> {
168
- const anyAgent: AIAgent | null = await AIAgentService.getAIAgentForProject(
169
- params.projectId,
170
- );
171
+ const onlineAgent: OnlineCodeFixAgent | null =
172
+ await CodeFixAgentAvailability.getOnlineAgentForProject(params.projectId);
171
173
 
172
- const isAlive: boolean = anyAgent
173
- ? AIAgentService.isAgentAlive(anyAgent)
174
- : false;
175
-
176
- if (isAlive) {
174
+ if (onlineAgent) {
177
175
  return {
178
176
  id: "agentAvailable",
179
177
  ok: true,
180
- title: `AI agent online: ${anyAgent?.name || "agent"}`,
178
+ title: `AI agent online: ${onlineAgent.name}`,
181
179
  detail: "Connected and polling for tasks.",
182
180
  };
183
181
  }
184
182
 
183
+ /*
184
+ * Nothing is online. Name a registered-but-silent agent when there is
185
+ * one, so the operator is told to check that container rather than to
186
+ * install another.
187
+ */
188
+ const anyAgent: AIAgent | null = await AIAgentService.getAIAgentForProject(
189
+ params.projectId,
190
+ );
191
+
185
192
  return {
186
193
  id: "agentAvailable",
187
194
  ok: false,
188
195
  title: "AI agent online",
189
196
  detail: anyAgent
190
197
  ? `The AI agent "${anyAgent.name || "agent"}" has not reported in — check that its container is running.`
191
- : "No AI agent is available for this project. Self-hosted: create an agent under Settings > AI > AI Agents and run its container. Cloud: the shared fleet appears here automatically once enabled.",
198
+ : "No agent is available for this project. Install a OneUptime Runner and enable Runs AI Code Fixes on it (Settings > Runners). Cloud: the shared fleet appears here automatically once enabled.",
192
199
  };
193
200
  }
194
201