UNPKG

@aaswe/codebase-ai

Version:

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

93 lines 2.94 kB
/** * Code Ingestion Service * Main orchestrator for code ingestion, Git monitoring, and file watching */ import { EventEmitter } from 'events'; import { BaseAnalyzer } from '../ast-analyzer/BaseAnalyzer'; import { Repository, IngestionJob, WebhookPayload, IngestionConfig, IngestionMetrics } from './types'; export declare class CodeIngestionService extends EventEmitter { private gitService; private fileWatcher; private jobQueue; private astAnalyzer; private config; private metrics; private isInitialized; constructor(astAnalyzer: BaseAnalyzer, config?: Partial<IngestionConfig>); /** * Initialize the code ingestion service */ initialize(): Promise<void>; /** * Add a repository for monitoring and analysis */ addRepository(config: { name: string; path: string; url?: string; branch?: string; enableWebhooks?: boolean; enableFileWatcher?: boolean; includePatterns?: string[]; excludePatterns?: string[]; languages?: string[]; }): Promise<Repository>; /** * Remove a repository from monitoring */ removeRepository(repositoryId: string): Promise<void>; /** * Process webhook payload from Git providers */ processWebhook(payload: WebhookPayload): Promise<void>; /** * Queue full repository analysis */ queueFullAnalysis(repositoryId: string, triggerType?: 'manual' | 'webhook' | 'file_watcher' | 'scheduled'): Promise<IngestionJob>; /** * Queue incremental analysis for specific files */ queueIncrementalAnalysis(repositoryId: string, commitHash?: string, changedFiles?: string[], triggerType?: 'manual' | 'webhook' | 'file_watcher' | 'scheduled'): Promise<IngestionJob>; /** * Queue TTL file synchronization */ queueTTLSync(repositoryId: string, ttlFilePath: string): Promise<IngestionJob>; /** * Get repository by ID */ getRepository(repositoryId: string): Repository | undefined; /** * Get all repositories */ getRepositories(): Repository[]; /** * Get job by ID */ getJob(jobId: string): IngestionJob | undefined; /** * Get jobs for a repository */ getRepositoryJobs(repositoryId: string): IngestionJob[]; /** * Get service metrics */ getMetrics(): IngestionMetrics; /** * Shutdown the service */ shutdown(): Promise<void>; private setupEventHandlers; private processJob; private processFullAnalysis; private processIncrementalAnalysis; private processFileChange; private processTTLSync; private createAnalysisSummary; private updateMetrics; private parseTTLContent; private storeTTLMetadata; private calculateChecksum; private ensureInitialized; } export default CodeIngestionService; //# sourceMappingURL=CodeIngestionService.d.ts.map