@oneuptime/common 12.0.6 → 12.0.7

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 (424) hide show
  1. package/Models/DatabaseModels/AIInsight.ts +1 -1
  2. package/Models/DatabaseModels/DatabaseBaseModel/FileModel.ts +2 -3
  3. package/Models/DatabaseModels/DeletedProject.ts +595 -0
  4. package/Models/DatabaseModels/Index.ts +2 -0
  5. package/Models/DatabaseModels/Monitor.ts +111 -0
  6. package/Models/DatabaseModels/Project.ts +3 -3
  7. package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -1
  8. package/Server/API/FileAPI.ts +15 -2
  9. package/Server/API/MicrosoftTeamsAPI.ts +6 -1
  10. package/Server/API/ProjectAPI.ts +214 -0
  11. package/Server/API/StatusPageAPI.ts +39 -6
  12. package/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.ts +50 -0
  13. package/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.ts +67 -0
  14. package/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.ts +39 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  16. package/Server/Services/AIAgentService.ts +20 -0
  17. package/Server/Services/DashboardDomainService.ts +73 -28
  18. package/Server/Services/DatabaseService.ts +1 -0
  19. package/Server/Services/DeletedProjectService.ts +138 -0
  20. package/Server/Services/FileService.ts +61 -0
  21. package/Server/Services/IncidentEpisodePublicNoteService.ts +18 -0
  22. package/Server/Services/IncidentPublicNoteService.ts +18 -0
  23. package/Server/Services/Index.ts +2 -0
  24. package/Server/Services/MonitorService.ts +311 -0
  25. package/Server/Services/ProbeService.ts +20 -0
  26. package/Server/Services/ProjectService.ts +297 -1
  27. package/Server/Services/PushNotificationService.ts +71 -0
  28. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +18 -0
  29. package/Server/Services/StatusPageAnnouncementService.ts +53 -0
  30. package/Server/Services/StatusPageDomainService.ts +73 -28
  31. package/Server/Services/TeamMemberService.ts +117 -12
  32. package/Server/Services/TelemetryIngestionKeyService.ts +1 -0
  33. package/Server/Services/UserWebhookService.ts +34 -109
  34. package/Server/Services/WorkspaceNotificationRuleService.ts +69 -0
  35. package/Server/Services/WorkspaceProjectAuthTokenService.ts +37 -1
  36. package/Server/Types/Database/DeleteById.ts +2 -0
  37. package/Server/Types/Database/DeleteOneBy.ts +6 -0
  38. package/Server/Types/Domain.ts +41 -0
  39. package/Server/Types/Workflow/Components/API/Delete.ts +2 -1
  40. package/Server/Types/Workflow/Components/API/Get.ts +2 -1
  41. package/Server/Types/Workflow/Components/API/Patch.ts +2 -1
  42. package/Server/Types/Workflow/Components/API/Post.ts +2 -1
  43. package/Server/Types/Workflow/Components/API/Put.ts +2 -1
  44. package/Server/Types/Workflow/Components/API/Utils.ts +41 -2
  45. package/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.ts +25 -19
  46. package/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.ts +6 -5
  47. package/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.ts +32 -14
  48. package/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.ts +31 -13
  49. package/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.ts +29 -20
  50. package/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.ts +28 -21
  51. package/Server/Types/Workflow/Components/BaseModel/LogComponentError.ts +89 -0
  52. package/Server/Types/Workflow/Components/BaseModel/ModelArguments.ts +208 -0
  53. package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +11 -0
  54. package/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.ts +41 -18
  55. package/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.ts +45 -19
  56. package/Server/Types/Workflow/Components/Discord/SendMessageToChannel.ts +16 -9
  57. package/Server/Types/Workflow/Components/IncomingWebhookUtils.ts +66 -0
  58. package/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts +15 -9
  59. package/Server/Types/Workflow/Components/Slack/SendMessageToChannel.ts +17 -0
  60. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
  61. package/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts +171 -0
  62. package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +3 -3
  63. package/Server/Utils/AI/SRE/Insights/FixRouting.ts +3 -2
  64. package/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts +1 -1
  65. package/Server/Utils/AI/Toolbox/CodeWriteTools.ts +6 -6
  66. package/Server/Utils/CodeRepository/GitHub/GitHub.ts +43 -5
  67. package/Server/Utils/DataSource/EgressGuard.ts +176 -16
  68. package/Server/Utils/DataSource/HttpFetch.ts +6 -45
  69. package/Server/Utils/Execute.ts +8 -0
  70. package/Server/Utils/InlineImageAccessTokenSync.ts +23 -0
  71. package/Server/Utils/LLM/LLMService.ts +57 -12
  72. package/Server/Utils/Monitor/MonitorAlert.ts +40 -0
  73. package/Server/Utils/Monitor/MonitorDependencySuppression.ts +192 -0
  74. package/Server/Utils/Monitor/MonitorIncident.ts +40 -0
  75. package/Server/Utils/Monitor/MonitorResource.ts +36 -0
  76. package/Server/Utils/Response.ts +142 -6
  77. package/Server/Utils/SSRFProtection.ts +273 -60
  78. package/Server/Utils/StartServer.ts +8 -0
  79. package/Server/Utils/VM/VMRunner.ts +88 -1
  80. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +555 -49
  81. package/Server/Utils/Workspace/Slack/Slack.ts +25 -2
  82. package/Server/Utils/Workspace/WorkspaceBase.ts +6 -0
  83. package/Tests/App/Dashboard/DangerZone.test.tsx +334 -0
  84. package/Tests/App/Dashboard/DashboardVariableAllContract.test.tsx +539 -0
  85. package/Tests/App/Dashboard/DashboardVariableSelector.test.tsx +678 -0
  86. package/Tests/App/Dashboard/DashboardVariablesDiscard.test.tsx +706 -0
  87. package/Tests/App/Dashboard/DashboardVariablesModal.test.tsx +508 -0
  88. package/Tests/App/PublicDashboard/DashboardVariableSelector.test.tsx +470 -0
  89. package/Tests/App/StatusPage/StatusPageDetailPagesNotFound.test.tsx +308 -0
  90. package/Tests/Models/DatabaseModels/DeletedProjectModel.test.ts +251 -0
  91. package/Tests/Models/DatabaseModels/SavedViewJSONColumnTuples.test.ts +115 -0
  92. package/Tests/Server/API/FileAPIAccessControl.test.ts +316 -0
  93. package/Tests/Server/API/ProjectAPI.test.ts +299 -1
  94. package/Tests/Server/API/ProjectAPIAdjustBalance.test.ts +459 -0
  95. package/Tests/Server/API/ProjectAPIAdjustBalanceBillingDisabled.test.ts +177 -0
  96. package/Tests/Server/Services/DatabaseServiceDeletionReason.test.ts +123 -0
  97. package/Tests/Server/Services/DeletedProjectService.test.ts +415 -0
  98. package/Tests/Server/Services/DeletedProjectServiceSelfHosted.test.ts +70 -0
  99. package/Tests/Server/Services/DomainSubdomainHooks.test.ts +94 -0
  100. package/Tests/Server/Services/FileIsPublicBooleanMigration.test.ts +244 -0
  101. package/Tests/Server/Services/FileServiceMimeType.test.ts +89 -0
  102. package/Tests/Server/Services/MonitorServiceDependencyValidation.test.ts +702 -0
  103. package/Tests/Server/Services/ProjectServiceAdjustBalance.test.ts +615 -0
  104. package/Tests/Server/Services/ProjectServiceDeleteAudit.test.ts +406 -0
  105. package/Tests/Server/Services/PublishTimeImageVisibility.test.ts +450 -0
  106. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +669 -0
  107. package/Tests/Server/Services/UserWebhookSSRF.test.ts +174 -0
  108. package/Tests/Server/Services/WebPushEndpointAllowlist.test.ts +133 -0
  109. package/Tests/Server/Services/WorkspaceProjectAuthTokenRepoint.test.ts +618 -0
  110. package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +26 -1
  111. package/Tests/Server/Types/Workflow/Components/ApiComponentSsrf.test.ts +215 -0
  112. package/Tests/Server/Types/Workflow/Components/BaseModelDatabaseComponents.test.ts +742 -0
  113. package/Tests/Server/Types/Workflow/Components/ChatWebhookComponents.test.ts +256 -0
  114. package/Tests/Server/Types/Workflow/Components/ModelArguments.test.ts +371 -0
  115. package/Tests/Server/Utils/AI/CodeAgentCommandGuard.test.ts +204 -0
  116. package/Tests/Server/Utils/AI/CodeAgentWriteLimits.test.ts +213 -0
  117. package/Tests/Server/Utils/AI/CodeWriteTools.test.ts +52 -5
  118. package/Tests/Server/Utils/AI/LLMServiceBaseUrl.test.ts +3 -0
  119. package/Tests/Server/Utils/AI/LLMServiceEgressGuard.test.ts +315 -0
  120. package/Tests/Server/Utils/AI/LLMServiceModelCompatibility.test.ts +3 -0
  121. package/Tests/Server/Utils/AI/LLMServiceRequestPolicy.test.ts +17 -5
  122. package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +14 -1
  123. package/Tests/Server/Utils/AI/ObservabilityChatPrompt.test.ts +35 -0
  124. package/Tests/Server/Utils/AI/StubLLMEgressGuard.ts +25 -0
  125. package/Tests/Server/Utils/Dashboard/PublicDashboardResourceListPolicy.test.ts +62 -7
  126. package/Tests/Server/Utils/DataSource/EgressGuard.test.ts +69 -0
  127. package/Tests/Server/Utils/DataSource/EgressGuardPinning.test.ts +330 -0
  128. package/Tests/Server/Utils/GitHubCreatePullRequestWithToken.test.ts +393 -0
  129. package/Tests/Server/Utils/InlineImageAccessTokenSync.test.ts +202 -0
  130. package/Tests/Server/Utils/Monitor/MonitorDependencySuppression.test.ts +811 -0
  131. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +604 -0
  132. package/Tests/Server/Utils/ResponseSendFileResponse.test.ts +192 -0
  133. package/Tests/Server/Utils/SSRFProtectionBypasses.test.ts +406 -0
  134. package/Tests/Server/Utils/VM/VMRunnerSsrf.test.ts +194 -0
  135. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +1169 -0
  136. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelsList.test.ts +2 -0
  137. package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +1605 -0
  138. package/Tests/Server/Utils/Workspace/MicrosoftTeamsTenantResolution.test.ts +1218 -0
  139. package/Tests/Types/AI/AIChatMessageStatus.test.ts +79 -0
  140. package/Tests/Types/AI/AIInsightStatus.test.ts +40 -0
  141. package/Tests/Types/API/HostnameAuthorityParsing.test.ts +157 -0
  142. package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +27 -0
  143. package/Tests/Types/DataSource/DataSourceLimits.test.ts +71 -0
  144. package/Tests/Types/DataSource/DataSourceType.test.ts +181 -0
  145. package/Tests/Types/DomainSubdomainValidation.test.ts +90 -0
  146. package/Tests/Types/JSONFunctions.test.ts +252 -1
  147. package/Tests/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.test.ts +61 -0
  148. package/Tests/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.test.ts +62 -0
  149. package/Tests/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.test.ts +68 -0
  150. package/Tests/Types/Monitor/SnmpMonitor/SnmpVersion.test.ts +51 -0
  151. package/Tests/UI/Components/404.test.tsx +1 -1
  152. package/Tests/UI/Components/Alert.test.tsx +1 -1
  153. package/Tests/UI/Components/Badge.test.tsx +1 -1
  154. package/Tests/UI/Components/BasicForm.test.tsx +39 -10
  155. package/Tests/UI/Components/Button.test.tsx +1 -1
  156. package/Tests/UI/Components/Card.test.tsx +1 -1
  157. package/Tests/UI/Components/Charts/AxisTickColor.test.tsx +1 -1
  158. package/Tests/UI/Components/ColorViewer.test.tsx +1 -1
  159. package/Tests/UI/Components/ComponentsModal.test.tsx +7 -1
  160. package/Tests/UI/Components/DictionaryOfStrings.test.tsx +1 -1
  161. package/Tests/UI/Components/Dropdown.test.tsx +1 -1
  162. package/Tests/UI/Components/FilePicker.test.tsx +1 -1
  163. package/Tests/UI/Components/HiddenText.test.tsx +1 -1
  164. package/Tests/UI/Components/Input.test.tsx +1 -1
  165. package/Tests/UI/Components/Loader.test.tsx +1 -1
  166. package/Tests/UI/Components/LogTimeRangePicker.test.tsx +1 -1
  167. package/Tests/UI/Components/MasterPage.test.tsx +1 -1
  168. package/Tests/UI/Components/ModalPortalDismissal.test.tsx +489 -0
  169. package/Tests/UI/Components/ModelDelete.test.tsx +214 -0
  170. package/Tests/UI/Components/ModelTable/BaseModelTableBulkSelectAll.test.tsx +1 -1
  171. package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +1 -1
  172. package/Tests/UI/Components/ModelTable/BaseModelTableSearchLabels.test.tsx +1 -1
  173. package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +1 -1
  174. package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1 -1
  175. package/Tests/UI/Components/NavBar.test.tsx +1 -1
  176. package/Tests/UI/Components/OperatorSelectorKeyboard.test.tsx +1 -1
  177. package/Tests/UI/Components/Pagination.test.tsx +1 -1
  178. package/Tests/UI/Components/Pill.test.tsx +1 -1
  179. package/Tests/UI/Components/Probe.test.tsx +1 -1
  180. package/Tests/UI/Components/ProgressBar.test.tsx +1 -1
  181. package/Tests/UI/Components/RadioButtons.test.tsx +1 -1
  182. package/Tests/UI/Components/SideMenuItem.test.tsx +1 -1
  183. package/Tests/UI/Components/SideOver.test.tsx +500 -6
  184. package/Tests/UI/Components/Tabs.test.tsx +1 -1
  185. package/Tests/UI/Components/TelemetrySearchBar.test.tsx +1 -1
  186. package/Tests/UI/Components/TelemetryTimeRangePicker.test.tsx +1 -1
  187. package/Tests/UI/Components/TextArea.test.tsx +1 -1
  188. package/Tests/UI/Components/Toast.test.tsx +1 -1
  189. package/Tests/UI/Components/Toggle.test.tsx +1 -1
  190. package/Tests/UI/Components/TopSection.test.tsx +1 -1
  191. package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +1 -1
  192. package/Tests/UI/Rum/ReplayScrubber.test.tsx +1 -1
  193. package/Tests/UI/Rum/ReplayStage.test.tsx +1 -1
  194. package/Tests/UI/Telemetry/TelemetrySnapshotWindowAlert.test.tsx +1 -1
  195. package/Tests/UI/Utils/LocalStorageArrayRoundTrip.test.ts +72 -0
  196. package/Tests/Utils/Dashboard/HtmlWidgetDocument.test.ts +19 -2
  197. package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +44 -0
  198. package/Tests/Utils/Dashboard/VariableInterpolation.test.ts +288 -5
  199. package/Tests/Utils/Dashboard/VariableUrlState.test.ts +42 -0
  200. package/Tests/Utils/DataSource/DataSourceQueryText.test.ts +27 -0
  201. package/Tests/Utils/LegacySerializedArray.test.ts +139 -0
  202. package/Tests/Utils/Monitor/MonitorDependencyRule.test.ts +190 -0
  203. package/Tests/Utils/Realtime.test.ts +78 -0
  204. package/Tests/Utils/Telemetry/SavedViewFilters.test.ts +246 -0
  205. package/Tests/__mocks__/i18next-browser-languagedetector.js +21 -0
  206. package/Types/AI/FixPullRequestCiStatus.ts +1 -1
  207. package/Types/AI/FixVerificationStatus.ts +2 -2
  208. package/Types/API/Hostname.ts +92 -4
  209. package/Types/API/URL.ts +43 -25
  210. package/Types/Billing/BalanceAdjustmentType.ts +14 -0
  211. package/Types/Billing/ProjectBalanceType.ts +13 -0
  212. package/Types/Domain.ts +26 -0
  213. package/Types/File/MimeType.ts +11 -0
  214. package/Types/JSONFunctions.ts +15 -0
  215. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -1
  216. package/Types/Workflow/Components/BaseModel.ts +92 -28
  217. package/Typings/Index.d.ts +12 -0
  218. package/UI/Components/GanttChart/ChartContainer.tsx +4 -3
  219. package/UI/Components/Modal/ConfirmModal.tsx +10 -5
  220. package/UI/Components/Modal/Modal.tsx +27 -47
  221. package/UI/Components/ModelDelete/ModelDelete.tsx +23 -6
  222. package/UI/Components/SideOver/SideOver.tsx +195 -68
  223. package/UI/Utils/PageScrollLock.ts +66 -0
  224. package/Utils/Dashboard/HtmlWidgetDocument.ts +4 -2
  225. package/Utils/Dashboard/VariableInterpolation.ts +19 -1
  226. package/Utils/LegacySerializedArray.ts +60 -0
  227. package/Utils/Monitor/MonitorDependencyRule.ts +88 -0
  228. package/Utils/Telemetry/SavedViewFilters.ts +88 -0
  229. package/build/dist/Models/DatabaseModels/AIInsight.js +1 -1
  230. package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -1
  231. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js +2 -3
  232. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/FileModel.js.map +1 -1
  233. package/build/dist/Models/DatabaseModels/DeletedProject.js +640 -0
  234. package/build/dist/Models/DatabaseModels/DeletedProject.js.map +1 -0
  235. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  236. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  237. package/build/dist/Models/DatabaseModels/Monitor.js +106 -0
  238. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  239. package/build/dist/Models/DatabaseModels/Project.js +3 -3
  240. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  241. package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
  242. package/build/dist/Server/API/FileAPI.js +14 -2
  243. package/build/dist/Server/API/FileAPI.js.map +1 -1
  244. package/build/dist/Server/API/MicrosoftTeamsAPI.js +6 -1
  245. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  246. package/build/dist/Server/API/ProjectAPI.js +157 -4
  247. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  248. package/build/dist/Server/API/StatusPageAPI.js +27 -3
  249. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  250. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js +34 -0
  251. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786446545142-MigrationName.js.map +1 -0
  252. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js +30 -0
  253. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786449497966-AddMonitorDependency.js.map +1 -0
  254. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js +20 -0
  255. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786461136170-AddDeletedProjectTable.js.map +1 -0
  256. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  257. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  258. package/build/dist/Server/Services/AIAgentService.js +17 -0
  259. package/build/dist/Server/Services/AIAgentService.js.map +1 -1
  260. package/build/dist/Server/Services/DashboardDomainService.js +55 -18
  261. package/build/dist/Server/Services/DashboardDomainService.js.map +1 -1
  262. package/build/dist/Server/Services/DatabaseService.js +1 -0
  263. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  264. package/build/dist/Server/Services/DeletedProjectService.js +124 -0
  265. package/build/dist/Server/Services/DeletedProjectService.js.map +1 -0
  266. package/build/dist/Server/Services/FileService.js +52 -0
  267. package/build/dist/Server/Services/FileService.js.map +1 -1
  268. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js +10 -1
  269. package/build/dist/Server/Services/IncidentEpisodePublicNoteService.js.map +1 -1
  270. package/build/dist/Server/Services/IncidentPublicNoteService.js +10 -1
  271. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  272. package/build/dist/Server/Services/Index.js +2 -0
  273. package/build/dist/Server/Services/Index.js.map +1 -1
  274. package/build/dist/Server/Services/MonitorService.js +232 -0
  275. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  276. package/build/dist/Server/Services/ProbeService.js +17 -0
  277. package/build/dist/Server/Services/ProbeService.js.map +1 -1
  278. package/build/dist/Server/Services/ProjectService.js +228 -6
  279. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  280. package/build/dist/Server/Services/PushNotificationService.js +56 -0
  281. package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
  282. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +10 -1
  283. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  284. package/build/dist/Server/Services/StatusPageAnnouncementService.js +54 -0
  285. package/build/dist/Server/Services/StatusPageAnnouncementService.js.map +1 -1
  286. package/build/dist/Server/Services/StatusPageDomainService.js +55 -18
  287. package/build/dist/Server/Services/StatusPageDomainService.js.map +1 -1
  288. package/build/dist/Server/Services/TeamMemberService.js +97 -6
  289. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  290. package/build/dist/Server/Services/TelemetryIngestionKeyService.js +1 -0
  291. package/build/dist/Server/Services/TelemetryIngestionKeyService.js.map +1 -1
  292. package/build/dist/Server/Services/UserWebhookService.js +31 -87
  293. package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
  294. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +65 -0
  295. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  296. package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js +23 -0
  297. package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js.map +1 -1
  298. package/build/dist/Server/Types/Domain.js +37 -0
  299. package/build/dist/Server/Types/Domain.js.map +1 -1
  300. package/build/dist/Server/Types/Workflow/Components/API/Delete.js +2 -1
  301. package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
  302. package/build/dist/Server/Types/Workflow/Components/API/Get.js +2 -1
  303. package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
  304. package/build/dist/Server/Types/Workflow/Components/API/Patch.js +2 -1
  305. package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
  306. package/build/dist/Server/Types/Workflow/Components/API/Post.js +2 -1
  307. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  308. package/build/dist/Server/Types/Workflow/Components/API/Put.js +2 -1
  309. package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
  310. package/build/dist/Server/Types/Workflow/Components/API/Utils.js +35 -2
  311. package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
  312. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js +15 -11
  313. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateManyBaseModel.js.map +1 -1
  314. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js +2 -3
  315. package/build/dist/Server/Types/Workflow/Components/BaseModel/CreateOneBaseModel.js.map +1 -1
  316. package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js +21 -10
  317. package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteManyBaseModel.js.map +1 -1
  318. package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js +21 -10
  319. package/build/dist/Server/Types/Workflow/Components/BaseModel/DeleteOneBaseModel.js.map +1 -1
  320. package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js +18 -13
  321. package/build/dist/Server/Types/Workflow/Components/BaseModel/FindManyBaseModel.js.map +1 -1
  322. package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js +18 -13
  323. package/build/dist/Server/Types/Workflow/Components/BaseModel/FindOneBaseModel.js.map +1 -1
  324. package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js +43 -0
  325. package/build/dist/Server/Types/Workflow/Components/BaseModel/LogComponentError.js.map +1 -0
  326. package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js +116 -0
  327. package/build/dist/Server/Types/Workflow/Components/BaseModel/ModelArguments.js.map +1 -0
  328. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +7 -0
  329. package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
  330. package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js +24 -13
  331. package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateManyBaseModel.js.map +1 -1
  332. package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js +27 -13
  333. package/build/dist/Server/Types/Workflow/Components/BaseModel/UpdateOneBaseModel.js.map +1 -1
  334. package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js +14 -6
  335. package/build/dist/Server/Types/Workflow/Components/Discord/SendMessageToChannel.js.map +1 -1
  336. package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js +42 -0
  337. package/build/dist/Server/Types/Workflow/Components/IncomingWebhookUtils.js.map +1 -0
  338. package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js +15 -6
  339. package/build/dist/Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.js.map +1 -1
  340. package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js +10 -2
  341. package/build/dist/Server/Types/Workflow/Components/Slack/SendMessageToChannel.js.map +1 -1
  342. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
  343. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js +141 -0
  344. package/build/dist/Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.js.map +1 -1
  345. package/build/dist/Server/Utils/AI/SRE/Insights/FixRouting.js.map +1 -1
  346. package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js +1 -1
  347. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js +6 -6
  348. package/build/dist/Server/Utils/AI/Toolbox/CodeWriteTools.js.map +1 -1
  349. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js +39 -5
  350. package/build/dist/Server/Utils/CodeRepository/GitHub/GitHub.js.map +1 -1
  351. package/build/dist/Server/Utils/DataSource/EgressGuard.js +94 -10
  352. package/build/dist/Server/Utils/DataSource/EgressGuard.js.map +1 -1
  353. package/build/dist/Server/Utils/DataSource/HttpFetch.js +1 -19
  354. package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
  355. package/build/dist/Server/Utils/Execute.js +2 -2
  356. package/build/dist/Server/Utils/Execute.js.map +1 -1
  357. package/build/dist/Server/Utils/InlineImageAccessTokenSync.js +13 -0
  358. package/build/dist/Server/Utils/InlineImageAccessTokenSync.js.map +1 -1
  359. package/build/dist/Server/Utils/LLM/LLMService.js +43 -12
  360. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  361. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +44 -24
  362. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  363. package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js +158 -0
  364. package/build/dist/Server/Utils/Monitor/MonitorDependencySuppression.js.map +1 -0
  365. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +50 -30
  366. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  367. package/build/dist/Server/Utils/Monitor/MonitorResource.js +32 -0
  368. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  369. package/build/dist/Server/Utils/Response.js +112 -5
  370. package/build/dist/Server/Utils/Response.js.map +1 -1
  371. package/build/dist/Server/Utils/SSRFProtection.js +219 -53
  372. package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
  373. package/build/dist/Server/Utils/StartServer.js +7 -0
  374. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  375. package/build/dist/Server/Utils/VM/VMRunner.js +73 -1
  376. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  377. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +445 -43
  378. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  379. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +18 -1
  380. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  381. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  382. package/build/dist/Types/AI/FixPullRequestCiStatus.js +1 -1
  383. package/build/dist/Types/AI/FixVerificationStatus.js +2 -2
  384. package/build/dist/Types/API/Hostname.js +73 -4
  385. package/build/dist/Types/API/Hostname.js.map +1 -1
  386. package/build/dist/Types/API/URL.js +42 -24
  387. package/build/dist/Types/API/URL.js.map +1 -1
  388. package/build/dist/Types/Billing/BalanceAdjustmentType.js +15 -0
  389. package/build/dist/Types/Billing/BalanceAdjustmentType.js.map +1 -0
  390. package/build/dist/Types/Billing/ProjectBalanceType.js +14 -0
  391. package/build/dist/Types/Billing/ProjectBalanceType.js.map +1 -0
  392. package/build/dist/Types/Domain.js +22 -0
  393. package/build/dist/Types/Domain.js.map +1 -1
  394. package/build/dist/Types/File/MimeType.js +11 -0
  395. package/build/dist/Types/File/MimeType.js.map +1 -1
  396. package/build/dist/Types/JSONFunctions.js +14 -0
  397. package/build/dist/Types/JSONFunctions.js.map +1 -1
  398. package/build/dist/Types/Workflow/Components/BaseModel.js +83 -28
  399. package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
  400. package/build/dist/UI/Components/GanttChart/ChartContainer.js +4 -3
  401. package/build/dist/UI/Components/GanttChart/ChartContainer.js.map +1 -1
  402. package/build/dist/UI/Components/Modal/ConfirmModal.js +3 -1
  403. package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
  404. package/build/dist/UI/Components/Modal/Modal.js +24 -34
  405. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  406. package/build/dist/UI/Components/ModelDelete/ModelDelete.js +11 -6
  407. package/build/dist/UI/Components/ModelDelete/ModelDelete.js.map +1 -1
  408. package/build/dist/UI/Components/SideOver/SideOver.js +105 -30
  409. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  410. package/build/dist/UI/Utils/PageScrollLock.js +52 -0
  411. package/build/dist/UI/Utils/PageScrollLock.js.map +1 -0
  412. package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js +4 -2
  413. package/build/dist/Utils/Dashboard/HtmlWidgetDocument.js.map +1 -1
  414. package/build/dist/Utils/Dashboard/VariableInterpolation.js +19 -1
  415. package/build/dist/Utils/Dashboard/VariableInterpolation.js.map +1 -1
  416. package/build/dist/Utils/LegacySerializedArray.js +51 -0
  417. package/build/dist/Utils/LegacySerializedArray.js.map +1 -0
  418. package/build/dist/Utils/Monitor/MonitorDependencyRule.js +47 -0
  419. package/build/dist/Utils/Monitor/MonitorDependencyRule.js.map +1 -0
  420. package/build/dist/Utils/Telemetry/SavedViewFilters.js +52 -0
  421. package/build/dist/Utils/Telemetry/SavedViewFilters.js.map +1 -0
  422. package/jest.config.json +3 -0
  423. package/package.json +1 -1
  424. package/tsconfig.json +3 -1
@@ -0,0 +1,42 @@
1
+ import URL from "../../../../Types/API/URL";
2
+ import BadDataException from "../../../../Types/Exception/BadDataException";
3
+ import SSRFProtection from "../../../Utils/SSRFProtection";
4
+ /*
5
+ * The Slack / Discord / Microsoft Teams workflow components each take a
6
+ * free-text "webhook-url" argument off the workflow graph, which any project
7
+ * member can author and which can additionally be templated from trigger data.
8
+ * They then POST to it from the API server - the same SSRF primitive that
9
+ * GHSA-v5xh-rw9h-77fv reported against the API components.
10
+ *
11
+ * These are chat webhooks, so unlike the generic API components there is a
12
+ * vendor host to pin to, and a pin is strictly better than a blocklist: it
13
+ * cannot be walked around with DNS rebinding, an alternate IP notation, or a
14
+ * redirect. Nothing legitimate is lost - a self-hosted OneUptime still posts to
15
+ * hooks.slack.com like everyone else.
16
+ */
17
+ export const DISCORD_WEBHOOK_DOMAINS = [
18
+ "discord.com",
19
+ "discordapp.com",
20
+ ];
21
+ export class IncomingWebhookUtils {
22
+ /*
23
+ * Reads the component's "webhook-url" argument, requires it to be on one of
24
+ * `allowedDomains`, and returns it parsed. Throws through options.onError so
25
+ * the workflow stops with a message the author can act on.
26
+ *
27
+ * Validates the RAW string: URL.fromString defaults an unrecognized scheme to
28
+ * https, so converting first would let "gopher://..." arrive looking clean.
29
+ */
30
+ static getPinnedWebhookUrl(data) {
31
+ const rawUrl = data.args["webhook-url"];
32
+ if (!rawUrl) {
33
+ throw data.options.onError(new BadDataException(`${data.vendorName} Webhook URL not found`));
34
+ }
35
+ if (!SSRFProtection.isUrlOnAllowedDomain(rawUrl.toString(), data.allowedDomains)) {
36
+ throw data.options.onError(new BadDataException(`${data.vendorName} Webhook URL must be an https URL on ${data.allowedDomains.join(" or ")}.`));
37
+ }
38
+ return URL.fromString(rawUrl.toString());
39
+ }
40
+ }
41
+ export default IncomingWebhookUtils;
42
+ //# sourceMappingURL=IncomingWebhookUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncomingWebhookUtils.js","sourceRoot":"","sources":["../../../../../../Server/Types/Workflow/Components/IncomingWebhookUtils.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,2BAA2B,CAAC;AAC5C,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAE5E,OAAO,cAAc,MAAM,+BAA+B,CAAC;AAE3D;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAkB;IACpD,aAAa;IACb,gBAAgB;CACjB,CAAC;AAEF,MAAM,OAAO,oBAAoB;IAC/B;;;;;;;OAOG;IACI,MAAM,CAAC,mBAAmB,CAAC,IAKjC;QACC,MAAM,MAAM,GAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACxB,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC,UAAU,wBAAwB,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,IACE,CAAC,cAAc,CAAC,oBAAoB,CAClC,MAAM,CAAC,QAAQ,EAAE,EACjB,IAAI,CAAC,cAAc,CACpB,EACD,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACxB,IAAI,gBAAgB,CAClB,GAAG,IAAI,CAAC,UAAU,wCAAwC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAC9F,CACF,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAED,eAAe,oBAAoB,CAAC"}
@@ -8,8 +8,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import ComponentCode from "../../ComponentCode";
11
+ import IncomingWebhookUtils from "../IncomingWebhookUtils";
12
+ import { MICROSOFT_TEAMS_WEBHOOK_DOMAINS } from "../../../../Utils/Workspace/MicrosoftTeams/MicrosoftTeams";
11
13
  import HTTPErrorResponse from "../../../../../Types/API/HTTPErrorResponse";
12
- import URL from "../../../../../Types/API/URL";
13
14
  import APIException from "../../../../../Types/Exception/ApiException";
14
15
  import BadDataException from "../../../../../Types/Exception/BadDataException";
15
16
  import ComponentID from "../../../../../Types/Workflow/ComponentID";
@@ -28,7 +29,6 @@ export default class SendMessageToChannel extends ComponentCode {
28
29
  this.setMetadata(Component);
29
30
  }
30
31
  async run(args, options) {
31
- var _a;
32
32
  const successPort = this.getMetadata().outPorts.find((p) => {
33
33
  return p.id === "success";
34
34
  });
@@ -44,10 +44,12 @@ export default class SendMessageToChannel extends ComponentCode {
44
44
  if (!args["text"]) {
45
45
  throw options.onError(new BadDataException("Microsoft teams message not found"));
46
46
  }
47
- if (!args["webhook-url"]) {
48
- throw options.onError(new BadDataException("Microsoft teams Webhook URL not found"));
49
- }
50
- args["webhook-url"] = URL.fromString((_a = args["webhook-url"]) === null || _a === void 0 ? void 0 : _a.toString());
47
+ args["webhook-url"] = IncomingWebhookUtils.getPinnedWebhookUrl({
48
+ args,
49
+ options,
50
+ allowedDomains: MICROSOFT_TEAMS_WEBHOOK_DOMAINS,
51
+ vendorName: "Microsoft Teams",
52
+ });
51
53
  let apiResult = null;
52
54
  try {
53
55
  // https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/incoming-webhook/nodejs/api/server/index.js#L28
@@ -77,6 +79,13 @@ export default class SendMessageToChannel extends ComponentCode {
77
79
  },
78
80
  ],
79
81
  },
82
+ /*
83
+ * The host is pinned above; following a redirect would hand the
84
+ * destination back to whoever controls that host.
85
+ */
86
+ options: {
87
+ doNotFollowRedirects: true,
88
+ },
80
89
  });
81
90
  if (apiResult instanceof HTTPErrorResponse) {
82
91
  return Promise.resolve({
@@ -1 +1 @@
1
- {"version":3,"file":"SendMessageToChannel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendMessageToChannel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/MicrosoftTeams/SendMessageToChannel.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export default class SendMessageToChannel extends ComponentCode {
28
28
  this.setMetadata(Component);
29
29
  }
30
30
  async run(args, options) {
31
- var _a;
31
+ var _a, _b;
32
32
  const successPort = this.getMetadata().outPorts.find((p) => {
33
33
  return p.id === "success";
34
34
  });
@@ -47,7 +47,15 @@ export default class SendMessageToChannel extends ComponentCode {
47
47
  if (!args["webhook-url"]) {
48
48
  throw options.onError(new BadDataException("Slack Webhook URL not found"));
49
49
  }
50
- args["webhook-url"] = URL.fromString((_a = args["webhook-url"]) === null || _a === void 0 ? void 0 : _a.toString());
50
+ /*
51
+ * Pin the target to Slack's own incoming-webhook endpoint. Without this the
52
+ * component POSTs from the API server to any URL a workflow author types -
53
+ * the SSRF reported as GHSA-v5xh-rw9h-77fv against the API components.
54
+ */
55
+ if (!SlackUtil.isValidSlackIncomingWebhookUrl((_a = args["webhook-url"]) === null || _a === void 0 ? void 0 : _a.toString())) {
56
+ throw options.onError(new BadDataException("Slack Webhook URL must start with https://hooks.slack.com/services/"));
57
+ }
58
+ args["webhook-url"] = URL.fromString((_b = args["webhook-url"]) === null || _b === void 0 ? void 0 : _b.toString());
51
59
  let apiResult = null;
52
60
  try {
53
61
  // https://api.slack.com/messaging/webhooks#advanced_message_formatting
@@ -1 +1 @@
1
- {"version":3,"file":"SendMessageToChannel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/Slack/SendMessageToChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendMessageToChannel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/Slack/SendMessageToChannel.ts"],"names":[],"mappings":"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"}
@@ -124,7 +124,7 @@ If the project has connected code repositories you can read their source, which
124
124
 
125
125
  ## Changing the code
126
126
 
127
- You can propose code changes. open_code_pull_request is the right tool almost always: it opens a DRAFT pull request off the default branch for a human to review. commit_code_to_branch is only for when the user names an existing branch to commit onto.
127
+ You can propose code changes. open_code_pull_request is the right tool almost always: it opens a pull request off the default branch, ready for review, for a human to review and merge. commit_code_to_branch is only for when the user names an existing branch to commit onto.
128
128
 
129
129
  - ALWAYS read_code_file the exact file first. \`content\` replaces the file's ENTIRE contents, so writing from memory or from a guess destroys code you never read. If you have not read it in this conversation, read it now.
130
130
  - Never write to the default branch. The tools refuse it, and so should you — if the user asks you to commit straight to main/master, explain that changes go through a reviewable pull request.
@@ -10,6 +10,77 @@ import path from "path";
10
10
  */
11
11
  // Max characters a single tool result may feed back into the model.
12
12
  export const MAX_TOOL_OUTPUT_CHARS = 20000;
13
+ /*
14
+ * Max characters a single write_file may put on disk. A model that loops on
15
+ * a generation bug can otherwise fill the Runner's disk from inside a tool
16
+ * call, taking down every other capability on the host — and no legitimate
17
+ * source file a fix needs to write is anywhere near this size.
18
+ */
19
+ export const MAX_WRITE_FILE_CHARS = 2000000;
20
+ /*
21
+ * Git subcommands the code agent may not run.
22
+ *
23
+ * The pipeline owns the repository's git state: it cuts the branch, decides
24
+ * what to stage, writes the commit and pushes. It also computes "what did
25
+ * the agent change" from the working tree. A model that helpfully commits
26
+ * its own work, resets the tree, switches branches or pushes therefore does
27
+ * not just duplicate the pipeline — it destroys the pipeline's ability to
28
+ * see the change at all (a committed tree is a clean tree, so the run
29
+ * reports "no changes" and the fix is silently discarded), or it puts a
30
+ * branch on the customer's remote that no pull request points at.
31
+ *
32
+ * The system prompt already asks the model not to. This is the enforcement,
33
+ * because an instruction is not a control.
34
+ *
35
+ * Honest about what this is: a guard against a well-meaning model taking an
36
+ * obvious wrong turn, NOT a sandbox. Shell is too expressive to filter
37
+ * adversarially — the real containment boundary is that the workspace is
38
+ * ephemeral, the credential is never in it, and nothing merges without a
39
+ * human. Read-only git (log, diff, status, show, grep, blame) stays
40
+ * available because the agent genuinely needs it.
41
+ */
42
+ const REFUSED_GIT_SUBCOMMANDS = new Set([
43
+ "push",
44
+ "commit",
45
+ "reset",
46
+ "checkout",
47
+ "switch",
48
+ "restore",
49
+ "stash",
50
+ "clean",
51
+ "rebase",
52
+ "merge",
53
+ "cherry-pick",
54
+ "revert",
55
+ "am",
56
+ "apply",
57
+ "filter-branch",
58
+ "update-ref",
59
+ "remote",
60
+ "config",
61
+ "credential",
62
+ "gc",
63
+ "prune",
64
+ ]);
65
+ /*
66
+ * Shell operators that start a new command. Splitting on these is what lets
67
+ * the guard see the `git push` in `npm test && git push`.
68
+ */
69
+ const COMMAND_SEPARATORS = /(?:&&|\|\||[;\n|&()`]|\$\()/;
70
+ // A leading `VAR=value` assignment, which belongs to the command not to argv.
71
+ const LEADING_ENV_ASSIGNMENT = /^[A-Za-z_][A-Za-z0-9_]*=/;
72
+ /*
73
+ * Options that take a separate value argument, so the subcommand is the
74
+ * token after next rather than the next token (`git -C sub push`).
75
+ */
76
+ const GIT_OPTIONS_WITH_VALUE = new Set([
77
+ "-C",
78
+ "-c",
79
+ "--git-dir",
80
+ "--work-tree",
81
+ "--namespace",
82
+ "--exec-path",
83
+ ]);
13
84
  export default class CodeAgentWorkspaceGuard {
14
85
  /*
15
86
  * Resolve a model-supplied path against the workspace root, refusing any
@@ -34,6 +105,76 @@ export default class CodeAgentWorkspaceGuard {
34
105
  const relative = path.relative(path.resolve(workspaceRoot), absolutePath);
35
106
  return relative === "" ? "." : relative;
36
107
  }
108
+ /*
109
+ * Decide whether the agent may run a shell command.
110
+ *
111
+ * Only repository-state-mutating git is refused; everything else is
112
+ * allowed, because building and testing is the whole point of the tool.
113
+ * The refusal text names the reason so the model corrects course instead
114
+ * of retrying the same command.
115
+ */
116
+ static evaluateCommand(command) {
117
+ for (const segment of command.split(COMMAND_SEPARATORS)) {
118
+ const subcommand = this.gitSubcommandOf(segment);
119
+ if (subcommand && REFUSED_GIT_SUBCOMMANDS.has(subcommand)) {
120
+ return {
121
+ allowed: false,
122
+ reason: `Refused: \`git ${subcommand}\` is not available to you. The surrounding ` +
123
+ `pipeline owns this repository's git state — it created the branch, and it ` +
124
+ `stages, commits and pushes your changes once you are done. Running git ` +
125
+ `yourself would hide your work from it. Edit files with write_file and ` +
126
+ `leave git alone; read-only git (status, diff, log, show, grep) is allowed.`,
127
+ };
128
+ }
129
+ }
130
+ return { allowed: true, reason: null };
131
+ }
132
+ /*
133
+ * The git subcommand a single shell segment invokes, or null when the
134
+ * segment does not invoke git. Skips leading environment assignments
135
+ * (`GIT_DIR=x git ...`) and git's own global options, including the ones
136
+ * that consume a following value.
137
+ */
138
+ static gitSubcommandOf(segment) {
139
+ const tokens = segment
140
+ .trim()
141
+ .split(/\s+/)
142
+ .filter((token) => {
143
+ return token.length > 0;
144
+ });
145
+ let index = 0;
146
+ // Leading VAR=value assignments belong to the command, not to argv.
147
+ while (index < tokens.length &&
148
+ LEADING_ENV_ASSIGNMENT.test(tokens[index])) {
149
+ index++;
150
+ }
151
+ const executable = tokens[index];
152
+ if (!executable) {
153
+ return null;
154
+ }
155
+ // Match `git`, `/usr/bin/git`, and `"git"` alike.
156
+ const executableName = executable
157
+ .replace(/^["']|["']$/g, "")
158
+ .split("/")
159
+ .pop();
160
+ if (executableName !== "git") {
161
+ return null;
162
+ }
163
+ index++;
164
+ while (index < tokens.length) {
165
+ const token = tokens[index];
166
+ if (!token.startsWith("-")) {
167
+ return token.toLowerCase();
168
+ }
169
+ // `--git-dir=x` carries its value; `--git-dir x` consumes the next token.
170
+ if (GIT_OPTIONS_WITH_VALUE.has(token)) {
171
+ index += 2;
172
+ continue;
173
+ }
174
+ index++;
175
+ }
176
+ return null;
177
+ }
37
178
  /*
38
179
  * Truncate a tool output to the model-context cap, appending an explicit
39
180
  * marker so the model knows the output is partial rather than complete.
@@ -1 +1 @@
1
- {"version":3,"file":"CodeAgentWorkspaceGuard.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;GAOG;AAEH,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAW,KAAM,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;;;;OAMG;IACI,MAAM,CAAC,oBAAoB,CAChC,aAAqB,EACrB,aAAqB;QAErB,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAW,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAW,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAE3D,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,gBAAgB,CACxB,+BAA+B,aAAa,EAAE,CAC/C,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,mEAAmE;IAC5D,MAAM,CAAC,uBAAuB,CACnC,aAAqB,EACrB,YAAoB;QAEpB,MAAM,QAAQ,GAAW,IAAI,CAAC,QAAQ,CACpC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAC3B,YAAY,CACb,CAAC;QAEF,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,kBAAkB,CAC9B,MAAc,EACd,WAAmB,qBAAqB;QAExC,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,8BAA8B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAC/G,CAAC;CACF"}
1
+ {"version":3,"file":"CodeAgentWorkspaceGuard.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/CodeFix/CodeAgentWorkspaceGuard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FixRouting.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/AI/SRE/Insights/FixRouting.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,aAAa,MAAM,uCAAuC,CAAC;AAClE,OAAO,eAAe,MAAM,yCAAyC,CAAC;AAQtE,OAAO,YAAY,MAAM,mCAAmC,CAAC;AAC7D,OAAO,yBAAyB,MAAM,gDAAgD,CAAC;AAEvF,OAAO,yBAAyB,MAAM,8BAA8B,CAAC;AACrE,OAAO,YAAsC,MAAM,4BAA4B,CAAC;AAChF,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAsBzD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;OAMG;IAEiB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAGnC;;QACC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAElC,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtC,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;;;;;;;;eAQG;YACH,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,oCAAoC,CACxG,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;;;eAGG;YACH,IAAI,OAAO,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;gBAC3C,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mDAAmD,CACvH,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,kBAAkB,GACtB,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,YAAY;gBAClD,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,cAAc,CAAC;YAEvD,MAAM,gBAAgB,GACpB,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,sBAAsB,CAAC;YAE/D;;;;eAIG;YACH,IAAI,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,qEAAqE;YACrE,IAAI,kBAAkB,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACxD,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,4CAA4C,CAChH,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;;;eAGG;YACH,MAAM,eAAe,GACnB,CAAA,MAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,0CAAE,mBAAmB,KAAI,EAAE,CAAC;YACvD,MAAM,oBAAoB,GACxB,CAAA,MAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,0CAAE,aAAa,KAAI,EAAE,CAAC;YACjD,MAAM,cAAc,GAClB,OAAO,CAAC,OAAO,KAAI,MAAA,MAAA,OAAO,CAAC,QAAQ,0CAAE,OAAO,0CAAE,aAAa,CAAA,CAAC;YAE9D,IACE,gBAAgB;gBAChB,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EACjD,CAAC;gBACD,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,mEAAmE,CACvI,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;;;;;;eAMG;YACH,MAAM,MAAM,GAAyB,MAAM,YAAY,CAAC,eAAe,CACrE,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,YAAY,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAClH,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,IAAI,UAAiB,CAAC;YAEtB,IAAI,kBAAkB,EAAE,CAAC;gBACvB;;;;;;mBAMG;gBACH,MAAM,SAAS,GACb,MAAM,yBAAyB,CAAC,iBAAiB,CAAC;oBAChD,oBAAoB,EAAE,OAAO,CAAC,oBAAqB;oBACnD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBACxB,CAAC,CAAC;gBAEL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACrB,MAAM,CAAC,KAAK,CACV,8CAA8C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,oCAAoC,CACxG,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC;gBAED;;;;mBAIG;gBACH,UAAU;oBACR,MAAM,yBAAyB,CAAC,4BAA4B,CAAC;wBAC3D,oBAAoB,EAAE,OAAO,CAAC,oBAAqB;wBACnD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;wBACvB,QAAQ,EAAE,eAAe,CAAC,YAAY;qBACvC,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACN;;;;;mBAKG;gBACH,UAAU;oBACR,MAAM,yBAAyB,CAAC,oCAAoC,CAAC;wBACnE,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,OAAO,EAAE,cAAe;wBACxB,WAAW,EAAE,OAAO,CAAC,WAAW;wBAChC,QAAQ,EAAE,eAAe;wBACzB,aAAa,EAAE,oBAAoB;qBACpC,CAAC,CAAC;YACP,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;YAED;;;;;eAKG;YACH,IAAI,CAAC;gBACH,MAAM,YAAY,CAAC,aAAa,CAAC;oBAC/B,EAAE,EAAE,UAAU,CAAC,EAAE;oBACjB,IAAI,EAAE;wBACJ,sBAAsB,EAAE,OAAO,CAAC,EAAE;qBACnC;oBACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;iBACxB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV,wCAAwC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,CACnH,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,KAAK,CACV,uBAAuB,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,QAAQ,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,CACtJ,CAAC;YAEF,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf;;;;eAIG;YACH,MAAM,CAAC,KAAK,CACV,gDAAgD,MAAA,OAAO,CAAC,EAAE,0CAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,CACnF,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAjMqB;IADnB,WAAW,EAAE;;;;8CAiMb"}
1
+ {"version":3,"file":"FixRouting.js","sourceRoot":"","sources":["../../../../../../../Server/Utils/AI/SRE/Insights/FixRouting.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ import CaptureSpan from "../../Telemetry/CaptureSpan";
15
15
  /*
16
16
  * AI SRE — the service-scoped instrumentation-improvement triggers:
17
17
  * ImproveLogging and ImproveTracing. One click on a service's Logs or
18
- * Traces page opens a draft PR that improves that service's logging or
18
+ * Traces page opens a PR that improves that service's logging or
19
19
  * tracing hygiene — parameterized log messages, correct severities, spans
20
20
  * on uninstrumented paths, proper exception recording — WITHOUT changing
21
21
  * behavior.
@@ -235,7 +235,7 @@ export const CommitCodeToBranchTool = {
235
235
  };
236
236
  export const OpenCodePullRequestTool = {
237
237
  name: "open_code_pull_request",
238
- description: "Propose a code change: creates a new branch off the default branch, commits the changes, and opens a DRAFT pull request for a human to review. This is the safe, preferred way to change code from chat — it never writes to the default branch. Read each file with read_code_file first: content replaces the whole file.",
238
+ description: "Propose a code change: creates a new branch off the default branch, commits the changes, and opens a pull request, ready for review, for a human to review and merge. This is the safe, preferred way to change code from chat — it never writes to the default branch and never merges. Read each file with read_code_file first: content replaces the whole file.",
239
239
  isMutation: true,
240
240
  inputSchema: {
241
241
  type: "object",
@@ -264,7 +264,7 @@ export const OpenCodePullRequestTool = {
264
264
  return resolveUpdatePermissions();
265
265
  },
266
266
  buildActionTitle: (args) => {
267
- return `Open draft pull request: ${ToolArgs.getString(args, "title") || "Untitled"}`;
267
+ return `Open pull request: ${ToolArgs.getString(args, "title") || "Untitled"}`;
268
268
  },
269
269
  execute: async (args, ctx) => {
270
270
  const title = ToolArgs.getString(args, "title");
@@ -331,7 +331,7 @@ export const OpenCodePullRequestTool = {
331
331
  headBranchName: headBranchName,
332
332
  title: title,
333
333
  body: `${description}\n\n---\n_Proposed by OneUptime AI from a chat conversation. Review carefully before merging: this change was written by an agent that reads production telemetry._`,
334
- isDraft: true,
334
+ isDraft: false,
335
335
  });
336
336
  /*
337
337
  * Record the PR so the open-PR cap can see it and the
@@ -372,14 +372,14 @@ export const OpenCodePullRequestTool = {
372
372
  const pullRequestUrl = record.pullRequestUrl.toString();
373
373
  return {
374
374
  dataForLlm: [
375
- `Opened DRAFT pull request #${pullRequest.pullRequestNumber} on ${organizationName}/${repositoryName}.`,
375
+ `Opened pull request #${pullRequest.pullRequestNumber} on ${organizationName}/${repositoryName}, ready for review.`,
376
376
  `url: ${pullRequestUrl}`,
377
377
  `branch: ${headBranchName} → ${baseBranchName}`,
378
378
  `files:\n${describeChanges(changes)}`,
379
- `It is a DRAFT and is NOT merged. Give the user the link and say it needs their review.`,
379
+ `It is NOT merged. Give the user the link and say it needs their review.`,
380
380
  ].join("\n"),
381
381
  rowCount: changes.length,
382
- citationLabel: `Draft PR #${pullRequest.pullRequestNumber}: ${title}`,
382
+ citationLabel: `PR #${pullRequest.pullRequestNumber}: ${title}`,
383
383
  redactionCount: 0,
384
384
  isTruncated: false,
385
385
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CodeWriteTools.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/CodeWriteTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeWriteTools.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/CodeWriteTools.ts"],"names":[],"mappings":"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"}
@@ -912,8 +912,14 @@ class GitHubUtil extends HostedCodeRepository {
912
912
  * sibling of the instance-method createPullRequest, which authenticates from
913
913
  * a clone's own token.
914
914
  *
915
- * Opened as a DRAFT by default; GitHub answers 422 for repositories whose
916
- * plan lacks drafts, and we retry as non-draft rather than losing the work.
915
+ * Opened READY FOR REVIEW by default: a draft never reaches reviewers,
916
+ * CODEOWNERS or review automation, which buried the work instead of
917
+ * surfacing it. Human review is still mandatory — the safety boundary is
918
+ * that we only ever write to a fresh branch and never merge anything.
919
+ *
920
+ * Pass isDraft: true to open a draft instead; GitHub answers 422 for
921
+ * repositories whose plan lacks drafts, and we then retry ready-for-review
922
+ * rather than losing the work.
917
923
  */
918
924
  static async createPullRequestWithToken(data) {
919
925
  const tokenData = await GitHubUtil.getInstallationAccessToken(data.installationId, {
@@ -921,7 +927,7 @@ class GitHubUtil extends HostedCodeRepository {
921
927
  });
922
928
  const headers = GitHubUtil.buildApiHeaders(tokenData.token);
923
929
  const url = URL.fromString(`https://api.github.com/repos/${data.organizationName}/${data.repositoryName}/pulls`);
924
- const wantsDraft = data.isDraft !== false;
930
+ const wantsDraft = data.isDraft === true;
925
931
  let result = await API.post({
926
932
  url: url,
927
933
  data: {
@@ -933,10 +939,16 @@ class GitHubUtil extends HostedCodeRepository {
933
939
  },
934
940
  headers: headers,
935
941
  });
942
+ /*
943
+ * Only retry when GitHub refused the DRAFT state specifically. A 422 is
944
+ * also how it reports "a pull request already exists for this branch" and
945
+ * an invalid head — retrying those just fails a second time and hides the
946
+ * real message behind a misleading one.
947
+ */
936
948
  if (result instanceof HTTPErrorResponse &&
937
949
  wantsDraft &&
938
- result.statusCode === 422) {
939
- logger.debug(`GitHub rejected the draft pull request for ${data.organizationName}/${data.repositoryName}; retrying as non-draft.`);
950
+ GitHubUtil.isDraftNotSupportedError(result)) {
951
+ logger.debug(`GitHub rejected the draft pull request for ${data.organizationName}/${data.repositoryName}; retrying as ready-for-review.`);
940
952
  result = await API.post({
941
953
  url: url,
942
954
  data: {
@@ -944,6 +956,7 @@ class GitHubUtil extends HostedCodeRepository {
944
956
  head: data.headBranchName,
945
957
  title: data.title,
946
958
  body: data.body,
959
+ draft: false,
947
960
  },
948
961
  headers: headers,
949
962
  });
@@ -960,6 +973,27 @@ class GitHubUtil extends HostedCodeRepository {
960
973
  repositoryName: data.repositoryName,
961
974
  });
962
975
  }
976
+ /*
977
+ * True when a failed create-PR response is GitHub refusing the DRAFT state
978
+ * specifically — an HTTP 422 whose message or errors name drafts, e.g.
979
+ * "Draft pull requests are not supported in this repository."
980
+ *
981
+ * Every other 422 (a pull request already exists for this branch, an
982
+ * invalid head, a validation failure) must NOT trigger the ready-for-review
983
+ * retry: the retry would fail identically and the caller would be handed the
984
+ * second error, which no longer describes the real problem.
985
+ */
986
+ static isDraftNotSupportedError(response) {
987
+ if (response.statusCode !== 422) {
988
+ return false;
989
+ }
990
+ const errorData = response.data || {};
991
+ const textParts = [
992
+ errorData["message"] || "",
993
+ JSON.stringify(errorData["errors"] || ""),
994
+ ];
995
+ return textParts.join(" ").toLowerCase().includes("draft");
996
+ }
963
997
  /*
964
998
  * Every blob path in a tree mapped to its git file mode, so a rewrite can
965
999
  * preserve the mode instead of flattening everything to 100644. Recursive