@oneuptime/common 14.0.8 → 14.0.10

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 (976) hide show
  1. package/Models/DatabaseModels/AutoRemediationSuggestion.ts +60 -0
  2. package/Models/DatabaseModels/CephCluster.ts +213 -0
  3. package/Models/DatabaseModels/DatabaseServer.ts +213 -0
  4. package/Models/DatabaseModels/DockerHost.ts +213 -0
  5. package/Models/DatabaseModels/DockerSwarmCluster.ts +213 -0
  6. package/Models/DatabaseModels/GlobalConfig.ts +1 -1
  7. package/Models/DatabaseModels/Host.ts +213 -0
  8. package/Models/DatabaseModels/Index.ts +4 -0
  9. package/Models/DatabaseModels/KubernetesAiAgent.ts +364 -0
  10. package/Models/DatabaseModels/KubernetesCluster.ts +3 -3
  11. package/Models/DatabaseModels/PodmanHost.ts +213 -0
  12. package/Models/DatabaseModels/Project.ts +55 -5
  13. package/Models/DatabaseModels/ProxmoxCluster.ts +213 -0
  14. package/Models/DatabaseModels/ProxmoxResource.ts +49 -1
  15. package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
  16. package/Models/DatabaseModels/RunnerJob.ts +219 -0
  17. package/Models/DatabaseModels/TeamComplianceSetting.ts +143 -2
  18. package/Models/DatabaseModels/VMwareVCenter.ts +213 -0
  19. package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +17 -0
  20. package/Server/API/AIChatAPI.ts +6 -3
  21. package/Server/API/AIInvestigationAPI.ts +17 -10
  22. package/Server/API/AutoRemediationAPI.ts +598 -25
  23. package/Server/API/KubernetesClusterAiAccessAPI.ts +623 -21
  24. package/Server/API/MicrosoftTeamsAPI.ts +93 -14
  25. package/Server/API/ProxmoxResourceAPI.ts +244 -14
  26. package/Server/API/ResourceAiAccessAPI.ts +1669 -0
  27. package/Server/Infrastructure/GlobalCache.ts +32 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.ts +99 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.ts +137 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.ts +42 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  33. package/Server/Infrastructure/Semaphore.ts +22 -0
  34. package/Server/Middleware/TelemetryIngest.ts +51 -18
  35. package/Server/Services/AIService.ts +70 -1
  36. package/Server/Services/AlertService.ts +352 -11
  37. package/Server/Services/AlertSeverityService.ts +65 -15
  38. package/Server/Services/AnalyticsDatabaseService.ts +45 -1
  39. package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
  40. package/Server/Services/AutoRemediationRuleService.ts +1 -1
  41. package/Server/Services/CephClusterService.ts +109 -1
  42. package/Server/Services/DatabaseServerService.ts +116 -1
  43. package/Server/Services/DockerHostService.ts +109 -1
  44. package/Server/Services/DockerSwarmClusterService.ts +113 -1
  45. package/Server/Services/HostService.ts +126 -4
  46. package/Server/Services/IncidentService.ts +280 -104
  47. package/Server/Services/IncidentSeverityService.ts +66 -15
  48. package/Server/Services/KubernetesAiAgentJobService.ts +185 -0
  49. package/Server/Services/KubernetesAiAgentService.ts +1634 -0
  50. package/Server/Services/KubernetesClusterAiAccessService.ts +1118 -451
  51. package/Server/Services/KubernetesClusterService.ts +129 -21
  52. package/Server/Services/MetricRecordingRuleService.ts +47 -0
  53. package/Server/Services/PodmanHostService.ts +109 -1
  54. package/Server/Services/ProjectService.ts +32 -0
  55. package/Server/Services/ProxmoxClusterService.ts +110 -1
  56. package/Server/Services/ProxmoxResourceService.ts +322 -5
  57. package/Server/Services/ResourceAiAccessService.ts +1439 -0
  58. package/Server/Services/ResourceAiAgentJobService.ts +202 -0
  59. package/Server/Services/ResourceAiAgentService.ts +2432 -0
  60. package/Server/Services/RunnerJobService.ts +852 -108
  61. package/Server/Services/RunnerService.ts +1 -1
  62. package/Server/Services/ScheduledMaintenanceService.ts +737 -1
  63. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +414 -56
  64. package/Server/Services/TeamComplianceSettingService.ts +1125 -9
  65. package/Server/Services/TelemetryUsageBillingService.ts +28 -0
  66. package/Server/Services/TraceRecordingRuleService.ts +33 -0
  67. package/Server/Services/VMwareVCenterService.ts +110 -1
  68. package/Server/Utils/AI/ClusterAccess/ClusterAccessContext.ts +67 -9
  69. package/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.ts +39 -10
  70. package/Server/Utils/AI/ClusterAccess/KubectlJobRunner.ts +14 -3
  71. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +1475 -51
  72. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +1000 -43
  73. package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
  74. package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +577 -0
  75. package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
  76. package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
  77. package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
  78. package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
  79. package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +873 -0
  80. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +120 -7
  81. package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +72 -5
  82. package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +72 -5
  83. package/Server/Utils/AI/SRE/IncidentPostmortemRunner.ts +40 -8
  84. package/Server/Utils/AI/SRE/InvestigationEligibility.ts +13 -2
  85. package/Server/Utils/AI/SRE/InvestigationGrader.ts +1 -1
  86. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +402 -14
  87. package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
  88. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
  89. package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
  90. package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
  91. package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +133 -7
  92. package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +58 -4
  93. package/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.ts +447 -0
  94. package/Server/Utils/Telemetry/ProxmoxNativePush.ts +903 -0
  95. package/Server/Utils/Telemetry/TelemetryEntity.ts +87 -27
  96. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +35 -15
  97. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
  98. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
  99. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +298 -224
  100. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +35 -15
  101. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
  102. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +1073 -213
  103. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
  104. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
  105. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
  106. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
  107. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
  108. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
  109. package/Tests/App/AdminDashboard/RowActionPlacementOverrides.test.tsx +278 -0
  110. package/Tests/App/Dashboard/AIChatChartWidgetZoom.test.tsx +738 -0
  111. package/Tests/App/Dashboard/AIFeaturesSettingsPointers.test.tsx +147 -0
  112. package/Tests/App/Dashboard/AIInsightsKubernetesClusterPage.test.tsx +1523 -0
  113. package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +463 -3
  114. package/Tests/App/Dashboard/AffectedResourcesPickerDropdownPlacement.test.tsx +958 -0
  115. package/Tests/App/Dashboard/AffectedResourcesPickerFocusLeave.test.tsx +595 -0
  116. package/Tests/App/Dashboard/AskAiAvailability.test.ts +20 -3
  117. package/Tests/App/Dashboard/AskAiDisabled.test.tsx +8 -3
  118. package/Tests/App/Dashboard/CephRateChartReload.test.tsx +1456 -0
  119. package/Tests/App/Dashboard/CephTimeRangeZoom.test.tsx +1229 -0
  120. package/Tests/App/Dashboard/ChartCardTimeRangeZoom.test.tsx +151 -0
  121. package/Tests/App/Dashboard/ChartCardZoomAffordances.test.tsx +257 -0
  122. package/Tests/App/Dashboard/ChartRefetchFrame.test.tsx +141 -0
  123. package/Tests/App/Dashboard/ChartZoomHarness.tsx +249 -0
  124. package/Tests/App/Dashboard/ChartZoomStandIn.tsx +131 -0
  125. package/Tests/App/Dashboard/CloudServerlessSlowLoads.test.tsx +628 -0
  126. package/Tests/App/Dashboard/CloudServerlessTimeRangeZoom.test.tsx +607 -0
  127. package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +184 -19
  128. package/Tests/App/Dashboard/CompanionMetricsTabZoom.test.tsx +632 -0
  129. package/Tests/App/Dashboard/ContainerChartZoomStandIn.tsx +195 -0
  130. package/Tests/App/Dashboard/ContainerHostOverviewSlowLoads.test.tsx +542 -0
  131. package/Tests/App/Dashboard/ContainerHostOverviewTimeRangeZoom.test.tsx +848 -0
  132. package/Tests/App/Dashboard/ContainerMetricsTimeRangeZoom.test.tsx +561 -0
  133. package/Tests/App/Dashboard/DashboardBoardWideZoomShell.test.tsx +1147 -0
  134. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +3 -2
  135. package/Tests/App/Dashboard/DashboardHistogramWidgetDragCursor.test.tsx +399 -0
  136. package/Tests/App/Dashboard/DashboardHistogramWidgetZoom.test.tsx +985 -0
  137. package/Tests/App/Dashboard/DashboardHistogramWidgetZoomHint.test.tsx +803 -0
  138. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +1 -0
  139. package/Tests/App/Dashboard/DashboardSettingsPreviewZoom.test.tsx +679 -0
  140. package/Tests/App/Dashboard/DashboardSloAndDataSourceChartZoom.test.tsx +881 -0
  141. package/Tests/App/Dashboard/DashboardTraceStatusWidgets.test.tsx +878 -0
  142. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +18 -6
  143. package/Tests/App/Dashboard/DatabaseMetricChartModalTimeRangeZoom.test.tsx +442 -0
  144. package/Tests/App/Dashboard/DatabaseOverviewTimeRangeZoom.test.tsx +831 -0
  145. package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +43 -0
  146. package/Tests/App/Dashboard/DockerSwarmInsightsTimeRangeZoom.test.tsx +524 -0
  147. package/Tests/App/Dashboard/DockerSwarmRateChartRefresh.test.tsx +259 -0
  148. package/Tests/App/Dashboard/EdgeDetailPanelHistory.test.tsx +763 -0
  149. package/Tests/App/Dashboard/EdgeDetailPanelTimeRangeZoom.test.tsx +547 -0
  150. package/Tests/App/Dashboard/EdgeHistoryBucketsCases.tsx +565 -0
  151. package/Tests/App/Dashboard/EdgeHistoryBucketsKathmandu.test.tsx +73 -0
  152. package/Tests/App/Dashboard/EdgeHistoryBucketsKolkata.test.tsx +74 -0
  153. package/Tests/App/Dashboard/EdgeHistoryBucketsNewYork.test.tsx +72 -0
  154. package/Tests/App/Dashboard/EdgeHistoryBucketsUtc.test.tsx +72 -0
  155. package/Tests/App/Dashboard/EmbeddedMetricCardRefresh.test.tsx +310 -0
  156. package/Tests/App/Dashboard/EmbeddedMetricCardTimeRangeZoom.test.tsx +536 -0
  157. package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +3 -1
  158. package/Tests/App/Dashboard/EscalationRuleRowActions.test.tsx +660 -0
  159. package/Tests/App/Dashboard/EventNotes.test.tsx +2 -2
  160. package/Tests/App/Dashboard/EventOverviewPages.test.tsx +587 -13
  161. package/Tests/App/Dashboard/EventOverviewSnapshotExplorerZoom.test.tsx +1139 -0
  162. package/Tests/App/Dashboard/EventOverviewSnapshotZoomAcrossTabs.test.tsx +1057 -0
  163. package/Tests/App/Dashboard/EventOverviewTelemetrySnapshotZoom.test.tsx +757 -0
  164. package/Tests/App/Dashboard/ExceptionOccurrenceTrendZoom.test.tsx +675 -0
  165. package/Tests/App/Dashboard/ExceptionOccurrencesZoomSurvivesViewSwitch.test.tsx +405 -0
  166. package/Tests/App/Dashboard/ExceptionSignalPages.test.tsx +67 -3
  167. package/Tests/App/Dashboard/ExceptionTablesSpanStatus.test.tsx +515 -0
  168. package/Tests/App/Dashboard/ExplorerOwnZoomRegression.test.tsx +739 -0
  169. package/Tests/App/Dashboard/FlowBandwidthAxisCases.tsx +461 -0
  170. package/Tests/App/Dashboard/FlowBandwidthAxisKathmandu.test.tsx +25 -0
  171. package/Tests/App/Dashboard/FlowBandwidthAxisKolkata.test.tsx +25 -0
  172. package/Tests/App/Dashboard/FlowBandwidthAxisNewYork.test.tsx +25 -0
  173. package/Tests/App/Dashboard/FlowBandwidthAxisUtc.test.tsx +24 -0
  174. package/Tests/App/Dashboard/FlowTopTalkersZoomRefetch.test.tsx +722 -0
  175. package/Tests/App/Dashboard/FlowViewportGuard.test.tsx +2526 -0
  176. package/Tests/App/Dashboard/HostPagesSlowLoads.test.tsx +872 -0
  177. package/Tests/App/Dashboard/HostPagesTimeRangeZoom.test.tsx +1208 -0
  178. package/Tests/App/Dashboard/IncidentRootCauseTimeRangeZoom.test.tsx +358 -0
  179. package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +100 -9
  180. package/Tests/App/Dashboard/InfrastructureMetricsTabTimeRangeZoom.test.tsx +485 -0
  181. package/Tests/App/Dashboard/InvestigationDrawerCompanionZoom.test.tsx +655 -0
  182. package/Tests/App/Dashboard/InvestigationDrawerZoom.test.tsx +830 -0
  183. package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -0
  184. package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +338 -2
  185. package/Tests/App/Dashboard/InvoicesPayInvoice.test.tsx +454 -16
  186. package/Tests/App/Dashboard/KubernetesClusterAiAccessSettings.test.ts +799 -819
  187. package/Tests/App/Dashboard/KubernetesClusterAiAgentOverviewCard.test.tsx +367 -0
  188. package/Tests/App/Dashboard/KubernetesClusterAiAgentStatus.test.ts +1202 -0
  189. package/Tests/App/Dashboard/KubernetesClusterAiDocumentationMarkdown.test.ts +106 -0
  190. package/Tests/App/Dashboard/KubernetesClusterAiNavigation.test.tsx +354 -0
  191. package/Tests/App/Dashboard/KubernetesClusterAiPage.test.tsx +1884 -2054
  192. package/Tests/App/Dashboard/KubernetesClusterAiPageServerParity.test.ts +478 -179
  193. package/Tests/App/Dashboard/KubernetesClusterMetricTooltips.test.ts +50 -0
  194. package/Tests/App/Dashboard/KubernetesClusterOverviewTooltips.test.tsx +2 -1
  195. package/Tests/App/Dashboard/KubernetesClusterOverviewZoom.test.tsx +1217 -0
  196. package/Tests/App/Dashboard/KubernetesClusterPagesZoom.test.tsx +731 -0
  197. package/Tests/App/Dashboard/KubernetesCostsLoadRecovery.test.tsx +869 -0
  198. package/Tests/App/Dashboard/KubernetesCostsZoom.test.tsx +1214 -0
  199. package/Tests/App/Dashboard/KubernetesCostsZoomExactHours.test.tsx +692 -0
  200. package/Tests/App/Dashboard/KubernetesNetworkThroughputReload.test.tsx +902 -0
  201. package/Tests/App/Dashboard/KubernetesNetworkZoomBucketEdges.test.tsx +571 -0
  202. package/Tests/App/Dashboard/KubernetesOverviewZoomBucketEdges.test.tsx +697 -0
  203. package/Tests/App/Dashboard/KubernetesResourceMetricsTabZoom.test.tsx +633 -0
  204. package/Tests/App/Dashboard/LogsExplorerTimeRangeZoom.test.tsx +470 -0
  205. package/Tests/App/Dashboard/LogsInsightsTimeRangeZoom.test.tsx +948 -0
  206. package/Tests/App/Dashboard/LogsViewerPinnedWindowZoom.test.tsx +486 -0
  207. package/Tests/App/Dashboard/MetricChartsBucketInspectorDoubleClick.test.tsx +1001 -0
  208. package/Tests/App/Dashboard/MetricExplorerInvestigationAutoRefresh.test.tsx +514 -0
  209. package/Tests/App/Dashboard/MetricExplorerSavedViewZoomRoundTrip.test.tsx +581 -0
  210. package/Tests/App/Dashboard/MetricExplorerTimeRangeZoom.test.tsx +1162 -0
  211. package/Tests/App/Dashboard/MetricMonitorPreviewZoomLabel.test.ts +72 -0
  212. package/Tests/App/Dashboard/MetricRowSparklineTimeRangeZoom.test.tsx +204 -0
  213. package/Tests/App/Dashboard/MetricViewFirstResultLands.test.tsx +408 -0
  214. package/Tests/App/Dashboard/MetricViewOwnZoomResetPlacement.test.tsx +952 -0
  215. package/Tests/App/Dashboard/MetricViewTimeRange.test.ts +139 -0
  216. package/Tests/App/Dashboard/MetricViewTimeRangeZoom.test.tsx +556 -0
  217. package/Tests/App/Dashboard/MonitorMetricsChartWrappersZoom.test.tsx +552 -0
  218. package/Tests/App/Dashboard/MonitorMetricsTabsTimeRangeZoom.test.tsx +740 -0
  219. package/Tests/App/Dashboard/MonitorOverviewChartsTimeRangeZoom.test.tsx +735 -0
  220. package/Tests/App/Dashboard/MonitorStepPreviewsTimeRangeZoom.test.tsx +835 -0
  221. package/Tests/App/Dashboard/NetworkDeviceTimeRangeZoom.test.tsx +1115 -0
  222. package/Tests/App/Dashboard/OnCallPreventionGuards.test.tsx +186 -17
  223. package/Tests/App/Dashboard/OnCallRulesDeleteGuard.test.tsx +155 -46
  224. package/Tests/App/Dashboard/PasskeySettings.test.tsx +87 -2
  225. package/Tests/App/Dashboard/ProjectAISettingsPages.test.tsx +884 -0
  226. package/Tests/App/Dashboard/ProxmoxNodeRemove.test.tsx +621 -0
  227. package/Tests/App/Dashboard/ProxmoxOverviewSlowLoads.test.tsx +584 -0
  228. package/Tests/App/Dashboard/ProxmoxPagesTimeRangeZoom.test.tsx +823 -0
  229. package/Tests/App/Dashboard/ProxmoxRateChartReload.test.tsx +1253 -0
  230. package/Tests/App/Dashboard/PublicDashboardBoardWideZoom.test.tsx +605 -0
  231. package/Tests/App/Dashboard/RealRowsLineChart.tsx +250 -0
  232. package/Tests/App/Dashboard/RechartsHostsPlotCursor.test.tsx +513 -0
  233. package/Tests/App/Dashboard/RemediationSuggestionCardDescription.test.tsx +209 -0
  234. package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
  235. package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
  236. package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
  237. package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +1721 -0
  238. package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1002 -0
  239. package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
  240. package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
  241. package/Tests/App/Dashboard/RowActionPlacementOverrides.test.tsx +865 -0
  242. package/Tests/App/Dashboard/RumOverviewTimeRangeZoom.test.tsx +877 -0
  243. package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
  244. package/Tests/App/Dashboard/RunnerKubernetesAgentForm.test.tsx +20 -4
  245. package/Tests/App/Dashboard/RunnerSupersededByAiAgentNote.test.tsx +296 -0
  246. package/Tests/App/Dashboard/SecurityEventConnectionsTable.test.tsx +146 -36
  247. package/Tests/App/Dashboard/ServiceDatabaseSlowLoads.test.tsx +1166 -0
  248. package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +1243 -104
  249. package/Tests/App/Dashboard/ServiceOverviewTimeRangeZoom.test.tsx +792 -0
  250. package/Tests/App/Dashboard/SloBudgetBurnDownZoom.test.tsx +771 -0
  251. package/Tests/App/Dashboard/SloBudgetBurnDownZoomAffordances.test.tsx +380 -0
  252. package/Tests/App/Dashboard/SloEventMetricsBarChartZoom.test.tsx +369 -0
  253. package/Tests/App/Dashboard/SloHistoryChartsTimeRangeZoom.test.tsx +694 -0
  254. package/Tests/App/Dashboard/SloHistoryChartsZoomAffordances.test.tsx +497 -0
  255. package/Tests/App/Dashboard/SloMetricsTimeRangeZoom.test.tsx +541 -0
  256. package/Tests/App/Dashboard/SlowLoadHarness.ts +123 -0
  257. package/Tests/App/Dashboard/SnapshotExplorerPrimaryZoom.test.tsx +1194 -0
  258. package/Tests/App/Dashboard/SnapshotViewerPinnedWindow.test.tsx +620 -0
  259. package/Tests/App/Dashboard/TelemetrySnapshotPanelTimeRangeZoom.test.tsx +765 -0
  260. package/Tests/App/Dashboard/TelemetrySnapshotZoom.test.tsx +516 -0
  261. package/Tests/App/Dashboard/TelemetrySnapshotZoomAcrossTabs.test.tsx +827 -0
  262. package/Tests/App/Dashboard/TimeRangeZoomPageHarness.tsx +463 -0
  263. package/Tests/App/Dashboard/TraceChartEditorStatusSplit.test.tsx +543 -0
  264. package/Tests/App/Dashboard/TraceStatusPresentation.test.tsx +967 -0
  265. package/Tests/App/Dashboard/TraceTimelineMinimapZoom.test.tsx +315 -0
  266. package/Tests/App/Dashboard/TracesAnalyticsStatusSplit.test.tsx +778 -0
  267. package/Tests/App/Dashboard/TracesAnalyticsViewZoom.test.tsx +349 -0
  268. package/Tests/App/Dashboard/TracesExplorerTimeRangeZoom.test.tsx +551 -0
  269. package/Tests/App/Dashboard/TracesStatusChartAndFacet.test.tsx +687 -0
  270. package/Tests/App/Dashboard/TracesViewerStaleResponses.test.tsx +458 -0
  271. package/Tests/App/Dashboard/UptimeStripsExcludedFromZoom.test.tsx +406 -0
  272. package/Tests/App/Dashboard/VMwareOverviewSlowLoads.test.tsx +535 -0
  273. package/Tests/App/Dashboard/VMwarePagesTimeRangeZoom.test.tsx +606 -0
  274. package/Tests/App/Dashboard/ValueWidgetSparklineStaleHover.test.tsx +1292 -0
  275. package/Tests/App/Dashboard/ValueWidgetSparklineZoom.test.tsx +765 -0
  276. package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +98 -0
  277. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +33 -1
  278. package/Tests/Models/DatabaseModels/KubernetesAiAgentModel.test.ts +295 -0
  279. package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
  280. package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
  281. package/Tests/Models/DatabaseModels/TeamComplianceSettingModel.test.ts +347 -0
  282. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +58 -0
  283. package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +1 -1
  284. package/Tests/Server/API/AIInvestigationAPI.test.ts +123 -45
  285. package/Tests/Server/API/AutoRemediationApproveClusterRound.test.ts +1329 -0
  286. package/Tests/Server/API/AutoRemediationApproveKubectlRecheck.test.ts +25 -2
  287. package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
  288. package/Tests/Server/API/KubernetesClusterAiAccessAPI.test.ts +2 -0
  289. package/Tests/Server/API/KubernetesClusterAiAccessAPIAgent.test.ts +903 -0
  290. package/Tests/Server/API/MicrosoftTeamsChatsRefreshRoute.test.ts +667 -0
  291. package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +294 -6
  292. package/Tests/Server/API/ProxmoxResourceAPIRemoveNode.test.ts +1932 -0
  293. package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
  294. package/Tests/Server/Infrastructure/GlobalCache.test.ts +195 -0
  295. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
  296. package/Tests/Server/Infrastructure/Postgres/AddKubernetesAiAgentAndAiDefaultsMigration.test.ts +623 -0
  297. package/Tests/Server/Infrastructure/Postgres/AddKubernetesClusterAiAccessMigration.test.ts +87 -10
  298. package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
  299. package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleScopeMigration.test.ts +622 -0
  300. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
  301. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +119 -4
  302. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +196 -2
  303. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +123 -2
  304. package/Tests/Server/Services/AIServiceBalanceBlocker.test.ts +282 -0
  305. package/Tests/Server/Services/AlertMonitorClearWritesNull.test.ts +409 -0
  306. package/Tests/Server/Services/AlertMonitorEditFeed.test.ts +474 -0
  307. package/Tests/Server/Services/AlertMonitorEditGuard.test.ts +610 -0
  308. package/Tests/Server/Services/AutoRemediationClusterRuleEngine.test.ts +2 -0
  309. package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
  310. package/Tests/Server/Services/AutoRemediationRuleCommandRunners.test.ts +2 -1
  311. package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
  312. package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
  313. package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
  314. package/Tests/Server/Services/IncidentAffectedMonitorsEdit.test.ts +1360 -0
  315. package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +3 -1
  316. package/Tests/Server/Services/IncidentSeverityDeletePausesComplianceRules.test.ts +488 -0
  317. package/Tests/Server/Services/KubernetesAiAgentJobService.test.ts +329 -0
  318. package/Tests/Server/Services/KubernetesAiAgentServiceHelpers.test.ts +618 -0
  319. package/Tests/Server/Services/KubernetesAiAgentServiceLifecycle.test.ts +1444 -0
  320. package/Tests/Server/Services/KubernetesAiAgentServiceRegister.test.ts +1666 -0
  321. package/Tests/Server/Services/KubernetesClusterAiAccessDeletedRunnerRemedy.test.ts +140 -111
  322. package/Tests/Server/Services/KubernetesClusterAiAccessGapNextSteps.test.ts +267 -105
  323. package/Tests/Server/Services/KubernetesClusterAiAccessLegacySuperseded.test.ts +440 -0
  324. package/Tests/Server/Services/KubernetesClusterAiAccessService.test.ts +567 -411
  325. package/Tests/Server/Services/KubernetesClusterAiAccessTarget.test.ts +1168 -0
  326. package/Tests/Server/Services/KubernetesClusterAiSettingsPermission.test.ts +410 -12
  327. package/Tests/Server/Services/KubernetesClusterServiceAiAccessFeed.test.ts +55 -0
  328. package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
  329. package/Tests/Server/Services/ProjectServiceNewProjectAiDefaults.test.ts +288 -0
  330. package/Tests/Server/Services/ProxmoxResourcePostgres.test.ts +5633 -0
  331. package/Tests/Server/Services/ProxmoxResourceService.test.ts +6458 -5
  332. package/Tests/Server/Services/RecordingRuleReservedMetricName.test.ts +171 -0
  333. package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
  334. package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
  335. package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
  336. package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
  337. package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
  338. package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
  339. package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
  340. package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
  341. package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
  342. package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +153 -15
  343. package/Tests/Server/Services/RunnerJobEnqueueKubectlAiAgent.test.ts +620 -0
  344. package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
  345. package/Tests/Server/Services/RunnerJobKubectlWriteScope.test.ts +170 -3
  346. package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
  347. package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
  348. package/Tests/Server/Services/RunnerJobTimeoutReason.test.ts +72 -0
  349. package/Tests/Server/Services/RunnerServiceAgentName.test.ts +6 -4
  350. package/Tests/Server/Services/ScheduledMaintenanceAttachmentEdit.test.ts +2113 -0
  351. package/Tests/Server/Services/ScheduledMaintenanceMonitorRelease.test.ts +972 -0
  352. package/Tests/Server/Services/TeamComplianceSettingPostgres.test.ts +2237 -0
  353. package/Tests/Server/Services/TeamComplianceSettingService.test.ts +3988 -138
  354. package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
  355. package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
  356. package/Tests/Server/Utils/AI/ClusterAccessContext.test.ts +107 -1
  357. package/Tests/Server/Utils/AI/IncidentPostmortemRunner.test.ts +351 -0
  358. package/Tests/Server/Utils/AI/InvestigationClusterAccessWiring.test.ts +2 -0
  359. package/Tests/Server/Utils/AI/InvestigationEligibility.test.ts +310 -0
  360. package/Tests/Server/Utils/AI/InvestigationInfrastructureAccessWiring.test.ts +453 -0
  361. package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -0
  362. package/Tests/Server/Utils/AI/KubectlInvestigationToolkit.test.ts +70 -0
  363. package/Tests/Server/Utils/AI/KubectlJobRunnerFinishedJob.test.ts +58 -0
  364. package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +94 -1
  365. package/Tests/Server/Utils/AI/RemediationCommandToolsKubectl.test.ts +2 -0
  366. package/Tests/Server/Utils/AI/RemediationCommandToolsKubectlOutcome.test.ts +2 -0
  367. package/Tests/Server/Utils/AI/RemediationCommandToolsLiveCluster.test.ts +2 -0
  368. package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
  369. package/Tests/Server/Utils/AI/RemediationCommandToolsRunnerScope.test.ts +125 -1
  370. package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +252 -3
  371. package/Tests/Server/Utils/AI/RemediationExecutionRunnerClusterMode.test.ts +2 -0
  372. package/Tests/Server/Utils/AI/RemediationExecutionRunnerProjectGates.test.ts +240 -0
  373. package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1249 -0
  374. package/Tests/Server/Utils/AI/RemediationKubectlCopyParity.test.ts +2 -0
  375. package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
  376. package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
  377. package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +722 -0
  378. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
  379. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
  380. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
  381. package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +830 -0
  382. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +2 -0
  383. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -0
  384. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorUnknownRun.test.ts +2 -0
  385. package/Tests/Server/Utils/AutoRemediation/CommandPlanVerification.test.ts +2 -0
  386. package/Tests/Server/Utils/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
  387. package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
  388. package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
  389. package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
  390. package/Tests/Server/Utils/Telemetry/HostAssetAttributesFromOtlp.test.ts +68 -0
  391. package/Tests/Server/Utils/Telemetry/InventoryMirrorPostgres.test.ts +370 -0
  392. package/Tests/Server/Utils/Telemetry/NetworkDeviceInventoryAttributes.test.ts +522 -0
  393. package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +155 -0
  394. package/Tests/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.test.ts +8631 -0
  395. package/Tests/Server/Utils/Telemetry/ProxmoxNativePush.test.ts +2852 -0
  396. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +367 -1
  397. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +75 -3
  398. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
  399. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
  400. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
  401. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
  402. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
  403. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
  404. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
  405. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
  406. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
  407. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
  408. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
  409. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
  410. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
  411. package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
  412. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +25 -0
  413. package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
  414. package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNames.test.ts +3119 -0
  415. package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNamesPostgres.test.ts +1721 -0
  416. package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
  417. package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
  418. package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
  419. package/Tests/Types/Kubernetes/KubernetesAgentChartAiAccess.test.ts +581 -113
  420. package/Tests/Types/Kubernetes/KubernetesAiAgentAccessContract.test.ts +510 -0
  421. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
  422. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
  423. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
  424. package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
  425. package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +517 -0
  426. package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
  427. package/Tests/Types/Team/ComplianceRule.test.ts +1029 -0
  428. package/Tests/Types/Team/TeamComplianceStatus.test.ts +176 -0
  429. package/Tests/UI/Components/ActionButton/RowActions.test.tsx +641 -0
  430. package/Tests/UI/Components/ActionButton/RowActionsAccessibility.test.tsx +414 -0
  431. package/Tests/UI/Components/ActionButton/SplitActionButtons.test.ts +565 -0
  432. package/Tests/UI/Components/Charts/BarChartDragToSelect.test.tsx +386 -0
  433. package/Tests/UI/Components/Charts/ChartDoubleClickResetWithoutDblclick.test.tsx +1025 -0
  434. package/Tests/UI/Components/Charts/ChartGroupPageZoomHint.test.tsx +196 -0
  435. package/Tests/UI/Components/Charts/ChartPlaceholdersTakeDoubleClick.test.tsx +1861 -0
  436. package/Tests/UI/Components/Charts/ChartPlotClicksWhileResetArmed.test.tsx +382 -0
  437. package/Tests/UI/Components/Charts/ChartRangeSelection.test.tsx +704 -0
  438. package/Tests/UI/Components/Charts/ChartRangeSelectionDoubleClickReset.test.tsx +1481 -0
  439. package/Tests/UI/Components/Charts/ChartRangeSelectionRealRecharts.test.tsx +918 -0
  440. package/Tests/UI/Components/Charts/ChartRowBucketStart.test.ts +350 -0
  441. package/Tests/UI/Components/Charts/DoubleClickReset.test.tsx +996 -0
  442. package/Tests/UI/Components/Charts/HistogramDoubleClickResetRealRecharts.test.tsx +965 -0
  443. package/Tests/UI/Components/Charts/HistogramDriftThenRefetch.test.tsx +277 -0
  444. package/Tests/UI/Components/Charts/HistogramRangeSelectionDataChange.test.tsx +1757 -0
  445. package/Tests/UI/Components/Charts/HistogramRangeSelectionRealRecharts.test.tsx +560 -0
  446. package/Tests/UI/Components/Charts/TimeRangeZoom/ChartPageTimeRangeZoom.test.tsx +513 -0
  447. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.test.tsx +845 -0
  448. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.test.tsx +119 -0
  449. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHintTailwind.test.tsx +274 -0
  450. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.test.ts +433 -0
  451. package/Tests/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.test.tsx +863 -0
  452. package/Tests/UI/Components/Charts/TimeRangeZoom/ZoomDocsPromises.test.tsx +1147 -0
  453. package/Tests/UI/Components/DisabledButtonTooltip.test.tsx +14 -3
  454. package/Tests/UI/Components/EntityDropdownEscape.test.tsx +454 -0
  455. package/Tests/UI/Components/EntityDropdownFocusLeave.test.tsx +420 -0
  456. package/Tests/UI/Components/Forms/FormFieldDropdownDisabled.test.tsx +233 -0
  457. package/Tests/UI/Components/Input.test.tsx +80 -1
  458. package/Tests/UI/Components/LogsAnalyticsViewZoom.test.tsx +947 -0
  459. package/Tests/UI/Components/LogsHistogramDragTooltip.test.tsx +17 -5
  460. package/Tests/UI/Components/LogsViewerAnalyticsZoom.test.tsx +501 -0
  461. package/Tests/UI/Components/LogsViewerHistogramZoom.test.tsx +1 -1
  462. package/Tests/UI/Components/ModelTable/BaseModelTableBulkDelete.test.tsx +6 -4
  463. package/Tests/UI/Components/ModelTable/BaseModelTablePermissionGating.test.tsx +60 -8
  464. package/Tests/UI/Components/ModelTable/BaseModelTableRowActions.test.tsx +476 -0
  465. package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +7 -5
  466. package/Tests/UI/Components/MoreMenuPortal.test.tsx +623 -0
  467. package/Tests/UI/Components/StatusPage/ResourceGridActions.test.tsx +538 -0
  468. package/Tests/UI/Components/StatusPage/ResourceGridSelection.test.tsx +14 -4
  469. package/Tests/UI/Components/TableCellWrapping.test.tsx +3 -3
  470. package/Tests/UI/Components/TableRowActions.test.tsx +472 -0
  471. package/Tests/UI/Components/TelemetryHistogramDragTooltip.test.tsx +1 -1
  472. package/Tests/UI/Components/TelemetryViewer/TelemetryViewerHistogramClickZoom.test.tsx +1 -1
  473. package/Tests/UI/Components/TelemetryViewer/TelemetryViewerZoomScope.test.tsx +470 -0
  474. package/Tests/UI/Components/TelemetryViewer/UseViewerTimeRangeZoom.test.tsx +571 -0
  475. package/Tests/UI/Components/TelemetryViewer/ViewerDoubleClickResetUnderDataChange.test.tsx +928 -0
  476. package/Tests/UI/Components/TelemetryViewer/ViewerFollowsEnclosingZoom.test.tsx +1569 -0
  477. package/Tests/UI/Components/Toggle.test.tsx +66 -0
  478. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardRefreshNames.test.tsx +1023 -0
  479. package/Tests/UI/Rum/ChunkLoader.test.ts +201 -0
  480. package/Tests/UI/Rum/FidelityNotices.test.ts +54 -0
  481. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
  482. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +72 -0
  483. package/Tests/UI/Rum/ReplayFrameCapture.test.ts +1009 -9
  484. package/Tests/UI/Rum/ReplayRecordedAssets.test.ts +1069 -0
  485. package/Tests/UI/Rum/ReplayStage.test.tsx +913 -2
  486. package/Tests/UI/Rum/SessionReplayTable.test.tsx +443 -8
  487. package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +439 -9
  488. package/Tests/UI/Rum/UserFlowTablesRowActions.test.tsx +501 -0
  489. package/Tests/Utils/AiRemediation/KubectlPolicyChartRbacParity.test.ts +47 -19
  490. package/Tests/Utils/AiRemediation/KubectlWriteScopeCallerParity.test.ts +2 -0
  491. package/Tests/Utils/AiRemediation/KubernetesAiAgentPolicyCopyParity.test.ts +396 -0
  492. package/Tests/Utils/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
  493. package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
  494. package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
  495. package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
  496. package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
  497. package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
  498. package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
  499. package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
  500. package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
  501. package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
  502. package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
  503. package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
  504. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
  505. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
  506. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
  507. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
  508. package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
  509. package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
  510. package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +104 -1
  511. package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
  512. package/Types/AI/AIRunType.ts +9 -4
  513. package/Types/AI/InvestigationNotStartedReason.ts +6 -0
  514. package/Types/AI/ResourceAiAccessApi.ts +140 -0
  515. package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
  516. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +197 -18
  517. package/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.ts +28 -0
  518. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +4 -2
  519. package/Types/Kubernetes/KubernetesClusterAiAccess.ts +263 -32
  520. package/Types/Kubernetes/KubernetesClusterAiAccessPermissions.ts +20 -16
  521. package/Types/Kubernetes/KubernetesClusterAiInsights.ts +81 -0
  522. package/Types/Monitor/ProxmoxAlertTemplates.ts +4 -4
  523. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
  524. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
  525. package/Types/Monitor/RumAlertTemplates.ts +351 -4
  526. package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
  527. package/Types/ResourceAiAgent/ResourceAiAccess.ts +574 -0
  528. package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
  529. package/Types/Runbook/RunbookStepType.ts +29 -0
  530. package/Types/Team/ComplianceNotificationChannel.ts +22 -0
  531. package/Types/Team/ComplianceRule.ts +434 -0
  532. package/Types/Team/ComplianceRuleType.ts +21 -0
  533. package/Types/Team/TeamComplianceStatus.ts +81 -0
  534. package/Types/Telemetry/TelemetryIngestSurface.ts +40 -0
  535. package/UI/Components/ActionButton/ActionButtonSchema.ts +21 -0
  536. package/UI/Components/ActionButton/RowActions.tsx +238 -0
  537. package/UI/Components/ActionButton/SplitActionButtons.ts +173 -0
  538. package/UI/Components/Charts/Area/AreaChart.tsx +32 -2
  539. package/UI/Components/Charts/Bar/BarChart.tsx +40 -3
  540. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +37 -11
  541. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +80 -243
  542. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +122 -31
  543. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +95 -244
  544. package/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts +214 -0
  545. package/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.ts +32 -0
  546. package/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.ts +599 -0
  547. package/UI/Components/Charts/Line/LineChart.tsx +32 -2
  548. package/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.tsx +70 -0
  549. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.tsx +226 -0
  550. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.tsx +73 -0
  551. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.ts +163 -0
  552. package/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.ts +215 -0
  553. package/UI/Components/Charts/Utils/DataPoint.ts +20 -8
  554. package/UI/Components/Charts/Utils/XAxis.ts +75 -0
  555. package/UI/Components/Charts/Utils/useHistogramRangeSelection.ts +493 -59
  556. package/UI/Components/EntityDropdown/EntityDropdown.tsx +107 -11
  557. package/UI/Components/Forms/Fields/FormField.tsx +10 -0
  558. package/UI/Components/Input/Input.tsx +90 -57
  559. package/UI/Components/List/ListRow.tsx +8 -74
  560. package/UI/Components/LogsViewer/LogsViewer.tsx +40 -11
  561. package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +22 -6
  562. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +209 -6
  563. package/UI/Components/LogsViewer/components/LogsHistogram.tsx +127 -84
  564. package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +3 -0
  565. package/UI/Components/ModelTable/BaseModelTable.tsx +12 -1
  566. package/UI/Components/MoreMenu/MoreMenu.tsx +365 -30
  567. package/UI/Components/MoreMenu/MoreMenuItem.tsx +70 -17
  568. package/UI/Components/OrderedStatesList/Item.tsx +7 -72
  569. package/UI/Components/StatusPage/ResourceGrid.tsx +126 -77
  570. package/UI/Components/Table/TableBody.tsx +8 -2
  571. package/UI/Components/Table/TableRow.tsx +20 -140
  572. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +41 -10
  573. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +47 -9
  574. package/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.tsx +25 -6
  575. package/UI/Components/TelemetryViewer/types.ts +2 -0
  576. package/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.ts +448 -0
  577. package/UI/Components/Toggle/Toggle.tsx +26 -0
  578. package/UI/Components/Tooltip/Tooltip.tsx +8 -1
  579. package/UI/Styles/Theme.css +14 -2
  580. package/Utils/AI/InvestigationReport.ts +121 -15
  581. package/Utils/AiRemediation/CommandPolicy.ts +1 -1
  582. package/Utils/AiRemediation/KubectlPolicy.ts +1 -1
  583. package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
  584. package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
  585. package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
  586. package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
  587. package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
  588. package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
  589. package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
  590. package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
  591. package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
  592. package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
  593. package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
  594. package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
  595. package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
  596. package/Utils/Dashboard/DashboardTimeRangeZoom.ts +46 -2
  597. package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
  598. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
  599. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
  600. package/build/dist/Models/DatabaseModels/CephCluster.js +219 -0
  601. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  602. package/build/dist/Models/DatabaseModels/DatabaseServer.js +219 -0
  603. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
  604. package/build/dist/Models/DatabaseModels/DockerHost.js +219 -0
  605. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  606. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +219 -0
  607. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
  608. package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
  609. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  610. package/build/dist/Models/DatabaseModels/Host.js +219 -0
  611. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  612. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  613. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  614. package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js +385 -0
  615. package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js.map +1 -0
  616. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +3 -3
  617. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  618. package/build/dist/Models/DatabaseModels/PodmanHost.js +219 -0
  619. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -1
  620. package/build/dist/Models/DatabaseModels/Project.js +56 -5
  621. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  622. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +219 -0
  623. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  624. package/build/dist/Models/DatabaseModels/ProxmoxResource.js +51 -1
  625. package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -1
  626. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js +439 -0
  627. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
  628. package/build/dist/Models/DatabaseModels/RunnerJob.js +219 -0
  629. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
  630. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +134 -3
  631. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
  632. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +219 -0
  633. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -1
  634. package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
  635. package/build/dist/Server/API/AIChatAPI.js +6 -1
  636. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  637. package/build/dist/Server/API/AIInvestigationAPI.js +17 -10
  638. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  639. package/build/dist/Server/API/AutoRemediationAPI.js +374 -24
  640. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  641. package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js +436 -22
  642. package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js.map +1 -1
  643. package/build/dist/Server/API/MicrosoftTeamsAPI.js +69 -13
  644. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  645. package/build/dist/Server/API/ProxmoxResourceAPI.js +187 -14
  646. package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -1
  647. package/build/dist/Server/API/ResourceAiAccessAPI.js +1119 -0
  648. package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
  649. package/build/dist/Server/Infrastructure/GlobalCache.js +27 -0
  650. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  651. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js +50 -0
  652. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js.map +1 -0
  653. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js +84 -0
  654. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js.map +1 -0
  655. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js +31 -0
  656. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js.map +1 -0
  657. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js +168 -0
  658. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
  659. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  660. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  661. package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
  662. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  663. package/build/dist/Server/Middleware/TelemetryIngest.js +41 -19
  664. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  665. package/build/dist/Server/Services/AIService.js +59 -1
  666. package/build/dist/Server/Services/AIService.js.map +1 -1
  667. package/build/dist/Server/Services/AlertService.js +248 -13
  668. package/build/dist/Server/Services/AlertService.js.map +1 -1
  669. package/build/dist/Server/Services/AlertSeverityService.js +51 -15
  670. package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
  671. package/build/dist/Server/Services/AnalyticsDatabaseService.js +26 -1
  672. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  673. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
  674. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
  675. package/build/dist/Server/Services/AutoRemediationRuleService.js +1 -1
  676. package/build/dist/Server/Services/AutoRemediationRuleService.js.map +1 -1
  677. package/build/dist/Server/Services/CephClusterService.js +104 -0
  678. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  679. package/build/dist/Server/Services/DatabaseServerService.js +99 -0
  680. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
  681. package/build/dist/Server/Services/DockerHostService.js +104 -0
  682. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  683. package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
  684. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  685. package/build/dist/Server/Services/HostService.js +114 -2
  686. package/build/dist/Server/Services/HostService.js.map +1 -1
  687. package/build/dist/Server/Services/IncidentService.js +199 -72
  688. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  689. package/build/dist/Server/Services/IncidentSeverityService.js +51 -15
  690. package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
  691. package/build/dist/Server/Services/KubernetesAiAgentJobService.js +158 -0
  692. package/build/dist/Server/Services/KubernetesAiAgentJobService.js.map +1 -0
  693. package/build/dist/Server/Services/KubernetesAiAgentService.js +1145 -0
  694. package/build/dist/Server/Services/KubernetesAiAgentService.js.map +1 -0
  695. package/build/dist/Server/Services/KubernetesClusterAiAccessService.js +842 -371
  696. package/build/dist/Server/Services/KubernetesClusterAiAccessService.js.map +1 -1
  697. package/build/dist/Server/Services/KubernetesClusterService.js +86 -17
  698. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  699. package/build/dist/Server/Services/MetricRecordingRuleService.js +46 -0
  700. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
  701. package/build/dist/Server/Services/PodmanHostService.js +104 -0
  702. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  703. package/build/dist/Server/Services/ProjectService.js +22 -0
  704. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  705. package/build/dist/Server/Services/ProxmoxClusterService.js +104 -0
  706. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  707. package/build/dist/Server/Services/ProxmoxResourceService.js +258 -3
  708. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
  709. package/build/dist/Server/Services/ResourceAiAccessService.js +1028 -0
  710. package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
  711. package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
  712. package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
  713. package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
  714. package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
  715. package/build/dist/Server/Services/RunnerJobService.js +522 -97
  716. package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
  717. package/build/dist/Server/Services/RunnerService.js +1 -1
  718. package/build/dist/Server/Services/RunnerService.js.map +1 -1
  719. package/build/dist/Server/Services/ScheduledMaintenanceService.js +535 -3
  720. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  721. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +316 -46
  722. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  723. package/build/dist/Server/Services/TeamComplianceSettingService.js +833 -7
  724. package/build/dist/Server/Services/TeamComplianceSettingService.js.map +1 -1
  725. package/build/dist/Server/Services/TelemetryUsageBillingService.js +26 -0
  726. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  727. package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
  728. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
  729. package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
  730. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -1
  731. package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js +52 -9
  732. package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js.map +1 -1
  733. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js +13 -9
  734. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js.map +1 -1
  735. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js +7 -3
  736. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js.map +1 -1
  737. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +1056 -43
  738. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
  739. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +683 -42
  740. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
  741. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
  742. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
  743. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +330 -0
  744. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
  745. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
  746. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
  747. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
  748. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
  749. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
  750. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
  751. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
  752. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
  753. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +600 -0
  754. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
  755. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +89 -9
  756. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  757. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +55 -4
  758. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
  759. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +55 -4
  760. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
  761. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js +30 -3
  762. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -1
  763. package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js +13 -2
  764. package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js.map +1 -1
  765. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +1 -1
  766. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +294 -15
  767. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
  768. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
  769. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
  770. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
  771. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  772. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
  773. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
  774. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
  775. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -1
  776. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +111 -6
  777. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
  778. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +40 -4
  779. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -1
  780. package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js +296 -0
  781. package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js.map +1 -0
  782. package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js +699 -0
  783. package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js.map +1 -0
  784. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +77 -19
  785. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  786. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +19 -15
  787. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  788. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
  789. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  790. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
  791. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  792. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +183 -209
  793. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  794. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +19 -15
  795. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
  796. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
  797. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  798. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +768 -152
  799. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  800. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
  801. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
  802. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
  803. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
  804. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
  805. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
  806. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
  807. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
  808. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
  809. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
  810. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
  811. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
  812. package/build/dist/Types/AI/AIRunType.js +9 -4
  813. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  814. package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
  815. package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
  816. package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
  817. package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
  818. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +126 -45
  819. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
  820. package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js +28 -0
  821. package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js.map +1 -0
  822. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js +72 -16
  823. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js.map +1 -1
  824. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js +20 -16
  825. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js.map +1 -1
  826. package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js +17 -0
  827. package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js.map +1 -0
  828. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +4 -4
  829. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -1
  830. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
  831. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  832. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
  833. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  834. package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
  835. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  836. package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
  837. package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
  838. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +275 -0
  839. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
  840. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
  841. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
  842. package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
  843. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  844. package/build/dist/Types/Team/ComplianceNotificationChannel.js +23 -0
  845. package/build/dist/Types/Team/ComplianceNotificationChannel.js.map +1 -0
  846. package/build/dist/Types/Team/ComplianceRule.js +304 -0
  847. package/build/dist/Types/Team/ComplianceRule.js.map +1 -0
  848. package/build/dist/Types/Team/ComplianceRuleType.js +21 -0
  849. package/build/dist/Types/Team/ComplianceRuleType.js.map +1 -1
  850. package/build/dist/Types/Team/TeamComplianceStatus.js +2 -0
  851. package/build/dist/Types/Team/TeamComplianceStatus.js.map +1 -0
  852. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +36 -0
  853. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
  854. package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js +20 -1
  855. package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js.map +1 -1
  856. package/build/dist/UI/Components/ActionButton/RowActions.js +113 -0
  857. package/build/dist/UI/Components/ActionButton/RowActions.js.map +1 -0
  858. package/build/dist/UI/Components/ActionButton/SplitActionButtons.js +71 -0
  859. package/build/dist/UI/Components/ActionButton/SplitActionButtons.js.map +1 -0
  860. package/build/dist/UI/Components/Charts/Area/AreaChart.js +16 -1
  861. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  862. package/build/dist/UI/Components/Charts/Bar/BarChart.js +16 -1
  863. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  864. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +27 -5
  865. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  866. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +61 -194
  867. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  868. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +84 -26
  869. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  870. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +75 -196
  871. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  872. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +133 -0
  873. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -1
  874. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js +26 -0
  875. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js.map +1 -0
  876. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js +371 -0
  877. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js.map +1 -0
  878. package/build/dist/UI/Components/Charts/Line/LineChart.js +16 -1
  879. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  880. package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js +35 -0
  881. package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js.map +1 -0
  882. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js +107 -0
  883. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js.map +1 -0
  884. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js +41 -0
  885. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js.map +1 -0
  886. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js +117 -0
  887. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js.map +1 -0
  888. package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js +121 -0
  889. package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js.map +1 -0
  890. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +15 -7
  891. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  892. package/build/dist/UI/Components/Charts/Utils/XAxis.js +70 -0
  893. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  894. package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js +305 -38
  895. package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js.map +1 -1
  896. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +89 -14
  897. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
  898. package/build/dist/UI/Components/Forms/Fields/FormField.js +11 -2
  899. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  900. package/build/dist/UI/Components/Input/Input.js +69 -54
  901. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  902. package/build/dist/UI/Components/List/ListRow.js +4 -39
  903. package/build/dist/UI/Components/List/ListRow.js.map +1 -1
  904. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +31 -8
  905. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  906. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +10 -1
  907. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
  908. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +139 -21
  909. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  910. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +30 -8
  911. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
  912. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +1 -1
  913. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
  914. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +10 -0
  915. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  916. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +253 -14
  917. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  918. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +43 -13
  919. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
  920. package/build/dist/UI/Components/OrderedStatesList/Item.js +2 -38
  921. package/build/dist/UI/Components/OrderedStatesList/Item.js.map +1 -1
  922. package/build/dist/UI/Components/StatusPage/ResourceGrid.js +53 -15
  923. package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -1
  924. package/build/dist/UI/Components/Table/TableBody.js +6 -2
  925. package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
  926. package/build/dist/UI/Components/Table/TableRow.js +12 -75
  927. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  928. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +32 -7
  929. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  930. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +27 -9
  931. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  932. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js +11 -1
  933. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js.map +1 -1
  934. package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js +272 -0
  935. package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js.map +1 -0
  936. package/build/dist/UI/Components/Toggle/Toggle.js +14 -1
  937. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  938. package/build/dist/UI/Components/Tooltip/Tooltip.js +1 -1
  939. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  940. package/build/dist/Utils/AI/InvestigationReport.js +71 -11
  941. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -1
  942. package/build/dist/Utils/AiRemediation/CommandPolicy.js +1 -1
  943. package/build/dist/Utils/AiRemediation/CommandPolicy.js.map +1 -1
  944. package/build/dist/Utils/AiRemediation/KubectlPolicy.js +1 -1
  945. package/build/dist/Utils/AiRemediation/KubectlPolicy.js.map +1 -1
  946. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
  947. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
  948. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
  949. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
  950. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
  951. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
  952. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
  953. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
  954. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
  955. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
  956. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
  957. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
  958. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
  959. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
  960. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
  961. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
  962. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
  963. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
  964. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
  965. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
  966. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
  967. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
  968. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
  969. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
  970. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
  971. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
  972. package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +27 -1
  973. package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -1
  974. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
  975. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
  976. package/package.json +1 -1
@@ -0,0 +1,330 @@
1
+ import ObjectID from "../../../../Types/ObjectID";
2
+ import RunnerJobOrigin from "../../../../Types/Runbook/RunnerJobOrigin";
3
+ import { AI_RESOURCE_TYPE_INFO, ALL_AI_RESOURCE_TYPES, isAiResourceType, } from "../../../../Types/ResourceAiAgent/AiResourceType";
4
+ import { DEFAULT_RESOURCE_COMMAND_TIMEOUT_MS, MAX_RESOURCE_COMMANDS_PER_INVESTIGATION, MAX_RESOURCE_COMMAND_TIMEOUT_MS, ResourceCommandTier, } from "../../../../Types/ResourceAiAgent/ResourceAiAccess";
5
+ import ResourceCommandPolicy from "../../../../Utils/AiRemediation/Resource/ResourceCommandPolicy";
6
+ import { redactResourceCommandOutput } from "../../../../Utils/AiRemediation/Resource/ResourceOutputRedactor";
7
+ import KubectlWaitBudget, { MIN_KUBECTL_TIMEOUT_MS, } from "../../../../Utils/AiRemediation/KubectlWaitBudget";
8
+ import { describeResourceNoun } from "../../../Services/ResourceAiAccessService";
9
+ import { ToolArgs } from "../Toolbox/ToolTypes";
10
+ import ResourceCommandJobRunner, { RESOURCE_COMMAND_CLAIM_TIMEOUT_MS, RESOURCE_COMMAND_OUTPUT_TRUNCATED_SUFFIX, ResourceCommandRunState, } from "./ResourceCommandJobRunner";
11
+ import { INFRASTRUCTURE_RESULT_UNKNOWN_EVENT_PREFIX, LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME, RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME, } from "./ResourceAccessToolNames";
12
+ import ResourceAccessContext, { describeResource, } from "./ResourceAccessContext";
13
+ // A reason that already ends a sentence.
14
+ const SENTENCE_END_PATTERN = /[.!?]$/;
15
+ export default class InfrastructureInvestigationToolkit {
16
+ constructor(options) {
17
+ this.commandsRun = 0;
18
+ // Agents (by id) that left a command unclaimed in this run.
19
+ this.unreachableAgents = new Map();
20
+ this.options = options;
21
+ }
22
+ getReadyResources() {
23
+ return this.options.resources.filter((resource) => {
24
+ const isReady = this.options.readinessCheck === "remediation"
25
+ ? resource.isRemediationReady
26
+ : resource.isInvestigationReady;
27
+ return (isReady &&
28
+ isAiResourceType(resource.resourceType) &&
29
+ resource.agent !== null &&
30
+ Boolean(resource.agent.agentId));
31
+ });
32
+ }
33
+ getCommandsRun() {
34
+ return this.commandsRun;
35
+ }
36
+ // Whether this resource's agent tripped the breaker.
37
+ isResourceUnreachable(resourceId) {
38
+ const resource = this.options.resources.find((candidate) => {
39
+ return candidate.resourceId === resourceId;
40
+ });
41
+ return Boolean((resource === null || resource === void 0 ? void 0 : resource.agent) && this.unreachableAgents.has(resource.agent.agentId));
42
+ }
43
+ /*
44
+ * No ready resource, no tools: the model is told in its context why each
45
+ * resource is unreachable, and a tool that always fails would only burn
46
+ * its budget.
47
+ */
48
+ buildTools() {
49
+ if (this.getReadyResources().length === 0) {
50
+ return [];
51
+ }
52
+ return [this.buildListAccessTool(), this.buildRunCommandTool()];
53
+ }
54
+ // One line per ready resource: what it is, its id, and its programs.
55
+ describeReadyResources() {
56
+ return this.getReadyResources()
57
+ .map((resource) => {
58
+ const info = AI_RESOURCE_TYPE_INFO[resource.resourceType];
59
+ return `- ${describeResource(resource)} — resourceId: ${resource.resourceId} — programs: ${info.programs.join(", ")}`;
60
+ })
61
+ .join("\n");
62
+ }
63
+ /*
64
+ * The read-command cheat-sheet of every tool policy the ready resources
65
+ * use, once per policy (a Docker host and a Podman host share one).
66
+ */
67
+ describeReadCommandGuides() {
68
+ const presentTypes = ALL_AI_RESOURCE_TYPES.filter((type) => {
69
+ return this.getReadyResources().some((resource) => {
70
+ return resource.resourceType === type;
71
+ });
72
+ });
73
+ const byPolicy = new Map();
74
+ for (const type of presentTypes) {
75
+ const policyName = ResourceCommandPolicy.getToolPolicy(type).name;
76
+ byPolicy.set(policyName, [...(byPolicy.get(policyName) || []), type]);
77
+ }
78
+ const sections = [];
79
+ for (const types of byPolicy.values()) {
80
+ const heading = types
81
+ .map((type) => {
82
+ return AI_RESOURCE_TYPE_INFO[type].displayName;
83
+ })
84
+ .join(" / ");
85
+ sections.push(`${heading} — read-only commands:\n${ResourceCommandPolicy.getReadCommandGuide(types[0])}`);
86
+ }
87
+ return sections.join("\n\n");
88
+ }
89
+ buildListAccessTool() {
90
+ return {
91
+ definition: {
92
+ name: LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME,
93
+ description: `List the infrastructure resources (Docker and Podman hosts, Docker Swarm, Proxmox, VMware and Ceph clusters, database servers, hosts) linked to this signal that OneUptime AI may inspect with read-only commands through their AI agents, with their resourceId and the programs each one runs. Call this once before ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} if you are unsure which resource to target.`,
94
+ inputSchema: { type: "object", properties: {} },
95
+ },
96
+ execute: async () => {
97
+ const ready = this.getReadyResources();
98
+ const text = ready
99
+ .map((resource) => {
100
+ const info = AI_RESOURCE_TYPE_INFO[resource.resourceType];
101
+ return `- resourceId: ${resource.resourceId} — ${describeResource(resource)} — ${this.isResourceUnreachable(resource.resourceId)
102
+ ? `UNREACHABLE for the rest of this investigation: its ${info.agentDisplayName} did not pick up an earlier command. Do not call ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} on it again.`
103
+ : `read-only commands via its ${info.agentDisplayName} (programs: ${info.programs.join(", ")})`}`;
104
+ })
105
+ .join("\n");
106
+ return {
107
+ success: true,
108
+ textForLlm: text,
109
+ result: {
110
+ dataForLlm: text,
111
+ rowCount: ready.length,
112
+ citationLabel: "Infrastructure OneUptime AI can inspect",
113
+ redactionCount: 0,
114
+ isTruncated: false,
115
+ },
116
+ };
117
+ },
118
+ };
119
+ }
120
+ buildRunCommandTool() {
121
+ var _a;
122
+ const maxCommands = (_a = this.options.maxCommands) !== null && _a !== void 0 ? _a : MAX_RESOURCE_COMMANDS_PER_INVESTIGATION;
123
+ return {
124
+ definition: {
125
+ name: RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME,
126
+ description: `Run ONE read-only command on a linked infrastructure resource through its AI agent and get its output. The resources you may inspect:\n${this.describeReadyResources()}\n\nWhat each kind of resource accepts:\n\n${this.describeReadCommandGuides()}\n\nOne command per call, written as the program followed by its arguments — never a shell line: pipes, redirects, ;, &&, $( ) and sudo are refused. Anything that changes a resource is refused here — this is an investigation — and so is anything that would read credentials; credential-looking values (passwords, tokens, keys, connection strings) are redacted from every output before you see it, so do not spend commands on them. Keep output small (limit lines and tails). At most ${maxCommands} commands per investigation.`,
127
+ inputSchema: {
128
+ type: "object",
129
+ properties: {
130
+ resourceId: {
131
+ type: "string",
132
+ description: `The resourceId of the linked resource to inspect (from the context or ${LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME}).`,
133
+ },
134
+ command: {
135
+ type: "string",
136
+ description: 'The command, starting with one of the resource\'s programs, e.g. "docker ps -a", "docker logs --tail 100 web", "systemctl status nginx --no-pager", "pvesh get /cluster/resources", "ceph health detail" or "db sessions --limit 20". One line, no shell operators.',
137
+ },
138
+ rationale: {
139
+ type: "string",
140
+ description: "One sentence on what you expect this command to tell you — shown to humans on the timeline.",
141
+ },
142
+ timeoutInMs: {
143
+ type: "number",
144
+ description: `Timeout in milliseconds (default ${DEFAULT_RESOURCE_COMMAND_TIMEOUT_MS}, max ${MAX_RESOURCE_COMMAND_TIMEOUT_MS}). Shortened automatically when the investigation's time budget is nearly spent.`,
145
+ },
146
+ },
147
+ required: ["resourceId", "command", "rationale"],
148
+ },
149
+ },
150
+ execute: async (args) => {
151
+ return this.runCommand(args, maxCommands);
152
+ },
153
+ };
154
+ }
155
+ async runCommand(args, maxCommands) {
156
+ var _a, _b;
157
+ if (this.commandsRun >= maxCommands) {
158
+ return this.failure(`The per-investigation infrastructure command budget (${maxCommands} commands) is spent. Finish your analysis with what you have.`);
159
+ }
160
+ const resourceIdRaw = ToolArgs.getString(args, "resourceId");
161
+ const resource = this.getReadyResources().find((candidate) => {
162
+ return (Boolean(resourceIdRaw) &&
163
+ candidate.resourceId.toLowerCase() === resourceIdRaw.toLowerCase());
164
+ });
165
+ if (!resource || !resource.agent) {
166
+ return this.failure(`resourceId is not one of the resources OneUptime AI may inspect for this signal. Use ${LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME}.`);
167
+ }
168
+ const info = AI_RESOURCE_TYPE_INFO[resource.resourceType];
169
+ const label = describeResource(resource);
170
+ const command = ToolArgs.getString(args, "command") || "";
171
+ if (!command) {
172
+ return this.failure("command is required.");
173
+ }
174
+ const policy = ResourceCommandPolicy.evaluateCommand({
175
+ resourceType: resource.resourceType,
176
+ command,
177
+ });
178
+ if (policy.tier === ResourceCommandTier.Denied) {
179
+ return this.failure(`Refused by the ${info.displayName} command policy: ${policy.reason}. Nothing was run. What ${label} accepts:\n${ResourceCommandPolicy.getReadCommandGuide(resource.resourceType)}`, `Refused by the ${info.displayName} command policy on ${label}. Nothing was run.`);
180
+ }
181
+ if (policy.tier !== ResourceCommandTier.Read) {
182
+ return this.failure(`"${policy.displayCommand}" would change ${label} (${policy.tier}) and this is a read-only investigation, so it was NOT run. If a change is the fix, put it in your Suggested next steps for a human. Read-only commands for it:\n${ResourceCommandPolicy.getReadCommandGuide(resource.resourceType)}`, `"${policy.displayCommand}" would change ${label} and this is a read-only investigation, so it was not run.`);
183
+ }
184
+ /*
185
+ * The breaker: checked before the budget is planned, a command is spent
186
+ * or anything is enqueued, so a dead agent costs one claim window per
187
+ * run rather than one per command.
188
+ */
189
+ const tripped = this.unreachableAgents.get(resource.agent.agentId);
190
+ if (tripped !== undefined) {
191
+ return this.failure(`The ${info.agentDisplayName} of ${label} did not pick up an earlier command within ${InfrastructureInvestigationToolkit.describeSeconds(tripped.claimWindowMs)}, so the ${describeResourceNoun(resource.resourceType)} is treated as unreachable for the rest of this investigation. Nothing was run. Do not call ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} on it again: continue with OneUptime telemetry and say in **${ResourceAccessContext.REPORT_SECTION_HEADING}** that its ${info.agentDisplayName} did not respond.`, `No command was run on ${label}: its ${info.agentDisplayName} did not pick up an earlier command, so it was unreachable for the rest of this investigation.`);
192
+ }
193
+ const requestedTimeoutInMs = ToolArgs.getNumber(args, "timeoutInMs", {
194
+ defaultValue: DEFAULT_RESOURCE_COMMAND_TIMEOUT_MS,
195
+ min: MIN_KUBECTL_TIMEOUT_MS,
196
+ max: MAX_RESOURCE_COMMAND_TIMEOUT_MS,
197
+ });
198
+ /*
199
+ * Planned before the command counts against the budget or anything is
200
+ * enqueued: a command the run's wall clock can no longer hold is
201
+ * refused outright rather than started and abandoned.
202
+ */
203
+ const budget = KubectlWaitBudget.plan({
204
+ requestedTimeoutInMs,
205
+ maxClaimTimeoutInMs: RESOURCE_COMMAND_CLAIM_TIMEOUT_MS,
206
+ deadlineAtMs: this.options.runDeadlineAtMs,
207
+ });
208
+ if (!budget.ok) {
209
+ return this.failure(`Not enough time is left in this investigation's budget to run another infrastructure command (about ${InfrastructureInvestigationToolkit.describeSeconds(budget.refusal.remainingBudgetMs)} remain; a command needs at least ${InfrastructureInvestigationToolkit.describeSeconds(budget.refusal.minimumBudgetMs)} including the wait for the agent). Nothing was run. Finish your analysis with what you have.`);
210
+ }
211
+ /*
212
+ * Counted once a job is enqueued, whether or not the agent then runs
213
+ * it: the per-investigation cap bounds the agent work this run can ask
214
+ * for, not the commands that happened to succeed.
215
+ */
216
+ this.commandsRun++;
217
+ let outcome;
218
+ try {
219
+ outcome = await ResourceCommandJobRunner.run({
220
+ projectId: this.options.projectId,
221
+ aiRunId: this.options.aiRunId,
222
+ origin: RunnerJobOrigin.AiInvestigation,
223
+ resourceType: resource.resourceType,
224
+ resourceId: new ObjectID(resource.resourceId),
225
+ targetResourceAiAgentId: new ObjectID(resource.agent.agentId),
226
+ /*
227
+ * The command exactly as evaluated above: the chokepoint and the
228
+ * agent evaluate the same text, so all three verdicts agree.
229
+ */
230
+ command,
231
+ stepId: `ai-investigation-resource-${this.commandsRun}`,
232
+ timeoutInMs: budget.plan.timeoutInMs,
233
+ claimTimeoutInMs: budget.plan.claimTimeoutInMs,
234
+ });
235
+ }
236
+ catch (error) {
237
+ const message = redactResourceCommandOutput({
238
+ resourceType: resource.resourceType,
239
+ program: policy.program,
240
+ text: error instanceof Error ? error.message : String(error),
241
+ }).trim();
242
+ return this.failure(`The command could not be run on ${label}: ${message} Continue with OneUptime telemetry and mention this in your report.`, `No command was run on ${label}: it was refused before it reached the ${info.agentDisplayName}.`);
243
+ }
244
+ if (outcome.claimTimedOut === true) {
245
+ this.unreachableAgents.set(resource.agent.agentId, {
246
+ claimWindowMs: budget.plan.claimTimeoutInMs,
247
+ });
248
+ return this.failure(`The command was NOT run on ${label}: its ${info.agentDisplayName} did not pick up "${outcome.displayCommand}" within ${InfrastructureInvestigationToolkit.describeSeconds(budget.plan.claimTimeoutInMs)} (it may be offline, restarting or busy). The ${describeResourceNoun(resource.resourceType)} is treated as unreachable for the rest of this investigation — do not call ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} on it again. Continue with OneUptime telemetry and say in **${ResourceAccessContext.REPORT_SECTION_HEADING}** that its ${info.agentDisplayName} did not respond.`, `No command was run on ${label}: the ${info.agentDisplayName} did not pick up the command in time.`);
249
+ }
250
+ /*
251
+ * The agent took the command and no result came back: it may have run
252
+ * or not. There is no output to cite, so it is a failed call — but it
253
+ * is never recorded as "did not run", and the panel counts it apart.
254
+ */
255
+ if (outcome.runState === ResourceCommandRunState.Unknown) {
256
+ const reason = InfrastructureInvestigationToolkit.toSentence(redactResourceCommandOutput({
257
+ resourceType: resource.resourceType,
258
+ program: policy.program,
259
+ text: outcome.errorMessage || "No result came back for this command.",
260
+ }));
261
+ return this.failure(`No result came back from ${label} for "${outcome.displayCommand}": ${reason} Nothing from this command is evidence. Continue with OneUptime telemetry and mention in **${ResourceAccessContext.REPORT_SECTION_HEADING}** that its ${info.agentDisplayName} stopped responding.`, `${INFRASTRUCTURE_RESULT_UNKNOWN_EVENT_PREFIX} the ${info.agentDisplayName} of ${label} took the command, but no result came back, so whether it ran is unknown.`);
262
+ }
263
+ /*
264
+ * Nothing reached the program, so there is nothing to cite: a refusal
265
+ * by the server or the agent, or a program that could not start. The
266
+ * model reads why; the persisted event carries only the category,
267
+ * because the agent's reason can name its configuration and every
268
+ * reader of the incident sees the event.
269
+ */
270
+ if (outcome.executed === false) {
271
+ const reason = InfrastructureInvestigationToolkit.toSentence(redactResourceCommandOutput({
272
+ resourceType: resource.resourceType,
273
+ program: policy.program,
274
+ text: outcome.errorMessage ||
275
+ "The job ended without running the command.",
276
+ }));
277
+ return this.failure(`No result came back from ${label} for "${outcome.displayCommand}": ${reason} Nothing from this command is evidence. Continue with OneUptime telemetry and mention in **${ResourceAccessContext.REPORT_SECTION_HEADING}** that the command could not run.`, `No result came back from ${label}: the command was refused, or the ${info.agentDisplayName} did not run it.`);
278
+ }
279
+ const text = ResourceCommandJobRunner.describeForLlm({
280
+ outcome,
281
+ resourceType: resource.resourceType,
282
+ });
283
+ return {
284
+ success: true,
285
+ textForLlm: text,
286
+ result: {
287
+ dataForLlm: text,
288
+ rowCount: outcome.succeeded ? 1 : 0,
289
+ citationLabel: InfrastructureInvestigationToolkit.getCitationLabel({
290
+ displayCommand: outcome.displayCommand,
291
+ resource,
292
+ }),
293
+ redactionCount: (_a = outcome.redactionCount) !== null && _a !== void 0 ? _a : 0,
294
+ isTruncated: (_b = outcome.isTruncated) !== null && _b !== void 0 ? _b : outcome.output.endsWith(RESOURCE_COMMAND_OUTPUT_TRUNCATED_SUFFIX.trim()),
295
+ },
296
+ };
297
+ }
298
+ /*
299
+ * How a command that ran is cited: `docker ps -a` on Docker host "web-1".
300
+ * The report's evidence list and the panel show it as is.
301
+ */
302
+ static getCitationLabel(data) {
303
+ const displayName = isAiResourceType(data.resource.resourceType)
304
+ ? AI_RESOURCE_TYPE_INFO[data.resource.resourceType].displayName
305
+ : "resource";
306
+ return `\`${data.displayCommand}\` on ${displayName} "${data.resource.resourceName}"`;
307
+ }
308
+ // A redacted reason that ends a sentence.
309
+ static toSentence(text) {
310
+ const trimmed = text.trim();
311
+ return SENTENCE_END_PATTERN.test(trimmed) ? trimmed : `${trimmed}.`;
312
+ }
313
+ static describeSeconds(milliseconds) {
314
+ return `${Math.max(0, Math.round(milliseconds / 1000))}s`;
315
+ }
316
+ /*
317
+ * `errorMessage` is what the run's persisted event (and so every reader
318
+ * of the incident's investigation panel) carries; it defaults to the
319
+ * model's text, which is right for failures that name nothing beyond the
320
+ * command and the resource.
321
+ */
322
+ failure(text, errorMessage) {
323
+ return {
324
+ success: false,
325
+ textForLlm: text,
326
+ errorMessage: errorMessage !== null && errorMessage !== void 0 ? errorMessage : text,
327
+ };
328
+ }
329
+ }
330
+ //# sourceMappingURL=InfrastructureInvestigationToolkit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfrastructureInvestigationToolkit.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ import { AI_RESOURCE_TYPE_INFO, isAiResourceType, } from "../../../../Types/ResourceAiAgent/AiResourceType";
2
+ import { ResourceAiRemediationMode, } from "../../../../Types/ResourceAiAgent/ResourceAiAccess";
3
+ import { describeResourceNoun, getResourceAiAgentPage, } from "../../../Services/ResourceAiAccessService";
4
+ import { LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME, RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME, } from "./ResourceAccessToolNames";
5
+ /*
6
+ * The prompt-side view of infrastructure access — the resource-agnostic
7
+ * sibling of ClusterAccessContext, for the Docker and Podman hosts, Docker
8
+ * Swarm, Proxmox, VMware and Ceph clusters, database servers and hosts an
9
+ * incident or alert is linked to.
10
+ *
11
+ * Two audiences read this: the model, which needs to know which resources
12
+ * it may inspect and how; and, through the model's report, the on-call
13
+ * human, who needs to hear "I could not inspect the host, here is why — and
14
+ * here is what to install" in the report itself. Everything here is
15
+ * deterministic text derived from ResourceAiAccessStatus — never model
16
+ * output.
17
+ */
18
+ // 'Docker host "web-1"', 'Host "web-2"' — how a resource is named in copy.
19
+ export function describeResource(status) {
20
+ const info = isAiResourceType(status.resourceType)
21
+ ? AI_RESOURCE_TYPE_INFO[status.resourceType]
22
+ : null;
23
+ return `${info ? info.displayName : "Resource"} "${status.resourceName}"`;
24
+ }
25
+ // "the Docker AI agent" — who runs commands on this resource.
26
+ export function describeResourceAgent(status) {
27
+ return isAiResourceType(status.resourceType)
28
+ ? `the ${AI_RESOURCE_TYPE_INFO[status.resourceType].agentDisplayName}`
29
+ : "the resource's AI agent";
30
+ }
31
+ // The gaps that stop an investigation from running commands on it.
32
+ function getBlockingGaps(status) {
33
+ return status.gaps.filter((gap) => {
34
+ return gap.blocksInvestigation;
35
+ });
36
+ }
37
+ function findAgentMissingGap(status) {
38
+ return status.gaps.find((gap) => {
39
+ return gap.code === "ai_agent_not_connected";
40
+ });
41
+ }
42
+ class ResourceAccessContext {
43
+ /*
44
+ * Appended to the investigation persona whenever the subject is linked to
45
+ * at least one infrastructure resource, ready or not.
46
+ */
47
+ static buildPersonaAddendum(statuses) {
48
+ const ready = statuses.filter((status) => {
49
+ return status.isInvestigationReady;
50
+ });
51
+ const lines = [];
52
+ if (ready.length > 0) {
53
+ lines.push(`This signal is linked to infrastructure resource(s) OneUptime AI can inspect directly through their AI agents: ${ready
54
+ .map((status) => {
55
+ return describeResource(status);
56
+ })
57
+ .join(", ")}. Use ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} for READ-ONLY inspection the way an on-call engineer would open a terminal on the box: list and inspect the failing containers or services and read their recent logs, check the resource's health, capacity and recent events. Each call runs ONE command (an argv — no shell, no pipes or redirects, no sudo) with the programs the tool lists for that resource. Prefer direct inspection over guessing from metrics when the two disagree. Every command that ran is cited like any other tool result; a command that could not run comes back as an error, is not evidence, and must never be described as inspected. A resource's agent can itself be down: if ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} says an agent did not pick up a command, that resource is unreachable for the rest of this investigation — do not run commands on it again, continue with OneUptime telemetry, and say so in your report. Anything that changes a resource is refused, and credential-looking values (passwords, tokens, keys, connection strings) are redacted from every output before you see it — never ask for them and never treat a redaction marker as a finding.`);
58
+ }
59
+ const notReady = statuses.filter((status) => {
60
+ return !status.isInvestigationReady;
61
+ });
62
+ if (notReady.length > 0) {
63
+ lines.push(`This signal is linked to infrastructure resource(s) OneUptime AI CANNOT inspect directly: ${notReady
64
+ .map((status) => {
65
+ return `${describeResource(status)} (${ResourceAccessContext.describeWhyNotReady(status)})`;
66
+ })
67
+ .join(", ")}. Investigate them with OneUptime's own telemetry (metrics, logs, events, traces) and say plainly in your report that you could not inspect them directly. Do NOT invent command output.`);
68
+ }
69
+ lines.push(`Add a section **${ResourceAccessContext.REPORT_SECTION_HEADING}** before Suggested next steps: one or two sentences on what you inspected directly on each linked resource (or that you could not — no AI agent connected, the agent not responding, or AI investigation turned off for it — and that the human should check the resource's AI agent page (AI → AI agent), where the agent's install snippet is).`);
70
+ return lines.join("\n");
71
+ }
72
+ // The "# Infrastructure access" block of the context summary.
73
+ static buildContextSection(statuses) {
74
+ if (statuses.length === 0) {
75
+ return "";
76
+ }
77
+ const lines = ["", "# Infrastructure access"];
78
+ for (const status of statuses) {
79
+ const info = isAiResourceType(status.resourceType)
80
+ ? AI_RESOURCE_TYPE_INFO[status.resourceType]
81
+ : null;
82
+ if (status.isInvestigationReady && info) {
83
+ lines.push(`- ${describeResource(status)} (resourceId: ${status.resourceId}): READ access via ${RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME} through its ${info.agentDisplayName} (programs: ${info.programs.join(", ")}). Remediation: ${ResourceAccessContext.describeRemediationMode(status)}.`);
84
+ continue;
85
+ }
86
+ const reasons = getBlockingGaps(status).map((gap) => {
87
+ return gap.title;
88
+ });
89
+ // No agent at all: say what to install, in the status's own words.
90
+ const notConnected = findAgentMissingGap(status);
91
+ lines.push(`- ${describeResource(status)} (resourceId: ${status.resourceId}): NO direct access — ${reasons.length > 0 ? reasons.join("; ") : "not configured"}.${notConnected ? ` ${notConnected.nextStep}` : ""} Investigate with OneUptime telemetry only.`);
92
+ }
93
+ return lines.join("\n");
94
+ }
95
+ /*
96
+ * The sentence the investigation panel shows humans when AI investigated
97
+ * a resource with OneUptime data only. Deterministic so it reads the same
98
+ * on every panel and never depends on the model remembering to say it.
99
+ */
100
+ static describeMissingAccessForHumans(status) {
101
+ const blocking = getBlockingGaps(status);
102
+ if (blocking.length === 0 && status.isInvestigationReady) {
103
+ return `OneUptime AI can run read-only commands on ${describeResource(status)} through ${describeResourceAgent(status)}.`;
104
+ }
105
+ const first = blocking[0];
106
+ if (!first) {
107
+ return `OneUptime AI could not run commands on ${describeResource(status)}.`;
108
+ }
109
+ return `OneUptime AI could not run commands on ${describeResource(status)}: ${first.title.charAt(0).toLowerCase()}${first.title.slice(1)}. ${first.nextStep}`;
110
+ }
111
+ /*
112
+ * Why a resource cannot be inspected, as a short clause for the persona:
113
+ * the first blocking gap, and what to install when no agent is there.
114
+ */
115
+ static describeWhyNotReady(status) {
116
+ const first = getBlockingGaps(status)[0];
117
+ if (!first) {
118
+ return "not configured";
119
+ }
120
+ const title = `${first.title.charAt(0).toLowerCase()}${first.title.slice(1)}`;
121
+ if (first.code === "ai_agent_not_connected" &&
122
+ isAiResourceType(status.resourceType)) {
123
+ const info = AI_RESOURCE_TYPE_INFO[status.resourceType];
124
+ return `${title} — the operator should install the ${info.agentDisplayName} (see ${getResourceAiAgentPage(status.resourceType)})`;
125
+ }
126
+ return title;
127
+ }
128
+ /*
129
+ * The resource's remediation mode in the words of the canonical
130
+ * ResourceAiRemediationMode comment (Types/ResourceAiAgent/
131
+ * ResourceAiAccess): what runs without a human, what is proposed
132
+ * instead, and what always asks.
133
+ */
134
+ static describeRemediationMode(status) {
135
+ const noun = isAiResourceType(status.resourceType)
136
+ ? describeResourceNoun(status.resourceType)
137
+ : "resource";
138
+ if (status.aiRemediationMode === ResourceAiRemediationMode.BypassApproval) {
139
+ return status.isRemediationReady
140
+ ? `Bypass approval (AI does not ask: every fix the ${noun}'s command policy allows, safe and riskier, runs without a human — except commands the policy says always need a human; destructive commands never run)`
141
+ : "Bypass approval, but not ready";
142
+ }
143
+ if (status.aiRemediationMode === ResourceAiRemediationMode.Automatic) {
144
+ return status.isRemediationReady
145
+ ? `Automatic (safe fixes run without a human, and so do riskier ones whose shape the ${noun}'s command allowlist names; any other riskier fix is proposed for one-click approval, commands the policy says always need a human always ask, and destructive commands never run)`
146
+ : "Automatic, but not ready";
147
+ }
148
+ if (status.aiRemediationMode === ResourceAiRemediationMode.RequireApproval) {
149
+ return status.isRemediationReady
150
+ ? "a human approves any fix before it runs"
151
+ : "requires approval, but not ready";
152
+ }
153
+ return "disabled — AI may only inspect";
154
+ }
155
+ }
156
+ ResourceAccessContext.REPORT_SECTION_HEADING = "Infrastructure access";
157
+ export default ResourceAccessContext;
158
+ // Re-exported for the callers that read them with the context.
159
+ export { LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME, RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME, };
160
+ //# sourceMappingURL=ResourceAccessContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAccessContext.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,gBAAgB,GACjB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EAGL,yBAAyB,GAC1B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;GAYG;AAEH,2EAA2E;AAC3E,MAAM,UAAU,gBAAgB,CAAC,MAA8B;IAC7D,MAAM,IAAI,GAA8B,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3E,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC;AAC5E,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC,CAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE;QACtE,CAAC,CAAC,yBAAyB,CAAC;AAChC,CAAC;AAED,mEAAmE;AACnE,SAAS,eAAe,CACtB,MAA8B;IAE9B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAwB,EAAW,EAAE;QAC9D,OAAO,GAAG,CAAC,mBAAmB,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAA8B;IAE9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAwB,EAAW,EAAE;QAC5D,OAAO,GAAG,CAAC,IAAI,KAAK,wBAAwB,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAqB,qBAAqB;IAIxC;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAChC,QAAuC;QAEvC,MAAM,KAAK,GAAkC,QAAQ,CAAC,MAAM,CAC1D,CAAC,MAA8B,EAAW,EAAE;YAC1C,OAAO,MAAM,CAAC,oBAAoB,CAAC;QACrC,CAAC,CACF,CAAC;QAEF,MAAM,KAAK,GAAkB,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CACR,kHAAkH,KAAK;iBACpH,GAAG,CAAC,CAAC,MAA8B,EAAU,EAAE;gBAC9C,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC,CAAC;iBACD,IAAI,CACH,IAAI,CACL,SAAS,oCAAoC,yoBAAyoB,oCAAoC,4bAA4b,CAC1pC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAkC,QAAQ,CAAC,MAAM,CAC7D,CAAC,MAA8B,EAAW,EAAE;YAC1C,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACtC,CAAC,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CACR,6FAA6F,QAAQ;iBAClG,GAAG,CAAC,CAAC,MAA8B,EAAU,EAAE;gBAC9C,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC,mBAAmB,CAC9E,MAAM,CACP,GAAG,CAAC;YACP,CAAC,CAAC;iBACD,IAAI,CACH,IAAI,CACL,0LAA0L,CAC9L,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,IAAI,CACR,mBAAmB,qBAAqB,CAAC,sBAAsB,oVAAoV,CACpZ,CAAC;QAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,8DAA8D;IACvD,MAAM,CAAC,mBAAmB,CAC/B,QAAuC;QAEvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAkB,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAE7D,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAA8B,gBAAgB,CACtD,MAAM,CAAC,YAAY,CACpB;gBACC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,MAAM,CAAC,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CACR,KAAK,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,UAAU,sBAAsB,oCAAoC,gBAAgB,IAAI,CAAC,gBAAgB,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAC7L,IAAI,CACL,mBAAmB,qBAAqB,CAAC,uBAAuB,CAC/D,MAAM,CACP,GAAG,CACL,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAkB,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,CACxD,CAAC,GAAwB,EAAU,EAAE;gBACnC,OAAO,GAAG,CAAC,KAAK,CAAC;YACnB,CAAC,CACF,CAAC;YAEF,mEAAmE;YACnE,MAAM,YAAY,GAChB,mBAAmB,CAAC,MAAM,CAAC,CAAC;YAE9B,KAAK,CAAC,IAAI,CACR,KAAK,gBAAgB,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,UAAU,yBAC7D,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,gBAC5C,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,6CAA6C,CACjG,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,8BAA8B,CAC1C,MAA8B;QAE9B,MAAM,QAAQ,GAA+B,eAAe,CAAC,MAAM,CAAC,CAAC;QAErE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACzD,OAAO,8CAA8C,gBAAgB,CACnE,MAAM,CACP,YAAY,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC;QAChD,CAAC;QAED,MAAM,KAAK,GAAoC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE3D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,0CAA0C,gBAAgB,CAC/D,MAAM,CACP,GAAG,CAAC;QACP,CAAC;QAED,OAAO,0CAA0C,gBAAgB,CAC/D,MAAM,CACP,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;IACxF,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,MAA8B;QAC/D,MAAM,KAAK,GAAoC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtF,IACE,KAAK,CAAC,IAAI,KAAK,wBAAwB;YACvC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,EACrC,CAAC;YACD,MAAM,IAAI,GACR,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAE7C,OAAO,GAAG,KAAK,sCAAsC,IAAI,CAAC,gBAAgB,SAAS,sBAAsB,CACvG,MAAM,CAAC,YAAY,CACpB,GAAG,CAAC;QACP,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,uBAAuB,CACpC,MAA8B;QAE9B,MAAM,IAAI,GAAW,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC;YACxD,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC;YAC3C,CAAC,CAAC,UAAU,CAAC;QAEf,IAAI,MAAM,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,cAAc,EAAE,CAAC;YAC1E,OAAO,MAAM,CAAC,kBAAkB;gBAC9B,CAAC,CAAC,mDAAmD,IAAI,yJAAyJ;gBAClN,CAAC,CAAC,gCAAgC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,SAAS,EAAE,CAAC;YACrE,OAAO,MAAM,CAAC,kBAAkB;gBAC9B,CAAC,CAAC,qFAAqF,IAAI,oLAAoL;gBAC/Q,CAAC,CAAC,0BAA0B,CAAC;QACjC,CAAC;QAED,IACE,MAAM,CAAC,iBAAiB,KAAK,yBAAyB,CAAC,eAAe,EACtE,CAAC;YACD,OAAO,MAAM,CAAC,kBAAkB;gBAC9B,CAAC,CAAC,yCAAyC;gBAC3C,CAAC,CAAC,kCAAkC,CAAC;QACzC,CAAC;QAED,OAAO,gCAAgC,CAAC;IAC1C,CAAC;;AApMsB,4CAAsB,GAC3C,uBAAuB,CAAC;eAFP,qBAAqB;AAwM1C,+DAA+D;AAC/D,OAAO,EACL,oCAAoC,EACpC,oCAAoC,GACrC,CAAC"}
@@ -0,0 +1,33 @@
1
+ /*
2
+ * Names of the AI tools that reach an infrastructure resource (a Docker or
3
+ * Podman host, a Docker Swarm, Proxmox, VMware or Ceph cluster, a database
4
+ * server or a host) through its resource AI agent, shared with the
5
+ * dashboard so the investigation panel can count "infrastructure commands"
6
+ * from the run's events without importing server code.
7
+ *
8
+ * Deliberately dependency-free: the investigation engine, the toolkit, the
9
+ * report parser and the dashboard bundle all import it.
10
+ */
11
+ export const RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME = "run_infrastructure_command";
12
+ export const LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME = "list_infrastructure_access";
13
+ // Every tool that reaches a resource rather than the project's telemetry.
14
+ export const INFRASTRUCTURE_TOOL_NAMES = [
15
+ RUN_INFRASTRUCTURE_COMMAND_TOOL_NAME,
16
+ LIST_INFRASTRUCTURE_ACCESS_TOOL_NAME,
17
+ ];
18
+ export function isInfrastructureToolName(toolName) {
19
+ return INFRASTRUCTURE_TOOL_NAMES.includes(toolName || "");
20
+ }
21
+ /*
22
+ * How the run's persisted event starts for an infrastructure command an
23
+ * agent took whose result never came back — whether it ran is unknown, so
24
+ * it is never counted as "did not run". The server writes it
25
+ * (InfrastructureInvestigationToolkit) and the investigation panel reads it
26
+ * (Components/AI/ClusterToolFormat); this is the one definition both use.
27
+ */
28
+ export const INFRASTRUCTURE_RESULT_UNKNOWN_EVENT_PREFIX = "infrastructure command result unknown:";
29
+ export function isInfrastructureResultUnknownMessage(errorMessage) {
30
+ return (typeof errorMessage === "string" &&
31
+ errorMessage.startsWith(INFRASTRUCTURE_RESULT_UNKNOWN_EVENT_PREFIX));
32
+ }
33
+ //# sourceMappingURL=ResourceAccessToolNames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourceAccessToolNames.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4BAA4B,CAAC;AAC/B,MAAM,CAAC,MAAM,oCAAoC,GAC/C,4BAA4B,CAAC;AAE/B,0EAA0E;AAC1E,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,oCAAoC;IACpC,oCAAoC;CACrC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CACtC,QAAmC;IAEnC,OAAO,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,wCAAwC,CAAC;AAE3C,MAAM,UAAU,oCAAoC,CAClD,YAAuC;IAEvC,OAAO,CACL,OAAO,YAAY,KAAK,QAAQ;QAChC,YAAY,CAAC,UAAU,CAAC,0CAA0C,CAAC,CACpE,CAAC;AACJ,CAAC"}