@overlordai/server 1.0.144 → 1.0.145

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 (226) hide show
  1. package/database/migrations/014-automations.sql +67 -0
  2. package/dist/adapters/command-parser.utils.d.ts +1 -0
  3. package/dist/adapters/command-parser.utils.d.ts.map +1 -1
  4. package/dist/adapters/command-parser.utils.js +14 -1
  5. package/dist/adapters/command-parser.utils.js.map +1 -1
  6. package/dist/adapters/help-text.d.ts.map +1 -1
  7. package/dist/adapters/help-text.js +2 -1
  8. package/dist/adapters/help-text.js.map +1 -1
  9. package/dist/adapters/nlu.service.d.ts.map +1 -1
  10. package/dist/adapters/nlu.service.js +4 -1
  11. package/dist/adapters/nlu.service.js.map +1 -1
  12. package/dist/app.module.d.ts.map +1 -1
  13. package/dist/app.module.js +2 -0
  14. package/dist/app.module.js.map +1 -1
  15. package/dist/automation/automation-executor.d.ts +23 -0
  16. package/dist/automation/automation-executor.d.ts.map +1 -0
  17. package/dist/automation/automation-executor.js +365 -0
  18. package/dist/automation/automation-executor.js.map +1 -0
  19. package/dist/automation/automation-scheduler.d.ts +21 -0
  20. package/dist/automation/automation-scheduler.d.ts.map +1 -0
  21. package/dist/automation/automation-scheduler.js +124 -0
  22. package/dist/automation/automation-scheduler.js.map +1 -0
  23. package/dist/automation/automation-template.service.d.ts +30 -0
  24. package/dist/automation/automation-template.service.d.ts.map +1 -0
  25. package/dist/automation/automation-template.service.js +66 -0
  26. package/dist/automation/automation-template.service.js.map +1 -0
  27. package/dist/automation/automation-trigger.d.ts +13 -0
  28. package/dist/automation/automation-trigger.d.ts.map +1 -0
  29. package/dist/automation/automation-trigger.js +96 -0
  30. package/dist/automation/automation-trigger.js.map +1 -0
  31. package/dist/automation/automation-validation.d.ts +14 -0
  32. package/dist/automation/automation-validation.d.ts.map +1 -0
  33. package/dist/automation/automation-validation.js +66 -0
  34. package/dist/automation/automation-validation.js.map +1 -0
  35. package/dist/automation/automation.module.d.ts +3 -0
  36. package/dist/automation/automation.module.d.ts.map +1 -0
  37. package/dist/automation/automation.module.js +33 -0
  38. package/dist/automation/automation.module.js.map +1 -0
  39. package/dist/automation/automation.service.d.ts +22 -0
  40. package/dist/automation/automation.service.d.ts.map +1 -0
  41. package/dist/automation/automation.service.js +232 -0
  42. package/dist/automation/automation.service.js.map +1 -0
  43. package/dist/database/repositories/automation.repository.d.ts +87 -0
  44. package/dist/database/repositories/automation.repository.d.ts.map +1 -0
  45. package/dist/database/repositories/automation.repository.js +531 -0
  46. package/dist/database/repositories/automation.repository.js.map +1 -0
  47. package/dist/database/repositories/task.repository.d.ts +1 -0
  48. package/dist/database/repositories/task.repository.d.ts.map +1 -1
  49. package/dist/database/repositories/task.repository.js +4 -2
  50. package/dist/database/repositories/task.repository.js.map +1 -1
  51. package/dist/database/repository.module.d.ts.map +1 -1
  52. package/dist/database/repository.module.js +2 -0
  53. package/dist/database/repository.module.js.map +1 -1
  54. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  55. package/dist/dispatcher/dispatcher.service.js +1 -0
  56. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  57. package/dist/dispatcher/task-creation.service.d.ts +3 -3
  58. package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
  59. package/dist/dispatcher/task-creation.service.js +14 -5
  60. package/dist/dispatcher/task-creation.service.js.map +1 -1
  61. package/dist/events/event-types.d.ts +31 -0
  62. package/dist/events/event-types.d.ts.map +1 -1
  63. package/dist/events/event-types.js +4 -0
  64. package/dist/events/event-types.js.map +1 -1
  65. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  66. package/dist/notifier/notification-consumer.js +65 -1
  67. package/dist/notifier/notification-consumer.js.map +1 -1
  68. package/dist/notifier/notification-event-listener.d.ts +7 -2
  69. package/dist/notifier/notification-event-listener.d.ts.map +1 -1
  70. package/dist/notifier/notification-event-listener.js +56 -2
  71. package/dist/notifier/notification-event-listener.js.map +1 -1
  72. package/dist/notifier/notifier.service.d.ts +4 -1
  73. package/dist/notifier/notifier.service.d.ts.map +1 -1
  74. package/dist/notifier/notifier.service.js +23 -2
  75. package/dist/notifier/notifier.service.js.map +1 -1
  76. package/dist/notifier/template.service.d.ts +1 -1
  77. package/dist/notifier/template.service.d.ts.map +1 -1
  78. package/dist/notifier/template.service.js +14 -4
  79. package/dist/notifier/template.service.js.map +1 -1
  80. package/dist/web/automation.controller.d.ts +74 -0
  81. package/dist/web/automation.controller.d.ts.map +1 -0
  82. package/dist/web/automation.controller.js +539 -0
  83. package/dist/web/automation.controller.js.map +1 -0
  84. package/dist/web/frame-handlers/automation-report.handler.d.ts +10 -0
  85. package/dist/web/frame-handlers/automation-report.handler.d.ts.map +1 -0
  86. package/dist/web/frame-handlers/automation-report.handler.js +15 -0
  87. package/dist/web/frame-handlers/automation-report.handler.js.map +1 -0
  88. package/dist/web/frame-handlers/index.d.ts +1 -0
  89. package/dist/web/frame-handlers/index.d.ts.map +1 -1
  90. package/dist/web/frame-handlers/index.js +3 -1
  91. package/dist/web/frame-handlers/index.js.map +1 -1
  92. package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
  93. package/dist/web/frame-handlers/stage-confirm.handler.js +1 -1
  94. package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
  95. package/dist/web/task.controller.d.ts +3 -0
  96. package/dist/web/task.controller.d.ts.map +1 -1
  97. package/dist/web/web-event.service.d.ts +20 -1
  98. package/dist/web/web-event.service.d.ts.map +1 -1
  99. package/dist/web/web-event.service.js +66 -2
  100. package/dist/web/web-event.service.js.map +1 -1
  101. package/dist/web/web.module.d.ts.map +1 -1
  102. package/dist/web/web.module.js +4 -1
  103. package/dist/web/web.module.js.map +1 -1
  104. package/dist/web/worker-channel.gateway.d.ts +2 -1
  105. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  106. package/dist/web/worker-channel.gateway.js +5 -2
  107. package/dist/web/worker-channel.gateway.js.map +1 -1
  108. package/package.json +5 -4
  109. package/public/assets/AccessTokensPage-BYuGmkhG.js +1 -0
  110. package/public/assets/{AdminPage-OHTVG-ck.js → AdminPage-BResRWph.js} +1 -1
  111. package/public/assets/{AgentCliPage-BsZmnI3p.js → AgentCliPage-BcDXV12E.js} +1 -1
  112. package/public/assets/{ApiReferencePage-8yiImnYs.js → ApiReferencePage-NaJYMeTA.js} +1 -1
  113. package/public/assets/{ArchitecturePage-Deswgqy2.js → ArchitecturePage-D-0d-kgA.js} +1 -1
  114. package/public/assets/{AuditLogPage-Hn4ivp8Y.js → AuditLogPage-BuiWgzsv.js} +1 -1
  115. package/public/assets/AutomationCreatePage-CbGNlXYx.js +1 -0
  116. package/public/assets/AutomationDetailPage-C8GfVtsX.js +16 -0
  117. package/public/assets/AutomationEditPage-C7hl6YxI.js +1 -0
  118. package/public/assets/AutomationListPage-sjxnTqLB.js +16 -0
  119. package/public/assets/AutomationRunDetailPage-DYpv-WBg.js +6 -0
  120. package/public/assets/{BindPlatformPage-DjGHKswB.js → BindPlatformPage-DS1eO2Me.js} +1 -1
  121. package/public/assets/BotIntegrationPage-DW13UERh.js +1 -0
  122. package/public/assets/{BotManage-Dss1Y_jv.js → BotManage-CW08edmX.js} +2 -2
  123. package/public/assets/{BotSetupPage-C_KKFdu3.js → BotSetupPage-B2TIppqV.js} +2 -2
  124. package/public/assets/{ChangelogPage-5btaAfls.js → ChangelogPage-BpJdCfIe.js} +1 -1
  125. package/public/assets/{CliReferencePage--yAuXfNl.js → CliReferencePage-wbYT0YSP.js} +1 -1
  126. package/public/assets/ConfirmStageDialog-Bke18NAb.js +7 -0
  127. package/public/assets/{DeploymentPage-Qi860C4T.js → DeploymentPage-DqYVYlM2.js} +1 -1
  128. package/public/assets/{DevWorkflowPage-CZks72g2.js → DevWorkflowPage-B1T1aB-L.js} +1 -1
  129. package/public/assets/DeveloperManage-CwH2nj3C.js +16 -0
  130. package/public/assets/{DeveloperSetupPage-CSs2Mh7c.js → DeveloperSetupPage-B099stPW.js} +1 -1
  131. package/public/assets/{DocsIndexPage-BmSMwLvO.js → DocsIndexPage-BQJNEB0T.js} +1 -1
  132. package/public/assets/{DocsLayout-CunlDzH9.js → DocsLayout-VgiIORoW.js} +1 -1
  133. package/public/assets/{DocsPrimitives-Bqnk0mEW.js → DocsPrimitives-DStFX1T8.js} +1 -1
  134. package/public/assets/{EditProjectPage-CJAdaxRE.js → EditProjectPage-CSv1LQ0c.js} +2 -2
  135. package/public/assets/{EmptyState-DpRw-xch.js → EmptyState-CM34MS8q.js} +1 -1
  136. package/public/assets/{EnvVariablesPage-DWD4RzmX.js → EnvVariablesPage-By_n8jC_.js} +2 -2
  137. package/public/assets/{HomePage-oShWGYcN.js → HomePage-BA8S5QIk.js} +1 -1
  138. package/public/assets/{InfoRow-CTXIPrG6.js → InfoRow-BkLVrW3X.js} +1 -1
  139. package/public/assets/{InstallationPage-BgbU06Ei.js → InstallationPage-5aHtmv3w.js} +1 -1
  140. package/public/assets/{LandingPage-C-s-hSgz.js → LandingPage-XfW3mTgR.js} +7 -12
  141. package/public/assets/{LocalDevelopmentPage-Cg4FYaCn.js → LocalDevelopmentPage-CEhJ10RY.js} +1 -1
  142. package/public/assets/{LoginPage-BhyQxY5d.js → LoginPage-hEkjuwQp.js} +1 -1
  143. package/public/assets/{MetricBar-DZOZStDZ.js → MetricBar-CuVoQPXf.js} +1 -1
  144. package/public/assets/{NotFoundPage-DaeTOzAm.js → NotFoundPage-CDaJI7W_.js} +1 -1
  145. package/public/assets/{OnboardingGuide-DGH0Yfsj.js → OnboardingGuide-xLqRqP0t.js} +1 -1
  146. package/public/assets/{PermissionsPage-D4Lqb40x.js → PermissionsPage-BGlc6yU2.js} +1 -1
  147. package/public/assets/{PipelineConfigPage-CAWpyPiY.js → PipelineConfigPage-Bzm1MeK0.js} +1 -1
  148. package/public/assets/{PipelineEditorPage-BLDxO49P.js → PipelineEditorPage-DhS-VBVt.js} +2 -2
  149. package/public/assets/{PlanPage-UX5QUlvv.js → PlanPage-Mu6msPek.js} +1 -1
  150. package/public/assets/{ProfilePage-B73YqnCd.js → ProfilePage-Dk-XPfIf.js} +1 -1
  151. package/public/assets/{ProjectDetailPage-eNAn85vT.js → ProjectDetailPage-C8v5ztXD.js} +3 -3
  152. package/public/assets/ProjectListPage-Ccrl3DtV.js +6 -0
  153. package/public/assets/PtyTerminal-DCbNmuIT.js +38 -0
  154. package/public/assets/{QuickAuth-DSSMYJEC.js → QuickAuth-DAPeXfQS.js} +1 -1
  155. package/public/assets/RemoveMemberConfirmDialog-gr2WUWrR.js +6 -0
  156. package/public/assets/ReviewAggregatePage-B1SB4rXq.js +6 -0
  157. package/public/assets/{ReviewPage-BNa6T3xv.js → ReviewPage-Bde6YvIA.js} +1 -1
  158. package/public/assets/{Select-FmuTJbfh.js → Select-Bxil-UGQ.js} +1 -1
  159. package/public/assets/{SettingsPage-aSrpn6Ta.js → SettingsPage-nA4hlLlN.js} +1 -1
  160. package/public/assets/{Skeleton-Bo0DEIHn.js → Skeleton-DMVGjH__.js} +1 -1
  161. package/public/assets/{SkillPage-BjiQKd7n.js → SkillPage-BqTTImpe.js} +1 -1
  162. package/public/assets/{TaskDetailPage-BLNjDqnY.js → TaskDetailPage-DPdD57PF.js} +2 -2
  163. package/public/assets/{TaskGuidePage-C5o7i2D0.js → TaskGuidePage-CQAlhXHL.js} +1 -1
  164. package/public/assets/TaskListPage-C5tAOuSG.js +1 -0
  165. package/public/assets/{TaskStatusBadge-CD8sO9C_.js → TaskStatusBadge-D5lVjwey.js} +1 -1
  166. package/public/assets/TerminalHomePage-BX-sHKXF.js +6 -0
  167. package/public/assets/TokenManage-95LL4o8y.js +1 -0
  168. package/public/assets/{Tooltip-BKRBwA7o.js → Tooltip-3_9w-Oet.js} +1 -1
  169. package/public/assets/{TotpSetupPage-IVkRIgKh.js → TotpSetupPage-BzyS9OrP.js} +1 -1
  170. package/public/assets/{WorkerDetailPage-nw_gzQ45.js → WorkerDetailPage-BaVeVMvg.js} +1 -1
  171. package/public/assets/WorkerListPage-zOEHoOtr.js +6 -0
  172. package/public/assets/{WorkerOperationsPage-Clh8jDGG.js → WorkerOperationsPage-B9A7kFhI.js} +1 -1
  173. package/public/assets/{WorkerSetupGuidePage-C1wXY1wd.js → WorkerSetupGuidePage-DzTffG6n.js} +1 -1
  174. package/public/assets/{WorkerSetupPage-CTCwHKaC.js → WorkerSetupPage-B28GH43r.js} +1 -1
  175. package/public/assets/{agent-type-options-5v4PgZnP.js → agent-type-options-BBcV6_LY.js} +1 -1
  176. package/public/assets/{arrow-left-CR_n40mK.js → arrow-left-BDjYIP3Y.js} +1 -1
  177. package/public/assets/{arrow-right-D-j7nSgI.js → arrow-right-DITZLrUG.js} +1 -1
  178. package/public/assets/{bot--DUOKBmv.js → bot-CJ6g-CgU.js} +1 -1
  179. package/public/assets/{chevron-down-CDFiGGBG.js → chevron-down-D9VkxIPs.js} +1 -1
  180. package/public/assets/{chevron-left-C_lJcnCg.js → chevron-left-CWC7W_zG.js} +1 -1
  181. package/public/assets/{chevron-right-IZlTWMcO.js → chevron-right-BDlNEjPF.js} +1 -1
  182. package/public/assets/{chevron-up-DSOCVgRW.js → chevron-up-B2_M0Aou.js} +1 -1
  183. package/public/assets/circle-alert-Cb6RgYCQ.js +6 -0
  184. package/public/assets/clock-CPiGRQpX.js +6 -0
  185. package/public/assets/{copy-2UMMaHKT.js → copy-Dz9BK4cr.js} +1 -1
  186. package/public/assets/{download-D2NyL1OR.js → download-qgK3DePm.js} +1 -1
  187. package/public/assets/{external-link-B9CWNSMc.js → external-link-kSTql_zg.js} +1 -1
  188. package/public/assets/{file-text-COzaNu8e.js → file-text-moi4pXOm.js} +1 -1
  189. package/public/assets/{git-fork-9KuFRmam.js → git-fork-FS4LqWZJ.js} +1 -1
  190. package/public/assets/index-CdJk2QGi.css +1 -0
  191. package/public/assets/index-DEBRwDiX.js +257 -0
  192. package/public/assets/{key-DoJm5thS.js → key-CHc_t6rY.js} +1 -1
  193. package/public/assets/{loader-circle-B5SLmhRr.js → loader-circle-BEHOzbAc.js} +1 -1
  194. package/public/assets/{pencil-C_niWuAb.js → pencil-COk9Cf4n.js} +1 -1
  195. package/public/assets/{play-Do-8kkck.js → play-B8L-TpIA.js} +1 -1
  196. package/public/assets/{plus-C8aSzgHN.js → plus-Bh23dSc7.js} +1 -1
  197. package/public/assets/{rotate-ccw-BSPzJeCn.js → rotate-ccw-CumxDFOW.js} +1 -1
  198. package/public/assets/{scroll-text-DdqU_dT6.js → scroll-text-yKGiDEH2.js} +1 -1
  199. package/public/assets/{settings-C8PB6BpE.js → settings-BZ99cVpB.js} +1 -1
  200. package/public/assets/{skip-forward-CEuvYtQc.js → skip-forward-YMw2gv4i.js} +1 -1
  201. package/public/assets/{status-colors-0U8b2F2t.js → status-colors-CpxhEwhO.js} +1 -1
  202. package/public/assets/{task-constants-DTDx5Lfp.js → task-constants-BOIiRs7J.js} +1 -1
  203. package/public/assets/{task.store-CGgehOLp.js → task.store-B7v0IyXP.js} +1 -1
  204. package/public/assets/timer--KEJmHJk.js +6 -0
  205. package/public/assets/{trash-2-tEkzRo6q.js → trash-2-CGFhXY_R.js} +1 -1
  206. package/public/assets/{useFetch-CJDmNhIT.js → useFetch-_325GIxD.js} +1 -1
  207. package/public/assets/{users-Cs2w_uVo.js → users-0IqI-VRX.js} +1 -1
  208. package/public/assets/{wifi-BCoKY35p.js → wifi-DveQJnOv.js} +1 -1
  209. package/public/assets/{workflow-BLCy8gMf.js → workflow-BUUDFa4R.js} +1 -1
  210. package/public/assets/zap-D2T18qt7.js +6 -0
  211. package/public/index.html +2 -2
  212. package/public/sw.js +1 -1
  213. package/public/assets/AccessTokensPage-zuZElOFy.js +0 -1
  214. package/public/assets/BotIntegrationPage-58cLGS0T.js +0 -1
  215. package/public/assets/ConfirmStageDialog-BatYNr9r.js +0 -12
  216. package/public/assets/DeveloperManage-7tpVdYUx.js +0 -16
  217. package/public/assets/ProjectListPage-61CMBaxl.js +0 -6
  218. package/public/assets/PtyTerminal-DOgYXCFD.js +0 -38
  219. package/public/assets/RemoveMemberConfirmDialog-MiS_sqor.js +0 -6
  220. package/public/assets/ReviewAggregatePage-LBAVcz2T.js +0 -11
  221. package/public/assets/TaskListPage-26QNdjqP.js +0 -1
  222. package/public/assets/TerminalHomePage-DBhs1WQJ.js +0 -6
  223. package/public/assets/TokenManage-BQ0e_d4e.js +0 -1
  224. package/public/assets/WorkerListPage-CF1x84G-.js +0 -6
  225. package/public/assets/index-DvdpkDlU.js +0 -252
  226. package/public/assets/index-kJfGgL_V.css +0 -1
@@ -0,0 +1,539 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AutomationController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const protocol_1 = require("@overlordai/protocol");
18
+ const jwt_auth_guard_1 = require("../auth/guards/jwt-auth.guard");
19
+ const roles_guard_1 = require("../auth/guards/roles.guard");
20
+ const roles_decorator_1 = require("../auth/decorators/roles.decorator");
21
+ const rate_limit_guard_1 = require("../common/rate-limit.guard");
22
+ const automation_service_1 = require("../automation/automation.service");
23
+ const automation_template_service_1 = require("../automation/automation-template.service");
24
+ const automation_repository_1 = require("../database/repositories/automation.repository");
25
+ const project_member_repository_1 = require("../database/repositories/project-member.repository");
26
+ const task_repository_1 = require("../database/repositories/task.repository");
27
+ const web_event_service_1 = require("./web-event.service");
28
+ const pagination_1 = require("../common/pagination");
29
+ let AutomationController = class AutomationController {
30
+ constructor(automationService, templateService, automationRepo, projectMemberRepo, taskRepo, webEventService) {
31
+ this.automationService = automationService;
32
+ this.templateService = templateService;
33
+ this.automationRepo = automationRepo;
34
+ this.projectMemberRepo = projectMemberRepo;
35
+ this.taskRepo = taskRepo;
36
+ this.webEventService = webEventService;
37
+ }
38
+ assertProjectReadAccess(projectKey, req) {
39
+ if (req.user.role === protocol_1.DeveloperRole.ADMIN)
40
+ return;
41
+ const membership = this.projectMemberRepo.findByProjectAndDeveloper(projectKey, req.user.sub);
42
+ if (membership)
43
+ return;
44
+ throw new common_1.ForbiddenException('Not a member of this project');
45
+ }
46
+ assertProjectMutationAccess(projectKey, req) {
47
+ if (req.user.role === protocol_1.DeveloperRole.ADMIN)
48
+ return;
49
+ const membership = this.projectMemberRepo.findByProjectAndDeveloper(projectKey, req.user.sub);
50
+ if (membership?.role === protocol_1.ProjectRole.MAINTAINER)
51
+ return;
52
+ throw new common_1.ForbiddenException('Insufficient project role');
53
+ }
54
+ getReadableProjectKeys(req) {
55
+ if (req.user.role === protocol_1.DeveloperRole.ADMIN)
56
+ return null;
57
+ return this.projectMemberRepo
58
+ .findByDeveloper(req.user.sub)
59
+ .map((membership) => membership.projectKey);
60
+ }
61
+ // ─── Automations ────────────────────────────────────────────────────
62
+ async createAutomation(body, req) {
63
+ if (!body.projectKey || typeof body.projectKey !== 'string') {
64
+ throw new common_1.BadRequestException('projectKey is required');
65
+ }
66
+ if (!body.name || typeof body.name !== 'string') {
67
+ throw new common_1.BadRequestException('name is required');
68
+ }
69
+ if (!body.description || typeof body.description !== 'string') {
70
+ throw new common_1.BadRequestException('description is required');
71
+ }
72
+ if (!body.triggerType || typeof body.triggerType !== 'string') {
73
+ throw new common_1.BadRequestException('triggerType is required');
74
+ }
75
+ if (!body.triggerConfig || typeof body.triggerConfig !== 'object') {
76
+ throw new common_1.BadRequestException('triggerConfig is required');
77
+ }
78
+ if (!body.executionMode || typeof body.executionMode !== 'string') {
79
+ throw new common_1.BadRequestException('executionMode is required');
80
+ }
81
+ this.assertProjectMutationAccess(body.projectKey, req);
82
+ return this.automationService.create(body, req.user.sub);
83
+ }
84
+ listAutomations(req, projectKey, enabled, triggerType, limit, cursor) {
85
+ const parsedLimit = (0, pagination_1.clampLimit)(limit, 20, 100);
86
+ // Automations use raw integer ID cursors (id < cursor), not base64-encoded cursors.
87
+ // This is intentional: the automation list returns plain Automation[] (no nextCursor envelope),
88
+ // so the client passes the last seen id directly. See AutomationRepository.findAutomations.
89
+ const parsedCursor = cursor ? parseInt(cursor, 10) || undefined : undefined;
90
+ const parsedEnabled = enabled === 'true' ? true : enabled === 'false' ? false : undefined;
91
+ const query = {
92
+ enabled: parsedEnabled,
93
+ triggerType: triggerType || undefined,
94
+ limit: parsedLimit,
95
+ cursor: parsedCursor,
96
+ };
97
+ if (projectKey) {
98
+ this.assertProjectReadAccess(projectKey, req);
99
+ return this.automationService.findByProject(projectKey, query);
100
+ }
101
+ const projectKeys = this.getReadableProjectKeys(req);
102
+ if (projectKeys && projectKeys.length === 0) {
103
+ return [];
104
+ }
105
+ return projectKeys === null
106
+ ? this.automationRepo.findAll(query)
107
+ : this.automationRepo.findByProjects(projectKeys, query);
108
+ }
109
+ getAutomation(id, req) {
110
+ const automation = this.automationService.findById(id);
111
+ if (!automation) {
112
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
113
+ }
114
+ this.assertProjectReadAccess(automation.projectKey, req);
115
+ return automation;
116
+ }
117
+ async updateAutomation(id, body, req) {
118
+ const existing = this.automationService.findById(id);
119
+ if (!existing) {
120
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
121
+ }
122
+ this.assertProjectMutationAccess(existing.projectKey, req);
123
+ return this.automationService.update(id, body);
124
+ }
125
+ async deleteAutomation(id, req) {
126
+ const existing = this.automationService.findById(id);
127
+ if (!existing) {
128
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
129
+ }
130
+ this.assertProjectMutationAccess(existing.projectKey, req);
131
+ await this.automationService.delete(id);
132
+ return { success: true };
133
+ }
134
+ async enableAutomation(id, req) {
135
+ const existing = this.automationService.findById(id);
136
+ if (!existing) {
137
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
138
+ }
139
+ this.assertProjectMutationAccess(existing.projectKey, req);
140
+ return this.automationService.enable(id);
141
+ }
142
+ async disableAutomation(id, req) {
143
+ const existing = this.automationService.findById(id);
144
+ if (!existing) {
145
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
146
+ }
147
+ this.assertProjectMutationAccess(existing.projectKey, req);
148
+ return this.automationService.disable(id);
149
+ }
150
+ async triggerAutomation(id, req) {
151
+ const existing = this.automationService.findById(id);
152
+ if (!existing) {
153
+ throw new common_1.NotFoundException(`Automation #${id} not found`);
154
+ }
155
+ this.assertProjectMutationAccess(existing.projectKey, req);
156
+ return this.automationService.trigger(id);
157
+ }
158
+ // ─── Automation Runs ────────────────────────────────────────────────
159
+ countAutomationRuns(req, automationId, inboxStatus, hasFindings, status) {
160
+ const query = {
161
+ automationId: automationId ? parseInt(automationId, 10) || undefined : undefined,
162
+ inboxStatus: inboxStatus || undefined,
163
+ hasFindings: hasFindings === 'true' ? true : hasFindings === 'false' ? false : undefined,
164
+ status: status || undefined,
165
+ };
166
+ if (query.automationId !== undefined) {
167
+ const automation = this.automationService.findById(query.automationId);
168
+ if (!automation) {
169
+ throw new common_1.NotFoundException(`Automation #${query.automationId} not found`);
170
+ }
171
+ this.assertProjectReadAccess(automation.projectKey, req);
172
+ return { count: this.automationRepo.countRunsForInbox(query, [automation.projectKey]) };
173
+ }
174
+ const projectKeys = this.getReadableProjectKeys(req);
175
+ if (projectKeys && projectKeys.length === 0) {
176
+ return { count: 0 };
177
+ }
178
+ return {
179
+ count: this.automationRepo.countRunsForInbox(query, projectKeys),
180
+ };
181
+ }
182
+ listAutomationRuns(req, automationId, inboxStatus, hasFindings, status, limit, cursor) {
183
+ const parsedAutomationId = automationId ? parseInt(automationId, 10) || undefined : undefined;
184
+ // Permission check first — verify access before any run queries
185
+ let scopedProjectKeys = null;
186
+ if (parsedAutomationId !== undefined) {
187
+ const automation = this.automationService.findById(parsedAutomationId);
188
+ if (!automation) {
189
+ throw new common_1.NotFoundException(`Automation #${parsedAutomationId} not found`);
190
+ }
191
+ this.assertProjectReadAccess(automation.projectKey, req);
192
+ scopedProjectKeys = [automation.projectKey];
193
+ }
194
+ else {
195
+ scopedProjectKeys = this.getReadableProjectKeys(req);
196
+ if (scopedProjectKeys && scopedProjectKeys.length === 0) {
197
+ return { data: [], nextCursor: null };
198
+ }
199
+ }
200
+ const query = {
201
+ automationId: parsedAutomationId,
202
+ inboxStatus: inboxStatus || undefined,
203
+ hasFindings: hasFindings === 'true' ? true : hasFindings === 'false' ? false : undefined,
204
+ status: status || undefined,
205
+ limit: (0, pagination_1.clampLimit)(limit, 20, 100),
206
+ cursor: cursor ? (0, pagination_1.decodeCursor)(cursor) : undefined,
207
+ };
208
+ return this.automationRepo.findRunsForInbox(query, scopedProjectKeys);
209
+ }
210
+ getAutomationRun(id, req) {
211
+ const run = this.automationRepo.findRunById(id);
212
+ if (!run) {
213
+ throw new common_1.NotFoundException(`Automation run #${id} not found`);
214
+ }
215
+ const automation = this.automationService.findById(run.automationId);
216
+ if (!automation) {
217
+ throw new common_1.NotFoundException(`Automation #${run.automationId} not found`);
218
+ }
219
+ this.assertProjectReadAccess(automation.projectKey, req);
220
+ const task = run.taskId ? this.taskRepo.findById(run.taskId) : null;
221
+ return {
222
+ ...run,
223
+ automationName: automation.name,
224
+ mrUrl: task?.mrUrl ?? null,
225
+ };
226
+ }
227
+ updateAutomationRun(id, body, req) {
228
+ if (body.inboxStatus && !['unread', 'read', 'archived'].includes(body.inboxStatus)) {
229
+ throw new common_1.BadRequestException('inboxStatus must be "unread", "read", or "archived"');
230
+ }
231
+ const run = this.automationRepo.findRunById(id);
232
+ if (!run) {
233
+ throw new common_1.NotFoundException(`Automation run #${id} not found`);
234
+ }
235
+ const automation = this.automationService.findById(run.automationId);
236
+ if (!automation) {
237
+ throw new common_1.NotFoundException(`Automation #${run.automationId} not found`);
238
+ }
239
+ this.assertProjectReadAccess(automation.projectKey, req);
240
+ const updated = this.automationRepo.updateRun(id, {
241
+ inboxStatus: body.inboxStatus,
242
+ });
243
+ if (updated) {
244
+ this.webEventService.broadcastRunUpdate(updated, automation.projectKey);
245
+ }
246
+ return updated;
247
+ }
248
+ batchUpdateAutomationRuns(body, req) {
249
+ if (!Array.isArray(body.ids) || body.ids.length === 0) {
250
+ throw new common_1.BadRequestException('ids must be a non-empty array');
251
+ }
252
+ if (!body.inboxStatus || !['read', 'archived'].includes(body.inboxStatus)) {
253
+ throw new common_1.BadRequestException('inboxStatus must be "read" or "archived"');
254
+ }
255
+ const runProjectKeys = new Map();
256
+ for (const id of body.ids) {
257
+ const run = this.automationRepo.findRunById(id);
258
+ if (!run) {
259
+ throw new common_1.NotFoundException(`Automation run #${id} not found`);
260
+ }
261
+ const automation = this.automationService.findById(run.automationId);
262
+ if (!automation) {
263
+ throw new common_1.NotFoundException(`Automation #${run.automationId} not found`);
264
+ }
265
+ this.assertProjectReadAccess(automation.projectKey, req);
266
+ runProjectKeys.set(id, automation.projectKey);
267
+ }
268
+ const count = this.automationRepo.batchUpdateInboxStatus(body.ids, body.inboxStatus);
269
+ // Broadcast inbox status change for each updated run
270
+ for (const id of body.ids) {
271
+ const updatedRun = this.automationRepo.findRunById(id);
272
+ const projectKey = runProjectKeys.get(id);
273
+ if (updatedRun && projectKey) {
274
+ this.webEventService.broadcastRunUpdate(updatedRun, projectKey);
275
+ }
276
+ }
277
+ return { success: true, count };
278
+ }
279
+ // ─── Automation Templates ───────────────────────────────────────────
280
+ listTemplates(req, category, isBuiltin, projectKey) {
281
+ const parsedIsBuiltin = isBuiltin === 'true' ? true : isBuiltin === 'false' ? false : undefined;
282
+ if (projectKey) {
283
+ this.assertProjectReadAccess(projectKey, req);
284
+ return this.templateService.findAll({
285
+ category: category || undefined,
286
+ isBuiltin: parsedIsBuiltin,
287
+ projectKey,
288
+ });
289
+ }
290
+ // No specific project — include templates from all accessible projects
291
+ const projectKeys = this.getReadableProjectKeys(req);
292
+ return this.templateService.findAllForProjects({
293
+ category: category || undefined,
294
+ isBuiltin: parsedIsBuiltin,
295
+ projectKeys,
296
+ });
297
+ }
298
+ getTemplate(id, req) {
299
+ const template = this.templateService.findById(id);
300
+ if (!template) {
301
+ throw new common_1.NotFoundException(`Template #${id} not found`);
302
+ }
303
+ if (template.projectKey) {
304
+ this.assertProjectReadAccess(template.projectKey, req);
305
+ }
306
+ return template;
307
+ }
308
+ createTemplate(body, req) {
309
+ if (!body.name || typeof body.name !== 'string') {
310
+ throw new common_1.BadRequestException('name is required');
311
+ }
312
+ if (!body.description || typeof body.description !== 'string') {
313
+ throw new common_1.BadRequestException('description is required');
314
+ }
315
+ if (!body.category || typeof body.category !== 'string') {
316
+ throw new common_1.BadRequestException('category is required');
317
+ }
318
+ if (!body.triggerType || typeof body.triggerType !== 'string') {
319
+ throw new common_1.BadRequestException('triggerType is required');
320
+ }
321
+ if (!body.taskDescription || typeof body.taskDescription !== 'string') {
322
+ throw new common_1.BadRequestException('taskDescription is required');
323
+ }
324
+ if (!body.triggerConfig || typeof body.triggerConfig !== 'object') {
325
+ throw new common_1.BadRequestException('triggerConfig is required and must be an object');
326
+ }
327
+ if (!body.taskConfig || typeof body.taskConfig !== 'object') {
328
+ throw new common_1.BadRequestException('taskConfig is required and must be an object');
329
+ }
330
+ if (body.projectKey) {
331
+ this.assertProjectMutationAccess(body.projectKey, req);
332
+ }
333
+ return this.templateService.create(body, req.user.sub);
334
+ }
335
+ deleteTemplate(id, req) {
336
+ const template = this.templateService.findById(id);
337
+ if (!template) {
338
+ throw new common_1.NotFoundException(`Template #${id} not found`);
339
+ }
340
+ if (template.projectKey) {
341
+ this.assertProjectMutationAccess(template.projectKey, req);
342
+ }
343
+ this.templateService.delete(id);
344
+ return { success: true };
345
+ }
346
+ };
347
+ exports.AutomationController = AutomationController;
348
+ __decorate([
349
+ (0, common_1.Post)('automations'),
350
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
351
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
352
+ (0, rate_limit_guard_1.RateLimit)({ limit: 20, windowMs: 60_000 }),
353
+ __param(0, (0, common_1.Body)()),
354
+ __param(1, (0, common_1.Req)()),
355
+ __metadata("design:type", Function),
356
+ __metadata("design:paramtypes", [Object, Object]),
357
+ __metadata("design:returntype", Promise)
358
+ ], AutomationController.prototype, "createAutomation", null);
359
+ __decorate([
360
+ (0, common_1.Get)('automations'),
361
+ (0, rate_limit_guard_1.RateLimit)({ limit: 60, windowMs: 60_000 }),
362
+ __param(0, (0, common_1.Req)()),
363
+ __param(1, (0, common_1.Query)('projectKey')),
364
+ __param(2, (0, common_1.Query)('enabled')),
365
+ __param(3, (0, common_1.Query)('triggerType')),
366
+ __param(4, (0, common_1.Query)('limit')),
367
+ __param(5, (0, common_1.Query)('cursor')),
368
+ __metadata("design:type", Function),
369
+ __metadata("design:paramtypes", [Object, String, String, String, String, String]),
370
+ __metadata("design:returntype", void 0)
371
+ ], AutomationController.prototype, "listAutomations", null);
372
+ __decorate([
373
+ (0, common_1.Get)('automations/:id'),
374
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
375
+ __param(1, (0, common_1.Req)()),
376
+ __metadata("design:type", Function),
377
+ __metadata("design:paramtypes", [Number, Object]),
378
+ __metadata("design:returntype", void 0)
379
+ ], AutomationController.prototype, "getAutomation", null);
380
+ __decorate([
381
+ (0, common_1.Patch)('automations/:id'),
382
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
383
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
384
+ (0, rate_limit_guard_1.RateLimit)({ limit: 20, windowMs: 60_000 }),
385
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
386
+ __param(1, (0, common_1.Body)()),
387
+ __param(2, (0, common_1.Req)()),
388
+ __metadata("design:type", Function),
389
+ __metadata("design:paramtypes", [Number, Object, Object]),
390
+ __metadata("design:returntype", Promise)
391
+ ], AutomationController.prototype, "updateAutomation", null);
392
+ __decorate([
393
+ (0, common_1.Delete)('automations/:id'),
394
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
395
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
396
+ (0, rate_limit_guard_1.RateLimit)({ limit: 20, windowMs: 60_000 }),
397
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
398
+ __param(1, (0, common_1.Req)()),
399
+ __metadata("design:type", Function),
400
+ __metadata("design:paramtypes", [Number, Object]),
401
+ __metadata("design:returntype", Promise)
402
+ ], AutomationController.prototype, "deleteAutomation", null);
403
+ __decorate([
404
+ (0, common_1.Post)('automations/:id/enable'),
405
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
406
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
407
+ (0, rate_limit_guard_1.RateLimit)({ limit: 10, windowMs: 60_000 }),
408
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
409
+ __param(1, (0, common_1.Req)()),
410
+ __metadata("design:type", Function),
411
+ __metadata("design:paramtypes", [Number, Object]),
412
+ __metadata("design:returntype", Promise)
413
+ ], AutomationController.prototype, "enableAutomation", null);
414
+ __decorate([
415
+ (0, common_1.Post)('automations/:id/disable'),
416
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
417
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
418
+ (0, rate_limit_guard_1.RateLimit)({ limit: 10, windowMs: 60_000 }),
419
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
420
+ __param(1, (0, common_1.Req)()),
421
+ __metadata("design:type", Function),
422
+ __metadata("design:paramtypes", [Number, Object]),
423
+ __metadata("design:returntype", Promise)
424
+ ], AutomationController.prototype, "disableAutomation", null);
425
+ __decorate([
426
+ (0, common_1.Post)('automations/:id/trigger'),
427
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
428
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
429
+ (0, rate_limit_guard_1.RateLimit)({ limit: 10, windowMs: 60_000 }),
430
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
431
+ __param(1, (0, common_1.Req)()),
432
+ __metadata("design:type", Function),
433
+ __metadata("design:paramtypes", [Number, Object]),
434
+ __metadata("design:returntype", Promise)
435
+ ], AutomationController.prototype, "triggerAutomation", null);
436
+ __decorate([
437
+ (0, common_1.Get)('automation-runs/count'),
438
+ (0, rate_limit_guard_1.RateLimit)({ limit: 60, windowMs: 60_000 }),
439
+ __param(0, (0, common_1.Req)()),
440
+ __param(1, (0, common_1.Query)('automationId')),
441
+ __param(2, (0, common_1.Query)('inboxStatus')),
442
+ __param(3, (0, common_1.Query)('hasFindings')),
443
+ __param(4, (0, common_1.Query)('status')),
444
+ __metadata("design:type", Function),
445
+ __metadata("design:paramtypes", [Object, String, String, String, String]),
446
+ __metadata("design:returntype", void 0)
447
+ ], AutomationController.prototype, "countAutomationRuns", null);
448
+ __decorate([
449
+ (0, common_1.Get)('automation-runs'),
450
+ (0, rate_limit_guard_1.RateLimit)({ limit: 60, windowMs: 60_000 }),
451
+ __param(0, (0, common_1.Req)()),
452
+ __param(1, (0, common_1.Query)('automationId')),
453
+ __param(2, (0, common_1.Query)('inboxStatus')),
454
+ __param(3, (0, common_1.Query)('hasFindings')),
455
+ __param(4, (0, common_1.Query)('status')),
456
+ __param(5, (0, common_1.Query)('limit')),
457
+ __param(6, (0, common_1.Query)('cursor')),
458
+ __metadata("design:type", Function),
459
+ __metadata("design:paramtypes", [Object, String, String, String, String, String, String]),
460
+ __metadata("design:returntype", void 0)
461
+ ], AutomationController.prototype, "listAutomationRuns", null);
462
+ __decorate([
463
+ (0, common_1.Get)('automation-runs/:id'),
464
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
465
+ __param(1, (0, common_1.Req)()),
466
+ __metadata("design:type", Function),
467
+ __metadata("design:paramtypes", [Number, Object]),
468
+ __metadata("design:returntype", void 0)
469
+ ], AutomationController.prototype, "getAutomationRun", null);
470
+ __decorate([
471
+ (0, common_1.Patch)('automation-runs/:id'),
472
+ (0, rate_limit_guard_1.RateLimit)({ limit: 20, windowMs: 60_000 }),
473
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
474
+ __param(1, (0, common_1.Body)()),
475
+ __param(2, (0, common_1.Req)()),
476
+ __metadata("design:type", Function),
477
+ __metadata("design:paramtypes", [Number, Object, Object]),
478
+ __metadata("design:returntype", void 0)
479
+ ], AutomationController.prototype, "updateAutomationRun", null);
480
+ __decorate([
481
+ (0, common_1.Post)('automation-runs/batch'),
482
+ __param(0, (0, common_1.Body)()),
483
+ __param(1, (0, common_1.Req)()),
484
+ __metadata("design:type", Function),
485
+ __metadata("design:paramtypes", [Object, Object]),
486
+ __metadata("design:returntype", void 0)
487
+ ], AutomationController.prototype, "batchUpdateAutomationRuns", null);
488
+ __decorate([
489
+ (0, common_1.Get)('automation-templates'),
490
+ (0, rate_limit_guard_1.RateLimit)({ limit: 60, windowMs: 60_000 }),
491
+ __param(0, (0, common_1.Req)()),
492
+ __param(1, (0, common_1.Query)('category')),
493
+ __param(2, (0, common_1.Query)('isBuiltin')),
494
+ __param(3, (0, common_1.Query)('projectKey')),
495
+ __metadata("design:type", Function),
496
+ __metadata("design:paramtypes", [Object, String, String, String]),
497
+ __metadata("design:returntype", void 0)
498
+ ], AutomationController.prototype, "listTemplates", null);
499
+ __decorate([
500
+ (0, common_1.Get)('automation-templates/:id'),
501
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
502
+ __param(1, (0, common_1.Req)()),
503
+ __metadata("design:type", Function),
504
+ __metadata("design:paramtypes", [Number, Object]),
505
+ __metadata("design:returntype", void 0)
506
+ ], AutomationController.prototype, "getTemplate", null);
507
+ __decorate([
508
+ (0, common_1.Post)('automation-templates'),
509
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
510
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
511
+ (0, rate_limit_guard_1.RateLimit)({ limit: 10, windowMs: 60_000 }),
512
+ __param(0, (0, common_1.Body)()),
513
+ __param(1, (0, common_1.Req)()),
514
+ __metadata("design:type", Function),
515
+ __metadata("design:paramtypes", [Object, Object]),
516
+ __metadata("design:returntype", void 0)
517
+ ], AutomationController.prototype, "createTemplate", null);
518
+ __decorate([
519
+ (0, common_1.Delete)('automation-templates/:id'),
520
+ (0, common_1.UseGuards)(roles_guard_1.RolesGuard),
521
+ (0, roles_decorator_1.Roles)(protocol_1.DeveloperRole.LEAD),
522
+ (0, rate_limit_guard_1.RateLimit)({ limit: 20, windowMs: 60_000 }),
523
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
524
+ __param(1, (0, common_1.Req)()),
525
+ __metadata("design:type", Function),
526
+ __metadata("design:paramtypes", [Number, Object]),
527
+ __metadata("design:returntype", void 0)
528
+ ], AutomationController.prototype, "deleteTemplate", null);
529
+ exports.AutomationController = AutomationController = __decorate([
530
+ (0, common_1.Controller)('api/web'),
531
+ (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
532
+ __metadata("design:paramtypes", [automation_service_1.AutomationService,
533
+ automation_template_service_1.AutomationTemplateService,
534
+ automation_repository_1.AutomationRepository,
535
+ project_member_repository_1.ProjectMemberRepository,
536
+ task_repository_1.TaskRepository,
537
+ web_event_service_1.WebEventService])
538
+ ], AutomationController);
539
+ //# sourceMappingURL=automation.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation.controller.js","sourceRoot":"","sources":["../../src/web/automation.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { WorkerUpFrame } from '@overlordai/protocol';
2
+ import type { FrameHandler, FrameHandlerContext } from './frame-handler.interface';
3
+ import type { AutomationExecutor } from '../../automation/automation-executor';
4
+ export declare class AutomationReportHandler implements FrameHandler {
5
+ private readonly executor;
6
+ readonly frameTypes: string[];
7
+ constructor(executor: AutomationExecutor);
8
+ handle(frame: WorkerUpFrame, _ctx: FrameHandlerContext): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=automation-report.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-report.handler.d.ts","sourceRoot":"","sources":["../../../src/web/frame-handlers/automation-report.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,qBAAa,uBAAwB,YAAW,YAAY;IAG9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,QAAQ,CAAC,UAAU,WAAyB;gBAEf,QAAQ,EAAE,kBAAkB;IAEnD,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7E"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutomationReportHandler = void 0;
4
+ class AutomationReportHandler {
5
+ constructor(executor) {
6
+ this.executor = executor;
7
+ this.frameTypes = ['automation_report'];
8
+ }
9
+ async handle(frame, _ctx) {
10
+ const { taskId, findings } = frame;
11
+ await this.executor.handleAutomationReport(taskId, findings);
12
+ }
13
+ }
14
+ exports.AutomationReportHandler = AutomationReportHandler;
15
+ //# sourceMappingURL=automation-report.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation-report.handler.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/automation-report.handler.ts"],"names":[],"mappings":";;;AAIA,MAAa,uBAAuB;IAGlC,YAA6B,QAA4B;QAA5B,aAAQ,GAAR,QAAQ,CAAoB;QAFhD,eAAU,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAEgB,CAAC;IAE7D,KAAK,CAAC,MAAM,CAAC,KAAoB,EAAE,IAAyB;QAC1D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAA8B,CAAC;QAC5D,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACF;AATD,0DASC"}
@@ -7,4 +7,5 @@ export { StageChoiceHandler } from './stage-choice.handler';
7
7
  export { StageConfirmHandler } from './stage-confirm.handler';
8
8
  export { StageInputHandler } from './stage-input.handler';
9
9
  export { TunnelHandler } from './tunnel.handler';
10
+ export { AutomationReportHandler } from './automation-report.handler';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/frame-handlers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/frame-handlers/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TunnelHandler = exports.StageInputHandler = exports.StageConfirmHandler = exports.StageChoiceHandler = exports.ReviewReportHandler = exports.ProgressHandler = exports.HeartbeatHandler = exports.FrameHandlerRegistry = void 0;
3
+ exports.AutomationReportHandler = exports.TunnelHandler = exports.StageInputHandler = exports.StageConfirmHandler = exports.StageChoiceHandler = exports.ReviewReportHandler = exports.ProgressHandler = exports.HeartbeatHandler = exports.FrameHandlerRegistry = void 0;
4
4
  var frame_handler_registry_1 = require("./frame-handler.registry");
5
5
  Object.defineProperty(exports, "FrameHandlerRegistry", { enumerable: true, get: function () { return frame_handler_registry_1.FrameHandlerRegistry; } });
6
6
  var heartbeat_handler_1 = require("./heartbeat.handler");
@@ -17,4 +17,6 @@ var stage_input_handler_1 = require("./stage-input.handler");
17
17
  Object.defineProperty(exports, "StageInputHandler", { enumerable: true, get: function () { return stage_input_handler_1.StageInputHandler; } });
18
18
  var tunnel_handler_1 = require("./tunnel.handler");
19
19
  Object.defineProperty(exports, "TunnelHandler", { enumerable: true, get: function () { return tunnel_handler_1.TunnelHandler; } });
20
+ var automation_report_handler_1 = require("./automation-report.handler");
21
+ Object.defineProperty(exports, "AutomationReportHandler", { enumerable: true, get: function () { return automation_report_handler_1.AutomationReportHandler; } });
20
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/index.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAC7B,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/index.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAC7B,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AACxB,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAC3B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAC5B,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA"}