taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
186 lines (185 loc) • 3.9 kB
TypeScript
/**
* TaskFlow AI 任务相关类型定义
*/
/**
* 任务状态枚举
*/
export 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"
}
/**
* 任务优先级
*/
export declare enum TaskPriority {
LOW = "low",
MEDIUM = "medium",
HIGH = "high",
CRITICAL = "critical"
}
/**
* 任务类型
*/
export declare enum TaskType {
FEATURE = "feature",// 功能开发
BUG_FIX = "bug_fix",// 缺陷修复
REFACTOR = "refactor",// 代码重构
TEST = "test",// 测试任务
DOCUMENT = "document",// 文档任务
ANALYSIS = "analysis",// 分析任务
DESIGN = "design",// 设计任务
DEPLOYMENT = "deployment",// 部署任务
RESEARCH = "research"
}
/**
* 基本任务接口
*/
export 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[];
}
/**
* 复合任务(包含子任务)
*/
export interface CompositeTask extends Task {
subtasks: Task[];
}
/**
* 测试用例
*/
export interface TestCase {
id: string;
taskId: string;
name: string;
description: string;
steps: string[];
expectedResults: string[];
framework?: string;
filePath?: string;
status?: 'passed' | 'failed' | 'pending';
}
/**
* 任务执行结果
*/
export interface TaskResult {
taskId: string;
success: boolean;
message?: string;
artifacts?: string[];
duration?: number;
startTime: Date;
endTime?: Date;
testResults?: TestResult[];
}
/**
* 测试结果
*/
export interface TestResult {
testCaseId: string;
passed: boolean;
message?: string;
executionTime: number;
coverage?: {
lines: number;
functions: number;
statements: number;
branches: number;
};
}
/**
* 任务计划
*/
export 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解析结果
*/
export interface ParsedPRD {
id?: string;
title: string;
description: string;
sections: PRDSection[];
metadata: Record<string, any>;
}
/**
* PRD章节
*/
export interface PRDSection {
title: string;
content: string;
level: number;
features: Feature[];
subsections?: PRDSection[];
}
/**
* 功能点
*/
export interface Feature {
name: string;
description: string;
priority?: TaskPriority;
acceptance?: string[];
}
/**
* 创建任务选项
*/
export interface CreateTaskOptions {
name: string;
description: string;
priority?: TaskPriority;
type?: TaskType;
dependencies?: string[];
assignee?: string;
tags?: string[];
subtasks?: Omit<CreateTaskOptions, 'subtasks'>[];
}
/**
* 创建测试用例选项
*/
export interface CreateTestCaseOptions {
taskId: string;
name: string;
description: string;
steps: string[];
expectedResults: string[];
}