@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,415 @@
1
+ import AIAgentService from "../Services/AIAgentService";
2
+ import LlmProviderService from "../Services/LlmProviderService";
3
+ import TelemetryExceptionService from "../Services/TelemetryExceptionService";
4
+ import ServiceCatalogTelemetryServiceService from "../Services/ServiceCatalogTelemetryServiceService";
5
+ import ServiceCatalogCodeRepositoryService from "../Services/ServiceCatalogCodeRepositoryService";
6
+ import CodeRepositoryService from "../Services/CodeRepositoryService";
7
+ import AIAgentTaskPullRequestService from "../Services/AIAgentTaskPullRequestService";
8
+ import AIAgentTaskService from "../Services/AIAgentTaskService";
9
+ import Express from "../Utils/Express";
10
+ import Response from "../Utils/Response";
11
+ import AIAgentTaskPullRequest from "../../Models/DatabaseModels/AIAgentTaskPullRequest";
12
+ import BadDataException from "../../Types/Exception/BadDataException";
13
+ import ObjectID from "../../Types/ObjectID";
14
+ import GitHubUtil from "../Utils/CodeRepository/GitHub/GitHub";
15
+ import CodeRepositoryType from "../../Types/CodeRepository/CodeRepositoryType";
16
+ import LIMIT_MAX from "../../Types/Database/LimitMax";
17
+ import URL from "../../Types/API/URL";
18
+ import PullRequestState from "../../Types/CodeRepository/PullRequestState";
19
+ import logger from "../Utils/Logger";
20
+ export default class AIAgentDataAPI {
21
+ constructor() {
22
+ this.router = Express.getRouter();
23
+ this.initRoutes();
24
+ }
25
+ getRouter() {
26
+ return this.router;
27
+ }
28
+ initRoutes() {
29
+ // Get LLM configuration for a project
30
+ this.router.post("/ai-agent-data/get-llm-config", async (req, res, next) => {
31
+ try {
32
+ const data = req.body;
33
+ // Validate AI Agent credentials
34
+ const aiAgent = await this.validateAIAgent(data);
35
+ if (!aiAgent) {
36
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
37
+ }
38
+ // Get project ID
39
+ if (!data["projectId"]) {
40
+ return Response.sendErrorResponse(req, res, new BadDataException("projectId is required"));
41
+ }
42
+ const projectId = new ObjectID(data["projectId"]);
43
+ // Check if this is a Project AI Agent (has a projectId)
44
+ const isProjectAIAgent = aiAgent.projectId !== null && aiAgent.projectId !== undefined;
45
+ // Get LLM provider for the project
46
+ const llmProvider = await LlmProviderService.getLLMProviderForProject(projectId);
47
+ if (!llmProvider) {
48
+ return Response.sendErrorResponse(req, res, new BadDataException("No LLM provider configured for this project"));
49
+ }
50
+ /*
51
+ * Security check: Project AI Agents cannot access Global LLM Providers
52
+ * Only Global AI Agents (projectId is null) can access Global LLM Providers
53
+ */
54
+ const isGlobalLLMProvider = llmProvider.isGlobalLlm === true;
55
+ if (isProjectAIAgent && isGlobalLLMProvider) {
56
+ return Response.sendErrorResponse(req, res, new BadDataException("Project AI Agents cannot access Global LLM Providers. Please configure a project-specific LLM Provider."));
57
+ }
58
+ logger.debug(`LLM config fetched for project ${projectId.toString()}: ${llmProvider.llmType}`);
59
+ return Response.sendJsonObjectResponse(req, res, {
60
+ llmType: llmProvider.llmType,
61
+ apiKey: llmProvider.apiKey,
62
+ baseUrl: llmProvider.baseUrl,
63
+ modelName: llmProvider.modelName,
64
+ });
65
+ }
66
+ catch (err) {
67
+ next(err);
68
+ }
69
+ });
70
+ // Get exception details with telemetry service info
71
+ this.router.post("/ai-agent-data/get-exception-details", async (req, res, next) => {
72
+ var _a, _b, _c, _d;
73
+ try {
74
+ const data = req.body;
75
+ // Validate AI Agent credentials
76
+ const aiAgent = await this.validateAIAgent(data);
77
+ if (!aiAgent) {
78
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
79
+ }
80
+ // Get exception ID
81
+ if (!data["exceptionId"]) {
82
+ return Response.sendErrorResponse(req, res, new BadDataException("exceptionId is required"));
83
+ }
84
+ const exceptionId = new ObjectID(data["exceptionId"]);
85
+ // Get exception with telemetry service
86
+ const exception = await TelemetryExceptionService.findOneById({
87
+ id: exceptionId,
88
+ select: {
89
+ _id: true,
90
+ message: true,
91
+ stackTrace: true,
92
+ exceptionType: true,
93
+ fingerprint: true,
94
+ telemetryServiceId: true,
95
+ telemetryService: {
96
+ _id: true,
97
+ name: true,
98
+ description: true,
99
+ },
100
+ },
101
+ props: {
102
+ isRoot: true,
103
+ },
104
+ });
105
+ if (!exception) {
106
+ return Response.sendErrorResponse(req, res, new BadDataException("Exception not found"));
107
+ }
108
+ logger.debug(`Exception details fetched: ${exception._id} - ${(_a = exception.message) === null || _a === void 0 ? void 0 : _a.substring(0, 100)}`);
109
+ return Response.sendJsonObjectResponse(req, res, {
110
+ exception: {
111
+ id: (_b = exception._id) === null || _b === void 0 ? void 0 : _b.toString(),
112
+ message: exception.message,
113
+ stackTrace: exception.stackTrace,
114
+ exceptionType: exception.exceptionType,
115
+ fingerprint: exception.fingerprint,
116
+ },
117
+ telemetryService: exception.telemetryServiceId
118
+ ? {
119
+ id: exception.telemetryServiceId.toString(),
120
+ name: (_c = exception.telemetryService) === null || _c === void 0 ? void 0 : _c.name,
121
+ description: (_d = exception.telemetryService) === null || _d === void 0 ? void 0 : _d.description,
122
+ }
123
+ : null,
124
+ });
125
+ }
126
+ catch (err) {
127
+ next(err);
128
+ }
129
+ });
130
+ // Get code repositories linked to a telemetry service via ServiceCatalog
131
+ this.router.post("/ai-agent-data/get-code-repositories", async (req, res, next) => {
132
+ var _a;
133
+ try {
134
+ const data = req.body;
135
+ // Validate AI Agent credentials
136
+ const aiAgent = await this.validateAIAgent(data);
137
+ if (!aiAgent) {
138
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
139
+ }
140
+ // Get telemetry service ID
141
+ if (!data["telemetryServiceId"]) {
142
+ return Response.sendErrorResponse(req, res, new BadDataException("telemetryServiceId is required"));
143
+ }
144
+ const telemetryServiceId = new ObjectID(data["telemetryServiceId"]);
145
+ // Step 1: Find ServiceCatalogs linked to this TelemetryService
146
+ const serviceCatalogTelemetryServices = await ServiceCatalogTelemetryServiceService.findBy({
147
+ query: {
148
+ telemetryServiceId: telemetryServiceId,
149
+ },
150
+ select: {
151
+ serviceCatalogId: true,
152
+ },
153
+ skip: 0,
154
+ limit: LIMIT_MAX,
155
+ props: {
156
+ isRoot: true,
157
+ },
158
+ });
159
+ if (serviceCatalogTelemetryServices.length === 0) {
160
+ logger.debug(`No service catalogs found for telemetry service ${telemetryServiceId.toString()}`);
161
+ return Response.sendJsonObjectResponse(req, res, {
162
+ repositories: [],
163
+ });
164
+ }
165
+ // Extract service catalog IDs
166
+ const serviceCatalogIds = serviceCatalogTelemetryServices
167
+ .filter((s) => {
168
+ return s.serviceCatalogId;
169
+ })
170
+ .map((s) => {
171
+ return s.serviceCatalogId;
172
+ });
173
+ // Step 2: Find CodeRepositories linked to these ServiceCatalogs
174
+ const repositories = [];
175
+ for (const serviceCatalogId of serviceCatalogIds) {
176
+ const serviceCatalogCodeRepositories = await ServiceCatalogCodeRepositoryService.findBy({
177
+ query: {
178
+ serviceCatalogId: serviceCatalogId,
179
+ },
180
+ select: {
181
+ codeRepositoryId: true,
182
+ servicePathInRepository: true,
183
+ codeRepository: {
184
+ _id: true,
185
+ name: true,
186
+ repositoryHostedAt: true,
187
+ organizationName: true,
188
+ repositoryName: true,
189
+ mainBranchName: true,
190
+ gitHubAppInstallationId: true,
191
+ },
192
+ },
193
+ skip: 0,
194
+ limit: LIMIT_MAX,
195
+ props: {
196
+ isRoot: true,
197
+ },
198
+ });
199
+ for (const scr of serviceCatalogCodeRepositories) {
200
+ if (scr.codeRepository) {
201
+ // Check if we already have this repository
202
+ const existingRepo = repositories.some((r) => {
203
+ var _a, _b;
204
+ return r.id === ((_b = (_a = scr.codeRepository) === null || _a === void 0 ? void 0 : _a._id) === null || _b === void 0 ? void 0 : _b.toString());
205
+ });
206
+ if (!existingRepo) {
207
+ repositories.push({
208
+ id: ((_a = scr.codeRepository._id) === null || _a === void 0 ? void 0 : _a.toString()) || "",
209
+ name: scr.codeRepository.name || "",
210
+ repositoryHostedAt: scr.codeRepository.repositoryHostedAt || "",
211
+ organizationName: scr.codeRepository.organizationName || "",
212
+ repositoryName: scr.codeRepository.repositoryName || "",
213
+ mainBranchName: scr.codeRepository.mainBranchName || "main",
214
+ servicePathInRepository: scr.servicePathInRepository || null,
215
+ gitHubAppInstallationId: scr.codeRepository.gitHubAppInstallationId || null,
216
+ });
217
+ }
218
+ }
219
+ }
220
+ }
221
+ logger.debug(`Found ${repositories.length} code repositories for telemetry service ${telemetryServiceId.toString()}`);
222
+ return Response.sendJsonObjectResponse(req, res, {
223
+ repositories: repositories,
224
+ });
225
+ }
226
+ catch (err) {
227
+ next(err);
228
+ }
229
+ });
230
+ // Get access token for a code repository
231
+ this.router.post("/ai-agent-data/get-repository-token", async (req, res, next) => {
232
+ try {
233
+ const data = req.body;
234
+ // Validate AI Agent credentials
235
+ const aiAgent = await this.validateAIAgent(data);
236
+ if (!aiAgent) {
237
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
238
+ }
239
+ // Get code repository ID
240
+ if (!data["codeRepositoryId"]) {
241
+ return Response.sendErrorResponse(req, res, new BadDataException("codeRepositoryId is required"));
242
+ }
243
+ const codeRepositoryId = new ObjectID(data["codeRepositoryId"]);
244
+ // Get code repository
245
+ const codeRepository = await CodeRepositoryService.findOneById({
246
+ id: codeRepositoryId,
247
+ select: {
248
+ _id: true,
249
+ repositoryHostedAt: true,
250
+ organizationName: true,
251
+ repositoryName: true,
252
+ gitHubAppInstallationId: true,
253
+ },
254
+ props: {
255
+ isRoot: true,
256
+ },
257
+ });
258
+ if (!codeRepository) {
259
+ return Response.sendErrorResponse(req, res, new BadDataException("Code repository not found"));
260
+ }
261
+ // Currently only supporting GitHub
262
+ if (codeRepository.repositoryHostedAt !== CodeRepositoryType.GitHub) {
263
+ return Response.sendErrorResponse(req, res, new BadDataException(`Repository type ${codeRepository.repositoryHostedAt} is not yet supported`));
264
+ }
265
+ // Check if we have a GitHub App installation ID
266
+ if (!codeRepository.gitHubAppInstallationId) {
267
+ return Response.sendErrorResponse(req, res, new BadDataException("No GitHub App installation ID found for this repository"));
268
+ }
269
+ // Generate GitHub installation access token
270
+ const tokenData = await GitHubUtil.getInstallationAccessToken(codeRepository.gitHubAppInstallationId);
271
+ const repositoryUrl = `https://github.com/${codeRepository.organizationName}/${codeRepository.repositoryName}.git`;
272
+ logger.debug(`Generated access token for repository ${codeRepository.organizationName}/${codeRepository.repositoryName}`);
273
+ return Response.sendJsonObjectResponse(req, res, {
274
+ token: tokenData.token,
275
+ expiresAt: tokenData.expiresAt,
276
+ repositoryUrl: repositoryUrl,
277
+ organizationName: codeRepository.organizationName,
278
+ repositoryName: codeRepository.repositoryName,
279
+ });
280
+ }
281
+ catch (err) {
282
+ next(err);
283
+ }
284
+ });
285
+ // Record a pull request created by the AI Agent
286
+ this.router.post("/ai-agent-data/record-pull-request", async (req, res, next) => {
287
+ var _a;
288
+ try {
289
+ const data = req.body;
290
+ // Validate AI Agent credentials
291
+ const aiAgent = await this.validateAIAgent(data);
292
+ if (!aiAgent) {
293
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
294
+ }
295
+ // Validate required fields
296
+ if (!data["taskId"]) {
297
+ return Response.sendErrorResponse(req, res, new BadDataException("taskId is required"));
298
+ }
299
+ if (!data["codeRepositoryId"]) {
300
+ return Response.sendErrorResponse(req, res, new BadDataException("codeRepositoryId is required"));
301
+ }
302
+ if (!data["pullRequestUrl"]) {
303
+ return Response.sendErrorResponse(req, res, new BadDataException("pullRequestUrl is required"));
304
+ }
305
+ if (!data["title"]) {
306
+ return Response.sendErrorResponse(req, res, new BadDataException("title is required"));
307
+ }
308
+ const taskId = new ObjectID(data["taskId"]);
309
+ const codeRepositoryId = new ObjectID(data["codeRepositoryId"]);
310
+ const pullRequestUrl = data["pullRequestUrl"];
311
+ const pullRequestNumber = data["pullRequestNumber"];
312
+ const pullRequestId = data["pullRequestId"];
313
+ const title = data["title"];
314
+ const description = data["description"];
315
+ const headRefName = data["headRefName"];
316
+ const baseRefName = data["baseRefName"];
317
+ // Get the task to get the project ID
318
+ const task = await AIAgentTaskService.findOneById({
319
+ id: taskId,
320
+ select: {
321
+ _id: true,
322
+ projectId: true,
323
+ },
324
+ props: {
325
+ isRoot: true,
326
+ },
327
+ });
328
+ if (!task) {
329
+ return Response.sendErrorResponse(req, res, new BadDataException("Task not found"));
330
+ }
331
+ // Get code repository for organization and repo name
332
+ const codeRepository = await CodeRepositoryService.findOneById({
333
+ id: codeRepositoryId,
334
+ select: {
335
+ _id: true,
336
+ organizationName: true,
337
+ repositoryName: true,
338
+ },
339
+ props: {
340
+ isRoot: true,
341
+ },
342
+ });
343
+ // Create the pull request record
344
+ const pullRequest = new AIAgentTaskPullRequest();
345
+ if (task.projectId) {
346
+ pullRequest.projectId = task.projectId;
347
+ }
348
+ pullRequest.aiAgentTaskId = taskId;
349
+ pullRequest.aiAgentId = aiAgent.id;
350
+ pullRequest.codeRepositoryId = codeRepositoryId;
351
+ pullRequest.pullRequestUrl = URL.fromString(pullRequestUrl);
352
+ if (pullRequestNumber !== undefined) {
353
+ pullRequest.pullRequestNumber = pullRequestNumber;
354
+ }
355
+ if (pullRequestId !== undefined) {
356
+ pullRequest.pullRequestId = pullRequestId;
357
+ }
358
+ pullRequest.title = title;
359
+ if (description) {
360
+ pullRequest.description = description;
361
+ }
362
+ pullRequest.pullRequestState = PullRequestState.Open;
363
+ if (headRefName) {
364
+ pullRequest.headRefName = headRefName;
365
+ }
366
+ if (baseRefName) {
367
+ pullRequest.baseRefName = baseRefName;
368
+ }
369
+ if (codeRepository === null || codeRepository === void 0 ? void 0 : codeRepository.organizationName) {
370
+ pullRequest.repoOrganizationName = codeRepository.organizationName;
371
+ }
372
+ if (codeRepository === null || codeRepository === void 0 ? void 0 : codeRepository.repositoryName) {
373
+ pullRequest.repoName = codeRepository.repositoryName;
374
+ }
375
+ const createdPullRequest = await AIAgentTaskPullRequestService.create({
376
+ data: pullRequest,
377
+ props: {
378
+ isRoot: true,
379
+ },
380
+ });
381
+ logger.debug(`Recorded pull request ${pullRequestUrl} for task ${taskId.toString()}`);
382
+ return Response.sendJsonObjectResponse(req, res, {
383
+ success: true,
384
+ pullRequestId: (_a = createdPullRequest._id) === null || _a === void 0 ? void 0 : _a.toString(),
385
+ });
386
+ }
387
+ catch (err) {
388
+ next(err);
389
+ }
390
+ });
391
+ }
392
+ // Validate AI Agent credentials from request body
393
+ async validateAIAgent(data) {
394
+ if (!data["aiAgentId"] || !data["aiAgentKey"]) {
395
+ return null;
396
+ }
397
+ const aiAgentId = new ObjectID(data["aiAgentId"]);
398
+ const aiAgentKey = data["aiAgentKey"];
399
+ const aiAgent = await AIAgentService.findOneBy({
400
+ query: {
401
+ _id: aiAgentId.toString(),
402
+ key: aiAgentKey,
403
+ },
404
+ select: {
405
+ _id: true,
406
+ projectId: true, // Fetch projectId to check if this is a global or project AI agent
407
+ },
408
+ props: {
409
+ isRoot: true,
410
+ },
411
+ });
412
+ return aiAgent;
413
+ }
414
+ }
415
+ //# sourceMappingURL=AIAgentDataAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAgentDataAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentDataAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,199 @@
1
+ import AIAgentService from "../Services/AIAgentService";
2
+ import AIAgentTaskService from "../Services/AIAgentTaskService";
3
+ import Response from "../Utils/Response";
4
+ import BaseAPI from "./BaseAPI";
5
+ import AIAgentTask from "../../Models/DatabaseModels/AIAgentTask";
6
+ import BadDataException from "../../Types/Exception/BadDataException";
7
+ import ObjectID from "../../Types/ObjectID";
8
+ import OneUptimeDate from "../../Types/Date";
9
+ import AIAgentTaskStatus from "../../Types/AI/AIAgentTaskStatus";
10
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
11
+ export default class AIAgentTaskAPI extends BaseAPI {
12
+ constructor() {
13
+ var _a, _b, _c;
14
+ super(AIAgentTask, AIAgentTaskService);
15
+ /*
16
+ * Get the next pending (scheduled) task for processing
17
+ * Validates aiAgentId and aiAgentKey before returning task
18
+ */
19
+ this.router.post(`${(_a = new this.entityType().getCrudApiPath()) === null || _a === void 0 ? void 0 : _a.toString()}/get-pending-task`, async (req, res, next) => {
20
+ var _a, _b;
21
+ try {
22
+ const data = req.body;
23
+ /* Validate AI Agent credentials */
24
+ const aiAgent = await this.validateAIAgent(data);
25
+ if (!aiAgent) {
26
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
27
+ }
28
+ /* Fetch one scheduled task, sorted by createdAt (oldest first) */
29
+ const task = await AIAgentTaskService.findOneBy({
30
+ query: {
31
+ status: AIAgentTaskStatus.Scheduled,
32
+ },
33
+ sort: {
34
+ createdAt: SortOrder.Ascending,
35
+ },
36
+ select: {
37
+ _id: true,
38
+ projectId: true,
39
+ taskType: true,
40
+ metadata: true,
41
+ createdAt: true,
42
+ },
43
+ props: {
44
+ isRoot: true,
45
+ },
46
+ });
47
+ if (!task) {
48
+ return Response.sendJsonObjectResponse(req, res, {
49
+ task: null,
50
+ message: "No pending tasks available",
51
+ });
52
+ }
53
+ return Response.sendJsonObjectResponse(req, res, {
54
+ task: {
55
+ _id: (_a = task._id) === null || _a === void 0 ? void 0 : _a.toString(),
56
+ projectId: (_b = task.projectId) === null || _b === void 0 ? void 0 : _b.toString(),
57
+ taskType: task.taskType,
58
+ metadata: task.metadata,
59
+ createdAt: task.createdAt,
60
+ },
61
+ message: "Task fetched successfully",
62
+ });
63
+ }
64
+ catch (err) {
65
+ next(err);
66
+ }
67
+ });
68
+ /*
69
+ * Get the count of pending (scheduled) tasks for KEDA autoscaling
70
+ * Validates aiAgentId and aiAgentKey before returning count
71
+ */
72
+ this.router.post(`${(_b = new this.entityType().getCrudApiPath()) === null || _b === void 0 ? void 0 : _b.toString()}/get-pending-task-count`, async (req, res, next) => {
73
+ try {
74
+ const data = req.body;
75
+ /* Validate AI Agent credentials */
76
+ const aiAgent = await this.validateAIAgent(data);
77
+ if (!aiAgent) {
78
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
79
+ }
80
+ /* Count scheduled tasks */
81
+ const count = await AIAgentTaskService.countBy({
82
+ query: {
83
+ status: AIAgentTaskStatus.Scheduled,
84
+ },
85
+ props: {
86
+ isRoot: true,
87
+ },
88
+ });
89
+ return Response.sendJsonObjectResponse(req, res, {
90
+ count: count,
91
+ message: "Pending task count fetched successfully",
92
+ });
93
+ }
94
+ catch (err) {
95
+ next(err);
96
+ }
97
+ });
98
+ /*
99
+ * Update task status (InProgress, Completed, Error)
100
+ * Validates aiAgentId and aiAgentKey before updating
101
+ */
102
+ this.router.post(`${(_c = new this.entityType().getCrudApiPath()) === null || _c === void 0 ? void 0 : _c.toString()}/update-task-status`, async (req, res, next) => {
103
+ try {
104
+ const data = req.body;
105
+ /* Validate AI Agent credentials */
106
+ const aiAgent = await this.validateAIAgent(data);
107
+ if (!aiAgent) {
108
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid AI Agent ID or AI Agent Key"));
109
+ }
110
+ /* Validate required fields */
111
+ if (!data["taskId"]) {
112
+ return Response.sendErrorResponse(req, res, new BadDataException("taskId is required"));
113
+ }
114
+ if (!data["status"]) {
115
+ return Response.sendErrorResponse(req, res, new BadDataException("status is required"));
116
+ }
117
+ const taskId = new ObjectID(data["taskId"]);
118
+ const status = data["status"];
119
+ const statusMessage = data["statusMessage"];
120
+ /* Validate status value */
121
+ const validStatuses = [
122
+ AIAgentTaskStatus.InProgress,
123
+ AIAgentTaskStatus.Completed,
124
+ AIAgentTaskStatus.Error,
125
+ ];
126
+ if (!validStatuses.includes(status)) {
127
+ return Response.sendErrorResponse(req, res, new BadDataException(`Invalid status. Must be one of: ${validStatuses.join(", ")}`));
128
+ }
129
+ /* Check if task exists */
130
+ const existingTask = await AIAgentTaskService.findOneById({
131
+ id: taskId,
132
+ select: {
133
+ _id: true,
134
+ status: true,
135
+ },
136
+ props: {
137
+ isRoot: true,
138
+ },
139
+ });
140
+ if (!existingTask) {
141
+ return Response.sendErrorResponse(req, res, new BadDataException("Task not found"));
142
+ }
143
+ /* Update the task based on status */
144
+ if (status === AIAgentTaskStatus.InProgress) {
145
+ await AIAgentTaskService.updateOneById({
146
+ id: taskId,
147
+ data: Object.assign(Object.assign(Object.assign({ status: status }, (aiAgent.id && { aiAgentId: aiAgent.id })), { startedAt: OneUptimeDate.getCurrentDate() }), (statusMessage && { statusMessage: statusMessage })),
148
+ props: {
149
+ isRoot: true,
150
+ },
151
+ });
152
+ }
153
+ else if (status === AIAgentTaskStatus.Completed ||
154
+ status === AIAgentTaskStatus.Error) {
155
+ await AIAgentTaskService.updateOneById({
156
+ id: taskId,
157
+ data: Object.assign({ status: status, completedAt: OneUptimeDate.getCurrentDate() }, (statusMessage && { statusMessage: statusMessage })),
158
+ props: {
159
+ isRoot: true,
160
+ },
161
+ });
162
+ }
163
+ return Response.sendJsonObjectResponse(req, res, {
164
+ taskId: taskId.toString(),
165
+ status: status,
166
+ message: "Task status updated successfully",
167
+ });
168
+ }
169
+ catch (err) {
170
+ next(err);
171
+ }
172
+ });
173
+ }
174
+ /*
175
+ * Validate AI Agent credentials from request body
176
+ * Returns AIAgent if valid, null otherwise
177
+ */
178
+ async validateAIAgent(data) {
179
+ if (!data["aiAgentId"] || !data["aiAgentKey"]) {
180
+ return null;
181
+ }
182
+ const aiAgentId = new ObjectID(data["aiAgentId"]);
183
+ const aiAgentKey = data["aiAgentKey"];
184
+ const aiAgent = await AIAgentService.findOneBy({
185
+ query: {
186
+ _id: aiAgentId.toString(),
187
+ key: aiAgentKey,
188
+ },
189
+ select: {
190
+ _id: true,
191
+ },
192
+ props: {
193
+ isRoot: true,
194
+ },
195
+ });
196
+ return aiAgent;
197
+ }
198
+ }
199
+ //# sourceMappingURL=AIAgentTaskAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAgentTaskAPI.js","sourceRoot":"","sources":["../../../../Server/API/AIAgentTaskAPI.ts"],"names":[],"mappings":"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"}