taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
157 lines (156 loc) • 3.26 kB
TypeScript
/**
* 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;
}