UNPKG

@invisiblecities/sidequest-cqo

Version:

Configuration-agnostic TypeScript and ESLint orchestrator with real-time watch mode, SQLite persistence, and intelligent terminal detection

120 lines 3.42 kB
/** * Configuration Manager for Code Quality Orchestrator * Handles database initialization, service configuration, and environment setup */ import { getStorageService } from "./storage-service.js"; import type { Kysely } from "kysely"; export interface OrchestratorServiceConfig { database: { path: string; enableWAL?: boolean; enableMetrics?: boolean; maxHistoryDays?: number; }; performance: { batchSize?: number; maxMemoryMB?: number; enableCaching?: boolean; }; scheduling: { defaultFrequencyMs?: number; adaptivePolling?: boolean; maxConcurrentChecks?: number; }; watch: { enabled?: boolean; intervalMs?: number; debounceMs?: number; autoCleanup?: boolean; }; monitoring: { enablePerformanceMetrics?: boolean; logLevel?: "debug" | "info" | "warn" | "error"; metricsRetentionDays?: number; }; } export declare const DEFAULT_CONFIG: OrchestratorServiceConfig; export declare class ConfigManager { private config; private databaseInitialized; private servicesInitialized; constructor(config?: Partial<OrchestratorServiceConfig>); /** * Deep merge configuration objects */ private mergeConfigs; /** * Get current configuration */ getConfig(): OrchestratorServiceConfig; /** * Update configuration (will require reinitialization) */ updateConfig(updates: Partial<OrchestratorServiceConfig>): void; /** * Initialize database with current configuration */ initializeDatabase(): Promise<Kysely<any>>; /** * Initialize all services */ initializeServices(): Promise<{ storageService: ReturnType<typeof getStorageService>; }>; /** * Perform health checks on all services */ healthCheck(): Promise<{ database: boolean; storageService: boolean; overall: boolean; }>; /** * Get comprehensive system statistics */ getSystemStats(): Promise<{ config: OrchestratorServiceConfig; database: any; storage: any; performance: { uptime: number; memoryUsage: ReturnType<typeof process.memoryUsage>; }; }>; /** * Perform maintenance tasks */ performMaintenance(): Promise<{ dataCleanup: any; databaseOptimization: boolean; errors: string[]; }>; /** * Gracefully shutdown all services */ shutdown(): Promise<void>; /** * Load configuration from file */ static loadFromFile(configPath: string): Promise<ConfigManager>; /** * Save configuration to file */ saveToFile(configPath: string): Promise<void>; /** * Create configuration for different environments */ static createEnvironmentConfig(environment: "development" | "test" | "production"): ConfigManager; } /** * Validate configuration object * @archaeology-exclude temporary "Will be replaced by Zod schema validation in next version" * @archaeology-recheck-after 0.3.0 * @since 0.2.0 */ export declare function validateConfig(config: Partial<OrchestratorServiceConfig>): string[]; /** * Get configuration based on environment */ export declare function getEnvironmentConfig(): ConfigManager; //# sourceMappingURL=config-manager.d.ts.map