codecrucible-synth
Version:
Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability
127 lines • 3.63 kB
TypeScript
/**
* Model Management Manager - Centralizes model lifecycle operations
* Extracted from UnifiedModelClient to provide focused model management capabilities
*/
import { EventEmitter } from 'events';
export interface ModelInfo {
name: string;
size?: number;
modified?: string;
digest?: string;
}
export interface ModelManagementConfig {
endpoint: string;
defaultModel: string;
requestTimeoutMs: number;
}
export interface IModelManagementManager {
/**
* Get all available models from the provider
*/
getAvailableModels(): Promise<ModelInfo[]>;
/**
* Get all available models (alias for backward compatibility)
*/
getAllAvailableModels(): Promise<ModelInfo[]>;
/**
* Get the best available model based on availability
*/
getBestAvailableModel(): Promise<string>;
/**
* Pull/download a model from the provider
*/
pullModel(modelName: string): Promise<boolean>;
/**
* Test if a model is working with a simple request
*/
testModel(modelName: string): Promise<boolean>;
/**
* Remove a model from the provider
*/
removeModel(modelName: string): Promise<boolean>;
/**
* Add an API-based model configuration
*/
addApiModel(config: any): Promise<boolean>;
/**
* Test an API-based model
*/
testApiModel(modelName: string): Promise<boolean>;
/**
* Remove an API-based model
*/
removeApiModel(modelName: string): boolean;
/**
* Auto-setup models with sensible defaults
*/
autoSetup(force?: boolean): Promise<{
success: boolean;
message: string;
}>;
/**
* Check if provider is available
*/
checkProviderStatus(): Promise<boolean>;
/**
* Cleanup resources
*/
cleanup(): Promise<void>;
}
export declare class ModelManagementManager extends EventEmitter implements IModelManagementManager {
private readonly config;
private readonly makeRequest;
private readonly generateTest;
constructor(config: ModelManagementConfig, makeRequest: (method: string, endpoint: string, data?: any) => Promise<Response>, generateTest: (request: any) => Promise<any>);
/**
* Get all available models from the provider
*/
getAvailableModels(): Promise<ModelInfo[]>;
/**
* Get all available models (alias for backward compatibility)
*/
getAllAvailableModels(): Promise<ModelInfo[]>;
/**
* Get the best available model based on availability
*/
getBestAvailableModel(): Promise<string>;
/**
* Pull/download a model from the provider
*/
pullModel(modelName: string): Promise<boolean>;
/**
* Test if a model is working with a simple request
*/
testModel(modelName: string): Promise<boolean>;
/**
* Remove a model from the provider
*/
removeModel(modelName: string): Promise<boolean>;
/**
* Add an API-based model configuration
*/
addApiModel(config: any): Promise<boolean>;
/**
* Test an API-based model
*/
testApiModel(modelName: string): Promise<boolean>;
/**
* Remove an API-based model
*/
removeApiModel(modelName: string): boolean;
/**
* Auto-setup models with sensible defaults
*/
autoSetup(force?: boolean): Promise<{
success: boolean;
message: string;
}>;
/**
* Check if provider is available
*/
checkProviderStatus(): Promise<boolean>;
/**
* Cleanup resources
*/
cleanup(): Promise<void>;
}
//# sourceMappingURL=model-management-manager.d.ts.map