UNPKG

@aaswe/codebase-ai

Version:

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

73 lines 2.09 kB
/** * Installation Detector * * Detects package installations, updates, and dependency changes * to trigger appropriate analysis workflows. */ import { EventEmitter } from 'events'; export interface PackageChange { name: string; oldVersion?: string; newVersion: string; changeType: 'added' | 'updated' | 'removed'; isDev: boolean; } export interface InstallationEvent { type: 'package_installed' | 'package_updated' | 'package_removed' | 'lockfile_changed'; timestamp: Date; projectRoot: string; changes: PackageChange[]; packageManager: 'npm' | 'yarn' | 'pnpm' | 'unknown'; triggerAnalysis: boolean; } export interface DetectorConfig { projectRoot: string; watchLockFiles: boolean; watchPackageJson: boolean; debounceDelay: number; ignoreDevDependencies: boolean; } /** * Installation Detector * * Monitors package installations and dependency changes to trigger * automatic project analysis when significant changes occur. */ export declare class InstallationDetector extends EventEmitter { private config; private isActive; private watchers; private lastPackageSnapshot?; private debounceTimer?; constructor(config?: Partial<DetectorConfig>); /** * Start monitoring for installation events */ startMonitoring(): Promise<void>; /** * Stop monitoring */ stopMonitoring(): Promise<void>; /** * Manually detect changes (for testing or one-time checks) */ detectChanges(): Promise<InstallationEvent | null>; /** * Get current monitoring status */ getStatus(): { isActive: boolean; config: DetectorConfig; watcherCount: number; lastSnapshot?: Date | undefined; }; private setupPackageJsonWatcher; private setupLockFileWatchers; private scheduleChangeDetection; private createPackageSnapshot; private compareSnapshots; private determineEventType; private shouldTriggerAnalysis; private detectPackageManager; } //# sourceMappingURL=InstallationDetector.d.ts.map