@overlordai/server 1.0.140 → 1.0.142
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.
- package/database/migrations/010-plan-review-mode.sql +11 -0
- package/database/migrations/012-schema-index-fixes.sql +72 -0
- package/dist/adapters/adapter.module.d.ts.map +1 -1
- package/dist/adapters/adapter.module.js +3 -0
- package/dist/adapters/adapter.module.js.map +1 -1
- package/dist/adapters/command-parser.utils.d.ts +11 -0
- package/dist/adapters/command-parser.utils.d.ts.map +1 -1
- package/dist/adapters/command-parser.utils.js +57 -0
- package/dist/adapters/command-parser.utils.js.map +1 -1
- package/dist/adapters/help-text.d.ts.map +1 -1
- package/dist/adapters/help-text.js +8 -6
- package/dist/adapters/help-text.js.map +1 -1
- package/dist/adapters/lark/lark-message.parser.d.ts +7 -7
- package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
- package/dist/adapters/lark/lark-message.parser.js +11 -7
- package/dist/adapters/lark/lark-message.parser.js.map +1 -1
- package/dist/adapters/lark/lark.adapter.d.ts +3 -1
- package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
- package/dist/adapters/lark/lark.adapter.js +28 -12
- package/dist/adapters/lark/lark.adapter.js.map +1 -1
- package/dist/adapters/nlu.service.d.ts +20 -0
- package/dist/adapters/nlu.service.d.ts.map +1 -0
- package/dist/adapters/nlu.service.js +231 -0
- package/dist/adapters/nlu.service.js.map +1 -0
- package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
- package/dist/adapters/slack/slack-message.parser.js +4 -0
- package/dist/adapters/slack/slack-message.parser.js.map +1 -1
- package/dist/adapters/slack/slack.adapter.d.ts +3 -1
- package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
- package/dist/adapters/slack/slack.adapter.js +43 -14
- package/dist/adapters/slack/slack.adapter.js.map +1 -1
- package/dist/adapters/slack/slack.controller.js +8 -8
- package/dist/adapters/slack/slack.controller.js.map +1 -1
- package/dist/common/project-validation.d.ts +13 -3
- package/dist/common/project-validation.d.ts.map +1 -1
- package/dist/common/project-validation.js +21 -5
- package/dist/common/project-validation.js.map +1 -1
- package/dist/database/migration-runner.d.ts.map +1 -1
- package/dist/database/migration-runner.js +10 -1
- package/dist/database/migration-runner.js.map +1 -1
- package/dist/database/repositories/project.repository.d.ts +2 -0
- package/dist/database/repositories/project.repository.d.ts.map +1 -1
- package/dist/database/repositories/project.repository.js +13 -0
- package/dist/database/repositories/project.repository.js.map +1 -1
- package/dist/database/repositories/task.repository.d.ts +11 -2
- package/dist/database/repositories/task.repository.d.ts.map +1 -1
- package/dist/database/repositories/task.repository.js +64 -8
- package/dist/database/repositories/task.repository.js.map +1 -1
- package/dist/dispatcher/dispatcher.service.d.ts +2 -0
- package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.service.js +79 -0
- package/dist/dispatcher/dispatcher.service.js.map +1 -1
- package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.js +3 -0
- package/dist/dispatcher/scheduler.service.js.map +1 -1
- package/dist/dispatcher/task-creation.service.d.ts +13 -2
- package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
- package/dist/dispatcher/task-creation.service.js +207 -21
- package/dist/dispatcher/task-creation.service.js.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts +5 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.js +231 -1
- package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
- package/dist/events/event-types.d.ts +8 -0
- package/dist/events/event-types.d.ts.map +1 -1
- package/dist/events/event-types.js +1 -0
- package/dist/events/event-types.js.map +1 -1
- package/dist/notifier/notification-consumer.d.ts.map +1 -1
- package/dist/notifier/notification-consumer.js +5 -0
- package/dist/notifier/notification-consumer.js.map +1 -1
- package/dist/notifier/notification-event-listener.d.ts +2 -1
- package/dist/notifier/notification-event-listener.d.ts.map +1 -1
- package/dist/notifier/notification-event-listener.js +14 -0
- package/dist/notifier/notification-event-listener.js.map +1 -1
- package/dist/notifier/notifier.service.d.ts +1 -0
- package/dist/notifier/notifier.service.d.ts.map +1 -1
- package/dist/notifier/notifier.service.js +8 -0
- package/dist/notifier/notifier.service.js.map +1 -1
- package/dist/notifier/template.service.d.ts +4 -0
- package/dist/notifier/template.service.d.ts.map +1 -1
- package/dist/notifier/template.service.js +32 -0
- package/dist/notifier/template.service.js.map +1 -1
- package/dist/web/admin/admin-project.controller.d.ts.map +1 -1
- package/dist/web/admin/admin-project.controller.js +15 -0
- package/dist/web/admin/admin-project.controller.js.map +1 -1
- package/dist/web/dashboard.service.js +3 -3
- package/dist/web/frame-handlers/index.d.ts +1 -0
- package/dist/web/frame-handlers/index.d.ts.map +1 -1
- package/dist/web/frame-handlers/index.js +3 -1
- package/dist/web/frame-handlers/index.js.map +1 -1
- package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/progress.handler.js +18 -0
- package/dist/web/frame-handlers/progress.handler.js.map +1 -1
- package/dist/web/frame-handlers/review-report.handler.d.ts +15 -0
- package/dist/web/frame-handlers/review-report.handler.d.ts.map +1 -0
- package/dist/web/frame-handlers/review-report.handler.js +140 -0
- package/dist/web/frame-handlers/review-report.handler.js.map +1 -0
- package/dist/web/frame-handlers/stage-confirm.handler.d.ts +3 -1
- package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/stage-confirm.handler.js +18 -4
- package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
- package/dist/web/project.controller.js +1 -1
- package/dist/web/project.controller.js.map +1 -1
- package/dist/web/task.controller.d.ts +116 -2
- package/dist/web/task.controller.d.ts.map +1 -1
- package/dist/web/task.controller.js +172 -8
- package/dist/web/task.controller.js.map +1 -1
- package/dist/web/web-event.service.d.ts +2 -1
- package/dist/web/web-event.service.d.ts.map +1 -1
- package/dist/web/web-event.service.js +13 -0
- package/dist/web/web-event.service.js.map +1 -1
- package/dist/web/worker-channel.gateway.d.ts +2 -1
- package/dist/web/worker-channel.gateway.d.ts.map +1 -1
- package/dist/web/worker-channel.gateway.js +6 -3
- package/dist/web/worker-channel.gateway.js.map +1 -1
- package/package.json +4 -4
- package/public/assets/AccessTokensPage-DsNgVUdv.js +1 -0
- package/public/assets/AdminPage-NZC6yOHW.js +1 -0
- package/public/assets/{AgentCliPage-CyYjrwq2.js → AgentCliPage-Bp8tQiWl.js} +1 -1
- package/public/assets/{ApiReferencePage-Bclq5KsN.js → ApiReferencePage-DXNSPdww.js} +1 -1
- package/public/assets/{ArchitecturePage-BDytxAWu.js → ArchitecturePage-DFUNHKTN.js} +1 -1
- package/public/assets/AuditLogPage-Wtpr8CDi.js +1 -0
- package/public/assets/{BindPlatformPage-BWFCXp_B.js → BindPlatformPage-Bp_NG22g.js} +1 -1
- package/public/assets/{BotIntegrationPage-BE63GDU0.js → BotIntegrationPage-DuH_f_mp.js} +1 -1
- package/public/assets/{BotManage-B4jE07jf.js → BotManage-CJ5GZ0HR.js} +2 -2
- package/public/assets/{BotSetupPage-CFZ4rCsj.js → BotSetupPage-Ct_gjzJt.js} +1 -1
- package/public/assets/{ChangelogPage-Dq4Vbaek.js → ChangelogPage-DrpgpyjK.js} +1 -1
- package/public/assets/CliReferencePage-BiUl0LtI.js +17 -0
- package/public/assets/ConfirmStageDialog-BsoAtSes.js +12 -0
- package/public/assets/{DeploymentPage-Cl6zirj-.js → DeploymentPage-DtlH8d7p.js} +1 -1
- package/public/assets/{DevWorkflowPage-Le7igjcE.js → DevWorkflowPage-BoZm03L7.js} +1 -1
- package/public/assets/{DeveloperManage-CEia9VDa.js → DeveloperManage-hoNX7J5P.js} +2 -2
- package/public/assets/{DeveloperSetupPage-CYbrSjhy.js → DeveloperSetupPage-D3FDp-R7.js} +1 -1
- package/public/assets/{DocsIndexPage-Ds7FZGYL.js → DocsIndexPage-ZBDBTreg.js} +2 -2
- package/public/assets/DocsLayout-CX3AKUlL.js +1 -0
- package/public/assets/{DocsPrimitives-BeRfTNWi.js → DocsPrimitives-B3qhkVFu.js} +1 -1
- package/public/assets/EditProjectPage-DKaSpnod.js +2 -0
- package/public/assets/{EmptyState-BrTEmjub.js → EmptyState-BKUHLcAb.js} +1 -1
- package/public/assets/{EnvVariablesPage-Cco0LY2i.js → EnvVariablesPage-C2nu-wxe.js} +1 -1
- package/public/assets/{HomePage-DkFq_Niq.js → HomePage-CQ0Upd0D.js} +1 -1
- package/public/assets/{InfoRow-VesvmVYO.js → InfoRow-CBKDMEtd.js} +1 -1
- package/public/assets/{InstallationPage-Cd7Eh_1x.js → InstallationPage-0TO7IQzJ.js} +1 -1
- package/public/assets/{LandingPage-Cxp2IXav.js → LandingPage-YcgE-OTL.js} +7 -12
- package/public/assets/{LocalDevelopmentPage-BC2x9o_F.js → LocalDevelopmentPage-BDpTHWAo.js} +1 -1
- package/public/assets/{LoginPage-fgYsLW4-.js → LoginPage-F34Kt4ot.js} +1 -1
- package/public/assets/{MetricBar-CFHaSbdz.js → MetricBar-xV1juDz6.js} +1 -1
- package/public/assets/{NotFoundPage-BxtgZYrG.js → NotFoundPage-DPZDwk1M.js} +1 -1
- package/public/assets/{OnboardingGuide-BqdyHxJS.js → OnboardingGuide-C8QTC3cZ.js} +1 -1
- package/public/assets/{PermissionsPage-BP5SsoMl.js → PermissionsPage-DsNmsUoe.js} +1 -1
- package/public/assets/{PipelineConfigPage-B8NayzNO.js → PipelineConfigPage-D5gx3bIv.js} +2 -2
- package/public/assets/PipelineEditorPage-18u7wxjE.js +3 -0
- package/public/assets/PlanPage-Dds_7koM.js +1 -0
- package/public/assets/ProfilePage-D3YRdW9C.js +1 -0
- package/public/assets/{ProjectDetailPage-CGhCxrKQ.js → ProjectDetailPage-1mftEUqP.js} +3 -3
- package/public/assets/{ProjectListPage-2b4E2H36.js → ProjectListPage-D62NmkBp.js} +2 -2
- package/public/assets/PtyTerminal-B3lRN-u1.js +38 -0
- package/public/assets/QuickAuth-DzYrNwL-.js +1 -0
- package/public/assets/{RemoveMemberConfirmDialog-CblKQmK2.js → RemoveMemberConfirmDialog-svHE4uU4.js} +1 -1
- package/public/assets/ReviewAggregatePage-Dq3hl9db.js +11 -0
- package/public/assets/ReviewPage-CNeCz2eT.js +1 -0
- package/public/assets/Select-BMBYwPr-.js +1 -0
- package/public/assets/{SettingsPage-CcTEwK5L.js → SettingsPage-Ml3L-j5R.js} +1 -1
- package/public/assets/{Skeleton-CJVHi16l.js → Skeleton-9LGrFcdv.js} +1 -1
- package/public/assets/{SkillPage-Dl6hXkHy.js → SkillPage-BGYJMqPr.js} +1 -1
- package/public/assets/TaskDetailPage-Beto_Zqp.js +21 -0
- package/public/assets/TaskGuidePage-CKnugDRu.js +19 -0
- package/public/assets/TaskListPage-CFri9wCk.js +1 -0
- package/public/assets/{TaskStatusBadge-BdDVC3F4.js → TaskStatusBadge-B_S_xjEI.js} +1 -1
- package/public/assets/TerminalHomePage-CDr4Mq6o.js +6 -0
- package/public/assets/TokenManage-BqOEJDHV.js +1 -0
- package/public/assets/{Tooltip-BSeP698b.js → Tooltip-BFj-n88a.js} +1 -1
- package/public/assets/{TotpSetupPage-DkTKw-87.js → TotpSetupPage-CI411-Y7.js} +1 -1
- package/public/assets/{WorkerDetailPage-C3xgOzQ5.js → WorkerDetailPage-DcMycoTh.js} +1 -1
- package/public/assets/{WorkerListPage-SzomA2Jg.js → WorkerListPage-nPKvREXn.js} +2 -2
- package/public/assets/{WorkerOperationsPage-Dm1PdRDK.js → WorkerOperationsPage-qgdLSK1X.js} +1 -1
- package/public/assets/WorkerSetupGuidePage-DHbju_7j.js +1 -0
- package/public/assets/{WorkerSetupPage-DOjZMVtt.js → WorkerSetupPage-D0Cob5nl.js} +1 -1
- package/public/assets/{agent-type-options-SYUwiixD.js → agent-type-options-CdJpMswW.js} +1 -1
- package/public/assets/{arrow-left-B16h49gW.js → arrow-left-BOJ_pZwC.js} +1 -1
- package/public/assets/{arrow-right-DxSODyV0.js → arrow-right-GWPYDcKr.js} +1 -1
- package/public/assets/{bot-DvI1Z_Mw.js → bot-DZ_48uoa.js} +1 -1
- package/public/assets/chevron-down-DiFQzkq3.js +6 -0
- package/public/assets/{chevron-left-CH1J8GB-.js → chevron-left-PB0m_3-R.js} +1 -1
- package/public/assets/{chevron-right-CdPoqMfX.js → chevron-right-Bsbm1nYp.js} +1 -1
- package/public/assets/chevron-up-CvYNL872.js +6 -0
- package/public/assets/{copy-DNIFSymA.js → copy-DR5cQtVj.js} +1 -1
- package/public/assets/{download-DLYSP8rX.js → download-FpaVrNQK.js} +1 -1
- package/public/assets/{external-link-DrZcaziN.js → external-link-CiQhHCsl.js} +1 -1
- package/public/assets/{file-text-224YYyRN.js → file-text-Gk2VyRBd.js} +1 -1
- package/public/assets/{git-fork-CsNrC-5K.js → git-fork-CLaKXs0Y.js} +1 -1
- package/public/assets/index-CfvO5R0v.js +252 -0
- package/public/assets/index-kJfGgL_V.css +1 -0
- package/public/assets/{key-ChevPWu9.js → key-b2-JaSCL.js} +1 -1
- package/public/assets/{loader-circle-_p8GERRD.js → loader-circle-_Xw40aLD.js} +1 -1
- package/public/assets/{pencil-BjrOvZ4y.js → pencil-z5Zqj0qg.js} +1 -1
- package/public/assets/play-D2z1wzeo.js +6 -0
- package/public/assets/{plus-DtE-5ICU.js → plus-DDEIETPT.js} +1 -1
- package/public/assets/{rotate-ccw-DTMgDeUz.js → rotate-ccw-DryDtPrl.js} +1 -1
- package/public/assets/{scroll-text-DLDVcM9k.js → scroll-text-DdAPH940.js} +1 -1
- package/public/assets/{settings-BWLb7GMU.js → settings-DLSb7OkM.js} +1 -1
- package/public/assets/skip-forward-Dshgkb5J.js +6 -0
- package/public/assets/status-colors-w6Ie5LWO.js +1 -0
- package/public/assets/task-constants-DpDhF7YW.js +1 -0
- package/public/assets/task.store-QLdgw-z_.js +1 -0
- package/public/assets/{trash-2-DGYLJbuV.js → trash-2-DN1oshyp.js} +1 -1
- package/public/assets/{useFetch-BHc-EDVT.js → useFetch-DpOLDSFc.js} +1 -1
- package/public/assets/{users-CXqH9m6n.js → users-DrLwCx8Z.js} +1 -1
- package/public/assets/{wifi-CknEzeaW.js → wifi-B4XgJ6JW.js} +1 -1
- package/public/assets/{workflow-BHEQEN9B.js → workflow-Cd6zqDgi.js} +1 -1
- package/public/index.html +2 -2
- package/public/sw.js +1 -1
- package/public/assets/AccessTokensPage-D1CyjkMd.js +0 -1
- package/public/assets/AdminPage-BfGgzqGY.js +0 -1
- package/public/assets/AuditLogPage-BtlSABTt.js +0 -1
- package/public/assets/CliReferencePage-fyRcKPES.js +0 -16
- package/public/assets/DocsLayout-Bc08wdi2.js +0 -1
- package/public/assets/EditProjectPage-UQcHFFv0.js +0 -2
- package/public/assets/MobileTerminalShell-DvdSW-sx.js +0 -49
- package/public/assets/PipelineEditorPage-BLRXg7uE.js +0 -3
- package/public/assets/ProfilePage-BY4_Kq2m.js +0 -1
- package/public/assets/QuickAuth-DODaMzBE.js +0 -1
- package/public/assets/Select-CatoaxSD.js +0 -6
- package/public/assets/TaskDetailPage-BF-G4onm.js +0 -26
- package/public/assets/TaskListPage-DKtvYTqk.js +0 -1
- package/public/assets/TerminalHomePage-CR-OzAME.js +0 -11
- package/public/assets/TokenManage-DGWTDHT0.js +0 -1
- package/public/assets/WorkerSetupGuidePage-BDxh9qGL.js +0 -6
- package/public/assets/index-BUjb3VF-.css +0 -1
- package/public/assets/index-BnZa648g.js +0 -242
- package/public/assets/status-colors-CJELOkpG.js +0 -1
- package/public/assets/task-constants-DVi4wVyB.js +0 -1
- /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;
|
|
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
|
-
//
|
|
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;
|
|
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.
|
|
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":";;;;;;;;;;;;;;;AAAA,2CAewB;AACxB,mDAAkE;AAClE,kEAA6D;AAC7D,iEAAuD;AACvD,0EAAqE;AACrE,wFAA0E;AAC1E,oFAAgF;AAChF,kGAA6F;AAC7F,wFAAoF;AACpF,8EAA0E;AAC1E,wFAAmF;AACnF,6DAAyD;AACzD,mDAAiD;AACjD,
|
|
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
|
-
|
|
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":"AAcA,OAAO,KAAK,EAEV,iBAAiB,EACjB,eAAe,EAEf,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,IAAI,EAAE,UAAU,EAA8B,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAI1E,KAAK,cAAc,GAAG,iBAAiB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpE,KAAK,YAAY,GAAG,eAAe,CAAC;AAKpC,qBAEa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"task.controller.d.ts","sourceRoot":"","sources":["../../src/web/task.controller.ts"],"names":[],"mappings":"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"}
|