import { WorkspaceRepository } from "@mcoda/db"; import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js"; import { JobService } from "../jobs/JobService.js"; export interface TaskSufficiencyPlannedGapBundle { kind: "section" | "folder" | "mixed"; domain: string; values: string[]; anchors: string[]; implementationTargets: string[]; } export interface TaskSufficiencyUnresolvedBundle { kind: "section" | "folder" | "mixed"; domain: string; values: string[]; anchors: string[]; } export interface TaskSufficiencyAuditRequest { workspace: WorkspaceResolution; projectKey: string; dryRun?: boolean; maxIterations?: number; maxTasksPerIteration?: number; minCoverageRatio?: number; sourceCommand?: string; } export interface TaskSufficiencyAuditIteration { iteration: number; coverageRatio: number; totalSignals: number; missingSectionCount: number; missingFolderCount: number; unresolvedBundleCount: number; createdTaskKeys: string[]; } export interface TaskSufficiencyAuditResult { jobId: string; commandRunId: string; projectKey: string; sourceCommand?: string; satisfied: boolean; dryRun: boolean; totalTasksAdded: number; totalTasksUpdated: number; maxIterations: number; minCoverageRatio: number; finalTotalSignals: number; finalCoverageRatio: number; remainingSectionHeadings: string[]; remainingFolderEntries: string[]; remainingGaps: { sections: number; folders: number; total: number; }; plannedGapBundles: TaskSufficiencyPlannedGapBundle[]; unresolvedBundles: TaskSufficiencyUnresolvedBundle[]; iterations: TaskSufficiencyAuditIteration[]; reportPath: string; reportHistoryPath?: string; warnings: string[]; } type TaskSufficiencyDeps = { workspaceRepo: WorkspaceRepository; jobService: JobService; }; export declare class TaskSufficiencyService { private readonly workspaceRepo; private readonly jobService; private readonly ownsWorkspaceRepo; private readonly ownsJobService; private readonly workspace; constructor(workspace: WorkspaceResolution, deps: TaskSufficiencyDeps, ownership?: { ownsWorkspaceRepo?: boolean; ownsJobService?: boolean; }); static create(workspace: WorkspaceResolution): Promise; close(): Promise; private discoverSdsPaths; private walkSdsCandidates; private loadSdsSources; private loadProjectSnapshot; private evaluateCoverage; private buildGapItems; private bundleGapItems; private ensureTargetStory; private insertGapTasks; private writeReportArtifacts; runAudit(request: TaskSufficiencyAuditRequest): Promise; } export {}; //# sourceMappingURL=TaskSufficiencyService.d.ts.map