import { AgentService } from "@mcoda/agents"; import { DocdexClient, VcsClient } from "@mcoda/integrations"; import { GlobalRepository, WorkspaceRepository } from "@mcoda/db"; import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js"; import { JobService } from "../jobs/JobService.js"; import { TaskSelectionFilters, TaskSelectionService } from "../execution/TaskSelectionService.js"; import { TaskStateService } from "../execution/TaskStateService.js"; import { RoutingService } from "../agents/RoutingService.js"; import { AgentRatingService } from "../agents/AgentRatingService.js"; export interface CodeReviewRequest extends TaskSelectionFilters { workspace: WorkspaceResolution; baseRef?: string; dryRun?: boolean; agentName?: string; agentStream?: boolean; rateAgents?: boolean; createFollowupTasks?: boolean; executionContextPolicy?: "best_effort" | "require_any" | "require_sds_or_openapi"; emptyDiffApprovalPolicy?: "ready_to_qa" | "complete"; resumeJobId?: string; abortSignal?: AbortSignal; } export interface ReviewFinding { type?: string; severity?: string; file?: string; line?: number; message: string; suggestedFix?: string; } export interface ReviewAgentResult { decision: "approve" | "changes_requested" | "block" | "info_only"; summary?: string; findings: ReviewFinding[]; testRecommendations?: string[]; resolvedSlugs?: string[]; unresolvedSlugs?: string[]; raw?: string; } export interface TaskReviewResult { taskId: string; taskKey: string; statusBefore: string; statusAfter?: string; decision?: ReviewAgentResult["decision"]; findings: ReviewFinding[]; error?: string; followupTasks?: { taskId: string; taskKey: string; epicId: string; userStoryId: string; generic?: boolean; }[]; } export interface CodeReviewResult { jobId: string; commandRunId: string; tasks: TaskReviewResult[]; warnings: string[]; } export declare class CodeReviewService { private workspace; private deps; private selectionService; private stateService; private vcs; private taskLogSeq; private routingService; private ratingService?; constructor(workspace: WorkspaceResolution, deps: { agentService: AgentService; docdex: DocdexClient; jobService: JobService; workspaceRepo: WorkspaceRepository; selectionService?: TaskSelectionService; stateService?: TaskStateService; repo: GlobalRepository; vcsClient?: VcsClient; routingService: RoutingService; ratingService?: AgentRatingService; }); static create(workspace: WorkspaceResolution): Promise; close(): Promise; setDocdexAvailability(available: boolean, reason?: string): void; private readPromptFiles; private ensureMcoda; private loadPrompts; private loadRunbookAndChecklists; private resolveAgent; private ensureRatingService; private resolveTaskComplexity; private enforceExecutionContextPolicy; private resolveExecutionPlanningContext; private selectTasksViaApi; private persistState; private loadState; private writeCheckpoint; private componentHintsFromPaths; private gatherDocContext; private buildReviewPrompt; private buildHistorySummary; private loadCommentContext; private commentSlugKey; private buildCommentSlugIndex; private resolveFindingSlug; private applyCommentResolutions; private extractPathsFromDiff; private readOpenApiFileIfExists; private resolveOpenApiContent; private buildOpenApiSlice; private buildDiff; private writeReviewSummaryComment; private persistContext; private persistDiff; private persistReviewOutput; private severityToPriority; private severityToStoryPoints; private shouldCreateFollowupTask; private buildFollowupTitle; private buildFollowupDescription; private ensureGenericContainers; private createFollowupTasksForFindings; reviewTasks(request: CodeReviewRequest): Promise; private sequenceForTask; } //# sourceMappingURL=CodeReviewService.d.ts.map