taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
153 lines (152 loc) • 4.38 kB
TypeScript
import { ModelCoordinator } from '../models/coordinator';
import { PRDParseResult } from '../parser/prd-parser';
import { PlanningOptions } from '../../types/model';
import { Logger } from '../../infra/logger';
import { TaskPlan, ParsedPRD } from '../../types/task';
/**
* 任务规划器类
* 负责根据PRD生成任务计划
*/
export declare class TaskPlanner {
private modelCoordinator;
private logger;
/**
* 创建任务规划器实例
* @param modelCoordinator 模型协调器实例
* @param logger 日志记录器
*/
constructor(modelCoordinator: ModelCoordinator, logger: Logger);
/**
* 根据PRD解析结果生成任务计划
* @param prdResult PRD解析结果
* @param options 规划选项
*/
generateTaskPlan(prdResult: ParsedPRD | PRDParseResult, options?: PlanningOptions): Promise<TaskPlan>;
/**
* 优化任务计划
* @param taskPlan 原始任务计划
* @param options 优化选项
*/
optimizeTaskPlan(taskPlan: TaskPlan, options?: PlanningOptions): Promise<TaskPlan>;
/**
* 将任务计划保存到文件
* @param taskPlan 任务计划
* @param outputPath 输出路径
*/
saveTaskPlan(taskPlan: TaskPlan, outputPath: string): Promise<void>;
/**
* 验证任务计划是否符合预期格式
* @param taskPlan 任务计划
*/
private validateTaskPlan;
/**
* 后处理任务计划,添加一些自动生成的信息
* @param taskPlan 任务计划
*/
private postProcessTaskPlan;
/**
* 生成唯一ID
* @param baseId 基础ID
* @param existingIds 已存在的ID集合
*/
private generateUniqueId;
/**
* 检测任务依赖是否存在循环依赖
* @param taskPlan 任务计划
*/
private checkCircularDependencies;
/**
* 使用DFS检测有向图中的环
* @param node 当前节点
* @param graph 依赖图
* @param visited 已访问节点集合
* @param recStack 递归栈
*/
private detectCycle;
/**
* 优化任务依赖关系
* @param taskPlan 任务计划
*/
private optimizeDependencies;
/**
* 移除冗余依赖(传递依赖)
* @param dependencies 依赖列表
* @param taskPlan 任务计划
*/
private removeRedundantDependencies;
/**
* 检查是否存在传递依赖
* @param fromId 起始任务ID
* @param toId 目标任务ID
* @param taskMap 任务映射
*/
private hasTransitiveDependency;
/**
* 优化任务优先级
* @param taskPlan 任务计划
* @param options 优化选项
*/
private optimizePriorities;
/**
* 查找依赖某个任务的所有任务
* @param taskId 任务ID
* @param taskPlan 任务计划
*/
private findDependentTasks;
/**
* 检查任务是否在关键路径上
* @param taskId 任务ID
* @param taskPlan 任务计划
*/
private isOnCriticalPath;
/**
* 计算任务的依赖深度
* @param taskId 任务ID
* @param taskPlan 任务计划
*/
private calculateDependencyDepth;
/**
* 计算平均依赖深度
* @param taskPlan 任务计划
*/
private calculateAverageDependencyDepth;
/**
* 识别可并行执行的任务
* @param taskPlan 任务计划
* @param options 优化选项
*/
private identifyParallelTasks;
/**
* 查找可并行执行的任务组
* @param taskPlan 任务计划
* @param maxGroupSize 最大组大小
*/
private findParallelGroups;
/**
* 查找与指定任务可并行执行的任务
* @param task 基准任务
* @param taskPlan 任务计划
* @param processed 已处理的任务
*/
private findParallelTasks;
/**
* 检查两个任务是否可以并行执行
* @param task1 任务1
* @param task2 任务2
* @param taskPlan 任务计划
*/
private canRunInParallel;
/**
* 检查是否存在间接依赖关系
* @param fromId 起始任务ID
* @param toId 目标任务ID
* @param taskPlan 任务计划
*/
private hasIndirectDependency;
/**
* 平衡工作量
* @param taskPlan 任务计划
* @param options 优化选项
*/
private balanceWorkload;
}