taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
225 lines (224 loc) • 5.67 kB
TypeScript
/**
* 增强的任务管理系统
* 支持完整的任务生命周期管理、协作功能和通知机制
*/
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;
}