UNPKG

taskflow-ai

Version:

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

153 lines (152 loc) 4.38 kB
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; }