@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
TypeScript
/**
* 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