@oneuptime/common 9.2.27 → 9.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/Models/DatabaseModels/AIAgent.ts +589 -0
  2. package/Models/DatabaseModels/AIAgentOwnerTeam.ts +434 -0
  3. package/Models/DatabaseModels/AIAgentOwnerUser.ts +433 -0
  4. package/Models/DatabaseModels/AIAgentTask.ts +549 -0
  5. package/Models/DatabaseModels/AIAgentTaskLog.ts +417 -0
  6. package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +731 -0
  7. package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +388 -0
  8. package/Models/DatabaseModels/Index.ts +15 -0
  9. package/Models/DatabaseModels/Monitor.ts +33 -0
  10. package/Models/DatabaseModels/Project.ts +25 -0
  11. package/Models/DatabaseModels/TelemetryException.ts +1 -1
  12. package/Server/API/AIAgentAPI.ts +200 -0
  13. package/Server/API/AIAgentDataAPI.ts +692 -0
  14. package/Server/API/AIAgentTaskAPI.ts +286 -0
  15. package/Server/API/AIAgentTaskLogAPI.ts +165 -0
  16. package/Server/API/AIAgentTaskPullRequestAPI.ts +14 -0
  17. package/Server/API/GitHubAPI.ts +25 -7
  18. package/Server/API/TelemetryExceptionAPI.ts +169 -0
  19. package/Server/EnvironmentConfig.ts +3 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1766590916627-MigrationName.ts +195 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1766600860972-MigrationName.ts +31 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1766606720183-MigrationName.ts +17 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1766688107858-MigrationName.ts +63 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1766754182870-MigrationName.ts +75 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1766774689743-MigrationName.ts +157 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1766777986427-MigrationName.ts +33 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1766918848434-AddAIAgentIsDefault.ts +27 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1766923324521-MigrationName.ts +37 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1766958924188-AddGitHubAppInstallationIdToProject.ts +31 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1767009661768-MigrationName.ts +35 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +22 -0
  32. package/Server/Services/AIAgentOwnerTeamService.ts +10 -0
  33. package/Server/Services/AIAgentOwnerUserService.ts +10 -0
  34. package/Server/Services/AIAgentService.ts +564 -0
  35. package/Server/Services/AIAgentTaskLogService.ts +10 -0
  36. package/Server/Services/AIAgentTaskPullRequestService.ts +10 -0
  37. package/Server/Services/AIAgentTaskService.ts +178 -0
  38. package/Server/Services/AIAgentTaskTelemetryExceptionService.ts +39 -0
  39. package/Server/Services/Index.ts +10 -0
  40. package/Server/Services/TelemetryExceptionService.ts +162 -0
  41. package/Server/Utils/Monitor/MonitorResource.ts +228 -0
  42. package/Server/Utils/PushNotificationUtil.ts +29 -0
  43. package/Server/Utils/WhatsAppTemplateUtil.ts +6 -0
  44. package/Tests/UI/Components/Badge.test.tsx +5 -5
  45. package/Tests/UI/Components/Card.test.tsx +4 -8
  46. package/Tests/UI/Components/HiddenText.test.tsx +2 -5
  47. package/Tests/UI/Components/SideMenuItem.test.tsx +4 -2
  48. package/Types/AI/AIAgentTaskMetadata.ts +25 -0
  49. package/Types/AI/AIAgentTaskStatus.ts +65 -0
  50. package/Types/AI/AIAgentTaskType.ts +40 -0
  51. package/Types/Email/EmailTemplateType.ts +2 -0
  52. package/Types/Monitor/MonitorEvaluationSummary.ts +2 -1
  53. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  54. package/Types/Permission.ts +176 -0
  55. package/Types/WhatsApp/WhatsAppTemplates.ts +9 -0
  56. package/UI/Components/AIAgent/AIAgent.tsx +69 -0
  57. package/UI/Components/Badge/Badge.tsx +9 -5
  58. package/UI/Components/Banner/Banner.tsx +1 -1
  59. package/UI/Components/Card/Card.tsx +14 -12
  60. package/UI/Components/CodeBlock/CodeBlock.tsx +47 -4
  61. package/UI/Components/Detail/Detail.tsx +239 -49
  62. package/UI/Components/Detail/FieldLabel.tsx +35 -11
  63. package/UI/Components/Detail/PlaceholderText.tsx +18 -1
  64. package/UI/Components/Footer/Footer.tsx +9 -7
  65. package/UI/Components/Header/Header.tsx +4 -3
  66. package/UI/Components/Header/HeaderIconDropdownButton.tsx +13 -11
  67. package/UI/Components/Header/IconDropdown/IconDropdownItem.tsx +3 -3
  68. package/UI/Components/Header/IconDropdown/IconDropdownMenu.tsx +1 -1
  69. package/UI/Components/Header/ProjectPicker/CreateNewProjectButton.tsx +4 -4
  70. package/UI/Components/Header/ProjectPicker/ProjectPicker.tsx +6 -6
  71. package/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.tsx +3 -3
  72. package/UI/Components/Header/ProjectPicker/ProjectPickerMenu.tsx +1 -1
  73. package/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.tsx +4 -4
  74. package/UI/Components/HeaderAlert/HeaderAlert.tsx +32 -32
  75. package/UI/Components/HeaderAlert/HeaderAlertGroup.tsx +1 -7
  76. package/UI/Components/HiddenText/HiddenText.tsx +98 -27
  77. package/UI/Components/Icon/Icon.tsx +12 -9
  78. package/UI/Components/InfoCard/InfoCard.tsx +7 -3
  79. package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
  80. package/UI/Components/ObjectID/ObjectIDView.tsx +73 -0
  81. package/UI/Components/Page/Page.tsx +3 -5
  82. package/UI/Components/SideMenu/SideMenu.tsx +175 -40
  83. package/UI/Components/SideMenu/SideMenuDivider.tsx +17 -0
  84. package/UI/Components/SideMenu/SideMenuItem.tsx +111 -158
  85. package/UI/Components/SideMenu/SideMenuSection.tsx +53 -3
  86. package/UI/Components/Table/Table.tsx +1 -1
  87. package/UI/Components/Types/FieldType.ts +2 -0
  88. package/UI/Config.ts +5 -0
  89. package/build/dist/Models/DatabaseModels/AIAgent.js +614 -0
  90. package/build/dist/Models/DatabaseModels/AIAgent.js.map +1 -0
  91. package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js +452 -0
  92. package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js.map +1 -0
  93. package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js +451 -0
  94. package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js.map +1 -0
  95. package/build/dist/Models/DatabaseModels/AIAgentTask.js +580 -0
  96. package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +1 -0
  97. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +438 -0
  98. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +1 -0
  99. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +771 -0
  100. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -0
  101. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +404 -0
  102. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +1 -0
  103. package/build/dist/Models/DatabaseModels/Index.js +14 -0
  104. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  105. package/build/dist/Models/DatabaseModels/Monitor.js +34 -0
  106. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  107. package/build/dist/Models/DatabaseModels/Project.js +26 -0
  108. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  109. package/build/dist/Models/DatabaseModels/TelemetryException.js +1 -1
  110. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  111. package/build/dist/Server/API/AIAgentAPI.js +141 -0
  112. package/build/dist/Server/API/AIAgentAPI.js.map +1 -0
  113. package/build/dist/Server/API/AIAgentDataAPI.js +415 -0
  114. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -0
  115. package/build/dist/Server/API/AIAgentTaskAPI.js +199 -0
  116. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -0
  117. package/build/dist/Server/API/AIAgentTaskLogAPI.js +106 -0
  118. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -0
  119. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +9 -0
  120. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -0
  121. package/build/dist/Server/API/GitHubAPI.js +23 -8
  122. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  123. package/build/dist/Server/API/TelemetryExceptionAPI.js +120 -0
  124. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -0
  125. package/build/dist/Server/EnvironmentConfig.js +2 -0
  126. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  127. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766590916627-MigrationName.js +74 -0
  128. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766590916627-MigrationName.js.map +1 -0
  129. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766600860972-MigrationName.js +18 -0
  130. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766600860972-MigrationName.js.map +1 -0
  131. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766606720183-MigrationName.js +12 -0
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766606720183-MigrationName.js.map +1 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766688107858-MigrationName.js +28 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766688107858-MigrationName.js.map +1 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766754182870-MigrationName.js +32 -0
  136. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766754182870-MigrationName.js.map +1 -0
  137. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766774689743-MigrationName.js +60 -0
  138. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766774689743-MigrationName.js.map +1 -0
  139. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766777986427-MigrationName.js +18 -0
  140. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766777986427-MigrationName.js.map +1 -0
  141. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766918848434-AddAIAgentIsDefault.js +16 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766918848434-AddAIAgentIsDefault.js.map +1 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766923324521-MigrationName.js +20 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766923324521-MigrationName.js.map +1 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766958924188-AddGitHubAppInstallationIdToProject.js +16 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766958924188-AddGitHubAppInstallationIdToProject.js.map +1 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767009661768-MigrationName.js +18 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767009661768-MigrationName.js.map +1 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +22 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  151. package/build/dist/Server/Services/AIAgentOwnerTeamService.js +9 -0
  152. package/build/dist/Server/Services/AIAgentOwnerTeamService.js.map +1 -0
  153. package/build/dist/Server/Services/AIAgentOwnerUserService.js +9 -0
  154. package/build/dist/Server/Services/AIAgentOwnerUserService.js.map +1 -0
  155. package/build/dist/Server/Services/AIAgentService.js +471 -0
  156. package/build/dist/Server/Services/AIAgentService.js.map +1 -0
  157. package/build/dist/Server/Services/AIAgentTaskLogService.js +9 -0
  158. package/build/dist/Server/Services/AIAgentTaskLogService.js.map +1 -0
  159. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +9 -0
  160. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -0
  161. package/build/dist/Server/Services/AIAgentTaskService.js +158 -0
  162. package/build/dist/Server/Services/AIAgentTaskService.js.map +1 -0
  163. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +36 -0
  164. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +1 -0
  165. package/build/dist/Server/Services/Index.js +10 -0
  166. package/build/dist/Server/Services/Index.js.map +1 -1
  167. package/build/dist/Server/Services/TelemetryExceptionService.js +137 -0
  168. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  169. package/build/dist/Server/Utils/Monitor/MonitorResource.js +168 -0
  170. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  171. package/build/dist/Server/Utils/PushNotificationUtil.js +21 -0
  172. package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
  173. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +4 -0
  174. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  175. package/build/dist/Tests/UI/Components/Badge.test.js +5 -5
  176. package/build/dist/Tests/UI/Components/Badge.test.js.map +1 -1
  177. package/build/dist/Tests/UI/Components/Card.test.js +4 -8
  178. package/build/dist/Tests/UI/Components/Card.test.js.map +1 -1
  179. package/build/dist/Tests/UI/Components/HiddenText.test.js +2 -3
  180. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +1 -1
  181. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +3 -2
  182. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +1 -1
  183. package/build/dist/Types/AI/AIAgentTaskMetadata.js +6 -0
  184. package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +1 -0
  185. package/build/dist/Types/AI/AIAgentTaskStatus.js +51 -0
  186. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -0
  187. package/build/dist/Types/AI/AIAgentTaskType.js +29 -0
  188. package/build/dist/Types/AI/AIAgentTaskType.js.map +1 -0
  189. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  190. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  191. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  192. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  193. package/build/dist/Types/Permission.js +160 -0
  194. package/build/dist/Types/Permission.js.map +1 -1
  195. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +6 -0
  196. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
  197. package/build/dist/UI/Components/AIAgent/AIAgent.js +32 -0
  198. package/build/dist/UI/Components/AIAgent/AIAgent.js.map +1 -0
  199. package/build/dist/UI/Components/Badge/Badge.js +9 -5
  200. package/build/dist/UI/Components/Badge/Badge.js.map +1 -1
  201. package/build/dist/UI/Components/Banner/Banner.js +1 -1
  202. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  203. package/build/dist/UI/Components/Card/Card.js +12 -12
  204. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  205. package/build/dist/UI/Components/CodeBlock/CodeBlock.js +22 -2
  206. package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
  207. package/build/dist/UI/Components/Detail/Detail.js +117 -37
  208. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  209. package/build/dist/UI/Components/Detail/FieldLabel.js +12 -7
  210. package/build/dist/UI/Components/Detail/FieldLabel.js.map +1 -1
  211. package/build/dist/UI/Components/Detail/PlaceholderText.js +4 -1
  212. package/build/dist/UI/Components/Detail/PlaceholderText.js.map +1 -1
  213. package/build/dist/UI/Components/Footer/Footer.js +6 -6
  214. package/build/dist/UI/Components/Footer/Footer.js.map +1 -1
  215. package/build/dist/UI/Components/Header/Header.js +4 -3
  216. package/build/dist/UI/Components/Header/Header.js.map +1 -1
  217. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +7 -7
  218. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  219. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js +3 -3
  220. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js.map +1 -1
  221. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js +1 -1
  222. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js.map +1 -1
  223. package/build/dist/UI/Components/Header/ProjectPicker/CreateNewProjectButton.js +4 -4
  224. package/build/dist/UI/Components/Header/ProjectPicker/CreateNewProjectButton.js.map +1 -1
  225. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js +6 -6
  226. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js.map +1 -1
  227. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.js +2 -2
  228. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.js.map +1 -1
  229. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenu.js +1 -1
  230. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenu.js.map +1 -1
  231. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.js +4 -4
  232. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.js.map +1 -1
  233. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +31 -29
  234. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  235. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js +1 -3
  236. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js.map +1 -1
  237. package/build/dist/UI/Components/HiddenText/HiddenText.js +33 -14
  238. package/build/dist/UI/Components/HiddenText/HiddenText.js.map +1 -1
  239. package/build/dist/UI/Components/Icon/Icon.js +3 -4
  240. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  241. package/build/dist/UI/Components/InfoCard/InfoCard.js +3 -3
  242. package/build/dist/UI/Components/InfoCard/InfoCard.js.map +1 -1
  243. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
  244. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  245. package/build/dist/UI/Components/ObjectID/ObjectIDView.js +30 -0
  246. package/build/dist/UI/Components/ObjectID/ObjectIDView.js.map +1 -0
  247. package/build/dist/UI/Components/Page/Page.js +3 -3
  248. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  249. package/build/dist/UI/Components/SideMenu/SideMenu.js +82 -17
  250. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  251. package/build/dist/UI/Components/SideMenu/SideMenuDivider.js +7 -0
  252. package/build/dist/UI/Components/SideMenu/SideMenuDivider.js.map +1 -0
  253. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +68 -97
  254. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  255. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +18 -3
  256. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  257. package/build/dist/UI/Components/Table/Table.js +1 -1
  258. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  259. package/build/dist/UI/Components/Types/FieldType.js +2 -0
  260. package/build/dist/UI/Components/Types/FieldType.js.map +1 -1
  261. package/build/dist/UI/Config.js +2 -0
  262. package/build/dist/UI/Config.js.map +1 -1
  263. package/package.json +1 -1
@@ -0,0 +1,731 @@
1
+ import AIAgent from "./AIAgent";
2
+ import AIAgentTask from "./AIAgentTask";
3
+ import CodeRepository from "./CodeRepository";
4
+ import Project from "./Project";
5
+ import User from "./User";
6
+ import BaseModel from "./DatabaseBaseModel/DatabaseBaseModel";
7
+ import Route from "../../Types/API/Route";
8
+ import URL from "../../Types/API/URL";
9
+ import { PlanType } from "../../Types/Billing/SubscriptionPlan";
10
+ import ColumnAccessControl from "../../Types/Database/AccessControl/ColumnAccessControl";
11
+ import TableAccessControl from "../../Types/Database/AccessControl/TableAccessControl";
12
+ import TableBillingAccessControl from "../../Types/Database/AccessControl/TableBillingAccessControl";
13
+ import ColumnLength from "../../Types/Database/ColumnLength";
14
+ import ColumnType from "../../Types/Database/ColumnType";
15
+ import CrudApiEndpoint from "../../Types/Database/CrudApiEndpoint";
16
+ import TableColumn from "../../Types/Database/TableColumn";
17
+ import TableColumnType from "../../Types/Database/TableColumnType";
18
+ import TableMetadata from "../../Types/Database/TableMetadata";
19
+ import TenantColumn from "../../Types/Database/TenantColumn";
20
+ import IconProp from "../../Types/Icon/IconProp";
21
+ import ObjectID from "../../Types/ObjectID";
22
+ import Permission from "../../Types/Permission";
23
+ import PullRequestState from "../../Types/CodeRepository/PullRequestState";
24
+ import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
25
+ import EnableDocumentation from "../../Types/Database/EnableDocumentation";
26
+
27
+ @EnableDocumentation()
28
+ @TableBillingAccessControl({
29
+ create: PlanType.Growth,
30
+ read: PlanType.Growth,
31
+ update: PlanType.Growth,
32
+ delete: PlanType.Growth,
33
+ })
34
+ @TenantColumn("projectId")
35
+ @CrudApiEndpoint(new Route("/ai-agent-task-pull-request"))
36
+ @Entity({
37
+ name: "AIAgentTaskPullRequest",
38
+ })
39
+ @TableMetadata({
40
+ tableName: "AIAgentTaskPullRequest",
41
+ singularName: "AI Agent Task Pull Request",
42
+ pluralName: "AI Agent Task Pull Requests",
43
+ icon: IconProp.Code,
44
+ tableDescription: "Pull requests created by AI agents during task execution.",
45
+ })
46
+ @TableAccessControl({
47
+ create: [
48
+ Permission.ProjectOwner,
49
+ Permission.ProjectAdmin,
50
+ Permission.ProjectMember,
51
+ Permission.CreateProjectAIAgentTask,
52
+ ],
53
+ read: [
54
+ Permission.ProjectOwner,
55
+ Permission.ProjectAdmin,
56
+ Permission.ProjectMember,
57
+ Permission.ReadProjectAIAgentTask,
58
+ ],
59
+ delete: [
60
+ Permission.ProjectOwner,
61
+ Permission.ProjectAdmin,
62
+ Permission.ProjectMember,
63
+ Permission.DeleteProjectAIAgentTask,
64
+ ],
65
+ update: [
66
+ Permission.ProjectOwner,
67
+ Permission.ProjectAdmin,
68
+ Permission.ProjectMember,
69
+ Permission.EditProjectAIAgentTask,
70
+ ],
71
+ })
72
+ export default class AIAgentTaskPullRequest extends BaseModel {
73
+ @ColumnAccessControl({
74
+ create: [
75
+ Permission.ProjectOwner,
76
+ Permission.ProjectAdmin,
77
+ Permission.ProjectMember,
78
+ Permission.CreateProjectAIAgentTask,
79
+ ],
80
+ read: [
81
+ Permission.ProjectOwner,
82
+ Permission.ProjectAdmin,
83
+ Permission.ProjectMember,
84
+ Permission.ReadProjectAIAgentTask,
85
+ ],
86
+ update: [],
87
+ })
88
+ @TableColumn({
89
+ type: TableColumnType.Entity,
90
+ required: true,
91
+ modelType: Project,
92
+ manyToOneRelationColumn: "projectId",
93
+ title: "Project",
94
+ description: "Project this pull request belongs to.",
95
+ })
96
+ @ManyToOne(
97
+ () => {
98
+ return Project;
99
+ },
100
+ {
101
+ cascade: false,
102
+ eager: false,
103
+ nullable: false,
104
+ onDelete: "CASCADE",
105
+ orphanedRowAction: "nullify",
106
+ },
107
+ )
108
+ @JoinColumn({ name: "projectId" })
109
+ public project?: Project = undefined;
110
+
111
+ @ColumnAccessControl({
112
+ create: [
113
+ Permission.ProjectOwner,
114
+ Permission.ProjectAdmin,
115
+ Permission.ProjectMember,
116
+ Permission.CreateProjectAIAgentTask,
117
+ ],
118
+ read: [
119
+ Permission.ProjectOwner,
120
+ Permission.ProjectAdmin,
121
+ Permission.ProjectMember,
122
+ Permission.ReadProjectAIAgentTask,
123
+ ],
124
+ update: [],
125
+ })
126
+ @Index()
127
+ @TableColumn({
128
+ type: TableColumnType.ObjectID,
129
+ required: true,
130
+ canReadOnRelationQuery: true,
131
+ title: "Project ID",
132
+ description: "ID of the project this pull request belongs to.",
133
+ })
134
+ @Column({
135
+ type: ColumnType.ObjectID,
136
+ nullable: false,
137
+ transformer: ObjectID.getDatabaseTransformer(),
138
+ })
139
+ public projectId?: ObjectID = undefined;
140
+
141
+ @ColumnAccessControl({
142
+ create: [
143
+ Permission.ProjectOwner,
144
+ Permission.ProjectAdmin,
145
+ Permission.ProjectMember,
146
+ Permission.CreateProjectAIAgentTask,
147
+ ],
148
+ read: [
149
+ Permission.ProjectOwner,
150
+ Permission.ProjectAdmin,
151
+ Permission.ProjectMember,
152
+ Permission.ReadProjectAIAgentTask,
153
+ ],
154
+ update: [],
155
+ })
156
+ @TableColumn({
157
+ type: TableColumnType.Entity,
158
+ required: true,
159
+ modelType: AIAgentTask,
160
+ manyToOneRelationColumn: "aiAgentTaskId",
161
+ title: "AI Agent Task",
162
+ description: "AI Agent Task this pull request belongs to.",
163
+ })
164
+ @ManyToOne(
165
+ () => {
166
+ return AIAgentTask;
167
+ },
168
+ {
169
+ cascade: false,
170
+ eager: false,
171
+ nullable: false,
172
+ onDelete: "CASCADE",
173
+ orphanedRowAction: "nullify",
174
+ },
175
+ )
176
+ @JoinColumn({ name: "aiAgentTaskId" })
177
+ public aiAgentTask?: AIAgentTask = undefined;
178
+
179
+ @ColumnAccessControl({
180
+ create: [
181
+ Permission.ProjectOwner,
182
+ Permission.ProjectAdmin,
183
+ Permission.ProjectMember,
184
+ Permission.CreateProjectAIAgentTask,
185
+ ],
186
+ read: [
187
+ Permission.ProjectOwner,
188
+ Permission.ProjectAdmin,
189
+ Permission.ProjectMember,
190
+ Permission.ReadProjectAIAgentTask,
191
+ ],
192
+ update: [],
193
+ })
194
+ @Index()
195
+ @TableColumn({
196
+ type: TableColumnType.ObjectID,
197
+ required: true,
198
+ canReadOnRelationQuery: true,
199
+ title: "AI Agent Task ID",
200
+ description: "ID of the AI Agent Task this pull request belongs to.",
201
+ })
202
+ @Column({
203
+ type: ColumnType.ObjectID,
204
+ nullable: false,
205
+ transformer: ObjectID.getDatabaseTransformer(),
206
+ })
207
+ public aiAgentTaskId?: ObjectID = undefined;
208
+
209
+ @ColumnAccessControl({
210
+ create: [
211
+ Permission.ProjectOwner,
212
+ Permission.ProjectAdmin,
213
+ Permission.ProjectMember,
214
+ Permission.CreateProjectAIAgentTask,
215
+ ],
216
+ read: [
217
+ Permission.ProjectOwner,
218
+ Permission.ProjectAdmin,
219
+ Permission.ProjectMember,
220
+ Permission.ReadProjectAIAgentTask,
221
+ ],
222
+ update: [],
223
+ })
224
+ @TableColumn({
225
+ type: TableColumnType.Entity,
226
+ required: true,
227
+ modelType: AIAgent,
228
+ manyToOneRelationColumn: "aiAgentId",
229
+ title: "AI Agent",
230
+ description: "AI Agent that created this pull request.",
231
+ })
232
+ @ManyToOne(
233
+ () => {
234
+ return AIAgent;
235
+ },
236
+ {
237
+ cascade: false,
238
+ eager: false,
239
+ nullable: false,
240
+ onDelete: "CASCADE",
241
+ orphanedRowAction: "nullify",
242
+ },
243
+ )
244
+ @JoinColumn({ name: "aiAgentId" })
245
+ public aiAgent?: AIAgent = undefined;
246
+
247
+ @ColumnAccessControl({
248
+ create: [
249
+ Permission.ProjectOwner,
250
+ Permission.ProjectAdmin,
251
+ Permission.ProjectMember,
252
+ Permission.CreateProjectAIAgentTask,
253
+ ],
254
+ read: [
255
+ Permission.ProjectOwner,
256
+ Permission.ProjectAdmin,
257
+ Permission.ProjectMember,
258
+ Permission.ReadProjectAIAgentTask,
259
+ ],
260
+ update: [],
261
+ })
262
+ @Index()
263
+ @TableColumn({
264
+ type: TableColumnType.ObjectID,
265
+ required: true,
266
+ canReadOnRelationQuery: true,
267
+ title: "AI Agent ID",
268
+ description: "ID of the AI Agent that created this pull request.",
269
+ })
270
+ @Column({
271
+ type: ColumnType.ObjectID,
272
+ nullable: false,
273
+ transformer: ObjectID.getDatabaseTransformer(),
274
+ })
275
+ public aiAgentId?: ObjectID = undefined;
276
+
277
+ @ColumnAccessControl({
278
+ create: [
279
+ Permission.ProjectOwner,
280
+ Permission.ProjectAdmin,
281
+ Permission.ProjectMember,
282
+ Permission.CreateProjectAIAgentTask,
283
+ ],
284
+ read: [
285
+ Permission.ProjectOwner,
286
+ Permission.ProjectAdmin,
287
+ Permission.ProjectMember,
288
+ Permission.ReadProjectAIAgentTask,
289
+ ],
290
+ update: [],
291
+ })
292
+ @TableColumn({
293
+ type: TableColumnType.Entity,
294
+ required: false,
295
+ modelType: CodeRepository,
296
+ manyToOneRelationColumn: "codeRepositoryId",
297
+ title: "Code Repository",
298
+ description: "Code Repository this pull request was created in.",
299
+ })
300
+ @ManyToOne(
301
+ () => {
302
+ return CodeRepository;
303
+ },
304
+ {
305
+ cascade: false,
306
+ eager: false,
307
+ nullable: true,
308
+ onDelete: "SET NULL",
309
+ orphanedRowAction: "nullify",
310
+ },
311
+ )
312
+ @JoinColumn({ name: "codeRepositoryId" })
313
+ public codeRepository?: CodeRepository = undefined;
314
+
315
+ @ColumnAccessControl({
316
+ create: [
317
+ Permission.ProjectOwner,
318
+ Permission.ProjectAdmin,
319
+ Permission.ProjectMember,
320
+ Permission.CreateProjectAIAgentTask,
321
+ ],
322
+ read: [
323
+ Permission.ProjectOwner,
324
+ Permission.ProjectAdmin,
325
+ Permission.ProjectMember,
326
+ Permission.ReadProjectAIAgentTask,
327
+ ],
328
+ update: [],
329
+ })
330
+ @Index()
331
+ @TableColumn({
332
+ type: TableColumnType.ObjectID,
333
+ required: false,
334
+ canReadOnRelationQuery: true,
335
+ title: "Code Repository ID",
336
+ description: "ID of the Code Repository this pull request was created in.",
337
+ })
338
+ @Column({
339
+ type: ColumnType.ObjectID,
340
+ nullable: true,
341
+ transformer: ObjectID.getDatabaseTransformer(),
342
+ })
343
+ public codeRepositoryId?: ObjectID = undefined;
344
+
345
+ @ColumnAccessControl({
346
+ create: [
347
+ Permission.ProjectOwner,
348
+ Permission.ProjectAdmin,
349
+ Permission.ProjectMember,
350
+ Permission.CreateProjectAIAgentTask,
351
+ ],
352
+ read: [
353
+ Permission.ProjectOwner,
354
+ Permission.ProjectAdmin,
355
+ Permission.ProjectMember,
356
+ Permission.ReadProjectAIAgentTask,
357
+ ],
358
+ update: [
359
+ Permission.ProjectOwner,
360
+ Permission.ProjectAdmin,
361
+ Permission.ProjectMember,
362
+ Permission.EditProjectAIAgentTask,
363
+ ],
364
+ })
365
+ @TableColumn({
366
+ required: true,
367
+ type: TableColumnType.ShortText,
368
+ canReadOnRelationQuery: true,
369
+ title: "Title",
370
+ description: "Title of the pull request.",
371
+ })
372
+ @Column({
373
+ nullable: false,
374
+ type: ColumnType.ShortText,
375
+ length: ColumnLength.ShortText,
376
+ })
377
+ public title?: string = undefined;
378
+
379
+ @ColumnAccessControl({
380
+ create: [
381
+ Permission.ProjectOwner,
382
+ Permission.ProjectAdmin,
383
+ Permission.ProjectMember,
384
+ Permission.CreateProjectAIAgentTask,
385
+ ],
386
+ read: [
387
+ Permission.ProjectOwner,
388
+ Permission.ProjectAdmin,
389
+ Permission.ProjectMember,
390
+ Permission.ReadProjectAIAgentTask,
391
+ ],
392
+ update: [
393
+ Permission.ProjectOwner,
394
+ Permission.ProjectAdmin,
395
+ Permission.ProjectMember,
396
+ Permission.EditProjectAIAgentTask,
397
+ ],
398
+ })
399
+ @TableColumn({
400
+ required: false,
401
+ type: TableColumnType.LongText,
402
+ title: "Description",
403
+ description: "Description/body of the pull request.",
404
+ })
405
+ @Column({
406
+ nullable: true,
407
+ type: ColumnType.LongText,
408
+ })
409
+ public description?: string = undefined;
410
+
411
+ @ColumnAccessControl({
412
+ create: [
413
+ Permission.ProjectOwner,
414
+ Permission.ProjectAdmin,
415
+ Permission.ProjectMember,
416
+ Permission.CreateProjectAIAgentTask,
417
+ ],
418
+ read: [
419
+ Permission.ProjectOwner,
420
+ Permission.ProjectAdmin,
421
+ Permission.ProjectMember,
422
+ Permission.ReadProjectAIAgentTask,
423
+ ],
424
+ update: [
425
+ Permission.ProjectOwner,
426
+ Permission.ProjectAdmin,
427
+ Permission.ProjectMember,
428
+ Permission.EditProjectAIAgentTask,
429
+ ],
430
+ })
431
+ @TableColumn({
432
+ required: false,
433
+ type: TableColumnType.LongURL,
434
+ canReadOnRelationQuery: true,
435
+ title: "Pull Request URL",
436
+ description: "URL to the pull request on the hosting platform.",
437
+ })
438
+ @Column({
439
+ nullable: true,
440
+ type: ColumnType.LongURL,
441
+ transformer: URL.getDatabaseTransformer(),
442
+ })
443
+ public pullRequestUrl?: URL = undefined;
444
+
445
+ @ColumnAccessControl({
446
+ create: [
447
+ Permission.ProjectOwner,
448
+ Permission.ProjectAdmin,
449
+ Permission.ProjectMember,
450
+ Permission.CreateProjectAIAgentTask,
451
+ ],
452
+ read: [
453
+ Permission.ProjectOwner,
454
+ Permission.ProjectAdmin,
455
+ Permission.ProjectMember,
456
+ Permission.ReadProjectAIAgentTask,
457
+ ],
458
+ update: [],
459
+ })
460
+ @Index()
461
+ @TableColumn({
462
+ required: false,
463
+ type: TableColumnType.Number,
464
+ canReadOnRelationQuery: true,
465
+ title: "Pull Request ID",
466
+ description: "The unique ID of the pull request from the hosting platform.",
467
+ })
468
+ @Column({
469
+ nullable: true,
470
+ type: ColumnType.Number,
471
+ })
472
+ public pullRequestId?: number = undefined;
473
+
474
+ @ColumnAccessControl({
475
+ create: [
476
+ Permission.ProjectOwner,
477
+ Permission.ProjectAdmin,
478
+ Permission.ProjectMember,
479
+ Permission.CreateProjectAIAgentTask,
480
+ ],
481
+ read: [
482
+ Permission.ProjectOwner,
483
+ Permission.ProjectAdmin,
484
+ Permission.ProjectMember,
485
+ Permission.ReadProjectAIAgentTask,
486
+ ],
487
+ update: [],
488
+ })
489
+ @Index()
490
+ @TableColumn({
491
+ required: false,
492
+ type: TableColumnType.Number,
493
+ canReadOnRelationQuery: true,
494
+ title: "Pull Request Number",
495
+ description: "The pull request number (e.g., #123).",
496
+ })
497
+ @Column({
498
+ nullable: true,
499
+ type: ColumnType.Number,
500
+ })
501
+ public pullRequestNumber?: number = undefined;
502
+
503
+ @ColumnAccessControl({
504
+ create: [
505
+ Permission.ProjectOwner,
506
+ Permission.ProjectAdmin,
507
+ Permission.ProjectMember,
508
+ Permission.CreateProjectAIAgentTask,
509
+ ],
510
+ read: [
511
+ Permission.ProjectOwner,
512
+ Permission.ProjectAdmin,
513
+ Permission.ProjectMember,
514
+ Permission.ReadProjectAIAgentTask,
515
+ ],
516
+ update: [
517
+ Permission.ProjectOwner,
518
+ Permission.ProjectAdmin,
519
+ Permission.ProjectMember,
520
+ Permission.EditProjectAIAgentTask,
521
+ ],
522
+ })
523
+ @Index()
524
+ @TableColumn({
525
+ required: true,
526
+ type: TableColumnType.ShortText,
527
+ canReadOnRelationQuery: true,
528
+ title: "State",
529
+ description: "Current state of the pull request (open, closed, merged).",
530
+ })
531
+ @Column({
532
+ nullable: false,
533
+ type: ColumnType.ShortText,
534
+ length: ColumnLength.ShortText,
535
+ default: PullRequestState.Open,
536
+ })
537
+ public pullRequestState?: PullRequestState = undefined;
538
+
539
+ @ColumnAccessControl({
540
+ create: [
541
+ Permission.ProjectOwner,
542
+ Permission.ProjectAdmin,
543
+ Permission.ProjectMember,
544
+ Permission.CreateProjectAIAgentTask,
545
+ ],
546
+ read: [
547
+ Permission.ProjectOwner,
548
+ Permission.ProjectAdmin,
549
+ Permission.ProjectMember,
550
+ Permission.ReadProjectAIAgentTask,
551
+ ],
552
+ update: [],
553
+ })
554
+ @TableColumn({
555
+ required: false,
556
+ type: TableColumnType.ShortText,
557
+ canReadOnRelationQuery: true,
558
+ title: "Head Branch",
559
+ description: "The branch name of the pull request (source branch).",
560
+ })
561
+ @Column({
562
+ nullable: true,
563
+ type: ColumnType.ShortText,
564
+ length: ColumnLength.ShortText,
565
+ })
566
+ public headRefName?: string = undefined;
567
+
568
+ @ColumnAccessControl({
569
+ create: [
570
+ Permission.ProjectOwner,
571
+ Permission.ProjectAdmin,
572
+ Permission.ProjectMember,
573
+ Permission.CreateProjectAIAgentTask,
574
+ ],
575
+ read: [
576
+ Permission.ProjectOwner,
577
+ Permission.ProjectAdmin,
578
+ Permission.ProjectMember,
579
+ Permission.ReadProjectAIAgentTask,
580
+ ],
581
+ update: [],
582
+ })
583
+ @TableColumn({
584
+ required: false,
585
+ type: TableColumnType.ShortText,
586
+ canReadOnRelationQuery: true,
587
+ title: "Base Branch",
588
+ description: "The target branch for the pull request.",
589
+ })
590
+ @Column({
591
+ nullable: true,
592
+ type: ColumnType.ShortText,
593
+ length: ColumnLength.ShortText,
594
+ })
595
+ public baseRefName?: string = undefined;
596
+
597
+ @ColumnAccessControl({
598
+ create: [
599
+ Permission.ProjectOwner,
600
+ Permission.ProjectAdmin,
601
+ Permission.ProjectMember,
602
+ Permission.CreateProjectAIAgentTask,
603
+ ],
604
+ read: [
605
+ Permission.ProjectOwner,
606
+ Permission.ProjectAdmin,
607
+ Permission.ProjectMember,
608
+ Permission.ReadProjectAIAgentTask,
609
+ ],
610
+ update: [],
611
+ })
612
+ @TableColumn({
613
+ required: false,
614
+ type: TableColumnType.ShortText,
615
+ canReadOnRelationQuery: true,
616
+ title: "Repository Organization",
617
+ description: "Organization or username that owns the repository.",
618
+ })
619
+ @Column({
620
+ nullable: true,
621
+ type: ColumnType.ShortText,
622
+ length: ColumnLength.ShortText,
623
+ })
624
+ public repoOrganizationName?: string = undefined;
625
+
626
+ @ColumnAccessControl({
627
+ create: [
628
+ Permission.ProjectOwner,
629
+ Permission.ProjectAdmin,
630
+ Permission.ProjectMember,
631
+ Permission.CreateProjectAIAgentTask,
632
+ ],
633
+ read: [
634
+ Permission.ProjectOwner,
635
+ Permission.ProjectAdmin,
636
+ Permission.ProjectMember,
637
+ Permission.ReadProjectAIAgentTask,
638
+ ],
639
+ update: [],
640
+ })
641
+ @TableColumn({
642
+ required: false,
643
+ type: TableColumnType.ShortText,
644
+ canReadOnRelationQuery: true,
645
+ title: "Repository Name",
646
+ description: "Name of the repository.",
647
+ })
648
+ @Column({
649
+ nullable: true,
650
+ type: ColumnType.ShortText,
651
+ length: ColumnLength.ShortText,
652
+ })
653
+ public repoName?: string = undefined;
654
+
655
+ @ColumnAccessControl({
656
+ create: [],
657
+ read: [],
658
+ update: [],
659
+ })
660
+ @TableColumn({ type: TableColumnType.Entity, modelType: User })
661
+ @ManyToOne(
662
+ () => {
663
+ return User;
664
+ },
665
+ {
666
+ cascade: false,
667
+ eager: false,
668
+ nullable: true,
669
+ onDelete: "SET NULL",
670
+ orphanedRowAction: "nullify",
671
+ },
672
+ )
673
+ @JoinColumn({ name: "deletedByUserId" })
674
+ public deletedByUser?: User = undefined;
675
+
676
+ @ColumnAccessControl({
677
+ create: [],
678
+ read: [],
679
+ update: [],
680
+ })
681
+ @TableColumn({
682
+ type: TableColumnType.ObjectID,
683
+ title: "Deleted by User ID",
684
+ description:
685
+ "User ID who deleted this object (if this object was deleted by a User)",
686
+ })
687
+ @Column({
688
+ type: ColumnType.ObjectID,
689
+ nullable: true,
690
+ transformer: ObjectID.getDatabaseTransformer(),
691
+ })
692
+ public deletedByUserId?: ObjectID = undefined;
693
+
694
+ @ColumnAccessControl({
695
+ create: [],
696
+ read: [Permission.ProjectOwner, Permission.ProjectAdmin],
697
+ update: [],
698
+ })
699
+ @TableColumn({ type: TableColumnType.Entity, modelType: User })
700
+ @ManyToOne(
701
+ () => {
702
+ return User;
703
+ },
704
+ {
705
+ eager: false,
706
+ nullable: true,
707
+ onDelete: "SET NULL",
708
+ orphanedRowAction: "nullify",
709
+ },
710
+ )
711
+ @JoinColumn({ name: "createdByUserId" })
712
+ public createdByUser?: User = undefined;
713
+
714
+ @ColumnAccessControl({
715
+ create: [],
716
+ read: [Permission.ProjectOwner, Permission.ProjectAdmin],
717
+ update: [],
718
+ })
719
+ @TableColumn({
720
+ type: TableColumnType.ObjectID,
721
+ title: "Created by User ID",
722
+ description:
723
+ "User ID who created this object (if this object was created by a User)",
724
+ })
725
+ @Column({
726
+ type: ColumnType.ObjectID,
727
+ nullable: true,
728
+ transformer: ObjectID.getDatabaseTransformer(),
729
+ })
730
+ public createdByUserId?: ObjectID = undefined;
731
+ }