UNPKG

taskflow-ai

Version:

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

508 lines (507 loc) 12.3 kB
/** * 智能编排器 - TaskFlow AI的核心AI编排模块 * 实现任务优先级排序、依赖分析、开发路径优化和智能决策 */ import { Logger } from '../../infra/logger'; import { ModelCoordinator } from '../models/coordinator'; import { TaskPlan } from '../../types/task'; import { Requirement } from '../parser/requirement-extractor'; /** * 编排策略枚举 */ export declare enum OrchestrationStrategy { TIME_OPTIMIZED = "time_optimized",// 时间优化 RESOURCE_OPTIMIZED = "resource_optimized",// 资源优化 RISK_MINIMIZED = "risk_minimized",// 风险最小化 VALUE_MAXIMIZED = "value_maximized",// 价值最大化 BALANCED = "balanced" } /** * 编排选项接口 */ export interface OrchestrationOptions { strategy: OrchestrationStrategy; teamSize: number; timeConstraint?: number; resourceConstraint?: number; riskTolerance: 'low' | 'medium' | 'high'; prioritizeUserValue: boolean; allowParallelExecution: boolean; maxParallelTasks: number; considerSkillsets: boolean; enableAutoAdjustment: boolean; } /** * 编排结果接口 */ export interface OrchestrationResult { optimizedPlan: TaskPlan; executionPath: ExecutionPath; recommendations: Recommendation[]; metrics: OrchestrationMetrics; alternatives: AlternativePlan[]; warnings: string[]; } /** * 执行路径接口 */ export interface ExecutionPath { phases: ExecutionPhase[]; criticalPath: string[]; parallelGroups: ParallelGroup[]; milestones: Milestone[]; estimatedDuration: number; resourceUtilization: ResourceUtilization; } /** * 执行阶段接口 */ export interface ExecutionPhase { id: string; name: string; description: string; tasks: string[]; dependencies: string[]; estimatedDuration: number; requiredSkills: string[]; riskLevel: 'low' | 'medium' | 'high'; priority: number; } /** * 并行组接口 */ export interface ParallelGroup { id: string; name: string; tasks: string[]; estimatedDuration: number; requiredResources: number; conflictRisk: number; } /** * 里程碑接口 */ export interface Milestone { id: string; name: string; description: string; targetDate: Date; criteria: string[]; dependentTasks: string[]; importance: 'low' | 'medium' | 'high' | 'critical'; } /** * 资源利用率接口 */ export interface ResourceUtilization { totalPersonDays: number; peakConcurrency: number; averageUtilization: number; bottlenecks: string[]; idlePeriods: IdlePeriod[]; } /** * 空闲期间接口 */ export interface IdlePeriod { start: Date; end: Date; availableResources: number; suggestions: string[]; } /** * 编排指标接口 */ export interface OrchestrationMetrics { efficiency: number; riskScore: number; valueScore: number; feasibility: number; complexity: number; adaptability: number; overallScore: number; } /** * 推荐建议接口 */ export interface Recommendation { id: string; type: 'optimization' | 'risk_mitigation' | 'resource_allocation' | 'timeline_adjustment'; priority: 'low' | 'medium' | 'high' | 'critical'; title: string; description: string; impact: string; effort: string; targetTasks: string[]; actionItems: string[]; } /** * 备选方案接口 */ export interface AlternativePlan { id: string; name: string; description: string; strategy: OrchestrationStrategy; metrics: OrchestrationMetrics; tradeoffs: string[]; suitableFor: string[]; } /** * 智能编排器类 */ export declare class IntelligentOrchestrator { private logger; private _modelCoordinator; private knowledgeBase; private learningHistory; constructor(logger: Logger, modelCoordinator: ModelCoordinator); /** * 智能编排任务计划 * @param taskPlan 原始任务计划 * @param requirements 需求列表 * @param options 编排选项 */ orchestrate(taskPlan: TaskPlan, requirements: Requirement[], options: OrchestrationOptions): Promise<OrchestrationResult>; /** * 分析任务和需求 * @param taskPlan 任务计划 * @param requirements 需求列表 */ private analyzeTasksAndRequirements; /** * 分析任务复杂度 * @param tasks 任务列表 */ private analyzeTaskComplexity; /** * 构建依赖图 * @param tasks 任务列表 */ private buildDependencyGraph; /** * 分析技能需求 * @param tasks 任务列表 */ private analyzeSkillRequirements; /** * 识别风险因素 * @param tasks 任务列表 * @param requirements 需求列表 */ private identifyRiskFactors; /** * 映射业务价值 * @param tasks 任务列表 * @param requirements 需求列表 */ private mapBusinessValue; /** * 估算资源需求 * @param tasks 任务列表 */ private estimateResourceNeeds; /** * 识别专业化需求 * @param task 任务 */ private identifySpecialization; /** * 估算所需技能水平 * @param task 任务 */ private estimateRequiredSkillLevel; /** * 估算最优团队规模 * @param task 任务 */ private estimateOptimalTeamSize; /** * 精化时间估算 * @param tasks 任务列表 */ private refineTimeEstimates; /** * 获取任务的估算小时数(类型安全) * @param taskId 任务ID * @param timeEstimates 时间估算映射 * @returns 估算小时数 */ private getEstimatedHours; /** * 计算任务复杂度 * @param task 任务 */ private calculateTaskComplexity; /** * 计算不确定性乘数 * @param task 任务 */ private calculateUncertaintyMultiplier; /** * 计算估算置信度 * @param task 任务 */ private calculateEstimateConfidence; /** * 计算关键性评分 * @param tasks 任务列表 */ private calculateCriticalityScores; /** * 初始化知识库 */ private initializeKnowledgeBase; /** * 从结果中学习 * @param result 编排结果 * @param options 编排选项 */ private learnFromResult; /** * 生成执行路径 * @param taskPlan 任务计划 * @param analysis 分析结果 * @param options 编排选项 */ private generateExecutionPath; /** * 寻找关键路径 * @param tasks 任务列表 * @param analysis 分析结果 */ private findCriticalPath; /** * 创建执行阶段 * @param tasks 任务列表 * @param analysis 分析结果 * @param options 编排选项 */ private createExecutionPhases; /** * 将任务分组到阶段 * @param tasks 任务列表 * @param analysis 分析结果 */ private groupTasksIntoPhases; /** * 计算依赖层级 * @param tasks 任务列表 */ private calculateDependencyLevels; /** * 生成阶段名称 * @param tasks 阶段任务 */ private generatePhaseName; /** * 生成阶段描述 * @param tasks 阶段任务 */ private generatePhaseDescription; /** * 计算阶段依赖 * @param phaseTaskIds 阶段任务ID * @param allTasks 所有任务 */ private calculatePhaseDependencies; /** * 识别并行组 * @param tasks 任务列表 * @param analysis 分析结果 * @param options 编排选项 */ private identifyParallelGroups; /** * 查找可并行执行的任务 * @param baseTask 基准任务 * @param allTasks 所有任务 * @param analysis 分析结果 * @param processed 已处理的任务 */ private findParallelTasks; /** * 检查两个任务是否可以并行执行 * @param task1 任务1 * @param task2 任务2 * @param allTasks 所有任务 * @param analysis 分析结果 */ private canRunInParallel; /** * 检查间接依赖 * @param fromId 起始任务ID * @param toId 目标任务ID * @param allTasks 所有任务 */ private hasIndirectDependency; /** * 计算冲突风险 * @param tasks 任务列表 * @param analysis 分析结果 */ private calculateConflictRisk; /** * 创建里程碑 * @param tasks 任务列表 * @param phases 执行阶段 */ private createMilestones; /** * 计算资源利用率 * @param tasks 任务列表 * @param phases 执行阶段 * @param options 编排选项 */ private calculateResourceUtilization; /** * 计算总时长 * @param phases 执行阶段 * @param parallelGroups 并行组 */ private calculateTotalDuration; /** * 优化任务顺序 * @param taskPlan 任务计划 * @param executionPath 执行路径 * @param options 编排选项 */ private optimizeTaskOrder; /** * 时间优化 * @param tasks 任务列表 * @param executionPath 执行路径 */ private optimizeForTime; /** * 资源优化 * @param tasks 任务列表 * @param executionPath 执行路径 * @param options 编排选项 */ private optimizeForResources; /** * 风险优化 * @param tasks 任务列表 * @param executionPath 执行路径 */ private optimizeForRisk; /** * 价值优化 * @param tasks 任务列表 * @param executionPath 执行路径 */ private optimizeForValue; /** * 平衡优化 * @param tasks 任务列表 * @param executionPath 执行路径 * @param options 编排选项 */ private optimizeBalanced; /** * 计算任务风险 * @param task 任务 */ private calculateTaskRisk; /** * 计算任务价值 * @param task 任务 */ private calculateTaskValue; /** * 计算平衡评分 * @param task 任务 * @param executionPath 执行路径 */ private calculateBalancedScore; /** * 生成推荐建议 * @param optimizedPlan 优化后的计划 * @param analysis 分析结果 * @param options 编排选项 */ private generateRecommendations; /** * 生成资源分配建议 */ private generateResourceRecommendations; /** * 生成风险缓解建议 */ private generateRiskRecommendations; /** * 生成时间线调整建议 */ private generateTimelineRecommendations; /** * 生成优化建议 */ private generateOptimizationRecommendations; /** * 计算编排指标 * @param optimizedPlan 优化后的计划 * @param executionPath 执行路径 * @param options 编排选项 */ private calculateMetrics; /** * 计算效率评分 */ private calculateEfficiency; /** * 计算风险评分 */ private calculateRiskScore; /** * 计算价值评分 */ private calculateValueScore; /** * 计算可行性评分 */ private calculateFeasibility; /** * 计算复杂度评分 */ private calculateComplexity; /** * 计算适应性评分 */ private calculateAdaptability; /** * 生成备选方案 * @param taskPlan 原始任务计划 * @param analysis 分析结果 * @param options 编排选项 */ private generateAlternatives; /** * 获取策略名称 */ private getStrategyName; /** * 获取策略描述 */ private getStrategyDescription; /** * 获取策略权衡点 */ private getStrategyTradeoffs; /** * 获取策略适用性 */ private getStrategySuitability; /** * 验证结果 * @param optimizedPlan 优化后的计划 * @param executionPath 执行路径 * @param options 编排选项 */ private validateResult; /** * 检查循环依赖 * @param tasks 任务列表 */ private hasCircularDependencies; }