UNPKG

taskflow-ai

Version:

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

430 lines (429 loc) 10.8 kB
/** * 文档生成器 - 自动生成项目文档 * 支持多种文档格式和模板,包括技术文档、用户手册、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; }