vibe-coder-mcp
Version:
Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.
161 lines • 6.52 kB
TypeScript
import { AtomicTask } from '../types/task.js';
export interface Epic {
id: string;
title: string;
createdAt: Date;
completedAt?: Date;
}
export interface Project {
id: string;
name: string;
createdAt: Date;
completedAt?: Date;
}
export type ProgressMethod = 'task_count' | 'estimated_hours' | 'weighted' | 'complexity';
export interface TaskProgress {
taskId: string;
status: string;
progressPercentage: number;
startedAt?: Date;
completedAt?: Date;
estimatedHours?: number;
actualHours?: number;
blockers: string[];
lastUpdated: Date;
}
export interface EpicProgress {
epicId: string;
title: string;
totalTasks: number;
completedTasks: number;
inProgressTasks: number;
blockedTasks: number;
progressPercentage: number;
estimatedHours: number;
actualHours: number;
remainingHours: number;
estimatedCompletionDate?: Date;
startedAt?: Date;
completedAt?: Date;
tasks: TaskProgress[];
lastUpdated: Date;
}
export interface ProjectProgress {
projectId: string;
projectName: string;
totalEpics: number;
completedEpics: number;
inProgressEpics: number;
totalTasks: number;
completedTasks: number;
inProgressTasks: number;
blockedTasks: number;
progressPercentage: number;
estimatedHours: number;
actualHours: number;
remainingHours: number;
estimatedCompletionDate?: Date;
startedAt?: Date;
completedAt?: Date;
epics: EpicProgress[];
lastUpdated: Date;
}
export interface ProgressConfig {
method: ProgressMethod;
updateIntervalMinutes: number;
enableRealTimeUpdates: boolean;
enableCompletionEstimation: boolean;
enableDependencyTracking: boolean;
enableCriticalPathMonitoring: boolean;
enableScheduleDeviationAlerts: boolean;
complexityWeights: Record<string, number>;
statusWeights: Record<string, number>;
deviationThresholdPercentage: number;
criticalPathUpdateInterval: number;
}
export type ProgressEvent = 'task_started' | 'task_progress_updated' | 'task_completed' | 'task_blocked' | 'task_failed' | 'task_dependency_resolved' | 'task_dependency_blocked' | 'epic_progress_updated' | 'epic_completed' | 'project_progress_updated' | 'project_completed' | 'milestone_reached' | 'critical_path_updated' | 'schedule_deviation_detected' | 'decomposition_started' | 'decomposition_progress' | 'decomposition_completed' | 'validation_started' | 'validation_completed' | 'research_triggered' | 'research_completed' | 'context_gathering_started' | 'context_gathering_completed' | 'dependency_detection_started' | 'dependency_detection_completed';
export interface ProgressEventData {
event: ProgressEvent;
projectId?: string;
epicId?: string;
taskId?: string;
progressPercentage?: number;
estimatedCompletion?: Date;
timestamp: Date;
metadata?: Record<string, unknown>;
dependencyId?: string;
deviationPercentage?: number;
actualHours?: number;
estimatedHours?: number;
status?: string;
criticalPathTasks?: Array<{
id: string;
title: string;
estimatedHours: number;
status: string;
}>;
componentName?: string;
stepName?: string;
currentStep?: number;
totalSteps?: number;
message?: string;
decompositionProgress?: {
phase: 'research' | 'context_gathering' | 'decomposition' | 'validation' | 'dependency_detection';
progress: number;
message: string;
};
}
export declare class ProgressTracker {
private static instance;
private config;
private progressCache;
private updateTimer?;
private eventListeners;
private constructor();
static getInstance(config?: Partial<ProgressConfig>): ProgressTracker;
calculateProjectProgress(projectId: string): Promise<ProjectProgress>;
calculateEpicProgress(epicId: string): Promise<EpicProgress>;
calculateTaskProgress(task: AtomicTask): TaskProgress;
updateTaskStatus(taskId: string, newStatus: string, progressPercentage?: number, actualHours?: number, dependencyUpdates?: {
resolvedDependencies?: string[];
blockedDependencies?: string[];
}): Promise<void>;
updateTaskProgress(taskId: string, progressPercentage: number, actualHours?: number): Promise<void>;
getCachedProjectProgress(projectId: string): ProjectProgress | null;
clearCache(projectId?: string): void;
addEventListener(event: ProgressEvent, listener: (data: ProgressEventData) => void): void;
removeEventListener(event: ProgressEvent, listener: (data: ProgressEventData) => void): void;
private calculateProgressPercentage;
private estimateCompletionDate;
private startProgressUpdates;
private updateAllCachedProgress;
emitProgressEvent(event: ProgressEvent, data: Partial<ProgressEventData>): void;
private handleDependencyUpdates;
private checkScheduleDeviation;
monitorCriticalPath(projectId: string, tasks: AtomicTask[]): Promise<void>;
getTaskStatusSummary(projectId: string): Promise<{
total: number;
pending: number;
inProgress: number;
completed: number;
blocked: number;
failed: number;
progressPercentage: number;
}>;
trackDecompositionProgress(taskId: string, projectId: string, onProgress?: (progress: ProgressEventData) => void): Promise<void>;
trackValidationProgress(taskIds: string[], projectId: string, onProgress?: (progress: ProgressEventData) => void): Promise<void>;
trackResearchProgress(taskId: string, projectId: string, researchQueries: string[], onProgress?: (progress: ProgressEventData) => void): Promise<void>;
trackContextProgress(taskId: string, projectId: string, filesAnalyzed: number, totalFiles: number, onProgress?: (progress: ProgressEventData) => void): Promise<void>;
trackDependencyDetectionProgress(taskIds: string[], projectId: string, dependenciesDetected: number, onProgress?: (progress: ProgressEventData) => void): Promise<void>;
completeDependencyDetectionProgress(projectId: string, finalDependencyCount: number, appliedDependencies: number): Promise<void>;
getComponentProgress(_componentName: string, _projectId?: string): Promise<{
isActive: boolean;
currentStep?: number;
totalSteps?: number;
progressPercentage: number;
message?: string;
lastUpdate: Date;
}>;
destroy(): void;
}
//# sourceMappingURL=progress-tracker.d.ts.map