UNPKG

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
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