Open source vector database with HNSW indexing, graph relationships, and metadata facets. Features CLI with professional augmentation registry integration for discovering extensions and capabilities.
112 lines
No EOL
3.2 KiB
JavaScript
112 lines
No EOL
3.2 KiB
JavaScript
/**
|
|
* Type-safe augmentation management system for Brainy
|
|
* Provides a clean API for managing augmentations without string literals
|
|
*/
|
|
import { augmentationPipeline } from './augmentationPipeline.js';
|
|
/**
|
|
* Type-safe augmentation manager
|
|
* Accessed via brain.augmentations for all management operations
|
|
*/
|
|
export class AugmentationManager {
|
|
constructor() {
|
|
this.pipeline = augmentationPipeline;
|
|
}
|
|
/**
|
|
* List all registered augmentations with their status
|
|
* @returns Array of augmentation information
|
|
*/
|
|
list() {
|
|
return this.pipeline.listAugmentationsWithStatus();
|
|
}
|
|
/**
|
|
* Get information about a specific augmentation
|
|
* @param name The augmentation name
|
|
* @returns Augmentation info or undefined if not found
|
|
*/
|
|
get(name) {
|
|
const all = this.list();
|
|
return all.find(a => a.name === name);
|
|
}
|
|
/**
|
|
* Check if an augmentation is enabled
|
|
* @param name The augmentation name
|
|
* @returns True if enabled, false otherwise
|
|
*/
|
|
isEnabled(name) {
|
|
const aug = this.get(name);
|
|
return aug?.enabled ?? false;
|
|
}
|
|
/**
|
|
* Enable a specific augmentation
|
|
* @param name The augmentation name
|
|
* @returns True if successfully enabled
|
|
*/
|
|
enable(name) {
|
|
return this.pipeline.enableAugmentation(name);
|
|
}
|
|
/**
|
|
* Disable a specific augmentation
|
|
* @param name The augmentation name
|
|
* @returns True if successfully disabled
|
|
*/
|
|
disable(name) {
|
|
return this.pipeline.disableAugmentation(name);
|
|
}
|
|
/**
|
|
* Remove an augmentation from the pipeline
|
|
* @param name The augmentation name
|
|
* @returns True if successfully removed
|
|
*/
|
|
remove(name) {
|
|
this.pipeline.unregister(name);
|
|
return true;
|
|
}
|
|
/**
|
|
* Enable all augmentations of a specific type
|
|
* @param type The augmentation type
|
|
* @returns Number of augmentations enabled
|
|
*/
|
|
enableType(type) {
|
|
return this.pipeline.enableAugmentationType(type);
|
|
}
|
|
/**
|
|
* Disable all augmentations of a specific type
|
|
* @param type The augmentation type
|
|
* @returns Number of augmentations disabled
|
|
*/
|
|
disableType(type) {
|
|
return this.pipeline.disableAugmentationType(type);
|
|
}
|
|
/**
|
|
* Get all augmentations of a specific type
|
|
* @param type The augmentation type
|
|
* @returns Array of augmentations of that type
|
|
*/
|
|
listByType(type) {
|
|
return this.list().filter(a => a.type === type);
|
|
}
|
|
/**
|
|
* Get all enabled augmentations
|
|
* @returns Array of enabled augmentations
|
|
*/
|
|
listEnabled() {
|
|
return this.list().filter(a => a.enabled);
|
|
}
|
|
/**
|
|
* Get all disabled augmentations
|
|
* @returns Array of disabled augmentations
|
|
*/
|
|
listDisabled() {
|
|
return this.list().filter(a => !a.enabled);
|
|
}
|
|
/**
|
|
* Register a new augmentation (internal use)
|
|
* @param augmentation The augmentation to register
|
|
*/
|
|
register(augmentation) {
|
|
this.pipeline.register(augmentation);
|
|
}
|
|
}
|
|
// Export types for external use
|
|
export { AugmentationType } from './types/augmentations.js';
|
|
//# sourceMappingURL=augmentationManager.js.map
|