@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
133 lines • 4.04 kB
TypeScript
/**
* Project Analysis Service
*
* Core orchestrator for automatic project analysis and TTL generation.
* This service coordinates between AST analysis, RDF generation, and knowledge management
* to provide comprehensive project understanding and context generation.
*/
import { EventEmitter } from 'events';
export interface ProjectAnalysisConfig {
rootPath: string;
outputDirectory?: string;
languages?: string[];
includePatterns?: string[];
excludePatterns?: string[];
generateTTL?: boolean;
enableWatching?: boolean;
preserveBusinessContext?: boolean;
analysisDepth?: 'basic' | 'detailed' | 'comprehensive';
}
export interface ProjectAnalysisResult {
projectPath: string;
analysisId: string;
startTime: Date;
endTime: Date;
duration: number;
summary: {
totalFiles: number;
analyzedFiles: number;
skippedFiles: number;
errorFiles: number;
ttlFilesGenerated: number;
languageBreakdown: Record<string, number>;
};
files: Array<{
filePath: string;
language: string;
status: 'success' | 'error' | 'skipped';
ttlGenerated: boolean;
error?: string;
}>;
errors: Array<{
filePath: string;
error: string;
phase: 'discovery' | 'analysis' | 'ttl_generation';
}>;
warnings: string[];
recommendations: string[];
}
export interface ProjectStructure {
rootPath: string;
packageFiles: Array<{
path: string;
type: 'package.json' | 'requirements.txt' | 'pom.xml' | 'go.mod' | 'Cargo.toml' | 'CMakeLists.txt';
dependencies: string[];
}>;
sourceFiles: Array<{
path: string;
language: string;
size: number;
lastModified: Date;
}>;
directories: Array<{
path: string;
type: 'source' | 'test' | 'config' | 'docs' | 'build' | 'other';
fileCount: number;
}>;
projectType: 'web' | 'api' | 'library' | 'cli' | 'desktop' | 'mobile' | 'mixed' | 'unknown';
frameworks: string[];
buildTools: string[];
}
/**
* Project Analysis Service
*
* Provides comprehensive project analysis capabilities including:
* - Project structure detection and analysis
* - Multi-language code analysis and AST generation
* - Automatic TTL knowledge file generation
* - Real-time file watching and incremental updates
* - Integration with knowledge management system
*/
export declare class ProjectAnalysisService extends EventEmitter {
private codeIngestionService;
private moduleKnowledgeManager;
private analyzers;
private config;
private isInitialized;
constructor(config: ProjectAnalysisConfig);
/**
* Initialize the Project Analysis Service
*/
initialize(): Promise<void>;
/**
* Analyze entire project and generate TTL files
*/
analyzeProject(): Promise<ProjectAnalysisResult>;
/**
* Analyze specific files (incremental analysis)
*/
analyzeFiles(filePaths: string[]): Promise<ProjectAnalysisResult>;
/**
* Get project structure information
*/
getProjectStructure(): Promise<ProjectStructure>;
/**
* Get analysis status and metrics
*/
getAnalysisMetrics(): any;
/**
* Shutdown the service
*/
shutdown(): Promise<void>;
private setupAnalyzers;
private setupEventHandlers;
private discoverProjectStructure;
private discoverPackageFiles;
private discoverSourceFiles;
private discoverDirectories;
private analyzeSourceFiles;
private generateTTLFiles;
private setupProjectWatching;
private validateFilePaths;
private compileSummary;
private generateRecommendations;
private getLanguageFromFile;
private extractDependencies;
private determineProjectType;
private detectFrameworks;
private detectBuildTools;
private classifyDirectory;
private ensureInitialized;
private countFilesInDirectory;
}
//# sourceMappingURL=ProjectAnalysisService.d.ts.map