@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
131 lines • 4.92 kB
TypeScript
/**
* Module Knowledge Manager
*
* Core orchestrator for managing dual-purpose TTL files that serve both
* Neo4j knowledge graph population and direct LLM context enhancement.
*
* This system bridges the gap between automated code analysis and developer
* business context enhancement, ensuring knowledge files remain accurate
* and valuable for both graph queries and LLM interactions.
*/
import { EventEmitter } from 'events';
import { AnalysisResult } from '../ast-analyzer/types';
import { ModuleKnowledgeFile, ModuleKnowledgeManagerOptions, ValidationStatus, ConflictResolution, LLMContextPreview, DeveloperTooling, ModuleKnowledgeResult, BatchOperationResult } from './types';
/**
* Module Knowledge Manager
*
* Manages the complete lifecycle of .module-knowledge.ttl files including:
* - Initial generation from code analysis
* - Developer business context enhancement
* - Validation and conflict resolution
* - Knowledge graph and MCP context synchronization
* - Developer tooling and preview capabilities
*/
export declare class ModuleKnowledgeManager extends EventEmitter {
private readonly rdfService;
private readonly rdfValidator;
private readonly options;
private readonly knowledgeFiles;
private readonly backupDirectory;
private readonly syncQueue;
private neo4jDriver;
private mcpContextCache;
private mcpClients;
private notificationQueue;
constructor(options?: Partial<ModuleKnowledgeManagerOptions>);
/**
* Initialize Module Knowledge Management System
*/
initialize(): Promise<ModuleKnowledgeResult<void>>;
/**
* Generate Initial Knowledge Files from Codebase
*/
generateInitialKnowledgeFiles(rootPath: string, options?: {
overwriteExisting?: boolean;
preserveBusinessContext?: boolean;
}): Promise<ModuleKnowledgeResult<BatchOperationResult>>;
/**
* Update Knowledge File from Code Changes
*/
updateKnowledgeFileFromCode(sourceFilePath: string, astResult: AnalysisResult): Promise<ModuleKnowledgeResult<ModuleKnowledgeFile>>;
/**
* Validate Knowledge File
*/
validateKnowledgeFile(filePath: string): Promise<ValidationStatus>;
/**
* Generate LLM Context Preview
*/
generateLLMContextPreview(currentFilePath: string, queryContext?: string): Promise<ModuleKnowledgeResult<LLMContextPreview>>;
/**
* Generate Developer Tooling Information
*/
generateDeveloperTooling(filePath: string): Promise<ModuleKnowledgeResult<DeveloperTooling>>;
/**
* Detect and Resolve Conflicts
*/
detectAndResolveConflicts(filePath: string): Promise<ModuleKnowledgeResult<ConflictResolution | null>>;
private setupEventHandlers;
private handleFileUpdate;
private handleFileValidation;
private handleConflictDetection;
private discoverExistingKnowledgeFiles;
private setupFileWatchers;
private cleanupOldBackups;
private generateKnowledgeFileForModule;
private getKnowledgeFilePath;
private fileExists;
private calculateChecksum;
private createBackup;
private extractBusinessContext;
private mergeBusinessContext;
private analyzeBusinessContextCompleteness;
private findRelevantKnowledgeFiles;
private analyzeContentComposition;
private calculateRelevanceScore;
private generateEnhancementSuggestions;
private calculateCompletionStatus;
private performImpactAnalysis;
private attemptAutoResolution;
private generateRemoteChangesSimulation;
private queueForSync;
private getSourceFilePathFromKnowledge;
private extractVersionFromContent;
private hasBusinessContext;
private generateBasicRDFContent;
private processSyncQueue;
private syncToKnowledgeGraph;
private syncToMCPContext;
private parseTTLContent;
private extractModuleId;
/**
* Check if Neo4j is available for knowledge graph operations
*/
private checkNeo4jAvailability;
private getNeo4jDriver;
private createGraphTriple;
private formatForMCP;
private extractTechnicalContent;
private extractRelationships;
private generateContentSummary;
private updateContextCache;
private notifyMCPClients;
private sendWebSocketNotification;
private sendWebhookNotification;
private sendQueueNotification;
private notifyDirectClient;
private processNotificationQueue;
private persistNotificationToDatabase;
private persistNotificationToFileSystem;
private analyzeAndUpdateFromSourceChange;
private performLightweightAST;
private getLanguageFromExtension;
private extractFunctions;
private extractClasses;
private extractImports;
private extractExports;
private calculateComplexity;
private extractDependencies;
private extractParameters;
private extractClassMethods;
}
//# sourceMappingURL=ModuleKnowledgeManager.d.ts.map