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