@oneuptime/common 11.5.8 → 11.5.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 (542) hide show
  1. package/Models/AnalyticsModels/Index.ts +13 -0
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
  3. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
  4. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
  5. package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
  6. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +15 -6
  7. package/Models/DatabaseModels/AIRun.ts +37 -0
  8. package/Models/DatabaseModels/AIRunEvent.ts +34 -1
  9. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  10. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  11. package/Models/DatabaseModels/Index.ts +2 -0
  12. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  13. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  14. package/Models/DatabaseModels/MetricType.ts +74 -0
  15. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  16. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +328 -0
  17. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  18. package/Models/DatabaseModels/Project.ts +62 -0
  19. package/Models/DatabaseModels/StatusPage.ts +42 -0
  20. package/Models/DatabaseModels/User.ts +37 -0
  21. package/Server/API/AIAgentTaskAPI.ts +38 -12
  22. package/Server/API/AIAgentTaskLogAPI.ts +49 -0
  23. package/Server/API/AIChatAPI.ts +16 -0
  24. package/Server/API/AIReadinessAPI.ts +84 -0
  25. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  26. package/Server/API/CodeFixRunAPI.ts +182 -0
  27. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  28. package/Server/API/TelemetryExceptionAPI.ts +6 -1
  29. package/Server/EnvironmentConfig.ts +84 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.ts +95 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.ts +52 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.ts +30 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.ts +49 -0
  36. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  37. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  38. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  39. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  40. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +20 -0
  41. package/Server/Services/AIRunEventService.ts +15 -1
  42. package/Server/Services/AIRunService.ts +38 -1
  43. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  44. package/Server/Services/IncidentService.ts +13 -0
  45. package/Server/Services/Index.ts +10 -0
  46. package/Server/Services/LlmProviderService.ts +2 -0
  47. package/Server/Services/MarketingConversionService.ts +10 -0
  48. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  49. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  50. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  51. package/Server/Services/MetricService.ts +970 -122
  52. package/Server/Services/MonitorService.ts +14 -0
  53. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  54. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  55. package/Server/Services/NetworkFlowService.ts +11 -0
  56. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  57. package/Server/Services/ProjectService.ts +178 -0
  58. package/Server/Services/SpanService.ts +13 -9
  59. package/Server/Services/StatusPageService.ts +97 -0
  60. package/Server/Services/TeamMemberService.ts +11 -0
  61. package/Server/Services/TelemetryExceptionService.ts +19 -90
  62. package/Server/Services/UserService.ts +59 -0
  63. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  64. package/Server/Types/Markdown.ts +9 -9
  65. package/Server/Types/MarkdownSlugify.ts +47 -0
  66. package/Server/Utils/AI/AIRunTranscript.ts +240 -0
  67. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +9 -0
  68. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +119 -5
  69. package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +75 -0
  70. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +235 -0
  71. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +2 -3
  72. package/Server/Utils/AI/Toolbox/CodeTools.ts +883 -0
  73. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +519 -0
  74. package/Server/Utils/AI/Toolbox/Index.ts +27 -0
  75. package/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.ts +279 -0
  76. package/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.ts +19 -1
  77. package/Server/Utils/Attribution.ts +99 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +600 -0
  79. package/Server/Utils/CodeRepository/StackTraceRepoResolver.ts +7 -2
  80. package/Server/Utils/LLM/LLMService.ts +397 -18
  81. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  82. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  83. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  84. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  85. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  86. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  87. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  88. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  89. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  90. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  91. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  92. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  93. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +19 -11
  94. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  95. package/Server/Utils/ProductAnalytics.ts +133 -0
  96. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  97. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  98. package/Tests/Models/StatusPageEnableMcpServer.test.ts +125 -0
  99. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  100. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  101. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  102. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  103. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  104. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  105. package/Tests/Server/Services/StatusPageServiceMcp.test.ts +223 -0
  106. package/Tests/Server/Services/TelemetryExceptionAIFixReadiness.test.ts +26 -3
  107. package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +12 -0
  108. package/Tests/Server/Types/Markdown.test.ts +106 -0
  109. package/Tests/Server/Utils/AI/AIRunTranscript.test.ts +182 -0
  110. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +411 -0
  111. package/Tests/Server/Utils/AI/CodeTools.test.ts +596 -0
  112. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +475 -0
  113. package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +548 -0
  114. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +142 -0
  115. package/Tests/Server/Utils/AI/ScheduledMaintenanceTools.test.ts +176 -0
  116. package/Tests/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.test.ts +63 -0
  117. package/Tests/Server/Utils/GitHubGetFileContent.test.ts +197 -0
  118. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  119. package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +502 -0
  120. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  121. package/Tests/Types/AI/AIAgentTaskStatus.test.ts +7 -6
  122. package/Tests/Types/AI/AIChatPageContext.test.ts +0 -0
  123. package/Tests/Types/AI/AIRunStatus.test.ts +42 -0
  124. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  125. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  126. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  127. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  128. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  129. package/Tests/Types/Database/Includes.test.ts +65 -0
  130. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  131. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  132. package/Tests/Types/Database/IsNull.test.ts +44 -0
  133. package/Tests/Types/Database/LessThan.test.ts +62 -0
  134. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  135. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  136. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  137. package/Tests/Types/Database/NotContains.test.ts +64 -0
  138. package/Tests/Types/Database/NotNull.test.ts +44 -0
  139. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  140. package/Tests/Types/Log/LogSeverity.test.ts +78 -0
  141. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  142. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  143. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  144. package/Tests/UI/Components/BasicFormDropdownNormalization.test.tsx +167 -0
  145. package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +66 -0
  146. package/Tests/UI/Components/XAxis.test.ts +5 -3
  147. package/Tests/UI/Utils/AIChatExport/ChatWidgetData.test.ts +319 -0
  148. package/Tests/UI/Utils/AIChatExport/ChatWidgetMarkdown.test.ts +188 -0
  149. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  150. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  151. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  152. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  153. package/Types/AI/AIAgentTaskStatus.ts +13 -0
  154. package/Types/AI/AIChatPageContext.ts +137 -0
  155. package/Types/AI/AIChatTypes.ts +44 -0
  156. package/Types/AI/AIFixReadiness.ts +46 -0
  157. package/Types/AI/AIRunStatus.ts +11 -0
  158. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  159. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  160. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  161. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  162. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  163. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  164. package/Types/Email/EmailTemplateType.ts +3 -0
  165. package/Types/Log/LogSeverity.ts +61 -0
  166. package/Types/Marketing/MarketingConversion.ts +11 -0
  167. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  168. package/Types/Metrics/MetricQueryData.ts +8 -0
  169. package/Types/Metrics/MetricViewData.ts +8 -0
  170. package/Types/Monitor/MonitorMetricType.ts +8 -0
  171. package/Types/Monitor/MonitorStep.ts +9 -0
  172. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  173. package/Types/Monitor/MonitorType.ts +2 -1
  174. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  175. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  176. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  177. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  178. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  179. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  180. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  181. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  182. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  183. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  184. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  185. package/Types/Monitor/SnmpMonitor/SnmpVersion.ts +40 -0
  186. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  187. package/Types/Syslog/SyslogMessage.ts +18 -0
  188. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  189. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  190. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  191. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  192. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  193. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +336 -3
  194. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +118 -1
  195. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +336 -3
  196. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  197. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  198. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  199. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  200. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  201. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  202. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  203. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  204. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  205. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  206. package/UI/Components/Forms/BasicForm.tsx +26 -8
  207. package/UI/Components/Icon/Icon.tsx +33 -13
  208. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  209. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  210. package/UI/Components/Page/ModelPage.tsx +6 -1
  211. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  212. package/UI/Styles/Theme.css +1324 -0
  213. package/UI/Utils/AIChatExport/ChatWidgetData.ts +316 -0
  214. package/UI/Utils/AIChatExport/ChatWidgetMarkdown.ts +349 -0
  215. package/UI/Utils/AIChatExport/ConversationMarkdown.ts +177 -0
  216. package/UI/Utils/AIChatExport/MarkdownBlocks.ts +327 -0
  217. package/UI/Utils/AIChatExport/MarkdownSafety.ts +215 -0
  218. package/UI/Utils/DownloadFile.ts +54 -0
  219. package/UI/Utils/User.ts +41 -2
  220. package/Utils/Analytics.ts +8 -6
  221. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  222. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  223. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  224. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  225. package/Utils/ValueFormatter.ts +22 -1
  226. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  227. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  228. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  229. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  230. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  231. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  232. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  233. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  234. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  235. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  236. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +15 -7
  237. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
  238. package/build/dist/Models/DatabaseModels/AIRun.js +38 -0
  239. package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
  240. package/build/dist/Models/DatabaseModels/AIRunEvent.js +31 -0
  241. package/build/dist/Models/DatabaseModels/AIRunEvent.js.map +1 -1
  242. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  243. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  244. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  245. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  246. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  247. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  248. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  249. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  250. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  251. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  252. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  253. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  254. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  255. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  256. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +341 -0
  257. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  258. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  259. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  260. package/build/dist/Models/DatabaseModels/Project.js +65 -0
  261. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  262. package/build/dist/Models/DatabaseModels/StatusPage.js +43 -0
  263. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  264. package/build/dist/Models/DatabaseModels/User.js +38 -0
  265. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  266. package/build/dist/Server/API/AIAgentTaskAPI.js +37 -11
  267. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -1
  268. package/build/dist/Server/API/AIAgentTaskLogAPI.js +32 -7
  269. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -1
  270. package/build/dist/Server/API/AIChatAPI.js +9 -0
  271. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  272. package/build/dist/Server/API/AIReadinessAPI.js +57 -0
  273. package/build/dist/Server/API/AIReadinessAPI.js.map +1 -0
  274. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  275. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  276. package/build/dist/Server/API/CodeFixRunAPI.js +142 -0
  277. package/build/dist/Server/API/CodeFixRunAPI.js.map +1 -1
  278. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  279. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  280. package/build/dist/Server/API/TelemetryExceptionAPI.js +4 -0
  281. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  282. package/build/dist/Server/EnvironmentConfig.js +51 -0
  283. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  284. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js +80 -0
  285. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784124919694-AddAITaskNumberAndRunTranscript.js.map +1 -0
  286. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js +37 -0
  287. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784135099754-AllowNullAiAgentOnPullRequest.js.map +1 -0
  288. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js +23 -0
  289. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784137457184-AddEnableMcpServerToStatusPage.js.map +1 -0
  290. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  291. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  292. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  293. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  294. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js +22 -0
  295. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784200000000-AddSnmpV3ColumnsToNetworkDeviceDiscoveryScan.js.map +1 -0
  296. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  297. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  298. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  299. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  300. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  301. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  302. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  303. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  304. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +20 -0
  305. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  306. package/build/dist/Server/Services/AIRunEventService.js +8 -0
  307. package/build/dist/Server/Services/AIRunEventService.js.map +1 -1
  308. package/build/dist/Server/Services/AIRunService.js +29 -0
  309. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  310. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  311. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  312. package/build/dist/Server/Services/IncidentService.js +12 -0
  313. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  314. package/build/dist/Server/Services/Index.js +10 -0
  315. package/build/dist/Server/Services/Index.js.map +1 -1
  316. package/build/dist/Server/Services/LlmProviderService.js +2 -0
  317. package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
  318. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  319. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  320. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  321. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  322. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  323. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  324. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  325. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  326. package/build/dist/Server/Services/MetricService.js +761 -125
  327. package/build/dist/Server/Services/MetricService.js.map +1 -1
  328. package/build/dist/Server/Services/MonitorService.js +18 -5
  329. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  330. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  331. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  332. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  333. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  334. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  335. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  336. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  337. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  338. package/build/dist/Server/Services/ProjectService.js +146 -6
  339. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  340. package/build/dist/Server/Services/SpanService.js +8 -6
  341. package/build/dist/Server/Services/SpanService.js.map +1 -1
  342. package/build/dist/Server/Services/StatusPageService.js +91 -0
  343. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  344. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  345. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  346. package/build/dist/Server/Services/TelemetryExceptionService.js +14 -61
  347. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  348. package/build/dist/Server/Services/UserService.js +52 -0
  349. package/build/dist/Server/Services/UserService.js.map +1 -1
  350. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  351. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  352. package/build/dist/Server/Types/Markdown.js +8 -8
  353. package/build/dist/Server/Types/Markdown.js.map +1 -1
  354. package/build/dist/Server/Types/MarkdownSlugify.js +47 -0
  355. package/build/dist/Server/Types/MarkdownSlugify.js.map +1 -0
  356. package/build/dist/Server/Utils/AI/AIRunTranscript.js +180 -0
  357. package/build/dist/Server/Utils/AI/AIRunTranscript.js.map +1 -0
  358. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +1 -0
  359. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  360. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +103 -5
  361. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js.map +1 -1
  362. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +55 -0
  363. package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
  364. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +211 -0
  365. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -0
  366. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
  367. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js +654 -0
  368. package/build/dist/Server/Utils/AI/Toolbox/CodeTools.js.map +1 -0
  369. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +389 -0
  370. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -0
  371. package/build/dist/Server/Utils/AI/Toolbox/Index.js +19 -0
  372. package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
  373. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js +239 -0
  374. package/build/dist/Server/Utils/AI/Toolbox/ScheduledMaintenanceTools.js.map +1 -0
  375. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js +19 -1
  376. package/build/dist/Server/Utils/AnalyticsDatabase/ClickhouseCapacity.js.map +1 -1
  377. package/build/dist/Server/Utils/Attribution.js +74 -0
  378. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  379. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +439 -0
  380. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  381. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js +1 -1
  382. package/build/dist/Server/Utils/CodeRepository/StackTraceRepoResolver.js.map +1 -1
  383. package/build/dist/Server/Utils/LLM/LLMService.js +275 -19
  384. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  385. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  386. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  387. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  388. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  389. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  390. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  391. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  392. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  393. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  394. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  395. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  396. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  397. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  398. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  399. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  400. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  401. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  402. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  403. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  404. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  405. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  406. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  407. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  408. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  409. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +17 -11
  410. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  411. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  412. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  413. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  414. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  415. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  416. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  417. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  418. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  419. package/build/dist/Types/AI/AIAgentTaskStatus.js +12 -0
  420. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -1
  421. package/build/dist/Types/AI/AIChatPageContext.js +101 -0
  422. package/build/dist/Types/AI/AIChatPageContext.js.map +1 -0
  423. package/build/dist/Types/AI/AIChatTypes.js +2 -0
  424. package/build/dist/Types/AI/AIChatTypes.js.map +1 -1
  425. package/build/dist/Types/AI/AIFixReadiness.js +9 -0
  426. package/build/dist/Types/AI/AIFixReadiness.js.map +1 -0
  427. package/build/dist/Types/AI/AIRunStatus.js +11 -0
  428. package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
  429. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  430. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  431. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  432. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  433. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  434. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  435. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  436. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  437. package/build/dist/Types/Log/LogSeverity.js +56 -0
  438. package/build/dist/Types/Log/LogSeverity.js.map +1 -1
  439. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  440. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  441. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  442. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  443. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  444. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  445. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  446. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  447. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  448. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  449. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  450. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  451. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  452. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  453. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  454. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  455. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  456. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  457. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  458. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  459. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  460. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  461. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  462. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  463. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js +38 -0
  464. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVersion.js.map +1 -1
  465. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  466. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  467. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  468. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  469. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  470. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  471. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  472. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  473. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  474. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  475. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  476. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  477. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  478. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  479. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +217 -8
  480. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  481. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +55 -4
  482. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  483. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +217 -8
  484. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  485. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  486. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  487. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  488. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  489. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  490. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  491. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  492. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  493. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  494. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  495. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  496. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  497. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  498. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  499. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  500. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  501. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  502. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  503. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  504. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  505. package/build/dist/UI/Components/Forms/BasicForm.js +24 -6
  506. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  507. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  508. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  509. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  510. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  511. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  512. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  513. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  514. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  515. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  516. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js +217 -0
  517. package/build/dist/UI/Utils/AIChatExport/ChatWidgetData.js.map +1 -0
  518. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js +234 -0
  519. package/build/dist/UI/Utils/AIChatExport/ChatWidgetMarkdown.js.map +1 -0
  520. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js +111 -0
  521. package/build/dist/UI/Utils/AIChatExport/ConversationMarkdown.js.map +1 -0
  522. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js +233 -0
  523. package/build/dist/UI/Utils/AIChatExport/MarkdownBlocks.js.map +1 -0
  524. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js +134 -0
  525. package/build/dist/UI/Utils/AIChatExport/MarkdownSafety.js.map +1 -0
  526. package/build/dist/UI/Utils/DownloadFile.js +41 -0
  527. package/build/dist/UI/Utils/DownloadFile.js.map +1 -0
  528. package/build/dist/UI/Utils/User.js +35 -2
  529. package/build/dist/UI/Utils/User.js.map +1 -1
  530. package/build/dist/Utils/Analytics.js +8 -5
  531. package/build/dist/Utils/Analytics.js.map +1 -1
  532. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  533. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  534. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  535. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  536. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  537. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  538. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  539. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  540. package/build/dist/Utils/ValueFormatter.js +20 -1
  541. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  542. package/package.json +6 -2
@@ -26,6 +26,20 @@ const buildQueryConfig: BuildQueryConfigFunction = (
26
26
  };
27
27
  };
28
28
 
29
+ type BuildGroupedQueryConfigFunction = (
30
+ variable: string,
31
+ groupByAttributeKeys: Array<string>,
32
+ ) => MetricQueryConfigData;
33
+
34
+ const buildGroupedQueryConfig: BuildGroupedQueryConfigFunction = (
35
+ variable: string,
36
+ groupByAttributeKeys: Array<string>,
37
+ ): MetricQueryConfigData => {
38
+ const config: MetricQueryConfigData = buildQueryConfig(variable);
39
+ config.metricQueryData.groupByAttributeKeys = groupByAttributeKeys;
40
+ return config;
41
+ };
42
+
29
43
  type BuildResultFunction = (
30
44
  points: Array<{ timestamp: string; value: number }>,
31
45
  ) => AggregatedResult;
@@ -43,6 +57,38 @@ const buildResult: BuildResultFunction = (
43
57
  };
44
58
  };
45
59
 
60
+ type BuildGroupedResultFunction = (
61
+ points: Array<{
62
+ timestamp: string;
63
+ value: number;
64
+ attributes: Record<string, string>;
65
+ }>,
66
+ ) => AggregatedResult;
67
+
68
+ const buildGroupedResult: BuildGroupedResultFunction = (
69
+ points: Array<{
70
+ timestamp: string;
71
+ value: number;
72
+ attributes: Record<string, string>;
73
+ }>,
74
+ ): AggregatedResult => {
75
+ return {
76
+ data: points.map(
77
+ (point: {
78
+ timestamp: string;
79
+ value: number;
80
+ attributes: Record<string, string>;
81
+ }) => {
82
+ return {
83
+ timestamp: new Date(point.timestamp),
84
+ value: point.value,
85
+ attributes: point.attributes,
86
+ };
87
+ },
88
+ ),
89
+ };
90
+ };
91
+
46
92
  describe("MetricFormulaEvaluator", () => {
47
93
  describe("evaluateFormula", () => {
48
94
  test("adds two series point-by-point", () => {
@@ -230,6 +276,402 @@ describe("MetricFormulaEvaluator", () => {
230
276
  });
231
277
  }).toThrow(/unknown variable/i);
232
278
  });
279
+
280
+ test("throws a structural error for malformed formulas like a**b", () => {
281
+ expect(() => {
282
+ MetricFormulaEvaluator.evaluateFormula({
283
+ formula: "a ** b",
284
+ queryConfigs: [buildQueryConfig("a"), buildQueryConfig("b")],
285
+ formulaConfigs: [],
286
+ results: [
287
+ buildResult([{ timestamp: "2024-01-01T00:00:00.000Z", value: 2 }]),
288
+ buildResult([{ timestamp: "2024-01-01T00:00:00.000Z", value: 3 }]),
289
+ ],
290
+ });
291
+ }).toThrow(/missing an operand/i);
292
+ });
293
+ });
294
+
295
+ describe("group-aware evaluation", () => {
296
+ const timestamps: Array<string> = [
297
+ "2024-01-01T00:00:00.000Z",
298
+ "2024-01-01T00:01:00.000Z",
299
+ ];
300
+
301
+ test("evaluates grouped formulas once per group and stamps group attributes", () => {
302
+ const queryConfigs: Array<MetricQueryConfigData> = [
303
+ buildGroupedQueryConfig("a", ["host.name"]),
304
+ buildGroupedQueryConfig("b", ["host.name"]),
305
+ ];
306
+
307
+ const results: Array<AggregatedResult> = [
308
+ buildGroupedResult([
309
+ {
310
+ timestamp: timestamps[0]!,
311
+ value: 10,
312
+ attributes: { "host.name": "web-1" },
313
+ },
314
+ {
315
+ timestamp: timestamps[0]!,
316
+ value: 40,
317
+ attributes: { "host.name": "web-2" },
318
+ },
319
+ {
320
+ timestamp: timestamps[1]!,
321
+ value: 20,
322
+ attributes: { "host.name": "web-1" },
323
+ },
324
+ {
325
+ timestamp: timestamps[1]!,
326
+ value: 80,
327
+ attributes: { "host.name": "web-2" },
328
+ },
329
+ ]),
330
+ buildGroupedResult([
331
+ {
332
+ timestamp: timestamps[0]!,
333
+ value: 2,
334
+ attributes: { "host.name": "web-1" },
335
+ },
336
+ {
337
+ timestamp: timestamps[0]!,
338
+ value: 4,
339
+ attributes: { "host.name": "web-2" },
340
+ },
341
+ {
342
+ timestamp: timestamps[1]!,
343
+ value: 2,
344
+ attributes: { "host.name": "web-1" },
345
+ },
346
+ {
347
+ timestamp: timestamps[1]!,
348
+ value: 4,
349
+ attributes: { "host.name": "web-2" },
350
+ },
351
+ ]),
352
+ ];
353
+
354
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
355
+ formula: "a / b",
356
+ queryConfigs,
357
+ formulaConfigs: [],
358
+ results,
359
+ });
360
+
361
+ // Groups are ordered by canonical label key: web-1 first, then web-2.
362
+ expect(output.data).toEqual([
363
+ {
364
+ timestamp: new Date(timestamps[0]!),
365
+ value: 5,
366
+ attributes: { "host.name": "web-1" },
367
+ },
368
+ {
369
+ timestamp: new Date(timestamps[1]!),
370
+ value: 10,
371
+ attributes: { "host.name": "web-1" },
372
+ },
373
+ {
374
+ timestamp: new Date(timestamps[0]!),
375
+ value: 10,
376
+ attributes: { "host.name": "web-2" },
377
+ },
378
+ {
379
+ timestamp: new Date(timestamps[1]!),
380
+ value: 20,
381
+ attributes: { "host.name": "web-2" },
382
+ },
383
+ ]);
384
+ });
385
+
386
+ test("broadcasts an ungrouped variable across groups", () => {
387
+ const queryConfigs: Array<MetricQueryConfigData> = [
388
+ buildGroupedQueryConfig("a", ["host.name"]),
389
+ buildQueryConfig("b"),
390
+ ];
391
+
392
+ const results: Array<AggregatedResult> = [
393
+ buildGroupedResult([
394
+ {
395
+ timestamp: timestamps[0]!,
396
+ value: 10,
397
+ attributes: { "host.name": "web-1" },
398
+ },
399
+ {
400
+ timestamp: timestamps[0]!,
401
+ value: 30,
402
+ attributes: { "host.name": "web-2" },
403
+ },
404
+ ]),
405
+ buildResult([{ timestamp: timestamps[0]!, value: 2 }]),
406
+ ];
407
+
408
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
409
+ formula: "a / b",
410
+ queryConfigs,
411
+ formulaConfigs: [],
412
+ results,
413
+ });
414
+
415
+ expect(output.data).toEqual([
416
+ {
417
+ timestamp: new Date(timestamps[0]!),
418
+ value: 5,
419
+ attributes: { "host.name": "web-1" },
420
+ },
421
+ {
422
+ timestamp: new Date(timestamps[0]!),
423
+ value: 15,
424
+ attributes: { "host.name": "web-2" },
425
+ },
426
+ ]);
427
+ });
428
+
429
+ test("throws a structural error when grouped variables share no groups", () => {
430
+ const queryConfigs: Array<MetricQueryConfigData> = [
431
+ buildGroupedQueryConfig("a", ["host.name"]),
432
+ buildGroupedQueryConfig("b", ["region"]),
433
+ ];
434
+
435
+ const results: Array<AggregatedResult> = [
436
+ buildGroupedResult([
437
+ {
438
+ timestamp: timestamps[0]!,
439
+ value: 1,
440
+ attributes: { "host.name": "web-1" },
441
+ },
442
+ {
443
+ timestamp: timestamps[0]!,
444
+ value: 2,
445
+ attributes: { "host.name": "web-2" },
446
+ },
447
+ ]),
448
+ buildGroupedResult([
449
+ {
450
+ timestamp: timestamps[0]!,
451
+ value: 3,
452
+ attributes: { region: "us-east" },
453
+ },
454
+ {
455
+ timestamp: timestamps[0]!,
456
+ value: 4,
457
+ attributes: { region: "eu-west" },
458
+ },
459
+ ]),
460
+ ];
461
+
462
+ expect(() => {
463
+ MetricFormulaEvaluator.evaluateFormula({
464
+ formula: "a + b",
465
+ queryConfigs,
466
+ formulaConfigs: [],
467
+ results,
468
+ });
469
+ }).toThrow(/no series groups in common/i);
470
+ });
471
+
472
+ test("joins a grouped variable that collapsed to a single series by group key (no cross-group broadcast)", () => {
473
+ /*
474
+ * Regression: $a and $b are both grouped by host.name, but in the
475
+ * charted window $b only returned rows for web-1 (web-2's
476
+ * denominator metric is missing). $b must NOT be treated as
477
+ * ungrouped-and-broadcast — that would compute a(web-2)/b(web-1)
478
+ * and stamp it as the web-2 series. Per the documented "groups
479
+ * present in ALL grouped variables" semantics, web-2 is dropped.
480
+ */
481
+ const queryConfigs: Array<MetricQueryConfigData> = [
482
+ buildGroupedQueryConfig("a", ["host.name"]),
483
+ buildGroupedQueryConfig("b", ["host.name"]),
484
+ ];
485
+
486
+ const results: Array<AggregatedResult> = [
487
+ buildGroupedResult([
488
+ {
489
+ timestamp: timestamps[0]!,
490
+ value: 10,
491
+ attributes: { "host.name": "web-1" },
492
+ },
493
+ {
494
+ timestamp: timestamps[0]!,
495
+ value: 40,
496
+ attributes: { "host.name": "web-2" },
497
+ },
498
+ ]),
499
+ buildGroupedResult([
500
+ {
501
+ timestamp: timestamps[0]!,
502
+ value: 2,
503
+ attributes: { "host.name": "web-1" },
504
+ },
505
+ ]),
506
+ ];
507
+
508
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
509
+ formula: "a / b",
510
+ queryConfigs,
511
+ formulaConfigs: [],
512
+ results,
513
+ });
514
+
515
+ // Only web-1 (the common group) is emitted — and with web-1 math.
516
+ expect(output.data).toEqual([
517
+ {
518
+ timestamp: new Date(timestamps[0]!),
519
+ value: 5,
520
+ attributes: { "host.name": "web-1" },
521
+ },
522
+ ]);
523
+ });
524
+
525
+ test("still broadcasts a config-grouped variable whose result is EMPTY (degrades to gaps, not a structural error)", () => {
526
+ const queryConfigs: Array<MetricQueryConfigData> = [
527
+ buildGroupedQueryConfig("a", ["host.name"]),
528
+ buildGroupedQueryConfig("b", ["host.name"]),
529
+ ];
530
+
531
+ const results: Array<AggregatedResult> = [
532
+ buildGroupedResult([
533
+ {
534
+ timestamp: timestamps[0]!,
535
+ value: 10,
536
+ attributes: { "host.name": "web-1" },
537
+ },
538
+ {
539
+ timestamp: timestamps[0]!,
540
+ value: 40,
541
+ attributes: { "host.name": "web-2" },
542
+ },
543
+ ]),
544
+ buildGroupedResult([]),
545
+ ];
546
+
547
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
548
+ formula: "a / b",
549
+ queryConfigs,
550
+ formulaConfigs: [],
551
+ results,
552
+ });
553
+
554
+ // Every point misses $b, so every point is skipped silently.
555
+ expect(output.data).toEqual([]);
556
+ });
557
+
558
+ test("single-series inputs stay byte-identical to ungrouped behavior", () => {
559
+ /*
560
+ * The metric-monitor worker pre-buckets per series fingerprint and
561
+ * calls the evaluator with one series per variable — even though
562
+ * the query configs still carry groupByAttributeKeys and the rows
563
+ * still carry full attributes. Output must be exactly the legacy
564
+ * shape: unstamped {timestamp, value} rows.
565
+ */
566
+ const queryConfigs: Array<MetricQueryConfigData> = [
567
+ buildGroupedQueryConfig("a", ["host.name"]),
568
+ buildGroupedQueryConfig("b", ["host.name"]),
569
+ ];
570
+
571
+ const results: Array<AggregatedResult> = [
572
+ buildGroupedResult([
573
+ {
574
+ timestamp: timestamps[0]!,
575
+ value: 10,
576
+ attributes: { "host.name": "web-1", "process.pid": "42" },
577
+ },
578
+ ]),
579
+ buildGroupedResult([
580
+ {
581
+ timestamp: timestamps[0]!,
582
+ value: 4,
583
+ attributes: { "host.name": "web-1", "process.pid": "43" },
584
+ },
585
+ ]),
586
+ ];
587
+
588
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
589
+ formula: "a - b",
590
+ queryConfigs,
591
+ formulaConfigs: [],
592
+ results,
593
+ });
594
+
595
+ expect(output.data).toEqual([
596
+ { timestamp: new Date(timestamps[0]!), value: 6 },
597
+ ]);
598
+ expect(Object.keys(output.data[0]!)).toEqual(["timestamp", "value"]);
599
+ });
600
+
601
+ test("skips per-point gaps within a group silently", () => {
602
+ const queryConfigs: Array<MetricQueryConfigData> = [
603
+ buildGroupedQueryConfig("a", ["host.name"]),
604
+ buildGroupedQueryConfig("b", ["host.name"]),
605
+ ];
606
+
607
+ const results: Array<AggregatedResult> = [
608
+ buildGroupedResult([
609
+ {
610
+ timestamp: timestamps[0]!,
611
+ value: 10,
612
+ attributes: { "host.name": "web-1" },
613
+ },
614
+ {
615
+ timestamp: timestamps[1]!,
616
+ value: 20,
617
+ attributes: { "host.name": "web-1" },
618
+ },
619
+ {
620
+ timestamp: timestamps[0]!,
621
+ value: 30,
622
+ attributes: { "host.name": "web-2" },
623
+ },
624
+ {
625
+ timestamp: timestamps[1]!,
626
+ value: 40,
627
+ attributes: { "host.name": "web-2" },
628
+ },
629
+ ]),
630
+ buildGroupedResult([
631
+ // web-1 is missing the first timestamp for "b".
632
+ {
633
+ timestamp: timestamps[1]!,
634
+ value: 2,
635
+ attributes: { "host.name": "web-1" },
636
+ },
637
+ {
638
+ timestamp: timestamps[0]!,
639
+ value: 3,
640
+ attributes: { "host.name": "web-2" },
641
+ },
642
+ {
643
+ timestamp: timestamps[1]!,
644
+ value: 4,
645
+ attributes: { "host.name": "web-2" },
646
+ },
647
+ ]),
648
+ ];
649
+
650
+ const output: AggregatedResult = MetricFormulaEvaluator.evaluateFormula({
651
+ formula: "a / b",
652
+ queryConfigs,
653
+ formulaConfigs: [],
654
+ results,
655
+ });
656
+
657
+ expect(output.data).toEqual([
658
+ {
659
+ timestamp: new Date(timestamps[1]!),
660
+ value: 10,
661
+ attributes: { "host.name": "web-1" },
662
+ },
663
+ {
664
+ timestamp: new Date(timestamps[0]!),
665
+ value: 10,
666
+ attributes: { "host.name": "web-2" },
667
+ },
668
+ {
669
+ timestamp: new Date(timestamps[1]!),
670
+ value: 10,
671
+ attributes: { "host.name": "web-2" },
672
+ },
673
+ ]);
674
+ });
233
675
  });
234
676
 
235
677
  describe("validateFormula", () => {
@@ -265,5 +707,37 @@ describe("MetricFormulaEvaluator", () => {
265
707
  });
266
708
  expect(message).toMatch(/required/i);
267
709
  });
710
+
711
+ test("rejects doubled binary operators like a**b", () => {
712
+ const message: string | null = MetricFormulaEvaluator.validateFormula({
713
+ formula: "a ** b",
714
+ availableVariables: ["a", "b"],
715
+ });
716
+ expect(message).toMatch(/missing an operand/i);
717
+ });
718
+
719
+ test("rejects trailing operators like a+", () => {
720
+ const message: string | null = MetricFormulaEvaluator.validateFormula({
721
+ formula: "a +",
722
+ availableVariables: ["a"],
723
+ });
724
+ expect(message).toMatch(/missing an operand/i);
725
+ });
726
+
727
+ test("rejects empty parentheses", () => {
728
+ const message: string | null = MetricFormulaEvaluator.validateFormula({
729
+ formula: "()",
730
+ availableVariables: ["a"],
731
+ });
732
+ expect(message).toMatch(/empty/i);
733
+ });
734
+
735
+ test("rejects adjacent values with no operator", () => {
736
+ const message: string | null = MetricFormulaEvaluator.validateFormula({
737
+ formula: "a b",
738
+ availableVariables: ["a", "b"],
739
+ });
740
+ expect(message).toMatch(/single value/i);
741
+ });
268
742
  });
269
743
  });
@@ -234,13 +234,61 @@ describe("HeartbeatAvailabilityUtil.buildAvailabilitySeries", () => {
234
234
  expect(downPoints(result).length).toBeGreaterThanOrEqual(2);
235
235
  });
236
236
 
237
- test("hour buckets are used for windows over 3 hours", () => {
237
+ test("5-minute buckets are used for windows over 3 hours", () => {
238
+ const windowEnd: Date = NOW;
239
+ const windowStart: Date = new Date(NOW.getTime() - 6 * 60 * MINUTE);
240
+ const bucketMs: number = 5 * MINUTE;
241
+ const base: number =
242
+ Math.floor(windowStart.getTime() / bucketMs) * bucketMs;
243
+ const rows: Array<AggregatedModel> = Array.from(
244
+ { length: 74 },
245
+ (_: unknown, i: number): AggregatedModel => {
246
+ return row(new Date(base + i * bucketMs));
247
+ },
248
+ );
249
+ const result: HeartbeatAvailabilityResult = build(
250
+ rows,
251
+ windowStart,
252
+ windowEnd,
253
+ NOW,
254
+ );
255
+ expect(result.uptimePercent).toBe(100);
256
+ // ~72 five-minute buckets, not ~360 minute buckets.
257
+ expect(result.points.length).toBeLessThanOrEqual(74);
258
+ expect(result.points.length).toBeGreaterThan(60);
259
+ });
260
+
261
+ test("15-minute buckets are used for a 24-hour window", () => {
238
262
  const windowEnd: Date = NOW;
239
263
  const windowStart: Date = new Date(NOW.getTime() - 24 * 60 * MINUTE);
264
+ const bucketMs: number = 15 * MINUTE;
265
+ const base: number =
266
+ Math.floor(windowStart.getTime() / bucketMs) * bucketMs;
267
+ const rows: Array<AggregatedModel> = Array.from(
268
+ { length: 98 },
269
+ (_: unknown, i: number): AggregatedModel => {
270
+ return row(new Date(base + i * bucketMs));
271
+ },
272
+ );
273
+ const result: HeartbeatAvailabilityResult = build(
274
+ rows,
275
+ windowStart,
276
+ windowEnd,
277
+ NOW,
278
+ );
279
+ expect(result.uptimePercent).toBe(100);
280
+ // ~96 fifteen-minute buckets, not ~1440 minute buckets.
281
+ expect(result.points.length).toBeLessThanOrEqual(98);
282
+ expect(result.points.length).toBeGreaterThan(90);
283
+ });
284
+
285
+ test("hour buckets are used for windows over 3 days", () => {
286
+ const windowEnd: Date = NOW;
287
+ const windowStart: Date = new Date(NOW.getTime() - 5 * 24 * 60 * MINUTE);
240
288
  const hourMs: number = 60 * MINUTE;
241
289
  const base: number = Math.floor(windowStart.getTime() / hourMs) * hourMs;
242
290
  const rows: Array<AggregatedModel> = Array.from(
243
- { length: 25 },
291
+ { length: 122 },
244
292
  (_: unknown, i: number): AggregatedModel => {
245
293
  return row(new Date(base + i * hourMs));
246
294
  },
@@ -252,8 +300,8 @@ describe("HeartbeatAvailabilityUtil.buildAvailabilitySeries", () => {
252
300
  NOW,
253
301
  );
254
302
  expect(result.uptimePercent).toBe(100);
255
- // ~24 hour buckets, not ~1440 minute buckets.
256
- expect(result.points.length).toBeLessThanOrEqual(26);
303
+ // ~120 hour buckets, not ~7200 minute buckets.
304
+ expect(result.points.length).toBeLessThanOrEqual(122);
257
305
  });
258
306
 
259
307
  test("returns null uptime when nothing is evaluable", () => {
@@ -2,6 +2,12 @@ enum AIAgentTaskStatus {
2
2
  Scheduled = "Scheduled",
3
3
  InProgress = "InProgress",
4
4
  Completed = "Completed",
5
+ /*
6
+ * The agent finished cleanly but had no fix to propose, so it opened no
7
+ * pull request. Reported instead of Error so a negative result is not
8
+ * counted as a failure — see AIRunStatus.NoFixFound, which this maps to.
9
+ */
10
+ NoFixFound = "NoFixFound",
5
11
  Error = "Error",
6
12
  }
7
13
 
@@ -32,6 +38,12 @@ export class AIAgentTaskStatusHelper {
32
38
  title: "Completed",
33
39
  description: "Task has been completed successfully.",
34
40
  },
41
+ {
42
+ status: AIAgentTaskStatus.NoFixFound,
43
+ title: "No Fix Found",
44
+ description:
45
+ "Task ran successfully but AI did not find a fix to propose.",
46
+ },
35
47
  {
36
48
  status: AIAgentTaskStatus.Error,
37
49
  title: "Error",
@@ -59,6 +71,7 @@ export class AIAgentTaskStatusHelper {
59
71
  public static isTerminalStatus(status: AIAgentTaskStatus): boolean {
60
72
  return (
61
73
  status === AIAgentTaskStatus.Completed ||
74
+ status === AIAgentTaskStatus.NoFixFound ||
62
75
  status === AIAgentTaskStatus.Error
63
76
  );
64
77
  }