UNPKG

taskflow-ai

Version:

TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具

225 lines (224 loc) 5.67 kB
/** * 增强的任务管理系统 * 支持完整的任务生命周期管理、协作功能和通知机制 */ import { EventEmitter } from 'events'; import { Task, TaskPlan, TaskStatus, TaskPriority, TaskType } from '../../types/task'; import { Logger } from '../../infra/logger'; import { ConfigManager } from '../../infra/config'; /** * 任务事件类型 */ export declare enum TaskEventType { TASK_CREATED = "task_created", TASK_UPDATED = "task_updated", TASK_DELETED = "task_deleted", TASK_STATUS_CHANGED = "task_status_changed", TASK_ASSIGNED = "task_assigned", TASK_COMPLETED = "task_completed", TASK_BLOCKED = "task_blocked", PLAN_UPDATED = "plan_updated" } /** * 任务事件接口 */ export interface TaskEvent { type: TaskEventType; taskId: string; userId?: string; timestamp: Date; data: Task | Record<string, unknown>; metadata?: Record<string, unknown>; } /** * 任务过滤器 */ export interface TaskFilter { status?: TaskStatus | TaskStatus[]; type?: TaskType | TaskType[]; priority?: TaskPriority | TaskPriority[]; assignee?: string | string[]; tags?: string | string[]; createdAfter?: Date; createdBefore?: Date; dueAfter?: Date; dueBefore?: Date; hasNotes?: boolean; hasDependencies?: boolean; } /** * 任务排序选项 */ export interface TaskSortOptions { field: 'createdAt' | 'updatedAt' | 'dueDate' | 'priority' | 'estimatedHours' | 'progress'; direction: 'asc' | 'desc'; } /** * 任务统计信息 */ export interface TaskStatistics { total: number; byStatus: Record<TaskStatus, number>; byType: Record<TaskType, number>; byPriority: Record<TaskPriority, number>; byAssignee: Record<string, number>; averageCompletionTime: number; totalEstimatedHours: number; totalActualHours: number; completionRate: number; overdueCount: number; blockedCount: number; } /** * 任务依赖分析结果 */ export interface DependencyAnalysis { circularDependencies: string[][]; criticalPath: string[]; bottlenecks: string[]; parallelGroups: string[][]; dependencyDepth: Record<string, number>; } /** * 增强的任务管理器类 */ export declare class EnhancedTaskManager extends EventEmitter { private taskPlan; private taskFilePath; private logger; private configManager; private autoSaveInterval; private taskHistory; private collaborators; constructor(logger: Logger, configManager: ConfigManager); /** * 设置任务计划 * @param taskPlan 任务计划 */ setTaskPlan(taskPlan: TaskPlan): void; /** * 获取任务计划 */ getTaskPlan(): TaskPlan | null; /** * 创建新任务 * @param taskData 任务数据 * @param userId 用户ID */ createTask(taskData: Partial<Task>, userId?: string): Task; /** * 更新任务 * @param taskId 任务ID * @param updates 更新数据 * @param userId 用户ID */ updateTask(taskId: string, updates: Partial<Task>, userId?: string): Task | null; /** * 删除任务 * @param taskId 任务ID * @param userId 用户ID */ deleteTask(taskId: string, userId?: string): boolean; /** * 获取任务 * @param taskId 任务ID */ getTask(taskId: string): Task | null; /** * 获取所有任务 */ getAllTasks(): Task[]; /** * 过滤任务 * @param filter 过滤条件 * @param sort 排序选项 */ filterTasks(filter: TaskFilter, sort?: TaskSortOptions): Task[]; /** * 获取推荐的下一个任务 * @param assignee 负责人(可选) * @param maxCount 最大返回数量 */ getNextTasks(assignee?: string, maxCount?: number): Task[]; /** * 获取任务统计信息 */ getStatistics(): TaskStatistics; /** * 分析任务依赖关系 */ analyzeDependencies(): DependencyAnalysis; /** * 处理状态变更 * @param task 任务 * @param oldStatus 旧状态 * @param newStatus 新状态 * @param userId 用户ID */ private handleStatusChange; /** * 处理分配变更 * @param task 任务 * @param oldAssignee 旧负责人 * @param newAssignee 新负责人 * @param userId 用户ID */ private handleAssignmentChange; /** * 记录事件 * @param event 事件 */ private recordEvent; /** * 生成任务ID */ private generateTaskId; /** * 启动自动保存 * @param interval 保存间隔(毫秒) */ private startAutoSave; /** * 保存任务计划 * @param filePath 文件路径(可选) */ saveTaskPlan(filePath?: string): Promise<void>; /** * 加载任务计划 * @param filePath 文件路径(可选) */ loadTaskPlan(filePath?: string): Promise<TaskPlan>; /** * 获取空统计信息 */ private getEmptyStatistics; /** * 检测循环依赖 * @param tasks 任务列表 */ private detectCircularDependencies; /** * 计算关键路径 * @param tasks 任务列表 */ private calculateCriticalPath; /** * 识别瓶颈任务 * @param tasks 任务列表 */ private identifyBottlenecks; /** * 识别并行任务组 * @param tasks 任务列表 */ private identifyParallelGroups; /** * 计算依赖深度 * @param tasks 任务列表 */ private calculateDependencyDepth; /** * 销毁管理器 */ destroy(): void; }