UNPKG

@aaswe/codebase-ai

Version:

AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs

201 lines 5.48 kB
/** * Module Knowledge Management System Types * * Type definitions for managing dual-purpose TTL files that serve both * Neo4j knowledge graph population and direct LLM context enhancement. */ export interface ModuleKnowledgeFile { filePath: string; modulePath: string; content: string; checksum: string; lastModified: Date; generatedAt: Date; version: string; businessContextEnhanced: boolean; validationStatus: ValidationStatus; } export interface ValidationStatus { isValid: boolean; syntaxErrors: ValidationError[]; semanticWarnings: ValidationWarning[]; businessContextCompleteness: number; lastValidated: Date; } export interface ValidationError { type: 'syntax' | 'schema' | 'reference'; message: string; line?: number; column?: number; severity: 'error' | 'warning'; suggestion?: string; } export interface ValidationWarning { type: 'incomplete_context' | 'placeholder_detected' | 'best_practice'; message: string; suggestion: string; line?: number; } export interface BusinessContextEnhancement { domain?: string; businessRules?: string[]; useCases?: string[]; stakeholders?: string[]; qualityAttributes?: QualityAttribute[]; constraints?: string[]; customProperties?: Record<string, string>; } export interface QualityAttribute { name: string; target: string; measurement: string; } export interface ConflictResolution { conflictId: string; filePath: string; conflictType: 'concurrent_edit' | 'code_vs_manual' | 'merge_conflict'; baseContent: string; localChanges: string; remoteChanges: string; resolvedContent?: string; resolution: 'auto' | 'manual' | 'pending'; timestamp: Date; } export interface KnowledgeFileUpdate { filePath: string; updateType: 'code_change' | 'manual_edit' | 'business_enhancement'; changes: FileChange[]; preserveBusinessContext: boolean; timestamp: Date; author?: string; } export interface FileChange { type: 'added' | 'modified' | 'removed'; section: 'technical' | 'business' | 'documentation'; property: string; oldValue?: string; newValue?: string; line?: number; } export interface LLMContextPreview { filePath: string; relevantFiles: string[]; contextContent: string; tokenCount: number; relevanceScore: number; businessContextRatio: number; technicalContextRatio: number; } export interface ModuleKnowledgeManagerOptions { autoValidate: boolean; preserveBusinessContext: boolean; enableConflictResolution: boolean; enableLLMPreview: boolean; validationLevel: 'strict' | 'moderate' | 'lenient'; backupEnabled: boolean; backupRetention: number; } export interface KnowledgeGraphUpdate { filePath: string; updateType: 'full' | 'incremental'; affectedNodes: string[]; affectedRelationships: string[]; timestamp: Date; success: boolean; error?: string; } export interface MCPContextUpdate { filePath: string; contextId: string; updateType: 'refresh' | 'invalidate'; affectedContext: string[]; timestamp: Date; success: boolean; } export interface DeveloperTooling { enhancementSuggestions: EnhancementSuggestion[]; completionStatus: CompletionStatus; impactAnalysis: ImpactAnalysis; } export interface EnhancementSuggestion { type: 'business_domain' | 'business_rules' | 'use_cases' | 'documentation'; priority: 'high' | 'medium' | 'low'; suggestion: string; example?: string; property: string; line?: number; } export interface CompletionStatus { businessDomain: boolean; businessRules: boolean; useCases: boolean; methodDocumentation: number; classDocumentation: number; overallCompleteness: number; } export interface ImpactAnalysis { llmContextImpact: 'high' | 'medium' | 'low'; graphQueryImpact: 'high' | 'medium' | 'low'; affectedFiles: string[]; dependentModules: string[]; estimatedBenefit: string; } export interface BackupMetadata { filePath: string; backupPath: string; timestamp: Date; reason: 'auto_update' | 'manual_edit' | 'conflict_resolution'; checksum: string; } export interface SyncStatus { filePath: string; lastSync: Date; syncType: 'knowledge_graph' | 'mcp_context' | 'both'; status: 'success' | 'failed' | 'pending'; error?: string; retryCount: number; } export type KnowledgeFileEvent = { type: 'file_created'; payload: ModuleKnowledgeFile; } | { type: 'file_updated'; payload: KnowledgeFileUpdate; } | { type: 'file_validated'; payload: ValidationStatus; } | { type: 'conflict_detected'; payload: ConflictResolution; } | { type: 'business_context_enhanced'; payload: BusinessContextEnhancement; } | { type: 'sync_completed'; payload: SyncStatus; } | { type: 'backup_created'; payload: BackupMetadata; }; export interface ModuleKnowledgeResult<T = any> { success: boolean; data?: T; error?: string; warnings?: string[]; metadata?: Record<string, any>; } export interface BatchOperationResult { totalFiles: number; successful: number; failed: number; errors: Array<{ filePath: string; error: string; }>; warnings: Array<{ filePath: string; warning: string; }>; duration: number; } //# sourceMappingURL=types.d.ts.map