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