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