@oneuptime/common 14.0.9 → 14.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/Models/DatabaseModels/AutoRemediationSuggestion.ts +60 -0
  2. package/Models/DatabaseModels/CephCluster.ts +213 -0
  3. package/Models/DatabaseModels/DatabaseServer.ts +213 -0
  4. package/Models/DatabaseModels/DockerHost.ts +213 -0
  5. package/Models/DatabaseModels/DockerSwarmCluster.ts +213 -0
  6. package/Models/DatabaseModels/GlobalConfig.ts +1 -1
  7. package/Models/DatabaseModels/Host.ts +213 -0
  8. package/Models/DatabaseModels/Index.ts +2 -0
  9. package/Models/DatabaseModels/PodmanHost.ts +213 -0
  10. package/Models/DatabaseModels/ProxmoxCluster.ts +213 -0
  11. package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
  12. package/Models/DatabaseModels/RunnerJob.ts +144 -0
  13. package/Models/DatabaseModels/VMwareVCenter.ts +213 -0
  14. package/Server/API/AutoRemediationAPI.ts +392 -1
  15. package/Server/API/ResourceAiAccessAPI.ts +1669 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  18. package/Server/Infrastructure/Semaphore.ts +22 -0
  19. package/Server/Middleware/TelemetryIngest.ts +15 -5
  20. package/Server/Services/AnalyticsDatabaseService.ts +45 -1
  21. package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
  22. package/Server/Services/CephClusterService.ts +109 -1
  23. package/Server/Services/DatabaseServerService.ts +116 -1
  24. package/Server/Services/DockerHostService.ts +109 -1
  25. package/Server/Services/DockerSwarmClusterService.ts +113 -1
  26. package/Server/Services/HostService.ts +126 -4
  27. package/Server/Services/MetricRecordingRuleService.ts +47 -0
  28. package/Server/Services/PodmanHostService.ts +109 -1
  29. package/Server/Services/ProxmoxClusterService.ts +110 -1
  30. package/Server/Services/ResourceAiAccessService.ts +1439 -0
  31. package/Server/Services/ResourceAiAgentJobService.ts +202 -0
  32. package/Server/Services/ResourceAiAgentService.ts +2432 -0
  33. package/Server/Services/RunnerJobService.ts +611 -4
  34. package/Server/Services/TelemetryUsageBillingService.ts +28 -0
  35. package/Server/Services/TraceRecordingRuleService.ts +33 -0
  36. package/Server/Services/VMwareVCenterService.ts +110 -1
  37. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +1434 -32
  38. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +935 -21
  39. package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
  40. package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +577 -0
  41. package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
  42. package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
  43. package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
  44. package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
  45. package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +873 -0
  46. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +72 -2
  47. package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +72 -5
  48. package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +72 -5
  49. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +396 -13
  50. package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
  51. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
  52. package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
  53. package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
  54. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +35 -15
  55. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
  56. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
  57. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +298 -224
  58. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +35 -15
  59. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
  60. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +366 -143
  61. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
  62. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
  63. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
  64. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
  65. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
  66. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
  67. package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +93 -0
  68. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +18 -6
  69. package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -0
  70. package/Tests/App/Dashboard/RemediationSuggestionCardDescription.test.tsx +209 -0
  71. package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
  72. package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
  73. package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
  74. package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +1721 -0
  75. package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1002 -0
  76. package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
  77. package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
  78. package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
  79. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +33 -1
  80. package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
  81. package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
  82. package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
  83. package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
  84. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
  85. package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
  86. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
  87. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +63 -5
  88. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +103 -5
  89. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +19 -1
  90. package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
  91. package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
  92. package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
  93. package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
  94. package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
  95. package/Tests/Server/Services/RecordingRuleReservedMetricName.test.ts +171 -0
  96. package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
  97. package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
  98. package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
  99. package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
  100. package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
  101. package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
  102. package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
  103. package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
  104. package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
  105. package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +105 -0
  106. package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
  107. package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
  108. package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
  109. package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
  110. package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
  111. package/Tests/Server/Utils/AI/InvestigationInfrastructureAccessWiring.test.ts +453 -0
  112. package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -0
  113. package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +94 -1
  114. package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
  115. package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1249 -0
  116. package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
  117. package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
  118. package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +722 -0
  119. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
  120. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
  121. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
  122. package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +830 -0
  123. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -0
  124. package/Tests/Server/Utils/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
  125. package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
  126. package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
  127. package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
  128. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +33 -3
  129. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
  130. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
  131. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
  132. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
  133. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
  134. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
  135. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
  136. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
  137. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
  138. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
  139. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
  140. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
  141. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
  142. package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
  143. package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
  144. package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
  145. package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
  146. package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
  147. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
  148. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
  149. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
  150. package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
  151. package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +517 -0
  152. package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
  153. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
  154. package/Tests/Utils/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
  155. package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
  156. package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
  157. package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
  158. package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
  159. package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
  160. package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
  161. package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
  162. package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
  163. package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
  164. package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
  165. package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
  166. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
  167. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
  168. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
  169. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
  170. package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
  171. package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
  172. package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
  173. package/Types/AI/ResourceAiAccessApi.ts +140 -0
  174. package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
  175. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +183 -2
  176. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
  177. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
  178. package/Types/Monitor/RumAlertTemplates.ts +351 -4
  179. package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
  180. package/Types/ResourceAiAgent/ResourceAiAccess.ts +574 -0
  181. package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
  182. package/Types/Runbook/RunbookStepType.ts +29 -0
  183. package/Types/Telemetry/TelemetryIngestSurface.ts +14 -2
  184. package/Utils/AI/InvestigationReport.ts +121 -15
  185. package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
  186. package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
  187. package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
  188. package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
  189. package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
  190. package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
  191. package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
  192. package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
  193. package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
  194. package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
  195. package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
  196. package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
  197. package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
  198. package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
  199. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
  200. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
  201. package/build/dist/Models/DatabaseModels/CephCluster.js +219 -0
  202. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  203. package/build/dist/Models/DatabaseModels/DatabaseServer.js +219 -0
  204. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
  205. package/build/dist/Models/DatabaseModels/DockerHost.js +219 -0
  206. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  207. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +219 -0
  208. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
  209. package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
  210. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  211. package/build/dist/Models/DatabaseModels/Host.js +219 -0
  212. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  213. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  214. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  215. package/build/dist/Models/DatabaseModels/PodmanHost.js +219 -0
  216. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -1
  217. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +219 -0
  218. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  219. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js +439 -0
  220. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
  221. package/build/dist/Models/DatabaseModels/RunnerJob.js +145 -0
  222. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
  223. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +219 -0
  224. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -1
  225. package/build/dist/Server/API/AutoRemediationAPI.js +231 -1
  226. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  227. package/build/dist/Server/API/ResourceAiAccessAPI.js +1119 -0
  228. package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
  229. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js +168 -0
  230. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
  231. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  232. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  233. package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
  234. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  235. package/build/dist/Server/Middleware/TelemetryIngest.js +12 -5
  236. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  237. package/build/dist/Server/Services/AnalyticsDatabaseService.js +26 -1
  238. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  239. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
  240. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
  241. package/build/dist/Server/Services/CephClusterService.js +104 -0
  242. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  243. package/build/dist/Server/Services/DatabaseServerService.js +99 -0
  244. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
  245. package/build/dist/Server/Services/DockerHostService.js +104 -0
  246. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  247. package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
  248. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  249. package/build/dist/Server/Services/HostService.js +114 -2
  250. package/build/dist/Server/Services/HostService.js.map +1 -1
  251. package/build/dist/Server/Services/MetricRecordingRuleService.js +46 -0
  252. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
  253. package/build/dist/Server/Services/PodmanHostService.js +104 -0
  254. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  255. package/build/dist/Server/Services/ProxmoxClusterService.js +104 -0
  256. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  257. package/build/dist/Server/Services/ResourceAiAccessService.js +1028 -0
  258. package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
  259. package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
  260. package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
  261. package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
  262. package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
  263. package/build/dist/Server/Services/RunnerJobService.js +344 -5
  264. package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
  265. package/build/dist/Server/Services/TelemetryUsageBillingService.js +26 -0
  266. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  267. package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
  268. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
  269. package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
  270. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -1
  271. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +1029 -30
  272. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
  273. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +633 -28
  274. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
  275. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
  276. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
  277. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +330 -0
  278. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
  279. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
  280. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
  281. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
  282. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
  283. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
  284. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
  285. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
  286. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
  287. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +600 -0
  288. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
  289. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +50 -4
  290. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  291. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +55 -4
  292. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
  293. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +55 -4
  294. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
  295. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +290 -13
  296. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
  297. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
  298. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
  299. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
  300. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  301. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
  302. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
  303. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
  304. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -1
  305. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +19 -15
  306. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  307. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
  308. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  309. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
  310. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  311. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +183 -209
  312. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  313. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +19 -15
  314. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
  315. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
  316. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  317. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +263 -110
  318. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  319. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
  320. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
  321. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
  322. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
  323. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
  324. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
  325. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
  326. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
  327. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
  328. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
  329. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
  330. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
  331. package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
  332. package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
  333. package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
  334. package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
  335. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +116 -29
  336. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
  337. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
  338. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  339. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
  340. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  341. package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
  342. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  343. package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
  344. package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
  345. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +275 -0
  346. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
  347. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
  348. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
  349. package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
  350. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  351. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +13 -2
  352. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
  353. package/build/dist/Utils/AI/InvestigationReport.js +71 -11
  354. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -1
  355. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
  356. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
  357. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
  358. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
  359. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
  360. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
  361. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
  362. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
  363. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
  364. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
  365. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
  366. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
  367. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
  368. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
  369. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
  370. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
  371. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
  372. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
  373. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
  374. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
  375. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
  376. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
  377. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
  378. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
  379. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
  380. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
  381. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
  382. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
  383. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProxmoxCommandPolicy.js","sourceRoot":"","sources":["../../../../../Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EACL,2BAA2B,EAG3B,YAAY,EACZ,4BAA4B,GAC7B,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAW,OAAO,CAAC;AAM7C,MAAM,CAAC,MAAM,sBAAsB,GAAuC;IACxE,MAAM;IACN,aAAa;IACb,MAAM;CACP,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAW,eAAe,CAAC;AAEpE,0CAA0C;AAC1C,MAAM,CAAC,MAAM,0BAA0B,GAAW,GAAG,CAAC;AAwCtD,SAAS,QAAQ,CACf,MAA6B,EAC7B,QAAiB;IAEjB,OAAO;QACL,QAAQ,EACN,QAAQ;YACR,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,EAAE;gBACxB,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC,KAAa,EAAW,EAAE;YAClC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAW,yBAAyB,CAAC;AAExD,+EAA+E;AAC/E,SAAS,WAAW,CAAC,GAAW,EAAE,GAAW;IAC3C,OAAO;QACL,QAAQ,EAAE,uBAAuB,GAAG,OAAO,GAAG,EAAE;QAChD,OAAO,EAAE,CAAC,KAAa,EAAW,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC;YAErC,OAAO,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;QACxC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,QAAgB;IACpD,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,CAAC,KAAa,EAAW,EAAE;YAClC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,YAAY,GAAqB,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEtE;;;GAGG;AACH,MAAM,eAAe,GAAW,kCAAkC,CAAC;AAEnE;;;GAGG;AACH,MAAM,gBAAgB,GAAW,WAAW,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,GAAW,mBAAmB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,GACd,2JAA2J,CAAC;AAE9J,yEAAyE;AACzE,MAAM,gBAAgB,GACpB,gDAAgD,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,gBAAgB,GAAW,wBAAwB,CAAC;AAE1D,yDAAyD;AACzD,MAAM,eAAe,GACnB,wFAAwF,CAAC;AAE3F,MAAM,SAAS,GAAqB,WAAW,CAC7C,UAAU,EACV,+BAA+B,CAChC,CAAC;AAEF,MAAM,cAAc,GAAqB,WAAW,CAClD,eAAe,EACf,0BAA0B,CAC3B,CAAC;AAEF,+BAA+B;AAC/B,MAAM,UAAU,GAAqB,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEhE,MAAM,UAAU,GAAqB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE1D,MAAM,WAAW,GAAqB,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAE9D,4DAA4D;AAC5D,MAAM,gBAAgB,GAAqB,WAAW,CACpD,mEAAmE,EACnE,4DAA4D,CAC7D,CAAC;AAEF,kEAAkE;AAClE,MAAM,kBAAkB,GAAqB,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAElE,MAAM,kBAAkB,GAAqB,QAAQ,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAE/E,MAAM,WAAW,GAAqB,QAAQ,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAEnE,MAAM,UAAU,GAA+C;IAC7D,SAAS,EAAE,kBAAkB;IAC7B,EAAE,EAAE,WAAW;CAChB,CAAC;AAEF,MAAM,qBAAqB,GAA0B;IACnD,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,UAAU;IACV,QAAQ;CACT,CAAC;AAEF,MAAM,oBAAoB,GAAqB;IAC7C,QAAQ,EAAE,6BAA6B,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACzE,OAAO,EAAE,CAAC,KAAa,EAAW,EAAE;QAClC,MAAM,KAAK,GAAkB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9C,OAAO,CACL,KAAK,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM;YAC5C,KAAK,CAAC,KAAK,CAAC,CAAC,IAAY,EAAW,EAAE;gBACpC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAC;AASF,MAAM,WAAW,GAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE3D,qEAAqE;AACrE,MAAM,iBAAiB,GAA0B;IAC/C,MAAM;IACN,YAAY;IACZ,YAAY;IACZ,wBAAwB;IACxB,eAAe;IACf,UAAU;CACX,CAAC;AAEF;;;;GAIG;AACH,MAAM,aAAa,GAAiD;IAClE,QAAQ,EAAE;QACR,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,0BAA0B;KACrC;IACD,SAAS,EAAE;QACT,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,kCAAkC;KAC7C;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,sDAAsD;KACjE;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,UAAU;QACnB,QAAQ,EACN,8HAA8H;KACjI;IACD,WAAW,EAAE;QACX,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,gCAAgC;KAC3C;IACD,WAAW,EAAE;QACX,OAAO,EAAE,gBAAgB;QACzB,QAAQ,EAAE,iCAAiC;KAC5C;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3D,QAAQ,EAAE,UAAU,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACnD;CACF,CAAC;AAeF,MAAM,SAAS,GAA+C,EAAE,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,GAAoC;IACnD,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;IACvC,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C;QACE,IAAI,EAAE,oBAAoB;QAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;KAC7D;IACD,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,EAAE,SAAS,EAAE;IACzD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;KACzC;IACD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;IACrD,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7C,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE;IACnD,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE;IACnD,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE;IACpD;QACE,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC9C,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,WAAW,CACrB,uBAAuB,EACvB,uCAAuC,CACxC;YACD,UAAU,EAAE,WAAW,CACrB,2BAA2B,EAC3B,yBAAyB,CAC1B;YACD,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,UAAU;SAClB;KACF;IACD,EAAE,IAAI,EAAE,mCAAmC,EAAE,MAAM,EAAE,SAAS,EAAE;IAChE;QACE,IAAI,EAAE,gCAAgC;QACtC,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;KAClD;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE;YACN,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,gBAAgB;YACvB,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,WAAW,CAClB,0BAA0B,EAC1B,iCAAiC,CAClC;SACF;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KAC1E;IACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,MAAM,EAAE,SAAS,EAAE;IACrD,EAAE,IAAI,EAAE,wCAAwC,EAAE,MAAM,EAAE,SAAS,EAAE;IACrE;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,YAAY,EAAE;KACjE;IACD,EAAE,IAAI,EAAE,wCAAwC,EAAE,MAAM,EAAE,SAAS,EAAE;IACrE;QACE,IAAI,EAAE,0BAA0B;QAChC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE;KACxE;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,MAAM,EAAE;YACN,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE,iCAAiC,CAAC;YACrE,UAAU,EAAE,YAAY;SACzB;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ,CAAC;gBACb,QAAQ;gBACR,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,MAAM;gBACN,WAAW;gBACX,SAAS;gBACT,SAAS;gBACT,YAAY;gBACZ,YAAY;gBACZ,kBAAkB;aACnB,CAAC;SACH;KACF;IACD,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE;IACpD;QACE,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE;IAChD,EAAE,IAAI,EAAE,6CAA6C,EAAE,MAAM,EAAE,SAAS,EAAE;IAC1E;QACE,IAAI,EAAE,qCAAqC;QAC3C,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE;QACjC,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,EAAE,IAAI,EAAE,uCAAuC,EAAE,MAAM,EAAE,SAAS,EAAE;IACpE,EAAE,IAAI,EAAE,yCAAyC,EAAE,MAAM,EAAE,SAAS,EAAE;IACtE,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IACnE,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE;IACvD,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,SAAS,EAAE;IACxD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;CACxD,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GACzC,0uBAA0uB,CAAC;AAE7uB,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAA0B;IACjE,UAAU;IACV,WAAW;IACX,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,QAAQ;IACR,MAAM;IACN,SAAS;CACV,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAA0B;IACtE,UAAU;IACV,aAAa;CACd,CAAC;AAEF,MAAM,eAAe,GAA0B,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAY9E,MAAM,YAAY,GAA+C;IAC/D,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,oBAAoB,GAAiD;IACzE,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB,CAAC,SAAS;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,EAAE;QAC9C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,uDAAuD;KACjE;IACD,MAAM,EAAE;QACN,IAAI,EAAE,mBAAmB,CAAC,SAAS;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QAC3C,QAAQ,EAAE,oBAAoB;QAC9B,OAAO,EAAE,oDAAoD;KAC9D;IACD,MAAM,EAAE;QACN,IAAI,EAAE,mBAAmB,CAAC,SAAS;QACnC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE;QACjD,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,iEAAiE;KAC3E;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;aAC3B;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;aAC3B;SACF;QACD,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,gEAAgE;KAC1E;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QAC3C,QAAQ,EAAE,YAAY;QACtB,OAAO,EACL,2GAA2G;KAC9G;IACD,OAAO,EAAE;QACP,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QAC3C,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,mDAAmD;KAC7D;IACD,KAAK,EAAE;QACL,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,QAAQ,EAAE,aAAa;QACvB,OAAO,EACL,sEAAsE;KACzE;CACF,CAAC;AAEF,MAAM,cAAc,GAEhB;IACF,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE;IACtD,GAAG,EAAE;QACH,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,YAAY;KACtB;CACF,CAAC;AAEF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,4BAA4B,GACvC,qbAAqb,CAAC;AAExb,iFAAiF;AAEjF,MAAM,aAAa,GACjB,0JAA0J,CAAC;AAE7J,MAAM,cAAc,GAClB,gNAAgN,CAAC;AAEnN,MAAM,iBAAiB,GACrB,mSAAmS,CAAC;AAEtS,MAAM,mBAAmB,GACvB,6GAA6G,CAAC;AAEhH,4CAA4C;AAC5C,MAAM,qBAAqB,GAA0B;IACnD,UAAU;IACV,YAAY;IACZ,WAAW;IACX,cAAc;CACf,CAAC;AAEF,yEAAyE;AACzE,MAAM,sBAAsB,GAA0B;IACpD,UAAU;IACV,cAAc;IACd,WAAW;IACX,YAAY;IACZ,SAAS;IACT,kBAAkB;CACnB,CAAC;AAEF,gEAAgE;AAChE,MAAM,yBAAyB,GAA0B;IACvD,MAAM;IACN,aAAa;IACb,WAAW;IACX,YAAY;IACZ,mBAAmB;CACpB,CAAC;AAEF,mDAAmD;AACnD,MAAM,kBAAkB,GAA0B;IAChD,UAAU;IACV,SAAS;IACT,YAAY;IACZ,YAAY;CACb,CAAC;AAEF;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,QAAuB;IACpD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5C,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,IACE,KAAK,KAAK,OAAO;QACjB,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EACrD,CAAC;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAAC,QAAuB;IACpD,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAExC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,wFAAwF,CAAC;IAClG,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,iBAAiB,KAAK,8FAA8F,CAAC;IAC9H,CAAC;IAED,IACE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU;QAC1B,QAAQ,CAAC,MAAM,IAAI,CAAC,EACpB,CAAC;QACD,OAAO,0HAA0H,CAAC;IACpI,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD,4DAA4D;AAC5D,MAAM,iBAAiB,GAAW,yBAAyB,CAAC;AAE5D;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAAoB;IACtC,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAkB,IAAI,CAAC;IAElC,MAAM,IAAI,GAA2B,CAAC,IAAY,EAAQ,EAAE;QAC1D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAW,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEpC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,IAAI,CACF,sFAAsF,CACvF,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,IAAI,GAAW,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,KAAa,CAAC;YAElB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAuB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE9C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/C,IAAI,CACF,KAAK,OAAO,CAAC,IAAI,CAAC,oCAAoC,OAAO,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,IAAI,CAAC,SAC7F,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,OAAO,CAAC,IAAI,CAAC,GAC9D,gCAAgC,CACjC,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,KAAK,GAAG,IAAI,CAAC;gBACb,CAAC,EAAE,CAAC;YACN,CAAC;YAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClC,IAAI,CACF,IAAI,OAAO,CAAC,IAAI,CAAC,wEAAwE,CAC1F,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,IAAI,iDAAiD,CAAC,CAAC;gBACjE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,CACF,IAAI,OAAO,CAAC,IAAI,CAAC,0JAA0J,CAC5K,CAAC;YACF,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,yEAAyE;AACzE,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAQD,yEAAyE;AACzE,MAAM,qBAAqB,GAAW,uBAAuB,CAAC;AAE9D,oDAAoD;AACpD,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,0DAA0D,CAAC;IACpE,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,GAAG,0BAA0B,EAAE,CAAC;QAC5C,OAAO,+BAA+B,0BAA0B,aAAa,CAAC;IAChF,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,wIAAwI,CAAC;IAClK,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,mFAAmF,CAAC;IAC7G,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC;IAClG,CAAC;IAED,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,uGAAuG,CAAC;IACjI,CAAC;IAED,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,OAAO,iEAAiE,8BAA8B,EAAE,CAAC;IAC3G,CAAC;IAED,MAAM,OAAO,GAAW,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnE,MAAM,QAAQ,GAAkB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5D,IACE,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE;QACzC,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC;IAC/D,CAAC,CAAC,EACF,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC;IAC3F,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;AAaD,qEAAqE;AACrE,SAAS,aAAa,CAAC,QAAuB;IAC5C,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,gBAAgB,GAAW,MAAM,CAAC,gBAAgB,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,OAAO,GAAkB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE9D,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,aAAa,GAAY,IAAI,CAAC;QAClC,IAAI,QAAQ,GAAW,CAAC,CAAC;QACzB,IAAI,YAAY,GAAkB,IAAI,CAAC;QAEvC,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAW,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,IAAI,GACR,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;gBAC3D,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC;gBACzB,CAAC,CAAC,SAAS,CAAC;YAEhB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;oBACxB,aAAa,GAAG,KAAK,CAAC;oBACtB,MAAM;gBACR,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/B,QAAQ,EAAE,CAAC;gBAEX,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC1B,YAAY,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClF,CAAC;gBACD,SAAS;YACX,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC;QAED,IAAI,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YAChC,gBAAgB,GAAG,QAAQ,CAAC;YAC5B,QAAQ,GAAG,YAAY,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnC,CAAC;AAOD,SAAS,WAAW,CAClB,OAAmD;IAEnD,MAAM,KAAK,GAAkB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE;QACrE,OAAO,KAAK,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,iCAAiC,4BAA4B,EAAE;QACjE,CAAC,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,4BAA4B,EAAE,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,OAA6B,EAC7B,OAAmD,EACnD,QAA+B,EAC/B,KAAa;IAEb,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,YAAY,GAA+B,IAAI,CAAC;IAEpD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;YACjD,MAAM,MAAM,GACV,sBAAsB,CAAC,IAAI,CAAC,CAAC,SAA8B,EAAE,EAAE;gBAC7D,OAAO,SAAS,KAAK,MAAM,CAAC,KAAK,CAAC;YACpC,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,KAAK,4BAA4B,mBAAmB,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YAClI,CAAC;YAED,YAAY,GAAG,MAAM,CAAC;YACtB,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GACR,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;YACxD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,KAAK,MAAM,CAAC,IAAI,8CAA8C,KAAK,KAAK,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACxG,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,MAAM,CAAC,IAAI,OAAO,KAAK,YAAY,IAAI,CAAC,QAAQ,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAClG,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;IACrC,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YACxD,MAAM,IAAI,GAAiC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzD,OAAO,GAAG,KAAK,YAAY,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAClC,CAAC;AAmBD,SAAS,IAAI,CAAC,MAAc;IAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,aAAa,GAA0B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC3D,MAAM,cAAc,GAAW,QAAQ,CAAC;AAExC,MAAM,eAAe,GACnB,kFAAkF,CAAC;AAErF,mEAAmE;AACnE,MAAM,gBAAgB,GAAqC;IACzD,GAAG,EAAE,iFAAiF,4BAA4B,EAAE;IACpH,MAAM,EAAE,iFAAiF,4BAA4B,EAAE;IACvH,KAAK,EAAE,4GAA4G,8BAA8B,EAAE;IACnJ,IAAI,EAAE,2GAA2G,8BAA8B,EAAE;CAClJ,CAAC;AAEF,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY;IAC5C,OAAO,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IAED,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAa,EAAW,EAAE;QACtC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;IAClC,CAAC,CAAC,EACF,CAAC;QACD,OAAO,IAAI,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAkB,OAAwB,CAAC;IAErD,IAAI,IAAI,CAAC,MAAM,GAAG,2BAA2B,EAAE,CAAC;QAC9C,OAAO,IAAI,CACT,8BAA8B,2BAA2B,SAAS,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAW,IAAI,CAAC,MAAM,CACrC,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;QACpC,OAAO,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,CAAC,EACD,CAAC,CACF,CAAC;IAEF,IAAI,WAAW,GAAG,wBAAwB,EAAE,CAAC;QAC3C,OAAO,IAAI,CACT,uBAAuB,wBAAwB,mBAAmB,CACnE,CAAC;IACJ,CAAC;IAED,IACE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAY,EAAW,EAAE;QAClC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC,CAAC,EACF,CAAC;QACD,OAAO,IAAI,CACT,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE,CAAC;QAC9B,OAAO,IAAI,CACT,kCAAkC,aAAa,MAAM,eAAe,EAAE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAW,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CACT,8BAA8B,eAAe,qCAAqC,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CACT,6HAA6H,CAC9H,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC;QACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAY,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC1C,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,OAAO,CAAC,kDAAkD,eAAe,EAAE,CACxF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAiB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAAuB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CACT,KAAK,CAAC,OAAO;YACX,iCAAiC,OAAO,mBAAmB,OAAO,IAChE,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,mCAC/B,EAAE,CACL,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAyB,QAAQ,CAAC,OAAO,CAAC,CAAC;IAErD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,SAAS,GAAkB,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEtE,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CACT,0CAA0C,OAAO,CAC/C,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAC3B,6CAA6C,CAC/C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM;QACX,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;QAC3C,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAClB,OAAe,EACf,IAAiB,EACjB,OAA6B;IAE7B,MAAM,MAAM,GAAuB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEhE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,IAAI,+LAA+L,8BAA8B,EAAE,CAC5O,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,IAAI,yCAAyC,8BAA8B,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAqB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;IACnD,MAAM,OAAO,GAAmC,YAAY,CAC1D,OAAO,EACP,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,QAAQ,IAAI,EAAE,EACpB,SAAS,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,CACjC,CAAC;IAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,mBAAmB,CAAC,IAAI;QAC9B,MAAM,EAAE,SAAS,IAAI,CAAC,IAAI,+CACxB,KAAK,CAAC,QAAQ;YACZ,CAAC,CAAC,uEAAuE;YACzE,CAAC,CAAC,EACN,EAAE;QACF,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;KACF,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,SAAS,aAAa,CAAC,QAAuB;IAC5C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;IAC7E,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;YACtE,QAAQ,CAAC,CAAC,CAAC,KAAK,UAAU,CAC3B,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,KAAa;IAC3D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,mCAAmC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC;QAC5C,OAAO,qCAAqC,IAAI,oGAAoG,CAAC;IACvJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,IAAiB,EACjB,OAA6B;IAE7B,MAAM,QAAQ,GAAkB,IAAI,CAAC,QAAQ,CAAC;IAC9C,MAAM,OAAO,GAAkB,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,MAAM,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAExC,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;QACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EACxB,CAAC;QACD,OAAO,kBAAkB,CACvB,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EACjB,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;QACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC3B,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,EACzB,CAAC;QACD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,IACE,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO;QACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,KAAK,KAAK,UAAU,EACpB,CAAC;QACD,OAAO,cAAc,CACnB,IAAI,EACJ,IAAI,EACJ,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EACjB,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EACjB,OAAO,CACR,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,IAAI,iCAAiC,IAAI,CAAC,IAAI,qBAAqB,4BAA4B,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CACT,gBAAgB,IAAI,CAAC,IAAI,oBAAoB,4BAA4B,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAiB,EACjB,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,MAAc,EACd,OAA6B;;IAE7B,MAAM,QAAQ,GAAW,iBAAiB,KAAK,kBAAkB,MAAM,EAAE,CAAC;IAC1E,MAAM,WAAW,GAAkB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,YAAY,CAAA,MAAA,aAAa,CAAC,QAAQ,CAAC,0CAAE,QAAQ,KAAI,QAAQ,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GACT,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC;QAChE,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,OAAO,GACX,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC;QAChE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,OAAO,GAAkB,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CACrE,CAAC,IAAY,EAAW,EAAE;YACxB,MAAM,SAAS,GACb,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE7B,OAAO,OAAO,CACZ,SAAS;gBACP,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAChE,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,MAAM,CAAC,cACjB,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAClC,gDAAgD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,KAAK,2BAC5F,KAAK,KAAK,KAAK,IAAI,MAAM,KAAK,OAAO;YACnC,CAAC,CAAC,gDAAgD;YAClD,CAAC,CAAC,EACN,EAAE,CACH,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAmC,YAAY,CAC1D,OAAO,EACP,OAAO,EACP,EAAE,EACF,gBAAgB,QAAQ,EAAE,CAC3B,CAAC;IAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE;QACvF,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;QAC1B,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,aAAa,EAAE,KAAK;QACpB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAAiB,EACjB,IAAY,EACZ,KAAa,EACb,IAAY,EACZ,OAA6B;;IAE7B,MAAM,QAAQ,GAAW,iBAAiB,KAAK,iBAAiB,CAAC;IACjE,MAAM,WAAW,GAAkB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,QAAQ,YAAY,CAAA,MAAA,aAAa,CAAC,QAAQ,CAAC,0CAAE,QAAQ,KAAI,QAAQ,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GACX,cAAc,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;IACrC,MAAM,OAAO,GAAmC,YAAY,CAC1D,OAAO,EACP,OAAO,EACP,CAAC,QAAQ,CAAC,EACV,gBAAgB,QAAQ,EAAE,CAC3B,CAAC;IAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,MAAM,GAAW,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEtD,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC;QAC9C,OAAO,IAAI,CACT,gDAAgD,MAAM,mCAAmC,CAC1F,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAChD,OAAO,IAAI,CACT,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,uBAAuB,IAAI,uCAAuC,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,SAAS,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,IAAI,YAAY,MAAM,gHAAgH;QAC3L,IAAI,EAAE,GAAG,KAAK,UAAU;QACxB,OAAO,EAAE,CAAC,IAAI,CAAC;QACf,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAAiB,EACjB,IAAY,EACZ,OAAe,EACf,MAAc,EACd,OAA6B;IAE7B,MAAM,QAAQ,GAAW,oCAAoC,MAAM,EAAE,CAAC;IACtE,MAAM,WAAW,GAAkB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE5E,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAI,CACT,0JAA0J,CAC3J,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,MAAM,CAAC,2DAA2D,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,6DAA6D,CACtK,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GACd,iCAAiC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CACT,IAAI,OAAO,CAAC,OAAO,CAAC,4CAA4C,MAAM,qCAAqC;YACzG,GAAG,4BAA4B;YAC/B,GAAG,iCAAiC;SACrC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAmC,YAAY,CAC1D,OAAO,EACP,SAAS,EACT,EAAE,EACF,gBAAgB,QAAQ,EAAE,CAC3B,CAAC;IAEF,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,mBAAmB,CAAC,UAAU;QACpC,MAAM,EAAE,UAAU;YAChB,CAAC,CAAC,GAAG,MAAM,KAAK,OAAO,YAAY,IAAI,KACnC,OAAO,KAAK,UAAU;gBACpB,CAAC,CAAC,gDAAgD;gBAClD,CAAC,CAAC,kEACN,iGAAiG;YACnG,CAAC,CAAC,GAAG,MAAM,SAAS,OAAO,oBAAoB,IAAI,oCAC/C,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UACpC,EAAE;QACN,IAAI,EAAE,WAAW,MAAM,EAAE;QACzB,OAAO,EAAE,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAC/B,aAAa,EAAE,UAAU;QACzB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAmB;IAEnB,IAAI,QAAyB,CAAC;IAE9B,IAAI,CAAC;QACH,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO;YACL,YAAY,EAAE,0DAA0D;SACzE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;YAC/B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI;YAC3B,MAAM,oBAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAE;YACtC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,MAAM,kBAAkB,GAAW;IACjC,uQAAuQ;IACvQ,qSAAqS;IACrS,iWAAiW;IACjW,ydAAyd;IACzd,sZAAsZ;IACtZ,uMAAuM;CACxM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,mBAAmB,GAAW;IAClC,gMAAgM;IAChM,yLAAyL;IACzL,maAAma;IACna,yMAAyM;IACzM,qMAAqM;CACtM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,oBAAoB,GAAuB;IAC/C,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,CAAC,aAAa,CAAC;IACzB,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,CAAC,IAAmB;QAC9B,IAAI,QAAyB,CAAC;QAE9B,IAAI,CAAC;YACH,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,YAAY,CACjB,IAAI,EACJ,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,KAAK,GAAkB,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAgC;YAC1C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,cAAc,EAAE,4BAA4B,CAAC,KAAK,CAAC;YACnD,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE;SAClC,CAAC;QAEF,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,565 @@
1
+ /*
2
+ * The resource command policy: the ONE entry point every caller uses to
3
+ * decide what a command for an infrastructure resource may do — the server's
4
+ * investigation and remediation tools, the enqueue chokepoint
5
+ * (RunnerJobService.enqueueAiResourceCommand), the approval path, the
6
+ * dashboard's allowlist form and the resource AI agent itself.
7
+ *
8
+ * It tokenizes (never a shell), checks that the command starts with one of
9
+ * the resource type's programs, dispatches the argv to that type's tool
10
+ * policy, and wraps the answer in the shared rules: the auto-execution
11
+ * ladder, the allowlist, and the agent's write scope (read-only unless
12
+ * ONEUPTIME_AI_ALLOW_WRITES=true, only ONEUPTIME_AI_WRITE_TARGETS, never the
13
+ * agent's own protected targets).
14
+ *
15
+ * Import-closed like the rest of this directory (see
16
+ * ResourceCommandPolicyCore): the agent carries a byte-identical copy.
17
+ */
18
+ import AiResourceType, { AI_RESOURCE_TYPE_INFO, isAiResourceType, } from "../../../Types/ResourceAiAgent/AiResourceType";
19
+ import { RESOURCE_AI_ALLOW_WRITES_ENV, RESOURCE_AI_WRITE_TARGETS_ENV, ResourceCommandTier, } from "../../../Types/ResourceAiAgent/ResourceAiAccess";
20
+ import { MAX_COMMAND_LENGTH_CHARS } from "../../../Types/AutoRemediation/AiRemediationCommandPolicyVerdict";
21
+ import { ALLOWLIST_WILDCARD_TOKEN, MAX_RESOURCE_COMMAND_TOKENS, allowlistPatternMatches, applyAutoExecutionLadder, deniedResult, getPrivilegeEscalationRefusal, globMatchesTarget, tokenizeResourceCommand, } from "./ResourceCommandPolicyCore";
22
+ import DockerEngineCommandPolicy from "./DockerEngineCommandPolicy";
23
+ import DockerSwarmCommandPolicy from "./DockerSwarmCommandPolicy";
24
+ import ProxmoxCommandPolicy from "./ProxmoxCommandPolicy";
25
+ import GovcCommandPolicy from "./GovcCommandPolicy";
26
+ import CephCommandPolicy from "./CephCommandPolicy";
27
+ import DatabaseCommandPolicy from "./DatabaseCommandPolicy";
28
+ import HostCommandPolicy from "./HostCommandPolicy";
29
+ /*
30
+ * Bounds on a resource's command allowlist, exported so the server's save
31
+ * validation and the dashboard's form hold entries to exactly what the
32
+ * matcher reads.
33
+ */
34
+ export const RESOURCE_ALLOWLIST_MAX_PATTERNS = 50;
35
+ export const RESOURCE_ALLOWLIST_MAX_PATTERN_LENGTH = 500;
36
+ /*
37
+ * Values a `*` in an allowlist entry is tried as, when deciding whether the
38
+ * entry could ever pre-approve a change: two names, two large numbers (a
39
+ * pid, a VMID) and two small ones (an OSD id), plus the words the tool's
40
+ * own grammar accepts there (ResourceToolPolicy.allowlistStandIns). The
41
+ * entry is valid when ANY combination makes it a write. Two values of each
42
+ * kind let isBroadAllowlistPattern see whether a `*` changes what a write
43
+ * touches.
44
+ */
45
+ const GENERIC_WILDCARD_STAND_INS = [
46
+ "placeholder-1",
47
+ "placeholder-2",
48
+ "1000",
49
+ "1001",
50
+ "1",
51
+ "2",
52
+ ];
53
+ /*
54
+ * How many combinations of stand-ins an entry is tried with at most. Every
55
+ * `*` multiplies them, so an entry with many `*`s is only partly explored —
56
+ * it can then be refused as "can never match" although some value would
57
+ * make it a write, which fails toward pre-approving less.
58
+ */
59
+ const MAX_WILDCARD_COMBINATIONS = 4096;
60
+ // Which tool policy answers for each resource type.
61
+ const TOOL_POLICY_BY_TYPE = {
62
+ [AiResourceType.DockerHost]: DockerEngineCommandPolicy,
63
+ [AiResourceType.PodmanHost]: DockerEngineCommandPolicy,
64
+ [AiResourceType.DockerSwarmCluster]: DockerSwarmCommandPolicy,
65
+ [AiResourceType.ProxmoxCluster]: ProxmoxCommandPolicy,
66
+ [AiResourceType.VMwareVCenter]: GovcCommandPolicy,
67
+ [AiResourceType.CephCluster]: CephCommandPolicy,
68
+ [AiResourceType.DatabaseServer]: DatabaseCommandPolicy,
69
+ [AiResourceType.Host]: HostCommandPolicy,
70
+ };
71
+ // Refuses everything, for a resource type this build does not know.
72
+ const UNKNOWN_TYPE_POLICY = {
73
+ name: "unknown",
74
+ programs: [],
75
+ readCommandGuide: "- Unavailable: this resource type has no command policy, so every command is refused.",
76
+ writeCommandGuide: "- Unavailable: this resource type has no command policy, so every command is refused.",
77
+ evaluateArgv(argv) {
78
+ return deniedResult(argv, "this resource type has no command policy, so every command is refused");
79
+ },
80
+ };
81
+ const ALL_TIERS = Object.values(ResourceCommandTier);
82
+ function isWriteTier(tier) {
83
+ return (tier === ResourceCommandTier.SafeWrite ||
84
+ tier === ResourceCommandTier.RiskyWrite);
85
+ }
86
+ // Hex a container or image id (or a prefix of one) is written in.
87
+ const HEX_ID_REGEX = /^[0-9a-f]+$/;
88
+ const FULL_HEX_ID_REGEX = /^[0-9a-f]{12,}$/;
89
+ /*
90
+ * Does this target name a protected one? Over-matching is the safe
91
+ * direction here, so the comparison is case-insensitive, ignores a leading
92
+ * "/" (docker prints container names as "/name"), honours `*` in the
93
+ * protected entry, and treats a hex word as the id PREFIX docker would
94
+ * resolve it as ("3f2a" names the protected container 3f2a9c...).
95
+ */
96
+ function isProtectedTarget(target, protectedTarget) {
97
+ const left = target.trim().replace(/^\/+/, "").toLowerCase();
98
+ const right = protectedTarget
99
+ .trim()
100
+ .replace(/^\/+/, "")
101
+ .toLowerCase();
102
+ if (!left || !right) {
103
+ return false;
104
+ }
105
+ if (left === right || globMatchesTarget(right, left)) {
106
+ return true;
107
+ }
108
+ return (HEX_ID_REGEX.test(left) &&
109
+ FULL_HEX_ID_REGEX.test(right) &&
110
+ right.startsWith(left));
111
+ }
112
+ function typeInfo(resourceType) {
113
+ return isAiResourceType(resourceType)
114
+ ? AI_RESOURCE_TYPE_INFO[resourceType]
115
+ : null;
116
+ }
117
+ /*
118
+ * A tool policy's answer, checked before anyone acts on it: a tool that
119
+ * throws, returns something that is not a result, or names a tier that does
120
+ * not exist is read as Denied. The program is always argv[0] (the dispatcher
121
+ * already checked it against the type's programs, and a job's payload is
122
+ * built from this result); the arguments the tool normalized are kept; a
123
+ * missing list becomes [].
124
+ */
125
+ function sanitizeToolResult(argv, raw) {
126
+ if (!raw || typeof raw !== "object") {
127
+ return deniedResult(argv, "the command policy returned no verdict for this command");
128
+ }
129
+ const result = raw;
130
+ const tier = result["tier"];
131
+ if (typeof tier !== "string" || !ALL_TIERS.includes(tier)) {
132
+ return deniedResult(argv, "the command policy returned an unknown tier for this command");
133
+ }
134
+ const words = (value) => {
135
+ return Array.isArray(value)
136
+ ? value.filter((word) => {
137
+ return typeof word === "string";
138
+ })
139
+ : [];
140
+ };
141
+ const reason = result["reason"];
142
+ const verb = result["verb"];
143
+ const displayCommand = result["displayCommand"];
144
+ const sanitized = {
145
+ tier: tier,
146
+ reason: typeof reason === "string" && reason ? reason : "no reason was given",
147
+ program: argv[0] || "",
148
+ args: Array.isArray(result["args"]) ? words(result["args"]) : argv.slice(1),
149
+ verb: typeof verb === "string" ? verb : "",
150
+ displayCommand: typeof displayCommand === "string" && displayCommand
151
+ ? displayCommand
152
+ : deniedResult(argv, "").displayCommand,
153
+ targets: words(result["targets"]),
154
+ };
155
+ if (result["requiresHuman"] === true) {
156
+ sanitized.requiresHuman = true;
157
+ }
158
+ return sanitized;
159
+ }
160
+ export default class ResourceCommandPolicy {
161
+ /*
162
+ * The tool policy for a resource type: DockerHost and PodmanHost share the
163
+ * docker engine policy, DockerSwarmCluster has the swarm one, and so on.
164
+ * An unknown type gets a policy that refuses everything.
165
+ */
166
+ static getToolPolicy(resourceType) {
167
+ if (!isAiResourceType(resourceType)) {
168
+ return UNKNOWN_TYPE_POLICY;
169
+ }
170
+ return TOOL_POLICY_BY_TYPE[resourceType];
171
+ }
172
+ // Tokenize (never a shell), then evaluate the argv.
173
+ static evaluateCommand(data) {
174
+ const command = data && typeof data.command === "string" ? data.command : "";
175
+ const tokenized = tokenizeResourceCommand(command);
176
+ if (!tokenized.argv) {
177
+ return {
178
+ tier: ResourceCommandTier.Denied,
179
+ reason: tokenized.errorMessage || "Could not parse the command.",
180
+ program: "",
181
+ args: [],
182
+ verb: "",
183
+ displayCommand: command.trim().slice(0, 200),
184
+ targets: [],
185
+ };
186
+ }
187
+ return ResourceCommandPolicy.evaluateArgv({
188
+ resourceType: data.resourceType,
189
+ argv: tokenized.argv,
190
+ });
191
+ }
192
+ /*
193
+ * The evaluation proper, on an argv that includes the program. The agent
194
+ * calls this on the argv it received, so its verdict never depends on
195
+ * re-tokenizing a string the same way the server did. Fails closed on
196
+ * anything malformed before a tool policy ever sees it.
197
+ */
198
+ static evaluateArgv(data) {
199
+ const rawArgv = data ? data.argv : undefined;
200
+ if (!Array.isArray(rawArgv) || rawArgv.length === 0) {
201
+ return deniedResult([], "Empty command.");
202
+ }
203
+ if (rawArgv.some((word) => {
204
+ return typeof word !== "string";
205
+ })) {
206
+ return deniedResult(rawArgv, "Every word of the command must be a string.");
207
+ }
208
+ const argv = rawArgv.slice();
209
+ if (argv.length > MAX_RESOURCE_COMMAND_TOKENS) {
210
+ return deniedResult(argv, `A command may have at most ${MAX_RESOURCE_COMMAND_TOKENS} words.`);
211
+ }
212
+ const totalLength = argv.reduce((sum, word) => {
213
+ return sum + word.length;
214
+ }, 0);
215
+ if (totalLength > MAX_COMMAND_LENGTH_CHARS) {
216
+ return deniedResult(argv, `Command exceeds the ${MAX_COMMAND_LENGTH_CHARS}-character limit.`);
217
+ }
218
+ if (argv.some((word) => {
219
+ return (word.includes("\n") || word.includes("\r") || word.includes("\0"));
220
+ })) {
221
+ return deniedResult(argv, "A command must be a single line: no word may hold a newline or a NUL character.");
222
+ }
223
+ const program = argv[0] || "";
224
+ const privilegeRefusal = getPrivilegeEscalationRefusal(program);
225
+ if (privilegeRefusal) {
226
+ return deniedResult(argv, privilegeRefusal);
227
+ }
228
+ const info = typeInfo(data.resourceType);
229
+ if (!info) {
230
+ return deniedResult(argv, "this resource type has no command policy, so every command is refused");
231
+ }
232
+ if (!info.programs.includes(program)) {
233
+ const programList = info.programs
234
+ .map((name) => {
235
+ return `"${name}"`;
236
+ })
237
+ .join(", ");
238
+ return deniedResult(argv, `"${program}" is not a program the ${info.agentDisplayName} runs: a command for a ${info.displayName} starts with ${programList}${program.includes("/")
239
+ ? " (write the program name without a path)"
240
+ : ""}`);
241
+ }
242
+ const tool = ResourceCommandPolicy.getToolPolicy(data.resourceType);
243
+ if (!tool.programs.includes(program)) {
244
+ return deniedResult(argv, `the ${tool.name} command policy does not cover "${program}"`);
245
+ }
246
+ let raw;
247
+ try {
248
+ // A copy: a tool policy must never be able to change the caller's argv.
249
+ raw = tool.evaluateArgv(argv.slice());
250
+ }
251
+ catch (_a) {
252
+ return deniedResult(argv, `the ${tool.name} command policy could not evaluate this command`);
253
+ }
254
+ return sanitizeToolResult(argv, raw);
255
+ }
256
+ static isReadOnly(data) {
257
+ return (ResourceCommandPolicy.evaluateCommand(data).tier ===
258
+ ResourceCommandTier.Read);
259
+ }
260
+ /*
261
+ * The remediation verdict for one command under a resource's settings
262
+ * (see applyAutoExecutionLadder). The allowlist is consulted only for a
263
+ * RiskyWrite, the one tier it can promote.
264
+ */
265
+ static evaluateForAutoExecution(data) {
266
+ const result = ResourceCommandPolicy.evaluateCommand({
267
+ resourceType: data.resourceType,
268
+ command: data.command,
269
+ });
270
+ const allowlistMatched = result.tier === ResourceCommandTier.RiskyWrite &&
271
+ result.requiresHuman !== true &&
272
+ ResourceCommandPolicy.matchesAllowlist({
273
+ resourceType: data.resourceType,
274
+ command: data.command,
275
+ patterns: data.allowlistPatterns,
276
+ });
277
+ return applyAutoExecutionLadder(result, {
278
+ allowlistMatched,
279
+ bypassApproval: data.bypassApproval === true,
280
+ });
281
+ }
282
+ /*
283
+ * Whether any of the resource's allowlist entries names this command,
284
+ * word by word (allowlistPatternMatches). Only the first
285
+ * RESOURCE_ALLOWLIST_MAX_PATTERNS entries are read, and an entry
286
+ * describeAllowlistPatternProblem refuses is skipped — so what the matcher
287
+ * reads and what the server and the dashboard accept are one set.
288
+ * Tier-blind: the ladder decides what a match may promote.
289
+ */
290
+ static matchesAllowlist(data) {
291
+ const tokenized = tokenizeResourceCommand(data ? data.command : "");
292
+ if (!tokenized.argv || !Array.isArray(data.patterns)) {
293
+ return false;
294
+ }
295
+ const patterns = data.patterns.slice(0, RESOURCE_ALLOWLIST_MAX_PATTERNS);
296
+ for (const pattern of patterns) {
297
+ if (ResourceCommandPolicy.describeAllowlistPatternProblem({
298
+ resourceType: data.resourceType,
299
+ pattern,
300
+ }) !== null) {
301
+ continue;
302
+ }
303
+ const patternArgv = tokenizeResourceCommand(pattern).argv;
304
+ if (patternArgv && allowlistPatternMatches(patternArgv, tokenized.argv)) {
305
+ return true;
306
+ }
307
+ }
308
+ return false;
309
+ }
310
+ /*
311
+ * Why an allowlist entry can never pre-approve anything, in words for the
312
+ * person typing it — or null when it is valid. The ONE definition of a
313
+ * valid entry: the server validates saves with it, the dashboard validates
314
+ * its form with it, and matchesAllowlist skips every entry it refuses.
315
+ * (The number of entries is checked by describeAllowlistProblems.)
316
+ */
317
+ static describeAllowlistPatternProblem(data) {
318
+ const pattern = data ? data.pattern : undefined;
319
+ if (typeof pattern !== "string" || !pattern.trim()) {
320
+ return "An allowlist entry cannot be blank.";
321
+ }
322
+ if (pattern.length > RESOURCE_ALLOWLIST_MAX_PATTERN_LENGTH) {
323
+ return `An allowlist entry can be at most ${RESOURCE_ALLOWLIST_MAX_PATTERN_LENGTH} characters long.`;
324
+ }
325
+ const shown = pattern.trim();
326
+ const info = typeInfo(data.resourceType);
327
+ if (!info) {
328
+ return `"${shown}" cannot be checked: this resource type has no command policy.`;
329
+ }
330
+ const tokenized = tokenizeResourceCommand(pattern);
331
+ if (!tokenized.argv) {
332
+ return `"${shown}" cannot be read as one command: ${tokenized.errorMessage || "it could not be split into words."}`;
333
+ }
334
+ const argv = tokenized.argv;
335
+ const program = argv[0] || "";
336
+ if (!info.programs.includes(program)) {
337
+ return `"${shown}" does not start with a program the ${info.agentDisplayName} runs (${info.programs.join(", ")}), so it can never match one of its commands.`;
338
+ }
339
+ if (argv.length < 3) {
340
+ return `"${shown}" has fewer than two words after "${program}", so it can never name a change to pre-approve. Write out the full command, with a * for each word that may vary.`;
341
+ }
342
+ if (argv[1] === ALLOWLIST_WILDCARD_TOKEN) {
343
+ return `"${shown}" has a * where the command goes (right after "${program}"). A * stands for exactly one word, and that word decides what kind of change runs, so write it out.`;
344
+ }
345
+ const results = ResourceCommandPolicy.evaluateWithStandIns(data.resourceType, argv);
346
+ if (results.some((result) => {
347
+ return isWriteTier(result.tier);
348
+ })) {
349
+ return null;
350
+ }
351
+ const read = results.find((result) => {
352
+ return result.tier === ResourceCommandTier.Read;
353
+ });
354
+ if (read) {
355
+ return `"${shown}" is a read-only command (${read.reason}). Reads never need approval, so an allowlist entry for one pre-approves nothing.`;
356
+ }
357
+ return `"${shown}" can never match a command that runs: ${results[0] ? results[0].reason : "the command policy refuses it"}.`;
358
+ }
359
+ /*
360
+ * Every problem with a whole allowlist, or null when it is valid: not a
361
+ * list, more than RESOURCE_ALLOWLIST_MAX_PATTERNS entries, or the first
362
+ * entry describeAllowlistPatternProblem refuses.
363
+ */
364
+ static describeAllowlistProblems(data) {
365
+ const patterns = data ? data.patterns : undefined;
366
+ if (!Array.isArray(patterns)) {
367
+ return "The allowlist must be a list of commands.";
368
+ }
369
+ if (patterns.length > RESOURCE_ALLOWLIST_MAX_PATTERNS) {
370
+ return `An allowlist can hold at most ${RESOURCE_ALLOWLIST_MAX_PATTERNS} entries (this one has ${patterns.length}).`;
371
+ }
372
+ for (const pattern of patterns) {
373
+ const problem = ResourceCommandPolicy.describeAllowlistPatternProblem({
374
+ resourceType: data.resourceType,
375
+ pattern,
376
+ });
377
+ if (problem) {
378
+ return problem;
379
+ }
380
+ }
381
+ return null;
382
+ }
383
+ /*
384
+ * Does this allowlist entry pre-approve changes to objects it does not
385
+ * name? True when a `*` stands for a target of the change (a container, a
386
+ * service, a VM, a unit, a pid, ...) — the dashboard asks for an explicit
387
+ * confirmation before saving such an entry. An invalid entry is never
388
+ * broad: it is refused before anyone could be asked to confirm it.
389
+ */
390
+ static isBroadAllowlistPattern(data) {
391
+ if (ResourceCommandPolicy.describeAllowlistPatternProblem(data) !== null) {
392
+ return false;
393
+ }
394
+ const argv = tokenizeResourceCommand(data.pattern).argv;
395
+ if (!argv) {
396
+ return false;
397
+ }
398
+ if (!argv.includes(ALLOWLIST_WILDCARD_TOKEN)) {
399
+ return false;
400
+ }
401
+ /*
402
+ * A `*` names a target when putting different words in its place
403
+ * changes what the write touches: the entry then pre-approves changes
404
+ * to objects nobody typed. A `*` in a value (a timeout, a replica
405
+ * count) leaves the targets alone.
406
+ */
407
+ const targetSets = new Set();
408
+ for (const result of ResourceCommandPolicy.evaluateWithStandIns(data.resourceType, argv)) {
409
+ if (!isWriteTier(result.tier)) {
410
+ continue;
411
+ }
412
+ targetSets.add(JSON.stringify([...result.targets].sort()));
413
+ if (targetSets.size > 1) {
414
+ return true;
415
+ }
416
+ }
417
+ return false;
418
+ }
419
+ /*
420
+ * Where the agent's own posture stops a write, or null when it may run.
421
+ * The same rule is asked at every enforcement point — the remediation
422
+ * tools, the enqueue chokepoint, the approval path and the agent — with
423
+ * the agent's reported (or, on the agent, configured) posture:
424
+ * - a read is never refused here;
425
+ * - a Denied command is refused (it never runs anywhere);
426
+ * - an agent without ONEUPTIME_AI_ALLOW_WRITES=true runs no write;
427
+ * - a write never touches one of the agent's protected targets;
428
+ * - with ONEUPTIME_AI_WRITE_TARGETS set, every target must match one of
429
+ * its globs, and a write that names no target is refused (it cannot
430
+ * be shown to stay inside them).
431
+ */
432
+ static getWriteScopeRefusal(data) {
433
+ const result = data
434
+ ? data.result
435
+ : undefined;
436
+ if (!result || typeof result !== "object") {
437
+ return "The command could not be evaluated, so it cannot run.";
438
+ }
439
+ if (result.tier === ResourceCommandTier.Read) {
440
+ return null;
441
+ }
442
+ const info = typeInfo(data.resourceType);
443
+ const agentName = info ? info.agentDisplayName : "AI agent";
444
+ const shown = result.displayCommand || "this command";
445
+ if (!isWriteTier(result.tier)) {
446
+ return `"${shown}" is denied by the command policy (${result.reason}), so it never runs.`;
447
+ }
448
+ if (data.allowWrites !== true) {
449
+ return `The ${agentName} for this ${info ? info.displayName : "resource"} is read-only, so it refuses every change, including "${shown}". To let OneUptime AI change it, set ${RESOURCE_AI_ALLOW_WRITES_ENV}=true on the agent and restart it.`;
450
+ }
451
+ const targets = Array.isArray(result.targets)
452
+ ? result.targets.filter((target) => {
453
+ return typeof target === "string" && target.trim().length > 0;
454
+ })
455
+ : [];
456
+ const protectedTargets = Array.isArray(data.protectedTargets)
457
+ ? data.protectedTargets.filter((entry) => {
458
+ return typeof entry === "string" && entry.trim().length > 0;
459
+ })
460
+ : [];
461
+ const toolPolicy = ResourceCommandPolicy.getToolPolicy(data.resourceType);
462
+ for (const target of targets) {
463
+ const protectedTarget = protectedTargets.find((entry) => {
464
+ if (isProtectedTarget(target, entry)) {
465
+ return true;
466
+ }
467
+ if (!toolPolicy.isProtectedTarget) {
468
+ return false;
469
+ }
470
+ try {
471
+ return toolPolicy.isProtectedTarget(target, entry) !== false;
472
+ }
473
+ catch (_a) {
474
+ // Over-matching is the safe direction.
475
+ return true;
476
+ }
477
+ });
478
+ if (protectedTarget !== undefined) {
479
+ return `"${shown}" would change ${target}, which the ${agentName} protects (${protectedTarget}): OneUptime AI never changes the agent itself or what it runs in.`;
480
+ }
481
+ }
482
+ const writeTargets = Array.isArray(data.writeTargets)
483
+ ? data.writeTargets
484
+ .filter((entry) => {
485
+ return typeof entry === "string";
486
+ })
487
+ .map((entry) => {
488
+ return entry.trim();
489
+ })
490
+ .filter((entry) => {
491
+ return entry.length > 0;
492
+ })
493
+ : [];
494
+ if (writeTargets.length === 0) {
495
+ return null;
496
+ }
497
+ const allowed = `${RESOURCE_AI_WRITE_TARGETS_ENV}=${writeTargets.join(",")}`;
498
+ if (targets.length === 0) {
499
+ return `"${shown}" does not name the objects it changes, and the ${agentName} only changes the targets its ${allowed} allows. Leave this change to a human, or clear ${RESOURCE_AI_WRITE_TARGETS_ENV} on the agent.`;
500
+ }
501
+ for (const target of targets) {
502
+ const inScope = writeTargets.some((glob) => {
503
+ return globMatchesTarget(glob, target);
504
+ });
505
+ if (!inScope) {
506
+ return `"${shown}" would change ${target}, which is outside the targets the ${agentName} may change (${allowed}). Add it to ${RESOURCE_AI_WRITE_TARGETS_ENV} on the agent and restart it, or leave this change to a human.`;
507
+ }
508
+ }
509
+ return null;
510
+ }
511
+ // The tool's read-command cheat-sheet, for the investigation tool's description.
512
+ static getReadCommandGuide(resourceType) {
513
+ return ResourceCommandPolicy.getToolPolicy(resourceType).readCommandGuide;
514
+ }
515
+ // The tool's write-command cheat-sheet, for the remediation tools' descriptions.
516
+ static getWriteCommandGuide(resourceType) {
517
+ return ResourceCommandPolicy.getToolPolicy(resourceType).writeCommandGuide;
518
+ }
519
+ /*
520
+ * The entry's argv evaluated with its `*`s replaced by every combination
521
+ * of stand-ins (the generic ones and the tool's own), up to
522
+ * MAX_WILDCARD_COMBINATIONS. An entry without a `*` is evaluated once.
523
+ */
524
+ static evaluateWithStandIns(resourceType, argv) {
525
+ const positions = [];
526
+ argv.forEach((word, index) => {
527
+ if (word === ALLOWLIST_WILDCARD_TOKEN) {
528
+ positions.push(index);
529
+ }
530
+ });
531
+ if (positions.length === 0) {
532
+ return [ResourceCommandPolicy.evaluateArgv({ resourceType, argv })];
533
+ }
534
+ const toolStandIns = ResourceCommandPolicy.getToolPolicy(resourceType).allowlistStandIns || [];
535
+ const candidates = Array.from(new Set([...GENERIC_WILDCARD_STAND_INS, ...toolStandIns])).filter((word) => {
536
+ return typeof word === "string" && word !== ALLOWLIST_WILDCARD_TOKEN;
537
+ });
538
+ const results = [];
539
+ // One counter per `*`, counting in base candidates.length.
540
+ const counters = positions.map(() => {
541
+ return 0;
542
+ });
543
+ while (results.length < MAX_WILDCARD_COMBINATIONS) {
544
+ const concrete = [...argv];
545
+ positions.forEach((position, index) => {
546
+ concrete[position] = candidates[counters[index] || 0] || "";
547
+ });
548
+ results.push(ResourceCommandPolicy.evaluateArgv({ resourceType, argv: concrete }));
549
+ let carry = counters.length - 1;
550
+ while (carry >= 0) {
551
+ counters[carry] = (counters[carry] || 0) + 1;
552
+ if ((counters[carry] || 0) < candidates.length) {
553
+ break;
554
+ }
555
+ counters[carry] = 0;
556
+ carry--;
557
+ }
558
+ if (carry < 0) {
559
+ break;
560
+ }
561
+ }
562
+ return results;
563
+ }
564
+ }
565
+ //# sourceMappingURL=ResourceCommandPolicy.js.map