taskflow-ai
Version:
TaskFlow AI - 智能PRD文档解析与任务管理助手,支持多模型AI协同、MCP编辑器集成,专为开发团队设计的CLI工具
430 lines (429 loc) • 10.8 kB
TypeScript
/**
* 文档生成器 - 自动生成项目文档
* 支持多种文档格式和模板,包括技术文档、用户手册、API文档等
*/
import { Logger } from '../../infra/logger';
import { ConfigManager } from '../../infra/config';
import { TaskPlan } from '../../types/task';
import { Requirement } from '../parser/requirement-extractor';
import { OrchestrationResult } from '../ai/intelligent-orchestrator';
/**
* 文档类型枚举
*/
export declare enum DocumentType {
PROJECT_OVERVIEW = "project_overview",// 项目概览
TECHNICAL_SPEC = "technical_spec",// 技术规格说明
API_DOCUMENTATION = "api_documentation",// API文档
USER_MANUAL = "user_manual",// 用户手册
DEPLOYMENT_GUIDE = "deployment_guide",// 部署指南
DEVELOPMENT_GUIDE = "development_guide",// 开发指南
TEST_PLAN = "test_plan",// 测试计划
RELEASE_NOTES = "release_notes",// 发布说明
ARCHITECTURE_DOC = "architecture_doc",// 架构文档
REQUIREMENTS_DOC = "requirements_doc",// 需求文档
TASK_BREAKDOWN = "task_breakdown",// 任务分解文档
PROJECT_REPORT = "project_report"
}
/**
* 文档格式枚举
*/
export declare enum DocumentFormat {
MARKDOWN = "markdown",
HTML = "html",
PDF = "pdf",
DOCX = "docx",
JSON = "json",
CONFLUENCE = "confluence",
NOTION = "notion"
}
/**
* 文档配置接口
*/
export interface DocumentConfig {
type: DocumentType;
format: DocumentFormat;
title: string;
author?: string;
version?: string;
language: 'zh-CN' | 'en-US';
template?: string;
includeTableOfContents: boolean;
includeMetadata: boolean;
includeTimestamp: boolean;
customSections?: DocumentSection[];
styling?: DocumentStyling;
outputPath?: string;
}
/**
* 文档章节接口
*/
export interface DocumentSection {
id: string;
title: string;
content: string;
level: number;
order: number;
includeInToc: boolean;
metadata?: Record<string, any>;
}
/**
* 文档样式接口
*/
export interface DocumentStyling {
theme: 'default' | 'professional' | 'modern' | 'minimal';
primaryColor?: string;
fontFamily?: string;
fontSize?: string;
customCss?: string;
logoUrl?: string;
headerFooter?: {
header?: string;
footer?: string;
};
}
/**
* 生成的文档接口
*/
export interface GeneratedDocument {
id: string;
config: DocumentConfig;
content: string;
sections: DocumentSection[];
metadata: {
generatedAt: Date;
generatedBy: string;
version: string;
wordCount: number;
pageCount?: number;
lastModified?: Date;
};
assets?: DocumentAsset[];
}
/**
* 文档资源接口
*/
export interface DocumentAsset {
id: string;
type: 'image' | 'diagram' | 'chart' | 'file';
name: string;
path: string;
description?: string;
size?: number;
}
/**
* 文档模板接口
*/
export interface DocumentTemplate {
id: string;
name: string;
description: string;
type: DocumentType;
format: DocumentFormat;
sections: TemplateSection[];
variables: TemplateVariable[];
styling: DocumentStyling;
}
/**
* 模板章节接口
*/
export interface TemplateSection {
id: string;
title: string;
template: string;
level: number;
required: boolean;
conditional?: string;
}
/**
* 模板变量接口
*/
export interface TemplateVariable {
name: string;
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
description: string;
defaultValue?: any;
required: boolean;
}
/**
* 文档生成器类
*/
export declare class DocumentGenerator {
private logger;
private configManager;
private templates;
constructor(logger: Logger, configManager: ConfigManager);
/**
* 生成项目概览文档
* @param taskPlan 任务计划
* @param requirements 需求列表
* @param config 文档配置
*/
generateProjectOverview(taskPlan: TaskPlan, requirements: Requirement[], config?: Partial<DocumentConfig>): Promise<GeneratedDocument>;
/**
* 生成技术规格文档
* @param taskPlan 任务计划
* @param requirements 需求列表
* @param config 文档配置
*/
generateTechnicalSpec(taskPlan: TaskPlan, requirements: Requirement[], config?: Partial<DocumentConfig>): Promise<GeneratedDocument>;
/**
* 生成任务分解文档
* @param taskPlan 任务计划
* @param orchestrationResult 编排结果
* @param config 文档配置
*/
generateTaskBreakdown(taskPlan: TaskPlan, orchestrationResult?: OrchestrationResult, config?: Partial<DocumentConfig>): Promise<GeneratedDocument>;
/**
* 生成API文档
* @param taskPlan 任务计划
* @param requirements 需求列表
* @param config 文档配置
*/
generateApiDocumentation(taskPlan: TaskPlan, requirements: Requirement[], config?: Partial<DocumentConfig>): Promise<GeneratedDocument>;
/**
* 生成用户手册
* @param taskPlan 任务计划
* @param requirements 需求列表
* @param config 文档配置
*/
generateUserManual(taskPlan: TaskPlan, requirements: Requirement[], config?: Partial<DocumentConfig>): Promise<GeneratedDocument>;
/**
* 批量生成文档
* @param taskPlan 任务计划
* @param requirements 需求列表
* @param orchestrationResult 编排结果
* @param documentTypes 要生成的文档类型
*/
generateDocumentSuite(taskPlan: TaskPlan, requirements: Requirement[], orchestrationResult?: OrchestrationResult, documentTypes?: DocumentType[]): Promise<GeneratedDocument[]>;
/**
* 初始化默认模板
*/
private initializeDefaultTemplates;
/**
* 生成文档ID
*/
private generateDocumentId;
/**
* 渲染文档
* @param config 文档配置
* @param sections 文档章节
*/
private renderDocument;
/**
* 生成文档头部
* @param config 文档配置
*/
private generateDocumentHeader;
/**
* 生成目录
* @param sections 文档章节
*/
private generateTableOfContents;
/**
* 渲染章节
* @param section 文档章节
*/
private renderSection;
/**
* 生成文档尾部
*/
private generateDocumentFooter;
/**
* 统计字数
* @param content 文档内容
*/
private countWords;
/**
* 生成项目简介章节
* @param taskPlan 任务计划
* @param requirements 需求列表
*/
private generateIntroductionSection;
/**
* 生成项目目标章节
* @param requirements 需求列表
*/
private generateObjectivesSection;
/**
* 生成项目范围章节
* @param requirements 需求列表
*/
private generateScopeSection;
/**
* 生成时间线章节
* @param taskPlan 任务计划
*/
private generateTimelineSection;
/**
* 生成团队章节
* @param taskPlan 任务计划
*/
private generateTeamSection;
/**
* 生成风险评估章节
* @param taskPlan 任务计划
* @param requirements 需求列表
*/
private generateRisksSection;
/**
* 计算项目工期
* @param taskPlan 任务计划
*/
private calculateProjectDuration;
/**
* 获取团队规模
* @param taskPlan 任务计划
*/
private getTeamSize;
/**
* 提取技术栈
* @param requirements 需求列表
*/
private extractTechnologyStack;
/**
* 按模块分组需求
* @param requirements 需求列表
*/
private groupRequirementsByModule;
/**
* 推断需求所属模块
* @param title 需求标题
*/
private inferModule;
/**
* 按阶段分组任务
* @param tasks 任务列表
*/
private groupTasksByPhase;
/**
* 推断任务所属阶段
* @param task 任务
*/
private inferTaskPhase;
/**
* 获取阶段交付物
* @param phase 阶段名称
* @param tasks 阶段任务
*/
private getPhaseDeliverables;
/**
* 推断角色
* @param tasks 任务列表
*/
private inferRoles;
/**
* 提取所需技能
* @param tasks 任务列表
*/
private extractRequiredSkills;
/**
* 识别项目风险
* @param taskPlan 任务计划
* @param requirements 需求列表
*/
private identifyProjectRisks;
/**
* 生成架构设计章节
*/
private generateArchitectureSection;
/**
* 生成技术栈章节
*/
private generateTechnologyStackSection;
/**
* 生成数据模型章节
*/
private generateDataModelSection;
/**
* 生成API设计章节
*/
private generateApiDesignSection;
/**
* 生成安全设计章节
*/
private generateSecuritySection;
/**
* 生成性能设计章节
*/
private generatePerformanceSection;
/**
* 生成任务摘要章节
*/
private generateTaskSummarySection;
/**
* 生成任务列表章节
*/
private generateTaskListSection;
/**
* 生成依赖关系章节
*/
private generateDependenciesSection;
/**
* 生成任务时间线章节
*/
private generateTaskTimelineSection;
/**
* 生成资源分配章节
*/
private generateResourceAllocationSection;
/**
* 生成优化建议章节
*/
private generateOptimizationSection;
/**
* 获取任务状态统计
*/
private getTaskStatusCounts;
/**
* 提取API端点信息
*/
private extractApiEndpoints;
/**
* 生成API概览章节
*/
private generateApiOverviewSection;
/**
* 生成认证章节
*/
private generateAuthenticationSection;
/**
* 生成端点详情章节
*/
private generateEndpointsSection;
/**
* 生成API数据模型章节
*/
private generateApiDataModelsSection;
/**
* 生成错误码章节
*/
private generateErrorCodesSection;
/**
* 生成API示例章节
*/
private generateApiExamplesSection;
/**
* 提取用户功能
*/
private extractUserFeatures;
/**
* 生成快速开始章节
*/
private generateGettingStartedSection;
/**
* 生成功能说明章节
*/
private generateFeaturesSection;
/**
* 生成教程章节
*/
private generateTutorialsSection;
/**
* 生成FAQ章节
*/
private generateFaqSection;
/**
* 生成故障排除章节
*/
private generateTroubleshootingSection;
}