@overlordai/server 1.0.140 → 1.0.141

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 (232) hide show
  1. package/database/migrations/010-plan-review-mode.sql +11 -0
  2. package/database/migrations/012-schema-index-fixes.sql +72 -0
  3. package/dist/adapters/adapter.module.d.ts.map +1 -1
  4. package/dist/adapters/adapter.module.js +3 -0
  5. package/dist/adapters/adapter.module.js.map +1 -1
  6. package/dist/adapters/command-parser.utils.d.ts +11 -0
  7. package/dist/adapters/command-parser.utils.d.ts.map +1 -1
  8. package/dist/adapters/command-parser.utils.js +57 -0
  9. package/dist/adapters/command-parser.utils.js.map +1 -1
  10. package/dist/adapters/help-text.d.ts.map +1 -1
  11. package/dist/adapters/help-text.js +8 -6
  12. package/dist/adapters/help-text.js.map +1 -1
  13. package/dist/adapters/lark/lark-message.parser.d.ts +7 -7
  14. package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
  15. package/dist/adapters/lark/lark-message.parser.js +11 -7
  16. package/dist/adapters/lark/lark-message.parser.js.map +1 -1
  17. package/dist/adapters/lark/lark.adapter.d.ts +3 -1
  18. package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
  19. package/dist/adapters/lark/lark.adapter.js +28 -12
  20. package/dist/adapters/lark/lark.adapter.js.map +1 -1
  21. package/dist/adapters/nlu.service.d.ts +20 -0
  22. package/dist/adapters/nlu.service.d.ts.map +1 -0
  23. package/dist/adapters/nlu.service.js +231 -0
  24. package/dist/adapters/nlu.service.js.map +1 -0
  25. package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
  26. package/dist/adapters/slack/slack-message.parser.js +4 -0
  27. package/dist/adapters/slack/slack-message.parser.js.map +1 -1
  28. package/dist/adapters/slack/slack.adapter.d.ts +3 -1
  29. package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
  30. package/dist/adapters/slack/slack.adapter.js +43 -14
  31. package/dist/adapters/slack/slack.adapter.js.map +1 -1
  32. package/dist/adapters/slack/slack.controller.js +8 -8
  33. package/dist/adapters/slack/slack.controller.js.map +1 -1
  34. package/dist/common/project-validation.d.ts +13 -3
  35. package/dist/common/project-validation.d.ts.map +1 -1
  36. package/dist/common/project-validation.js +21 -5
  37. package/dist/common/project-validation.js.map +1 -1
  38. package/dist/database/migration-runner.d.ts.map +1 -1
  39. package/dist/database/migration-runner.js +10 -1
  40. package/dist/database/migration-runner.js.map +1 -1
  41. package/dist/database/repositories/project.repository.d.ts +2 -0
  42. package/dist/database/repositories/project.repository.d.ts.map +1 -1
  43. package/dist/database/repositories/project.repository.js +13 -0
  44. package/dist/database/repositories/project.repository.js.map +1 -1
  45. package/dist/database/repositories/task.repository.d.ts +11 -2
  46. package/dist/database/repositories/task.repository.d.ts.map +1 -1
  47. package/dist/database/repositories/task.repository.js +64 -8
  48. package/dist/database/repositories/task.repository.js.map +1 -1
  49. package/dist/dispatcher/dispatcher.service.d.ts +2 -0
  50. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  51. package/dist/dispatcher/dispatcher.service.js +79 -0
  52. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  53. package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
  54. package/dist/dispatcher/scheduler.service.js +3 -0
  55. package/dist/dispatcher/scheduler.service.js.map +1 -1
  56. package/dist/dispatcher/task-creation.service.d.ts +13 -2
  57. package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
  58. package/dist/dispatcher/task-creation.service.js +207 -21
  59. package/dist/dispatcher/task-creation.service.js.map +1 -1
  60. package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
  61. package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
  62. package/dist/dispatcher/task-lifecycle.service.js +231 -1
  63. package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
  64. package/dist/events/event-types.d.ts +8 -0
  65. package/dist/events/event-types.d.ts.map +1 -1
  66. package/dist/events/event-types.js +1 -0
  67. package/dist/events/event-types.js.map +1 -1
  68. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  69. package/dist/notifier/notification-consumer.js +5 -0
  70. package/dist/notifier/notification-consumer.js.map +1 -1
  71. package/dist/notifier/notification-event-listener.d.ts +2 -1
  72. package/dist/notifier/notification-event-listener.d.ts.map +1 -1
  73. package/dist/notifier/notification-event-listener.js +14 -0
  74. package/dist/notifier/notification-event-listener.js.map +1 -1
  75. package/dist/notifier/notifier.service.d.ts +1 -0
  76. package/dist/notifier/notifier.service.d.ts.map +1 -1
  77. package/dist/notifier/notifier.service.js +8 -0
  78. package/dist/notifier/notifier.service.js.map +1 -1
  79. package/dist/notifier/template.service.d.ts +4 -0
  80. package/dist/notifier/template.service.d.ts.map +1 -1
  81. package/dist/notifier/template.service.js +32 -0
  82. package/dist/notifier/template.service.js.map +1 -1
  83. package/dist/web/admin/admin-project.controller.d.ts.map +1 -1
  84. package/dist/web/admin/admin-project.controller.js +15 -0
  85. package/dist/web/admin/admin-project.controller.js.map +1 -1
  86. package/dist/web/dashboard.service.js +3 -3
  87. package/dist/web/frame-handlers/index.d.ts +1 -0
  88. package/dist/web/frame-handlers/index.d.ts.map +1 -1
  89. package/dist/web/frame-handlers/index.js +3 -1
  90. package/dist/web/frame-handlers/index.js.map +1 -1
  91. package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -1
  92. package/dist/web/frame-handlers/progress.handler.js +18 -0
  93. package/dist/web/frame-handlers/progress.handler.js.map +1 -1
  94. package/dist/web/frame-handlers/review-report.handler.d.ts +15 -0
  95. package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -0
  96. package/dist/web/frame-handlers/review-report.handler.js +140 -0
  97. package/dist/web/frame-handlers/review-report.handler.js.map +1 -0
  98. package/dist/web/frame-handlers/stage-confirm.handler.d.ts +3 -1
  99. package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
  100. package/dist/web/frame-handlers/stage-confirm.handler.js +18 -4
  101. package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
  102. package/dist/web/project.controller.js +1 -1
  103. package/dist/web/project.controller.js.map +1 -1
  104. package/dist/web/task.controller.d.ts +116 -2
  105. package/dist/web/task.controller.d.ts.map +1 -1
  106. package/dist/web/task.controller.js +172 -8
  107. package/dist/web/task.controller.js.map +1 -1
  108. package/dist/web/web-event.service.d.ts +2 -1
  109. package/dist/web/web-event.service.d.ts.map +1 -1
  110. package/dist/web/web-event.service.js +13 -0
  111. package/dist/web/web-event.service.js.map +1 -1
  112. package/dist/web/worker-channel.gateway.d.ts +2 -1
  113. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  114. package/dist/web/worker-channel.gateway.js +6 -3
  115. package/dist/web/worker-channel.gateway.js.map +1 -1
  116. package/package.json +4 -4
  117. package/public/assets/AccessTokensPage-wTxicSeE.js +1 -0
  118. package/public/assets/AdminPage-CBovEOm4.js +1 -0
  119. package/public/assets/{AgentCliPage-CyYjrwq2.js → AgentCliPage-DfqlFdFN.js} +1 -1
  120. package/public/assets/{ApiReferencePage-Bclq5KsN.js → ApiReferencePage-7TUHB8sC.js} +1 -1
  121. package/public/assets/{ArchitecturePage-BDytxAWu.js → ArchitecturePage-CycvJ1HW.js} +1 -1
  122. package/public/assets/AuditLogPage-CqqCDd8o.js +1 -0
  123. package/public/assets/{BindPlatformPage-BWFCXp_B.js → BindPlatformPage-BV5wNIi2.js} +1 -1
  124. package/public/assets/{BotIntegrationPage-BE63GDU0.js → BotIntegrationPage-B2bQytks.js} +1 -1
  125. package/public/assets/{BotManage-B4jE07jf.js → BotManage-BBBrqdT_.js} +2 -2
  126. package/public/assets/{BotSetupPage-CFZ4rCsj.js → BotSetupPage-DdDPniAd.js} +1 -1
  127. package/public/assets/{ChangelogPage-Dq4Vbaek.js → ChangelogPage-D5YE3BFH.js} +1 -1
  128. package/public/assets/CliReferencePage-yJgtPpFn.js +17 -0
  129. package/public/assets/ConfirmStageDialog-BOGr-qSN.js +12 -0
  130. package/public/assets/{DeploymentPage-Cl6zirj-.js → DeploymentPage-C0CXq8yl.js} +1 -1
  131. package/public/assets/{DevWorkflowPage-Le7igjcE.js → DevWorkflowPage-I4Io3nYz.js} +1 -1
  132. package/public/assets/{DeveloperManage-CEia9VDa.js → DeveloperManage-Cy0LRyHh.js} +2 -2
  133. package/public/assets/{DeveloperSetupPage-CYbrSjhy.js → DeveloperSetupPage-DzGCH2XG.js} +1 -1
  134. package/public/assets/{DocsIndexPage-Ds7FZGYL.js → DocsIndexPage-PIEcc9gX.js} +2 -2
  135. package/public/assets/DocsLayout-ChIliA9A.js +1 -0
  136. package/public/assets/{DocsPrimitives-BeRfTNWi.js → DocsPrimitives-BMgSDhur.js} +1 -1
  137. package/public/assets/EditProjectPage-D0rfXGZR.js +2 -0
  138. package/public/assets/{EmptyState-BrTEmjub.js → EmptyState-Di2nOiOt.js} +1 -1
  139. package/public/assets/{EnvVariablesPage-Cco0LY2i.js → EnvVariablesPage-EmfRwttc.js} +1 -1
  140. package/public/assets/{HomePage-DkFq_Niq.js → HomePage-CeOmNhkc.js} +1 -1
  141. package/public/assets/{InfoRow-VesvmVYO.js → InfoRow-5vQ-_wWv.js} +1 -1
  142. package/public/assets/{InstallationPage-Cd7Eh_1x.js → InstallationPage-CUbe1AD-.js} +1 -1
  143. package/public/assets/{LandingPage-Cxp2IXav.js → LandingPage-DSHGbkXw.js} +7 -12
  144. package/public/assets/{LocalDevelopmentPage-BC2x9o_F.js → LocalDevelopmentPage-fialPCnX.js} +1 -1
  145. package/public/assets/{LoginPage-fgYsLW4-.js → LoginPage-C4oz9yjV.js} +1 -1
  146. package/public/assets/{MetricBar-CFHaSbdz.js → MetricBar-ByQYVWVi.js} +1 -1
  147. package/public/assets/{NotFoundPage-BxtgZYrG.js → NotFoundPage-BeayCSH7.js} +1 -1
  148. package/public/assets/{OnboardingGuide-BqdyHxJS.js → OnboardingGuide-CqcX04SL.js} +1 -1
  149. package/public/assets/{PermissionsPage-BP5SsoMl.js → PermissionsPage-Bb2CYzMf.js} +1 -1
  150. package/public/assets/{PipelineConfigPage-B8NayzNO.js → PipelineConfigPage-DwY__0Ag.js} +2 -2
  151. package/public/assets/PipelineEditorPage-FkckQpQX.js +3 -0
  152. package/public/assets/PlanPage-BOzGJd2h.js +1 -0
  153. package/public/assets/ProfilePage-CT_kk3a8.js +1 -0
  154. package/public/assets/{ProjectDetailPage-CGhCxrKQ.js → ProjectDetailPage-B-t7L84T.js} +3 -3
  155. package/public/assets/{ProjectListPage-2b4E2H36.js → ProjectListPage-C2uStUVE.js} +2 -2
  156. package/public/assets/PtyTerminal-BYXg_ahq.js +38 -0
  157. package/public/assets/QuickAuth-CohuPihd.js +1 -0
  158. package/public/assets/{RemoveMemberConfirmDialog-CblKQmK2.js → RemoveMemberConfirmDialog-DLq9g7Td.js} +1 -1
  159. package/public/assets/ReviewAggregatePage-dWQb52Df.js +11 -0
  160. package/public/assets/ReviewPage-DtdWSBgK.js +1 -0
  161. package/public/assets/Select-BAl7H-Y0.js +1 -0
  162. package/public/assets/{SettingsPage-CcTEwK5L.js → SettingsPage-qCfF6rzU.js} +1 -1
  163. package/public/assets/{Skeleton-CJVHi16l.js → Skeleton-DA5o8Wqi.js} +1 -1
  164. package/public/assets/{SkillPage-Dl6hXkHy.js → SkillPage-C6p0dXbu.js} +1 -1
  165. package/public/assets/TaskDetailPage-D4sGfico.js +21 -0
  166. package/public/assets/TaskGuidePage-COT0chCI.js +19 -0
  167. package/public/assets/TaskListPage-Bvq5ow7r.js +1 -0
  168. package/public/assets/{TaskStatusBadge-BdDVC3F4.js → TaskStatusBadge-BdNFkrjU.js} +1 -1
  169. package/public/assets/TerminalHomePage-XJ5daAJC.js +6 -0
  170. package/public/assets/TokenManage-JLFD8xAN.js +1 -0
  171. package/public/assets/{Tooltip-BSeP698b.js → Tooltip-Bl8LCgWr.js} +1 -1
  172. package/public/assets/{TotpSetupPage-DkTKw-87.js → TotpSetupPage-BGE6pDdn.js} +1 -1
  173. package/public/assets/{WorkerDetailPage-C3xgOzQ5.js → WorkerDetailPage-Dd-IbO6r.js} +1 -1
  174. package/public/assets/{WorkerListPage-SzomA2Jg.js → WorkerListPage-e4P55nJc.js} +2 -2
  175. package/public/assets/{WorkerOperationsPage-Dm1PdRDK.js → WorkerOperationsPage-ioBw_i1j.js} +1 -1
  176. package/public/assets/WorkerSetupGuidePage-CRicnVVm.js +1 -0
  177. package/public/assets/{WorkerSetupPage-DOjZMVtt.js → WorkerSetupPage-DXOlNqUZ.js} +1 -1
  178. package/public/assets/{agent-type-options-SYUwiixD.js → agent-type-options-BVIYXf2V.js} +1 -1
  179. package/public/assets/{arrow-left-B16h49gW.js → arrow-left-CTo0KHGY.js} +1 -1
  180. package/public/assets/{arrow-right-DxSODyV0.js → arrow-right-C9oQyTKw.js} +1 -1
  181. package/public/assets/{bot-DvI1Z_Mw.js → bot-B301pflD.js} +1 -1
  182. package/public/assets/chevron-down-B0Leook1.js +6 -0
  183. package/public/assets/{chevron-left-CH1J8GB-.js → chevron-left-59qctCaF.js} +1 -1
  184. package/public/assets/{chevron-right-CdPoqMfX.js → chevron-right-XfJqITCa.js} +1 -1
  185. package/public/assets/chevron-up-BW2PVBfH.js +6 -0
  186. package/public/assets/{copy-DNIFSymA.js → copy-DEWCNXDf.js} +1 -1
  187. package/public/assets/{download-DLYSP8rX.js → download-7d5kMwpH.js} +1 -1
  188. package/public/assets/{external-link-DrZcaziN.js → external-link-DjBNV7ga.js} +1 -1
  189. package/public/assets/{file-text-224YYyRN.js → file-text-DHEz_RFq.js} +1 -1
  190. package/public/assets/{git-fork-CsNrC-5K.js → git-fork-cRLOBM6a.js} +1 -1
  191. package/public/assets/index-eKvCyU64.js +252 -0
  192. package/public/assets/index-kJfGgL_V.css +1 -0
  193. package/public/assets/{key-ChevPWu9.js → key-D5BbAzTj.js} +1 -1
  194. package/public/assets/{loader-circle-_p8GERRD.js → loader-circle-B_f_h4fq.js} +1 -1
  195. package/public/assets/{pencil-BjrOvZ4y.js → pencil-CTTWvWuS.js} +1 -1
  196. package/public/assets/play-Cqf1Kvc7.js +6 -0
  197. package/public/assets/{plus-DtE-5ICU.js → plus-DwBKB0x6.js} +1 -1
  198. package/public/assets/{rotate-ccw-DTMgDeUz.js → rotate-ccw-CZR8KOZn.js} +1 -1
  199. package/public/assets/{scroll-text-DLDVcM9k.js → scroll-text-BeQeZkLb.js} +1 -1
  200. package/public/assets/{settings-BWLb7GMU.js → settings-CsdOqob5.js} +1 -1
  201. package/public/assets/skip-forward-BqiRx2ZQ.js +6 -0
  202. package/public/assets/status-colors-yfNzOmz-.js +1 -0
  203. package/public/assets/task-constants-BWLt-ivk.js +1 -0
  204. package/public/assets/task.store-BDZwafPm.js +1 -0
  205. package/public/assets/{trash-2-DGYLJbuV.js → trash-2-CXPG2vQr.js} +1 -1
  206. package/public/assets/{useFetch-BHc-EDVT.js → useFetch-CVFGit7a.js} +1 -1
  207. package/public/assets/{users-CXqH9m6n.js → users-DmefWRaM.js} +1 -1
  208. package/public/assets/{wifi-CknEzeaW.js → wifi-BJIfMBKB.js} +1 -1
  209. package/public/assets/{workflow-BHEQEN9B.js → workflow-CuZasRLA.js} +1 -1
  210. package/public/index.html +2 -2
  211. package/public/sw.js +1 -1
  212. package/public/assets/AccessTokensPage-D1CyjkMd.js +0 -1
  213. package/public/assets/AdminPage-BfGgzqGY.js +0 -1
  214. package/public/assets/AuditLogPage-BtlSABTt.js +0 -1
  215. package/public/assets/CliReferencePage-fyRcKPES.js +0 -16
  216. package/public/assets/DocsLayout-Bc08wdi2.js +0 -1
  217. package/public/assets/EditProjectPage-UQcHFFv0.js +0 -2
  218. package/public/assets/MobileTerminalShell-DvdSW-sx.js +0 -49
  219. package/public/assets/PipelineEditorPage-BLRXg7uE.js +0 -3
  220. package/public/assets/ProfilePage-BY4_Kq2m.js +0 -1
  221. package/public/assets/QuickAuth-DODaMzBE.js +0 -1
  222. package/public/assets/Select-CatoaxSD.js +0 -6
  223. package/public/assets/TaskDetailPage-BF-G4onm.js +0 -26
  224. package/public/assets/TaskListPage-DKtvYTqk.js +0 -1
  225. package/public/assets/TerminalHomePage-CR-OzAME.js +0 -11
  226. package/public/assets/TokenManage-DGWTDHT0.js +0 -1
  227. package/public/assets/WorkerSetupGuidePage-BDxh9qGL.js +0 -6
  228. package/public/assets/index-BUjb3VF-.css +0 -1
  229. package/public/assets/index-BnZa648g.js +0 -242
  230. package/public/assets/status-colors-CJELOkpG.js +0 -1
  231. package/public/assets/task-constants-DVi4wVyB.js +0 -1
  232. /package/public/assets/{MobileTerminalShell-6GBZ9nXN.css → PtyTerminal-6GBZ9nXN.css} +0 -0
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReviewReportHandler = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const event_types_1 = require("../../events/event-types");
6
+ /** TTL for review reports stored in Redis: 24 hours. */
7
+ const REVIEW_REPORT_TTL_SEC = 86_400;
8
+ class ReviewReportHandler {
9
+ constructor(taskRepo, redis, eventEmitter) {
10
+ this.taskRepo = taskRepo;
11
+ this.redis = redis;
12
+ this.eventEmitter = eventEmitter;
13
+ this.frameTypes = ['review_report'];
14
+ this.logger = new common_1.Logger(ReviewReportHandler.name);
15
+ }
16
+ async handle(frame, _ctx) {
17
+ const { taskId, report } = frame;
18
+ this.logger.log(`Received review_report for task #${taskId}`);
19
+ // 1. Store the report in Redis with 24h TTL
20
+ await this.redis.setex(`review_report:${taskId}`, REVIEW_REPORT_TTL_SEC, JSON.stringify(report));
21
+ // 2. Find the review task and its sourceTaskId
22
+ const reviewTask = this.taskRepo.findById(taskId);
23
+ if (!reviewTask?.sourceTaskId) {
24
+ this.logger.warn(`review_report: task #${taskId} not found or has no sourceTaskId`);
25
+ return;
26
+ }
27
+ const { sourceTaskId } = reviewTask;
28
+ // 3. Determine which round this task belongs to by scanning round keys.
29
+ // createReviewTasks stores: review_round:{sourceTaskId}:{round} -> { taskIds: [...] }
30
+ const roundCountRaw = await this.redis.get(`review_round_count:${sourceTaskId}`);
31
+ const roundCount = roundCountRaw ? parseInt(roundCountRaw, 10) : 0;
32
+ if (roundCount === 0) {
33
+ this.logger.warn(`review_report: no round data found for source task #${sourceTaskId}`);
34
+ return;
35
+ }
36
+ // Find the round that contains this taskId
37
+ let currentRound = 0;
38
+ let currentRoundTaskIds = [];
39
+ let currentRoundExpectedCount = 0;
40
+ for (let r = roundCount; r >= 1; r--) {
41
+ const roundKey = `review_round:${sourceTaskId}:${r}`;
42
+ const roundRaw = await this.redis.get(roundKey);
43
+ if (!roundRaw)
44
+ continue;
45
+ try {
46
+ const roundData = JSON.parse(roundRaw);
47
+ if (roundData.taskIds.includes(taskId)) {
48
+ currentRound = r;
49
+ currentRoundTaskIds = roundData.taskIds;
50
+ currentRoundExpectedCount = roundData.expectedCount ?? roundData.taskIds.length;
51
+ break;
52
+ }
53
+ }
54
+ catch {
55
+ // Ignore malformed round data
56
+ }
57
+ }
58
+ if (currentRound === 0) {
59
+ // Race condition: the task was created and dispatched but its ID hasn't
60
+ // been written to the round key yet. Compensate by adding it to the
61
+ // latest round retroactively.
62
+ const latestRoundKey = `review_round:${sourceTaskId}:${roundCount}`;
63
+ const latestRaw = await this.redis.get(latestRoundKey);
64
+ if (latestRaw) {
65
+ try {
66
+ const latestData = JSON.parse(latestRaw);
67
+ latestData.taskIds.push(taskId);
68
+ await this.redis.setex(latestRoundKey, REVIEW_REPORT_TTL_SEC, JSON.stringify(latestData));
69
+ currentRound = roundCount;
70
+ currentRoundTaskIds = latestData.taskIds;
71
+ currentRoundExpectedCount = latestData.expectedCount ?? latestData.taskIds.length;
72
+ this.logger.log(`review_report: task #${taskId} back-filled into round #${currentRound} for source #${sourceTaskId}`);
73
+ }
74
+ catch {
75
+ this.logger.warn(`review_report: failed to back-fill task #${taskId} into round`);
76
+ return;
77
+ }
78
+ }
79
+ else {
80
+ this.logger.warn(`review_report: task #${taskId} not found in any round for source #${sourceTaskId}`);
81
+ return;
82
+ }
83
+ }
84
+ // 4. Persist report and round number to database for durable history
85
+ // This ensures review history survives past the 24h Redis TTL.
86
+ try {
87
+ this.taskRepo.updateReviewData(taskId, JSON.stringify(report), currentRound);
88
+ }
89
+ catch (err) {
90
+ // Non-fatal: Redis still has the report, DB persistence is a bonus
91
+ this.logger.warn(`review_report: failed to persist report to DB for task #${taskId}: ${String(err)}`);
92
+ }
93
+ // 5. Track reported task IDs in a Redis set scoped to this round
94
+ const reportedSetKey = `review_reported:${sourceTaskId}:${currentRound}`;
95
+ await this.redis.getClient().sadd(reportedSetKey, String(taskId));
96
+ await this.redis.expire(reportedSetKey, REVIEW_REPORT_TTL_SEC);
97
+ const reportedCount = await this.redis.getClient().scard(reportedSetKey);
98
+ // Use expectedCount (set at round creation) rather than taskIds.length
99
+ // (which grows incrementally as tasks are created). This prevents a fast
100
+ // worker from triggering completion before all tasks in the round exist.
101
+ const totalCount = currentRoundExpectedCount;
102
+ this.logger.log(`Review round #${currentRound} progress for source #${sourceTaskId}: ${reportedCount}/${totalCount} reported`);
103
+ if (totalCount > 0 && reportedCount >= totalCount) {
104
+ // All review tasks in this round have submitted reports
105
+ this.logger.log(`Review round #${currentRound} complete for source task #${sourceTaskId} — emitting event`);
106
+ // Aggregate issue counts from all reports in this round for the notification
107
+ let criticalCount = 0;
108
+ let warningCount = 0;
109
+ let suggestionCount = 0;
110
+ for (const roundTaskId of currentRoundTaskIds) {
111
+ const reportRaw = await this.redis.get(`review_report:${roundTaskId}`);
112
+ if (!reportRaw)
113
+ continue;
114
+ try {
115
+ const roundReport = JSON.parse(reportRaw);
116
+ for (const issue of roundReport.issues ?? []) {
117
+ if (issue.severity === 'critical')
118
+ criticalCount++;
119
+ else if (issue.severity === 'warning')
120
+ warningCount++;
121
+ else if (issue.severity === 'suggestion')
122
+ suggestionCount++;
123
+ }
124
+ }
125
+ catch {
126
+ // Ignore malformed report
127
+ }
128
+ }
129
+ this.eventEmitter.emit(event_types_1.DomainEvents.REVIEW_ROUND_COMPLETE, {
130
+ sourceTaskId,
131
+ round: currentRound,
132
+ criticalCount,
133
+ warningCount,
134
+ suggestionCount,
135
+ });
136
+ }
137
+ }
138
+ }
139
+ exports.ReviewReportHandler = ReviewReportHandler;
140
+ //# sourceMappingURL=review-report.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-report.handler.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/review-report.handler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { WorkerUpFrame } from '@overlordai/protocol';
2
+ import type { EventEmitter2 } from '@nestjs/event-emitter';
2
3
  import type { FrameHandler, FrameHandlerContext } from './frame-handler.interface';
3
4
  import type { DedupService } from '../../dispatcher/dedup.service';
4
5
  import type { TaskRepository } from '../../database/repositories/task.repository';
@@ -7,9 +8,10 @@ export declare class StageConfirmHandler implements FrameHandler {
7
8
  private readonly dedupService;
8
9
  private readonly taskRepo;
9
10
  private readonly notifierService;
11
+ private readonly eventEmitter;
10
12
  readonly frameTypes: string[];
11
13
  private readonly logger;
12
- constructor(dedupService: DedupService, taskRepo: TaskRepository, notifierService: NotifierService);
14
+ constructor(dedupService: DedupService, taskRepo: TaskRepository, notifierService: NotifierService, eventEmitter: EventEmitter2);
13
15
  handle(frame: WorkerUpFrame, _ctx: FrameHandlerContext): Promise<void>;
14
16
  }
15
17
  //# sourceMappingURL=stage-confirm.handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stage-confirm.handler.d.ts","sourceRoot":"","sources":["../../../src/web/frame-handlers/stage-confirm.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAAa,mBAAoB,YAAW,YAAY;IAKpD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IANlC,QAAQ,CAAC,UAAU,WAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,eAAe;IAG7C,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}
1
+ {"version":3,"file":"stage-confirm.handler.d.ts","sourceRoot":"","sources":["../../../src/web/frame-handlers/stage-confirm.handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,qBAAa,mBAAoB,YAAW,YAAY;IAKpD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B,QAAQ,CAAC,UAAU,WAA6B;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwC;gBAG5C,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,aAAa;IAGxC,MAAM,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgD7E"}
@@ -2,17 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StageConfirmHandler = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
+ const protocol_1 = require("@overlordai/protocol");
6
+ const event_types_1 = require("../../events/event-types");
5
7
  class StageConfirmHandler {
6
- constructor(dedupService, taskRepo, notifierService) {
8
+ constructor(dedupService, taskRepo, notifierService, eventEmitter) {
7
9
  this.dedupService = dedupService;
8
10
  this.taskRepo = taskRepo;
9
11
  this.notifierService = notifierService;
12
+ this.eventEmitter = eventEmitter;
10
13
  this.frameTypes = ['stage_confirm_request'];
11
14
  this.logger = new common_1.Logger(StageConfirmHandler.name);
12
15
  }
13
16
  async handle(frame, _ctx) {
14
- const { taskId, stageName, prompt, timeout } = frame;
15
- this.logger.log(`Stage confirm request for task #${taskId}, stage ${stageName}`);
17
+ const { taskId, stageName, prompt, timeout, confirmType } = frame;
18
+ this.logger.log(`Stage confirm request for task #${taskId}, stage ${stageName} (type: ${confirmType ?? 'confirm'})`);
16
19
  // Store pending confirm in Redis via DedupService
17
20
  const confirmKey = `stage:${taskId}:${stageName}`;
18
21
  await this.dedupService.storePendingConfirm(confirmKey, {
@@ -21,11 +24,22 @@ class StageConfirmHandler {
21
24
  stageName,
22
25
  prompt,
23
26
  timeout,
27
+ confirmType: confirmType ?? 'confirm',
24
28
  createdAt: new Date().toISOString(),
25
29
  });
26
- // Notify web clients via the notification channel
30
+ // Transition task from RUNNING SUSPENDED so approveFix/skipFix can find it
27
31
  const task = this.taskRepo.findById(taskId);
28
32
  if (task) {
33
+ if (task.status === protocol_1.TaskStatus.RUNNING) {
34
+ const updated = this.taskRepo.updateStatus(taskId, protocol_1.TaskStatus.SUSPENDED, task.revision, { currentStage: stageName });
35
+ if (updated) {
36
+ this.eventEmitter.emit(event_types_1.DomainEvents.TASK_STATUS_CHANGED, {
37
+ taskId,
38
+ status: protocol_1.TaskStatus.SUSPENDED,
39
+ previousStatus: protocol_1.TaskStatus.RUNNING,
40
+ });
41
+ }
42
+ }
29
43
  await this.notifierService.notifyStageConfirmRequired(task, stageName);
30
44
  }
31
45
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"stage-confirm.handler.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/stage-confirm.handler.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAUxC,MAAa,mBAAmB;IAI9B,YACmB,YAA0B,EAC1B,QAAwB,EACxB,eAAgC;QAFhC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,oBAAe,GAAf,eAAe,CAAiB;QAN1C,eAAU,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC/B,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAM5D,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,KAAoB,EAAE,IAAyB;QAC1D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAiC,CAAC;QAEjF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,mCAAmC,MAAM,WAAW,SAAS,EAAE,CAChE,CAAC;QAEF,kDAAkD;QAClD,MAAM,UAAU,GAAG,SAAS,MAAM,IAAI,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE;YACtD,IAAI,EAAE,SAAS;YACf,MAAM;YACN,SAAS;YACT,MAAM;YACN,OAAO;YACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,CACnD,IAAI,EACJ,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,MAAM,kDAAkD,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAzCD,kDAyCC"}
1
+ {"version":3,"file":"stage-confirm.handler.js","sourceRoot":"","sources":["../../../src/web/frame-handlers/stage-confirm.handler.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAKxC,mDAAkD;AAMlD,0DAAuF;AAEvF,MAAa,mBAAmB;IAI9B,YACmB,YAA0B,EAC1B,QAAwB,EACxB,eAAgC,EAChC,YAA2B;QAH3B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAgB;QACxB,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAe;QAPrC,eAAU,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC/B,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAO5D,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,KAAoB,EAAE,IAAyB;QAC1D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAiC,CAAC;QAE9F,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,mCAAmC,MAAM,WAAW,SAAS,WAAW,WAAW,IAAI,SAAS,GAAG,CACpG,CAAC;QAEF,kDAAkD;QAClD,MAAM,UAAU,GAAG,SAAS,MAAM,IAAI,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE;YACtD,IAAI,EAAE,SAAS;YACf,MAAM;YACN,SAAS;YACT,MAAM;YACN,OAAO;YACP,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,qBAAU,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CACxC,MAAM,EACN,qBAAU,CAAC,SAAS,EACpB,IAAI,CAAC,QAAQ,EACb,EAAE,YAAY,EAAE,SAAS,EAAE,CAC5B,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,0BAAY,CAAC,mBAAmB,EAAE;wBACvD,MAAM;wBACN,MAAM,EAAE,qBAAU,CAAC,SAAS;wBAC5B,cAAc,EAAE,qBAAU,CAAC,OAAO;qBACA,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,CACnD,IAAI,EACJ,SAAS,CACV,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,SAAS,MAAM,kDAAkD,CAClE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA3DD,kDA2DC"}
@@ -96,7 +96,7 @@ let ProjectController = class ProjectController {
96
96
  if (!project) {
97
97
  throw new common_1.NotFoundException(`Project '${key}' not found`);
98
98
  }
99
- const sanitized = (0, project_validation_1.validateProjectUpdate)(body);
99
+ const sanitized = (0, project_validation_1.validateMaintainerProjectUpdate)(body);
100
100
  this.projectRepo.update(key, sanitized);
101
101
  this.auditLogRepo.create({
102
102
  userId: req.user.sub,
@@ -1 +1 @@
1
- {"version":3,"file":"project.controller.js","sourceRoot":"","sources":["../../src/web/project.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.controller.js","sourceRoot":"","sources":["../../src/web/project.controller.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ import { TaskLifecycleService } from '../dispatcher/task-lifecycle.service';
6
6
  import { WorkerAuthService } from '../dispatcher/worker-auth.service';
7
7
  import { DedupService } from '../dispatcher/dedup.service';
8
8
  import { TaskLogBatcher } from '../dispatcher/task-log-batcher';
9
+ import { TaskRepository } from '../database/repositories/task.repository';
9
10
  import { ProjectMemberRepository } from '../database/repositories/project-member.repository';
11
+ import { RedisService } from '../redis/redis.service';
10
12
  import type { AuthenticatedRequest } from '../auth/authenticated-request';
11
13
  type CreateTaskBody = CreateTaskRequest & {
12
14
  targetBranch?: string;
@@ -20,12 +22,14 @@ export declare class TaskController {
20
22
  private readonly dedupService;
21
23
  private readonly projectMemberRepo;
22
24
  private readonly taskLogBatcher;
23
- constructor(dispatcher: DispatcherService, taskCreationService: TaskCreationService, taskLifecycleService: TaskLifecycleService, workerAuthService: WorkerAuthService, dedupService: DedupService, projectMemberRepo: ProjectMemberRepository, taskLogBatcher: TaskLogBatcher);
25
+ private readonly taskRepo;
26
+ private readonly redis;
27
+ constructor(dispatcher: DispatcherService, taskCreationService: TaskCreationService, taskLifecycleService: TaskLifecycleService, workerAuthService: WorkerAuthService, dedupService: DedupService, projectMemberRepo: ProjectMemberRepository, taskLogBatcher: TaskLogBatcher, taskRepo: TaskRepository, redis: RedisService);
24
28
  private assertTaskReadAccess;
25
29
  private assertTaskMutationAccess;
26
30
  private assertStageName;
27
31
  private withAgentType;
28
- listTasks(req: AuthenticatedRequest, limit?: string, cursor?: string, status?: string, projectKey?: string, developerId?: string): {
32
+ listTasks(req: AuthenticatedRequest, limit?: string, cursor?: string, status?: string, projectKey?: string, developerId?: string, taskMode?: string, sourceTaskId?: string): {
29
33
  data: (Task & {
30
34
  creatorName: string | null;
31
35
  workerName: string | null;
@@ -60,6 +64,7 @@ export declare class TaskController {
60
64
  branchSlug: string | null;
61
65
  fingerprint: string | null;
62
66
  status: TaskStatus;
67
+ taskMode: string;
63
68
  projectKey: string;
64
69
  workerId: string | null;
65
70
  developerId: number | null;
@@ -79,12 +84,15 @@ export declare class TaskController {
79
84
  sourceChatId: string | null;
80
85
  sourceAppId: string | null;
81
86
  sourceTaskId: number | null;
87
+ sourceCommitSha: string | null;
82
88
  createdBy: number | null;
83
89
  createdAt: string;
84
90
  assignedAt: string | null;
85
91
  startedAt: string | null;
86
92
  completedAt: string | null;
87
93
  updatedAt: string;
94
+ reviewReport: string | null;
95
+ reviewRound: number | null;
88
96
  creatorName: string | null;
89
97
  workerName: string | null;
90
98
  developerName: string | null;
@@ -110,6 +118,7 @@ export declare class TaskController {
110
118
  confirmStage(id: number, body: {
111
119
  stageName: string;
112
120
  approved: boolean;
121
+ feedback?: string;
113
122
  }, req: AuthenticatedRequest): Promise<{
114
123
  success: boolean;
115
124
  }>;
@@ -125,6 +134,111 @@ export declare class TaskController {
125
134
  }, req: AuthenticatedRequest): Promise<{
126
135
  success: boolean;
127
136
  }>;
137
+ createReview(id: number, body: {
138
+ agentTypes?: string[];
139
+ description?: string;
140
+ skipFix?: boolean;
141
+ }, req: AuthenticatedRequest): Promise<{
142
+ tasks: Task[];
143
+ }>;
144
+ getReviews(id: number, req: AuthenticatedRequest): Promise<{
145
+ sourceTask: Task;
146
+ reviewTasks: {
147
+ report: unknown;
148
+ round: number;
149
+ id: number;
150
+ description: string;
151
+ name: string | null;
152
+ taskType: string | null;
153
+ branchSlug: string | null;
154
+ fingerprint: string | null;
155
+ status: TaskStatus;
156
+ taskMode: string;
157
+ projectKey: string;
158
+ workerId: string | null;
159
+ developerId: number | null;
160
+ branch: string | null;
161
+ targetBranch: string | null;
162
+ mrUrl: string | null;
163
+ mrNumber: number | null;
164
+ currentStage: string | null;
165
+ currentSessionId: string | null;
166
+ errorMessage: string | null;
167
+ retryCount: number;
168
+ revision: number;
169
+ configSnapshot: string | null;
170
+ sourcePlatform: string | null;
171
+ sourceMsgId: string | null;
172
+ notificationMsgId: string | null;
173
+ sourceChatId: string | null;
174
+ sourceAppId: string | null;
175
+ sourceTaskId: number | null;
176
+ sourceCommitSha: string | null;
177
+ createdBy: number | null;
178
+ createdAt: string;
179
+ assignedAt: string | null;
180
+ startedAt: string | null;
181
+ completedAt: string | null;
182
+ updatedAt: string;
183
+ reviewReport: string | null;
184
+ reviewRound: number | null;
185
+ agentType: AgentType;
186
+ }[];
187
+ rounds: {
188
+ round: number;
189
+ reviewTasks: {
190
+ report: unknown;
191
+ round: number;
192
+ id: number;
193
+ description: string;
194
+ name: string | null;
195
+ taskType: string | null;
196
+ branchSlug: string | null;
197
+ fingerprint: string | null;
198
+ status: TaskStatus;
199
+ taskMode: string;
200
+ projectKey: string;
201
+ workerId: string | null;
202
+ developerId: number | null;
203
+ branch: string | null;
204
+ targetBranch: string | null;
205
+ mrUrl: string | null;
206
+ mrNumber: number | null;
207
+ currentStage: string | null;
208
+ currentSessionId: string | null;
209
+ errorMessage: string | null;
210
+ retryCount: number;
211
+ revision: number;
212
+ configSnapshot: string | null;
213
+ sourcePlatform: string | null;
214
+ sourceMsgId: string | null;
215
+ notificationMsgId: string | null;
216
+ sourceChatId: string | null;
217
+ sourceAppId: string | null;
218
+ sourceTaskId: number | null;
219
+ sourceCommitSha: string | null;
220
+ createdBy: number | null;
221
+ createdAt: string;
222
+ assignedAt: string | null;
223
+ startedAt: string | null;
224
+ completedAt: string | null;
225
+ updatedAt: string;
226
+ reviewReport: string | null;
227
+ reviewRound: number | null;
228
+ agentType: AgentType;
229
+ }[];
230
+ }[];
231
+ }>;
232
+ approveFix(id: number, body: {
233
+ reviewTaskId: number;
234
+ }, req: AuthenticatedRequest): Promise<{
235
+ success: boolean;
236
+ }>;
237
+ skipFix(id: number, body: {
238
+ round?: number;
239
+ }, req: AuthenticatedRequest): Promise<{
240
+ success: boolean;
241
+ }>;
128
242
  }
129
243
  export {};
130
244
  //# sourceMappingURL=task.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task.controller.d.ts","sourceRoot":"","sources":["../../src/web/task.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.controller.d.ts","sourceRoot":"","sources":["../../src/web/task.controller.ts"],"names":[],"mappings":"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"}