@oneuptime/common 9.2.26 → 9.3.0

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 (278) 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/Types/Workflow/Components/Index.ts +2 -0
  42. package/Server/Types/Workflow/Components/Telegram/SendMessageToChat.ts +146 -0
  43. package/Server/Utils/Monitor/MonitorResource.ts +228 -0
  44. package/Server/Utils/PushNotificationUtil.ts +29 -0
  45. package/Server/Utils/WhatsAppTemplateUtil.ts +6 -0
  46. package/Tests/UI/Components/Badge.test.tsx +5 -5
  47. package/Tests/UI/Components/Card.test.tsx +4 -8
  48. package/Tests/UI/Components/HiddenText.test.tsx +2 -5
  49. package/Tests/UI/Components/SideMenuItem.test.tsx +4 -2
  50. package/Types/AI/AIAgentTaskMetadata.ts +25 -0
  51. package/Types/AI/AIAgentTaskStatus.ts +65 -0
  52. package/Types/AI/AIAgentTaskType.ts +40 -0
  53. package/Types/Email/EmailTemplateType.ts +2 -0
  54. package/Types/Monitor/MonitorEvaluationSummary.ts +2 -1
  55. package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
  56. package/Types/Permission.ts +176 -0
  57. package/Types/WhatsApp/WhatsAppTemplates.ts +9 -0
  58. package/Types/Workflow/ComponentID.ts +1 -0
  59. package/Types/Workflow/Components/Telegram.ts +76 -0
  60. package/Types/Workflow/Components.ts +7 -0
  61. package/UI/Components/AIAgent/AIAgent.tsx +69 -0
  62. package/UI/Components/Badge/Badge.tsx +9 -5
  63. package/UI/Components/Banner/Banner.tsx +1 -1
  64. package/UI/Components/Card/Card.tsx +14 -12
  65. package/UI/Components/CodeBlock/CodeBlock.tsx +47 -4
  66. package/UI/Components/Detail/Detail.tsx +239 -49
  67. package/UI/Components/Detail/FieldLabel.tsx +35 -11
  68. package/UI/Components/Detail/PlaceholderText.tsx +18 -1
  69. package/UI/Components/Footer/Footer.tsx +9 -7
  70. package/UI/Components/Header/Header.tsx +4 -3
  71. package/UI/Components/Header/HeaderIconDropdownButton.tsx +13 -11
  72. package/UI/Components/Header/IconDropdown/IconDropdownItem.tsx +3 -3
  73. package/UI/Components/Header/IconDropdown/IconDropdownMenu.tsx +1 -1
  74. package/UI/Components/Header/ProjectPicker/CreateNewProjectButton.tsx +4 -4
  75. package/UI/Components/Header/ProjectPicker/ProjectPicker.tsx +6 -6
  76. package/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.tsx +3 -3
  77. package/UI/Components/Header/ProjectPicker/ProjectPickerMenu.tsx +1 -1
  78. package/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.tsx +4 -4
  79. package/UI/Components/HeaderAlert/HeaderAlert.tsx +32 -32
  80. package/UI/Components/HeaderAlert/HeaderAlertGroup.tsx +1 -7
  81. package/UI/Components/HiddenText/HiddenText.tsx +98 -27
  82. package/UI/Components/Icon/Icon.tsx +12 -9
  83. package/UI/Components/InfoCard/InfoCard.tsx +7 -3
  84. package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
  85. package/UI/Components/ObjectID/ObjectIDView.tsx +73 -0
  86. package/UI/Components/Page/Page.tsx +3 -5
  87. package/UI/Components/SideMenu/SideMenu.tsx +175 -40
  88. package/UI/Components/SideMenu/SideMenuDivider.tsx +17 -0
  89. package/UI/Components/SideMenu/SideMenuItem.tsx +111 -158
  90. package/UI/Components/SideMenu/SideMenuSection.tsx +53 -3
  91. package/UI/Components/Table/Table.tsx +1 -1
  92. package/UI/Components/Types/FieldType.ts +2 -0
  93. package/UI/Config.ts +5 -0
  94. package/build/dist/Models/DatabaseModels/AIAgent.js +614 -0
  95. package/build/dist/Models/DatabaseModels/AIAgent.js.map +1 -0
  96. package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js +452 -0
  97. package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js.map +1 -0
  98. package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js +451 -0
  99. package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js.map +1 -0
  100. package/build/dist/Models/DatabaseModels/AIAgentTask.js +580 -0
  101. package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +1 -0
  102. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +438 -0
  103. package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +1 -0
  104. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +771 -0
  105. package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +404 -0
  107. package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/Index.js +14 -0
  109. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  110. package/build/dist/Models/DatabaseModels/Monitor.js +34 -0
  111. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  112. package/build/dist/Models/DatabaseModels/Project.js +26 -0
  113. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/TelemetryException.js +1 -1
  115. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  116. package/build/dist/Server/API/AIAgentAPI.js +141 -0
  117. package/build/dist/Server/API/AIAgentAPI.js.map +1 -0
  118. package/build/dist/Server/API/AIAgentDataAPI.js +415 -0
  119. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -0
  120. package/build/dist/Server/API/AIAgentTaskAPI.js +199 -0
  121. package/build/dist/Server/API/AIAgentTaskAPI.js.map +1 -0
  122. package/build/dist/Server/API/AIAgentTaskLogAPI.js +106 -0
  123. package/build/dist/Server/API/AIAgentTaskLogAPI.js.map +1 -0
  124. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js +9 -0
  125. package/build/dist/Server/API/AIAgentTaskPullRequestAPI.js.map +1 -0
  126. package/build/dist/Server/API/GitHubAPI.js +23 -8
  127. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  128. package/build/dist/Server/API/TelemetryExceptionAPI.js +120 -0
  129. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -0
  130. package/build/dist/Server/EnvironmentConfig.js +2 -0
  131. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  132. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766590916627-MigrationName.js +74 -0
  133. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766590916627-MigrationName.js.map +1 -0
  134. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766600860972-MigrationName.js +18 -0
  135. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766600860972-MigrationName.js.map +1 -0
  136. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766606720183-MigrationName.js +12 -0
  137. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766606720183-MigrationName.js.map +1 -0
  138. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766688107858-MigrationName.js +28 -0
  139. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766688107858-MigrationName.js.map +1 -0
  140. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766754182870-MigrationName.js +32 -0
  141. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766754182870-MigrationName.js.map +1 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766774689743-MigrationName.js +60 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766774689743-MigrationName.js.map +1 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766777986427-MigrationName.js +18 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766777986427-MigrationName.js.map +1 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766918848434-AddAIAgentIsDefault.js +16 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766918848434-AddAIAgentIsDefault.js.map +1 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766923324521-MigrationName.js +20 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766923324521-MigrationName.js.map +1 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766958924188-AddGitHubAppInstallationIdToProject.js +16 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1766958924188-AddGitHubAppInstallationIdToProject.js.map +1 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767009661768-MigrationName.js +18 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1767009661768-MigrationName.js.map +1 -0
  154. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +22 -0
  155. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  156. package/build/dist/Server/Services/AIAgentOwnerTeamService.js +9 -0
  157. package/build/dist/Server/Services/AIAgentOwnerTeamService.js.map +1 -0
  158. package/build/dist/Server/Services/AIAgentOwnerUserService.js +9 -0
  159. package/build/dist/Server/Services/AIAgentOwnerUserService.js.map +1 -0
  160. package/build/dist/Server/Services/AIAgentService.js +471 -0
  161. package/build/dist/Server/Services/AIAgentService.js.map +1 -0
  162. package/build/dist/Server/Services/AIAgentTaskLogService.js +9 -0
  163. package/build/dist/Server/Services/AIAgentTaskLogService.js.map +1 -0
  164. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js +9 -0
  165. package/build/dist/Server/Services/AIAgentTaskPullRequestService.js.map +1 -0
  166. package/build/dist/Server/Services/AIAgentTaskService.js +158 -0
  167. package/build/dist/Server/Services/AIAgentTaskService.js.map +1 -0
  168. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js +36 -0
  169. package/build/dist/Server/Services/AIAgentTaskTelemetryExceptionService.js.map +1 -0
  170. package/build/dist/Server/Services/Index.js +10 -0
  171. package/build/dist/Server/Services/Index.js.map +1 -1
  172. package/build/dist/Server/Services/TelemetryExceptionService.js +137 -0
  173. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  174. package/build/dist/Server/Types/Workflow/Components/Index.js +2 -0
  175. package/build/dist/Server/Types/Workflow/Components/Index.js.map +1 -1
  176. package/build/dist/Server/Types/Workflow/Components/Telegram/SendMessageToChat.js +119 -0
  177. package/build/dist/Server/Types/Workflow/Components/Telegram/SendMessageToChat.js.map +1 -0
  178. package/build/dist/Server/Utils/Monitor/MonitorResource.js +168 -0
  179. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  180. package/build/dist/Server/Utils/PushNotificationUtil.js +21 -0
  181. package/build/dist/Server/Utils/PushNotificationUtil.js.map +1 -1
  182. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +4 -0
  183. package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
  184. package/build/dist/Tests/UI/Components/Badge.test.js +5 -5
  185. package/build/dist/Tests/UI/Components/Badge.test.js.map +1 -1
  186. package/build/dist/Tests/UI/Components/Card.test.js +4 -8
  187. package/build/dist/Tests/UI/Components/Card.test.js.map +1 -1
  188. package/build/dist/Tests/UI/Components/HiddenText.test.js +2 -3
  189. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +1 -1
  190. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +3 -2
  191. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +1 -1
  192. package/build/dist/Types/AI/AIAgentTaskMetadata.js +6 -0
  193. package/build/dist/Types/AI/AIAgentTaskMetadata.js.map +1 -0
  194. package/build/dist/Types/AI/AIAgentTaskStatus.js +51 -0
  195. package/build/dist/Types/AI/AIAgentTaskStatus.js.map +1 -0
  196. package/build/dist/Types/AI/AIAgentTaskType.js +29 -0
  197. package/build/dist/Types/AI/AIAgentTaskType.js.map +1 -0
  198. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  199. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  200. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
  201. package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
  202. package/build/dist/Types/Permission.js +160 -0
  203. package/build/dist/Types/Permission.js.map +1 -1
  204. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js +6 -0
  205. package/build/dist/Types/WhatsApp/WhatsAppTemplates.js.map +1 -1
  206. package/build/dist/Types/Workflow/ComponentID.js +1 -0
  207. package/build/dist/Types/Workflow/ComponentID.js.map +1 -1
  208. package/build/dist/Types/Workflow/Components/Telegram.js +69 -0
  209. package/build/dist/Types/Workflow/Components/Telegram.js.map +1 -0
  210. package/build/dist/Types/Workflow/Components.js +7 -0
  211. package/build/dist/Types/Workflow/Components.js.map +1 -1
  212. package/build/dist/UI/Components/AIAgent/AIAgent.js +32 -0
  213. package/build/dist/UI/Components/AIAgent/AIAgent.js.map +1 -0
  214. package/build/dist/UI/Components/Badge/Badge.js +9 -5
  215. package/build/dist/UI/Components/Badge/Badge.js.map +1 -1
  216. package/build/dist/UI/Components/Banner/Banner.js +1 -1
  217. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  218. package/build/dist/UI/Components/Card/Card.js +12 -12
  219. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  220. package/build/dist/UI/Components/CodeBlock/CodeBlock.js +22 -2
  221. package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
  222. package/build/dist/UI/Components/Detail/Detail.js +117 -37
  223. package/build/dist/UI/Components/Detail/Detail.js.map +1 -1
  224. package/build/dist/UI/Components/Detail/FieldLabel.js +12 -7
  225. package/build/dist/UI/Components/Detail/FieldLabel.js.map +1 -1
  226. package/build/dist/UI/Components/Detail/PlaceholderText.js +4 -1
  227. package/build/dist/UI/Components/Detail/PlaceholderText.js.map +1 -1
  228. package/build/dist/UI/Components/Footer/Footer.js +6 -6
  229. package/build/dist/UI/Components/Footer/Footer.js.map +1 -1
  230. package/build/dist/UI/Components/Header/Header.js +4 -3
  231. package/build/dist/UI/Components/Header/Header.js.map +1 -1
  232. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +7 -7
  233. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  234. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js +3 -3
  235. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownItem.js.map +1 -1
  236. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js +1 -1
  237. package/build/dist/UI/Components/Header/IconDropdown/IconDropdownMenu.js.map +1 -1
  238. package/build/dist/UI/Components/Header/ProjectPicker/CreateNewProjectButton.js +4 -4
  239. package/build/dist/UI/Components/Header/ProjectPicker/CreateNewProjectButton.js.map +1 -1
  240. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js +6 -6
  241. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPicker.js.map +1 -1
  242. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.js +2 -2
  243. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerFilterBox.js.map +1 -1
  244. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenu.js +1 -1
  245. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenu.js.map +1 -1
  246. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.js +4 -4
  247. package/build/dist/UI/Components/Header/ProjectPicker/ProjectPickerMenuItem.js.map +1 -1
  248. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +31 -29
  249. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  250. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js +1 -3
  251. package/build/dist/UI/Components/HeaderAlert/HeaderAlertGroup.js.map +1 -1
  252. package/build/dist/UI/Components/HiddenText/HiddenText.js +33 -14
  253. package/build/dist/UI/Components/HiddenText/HiddenText.js.map +1 -1
  254. package/build/dist/UI/Components/Icon/Icon.js +3 -4
  255. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  256. package/build/dist/UI/Components/InfoCard/InfoCard.js +3 -3
  257. package/build/dist/UI/Components/InfoCard/InfoCard.js.map +1 -1
  258. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
  259. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  260. package/build/dist/UI/Components/ObjectID/ObjectIDView.js +30 -0
  261. package/build/dist/UI/Components/ObjectID/ObjectIDView.js.map +1 -0
  262. package/build/dist/UI/Components/Page/Page.js +3 -3
  263. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  264. package/build/dist/UI/Components/SideMenu/SideMenu.js +82 -17
  265. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  266. package/build/dist/UI/Components/SideMenu/SideMenuDivider.js +7 -0
  267. package/build/dist/UI/Components/SideMenu/SideMenuDivider.js.map +1 -0
  268. package/build/dist/UI/Components/SideMenu/SideMenuItem.js +68 -97
  269. package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
  270. package/build/dist/UI/Components/SideMenu/SideMenuSection.js +18 -3
  271. package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
  272. package/build/dist/UI/Components/Table/Table.js +1 -1
  273. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  274. package/build/dist/UI/Components/Types/FieldType.js +2 -0
  275. package/build/dist/UI/Components/Types/FieldType.js.map +1 -1
  276. package/build/dist/UI/Config.js +2 -0
  277. package/build/dist/UI/Config.js.map +1 -1
  278. package/package.json +1 -1
@@ -0,0 +1,471 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import ObjectID from "../../Types/ObjectID";
12
+ import Version from "../../Types/Version";
13
+ import Model, { AIAgentConnectionStatus, } from "../../Models/DatabaseModels/AIAgent";
14
+ import AIAgentOwnerUserService from "./AIAgentOwnerUserService";
15
+ import LIMIT_MAX, { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
16
+ import AIAgentOwnerTeamService from "./AIAgentOwnerTeamService";
17
+ import TeamMemberService from "./TeamMemberService";
18
+ import BadDataException from "../../Types/Exception/BadDataException";
19
+ import ProjectService from "./ProjectService";
20
+ import OneUptimeDate from "../../Types/Date";
21
+ import UserNotificationSettingService from "./UserNotificationSettingService";
22
+ import NotificationSettingEventType from "../../Types/NotificationSetting/NotificationSettingEventType";
23
+ import logger from "../Utils/Logger";
24
+ import EmailTemplateType from "../../Types/Email/EmailTemplateType";
25
+ import DatabaseConfig from "../DatabaseConfig";
26
+ import URL from "../../Types/API/URL";
27
+ import PushNotificationUtil from "../Utils/PushNotificationUtil";
28
+ import { createWhatsAppMessageFromTemplate } from "../Utils/WhatsAppTemplateUtil";
29
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
30
+ import { IsBillingEnabled } from "../EnvironmentConfig";
31
+ import GlobalCache from "../Infrastructure/GlobalCache";
32
+ import QueryHelper from "../Types/Database/QueryHelper";
33
+ export class Service extends DatabaseService {
34
+ constructor() {
35
+ super(Model);
36
+ }
37
+ async saveLastAliveInCache(aiAgentId, lastAlive) {
38
+ if (!aiAgentId) {
39
+ throw new BadDataException("aiAgentId is required");
40
+ }
41
+ try {
42
+ await GlobalCache.setString("ai-agent-last-alive", aiAgentId.toString(), OneUptimeDate.toString(lastAlive));
43
+ }
44
+ catch (err) {
45
+ logger.error("Error in saving last alive in cache");
46
+ logger.error(err);
47
+ }
48
+ }
49
+ async shouldSaveLastAlive(aiAgentId) {
50
+ const now = OneUptimeDate.getCurrentDate();
51
+ try {
52
+ // before we hit the database, we need to check if the lastAlive was updated in Global Cache.
53
+ const previousLastAliveCheck = await GlobalCache.getString("ai-agent-last-alive", aiAgentId.toString());
54
+ if (!previousLastAliveCheck) {
55
+ await this.saveLastAliveInCache(aiAgentId, now);
56
+ return true;
57
+ }
58
+ const previousLastAliveCheckDate = OneUptimeDate.fromString(previousLastAliveCheck);
59
+ // if this date is within 30 seconds of current date, then we will not update the last alive.
60
+ if (previousLastAliveCheckDate) {
61
+ const diff = OneUptimeDate.getDifferenceInSeconds(now, previousLastAliveCheckDate);
62
+ if (diff < 30) {
63
+ return false;
64
+ }
65
+ }
66
+ await this.saveLastAliveInCache(aiAgentId, now);
67
+ }
68
+ catch (err) {
69
+ // failed to hit the cache, so we will hit the database
70
+ logger.error("Error in getting last alive from cache");
71
+ logger.error(err);
72
+ }
73
+ return true;
74
+ }
75
+ async updateLastAlive(aiAgentId) {
76
+ if (!aiAgentId) {
77
+ throw new BadDataException("aiAgentId is required");
78
+ }
79
+ const shouldSaveLastAlive = await this.shouldSaveLastAlive(aiAgentId);
80
+ if (!shouldSaveLastAlive) {
81
+ return;
82
+ }
83
+ const now = OneUptimeDate.getCurrentDate();
84
+ await this.updateOneById({
85
+ id: aiAgentId,
86
+ data: {
87
+ lastAlive: now,
88
+ },
89
+ props: {
90
+ isRoot: true,
91
+ },
92
+ });
93
+ }
94
+ async onBeforeCreate(createBy) {
95
+ if (!createBy.data.key) {
96
+ createBy.data.key = ObjectID.generate().toString();
97
+ }
98
+ if (!createBy.data.aiAgentVersion) {
99
+ createBy.data.aiAgentVersion = new Version("1.0.0");
100
+ }
101
+ // When creating a new AI Agent, set it as default by default
102
+ if (createBy.data.isDefault === undefined) {
103
+ createBy.data.isDefault = true;
104
+ }
105
+ // If this agent is being set as default, unset other defaults in the same project
106
+ if (createBy.data.isDefault && createBy.data.projectId) {
107
+ await this.updateBy({
108
+ query: {
109
+ projectId: createBy.data.projectId,
110
+ isDefault: true,
111
+ },
112
+ data: {
113
+ isDefault: false,
114
+ },
115
+ props: {
116
+ isRoot: true,
117
+ },
118
+ limit: LIMIT_MAX,
119
+ skip: 0,
120
+ });
121
+ }
122
+ return { createBy: createBy, carryForward: [] };
123
+ }
124
+ async getOwners(aiAgentId) {
125
+ if (!aiAgentId) {
126
+ throw new BadDataException("aiAgentId is required");
127
+ }
128
+ const ownerUsers = await AIAgentOwnerUserService.findBy({
129
+ query: {
130
+ aiAgentId: aiAgentId,
131
+ },
132
+ select: {
133
+ _id: true,
134
+ user: {
135
+ _id: true,
136
+ email: true,
137
+ name: true,
138
+ timezone: true,
139
+ },
140
+ },
141
+ props: {
142
+ isRoot: true,
143
+ },
144
+ limit: LIMIT_PER_PROJECT,
145
+ skip: 0,
146
+ });
147
+ const ownerTeams = await AIAgentOwnerTeamService.findBy({
148
+ query: {
149
+ aiAgentId: aiAgentId,
150
+ },
151
+ select: {
152
+ _id: true,
153
+ teamId: true,
154
+ },
155
+ skip: 0,
156
+ limit: LIMIT_PER_PROJECT,
157
+ props: {
158
+ isRoot: true,
159
+ },
160
+ });
161
+ const users = ownerUsers.map((ownerUser) => {
162
+ return ownerUser.user;
163
+ }) || [];
164
+ if (ownerTeams.length > 0) {
165
+ const teamIds = ownerTeams.map((ownerTeam) => {
166
+ return ownerTeam.teamId;
167
+ }) || [];
168
+ const teamUsers = await TeamMemberService.getUsersInTeams(teamIds);
169
+ for (const teamUser of teamUsers) {
170
+ //check if the user is already added.
171
+ const isUserAlreadyAdded = users.find((user) => {
172
+ return user.id.toString() === teamUser.id.toString();
173
+ });
174
+ if (!isUserAlreadyAdded) {
175
+ users.push(teamUser);
176
+ }
177
+ }
178
+ }
179
+ return users;
180
+ }
181
+ async onBeforeUpdate(updateBy) {
182
+ const carryForward = {
183
+ aiAgentsToNotifyOwners: [],
184
+ };
185
+ if (updateBy.data.connectionStatus && updateBy.query._id) {
186
+ const aiAgents = await this.findBy({
187
+ query: updateBy.query,
188
+ props: {
189
+ isRoot: true,
190
+ },
191
+ select: {
192
+ _id: true,
193
+ connectionStatus: true,
194
+ },
195
+ skip: 0,
196
+ limit: LIMIT_MAX,
197
+ });
198
+ const aiAgentsToNotifyOwners = aiAgents.filter((aiAgent) => {
199
+ return (aiAgent.connectionStatus &&
200
+ aiAgent.connectionStatus !== updateBy.data.connectionStatus);
201
+ });
202
+ carryForward.aiAgentsToNotifyOwners = aiAgentsToNotifyOwners;
203
+ }
204
+ // If setting isDefault to true, we need to unset other defaults in the same project
205
+ if (updateBy.data.isDefault === true) {
206
+ // Get the items being updated to find their project IDs
207
+ const itemsToUpdate = await this.findBy({
208
+ query: updateBy.query,
209
+ select: {
210
+ _id: true,
211
+ projectId: true,
212
+ },
213
+ props: {
214
+ isRoot: true,
215
+ },
216
+ limit: LIMIT_MAX,
217
+ skip: 0,
218
+ });
219
+ // Collect unique project IDs
220
+ const projectIds = new Set();
221
+ const itemIds = new Set();
222
+ for (const item of itemsToUpdate) {
223
+ if (item.projectId) {
224
+ projectIds.add(item.projectId.toString());
225
+ }
226
+ if (item._id) {
227
+ itemIds.add(item._id);
228
+ }
229
+ }
230
+ // For each project, unset the default on other agents
231
+ for (const projectIdStr of projectIds) {
232
+ const projectId = new ObjectID(projectIdStr);
233
+ await this.updateBy({
234
+ query: {
235
+ projectId: projectId,
236
+ isDefault: true,
237
+ _id: QueryHelper.notInOrNull(Array.from(itemIds)),
238
+ },
239
+ data: {
240
+ isDefault: false,
241
+ },
242
+ props: {
243
+ isRoot: true,
244
+ },
245
+ limit: LIMIT_MAX,
246
+ skip: 0,
247
+ });
248
+ }
249
+ }
250
+ return { updateBy: updateBy, carryForward };
251
+ }
252
+ async onUpdateSuccess(onUpdate, _updatedItemIds) {
253
+ if (onUpdate.carryForward &&
254
+ onUpdate.carryForward.aiAgentsToNotifyOwners.length > 0) {
255
+ for (const aiAgent of onUpdate.carryForward.aiAgentsToNotifyOwners) {
256
+ await this.notifyOwnersOnStatusChange({
257
+ aiAgentId: aiAgent.id,
258
+ });
259
+ }
260
+ }
261
+ return Promise.resolve(onUpdate);
262
+ }
263
+ async notifyOwnersOnStatusChange(data) {
264
+ var _a, _b;
265
+ const aiAgent = await this.findOneById({
266
+ id: data.aiAgentId,
267
+ props: {
268
+ isRoot: true,
269
+ },
270
+ select: {
271
+ _id: true,
272
+ lastAlive: true,
273
+ connectionStatus: true,
274
+ isGlobalAIAgent: true,
275
+ name: true,
276
+ description: true,
277
+ projectId: true,
278
+ project: {
279
+ name: true,
280
+ },
281
+ },
282
+ });
283
+ if (!aiAgent || !aiAgent.id) {
284
+ throw new BadDataException("AI Agent not found");
285
+ }
286
+ if (!aiAgent.projectId) {
287
+ return; // might be global AI agent. Do not notify.
288
+ }
289
+ if (aiAgent.isGlobalAIAgent && IsBillingEnabled) {
290
+ return; // do not notify for global AI agents.
291
+ }
292
+ // notify the AI agent owner
293
+ let owners = await this.getOwners(aiAgent.id);
294
+ let doesResourceHasOwners = true;
295
+ if (owners.length === 0) {
296
+ doesResourceHasOwners = false;
297
+ // find project owners.
298
+ owners = await ProjectService.getOwners(aiAgent.projectId);
299
+ }
300
+ if (owners.length === 0) {
301
+ return; // no owners to notify.
302
+ }
303
+ const connectionStatus = aiAgent.connectionStatus === AIAgentConnectionStatus.Connected
304
+ ? "Connected"
305
+ : "Disconnected";
306
+ for (const user of owners) {
307
+ try {
308
+ const vars = {
309
+ title: `${aiAgent.name} is ${connectionStatus}`,
310
+ aiAgentName: aiAgent.name || "AI Agent",
311
+ aiAgentDescription: aiAgent.description || "No description provided",
312
+ projectName: ((_a = aiAgent.project) === null || _a === void 0 ? void 0 : _a.name) || "Project",
313
+ aiAgentStatus: connectionStatus || "Unknown",
314
+ lastAlive: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
315
+ date: aiAgent.lastAlive || OneUptimeDate.getCurrentDate(),
316
+ timezones: user.timezone ? [user.timezone] : [],
317
+ }),
318
+ viewAIAgentsLink: (await this.getLinkInDashboard(aiAgent.projectId, aiAgent.id)).toString(),
319
+ };
320
+ if (doesResourceHasOwners === true) {
321
+ vars["isOwner"] = "true";
322
+ }
323
+ const emailMessage = {
324
+ templateType: EmailTemplateType.AIAgentConnectionStatusChange,
325
+ vars: vars,
326
+ subject: `[AI Agent ${connectionStatus}] ${aiAgent.name}`,
327
+ };
328
+ const sms = {
329
+ message: `This is a message from OneUptime. AI Agent ${aiAgent.name} is ${connectionStatus}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
330
+ };
331
+ const callMessage = {
332
+ data: [
333
+ {
334
+ sayMessage: `This is a message from OneUptime. AI Agent ${aiAgent.name} is ${connectionStatus}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good bye.`,
335
+ },
336
+ ],
337
+ };
338
+ const pushMessageParams = {
339
+ aiAgentName: aiAgent.name,
340
+ projectName: ((_b = aiAgent.project) === null || _b === void 0 ? void 0 : _b.name) || "Project",
341
+ connectionStatus: connectionStatus,
342
+ };
343
+ if (vars["viewAIAgentsLink"]) {
344
+ pushMessageParams.clickAction = vars["viewAIAgentsLink"];
345
+ }
346
+ const pushMessage = PushNotificationUtil.createAIAgentStatusChangedNotification(pushMessageParams);
347
+ const eventType = NotificationSettingEventType.SEND_AI_AGENT_STATUS_CHANGED_OWNER_NOTIFICATION;
348
+ const whatsAppMessage = createWhatsAppMessageFromTemplate({
349
+ eventType,
350
+ templateVariables: {
351
+ ai_agent_name: aiAgent.name,
352
+ ai_agent_status: connectionStatus,
353
+ ai_agent_link: vars["viewAIAgentsLink"] || "",
354
+ },
355
+ });
356
+ await UserNotificationSettingService.sendUserNotification({
357
+ userId: user.id,
358
+ projectId: aiAgent.projectId,
359
+ emailEnvelope: emailMessage,
360
+ smsMessage: sms,
361
+ callRequestMessage: callMessage,
362
+ pushNotificationMessage: pushMessage,
363
+ whatsAppMessage,
364
+ eventType,
365
+ });
366
+ }
367
+ catch (e) {
368
+ logger.error("Error in sending AI agent status changed resource notification");
369
+ logger.error(e);
370
+ }
371
+ }
372
+ }
373
+ async getLinkInDashboard(projectId, aiAgentId) {
374
+ const dashboardUrl = await DatabaseConfig.getDashboardUrl();
375
+ return URL.fromString(dashboardUrl.toString()).addRoute(`/${projectId.toString()}/settings/ai-agents/${aiAgentId.toString()}`);
376
+ }
377
+ async getAIAgentForProject(projectId) {
378
+ // First try to get the default AI agent for the project
379
+ let agent = await this.findOneBy({
380
+ query: {
381
+ projectId: projectId,
382
+ isDefault: true,
383
+ },
384
+ select: {
385
+ _id: true,
386
+ name: true,
387
+ description: true,
388
+ key: true,
389
+ aiAgentVersion: true,
390
+ connectionStatus: true,
391
+ isGlobalAIAgent: true,
392
+ lastAlive: true,
393
+ },
394
+ props: {
395
+ isRoot: true,
396
+ },
397
+ });
398
+ if (agent) {
399
+ return agent;
400
+ }
401
+ // If no default agent, get any global AI agent
402
+ agent = await this.findOneBy({
403
+ query: {
404
+ projectId: QueryHelper.isNull(),
405
+ isGlobalAIAgent: true,
406
+ },
407
+ select: {
408
+ _id: true,
409
+ name: true,
410
+ description: true,
411
+ key: true,
412
+ aiAgentVersion: true,
413
+ connectionStatus: true,
414
+ isGlobalAIAgent: true,
415
+ lastAlive: true,
416
+ },
417
+ props: {
418
+ isRoot: true,
419
+ },
420
+ });
421
+ if (agent) {
422
+ return agent;
423
+ }
424
+ return null;
425
+ }
426
+ }
427
+ __decorate([
428
+ CaptureSpan(),
429
+ __metadata("design:type", Function),
430
+ __metadata("design:paramtypes", [Object]),
431
+ __metadata("design:returntype", Promise)
432
+ ], Service.prototype, "onBeforeCreate", null);
433
+ __decorate([
434
+ CaptureSpan(),
435
+ __metadata("design:type", Function),
436
+ __metadata("design:paramtypes", [ObjectID]),
437
+ __metadata("design:returntype", Promise)
438
+ ], Service.prototype, "getOwners", null);
439
+ __decorate([
440
+ CaptureSpan(),
441
+ __metadata("design:type", Function),
442
+ __metadata("design:paramtypes", [Object]),
443
+ __metadata("design:returntype", Promise)
444
+ ], Service.prototype, "onBeforeUpdate", null);
445
+ __decorate([
446
+ CaptureSpan(),
447
+ __metadata("design:type", Function),
448
+ __metadata("design:paramtypes", [Object, Array]),
449
+ __metadata("design:returntype", Promise)
450
+ ], Service.prototype, "onUpdateSuccess", null);
451
+ __decorate([
452
+ CaptureSpan(),
453
+ __metadata("design:type", Function),
454
+ __metadata("design:paramtypes", [Object]),
455
+ __metadata("design:returntype", Promise)
456
+ ], Service.prototype, "notifyOwnersOnStatusChange", null);
457
+ __decorate([
458
+ CaptureSpan(),
459
+ __metadata("design:type", Function),
460
+ __metadata("design:paramtypes", [ObjectID,
461
+ ObjectID]),
462
+ __metadata("design:returntype", Promise)
463
+ ], Service.prototype, "getLinkInDashboard", null);
464
+ __decorate([
465
+ CaptureSpan(),
466
+ __metadata("design:type", Function),
467
+ __metadata("design:paramtypes", [ObjectID]),
468
+ __metadata("design:returntype", Promise)
469
+ ], Service.prototype, "getAIAgentForProject", null);
470
+ export default new Service();
471
+ //# sourceMappingURL=AIAgentService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAgentService.js","sourceRoot":"","sources":["../../../../Server/Services/AIAgentService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/AIAgentTaskLog";
3
+ export class Service extends DatabaseService {
4
+ constructor() {
5
+ super(Model);
6
+ }
7
+ }
8
+ export default new Service();
9
+ //# sourceMappingURL=AIAgentTaskLogService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAgentTaskLogService.js","sourceRoot":"","sources":["../../../../Server/Services/AIAgentTaskLogService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,4CAA4C,CAAC;AAE/D,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import Model from "../../Models/DatabaseModels/AIAgentTaskPullRequest";
3
+ export class Service extends DatabaseService {
4
+ constructor() {
5
+ super(Model);
6
+ }
7
+ }
8
+ export default new Service();
9
+ //# sourceMappingURL=AIAgentTaskPullRequestService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIAgentTaskPullRequestService.js","sourceRoot":"","sources":["../../../../Server/Services/AIAgentTaskPullRequestService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,oDAAoD,CAAC;AAEvE,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}
@@ -0,0 +1,158 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import DatabaseService from "./DatabaseService";
11
+ import Model from "../../Models/DatabaseModels/AIAgentTask";
12
+ import BadDataException from "../../Types/Exception/BadDataException";
13
+ import AIAgentService from "./AIAgentService";
14
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
15
+ import Semaphore from "../Infrastructure/Semaphore";
16
+ import SortOrder from "../../Types/BaseDatabase/SortOrder";
17
+ import logger from "../Utils/Logger";
18
+ import OneUptimeDate from "../../Types/Date";
19
+ export class Service extends DatabaseService {
20
+ constructor() {
21
+ super(Model);
22
+ }
23
+ async onBeforeCreate(createBy) {
24
+ // If no aiAgentId is provided, assign one automatically
25
+ if (!createBy.data.aiAgentId) {
26
+ createBy.data.aiAgentId = await this.getDefaultAgentId(createBy);
27
+ }
28
+ else {
29
+ // Validate the provided aiAgentId
30
+ await this.validateAgentBelongsToProject(createBy);
31
+ }
32
+ // Generate task number
33
+ if (!createBy.data.projectId) {
34
+ throw new BadDataException("Project ID is required to create an AI Agent Task");
35
+ }
36
+ const projectId = createBy.data.projectId;
37
+ let mutex = null;
38
+ try {
39
+ mutex = await Semaphore.lock({
40
+ key: projectId.toString(),
41
+ namespace: "AIAgentTaskService.task-create",
42
+ lockTimeout: 15000,
43
+ acquireTimeout: 20000,
44
+ });
45
+ logger.debug("Mutex acquired - AIAgentTaskService.task-create " +
46
+ projectId.toString() +
47
+ " at " +
48
+ OneUptimeDate.getCurrentDateAsFormattedString());
49
+ }
50
+ catch (err) {
51
+ logger.debug("Mutex acquire failed - AIAgentTaskService.task-create " +
52
+ projectId.toString() +
53
+ " at " +
54
+ OneUptimeDate.getCurrentDateAsFormattedString());
55
+ logger.error(err);
56
+ }
57
+ try {
58
+ const taskNumberForThisTask = (await this.getExistingTaskNumberForProject({
59
+ projectId: projectId,
60
+ })) + 1;
61
+ createBy.data.taskNumber = taskNumberForThisTask;
62
+ }
63
+ finally {
64
+ if (mutex) {
65
+ await Semaphore.release(mutex);
66
+ }
67
+ }
68
+ return { createBy, carryForward: null };
69
+ }
70
+ async getExistingTaskNumberForProject(data) {
71
+ // get last task number.
72
+ const lastTask = await this.findOneBy({
73
+ query: {
74
+ projectId: data.projectId,
75
+ },
76
+ select: {
77
+ taskNumber: true,
78
+ },
79
+ sort: {
80
+ createdAt: SortOrder.Descending,
81
+ },
82
+ props: {
83
+ isRoot: true,
84
+ },
85
+ });
86
+ if (!lastTask) {
87
+ return 0;
88
+ }
89
+ return lastTask.taskNumber ? Number(lastTask.taskNumber) : 0;
90
+ }
91
+ async getDefaultAgentId(createBy) {
92
+ if (!createBy.data.projectId) {
93
+ throw new BadDataException("Project ID is required to assign an AI Agent");
94
+ }
95
+ // Try to get the default agent for the project (or global fallback)
96
+ const agent = await AIAgentService.getAIAgentForProject(createBy.data.projectId);
97
+ if (!agent || !agent.id) {
98
+ throw new BadDataException("No AI Agent available. Please configure an AI Agent for this project or ensure a global AI Agent is available.");
99
+ }
100
+ return agent.id;
101
+ }
102
+ async validateAgentBelongsToProject(createBy) {
103
+ if (!createBy.data.aiAgentId || !createBy.data.projectId) {
104
+ return;
105
+ }
106
+ const agent = await AIAgentService.findOneById({
107
+ id: createBy.data.aiAgentId,
108
+ select: {
109
+ _id: true,
110
+ projectId: true,
111
+ isGlobalAIAgent: true,
112
+ },
113
+ props: {
114
+ isRoot: true,
115
+ },
116
+ });
117
+ if (!agent) {
118
+ throw new BadDataException("AI Agent not found");
119
+ }
120
+ // Allow if it's a global agent
121
+ if (agent.isGlobalAIAgent) {
122
+ return;
123
+ }
124
+ // Allow if the agent belongs to the same project
125
+ if (agent.projectId &&
126
+ agent.projectId.toString() === createBy.data.projectId.toString()) {
127
+ return;
128
+ }
129
+ // Reject if the agent belongs to a different project
130
+ throw new BadDataException("The specified AI Agent does not belong to this project. Please use an AI Agent from your project or a global AI Agent.");
131
+ }
132
+ }
133
+ __decorate([
134
+ CaptureSpan(),
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", [Object]),
137
+ __metadata("design:returntype", Promise)
138
+ ], Service.prototype, "onBeforeCreate", null);
139
+ __decorate([
140
+ CaptureSpan(),
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", [Object]),
143
+ __metadata("design:returntype", Promise)
144
+ ], Service.prototype, "getExistingTaskNumberForProject", null);
145
+ __decorate([
146
+ CaptureSpan(),
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", [Object]),
149
+ __metadata("design:returntype", Promise)
150
+ ], Service.prototype, "getDefaultAgentId", null);
151
+ __decorate([
152
+ CaptureSpan(),
153
+ __metadata("design:type", Function),
154
+ __metadata("design:paramtypes", [Object]),
155
+ __metadata("design:returntype", Promise)
156
+ ], Service.prototype, "validateAgentBelongsToProject", null);
157
+ export default new Service();
158
+ //# sourceMappingURL=AIAgentTaskService.js.map