taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
2,151 lines (2,132 loc) • 51 kB
TypeScript
/**
* 配置相关类型定义
*/
/**
* 模型类型枚举
*/
declare enum ModelType {
BAIDU = "baidu",
XUNFEI = "xunfei",
ZHIPU = "zhipu",
DEEPSEEK = "deepseek",
QWEN = "qwen",
SPARK = "spark",
MOONSHOT = "moonshot"
}
/**
* 日志级别
*/
declare enum LogLevel {
ERROR = "error",
WARN = "warn",
INFO = "info",
DEBUG = "debug"
}
/**
* 通用模型配置接口
*/
interface ModelConfig {
apiKey: string;
endpoint?: string;
}
/**
* 百度文心模型配置
*/
interface BaiduModelConfig extends ModelConfig {
secretKey: string;
modelVersion?: string;
}
/**
* 讯飞星火模型配置
*/
interface XunfeiModelConfig extends ModelConfig {
appId: string;
apiSecret: string;
}
/**
* 智谱AI模型配置
*/
interface ZhipuModelConfig extends ModelConfig {
modelVersion?: string;
}
/**
* DeepSeek模型配置
*/
interface DeepseekModelConfig extends ModelConfig {
modelVersion?: string;
}
/**
* 阿里通义千问模型配置
*/
interface QwenModelConfig extends ModelConfig {
modelVersion?: string;
region?: string;
}
/**
* 讯飞星火模型配置(扩展版)
*/
interface SparkModelConfig extends ModelConfig {
appId: string;
apiSecret: string;
domain?: string;
}
/**
* 月之暗面模型配置
*/
interface MoonshotModelConfig extends ModelConfig {
modelVersion?: string;
}
/**
* 多模型协作配置
*/
interface MultiModelConfig$1 {
enabled: boolean;
primary: ModelType;
fallback: ModelType[];
loadBalancing: boolean;
costOptimization: boolean;
}
/**
* 所有模型配置映射
*/
interface ModelsConfig {
default: ModelType;
multiModel?: MultiModelConfig$1;
[ModelType.BAIDU]?: BaiduModelConfig;
[ModelType.XUNFEI]?: XunfeiModelConfig;
[ModelType.ZHIPU]?: ZhipuModelConfig;
[ModelType.DEEPSEEK]?: DeepseekModelConfig;
[ModelType.QWEN]?: QwenModelConfig;
[ModelType.SPARK]?: SparkModelConfig;
[ModelType.MOONSHOT]?: MoonshotModelConfig;
}
/**
* 任务设置配置
*/
interface TaskSettings {
outputDir: string;
autoSave: boolean;
saveInterval: number;
}
/**
* 测试配置
*/
interface TestSettings {
framework: string;
outputDir: string;
coverage: boolean;
}
/**
* 日志配置
*/
interface LoggerConfig {
level: LogLevel;
output: 'console' | 'file' | 'both';
file?: string;
}
/**
* 完整应用配置
*/
interface AppConfig {
models: ModelsConfig;
taskSettings: TaskSettings;
testSettings: TestSettings;
logger: LoggerConfig;
}
/**
* 日志服务,用于记录应用运行日志
*/
declare class Logger {
private static instance;
private logger;
/**
* 创建日志服务实例
* @param config 日志配置
*/
private constructor();
/**
* 获取日志服务实例
* @param config 日志配置
*/
static getInstance(config: LoggerConfig): Logger;
/**
* 更新日志配置
* @param config 日志配置
*/
updateConfig(config: LoggerConfig): void;
/**
* 记录错误级别日志
* @param message 日志消息
* @param meta 元数据
*/
error(message: string, meta?: Record<string, unknown>): void;
/**
* 记录警告级别日志
* @param message 日志消息
* @param meta 元数据
*/
warn(message: string, meta?: Record<string, unknown>): void;
/**
* 记录信息级别日志
* @param message 日志消息
* @param meta 元数据
*/
info(message: string, meta?: Record<string, unknown>): void;
/**
* 记录调试级别日志
* @param message 日志消息
* @param meta 元数据
*/
debug(message: string, meta?: Record<string, unknown>): void;
/**
* 通用日志记录方法
* @param level 日志级别
* @param message 日志消息
* @param meta 元数据
*/
log(level: string, message: string, meta?: Record<string, unknown>): void;
}
/**
* 配置管理器,负责管理应用的配置信息
*/
declare class ConfigManager {
private conf;
private projectConf;
/**
* 创建配置管理器实例
* @param configName 配置名称
*/
constructor(configName?: string);
/**
* 获取完整配置
*/
getConfig(): AppConfig;
/**
* 更新配置
* @param config 配置对象
* @param isProjectLevel 是否为项目级配置
*/
updateConfig(config: Partial<AppConfig>, isProjectLevel?: boolean): void;
/**
* 设置配置项
* @param key 配置键路径(点分隔,如 'models.baidu.apiKey')
* @param value 配置值
* @param isProjectLevel 是否为项目级配置
*/
set(key: string, value: any, isProjectLevel?: boolean): void;
/**
* 获取配置项
* @param key 配置键路径
* @param defaultValue 默认值
*/
get<T>(key: string, defaultValue?: T): T;
/**
* 检查配置项是否存在
* @param key 配置键路径
*/
has(key: string): boolean;
/**
* 删除配置项
* @param key 配置键路径
* @param isProjectLevel 是否为项目级配置
*/
delete(key: string, isProjectLevel?: boolean): void;
/**
* 重置配置
* @param isProjectLevel 是否为项目级配置
*/
reset(isProjectLevel?: boolean): void;
/**
* 初始化项目配置文件
* @param directory 项目目录
*/
initProjectConfig(directory: string): void;
/**
* 获取当前默认模型类型
*/
getDefaultModelType(): ModelType;
/**
* 设置默认模型类型
* @param modelType 模型类型
* @param isProjectLevel 是否为项目级配置
*/
setDefaultModelType(modelType: ModelType, isProjectLevel?: boolean): void;
/**
* 获取配置路径
* @param isProjectLevel 是否为项目级配置
*/
getConfigPath(isProjectLevel?: boolean): string;
}
/**
* 模型相关类型定义
*/
/**
* 服务响应类型
*/
interface ServiceResponse<T> {
success: boolean;
data?: T;
error?: string;
}
/**
* 消息角色
*/
declare enum MessageRole {
USER = "user",
ASSISTANT = "assistant",
SYSTEM = "system"
}
/**
* 聊天消息
*/
interface ChatMessage {
role: MessageRole;
content: string;
}
/**
* 基本模型响应
*/
interface ModelResponse {
content: string;
finishReason?: string;
usage?: {
promptTokens: number;
completionTokens: number;
totalTokens: number;
};
}
/**
* 模型调用选项
*/
interface ModelCallOptions {
temperature?: number;
maxTokens?: number;
stream?: boolean;
timeout?: number;
}
/**
* 多模型配置
*/
interface MultiModelConfig {
enabled: boolean;
primary: ModelType;
fallback: ModelType[];
loadBalancing?: boolean;
costOptimization?: boolean;
}
/**
* PRD解析选项
*/
interface ParseOptions {
modelType?: ModelType;
multiModel?: MultiModelConfig;
extractSections?: boolean;
extractFeatures?: boolean;
prioritize?: boolean;
outputPath?: string;
}
/**
* 任务规划选项
*/
interface PlanningOptions {
modelType?: ModelType;
taskTemplate?: string;
estimateDuration?: boolean;
assignTasks?: boolean;
suggestDependencies?: boolean;
optimizeForTime?: boolean;
optimizeForResources?: boolean;
considerTeamSize?: number;
maxParallelTasks?: number;
includeTestTasks?: boolean;
includeDocTasks?: boolean;
}
/**
* 测试生成选项
*/
interface TestGenerationOptions {
modelType?: ModelType;
framework?: string;
coverage?: boolean;
includeEdgeCases?: boolean;
mockDependencies?: boolean;
}
/**
* 文件类型
*/
declare enum FileType {
MARKDOWN = "markdown",
PDF = "pdf",
WORD = "word",
TEXT = "text",
JSON = "json",
UNKNOWN = "unknown"
}
/**
* TaskFlow AI 任务相关类型定义
*/
/**
* 任务状态枚举
*/
declare enum TaskStatus {
NOT_STARTED = "not_started",// 未开始
PENDING = "pending",// 等待中
IN_PROGRESS = "in_progress",// 进行中
RUNNING = "running",// 执行中
COMPLETED = "completed",// 已完成
DONE = "done",// 完成(兼容性)
CANCELLED = "cancelled",// 已取消
FAILED = "failed",// 失败
BLOCKED = "blocked",// 被阻塞
ON_HOLD = "on_hold",// 暂停
REVIEW = "review",// 审核中
TODO = "todo"
}
/**
* 任务优先级
*/
declare enum TaskPriority {
LOW = "low",
MEDIUM = "medium",
HIGH = "high",
CRITICAL = "critical"
}
/**
* 任务类型
*/
declare enum TaskType {
FEATURE = "feature",// 功能开发
BUG_FIX = "bug_fix",// 缺陷修复
REFACTOR = "refactor",// 代码重构
TEST = "test",// 测试任务
DOCUMENT = "document",// 文档任务
ANALYSIS = "analysis",// 分析任务
DESIGN = "design",// 设计任务
DEPLOYMENT = "deployment",// 部署任务
RESEARCH = "research"
}
/**
* 基本任务接口
*/
interface Task {
id: string;
name: string;
title: string;
description: string;
status: TaskStatus;
priority: TaskPriority;
type: TaskType;
dependencies: string[];
estimatedHours?: number;
actualHours?: number;
createdAt: Date;
updatedAt: Date;
startedAt?: Date;
completedAt?: Date;
dueDate?: Date;
assignee?: string;
tags: string[];
acceptance?: string[];
notes?: string;
progress?: number;
metadata?: Record<string, any>;
subtasks?: Task[];
}
/**
* 任务计划
*/
interface TaskPlan {
id: string;
name: string;
description: string;
tasks: Task[];
createdAt: Date;
updatedAt: Date;
dueDate?: Date;
source?: string;
status: 'draft' | 'active' | 'completed' | 'archived';
metadata?: Record<string, any>;
}
/**
* PRD解析结果
*/
interface ParsedPRD {
id?: string;
title: string;
description: string;
sections: PRDSection$1[];
metadata: Record<string, any>;
}
/**
* PRD章节
*/
interface PRDSection$1 {
title: string;
content: string;
level: number;
features: Feature[];
subsections?: PRDSection$1[];
}
/**
* 功能点
*/
interface Feature {
name: string;
description: string;
priority?: TaskPriority;
acceptance?: string[];
}
/**
* 模型协调器
* 负责协调多个模型的使用,根据任务类型选择合适的模型
*/
declare class ModelCoordinator {
private modelFactory;
private configManager;
/**
* 创建模型协调器实例
* @param configManager 配置管理器实例
*/
constructor(configManager: ConfigManager);
/**
* 执行聊天请求
* @param messages 消息数组
* @param modelType 模型类型,不传时使用默认模型
* @param options 调用选项
*/
chat(messages: ChatMessage[], modelType?: ModelType, options?: ModelCallOptions): Promise<ModelResponse>;
/**
* 执行流式聊天请求
* @param messages 消息数组
* @param onData 数据回调
* @param modelType 模型类型,不传时使用默认模型
* @param options 调用选项
*/
chatStream(messages: ChatMessage[], onData: (content: string, done: boolean) => void, modelType?: ModelType, options?: ModelCallOptions): Promise<void>;
/**
* 执行PRD解析任务
* @param content PRD文档内容
* @param options 解析选项
*/
parsePRD(content: string, options?: ParseOptions): Promise<ModelResponse>;
/**
* 执行任务规划
* @param parsedPRD 解析后的PRD结果
* @param options 规划选项
*/
planTasks(parsedPRD: ParsedPRD, options?: PlanningOptions): Promise<ModelResponse>;
/**
* 生成测试用例
* @param taskDescription 任务描述
* @param options 测试生成选项
*/
generateTests(taskDescription: string, options?: TestGenerationOptions): Promise<ModelResponse>;
/**
* 获取可用的模型类型列表
*/
getAvailableModelTypes(): ModelType[];
/**
* 验证指定类型模型的API密钥
* @param modelType 模型类型
*/
validateModelApiKey(modelType: ModelType): Promise<boolean>;
}
/**
* TaskFlow AI 核心引擎
* 负责协调PRD解析、任务编排和管理的核心逻辑
*/
/**
* 引擎执行结果
*/
interface EngineResult<T = unknown> {
success: boolean;
data?: T;
message?: string;
errors?: string[];
warnings?: string[];
metadata?: Record<string, unknown>;
}
/**
* TaskFlow AI 核心引擎类
*/
declare class TaskFlowEngine {
private logger;
private configManager;
private modelCoordinator;
private prdParser;
private taskPlanner;
private taskManager;
private config;
/**
* 创建TaskFlow引擎实例
*/
constructor(logger: Logger, configManager: ConfigManager, modelCoordinator: ModelCoordinator);
/**
* 从PRD文件解析并生成完整的任务计划
* @param prdFilePath PRD文件路径
* @param parseOptions 解析选项
* @param planningOptions 规划选项
*/
processFromPRD(prdFilePath: string, parseOptions?: ParseOptions, planningOptions?: PlanningOptions): Promise<EngineResult<TaskPlan>>;
/**
* 解析PRD文档
* @param prdFilePath PRD文件路径
* @param options 解析选项
*/
parsePRD(prdFilePath: string, options?: ParseOptions): Promise<EngineResult<ParsedPRD>>;
/**
* 生成任务计划
* @param prdData 解析后的PRD数据
* @param options 规划选项
*/
generateTaskPlan(prdData: ParsedPRD, options?: PlanningOptions): Promise<EngineResult<TaskPlan>>;
/**
* 优化任务计划
* @param taskPlan 原始任务计划
* @param options 优化选项
*/
optimizeTaskPlan(taskPlan: TaskPlan, options?: PlanningOptions): Promise<EngineResult<TaskPlan>>;
/**
* 获取当前任务计划
*/
getCurrentTaskPlan(): TaskPlan | null;
/**
* 获取推荐的下一个任务
*/
getRecommendedTasks(): Task[];
/**
* 更新任务状态
* @param taskId 任务ID
* @param status 新状态
*/
updateTaskStatus(taskId: string, status: string): Promise<EngineResult<Task>>;
/**
* 获取项目进度统计
*/
getProgressStats(): {
total: number;
completed: number;
inProgress: number;
notStarted: number;
blocked: number;
completionRate: number;
};
/**
* 销毁引擎,清理资源
*/
destroy(): void;
}
/**
* PRD解析结果接口
*/
interface PRDParseResult {
title: string;
description: string;
sections: PRDSection[];
}
/**
* PRD章节接口
*/
interface PRDSection {
title: string;
content: string;
level: number;
features: PRDFeature[];
subsections?: PRDSection[];
}
/**
* PRD功能特性接口
*/
interface PRDFeature {
name: string;
description: string;
priority: 'high' | 'medium' | 'low';
}
/**
* PRD解析器类
* 负责解析产品需求文档,整合文档处理和需求提取功能
*/
declare class PRDParser {
private modelCoordinator;
private logger;
private documentProcessor;
private requirementExtractor;
/**
* 创建PRD解析器实例
* @param modelCoordinator 模型协调器实例
* @param logger 日志记录器实例
*/
constructor(modelCoordinator: ModelCoordinator, logger: Logger);
/**
* 从文件中解析PRD
* @param filePath PRD文件路径
* @param options 解析选项
*/
parseFromFile(filePath: string, options?: ParseOptions): Promise<ParsedPRD>;
/**
* 解析PRD内容
* @param content PRD文档内容
* @param fileType 文件类型
* @param options 解析选项
*/
parseContent(content: string, fileType?: FileType, options?: ParseOptions): Promise<PRDParseResult>;
/**
* 预处理不同类型的文档内容
* @param content 文档内容
* @param fileType 文件类型
*/
private preprocessContent;
/**
* 根据文件扩展名检测文件类型
* @param filePath 文件路径
*/
private detectFileType;
/**
* 验证解析结果是否符合预期格式
* @param result 解析结果
*/
private validateParseResult;
/**
* 转换为ParsedPRD格式
* @param documentStructure 文档结构
* @param extractionResult 需求提取结果
*/
private convertToParseResult;
/**
* 提取文档描述
* @param documentStructure 文档结构
*/
private extractDescription;
/**
* 转换DocumentSection到PRDSection
* @param sections 文档章节列表
*/
private convertToPRDSections;
/**
* 计算最大深度
* @param sections 章节列表
*/
private calculateMaxDepth;
/**
* 检查是否有目录
* @param documentStructure 文档结构
*/
private hasTableOfContents;
}
/**
* 任务规划器类
* 负责根据PRD生成任务计划
*/
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;
}
/**
* 任务过滤条件
*/
interface TaskFilter {
status?: TaskStatus | TaskStatus[];
type?: string | string[];
assignee?: string;
priority?: string | string[];
}
/**
* 任务更新数据
*/
interface TaskUpdateData {
name?: string;
description?: string;
status?: TaskStatus;
priority?: string;
assignee?: string;
}
/**
* 任务管理器类
* 负责管理任务计划中的任务
*/
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;
}
/**
* TaskFlow AI 任务可视化模块
* 负责生成各种任务可视化图表
*/
/**
* 可视化类型枚举
*/
declare enum VisualizationType {
GANTT = "gantt",
DEPENDENCY = "dependency",
KANBAN = "kanban",
TIMELINE = "timeline",
PROGRESS = "progress"
}
/**
* 可视化选项
*/
interface VisualizationOptions {
type: VisualizationType;
format?: 'mermaid' | 'json' | 'html';
includeSubtasks?: boolean;
showProgress?: boolean;
groupBy?: 'type' | 'assignee' | 'priority';
timeUnit?: 'days' | 'hours';
}
/**
* 任务可视化器类
*/
declare class TaskVisualizer {
private logger;
constructor(logger: Logger);
/**
* 生成可视化数据
* @param taskPlan 任务计划
* @param options 可视化选项
*/
generateVisualization(taskPlan: TaskPlan, options: VisualizationOptions): Record<string, unknown>;
/**
* 生成甘特图
* @param taskPlan 任务计划
* @param options 选项
*/
private generateGanttChart;
/**
* 生成Mermaid格式的甘特图
* @param ganttData 甘特图数据
*/
private generateMermaidGantt;
/**
* 生成依赖关系图
* @param taskPlan 任务计划
* @param options 选项
*/
private generateDependencyGraph;
/**
* 生成Mermaid格式的依赖关系图
* @param graph 依赖关系图数据
*/
private generateMermaidDependencyGraph;
/**
* 获取节点形状
* @param status 任务状态
*/
private getNodeShape;
/**
* 获取节点样式
* @param priority 优先级
*/
private getNodeStyle;
/**
* 生成看板
* @param taskPlan 任务计划
* @param options 选项
*/
private generateKanbanBoard;
/**
* 生成时间线
* @param taskPlan 任务计划
* @param options 选项
*/
private generateTimeline;
/**
* 生成进度图表
* @param taskPlan 任务计划
* @param options 选项
*/
private generateProgressChart;
/**
* 格式化日期
* @param date 日期
*/
private formatDate;
/**
* 计算任务开始日期
* @param task 任务
* @param index 索引
*/
private calculateTaskStartDate;
}
/**
* MCP接口函数
* 为AI编辑器提供标准化接口
*/
/**
* 执行MCP工具
* @param toolName 工具名称
* @param args 工具参数
*/
declare function executeTool(toolName: string, args: any): Promise<ServiceResponse<PRDParseResult> | {
success: boolean;
error?: undefined;
} | {
success: boolean;
error: string;
}>;
/**
* 获取所有可用的MCP工具
*/
declare function getTools(): ({
name: string;
description: string;
inputSchema: {
type: string;
properties: {
content: {
type: string;
description: string;
};
fileType: {
type: string;
enum: string[];
description: string;
default: string;
};
modelType: {
type: string;
enum: string[];
description: string;
};
outputPath: {
type: string;
description: string;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
filePath: {
type: string;
description: string;
};
modelType: {
type: string;
enum: string[];
description: string;
};
outputPath: {
type: string;
description: string;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {};
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
id: {
type: string;
description: string;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {};
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
id: {
type: string;
description: string;
};
status: {
type: string;
enum: string[];
description: string;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
messages: {
type: string;
items: {
type: string;
properties: {
role: {
type: string;
enum: string[];
};
content: {
type: string;
};
};
required: string[];
};
description: string;
};
modelType: {
type: string;
enum: string[];
description: string;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {};
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
config: {
type: string;
description: string;
};
isProjectLevel: {
type: string;
description: string;
default: boolean;
};
};
required: string[];
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {};
};
} | {
name: string;
description: string;
inputSchema: {
type: string;
properties: {
modelType: {
type: string;
enum: string[];
description: string;
};
};
required: string[];
};
})[];
/**
* 获取MCP服务器信息
*/
declare function getServerInfo(): {
name: string;
version: string;
description: string;
capabilities: {
tools: boolean;
resources: boolean;
prompts: boolean;
};
};
/**
* 从文本解析PRD并生成任务
* @param text PRD文本内容
* @param options 解析选项
*/
declare function parsePRD(text: string, options?: any): Promise<{
error: string | undefined;
success?: undefined;
data?: undefined;
} | {
success: boolean;
data: {
prd: PRDParseResult | undefined;
taskPlan: TaskPlan | undefined;
};
error?: undefined;
}>;
/**
* 从文件解析PRD并生成任务
* @param filePath PRD文件路径
* @param options 解析选项
*/
declare function parsePRDFromFile(filePath: string, options?: any): Promise<{
error: string | undefined;
success?: undefined;
data?: undefined;
} | {
success: boolean;
data: {
prd: ParsedPRD | undefined;
taskPlan: TaskPlan | undefined;
};
error?: undefined;
}>;
/**
* 获取所有任务
*/
declare function getAllTasks(): Promise<{
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 根据ID获取任务
* @param id 任务ID
*/
declare function getTaskById(id: string): Promise<{
success: boolean;
error: string;
data?: undefined;
} | {
success: boolean;
data: Task;
error?: undefined;
}>;
/**
* 获取下一个要处理的任务
*/
declare function getNextTasks(): Promise<{
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 更新任务状态
* @param id 任务ID
* @param status 新状态
*/
declare function updateTaskStatus(id: string, status: string): Promise<{
success: boolean;
error: string;
data?: undefined;
} | {
success: boolean;
data: Task;
error?: undefined;
}>;
/**
* 使用聊天模型进行对话
* @param messages 消息数组
* @param modelType 模型类型
* @param options 调用选项
*/
declare function chat(messages: any[], modelType?: ModelType, options?: ModelCallOptions): Promise<{
success: boolean;
data: ModelResponse;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取所有可用的模型类型
*/
declare function getAvailableModelTypes(): Promise<{
success: boolean;
data: ModelType[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 验证模型API密钥
* @param modelType 模型类型
*/
declare function validateModelApiKey(modelType: ModelType): Promise<{
success: boolean;
data: {
valid: boolean;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 更新配置
* @param config 配置对象
* @param isProjectLevel 是否为项目级配置
*/
declare function updateConfig(config: any, isProjectLevel?: boolean): Promise<{
success: boolean;
error?: undefined;
} | {
success: boolean;
error: string;
}>;
/**
* 获取配置
*/
declare function getConfig(): Promise<{
success: boolean;
data: {
[x: string]: unknown;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 根据PRD解析结果生成任务计划
* @param prdResult PRD解析结果
* @param options 规划选项
*/
declare function generateTaskPlan(prdResult: any, options?: any): Promise<{
error: string | undefined;
success?: undefined;
data?: undefined;
} | {
success: boolean;
data: TaskPlan | undefined;
error?: undefined;
}>;
/**
* 生成测试用例
* @param taskDescription 任务描述
* @param options 测试生成选项
*/
declare function generateTests(taskDescription: string, options?: any): Promise<{
success: boolean;
data: ModelResponse;
error?: undefined;
} | {
error: string;
success?: undefined;
data?: undefined;
}>;
/**
* TaskFlow AI MCP 服务类
*/
declare class TaskFlowService {
private configManager;
private logger;
private modelCoordinator;
private prdParser;
private taskPlanner;
private taskManager;
/**
* 创建TaskFlow AI MCP服务实例
*/
constructor();
/**
* 解析PRD文档内容
* @param content PRD文档内容
* @param fileType 文件类型
* @param options 解析选项
*/
parsePRD(content: string, fileType?: FileType, options?: ParseOptions): Promise<ServiceResponse<PRDParseResult>>;
/**
* 从文件解析PRD
* @param filePath PRD文件路径
* @param options 解析选项
*/
parsePRDFromFile(filePath: string, options?: ParseOptions): Promise<{
success: boolean;
data: ParsedPRD;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 根据PRD生成任务计划
* @param prdResult PRD解析结果
* @param options 规划选项
*/
generateTaskPlan(prdResult: any, options?: PlanningOptions): Promise<{
success: boolean;
data: TaskPlan;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 保存任务计划
* @param taskPlan 任务计划
* @param outputPath 输出路径
*/
saveTaskPlan(taskPlan: any, outputPath: string): Promise<{
success: boolean;
error?: undefined;
} | {
success: boolean;
error: string;
}>;
/**
* 加载任务计划
* @param filePath 任务计划文件路径
*/
loadTaskPlan(filePath: string): Promise<{
success: boolean;
data: TaskPlan;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取所有任务
*/
getAllTasks(): {
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 根据ID获取任务
* @param id 任务ID
*/
getTaskById(id: string): {
success: boolean;
error: string;
data?: undefined;
} | {
success: boolean;
data: Task;
error?: undefined;
};
/**
* 过滤任务
* @param filter 过滤条件
*/
filterTasks(filter: TaskFilter): {
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 更新任务
* @param id 任务ID
* @param data 更新数据
*/
updateTask(id: string, data: TaskUpdateData): {
success: boolean;
error: string;
data?: undefined;
} | {
success: boolean;
data: Task;
error?: undefined;
};
/**
* 获取下一个要处理的任务
*/
getNextTasks(): {
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 使用聊天模型进行对话
* @param messages 消息数组
* @param modelType 模型类型
* @param options 调用选项
*/
chat(messages: any[], modelType?: ModelType, options?: any): Promise<{
success: boolean;
data: ModelResponse;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取所有可用的模型类型
*/
getAvailableModelTypes(): {
success: boolean;
data: ModelType[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 验证指定类型模型的API密钥
* @param modelType 模型类型
*/
validateModelApiKey(modelType: ModelType): Promise<{
success: boolean;
data: {
valid: boolean;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 更新配置
* @param config 配置对象
* @param isProjectLevel 是否为项目级配置
*/
updateConfig(config: any, isProjectLevel?: boolean): {
success: boolean;
error?: undefined;
} | {
success: boolean;
error: string;
};
/**
* 获取完整配置
*/
getConfig(): {
success: boolean;
data: {
[x: string]: unknown;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 获取任务状态概览
*/
getTaskStatus(): {
success: boolean;
data: {
total: number;
pending: number;
in_progress: number;
completed: number;
cancelled: number;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 更新任务状态
* @param taskId 任务ID
* @param status 新状态
* @param data 额外数据
*/
updateTaskStatus(taskId: string, status: string, data?: any): {
success: boolean;
error: string;
data?: undefined;
} | {
success: boolean;
data: Task;
error?: undefined;
};
/**
* 获取推荐任务
*/
getRecommendedTask(): {
success: boolean;
data: Task | null;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
};
/**
* 生成可视化
* @param type 可视化类型
* @param options 选项
*/
generateVisualization(type: string, options?: any): Promise<{
success: boolean;
data: {
type: string;
data: Task[];
options: any;
generatedAt: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 创建项目
* @param projectData 项目数据
*/
createProject(projectData: any): Promise<{
success: boolean;
data: any;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取项目列表
* @param options 查询选项
*/
getProjects(options?: any): Promise<{
success: boolean;
data: {
id: string;
name: string;
description: string;
status: string;
createdAt: string;
}[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取项目详情
* @param id 项目ID
*/
getProject(id: string): Promise<{
success: boolean;
data: {
id: string;
name: string;
description: string;
status: string;
createdAt: string;
tasks: Task[];
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 更新项目
* @param id 项目ID
* @param updateData 更新数据
*/
updateProject(id: string, updateData: any): Promise<{
success: boolean;
data: any;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 删除项目
* @param id 项目ID
*/
deleteProject(id: string): Promise<{
success: boolean;
message: string;
error?: undefined;
} | {
success: boolean;
error: string;
message?: undefined;
}>;
/**
* 获取项目任务
* @param id 项目ID
* @param options 查询选项
*/
getProjectTasks(id: string, options?: any): Promise<{
success: boolean;
data: Task[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取项目统计
* @param id 项目ID
*/
getProjectStats(id: string): Promise<{
success: boolean;
data: {
totalTasks: number;
completedTasks: number;
inProgressTasks: number;
pendingTasks: number;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 生成任务
* @param req 请求对象
* @param res 响应对象
*/
generateTasks(req: any, res: any): Promise<{
success: boolean;
data: {
id: string;
title: string;
description: string;
status: string;
priority: string;
}[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 编排任务
* @param req 请求对象
* @param res 响应对象
*/
orchestrateTasks(req: any, res: any): Promise<{
success: boolean;
data: any;
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 生成文档
* @param req 请求对象
* @param res 响应对象
*/
generateDocuments(req: any, res: any): Promise<{
success: boolean;
data: {
type: any;
content: string;
generatedAt: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 生成图表
* @param req 请求对象
* @param res 响应对象
*/
generateCharts(req: any, res: any): Promise<{
success: boolean;
data: {
type: any;
data: any;
options: any;
generatedAt: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 聊天流式响应
* @param req 请求对象
* @param res 响应对象
*/
chatStream(req: any, res: any): Promise<void>;
/**
* 获取模型列表
* @param req 请求对象
* @param res 响应对象
*/
getModels(req: any, res: any): Promise<{
success: boolean;
data: ModelType[];
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取模型状态
* @param req 请求对象
* @param res 响应对象
*/
getModelStatus(req: any, res: any): Promise<{
success: boolean;
data: {
modelType: any;
status: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 验证需求
* @param req 请求对象
* @param res 响应对象
*/
validateRequirements(req: any, res: any): Promise<{
success: boolean;
data: {
valid: boolean;
issues: never[];
suggestions: string[];
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 估算工作量
* @param req 请求对象
* @param res 响应对象
*/
estimateEffort(req: any, res: any): Promise<{
success: boolean;
data: {
totalHours: number;
breakdown: any;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 获取使用统计
* @param req 请求对象
* @param res 响应对象
*/
getUsageStats(req: any, res: any): Promise<{
success: boolean;
data: {
totalRequests: number;
successfulRequests: number;
failedRequests: number;
averageResponseTime: number;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 归档项目
* @param req 请求对象
* @param res 响应对象
*/
archiveProject(req: any, res: any): Promise<{
success: boolean;
data: {
id: any;
status: string;
archivedAt: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 恢复项目
* @param id 项目ID
*/
restoreProject(id: string): Promise<any>;
/**
* 恢复项目
* @param req 请求对象
* @param res 响应对象
*/
restoreProject(req: any, res: any): Promise<any>;
/**
* 生成项目报告
* @param id 项目ID
* @param options 报告选项
*/
generateProjectReport(id: string, options?: any): Promise<{
success: boolean;
data: {
project: {
id: string;
name: string;
description: string;
status: string;
createdAt: string;
tasks: Task[];
} | undefined;
tasks: Task[];
statistics: {
totalTasks: number;
completedTasks: number;
inProgressTasks: number;
pendingTasks: number;
} | undefined;
generatedAt: string;
format: any;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 导出项目
* @param id 项目ID
* @param format 导出格式
*/
exportProject(id: string, format: string): Promise<{
success: boolean;
data: {
project: {
id: string;
name: string;
description: string;
status: string;
createdAt: string;
tasks: Task[];
} | undefined;
tasks: Task[];
exportedAt: string;
format: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
/**
* 克隆项目
* @param id 项目ID
* @param options 克隆选项
*/
cloneProject(id: string, options: any): Promise<{
success: boolean;
data: {
id: string;
name: any;
description: any;
clonedFrom: string;
createdAt: string;
};
error?: undefined;
} | {
success: boolean;
error: string;
data?: undefined;
}>;
}
declare const taskFlowService: TaskFlowService;
/**
* TaskFlow AI
* 智能PRD文档解析与任务管理助手,专为开发团队设计的AI驱动任务编排工具
*/
declare const VERSION = "1.3.0";
export { FileType, LogLevel, MessageRole, ModelType, PRDParser, TaskFlowEngine, TaskFlowService, TaskManager, TaskPlanner, TaskPriority, TaskStatus, TaskType, TaskVisualizer, VERSION, VisualizationType, chat, executeTool, generateTaskPlan, generateTests, getAllTasks, getAvailableModelTypes, getConfig, getNextTasks, getServerInfo, getTaskById, getTools, parsePRD, parsePRDFromFile, taskFlowService, updateConfig, updateTaskStatus, validateModelApiKey };
export type { Feature, ModelCallOptions, PRDParseResult, ParseOptions, ParsedPRD, ServiceResponse, Task, TaskPlan };