remcode
Version:
Turn your AI assistant into a codebase expert. Intelligent code analysis, semantic search, and software engineering guidance through MCP integration.
74 lines (73 loc) • 2.18 kB
TypeScript
/**
* Model Initialization Service
*
* Handles programmatic initialization and validation of HuggingFace models
* during remcode setup. Ensures embedding models are available and working
* before proceeding with repository processing.
*/
/**
* Model initialization result
*/
export interface ModelInitializationResult {
success: boolean;
modelId: string;
modelName: string;
embeddingDimension: number;
isHealthy: boolean;
error?: string;
availableModels?: Array<{
id: string;
name: string;
isHealthy: boolean;
}>;
}
/**
* Model initialization options
*/
export interface ModelInitializationOptions {
token: string;
preferredModel?: string;
testEmbedding?: boolean;
}
/**
* Class for initializing and validating embedding models during setup
*/
export declare class ModelInitializer {
private token;
constructor(token: string);
/**
* Initialize embedding model for remcode setup
* Tests model availability and validates embedding generation
* @param options Initialization options
* @returns Model initialization result
*/
initializeEmbeddingModel(options: ModelInitializationOptions): Promise<ModelInitializationResult>;
/**
* Test embedding generation with sample code
* @param embeddingManager The embedding manager to test
*/
private testEmbeddingGeneration;
/**
* Validate HuggingFace token by testing API access
* @param token The token to validate
* @returns True if token is valid and has required permissions
*/
static validateToken(token: string): Promise<boolean>;
/**
* Get model configuration for .remcode file
* @param initResult Model initialization result
* @returns Model configuration object
*/
static getModelConfiguration(initResult: ModelInitializationResult): {
embeddingModel: string;
embeddingModelName: string;
embeddingDimension: number;
modelHealthy: boolean;
lastModelCheck: string;
availableModels: {
id: string;
name: string;
isHealthy: boolean;
}[];
};
}