UNPKG

remcode

Version:

Turn your AI assistant into a codebase expert. Intelligent code analysis, semantic search, and software engineering guidance through MCP integration.

203 lines (202 loc) 5.2 kB
/** * Available embedding models */ /** * Available embedding models (Inference API compatible) */ export declare enum EmbeddingModel { CODEBERT = "microsoft/codebert-base", BGE_BASE = "BAAI/bge-base-en-v1.5", BGE_SMALL = "BAAI/bge-small-en-v1.5", MINILM = "sentence-transformers/all-MiniLM-L12-v2", GRAPHCODEBERT = "microsoft/graphcodebert-base", UNIXCODER = "microsoft/unixcoder-base", CODELLAMA = "codellama/CodeLlama-7b-hf" } /** * Vector DB providers */ export declare enum VectorProvider { PINECONE = "pinecone", QDRANT = "qdrant", MILVUS = "milvus", OPENSEARCH = "opensearch" } /** * Processing status values */ export declare enum ProcessingStatus { PENDING = "pending", PROCESSING = "processing", COMPLETED = "completed", FAILED = "failed" } /** * Repository configuration */ export interface RepositoryConfig { name: string; owner: string; url: string; defaultBranch: string; visibility?: 'public' | 'private'; description?: string; } /** * Processing configuration */ export interface ProcessingConfig { lastCommit: string; lastUpdate: string; status: ProcessingStatus; error?: string; lastProcessingDuration?: number; } /** * Vectorization configuration */ export interface VectorizationConfig { provider: VectorProvider; indexName: string; namespace: string; embeddingModel: EmbeddingModel | string; embeddingModelName?: string; embeddingDimension: number; chunkSize?: number; modelHealthy?: boolean; lastModelCheck?: string; availableModels?: Array<{ id: string; name: string; isHealthy: boolean; }>; } /** * Statistics configuration */ export interface StatisticsConfig { filesProcessed: number; chunksCreated: number; vectorsStored: number; lastUpdated?: string; totalTokens?: number; processingTime?: number; } /** * Advanced configuration options */ export interface AdvancedConfig { ignorePaths?: string[]; includeExtensions?: string[]; excludeExtensions?: string[]; maxFileSize?: number; customPrompts?: Record<string, string>; useCache?: boolean; webhooks?: WebhookConfig[]; } /** * Webhook configuration */ export interface WebhookConfig { url: string; events: string[]; secret?: string; active: boolean; } /** * Complete Remcode configuration */ export interface RemcodeConfig { version: string; initialized: string; repository: RepositoryConfig; processing: ProcessingConfig; vectorization: VectorizationConfig; statistics: StatisticsConfig; advanced?: AdvancedConfig; lastModified?: string; } /** * Configuration validation result */ export interface ConfigValidationResult { valid: boolean; errors: string[]; warnings: string[]; } /** * Class to manage Remcode configuration */ export declare class RemcodeConfigManager { private repoPath; private configPath; private readonly currentVersion; /** * Constructor * @param repoPath Path to the repository */ constructor(repoPath?: string); /** * Create initial configuration file * @param owner Repository owner * @param repo Repository name * @param options Additional configuration options * @returns The created configuration */ createInitialConfig(owner: string, repo: string, options?: Partial<RemcodeConfig>): Promise<RemcodeConfig>; /** * Read configuration from file * @returns The current configuration */ readConfig(): RemcodeConfig; /** * Update configuration with new values * @param updates Configuration updates * @returns The updated configuration */ updateConfig(updates?: Partial<RemcodeConfig>): RemcodeConfig; /** * Update processing status and statistics * @param status New processing status * @param stats Updated statistics * @param commit Last processed commit hash * @returns The updated configuration */ updateProcessingStatus(status: ProcessingStatus, stats?: Partial<StatisticsConfig>, commit?: string): RemcodeConfig; /** * Validate configuration * @param config Configuration to validate * @returns Validation result */ validateConfig(config: RemcodeConfig): ConfigValidationResult; /** * Build initial configuration * @param owner Repository owner * @param repo Repository name * @param options Additional configuration options * @returns Initial configuration */ private buildInitialConfig; /** * Deep merge two objects * @param target Target object * @param source Source object * @returns Merged object */ private deepMerge; /** * Upgrade configuration to the latest version * @param config Configuration to upgrade */ private upgradeConfig; /** * Check if configuration exists * @returns True if configuration exists */ configExists(): boolean; /** * Delete configuration file * @returns True if configuration was deleted */ deleteConfig(): boolean; }