UNPKG

@aaswe/codebase-ai

Version:

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

87 lines 2.49 kB
/** * Trigger Orchestrator * * Orchestrates automatic project analysis triggers from various sources * including NPM hooks, file system changes, and manual triggers. */ import { EventEmitter } from 'events'; export interface TriggerConfig { projectRoot: string; enableNPMHooks: boolean; enableInstallationDetection: boolean; enableFileWatching: boolean; analysisDelay: number; maxConcurrentAnalyses: number; cooldownPeriod: number; } export interface AnalysisTrigger { id: string; type: 'npm_hook' | 'installation' | 'file_change' | 'manual' | 'api'; timestamp: Date; source: string; reason: string; priority: 'low' | 'medium' | 'high'; metadata?: any; } export interface TriggerResult { triggerId: string; success: boolean; analysisId?: string; startTime: Date; endTime: Date; duration: number; error?: string; } /** * Trigger Orchestrator * * Central coordinator for all automatic analysis triggers. * Manages trigger sources, queuing, and execution coordination. */ export declare class TriggerOrchestrator extends EventEmitter { private config; private npmHookManager?; private installationDetector?; private projectAnalysisService?; private isInitialized; private triggerQueue; private activeTriggers; private lastAnalysisTime?; private triggerHistory; constructor(config?: Partial<TriggerConfig>); /** * Initialize the trigger orchestrator */ initialize(): Promise<void>; /** * Manually trigger analysis */ triggerAnalysis(reason?: string, priority?: AnalysisTrigger['priority'], metadata?: any): Promise<string>; /** * Get trigger status and statistics */ getStatus(): { isInitialized: boolean; config: TriggerConfig; queueLength: number; activeTriggers: number; lastAnalysis?: Date | undefined; recentTriggers: TriggerResult[]; }; /** * Shutdown the orchestrator */ shutdown(): Promise<void>; private setupNPMHookListeners; private setupInstallationDetectorListeners; private setupProjectAnalysisListeners; private queueTrigger; private startTriggerProcessing; private processTriggerQueue; private processTrigger; private isInCooldownPeriod; private getCooldownRemaining; private determinePriority; private generateTriggerId; } //# sourceMappingURL=TriggerOrchestrator.d.ts.map