UNPKG

hikma-engine

Version:

Code Knowledge Graph Indexer - A sophisticated TypeScript-based indexer that transforms Git repositories into multi-dimensional knowledge stores for AI agents

122 lines 3.23 kB
/** * @file Centralized configuration management for hikma-engine. * Manages database connections, AI model settings, file patterns, and environment-specific configurations. */ export interface DatabaseConfig { sqlite: { path: string; vectorExtension?: string; }; } export interface AIConfig { embedding: { model: string; batchSize: number; provider: 'local' | 'transformers' | 'python' | 'server'; localEndpoint?: string; server?: { apiUrl: string; apiKey?: string; model: string; }; }; summary: { model: string; maxTokens: number; }; rag: { model: string; }; llmProvider: { provider: 'python' | 'server'; timeout: number; retryAttempts: number; retryDelay: number; server?: { apiUrl: string; apiKey: string; model: string; maxTokens?: number; temperature?: number; }; python?: { model: string; maxResults: number; }; }; } export interface IndexingConfig { filePatterns: string[]; ignorePatterns: string[]; maxFileSize: number; supportedLanguages: string[]; } export interface AppConfig { database: DatabaseConfig; ai: AIConfig; indexing: IndexingConfig; logging: { level: 'debug' | 'info' | 'warn' | 'error'; enableConsole: boolean; enableFile: boolean; logFilePath?: string; }; } /** * Configuration manager class that handles loading and merging configurations * from various sources (defaults, environment variables, config files). */ export declare class ConfigManager { private config; private projectRoot; constructor(projectRoot: string); /** * Loads configuration from various sources and merges them. * Priority: Environment variables > Config file > Defaults */ private loadConfig; /** * Gets the complete configuration object. */ getConfig(): AppConfig; /** * Gets database configuration. */ getDatabaseConfig(): DatabaseConfig; /** * Gets AI configuration. */ getAIConfig(): AIConfig; /** * Gets indexing configuration. */ getIndexingConfig(): IndexingConfig; /** * Gets logging configuration. */ getLoggingConfig(): { level: "debug" | "info" | "warn" | "error"; enableConsole: boolean; enableFile: boolean; logFilePath?: string; }; /** * Updates configuration at runtime (useful for testing or dynamic configuration). */ updateConfig(updates: Partial<AppConfig>): void; /** * Validates the LLM provider configuration. * @throws Error if configuration is invalid */ validateLLMProviderConfig(): void; } /** * Initializes the global configuration manager. */ export declare function initializeConfig(projectRoot: string): ConfigManager; /** * Gets the global configuration manager instance. * Throws an error if not initialized. */ export declare function getConfig(): ConfigManager; //# sourceMappingURL=index.d.ts.map