UNPKG

taskflow-ai

Version:

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

130 lines (129 loc) 3.18 kB
import { Task, TaskPlan, TaskStatus } from '../../types/task'; import { Logger } from '../../infra/logger'; import { ConfigManager } from '../../infra/config'; /** * 任务过滤条件 */ export interface TaskFilter { status?: TaskStatus | TaskStatus[]; type?: string | string[]; assignee?: string; priority?: string | string[]; } /** * 任务更新数据 */ export interface TaskUpdateData { name?: string; description?: string; status?: TaskStatus; priority?: string; assignee?: string; } /** * 任务管理器类 * 负责管理任务计划中的任务 */ export declare class TaskManager { private taskPlan; private taskFilePath; private logger; private configManager; private autoSaveInterval; /** * 创建任务管理器实例 * @param logger 日志记录器 * @param configManager 配置管理器 */ constructor(logger: Logger, configManager: ConfigManager); /** * 加载任务计划 * @param filePath 任务计划文件路径,不指定则使用默认路径 */ loadTaskPlan(filePath?: string): Promise<TaskPlan>; /** * 保存任务计划 * @param filePath 保存路径,不指定则使用默认路径 */ saveTaskPlan(filePath?: string): Promise<void>; /** * 设置任务计划 * @param taskPlan 任务计划 */ setTaskPlan(taskPlan: TaskPlan): void; /** * 获取任务计划 */ getTaskPlan(): TaskPlan | null; /** * 获取所有任务 */ getAllTasks(): Task[]; /** * 根据ID获取任务 * @param id 任务ID */ getTaskById(id: string): Task | null; /** * 过滤任务 * @param filter 过滤条件 */ filterTasks(filter: TaskFilter): Task[]; /** * 添加新任务 * @param task 任务 */ addTask(task: Task): Task; /** * 更新任务 * @param id 任务ID * @param data 更新数据 */ updateTask(id: string, data: TaskUpdateData): Task | null; /** * 删除任务 * @param id 任务ID */ removeTask(id: string): boolean; /** * 添加子任务 * @param parentId 父任务ID * @param subtask 子任务 */ addSubtask(parentId: string, subtask: any): any; /** * 获取下一个要处理的任务 */ getNextTasks(): Task[]; /** * 添加依赖关系 * @param taskId 任务ID * @param dependsOnId 依赖的任务ID */ addDependency(taskId: string, dependsOnId: string): boolean; /** * 移除依赖关系 * @param taskId 任务ID * @param dependsOnId 依赖的任务ID */ removeDependency(taskId: string, dependsOnId: string): boolean; /** * 检查是否存在循环依赖 * @param task1Id 任务1ID * @param task2Id 任务2ID */ private checkCircularDependency; /** * 开始自动保存任务计划 * @param interval 保存间隔(毫秒) */ private startAutoSave; /** * 停止自动保存 */ stopAutoSave(): void; /** * 析构函数,清理资源 */ destroy(): void; }