@oneuptime/common 13.0.0 → 13.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (734) hide show
  1. package/Models/DatabaseModels/Alert.ts +55 -0
  2. package/Models/DatabaseModels/CloudResource.ts +45 -7
  3. package/Models/DatabaseModels/CodeRepository.ts +85 -0
  4. package/Models/DatabaseModels/GoogleSecOpsConnection.ts +57 -7
  5. package/Models/DatabaseModels/GoogleSecOpsConnectionRun.ts +263 -0
  6. package/Models/DatabaseModels/Incident.ts +55 -0
  7. package/Models/DatabaseModels/Index.ts +16 -0
  8. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
  9. package/Models/DatabaseModels/User.ts +51 -2
  10. package/Models/DatabaseModels/UserNotificationEmailRollupItem.ts +43 -2
  11. package/Models/DatabaseModels/UserWebAuthn.ts +17 -0
  12. package/Models/DatabaseModels/VMwareResource.ts +1149 -0
  13. package/Models/DatabaseModels/VMwareVCenter.ts +1122 -0
  14. package/Models/DatabaseModels/VMwareVCenterFeed.ts +625 -0
  15. package/Models/DatabaseModels/VMwareVCenterLabelRule.ts +514 -0
  16. package/Models/DatabaseModels/VMwareVCenterOwnerRule.ts +596 -0
  17. package/Models/DatabaseModels/VMwareVCenterOwnerTeam.ts +485 -0
  18. package/Models/DatabaseModels/VMwareVCenterOwnerUser.ts +484 -0
  19. package/Models/DatabaseModels/WorkflowVariable.ts +22 -1
  20. package/Server/API/AIAgentDataAPI.ts +79 -4
  21. package/Server/API/AIAgentGitHubAPI.ts +523 -0
  22. package/Server/API/AIChatAPI.ts +20 -1
  23. package/Server/API/BillingAPI.ts +33 -0
  24. package/Server/API/DashboardAPI.ts +10 -0
  25. package/Server/API/GitHubAPI.ts +47 -5
  26. package/Server/API/GoogleSecOpsConnectionAPI.ts +79 -0
  27. package/Server/API/UserWebAuthnAPI.ts +21 -1
  28. package/Server/API/VMwareResourceAPI.ts +143 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.ts +68 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.ts +26 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.ts +636 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.ts +47 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.ts +17 -0
  34. package/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.ts +83 -0
  35. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  36. package/Server/Middleware/IdentityRateLimit.ts +101 -0
  37. package/Server/Services/AIRunService.ts +13 -0
  38. package/Server/Services/BillingPaymentMethodService.ts +99 -28
  39. package/Server/Services/BillingService.ts +287 -20
  40. package/Server/Services/CloudResourceInstanceService.ts +70 -0
  41. package/Server/Services/ExceptionAggregationService.ts +1 -0
  42. package/Server/Services/GoogleSecOpsConnectionRunService.ts +10 -0
  43. package/Server/Services/GoogleSecOpsConnectionService.ts +12 -0
  44. package/Server/Services/Index.ts +16 -0
  45. package/Server/Services/LogAggregationService.ts +1 -0
  46. package/Server/Services/MetricAggregationService.ts +1 -0
  47. package/Server/Services/MobilePasskeyLoginService.ts +216 -0
  48. package/Server/Services/MonitorService.ts +51 -1
  49. package/Server/Services/MonitorTemplateService.ts +91 -29
  50. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +132 -1
  51. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +176 -2
  52. package/Server/Services/OpenTelemetryIngestService.ts +17 -0
  53. package/Server/Services/PayAsYouGoBillingService.ts +446 -0
  54. package/Server/Services/ProjectService.ts +46 -2
  55. package/Server/Services/ServerlessFunctionInstanceService.ts +71 -0
  56. package/Server/Services/TeamMemberService.ts +96 -36
  57. package/Server/Services/TelemetryIngestionKeyService.ts +80 -10
  58. package/Server/Services/TelemetryUsageBillingService.ts +95 -5
  59. package/Server/Services/TraceAggregationService.ts +5 -4
  60. package/Server/Services/UserWebAuthnService.ts +592 -133
  61. package/Server/Services/VMwareResourceService.ts +648 -0
  62. package/Server/Services/VMwareVCenterFeedService.ts +99 -0
  63. package/Server/Services/VMwareVCenterLabelRuleEngineService.ts +240 -0
  64. package/Server/Services/VMwareVCenterLabelRuleService.ts +14 -0
  65. package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +252 -0
  66. package/Server/Services/VMwareVCenterOwnerRuleService.ts +14 -0
  67. package/Server/Services/VMwareVCenterOwnerTeamService.ts +139 -0
  68. package/Server/Services/VMwareVCenterOwnerUserService.ts +133 -0
  69. package/Server/Services/VMwareVCenterService.ts +629 -0
  70. package/Server/Services/WorkflowVariableService.ts +203 -0
  71. package/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.ts +17 -0
  72. package/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.ts +31 -1
  73. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +7 -0
  74. package/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.ts +341 -0
  75. package/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.ts +274 -0
  76. package/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.ts +375 -0
  77. package/Server/Utils/CodeRepository/GitHub/GitHubConversation.ts +846 -0
  78. package/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.ts +360 -0
  79. package/Server/Utils/CodeRepository/GitHub/GitHubRunReply.ts +421 -0
  80. package/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.ts +140 -0
  81. package/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.ts +906 -0
  82. package/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.ts +143 -0
  83. package/Server/Utils/DataSource/EgressGuard.ts +160 -15
  84. package/Server/Utils/Database/TruncateColumnValue.ts +1 -1
  85. package/Server/Utils/EmailRollup/EmailRollupFlushRunner.ts +2 -0
  86. package/Server/Utils/EmailRollup/EmailRollupRenderer.ts +33 -0
  87. package/Server/Utils/EmailRollup/EmailRollupWriter.ts +44 -0
  88. package/Server/Utils/LogRedaction.ts +2 -1
  89. package/Server/Utils/Monitor/MonitorAlert.ts +1 -1
  90. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +302 -3
  91. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +26 -4
  92. package/Server/Utils/Monitor/MonitorResourceContext.ts +5 -3
  93. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +14 -0
  94. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -0
  95. package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
  96. package/Server/Utils/Monitor/SeriesResourceLinker.ts +28 -5
  97. package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +3 -3
  98. package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +14 -9
  99. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.ts +116 -84
  100. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +594 -195
  101. package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.ts +466 -0
  102. package/Server/Utils/Telemetry/EntityRegistry.ts +5 -0
  103. package/Server/Utils/Telemetry/ResourceHeartbeat.ts +2 -1
  104. package/Server/Utils/Telemetry/TelemetryEntity.ts +181 -1
  105. package/Server/Utils/Telemetry/VMwareSnapshotScan.ts +1352 -0
  106. package/Tests/App/Accounts/LoginPasskey.test.tsx +529 -0
  107. package/Tests/App/Accounts/MobilePasskey.test.tsx +620 -0
  108. package/Tests/App/Accounts/PasswordRequirements.test.tsx +254 -0
  109. package/Tests/App/Accounts/RegisterPassword.test.tsx +553 -0
  110. package/Tests/App/Dashboard/AskAiAvailability.test.ts +224 -0
  111. package/Tests/App/Dashboard/AskAiDisabled.test.tsx +432 -0
  112. package/Tests/App/Dashboard/BackupCodes.test.tsx +414 -0
  113. package/Tests/App/Dashboard/BillingPaidUsageFlow.test.tsx +530 -0
  114. package/Tests/App/Dashboard/BillingPaymentMethodForm.test.tsx +195 -0
  115. package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +199 -0
  116. package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +198 -0
  117. package/Tests/App/Dashboard/CloudDocumentationMarkdown.test.ts +215 -0
  118. package/Tests/App/Dashboard/CloudFleetSummary.test.ts +183 -0
  119. package/Tests/App/Dashboard/CloudFleetSummaryComponent.test.tsx +248 -0
  120. package/Tests/App/Dashboard/CloudResourceTelemetryScope.test.ts +215 -0
  121. package/Tests/App/Dashboard/CriteriaFilterDefaults.test.ts +3 -0
  122. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +441 -0
  123. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +458 -0
  124. package/Tests/App/Dashboard/DashboardToolbarPopupLayering.test.tsx +566 -0
  125. package/Tests/App/Dashboard/DiscoveryScanLivePage.test.tsx +376 -0
  126. package/Tests/App/Dashboard/DiscoveryScanLiveUpdates.test.tsx +642 -0
  127. package/Tests/App/Dashboard/DiscoveryScanProgress.test.tsx +267 -0
  128. package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +69 -231
  129. package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +244 -0
  130. package/Tests/App/Dashboard/GoogleSecOpsDiagnostics.test.tsx +724 -0
  131. package/Tests/App/Dashboard/MonitorTemplateSyncFields.test.tsx +539 -0
  132. package/Tests/App/Dashboard/OnCallLayerCardOverrides.test.tsx +24 -7
  133. package/Tests/App/Dashboard/OnCallOverridePresentation.test.ts +496 -0
  134. package/Tests/App/Dashboard/OnCallScheduleOverrideClarity.test.tsx +677 -0
  135. package/Tests/App/Dashboard/OnCallSchedulePreviewOverrides.test.tsx +31 -3
  136. package/Tests/App/Dashboard/PaidUsageConsent.test.tsx +180 -0
  137. package/Tests/App/Dashboard/PasskeySettings.test.tsx +1220 -0
  138. package/Tests/App/Dashboard/PayAsYouGoConsentGate.test.tsx +176 -275
  139. package/Tests/App/Dashboard/PayAsYouGoNotices.test.tsx +380 -233
  140. package/Tests/App/Dashboard/ProductMenuBreadcrumbs.test.tsx +3 -23
  141. package/Tests/App/Dashboard/ResourceFeed.test.tsx +1 -0
  142. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
  143. package/Tests/App/Dashboard/TwoFactorStatus.test.tsx +260 -0
  144. package/Tests/App/Dashboard/VMwareDashboardWidgets.test.ts +573 -0
  145. package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
  146. package/Tests/App/Dashboard/WorkflowVariablesTable.test.tsx +768 -0
  147. package/Tests/App/StatusPage/StatusPageOverviewLiveAndSearch.test.tsx +532 -40
  148. package/Tests/App/StatusPage/StatusPageResourceSearchBox.test.tsx +19 -2
  149. package/Tests/Fixtures/MobilePasskeyUser.json +8 -0
  150. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +25 -6
  151. package/Tests/Models/DatabaseModels/VMwareModels.test.ts +1134 -0
  152. package/Tests/Models/RunnerVersionLabel.test.ts +4 -2
  153. package/Tests/Server/API/AIChatProvidersAIEnabled.test.ts +259 -0
  154. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +31 -2
  155. package/Tests/Server/API/BillingPayAsYouGoStatus.test.ts +116 -0
  156. package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +29 -1
  157. package/Tests/Server/API/EnterpriseLicenseReportUserCount.test.ts +13 -2
  158. package/Tests/Server/API/GitHubWebhookSignature.test.ts +368 -0
  159. package/Tests/Server/API/GoogleSecOpsConnectionAPI.test.ts +248 -0
  160. package/Tests/Server/API/UserWebAuthnAuthenticationOptionsRoute.test.ts +330 -0
  161. package/Tests/Server/API/UserWebAuthnPasskeyAPI.test.ts +172 -0
  162. package/Tests/Server/API/VMwareResourceAPI.test.ts +546 -0
  163. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupMetadataMigration.test.ts +85 -0
  164. package/Tests/Server/Infrastructure/Postgres/UserNotificationEmailRollupTableMigration.test.ts +34 -3
  165. package/Tests/Server/Middleware/PasskeyRateLimit.test.ts +141 -0
  166. package/Tests/Server/Services/AutoImportRuleRearmRecentScans.test.ts +343 -0
  167. package/Tests/Server/Services/AutoImportRuleWriteRearmsScans.test.ts +381 -0
  168. package/Tests/Server/Services/BillingPaymentMethodServiceSync.test.ts +175 -0
  169. package/Tests/Server/Services/BillingService.test.ts +26 -11
  170. package/Tests/Server/Services/BillingServiceMeteredPaymentAuthorization.test.ts +245 -0
  171. package/Tests/Server/Services/BillingServicePaymentMethodReads.test.ts +362 -0
  172. package/Tests/Server/Services/CloudResourceInstanceStalePrune.test.ts +188 -0
  173. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +16 -2
  174. package/Tests/Server/Services/GoogleSecOpsDiagnosticsModel.test.ts +153 -0
  175. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +13 -0
  176. package/Tests/Server/Services/InventoryItemPromotionGate.test.ts +5 -0
  177. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +36 -0
  178. package/Tests/Server/Services/InventoryUpsertTruncationGuard.test.ts +151 -0
  179. package/Tests/Server/Services/MobilePasskeyLoginIntegration.test.ts +231 -0
  180. package/Tests/Server/Services/MobilePasskeyLoginService.test.ts +315 -0
  181. package/Tests/Server/Services/MonitorPayAsYouGoBilling.test.ts +302 -0
  182. package/Tests/Server/Services/MonitorTemplateServiceFieldSync.test.ts +994 -0
  183. package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +22 -0
  184. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
  185. package/Tests/Server/Services/PayAsYouGoBillingService.test.ts +857 -0
  186. package/Tests/Server/Services/PayAsYouGoStripeRateLimitBudget.test.ts +379 -0
  187. package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +99 -1
  188. package/Tests/Server/Services/ProjectServiceSubscriptionSeats.test.ts +134 -0
  189. package/Tests/Server/Services/ResourceFeedServices.test.ts +3 -2
  190. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +32 -6
  191. package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +363 -175
  192. package/Tests/Server/Services/ServerlessFunctionInstanceStalePrune.test.ts +200 -0
  193. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +3 -0
  194. package/Tests/Server/Services/TeamMemberBillingSeatSync.test.ts +762 -0
  195. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +3 -0
  196. package/Tests/Server/Services/TelemetryIngestionKeyPolicyResolution.test.ts +72 -0
  197. package/Tests/Server/Services/TelemetryIngestionKeyValidation.test.ts +17 -4
  198. package/Tests/Server/Services/TelemetryPayAsYouGoBilling.test.ts +355 -0
  199. package/Tests/Server/Services/TraceAnalyticsResourceDisplayNames.test.ts +41 -4
  200. package/Tests/Server/Services/UserNotificationEmailRollupModels.test.ts +37 -0
  201. package/Tests/Server/Services/UserWebAuthnPasskeyIntegration.test.ts +401 -0
  202. package/Tests/Server/Services/UserWebAuthnPasskeyService.test.ts +769 -0
  203. package/Tests/Server/Services/UserWebAuthnUserVerification.test.ts +649 -0
  204. package/Tests/Server/Services/VMwareResourceService.test.ts +945 -0
  205. package/Tests/Server/Services/VMwareVCenterService.test.ts +722 -0
  206. package/Tests/Server/Services/WorkflowVariableRenameUniqueness.test.ts +842 -0
  207. package/Tests/Server/TestingUtils/PasskeyHttpIntegration.ts +102 -0
  208. package/Tests/Server/TestingUtils/SecurityKey.ts +464 -0
  209. package/Tests/Server/TestingUtils/WebAuthnServiceMocks.ts +60 -0
  210. package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +573 -0
  211. package/Tests/Server/Types/Database/Permissions/ProjectCustomerSupportAccessColumn.test.ts +261 -0
  212. package/Tests/Server/Types/Database/Permissions/WorkflowVariableColumnPermission.test.ts +95 -0
  213. package/Tests/Server/Utils/CodeRepository/GitHubAgentTaskTrigger.test.ts +2101 -0
  214. package/Tests/Server/Utils/CodeRepository/GitHubCommandAuthorizer.test.ts +883 -0
  215. package/Tests/Server/Utils/CodeRepository/GitHubCommandParser.test.ts +1474 -0
  216. package/Tests/Server/Utils/CodeRepository/GitHubConversation.test.ts +1526 -0
  217. package/Tests/Server/Utils/CodeRepository/GitHubReplyComposer.test.ts +1389 -0
  218. package/Tests/Server/Utils/CodeRepository/GitHubRunReply.test.ts +1707 -0
  219. package/Tests/Server/Utils/CodeRepository/GitHubWebhookHandler.test.ts +2202 -0
  220. package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +345 -0
  221. package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +896 -0
  222. package/Tests/Server/Utils/EmailRollup/EmailRollupMetadataIntegration.test.ts +246 -0
  223. package/Tests/Server/Utils/EmailRollup/EmailRollupRenderer.test.ts +299 -1
  224. package/Tests/Server/Utils/EmailRollup/EmailRollupTestHarness.ts +6 -0
  225. package/Tests/Server/Utils/EmailRollup/EmailRollupWriter.test.ts +185 -0
  226. package/Tests/Server/Utils/LogRedaction.test.ts +33 -0
  227. package/Tests/Server/Utils/Monitor/CapturedMetricAttributeUtil.test.ts +2 -1
  228. package/Tests/Server/Utils/Monitor/Criteria/TelemetryStepMetricAlias.test.ts +10 -0
  229. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +66 -1
  230. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +362 -0
  231. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
  232. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +60 -1
  233. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +60 -0
  234. package/Tests/Server/Utils/Monitor/MonitorRootCauseTargetResolution.test.ts +423 -0
  235. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +6 -0
  236. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
  237. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
  238. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +46 -2
  239. package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +81 -45
  240. package/Tests/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.test.ts +711 -0
  241. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClickhouseIntegration.test.ts +223 -0
  242. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsClient.test.ts +69 -1
  243. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsDiagnostics.test.ts +838 -0
  244. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsErrorHandling.test.ts +241 -28
  245. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsHttpIntegration.test.ts +651 -0
  246. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +11 -0
  247. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +13 -12
  248. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerHardening.test.ts +112 -127
  249. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsRequestContract.test.ts +12 -18
  250. package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsResponseParsing.test.ts +43 -0
  251. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +580 -0
  252. package/Tests/Server/Utils/Telemetry/VMwareSnapshotScan.test.ts +1748 -0
  253. package/Tests/Types/Cloud/CloudPlatform.test.ts +574 -0
  254. package/Tests/Types/Monitor/MetricAndProfileDefaultCriteria.test.ts +2 -0
  255. package/Tests/Types/Monitor/MonitorCriteriaMetricVariables.test.ts +9 -0
  256. package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +1 -0
  257. package/Tests/Types/Monitor/MonitorStepInfraMonitorUtils.test.ts +53 -8
  258. package/Tests/Types/Monitor/MonitorStepInfrastructureMonitors.test.ts +97 -0
  259. package/Tests/Types/Monitor/MonitorStepMetricViewConfigUtil.test.ts +1 -0
  260. package/Tests/Types/Monitor/MonitorStepTemplateSyncFields.test.ts +107 -0
  261. package/Tests/Types/Monitor/MonitorTemplateSyncField.test.ts +172 -0
  262. package/Tests/Types/Monitor/MonitorType.test.ts +1 -0
  263. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +2 -0
  264. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationAlertDebuggability.test.ts +1 -0
  265. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +9 -0
  266. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
  267. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
  268. package/Tests/Types/Monitor/SeriesContext/SeriesDebugHints.test.ts +131 -0
  269. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +10 -0
  270. package/Tests/Types/Monitor/VMwareAlertTemplates.test.ts +1608 -0
  271. package/Tests/Types/Monitor/VMwareMetricCatalog.test.ts +488 -0
  272. package/Tests/Types/OnCallDutyPolicy/OverrideProvenance.test.ts +295 -0
  273. package/Tests/Types/Runner/RunnerLiveStatus.test.ts +2 -2
  274. package/Tests/Types/SignupPassword.test.ts +205 -0
  275. package/Tests/Types/StatusPage/StatusPageLanguage.test.ts +44 -0
  276. package/Tests/Types/SupportedLanguages.test.ts +119 -0
  277. package/Tests/Types/Telemetry/EntityTypeGroups.test.ts +19 -0
  278. package/Tests/UI/ColorPickerBuild.test.ts +86 -0
  279. package/Tests/UI/Components/Breadcrumbs.test.tsx +32 -0
  280. package/Tests/UI/Components/Forms/ModelFormPreservesUserInput.test.tsx +937 -0
  281. package/Tests/UI/Components/Forms/ModelFormWriteOnlyColumnSelect.test.tsx +230 -0
  282. package/Tests/UI/Components/Forms/ValidationFormSteps.test.ts +3 -4
  283. package/Tests/UI/Components/LabelRuleImportExport.test.tsx +907 -0
  284. package/Tests/UI/Components/ModelTable/ModelTableCreateAfterEdit.test.tsx +514 -0
  285. package/Tests/UI/Components/MonitorGraphs/Uptime.test.tsx +301 -0
  286. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +2 -1
  287. package/Tests/UI/Components/TooltipLazyContent.test.tsx +373 -0
  288. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsMessagingEndpointGuidance.test.tsx +43 -12
  289. package/Tests/UI/ReactDomBuild.test.ts +104 -0
  290. package/Tests/UI/ReactRouterSingletonBuild.test.ts +11 -1
  291. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +148 -0
  292. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +29 -0
  293. package/Tests/UI/Utils/DashboardStackingLayers.test.ts +197 -0
  294. package/Tests/UI/Utils/LabelRuleImportExport.test.ts +546 -0
  295. package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +109 -2
  296. package/Tests/UI/Utils/UseDashboardGridDnd.test.tsx +7 -2
  297. package/Tests/UI/Utils/UserEmailRegistrationStatus.test.tsx +295 -0
  298. package/Tests/UI/Utils/WebAuthn.test.ts +265 -0
  299. package/Tests/Utils/Dashboard/Components/DashboardComponentDefaults.test.ts +5 -0
  300. package/Tests/Utils/Dashboard/Components/DashboardVMwareListComponents.test.ts +548 -0
  301. package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +17 -3
  302. package/Tests/Utils/LabelRuleImportExport.test.ts +583 -0
  303. package/Tests/Utils/Monitor/MonitorSummarySnapshotUtil.test.ts +1 -0
  304. package/Tests/Utils/Monitor/MonitorTemplateSyncUtil.test.ts +590 -0
  305. package/Tests/Utils/RequestFailedDetails.test.ts +325 -0
  306. package/Tests/Utils/Telemetry/CloudInstanceIdentity.test.ts +255 -0
  307. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +167 -0
  308. package/Tests/Utils/WebAuthnTestUtil.ts +79 -0
  309. package/Tests/__mocks__/simplewebauthn.js +33 -4
  310. package/Types/AI/CodeFixTaskContext.ts +122 -0
  311. package/Types/AI/CodeFixTaskType.ts +62 -0
  312. package/Types/Accounts/AccountsLanguage.ts +1 -0
  313. package/Types/AdminDashboard/AdminDashboardLanguage.ts +1 -0
  314. package/Types/Calendar/CalendarEvent.ts +16 -0
  315. package/Types/Cloud/CloudPlatform.ts +372 -0
  316. package/Types/CodeRepository/GitHubCommand.ts +69 -0
  317. package/Types/Dashboard/DashboardComponentType.ts +2 -0
  318. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
  319. package/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.ts +23 -0
  320. package/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.ts +30 -0
  321. package/Types/Dashboard/DashboardLanguage.ts +1 -0
  322. package/Types/Dashboard/DashboardTemplates.ts +314 -0
  323. package/Types/Docs/DocsLanguage.ts +1 -0
  324. package/Types/Exception/EgressGuardException.ts +65 -0
  325. package/Types/Icon/IconProp.ts +1 -0
  326. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +36 -0
  327. package/Types/Monitor/MonitorCriteriaInstance.ts +1 -0
  328. package/Types/Monitor/MonitorStep.ts +78 -17
  329. package/Types/Monitor/MonitorStepMetricViewConfigUtil.ts +1 -0
  330. package/Types/Monitor/MonitorStepVMwareMonitor.ts +127 -0
  331. package/Types/Monitor/MonitorTemplateSyncField.ts +291 -0
  332. package/Types/Monitor/MonitorType.ts +24 -0
  333. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +33 -0
  334. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +2 -0
  335. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +3 -0
  336. package/Types/Monitor/SeriesContext/SeriesDebugHints.ts +158 -0
  337. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +61 -0
  338. package/Types/Monitor/VMwareAlertTemplates.ts +1070 -0
  339. package/Types/Monitor/VMwareMetricCatalog.ts +914 -0
  340. package/Types/OnCallDutyPolicy/ScheduleShiftUtil.ts +29 -0
  341. package/Types/OnCallDutyPolicy/UserOverrideUtil.ts +16 -0
  342. package/Types/Password.ts +84 -5
  343. package/Types/Permission.ts +265 -0
  344. package/Types/Probe/RequestFailedDetails.ts +7 -0
  345. package/Types/Runner/RunnerLiveStatus.ts +1 -1
  346. package/Types/SecurityEvent/GoogleSecOpsDiagnostics.ts +56 -0
  347. package/Types/StatusPage/StatusPageLanguage.ts +1 -0
  348. package/Types/Telemetry/EntityType.ts +21 -0
  349. package/Types/Telemetry/ServiceType.ts +1 -0
  350. package/Typings/Index.d.ts +63 -0
  351. package/UI/Components/Breadcrumbs/Breadcrumbs.tsx +2 -2
  352. package/UI/Components/Calendar/Calendar.css +78 -0
  353. package/UI/Components/Calendar/Calendar.tsx +28 -3
  354. package/UI/Components/Forms/BasicForm.tsx +44 -2
  355. package/UI/Components/Forms/Fields/ColorPicker.tsx +2 -1
  356. package/UI/Components/Forms/Fields/FormField.tsx +16 -3
  357. package/UI/Components/Forms/ModelForm.tsx +159 -5
  358. package/UI/Components/Forms/Types/Field.ts +8 -1
  359. package/UI/Components/Graphs/DayUptimeGraph.tsx +8 -10
  360. package/UI/Components/Icon/Icon.tsx +16 -0
  361. package/UI/Components/Input/Input.tsx +42 -7
  362. package/UI/Components/LabelRule/ImportLabelRulesModal.tsx +441 -0
  363. package/UI/Components/LabelRule/LabelRuleTable.tsx +142 -0
  364. package/UI/Components/ModelTable/BaseModelTable.tsx +22 -5
  365. package/UI/Components/ModelTable/ModelTable.tsx +14 -6
  366. package/UI/Components/MonitorGraphs/Uptime.tsx +17 -27
  367. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +3 -1
  368. package/UI/Components/Tooltip/Tooltip.tsx +52 -6
  369. package/UI/Utils/DashboardStackingLayers.ts +85 -0
  370. package/UI/Utils/LabelRuleImportExport.ts +310 -0
  371. package/UI/Utils/ModelAPI/ModelAPI.ts +4 -3
  372. package/UI/Utils/TelemetryService.ts +4 -3
  373. package/UI/Utils/UseDashboardGridDnd.ts +4 -1
  374. package/UI/Utils/UserEmailRegistrationStatus.ts +33 -5
  375. package/UI/Utils/WebAuthn.ts +220 -0
  376. package/UI/esbuild-config.js +4 -0
  377. package/Utils/API.ts +34 -0
  378. package/Utils/Dashboard/Components/DashboardVMwareHostListComponent.ts +38 -0
  379. package/Utils/Dashboard/Components/DashboardVMwareResourceListShared.ts +70 -0
  380. package/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.ts +76 -0
  381. package/Utils/Dashboard/Components/Index.ts +16 -0
  382. package/Utils/LabelRuleImportExport.ts +496 -0
  383. package/Utils/Monitor/MonitorTemplateSyncUtil.ts +164 -0
  384. package/Utils/NetworkDiscovery/DiscoveryScanStatus.ts +8 -0
  385. package/Utils/Telemetry/CloudInstanceIdentity.ts +94 -0
  386. package/Utils/Telemetry/EntityKey.ts +19 -0
  387. package/Utils/Telemetry/EntityRelationship.ts +19 -0
  388. package/build/dist/Models/DatabaseModels/Alert.js +54 -0
  389. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  390. package/build/dist/Models/DatabaseModels/CloudResource.js +44 -7
  391. package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
  392. package/build/dist/Models/DatabaseModels/CodeRepository.js +87 -0
  393. package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
  394. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +60 -7
  395. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
  396. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js +287 -0
  397. package/build/dist/Models/DatabaseModels/GoogleSecOpsConnectionRun.js.map +1 -0
  398. package/build/dist/Models/DatabaseModels/Incident.js +54 -0
  399. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  400. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  401. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  402. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
  403. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  404. package/build/dist/Models/DatabaseModels/User.js +57 -4
  405. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  406. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js +47 -2
  407. package/build/dist/Models/DatabaseModels/UserNotificationEmailRollupItem.js.map +1 -1
  408. package/build/dist/Models/DatabaseModels/UserWebAuthn.js +18 -0
  409. package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
  410. package/build/dist/Models/DatabaseModels/VMwareResource.js +1201 -0
  411. package/build/dist/Models/DatabaseModels/VMwareResource.js.map +1 -0
  412. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +1149 -0
  413. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -0
  414. package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js +648 -0
  415. package/build/dist/Models/DatabaseModels/VMwareVCenterFeed.js.map +1 -0
  416. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js +522 -0
  417. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js.map +1 -0
  418. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js +603 -0
  419. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js.map +1 -0
  420. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js +503 -0
  421. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerTeam.js.map +1 -0
  422. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js +502 -0
  423. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerUser.js.map +1 -0
  424. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +22 -1
  425. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
  426. package/build/dist/Server/API/AIAgentDataAPI.js +63 -3
  427. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  428. package/build/dist/Server/API/AIAgentGitHubAPI.js +363 -0
  429. package/build/dist/Server/API/AIAgentGitHubAPI.js.map +1 -0
  430. package/build/dist/Server/API/AIChatAPI.js +19 -1
  431. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  432. package/build/dist/Server/API/BillingAPI.js +22 -0
  433. package/build/dist/Server/API/BillingAPI.js.map +1 -1
  434. package/build/dist/Server/API/DashboardAPI.js +10 -0
  435. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  436. package/build/dist/Server/API/GitHubAPI.js +33 -5
  437. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  438. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js +56 -0
  439. package/build/dist/Server/API/GoogleSecOpsConnectionAPI.js.map +1 -0
  440. package/build/dist/Server/API/UserWebAuthnAPI.js +17 -1
  441. package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
  442. package/build/dist/Server/API/VMwareResourceAPI.js +106 -0
  443. package/build/dist/Server/API/VMwareResourceAPI.js.map +1 -0
  444. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js +41 -0
  445. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791800000000-SplitWebAuthnChallengeByPurpose.js.map +1 -0
  446. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js +14 -0
  447. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1791900000000-AddSeverityAndStateToNotificationEmailRollup.js.map +1 -0
  448. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js +241 -0
  449. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792000000000-AddVMwareTables.js.map +1 -0
  450. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js +36 -0
  451. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792100000000-AddGitHubCommandSettingsToCodeRepository.js.map +1 -0
  452. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js +12 -0
  453. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792200000000-AddUserWebAuthnPurpose.js.map +1 -0
  454. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.js +34 -0
  455. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792300000000-AddGoogleSecOpsDiagnostics.js.map +1 -0
  456. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  457. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  458. package/build/dist/Server/Middleware/IdentityRateLimit.js +80 -0
  459. package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
  460. package/build/dist/Server/Services/AIRunService.js +14 -1
  461. package/build/dist/Server/Services/AIRunService.js.map +1 -1
  462. package/build/dist/Server/Services/BillingPaymentMethodService.js +71 -21
  463. package/build/dist/Server/Services/BillingPaymentMethodService.js.map +1 -1
  464. package/build/dist/Server/Services/BillingService.js +210 -22
  465. package/build/dist/Server/Services/BillingService.js.map +1 -1
  466. package/build/dist/Server/Services/CloudResourceInstanceService.js +66 -0
  467. package/build/dist/Server/Services/CloudResourceInstanceService.js.map +1 -1
  468. package/build/dist/Server/Services/ExceptionAggregationService.js +1 -0
  469. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  470. package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js +9 -0
  471. package/build/dist/Server/Services/GoogleSecOpsConnectionRunService.js.map +1 -0
  472. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js +7 -0
  473. package/build/dist/Server/Services/GoogleSecOpsConnectionService.js.map +1 -1
  474. package/build/dist/Server/Services/Index.js +16 -0
  475. package/build/dist/Server/Services/Index.js.map +1 -1
  476. package/build/dist/Server/Services/LogAggregationService.js +1 -0
  477. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  478. package/build/dist/Server/Services/MetricAggregationService.js +1 -0
  479. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  480. package/build/dist/Server/Services/MobilePasskeyLoginService.js +137 -0
  481. package/build/dist/Server/Services/MobilePasskeyLoginService.js.map +1 -0
  482. package/build/dist/Server/Services/MonitorService.js +34 -1
  483. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  484. package/build/dist/Server/Services/MonitorTemplateService.js +64 -26
  485. package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
  486. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +124 -1
  487. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  488. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +142 -2
  489. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  490. package/build/dist/Server/Services/OpenTelemetryIngestService.js +28 -13
  491. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  492. package/build/dist/Server/Services/PayAsYouGoBillingService.js +297 -0
  493. package/build/dist/Server/Services/PayAsYouGoBillingService.js.map +1 -0
  494. package/build/dist/Server/Services/ProjectService.js +38 -2
  495. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  496. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +66 -0
  497. package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -1
  498. package/build/dist/Server/Services/TeamMemberService.js +85 -28
  499. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  500. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +61 -10
  501. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  502. package/build/dist/Server/Services/TelemetryUsageBillingService.js +62 -5
  503. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  504. package/build/dist/Server/Services/TraceAggregationService.js +5 -4
  505. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  506. package/build/dist/Server/Services/UserWebAuthnService.js +345 -113
  507. package/build/dist/Server/Services/UserWebAuthnService.js.map +1 -1
  508. package/build/dist/Server/Services/VMwareResourceService.js +395 -0
  509. package/build/dist/Server/Services/VMwareResourceService.js.map +1 -0
  510. package/build/dist/Server/Services/VMwareVCenterFeedService.js +89 -0
  511. package/build/dist/Server/Services/VMwareVCenterFeedService.js.map +1 -0
  512. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js +197 -0
  513. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js.map +1 -0
  514. package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js +13 -0
  515. package/build/dist/Server/Services/VMwareVCenterLabelRuleService.js.map +1 -0
  516. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +214 -0
  517. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -0
  518. package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js +13 -0
  519. package/build/dist/Server/Services/VMwareVCenterOwnerRuleService.js.map +1 -0
  520. package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js +129 -0
  521. package/build/dist/Server/Services/VMwareVCenterOwnerTeamService.js.map +1 -0
  522. package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js +122 -0
  523. package/build/dist/Server/Services/VMwareVCenterOwnerUserService.js.map +1 -0
  524. package/build/dist/Server/Services/VMwareVCenterService.js +533 -0
  525. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -0
  526. package/build/dist/Server/Services/WorkflowVariableService.js +169 -0
  527. package/build/dist/Server/Services/WorkflowVariableService.js.map +1 -1
  528. package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js +12 -1
  529. package/build/dist/Server/Types/Billing/MeteredPlan/ActiveMonitoringMeteredPlan.js.map +1 -1
  530. package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js +25 -2
  531. package/build/dist/Server/Types/Billing/MeteredPlan/TelemetryMeteredPlan.js.map +1 -1
  532. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  533. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js +275 -0
  534. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubAgentTaskTrigger.js.map +1 -0
  535. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js +226 -0
  536. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandAuthorizer.js.map +1 -0
  537. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js +297 -0
  538. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubCommandParser.js.map +1 -0
  539. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js +582 -0
  540. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubConversation.js.map +1 -0
  541. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js +275 -0
  542. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.js.map +1 -0
  543. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js +365 -0
  544. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubRunReply.js.map +1 -0
  545. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js +103 -0
  546. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.js.map +1 -0
  547. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js +661 -0
  548. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHubWebhookHandler.js.map +1 -0
  549. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js +113 -0
  550. package/build/dist/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.js.map +1 -1
  551. package/build/dist/Server/Utils/DataSource/EgressGuard.js +99 -15
  552. package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
  553. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js +2 -0
  554. package/build/dist/Server/Utils/EmailRollup/EmailRollupFlushRunner.js.map +1 -1
  555. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js +18 -0
  556. package/build/dist/Server/Utils/EmailRollup/EmailRollupRenderer.js.map +1 -1
  557. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js +31 -2
  558. package/build/dist/Server/Utils/EmailRollup/EmailRollupWriter.js.map +1 -1
  559. package/build/dist/Server/Utils/LogRedaction.js +2 -1
  560. package/build/dist/Server/Utils/LogRedaction.js.map +1 -1
  561. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +1 -1
  562. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +219 -4
  563. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  564. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +12 -4
  565. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  566. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +5 -3
  567. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
  568. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +22 -9
  569. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
  570. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -0
  571. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  572. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +21 -0
  573. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  574. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +21 -6
  575. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  576. package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +3 -3
  577. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +9 -9
  578. package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -1
  579. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js +92 -71
  580. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsClient.js.map +1 -1
  581. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +428 -143
  582. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
  583. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js +376 -0
  584. package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsRunExecutor.js.map +1 -0
  585. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -0
  586. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  587. package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -1
  588. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +136 -1
  589. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  590. package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js +933 -0
  591. package/build/dist/Server/Utils/Telemetry/VMwareSnapshotScan.js.map +1 -0
  592. package/build/dist/Types/AI/CodeFixTaskContext.js +40 -0
  593. package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -1
  594. package/build/dist/Types/AI/CodeFixTaskType.js +57 -0
  595. package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -1
  596. package/build/dist/Types/Accounts/AccountsLanguage.js +1 -0
  597. package/build/dist/Types/Accounts/AccountsLanguage.js.map +1 -1
  598. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js +1 -0
  599. package/build/dist/Types/AdminDashboard/AdminDashboardLanguage.js.map +1 -1
  600. package/build/dist/Types/Cloud/CloudPlatform.js +277 -0
  601. package/build/dist/Types/Cloud/CloudPlatform.js.map +1 -0
  602. package/build/dist/Types/CodeRepository/GitHubCommand.js +52 -0
  603. package/build/dist/Types/CodeRepository/GitHubCommand.js.map +1 -0
  604. package/build/dist/Types/Dashboard/DashboardComponentType.js +2 -0
  605. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  606. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
  607. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  608. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js +2 -0
  609. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareHostListComponent.js.map +1 -0
  610. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js +2 -0
  611. package/build/dist/Types/Dashboard/DashboardComponents/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
  612. package/build/dist/Types/Dashboard/DashboardLanguage.js +1 -0
  613. package/build/dist/Types/Dashboard/DashboardLanguage.js.map +1 -1
  614. package/build/dist/Types/Dashboard/DashboardTemplates.js +286 -0
  615. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  616. package/build/dist/Types/Docs/DocsLanguage.js +1 -0
  617. package/build/dist/Types/Docs/DocsLanguage.js.map +1 -1
  618. package/build/dist/Types/Exception/EgressGuardException.js +59 -0
  619. package/build/dist/Types/Exception/EgressGuardException.js.map +1 -0
  620. package/build/dist/Types/Icon/IconProp.js +1 -0
  621. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  622. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +1 -0
  623. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  624. package/build/dist/Types/Monitor/MonitorStep.js +61 -18
  625. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  626. package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js +1 -0
  627. package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js.map +1 -1
  628. package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js +71 -0
  629. package/build/dist/Types/Monitor/MonitorStepVMwareMonitor.js.map +1 -0
  630. package/build/dist/Types/Monitor/MonitorTemplateSyncField.js +211 -0
  631. package/build/dist/Types/Monitor/MonitorTemplateSyncField.js.map +1 -0
  632. package/build/dist/Types/Monitor/MonitorType.js +23 -0
  633. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  634. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +28 -0
  635. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  636. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +1 -0
  637. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  638. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +2 -0
  639. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  640. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js +120 -0
  641. package/build/dist/Types/Monitor/SeriesContext/SeriesDebugHints.js.map +1 -1
  642. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +60 -0
  643. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
  644. package/build/dist/Types/Monitor/VMwareAlertTemplates.js +775 -0
  645. package/build/dist/Types/Monitor/VMwareAlertTemplates.js.map +1 -0
  646. package/build/dist/Types/Monitor/VMwareMetricCatalog.js +799 -0
  647. package/build/dist/Types/Monitor/VMwareMetricCatalog.js.map +1 -0
  648. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js +25 -0
  649. package/build/dist/Types/OnCallDutyPolicy/ScheduleShiftUtil.js.map +1 -1
  650. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js +5 -0
  651. package/build/dist/Types/OnCallDutyPolicy/UserOverrideUtil.js.map +1 -1
  652. package/build/dist/Types/Password.js +63 -5
  653. package/build/dist/Types/Password.js.map +1 -1
  654. package/build/dist/Types/Permission.js +234 -0
  655. package/build/dist/Types/Permission.js.map +1 -1
  656. package/build/dist/Types/Probe/RequestFailedDetails.js +7 -0
  657. package/build/dist/Types/Probe/RequestFailedDetails.js.map +1 -1
  658. package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js +2 -0
  659. package/build/dist/Types/SecurityEvent/GoogleSecOpsDiagnostics.js.map +1 -0
  660. package/build/dist/Types/StatusPage/StatusPageLanguage.js +1 -0
  661. package/build/dist/Types/StatusPage/StatusPageLanguage.js.map +1 -1
  662. package/build/dist/Types/Telemetry/EntityType.js +21 -0
  663. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  664. package/build/dist/Types/Telemetry/ServiceType.js +1 -0
  665. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  666. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js +2 -2
  667. package/build/dist/UI/Components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  668. package/build/dist/UI/Components/Calendar/Calendar.js +24 -4
  669. package/build/dist/UI/Components/Calendar/Calendar.js.map +1 -1
  670. package/build/dist/UI/Components/Forms/BasicForm.js +28 -3
  671. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  672. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js +1 -1
  673. package/build/dist/UI/Components/Forms/Fields/ColorPicker.js.map +1 -1
  674. package/build/dist/UI/Components/Forms/Fields/FormField.js +10 -3
  675. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  676. package/build/dist/UI/Components/Forms/ModelForm.js +89 -6
  677. package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
  678. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js +5 -6
  679. package/build/dist/UI/Components/Graphs/DayUptimeGraph.js.map +1 -1
  680. package/build/dist/UI/Components/Icon/Icon.js +14 -0
  681. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  682. package/build/dist/UI/Components/Input/Input.js +37 -8
  683. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  684. package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js +228 -0
  685. package/build/dist/UI/Components/LabelRule/ImportLabelRulesModal.js.map +1 -0
  686. package/build/dist/UI/Components/LabelRule/LabelRuleTable.js +102 -0
  687. package/build/dist/UI/Components/LabelRule/LabelRuleTable.js.map +1 -0
  688. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +15 -2
  689. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  690. package/build/dist/UI/Components/ModelTable/ModelTable.js +13 -5
  691. package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
  692. package/build/dist/UI/Components/MonitorGraphs/Uptime.js +14 -15
  693. package/build/dist/UI/Components/MonitorGraphs/Uptime.js.map +1 -1
  694. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +2 -0
  695. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  696. package/build/dist/UI/Components/Tooltip/Tooltip.js +33 -4
  697. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  698. package/build/dist/UI/Utils/DashboardStackingLayers.js +44 -0
  699. package/build/dist/UI/Utils/DashboardStackingLayers.js.map +1 -0
  700. package/build/dist/UI/Utils/LabelRuleImportExport.js +195 -0
  701. package/build/dist/UI/Utils/LabelRuleImportExport.js.map +1 -0
  702. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +4 -4
  703. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  704. package/build/dist/UI/Utils/TelemetryService.js +3 -2
  705. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  706. package/build/dist/UI/Utils/UseDashboardGridDnd.js +2 -1
  707. package/build/dist/UI/Utils/UseDashboardGridDnd.js.map +1 -1
  708. package/build/dist/UI/Utils/UserEmailRegistrationStatus.js +21 -4
  709. package/build/dist/UI/Utils/UserEmailRegistrationStatus.js.map +1 -1
  710. package/build/dist/UI/Utils/WebAuthn.js +121 -0
  711. package/build/dist/UI/Utils/WebAuthn.js.map +1 -0
  712. package/build/dist/Utils/API.js +29 -0
  713. package/build/dist/Utils/API.js.map +1 -1
  714. package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js +33 -0
  715. package/build/dist/Utils/Dashboard/Components/DashboardVMwareHostListComponent.js.map +1 -0
  716. package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js +54 -0
  717. package/build/dist/Utils/Dashboard/Components/DashboardVMwareResourceListShared.js.map +1 -0
  718. package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js +60 -0
  719. package/build/dist/Utils/Dashboard/Components/DashboardVMwareVirtualMachineListComponent.js.map +1 -0
  720. package/build/dist/Utils/Dashboard/Components/Index.js +8 -0
  721. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  722. package/build/dist/Utils/LabelRuleImportExport.js +356 -0
  723. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -0
  724. package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js +110 -0
  725. package/build/dist/Utils/Monitor/MonitorTemplateSyncUtil.js.map +1 -0
  726. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js +6 -0
  727. package/build/dist/Utils/NetworkDiscovery/DiscoveryScanStatus.js.map +1 -1
  728. package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js +88 -0
  729. package/build/dist/Utils/Telemetry/CloudInstanceIdentity.js.map +1 -0
  730. package/build/dist/Utils/Telemetry/EntityKey.js +15 -0
  731. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  732. package/build/dist/Utils/Telemetry/EntityRelationship.js +13 -0
  733. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  734. package/package.json +1 -1
@@ -0,0 +1,275 @@
1
+ import GitHubCommandType from "../../../../Types/CodeRepository/GitHubCommand";
2
+ /*
3
+ * Every comment the OneUptime app writes into a GitHub thread.
4
+ *
5
+ * Pure string building, deliberately: these are the only words most users will
6
+ * ever see from this integration, and a test can pin them without a GitHub
7
+ * account, a database or a network.
8
+ *
9
+ * One rule holds throughout, and it is a safety rule rather than a style one:
10
+ * NOTHING this file emits may contain a LIVE "@" mention of the app. Its own
11
+ * comments come back as webhooks, and although the sender check in
12
+ * GitHubCommandAuthorizer stops a bot comment before it is ever acted on, that
13
+ * is one guard, and a self-mention in a status update is a comment loop that
14
+ * bills the project until somebody notices.
15
+ *
16
+ * So every string that did not originate in this file — an agent's failure
17
+ * message, a user's instruction, an exception's text — is passed through
18
+ * quoteInstruction() before it is interpolated. A blockquote is the one
19
+ * wrapper the parser provably ignores and that has no closing token an input
20
+ * can break; a code fence is not (a reason containing ``` closes it early and
21
+ * spills live markdown into the comment). Where the help text has to SHOW a
22
+ * command it uses a fence, because that text is ours and cannot contain a
23
+ * surprise.
24
+ *
25
+ * The composer's test file pins this end to end: every public method is run
26
+ * through GitHubCommandParser.parse() and must yield no command.
27
+ */
28
+ // Ends every comment, so a reader can always tell what wrote it and why.
29
+ const SIGNATURE = "<sub>Posted by OneUptime. Reply in this thread to ask for changes.</sub>";
30
+ // A quoted instruction is untrusted text; keep it short and clearly quoted.
31
+ const MAX_QUOTED_INSTRUCTION_LENGTH = 500;
32
+ export default class GitHubReplyComposer {
33
+ /*
34
+ * Quote untrusted comment text as a markdown blockquote.
35
+ *
36
+ * Blockquoting is not decoration. The parser ignores mentions inside `>`
37
+ * lines, so echoing a user's instruction back verbatim — which may itself
38
+ * contain a mention of this app — cannot re-trigger it.
39
+ */
40
+ static quoteInstruction(instruction) {
41
+ const trimmed = instruction.trim();
42
+ if (!trimmed) {
43
+ return "";
44
+ }
45
+ /*
46
+ * Clipped by CODE POINT, not by UTF-16 unit. substring() splits surrogate
47
+ * pairs, so a comment ending in emoji got a lone high surrogate that
48
+ * GitHub renders as a replacement character — the app quoting someone
49
+ * back with visible corruption in their own words.
50
+ */
51
+ const codePoints = Array.from(trimmed);
52
+ const clipped = codePoints.length > MAX_QUOTED_INSTRUCTION_LENGTH
53
+ ? `${codePoints.slice(0, MAX_QUOTED_INSTRUCTION_LENGTH - 1).join("")}…`
54
+ : trimmed;
55
+ return clipped
56
+ .split("\n")
57
+ .map((line) => {
58
+ return `> ${line}`;
59
+ })
60
+ .join("\n");
61
+ }
62
+ static describeCommand(commandType) {
63
+ switch (commandType) {
64
+ case GitHubCommandType.Review:
65
+ return "reviewing this pull request";
66
+ case GitHubCommandType.Revise:
67
+ return "revising this pull request";
68
+ case GitHubCommandType.Implement:
69
+ return "working on this issue";
70
+ default:
71
+ return "on it";
72
+ }
73
+ }
74
+ static acknowledgement(data) {
75
+ const quoted = GitHubReplyComposer.quoteInstruction(data.instruction);
76
+ /*
77
+ * The optional section is dropped BEFORE the blank line that separates the
78
+ * body from the signature is appended. Filtering empty strings out of the
79
+ * whole array would take that separator with it, and the signature would
80
+ * run straight on from the last sentence.
81
+ */
82
+ const parts = [
83
+ `🤖 **On it** — ${GitHubReplyComposer.describeCommand(data.commandType)}.`,
84
+ ];
85
+ if (quoted) {
86
+ parts.push(`\nYou asked:\n${quoted}`);
87
+ }
88
+ parts.push(`\nI will update this comment when I am done. [Follow along in OneUptime](${data.runUrl})${data.projectName ? ` (project **${data.projectName}**)` : ""}.`);
89
+ return [...parts, "", SIGNATURE].join("\n");
90
+ }
91
+ /*
92
+ * The run finished and produced something. `resultLines` are the concrete
93
+ * artefacts — a pull request link, a count of pushed commits, a link to the
94
+ * review — because "done" without an artefact is not an answer.
95
+ */
96
+ static completed(data) {
97
+ return [
98
+ `✅ **Done** — ${GitHubReplyComposer.describeCommand(data.commandType)}.`,
99
+ "",
100
+ ...data.resultLines,
101
+ "",
102
+ `[View the full run in OneUptime](${data.runUrl}).`,
103
+ "",
104
+ SIGNATURE,
105
+ ].join("\n");
106
+ }
107
+ /*
108
+ * The run completed and concluded there was nothing to change. Worded as a
109
+ * finding rather than a failure, because that is what it is — and because a
110
+ * user who reads "failed" retries, while a user who reads "found nothing"
111
+ * gives the agent better instructions instead.
112
+ */
113
+ static noChangeProposed(data) {
114
+ /*
115
+ * The reason is the AGENT's own words, so it is quoted rather than
116
+ * interpolated raw — see the note at the top of this file. A blockquote is
117
+ * the one wrapper the parser provably ignores, and it also reads correctly:
118
+ * this is the agent being quoted, not the app speaking.
119
+ */
120
+ const quotedReason = GitHubReplyComposer.quoteInstruction(data.reason || "The agent finished without editing a file.");
121
+ return [
122
+ "🔍 **I looked, and I do not have a change worth proposing here.**",
123
+ "",
124
+ quotedReason,
125
+ "",
126
+ `Tell me more about what you want and I will try again. [View the run](${data.runUrl}).`,
127
+ "",
128
+ SIGNATURE,
129
+ ].join("\n");
130
+ }
131
+ static failed(data) {
132
+ /*
133
+ * Quoted, not fenced. A failure reason is machine-generated text that can
134
+ * contain anything — including a ``` of its own, which closed the wrapper
135
+ * early and put whatever followed into the comment as live markdown. A
136
+ * blockquote has no closing token to break, and the parser ignores every
137
+ * line of it.
138
+ */
139
+ const parts = ["❌ **I could not finish this one.**", ""];
140
+ if (data.reason) {
141
+ parts.push(GitHubReplyComposer.quoteInstruction(data.reason), "");
142
+ }
143
+ parts.push(`[View the run in OneUptime](${data.runUrl}) for the full log.`, "", SIGNATURE);
144
+ return parts.join("\n");
145
+ }
146
+ static cancelled(data) {
147
+ if (data.cancelledCount <= 0) {
148
+ return [
149
+ "🛑 Nothing of mine is running on this thread right now.",
150
+ "",
151
+ SIGNATURE,
152
+ ].join("\n");
153
+ }
154
+ return [
155
+ `🛑 **Cancelled** ${data.cancelledCount} run${data.cancelledCount === 1 ? "" : "s"} on this thread.`,
156
+ "",
157
+ "Work already pushed stays pushed — cancelling stops what comes next, it does not undo what happened.",
158
+ "",
159
+ SIGNATURE,
160
+ ].join("\n");
161
+ }
162
+ /*
163
+ * Commands are shown inside a fenced block on purpose — see the note at the
164
+ * top of this file. The fence is what makes it safe to print a mention of
165
+ * this app in a comment this app posts.
166
+ */
167
+ /*
168
+ * One run's own acknowledgement, closed out because it was cancelled.
169
+ *
170
+ * Distinct from cancelled() above, which answers the person who typed the
171
+ * command and counts what it stopped across the whole thread. Each cancelled
172
+ * run edits its OWN comment, so a thread-wide count repeated three times
173
+ * would be three comments each claiming there was one.
174
+ */
175
+ static cancelledRun(data) {
176
+ return [
177
+ "🛑 **Cancelled** before this finished.",
178
+ "",
179
+ "Anything already pushed stays pushed — cancelling stops what comes next, it does not undo what happened.",
180
+ "",
181
+ `[See how far it got](${data.runUrl}).`,
182
+ "",
183
+ SIGNATURE,
184
+ ].join("\n");
185
+ }
186
+ static help(data) {
187
+ return [
188
+ "👋 **Here is what you can ask me to do.**",
189
+ "",
190
+ "On a **pull request**:",
191
+ "",
192
+ "```text",
193
+ `@${data.appSlug} review`,
194
+ `@${data.appSlug} revise this — the retry loop should back off exponentially`,
195
+ "```",
196
+ "",
197
+ "On an **issue**:",
198
+ "",
199
+ "```text",
200
+ `@${data.appSlug} implement this`,
201
+ `@${data.appSlug} fix this, but keep the public API unchanged`,
202
+ "```",
203
+ "",
204
+ "Anywhere:",
205
+ "",
206
+ "```text",
207
+ `@${data.appSlug} status`,
208
+ `@${data.appSlug} cancel`,
209
+ "```",
210
+ "",
211
+ "You can also assign an issue to me, or add the repository's OneUptime trigger label to it, and I will pick it up.",
212
+ "",
213
+ "A few things worth knowing: I only take commands from people with write access to this repository, I never merge anything, and I open pull requests for a human to review.",
214
+ "",
215
+ SIGNATURE,
216
+ ].join("\n");
217
+ }
218
+ static status(data) {
219
+ if (data.runDescriptions.length === 0) {
220
+ return [
221
+ "💤 I am not working on anything in this thread right now.",
222
+ "",
223
+ SIGNATURE,
224
+ ].join("\n");
225
+ }
226
+ return [
227
+ "⏳ **Currently working on this thread:**",
228
+ "",
229
+ ...data.runDescriptions.map((description) => {
230
+ return `- ${description}`;
231
+ }),
232
+ "",
233
+ `[All runs for this project](${data.runUrlBase}).`,
234
+ "",
235
+ SIGNATURE,
236
+ ].join("\n");
237
+ }
238
+ /*
239
+ * Every refusal. Deliberately one shape: a user whose command did nothing
240
+ * needs to know WHY in the thread they typed it, or the integration reads as
241
+ * broken. Silence is the one response that is never acceptable here — with
242
+ * the single exception of a command from someone without write access to the
243
+ * repository, which the caller does not reply to at all (see
244
+ * GitHubCommandAuthorizer: replying would turn the app into an
245
+ * unauthenticated comment-poster for anyone with a GitHub account).
246
+ */
247
+ static refusal(data) {
248
+ /*
249
+ * Refusal reasons are usually this app's own sentences, but one of them is
250
+ * a BadDataException message from the enqueue path — and a message that
251
+ * ever grows to include user text would otherwise carry a live mention
252
+ * into a comment this app posts. Quoting costs one line of markdown and
253
+ * removes the question.
254
+ */
255
+ return [
256
+ "🚫 I cannot do that:",
257
+ "",
258
+ GitHubReplyComposer.quoteInstruction(data.reason),
259
+ "",
260
+ SIGNATURE,
261
+ ].join("\n");
262
+ }
263
+ static unsupportedOnSurface(data) {
264
+ if (data.commandType === GitHubCommandType.Review ||
265
+ data.commandType === GitHubCommandType.Revise) {
266
+ return GitHubReplyComposer.refusal({
267
+ reason: `I can only ${data.commandType === GitHubCommandType.Review ? "review" : "revise"} pull requests, and this is an issue. Ask me to implement it instead, or run that command on a pull request.`,
268
+ });
269
+ }
270
+ return GitHubReplyComposer.refusal({
271
+ reason: "I can only implement issues, and this is a pull request. Ask me to revise or review it instead.",
272
+ });
273
+ }
274
+ }
275
+ //# sourceMappingURL=GitHubReplyComposer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubReplyComposer.js","sourceRoot":"","sources":["../../../../../../Server/Utils/CodeRepository/GitHub/GitHubReplyComposer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,365 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import logger from "../../Logger";
11
+ import AIRunStatus from "../../../../Types/AI/AIRunStatus";
12
+ import GitHubCommandType from "../../../../Types/CodeRepository/GitHubCommand";
13
+ import { getGitHubConversationNumber, getGitHubTaskContext, } from "../../../../Types/AI/CodeFixTaskContext";
14
+ import { DashboardClientUrl } from "../../../EnvironmentConfig";
15
+ import AIRunService from "../../../Services/AIRunService";
16
+ import AIAgentTaskPullRequestService from "../../../Services/AIAgentTaskPullRequestService";
17
+ import GitHubConversation, { GitHubReaction } from "./GitHubConversation";
18
+ import GitHubReplyComposer from "./GitHubReplyComposer";
19
+ import CaptureSpan from "../../Telemetry/CaptureSpan";
20
+ import LIMIT_MAX from "../../../../Types/Database/LimitMax";
21
+ /*
22
+ * How a GitHub-triggered run talks back to the thread it came from.
23
+ *
24
+ * One command produces exactly ONE comment from this app, posted when the run
25
+ * is accepted and EDITED as it finishes. That constraint is the whole design:
26
+ * a long-running agent that appends a comment per state change turns a pull
27
+ * request into a status log, and a reviewer stops reading it.
28
+ *
29
+ * The outcome is delivered by a sweeper rather than by whoever happened to
30
+ * finalize the run. There are five places a run can reach a terminal
31
+ * state — the worker reporting in, the stale-heartbeat sweeper, the orphaned-
32
+ * queue sweeper, the claim-time executability guard, and an explicit cancel —
33
+ * and a comment posted from only some of them is worse than none: the user
34
+ * sees "on it" forever precisely in the cases where something went wrong.
35
+ * `reportedToGitHubAt` on the run's own context makes the sweep idempotent,
36
+ * so a GitHub outage costs a minute rather than the reply.
37
+ */
38
+ export default class GitHubRunReply {
39
+ static buildRunUrl(data) {
40
+ return `${DashboardClientUrl.toString()}/${data.projectId.toString()}/ai/agents/${data.aiRunId.toString()}`;
41
+ }
42
+ static buildProjectRunsUrl(projectId) {
43
+ return `${DashboardClientUrl.toString()}/${projectId.toString()}/ai/agents`;
44
+ }
45
+ /*
46
+ * Acknowledge a command in the thread: a reaction on the comment that asked
47
+ * (instant, and unmistakably from this app) and one comment carrying the
48
+ * link to the run.
49
+ *
50
+ * Best-effort by design. The run is already queued and will do its work
51
+ * whether or not GitHub accepted the acknowledgement, and failing the
52
+ * command because a comment did not post would be strictly worse for the
53
+ * user than a quiet start.
54
+ */
55
+ static async acknowledge(data) {
56
+ const conversationNumber = getGitHubConversationNumber(data.github);
57
+ if (data.github.triggerCommentId) {
58
+ await GitHubConversation.addReactionToComment({
59
+ installationId: data.github.installationId,
60
+ organizationName: data.github.organizationName,
61
+ repositoryName: data.github.repositoryName,
62
+ commentId: data.github.triggerCommentId,
63
+ reaction: GitHubReaction.Eyes,
64
+ });
65
+ }
66
+ else {
67
+ await GitHubConversation.addReactionToIssue({
68
+ installationId: data.github.installationId,
69
+ organizationName: data.github.organizationName,
70
+ repositoryName: data.github.repositoryName,
71
+ issueNumber: conversationNumber,
72
+ reaction: GitHubReaction.Eyes,
73
+ });
74
+ }
75
+ try {
76
+ const comment = await GitHubConversation.createIssueComment({
77
+ installationId: data.github.installationId,
78
+ organizationName: data.github.organizationName,
79
+ repositoryName: data.github.repositoryName,
80
+ issueNumber: conversationNumber,
81
+ body: GitHubReplyComposer.acknowledgement({
82
+ commandType: data.github.commandType,
83
+ runUrl: GitHubRunReply.buildRunUrl({
84
+ projectId: data.projectId,
85
+ aiRunId: data.aiRunId,
86
+ }),
87
+ instruction: data.github.instruction,
88
+ projectName: data.projectName,
89
+ }),
90
+ });
91
+ return comment.commentId;
92
+ }
93
+ catch (error) {
94
+ logger.error(`Could not post the GitHub acknowledgement for run ${data.aiRunId.toString()}: ${error}`);
95
+ return null;
96
+ }
97
+ }
98
+ /*
99
+ * Post the run's outcome, editing the acknowledgement when there is one.
100
+ *
101
+ * Returns true when GitHub accepted the write, so the caller can mark the
102
+ * run reported. A false answer leaves the marker unset and the next sweep
103
+ * tries again — which is what makes a GitHub outage recoverable instead of
104
+ * silently losing the reply.
105
+ */
106
+ static async reportOutcome(data) {
107
+ const aiRunId = data.run.id;
108
+ const projectId = data.run.projectId;
109
+ if (!aiRunId || !projectId) {
110
+ return false;
111
+ }
112
+ const runUrl = GitHubRunReply.buildRunUrl({
113
+ projectId: projectId,
114
+ aiRunId: aiRunId,
115
+ });
116
+ const body = await GitHubRunReply.composeOutcomeBody({
117
+ run: data.run,
118
+ github: data.github,
119
+ runUrl: runUrl,
120
+ });
121
+ const postFresh = async () => {
122
+ await GitHubConversation.createIssueComment({
123
+ installationId: data.github.installationId,
124
+ organizationName: data.github.organizationName,
125
+ repositoryName: data.github.repositoryName,
126
+ issueNumber: getGitHubConversationNumber(data.github),
127
+ body: body,
128
+ });
129
+ };
130
+ try {
131
+ if (data.github.acknowledgementCommentId) {
132
+ try {
133
+ await GitHubConversation.updateIssueComment({
134
+ installationId: data.github.installationId,
135
+ organizationName: data.github.organizationName,
136
+ repositoryName: data.github.repositoryName,
137
+ commentId: data.github.acknowledgementCommentId,
138
+ body: body,
139
+ });
140
+ }
141
+ catch (updateError) {
142
+ /*
143
+ * The acknowledgement is gone — someone deleted it, which is an
144
+ * ordinary thing to do to a bot comment. Without this fallback the
145
+ * edit 404s forever: the outcome is never delivered, the run is
146
+ * never marked reported, and the sweep retries the same doomed write
147
+ * every minute until it ages out. A second comment is a far better
148
+ * outcome than silence.
149
+ */
150
+ logger.info(`Could not edit the acknowledgement comment for run ${aiRunId.toString()} (${updateError}); posting the outcome as a new comment.`);
151
+ await postFresh();
152
+ }
153
+ }
154
+ else {
155
+ await postFresh();
156
+ }
157
+ }
158
+ catch (error) {
159
+ logger.warn(`Could not post the GitHub outcome for run ${aiRunId.toString()}: ${error}`);
160
+ return false;
161
+ }
162
+ /*
163
+ * The reaction is a nicety and must never decide whether we reported —
164
+ * the comment has already landed by this point, and re-posting it on the
165
+ * next sweep because a reaction failed would be a duplicate. Wrapped as
166
+ * well as swallowed inside addReactionToComment, so this stays true even
167
+ * if that contract ever changes.
168
+ */
169
+ if (data.github.triggerCommentId) {
170
+ try {
171
+ await GitHubConversation.addReactionToComment({
172
+ installationId: data.github.installationId,
173
+ organizationName: data.github.organizationName,
174
+ repositoryName: data.github.repositoryName,
175
+ commentId: data.github.triggerCommentId,
176
+ reaction: data.run.status === AIRunStatus.Completed
177
+ ? GitHubReaction.Rocket
178
+ : GitHubReaction.Confused,
179
+ });
180
+ }
181
+ catch (reactionError) {
182
+ logger.debug(`Could not add the outcome reaction: ${reactionError}`);
183
+ }
184
+ }
185
+ return true;
186
+ }
187
+ static async composeOutcomeBody(data) {
188
+ if (data.run.status === AIRunStatus.Cancelled) {
189
+ /*
190
+ * Not GitHubReplyComposer.cancelled — that one answers the person who
191
+ * typed "cancel" and counts what it stopped across the thread. THIS
192
+ * comment is one run's own acknowledgement being closed out, and three
193
+ * cancelled runs must not each announce "cancelled 1 run on this
194
+ * thread". It also carries the run link, which is the one outcome where
195
+ * a reader most wants to see how far it got.
196
+ */
197
+ return GitHubReplyComposer.cancelledRun({ runUrl: data.runUrl });
198
+ }
199
+ if (data.run.status === AIRunStatus.NoFixFound) {
200
+ return GitHubReplyComposer.noChangeProposed({
201
+ reason: data.run.errorMessage,
202
+ runUrl: data.runUrl,
203
+ });
204
+ }
205
+ if (data.run.status !== AIRunStatus.Completed) {
206
+ return GitHubReplyComposer.failed({
207
+ reason: data.run.errorMessage,
208
+ runUrl: data.runUrl,
209
+ });
210
+ }
211
+ return GitHubReplyComposer.completed({
212
+ commandType: data.github.commandType,
213
+ runUrl: data.runUrl,
214
+ resultLines: await GitHubRunReply.buildResultLines(data),
215
+ });
216
+ }
217
+ /*
218
+ * What the run actually produced, in the reader's terms.
219
+ *
220
+ * A revision and a review deliberately do NOT list pull request links: the
221
+ * revision pushed to the pull request the comment is already on, and the
222
+ * review is right there in the thread. Linking a reader to the page they
223
+ * are reading is noise.
224
+ */
225
+ static async buildResultLines(data) {
226
+ if (data.github.commandType === GitHubCommandType.Revise) {
227
+ return [
228
+ "I pushed my changes to this pull request's branch. Please re-review the new commits.",
229
+ ];
230
+ }
231
+ if (data.github.commandType === GitHubCommandType.Review) {
232
+ return ["My review is posted on this pull request."];
233
+ }
234
+ const pullRequests = await AIAgentTaskPullRequestService.findBy({
235
+ query: { aiRunId: data.run.id },
236
+ select: { pullRequestUrl: true, pullRequestNumber: true },
237
+ limit: LIMIT_MAX,
238
+ skip: 0,
239
+ props: { isRoot: true },
240
+ });
241
+ if (pullRequests.length === 0) {
242
+ return ["The run finished, but it did not record a pull request."];
243
+ }
244
+ return pullRequests.map((pullRequest) => {
245
+ var _a;
246
+ const url = ((_a = pullRequest.pullRequestUrl) === null || _a === void 0 ? void 0 : _a.toString()) || "";
247
+ return pullRequest.pullRequestNumber
248
+ ? `Opened #${pullRequest.pullRequestNumber} — ${url}`
249
+ : `Opened a pull request — ${url}`;
250
+ });
251
+ }
252
+ /*
253
+ * Mark a run as having reported to GitHub.
254
+ *
255
+ * Written back into the run's own taskContext rather than a new column: the
256
+ * marker is meaningless without the conversation it belongs to, and a column
257
+ * would need a migration to say something the JSON already can.
258
+ *
259
+ * The whole taskContext is spread back in. TypeORM writes a jsonb column by
260
+ * REPLACING it, so writing `{ github: ... }` alone would silently drop every
261
+ * sibling key — traceId, serviceName, telemetryServiceId, the pinned
262
+ * investigation snapshot. A GitHub run happens to carry none of those today,
263
+ * which is exactly why this would go unnoticed until the first recipe that
264
+ * does.
265
+ */
266
+ static async markReported(data) {
267
+ await AIRunService.updateOneById({
268
+ id: data.aiRunId,
269
+ data: {
270
+ taskContext: Object.assign(Object.assign({}, (data.taskContext || {})), { github: Object.assign(Object.assign({}, data.github), { reportedToGitHubAt: new Date().toISOString() }) }),
271
+ },
272
+ props: { isRoot: true },
273
+ });
274
+ }
275
+ /*
276
+ * Mark a run whose GitHub context is unusable, so the sweep stops
277
+ * re-selecting it.
278
+ *
279
+ * These exist: the claim guard fails a run with an incomplete context, which
280
+ * makes it terminal with the same incomplete context still on it. Without a
281
+ * marker, the sweep picks it up, finds nothing it can report, and does that
282
+ * again every minute for twenty-four hours. Nothing reads a malformed
283
+ * context for anything else, so stamping the marker onto whatever is there
284
+ * is safe — and it is the only way to say "considered, cannot be reported".
285
+ */
286
+ static async markUnreportable(data) {
287
+ var _a;
288
+ await AIRunService.updateOneById({
289
+ id: data.aiRunId,
290
+ data: {
291
+ taskContext: Object.assign(Object.assign({}, (data.taskContext || {})), { github: Object.assign(Object.assign({}, (((_a = data.taskContext) === null || _a === void 0 ? void 0 : _a.github) || {})), { reportedToGitHubAt: new Date().toISOString() }) }),
292
+ },
293
+ props: { isRoot: true },
294
+ });
295
+ }
296
+ /*
297
+ * Whether a run's GitHub context is present but already reported. Separates
298
+ * "nothing to do" from "cannot be done", which the sweep has to treat
299
+ * differently — see markUnreportable.
300
+ */
301
+ static hasReportableContext(run) {
302
+ return Boolean(getGitHubTaskContext(run.taskContext));
303
+ }
304
+ // A run whose conversation is still waiting to hear how it went.
305
+ static needsOutcomeReport(run) {
306
+ const github = getGitHubTaskContext(run.taskContext);
307
+ if (!github || github.reportedToGitHubAt) {
308
+ return null;
309
+ }
310
+ return github;
311
+ }
312
+ /*
313
+ * A one-line description of a live run, for "@mention status".
314
+ *
315
+ * Deliberately terse and free of internal vocabulary: someone reading a pull
316
+ * request wants "revising this pull request (started 4 minutes ago)", not a
317
+ * run id and an enum.
318
+ */
319
+ static describeLiveRun(run) {
320
+ const github = getGitHubTaskContext(run.taskContext);
321
+ const what = github
322
+ ? GitHubRunReply.describeCommandForStatus(github.commandType)
323
+ : "working";
324
+ return run.status === AIRunStatus.Queued
325
+ ? `${what} — queued, waiting for an agent`
326
+ : `${what} — in progress`;
327
+ }
328
+ static describeCommandForStatus(commandType) {
329
+ switch (commandType) {
330
+ case GitHubCommandType.Review:
331
+ return "Reviewing this pull request";
332
+ case GitHubCommandType.Revise:
333
+ return "Revising this pull request";
334
+ case GitHubCommandType.Implement:
335
+ return "Working on this issue";
336
+ default:
337
+ return "Working";
338
+ }
339
+ }
340
+ }
341
+ __decorate([
342
+ CaptureSpan(),
343
+ __metadata("design:type", Function),
344
+ __metadata("design:paramtypes", [Object]),
345
+ __metadata("design:returntype", Promise)
346
+ ], GitHubRunReply, "acknowledge", null);
347
+ __decorate([
348
+ CaptureSpan(),
349
+ __metadata("design:type", Function),
350
+ __metadata("design:paramtypes", [Object]),
351
+ __metadata("design:returntype", Promise)
352
+ ], GitHubRunReply, "reportOutcome", null);
353
+ __decorate([
354
+ CaptureSpan(),
355
+ __metadata("design:type", Function),
356
+ __metadata("design:paramtypes", [Object]),
357
+ __metadata("design:returntype", Promise)
358
+ ], GitHubRunReply, "markReported", null);
359
+ __decorate([
360
+ CaptureSpan(),
361
+ __metadata("design:type", Function),
362
+ __metadata("design:paramtypes", [Object]),
363
+ __metadata("design:returntype", Promise)
364
+ ], GitHubRunReply, "markUnreportable", null);
365
+ //# sourceMappingURL=GitHubRunReply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubRunReply.js","sourceRoot":"","sources":["../../../../../../Server/Utils/CodeRepository/GitHub/GitHubRunReply.ts"],"names":[],"mappings":"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"}