UNPKG

taskflow-ai

Version:

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

157 lines (156 loc) 3.26 kB
/** * TaskFlow AI 任务管理器 * 提供任务状态管理、进度跟踪和依赖关系管理功能 */ import { EventEmitter } from 'events'; /** * 任务状态枚举 */ export declare enum TaskStatus { PENDING = "pending", IN_PROGRESS = "in_progress", COMPLETED = "completed", BLOCKED = "blocked", CANCELLED = "cancelled" } /** * 任务优先级 */ export declare enum TaskPriority { LOW = "low", MEDIUM = "medium", HIGH = "high", CRITICAL = "critical" } /** * 任务定义 */ export interface Task { id: string; title: string; description: string; status: TaskStatus; priority: TaskPriority; assignee?: string; estimatedHours: number; actualHours?: number; progress: number; dependencies: string[]; tags: string[]; createdAt: Date; updatedAt: Date; startedAt?: Date; completedAt?: Date; dueDate?: Date; metadata: Record<string, unknown>; } /** * 任务统计信息 */ export interface TaskStats { total: number; pending: number; in_progress: number; completed: number; blocked: number; cancelled: number; overallProgress: number; estimatedTotalHours: number; actualTotalHours: number; } /** * 任务更新选项 */ export interface TaskUpdateOptions { progress?: number; notes?: string; actualHours?: number; assignee?: string; dueDate?: Date; metadata?: Record<string, unknown>; } /** * 任务管理器类 */ export declare class TaskManager extends EventEmitter { private tasks; private logger; private dataFile; private autoSaveInterval; constructor(dataDir?: string); /** * 初始化数据文件 */ private initializeDataFile; /** * 加载任务数据 */ private loadTasks; /** * 保存任务数据 */ private saveTasks; /** * 启动自动保存 */ private startAutoSave; /** * 停止自动保存 */ stopAutoSave(): void; /** * 创建新任务 */ createTask(taskData: Omit<Task, 'id' | 'createdAt' | 'updatedAt' | 'progress'>): Task; /** * 获取任务 */ getTask(taskId: string): Task | undefined; /** * 获取所有任务 */ getAllTasks(): Task[]; /** * 更新任务状态 */ updateTaskStatus(taskId: string, status: TaskStatus, options?: TaskUpdateOptions): boolean; /** * 删除任务 */ deleteTask(taskId: string): boolean; /** * 获取任务统计信息 */ getTaskStats(): TaskStats; /** * 根据状态筛选任务 */ getTasksByStatus(status: TaskStatus): Task[]; /** * 根据优先级筛选任务 */ getTasksByPriority(priority: TaskPriority): Task[]; /** * 根据分配人筛选任务 */ getTasksByAssignee(assignee: string): Task[]; /** * 检查任务依赖关系 */ checkTaskDependencies(taskId: string): { canStart: boolean; blockedBy: string[]; }; /** * 获取可以开始的任务 */ getReadyTasks(): Task[]; /** * 手动保存 */ save(): Promise<void>; /** * 清理资源 */ destroy(): void; }