/** * Default Augmentation Registry * * 🧠⚛️ Pre-installed augmentations that come with every Brainy installation * These are the core "sensory organs" of the atomic age brain-in-jar system */ import { BrainyDataInterface } from '../types/brainyDataInterface.js' /** * Default augmentations that ship with Brainy * These are automatically registered on startup */ export class DefaultAugmentationRegistry { private brainy: BrainyDataInterface constructor(brainy: BrainyDataInterface) { this.brainy = brainy } /** * Initialize all default augmentations * Called during Brainy startup to register core functionality */ async initializeDefaults(): Promise { console.log('🧠⚛️ Initializing default augmentations...') // Register Neural Import as default SENSE augmentation await this.registerNeuralImport() console.log('🧠⚛️ Default augmentations initialized') } /** * Neural Import - Default SENSE Augmentation * AI-powered data understanding and entity extraction */ private async registerNeuralImport(): Promise { try { // Import the Neural Import augmentation const { NeuralImportSenseAugmentation } = await import('../augmentations/neuralImportSense.js') // Note: The actual registration is commented out since BrainyData doesn't have addAugmentation method yet // This would create instance with default configuration /* const neuralImport = new NeuralImportSenseAugmentation(this.brainy as any, { confidenceThreshold: 0.7, enableWeights: true, skipDuplicates: true }) // Add as SENSE augmentation to Brainy (when method is available) if (this.brainy.addAugmentation) { await this.brainy.addAugmentation('SENSE', neuralImport, { position: 1, // First in the SENSE pipeline name: 'neural-import', autoStart: true }) } */ console.log('🧠⚛️ Neural Import module loaded (awaiting BrainyData augmentation support)') } catch (error) { console.error('❌ Failed to register Neural Import:', error instanceof Error ? error.message : String(error)) // Don't throw - Brainy should still work without Neural Import } } /** * Check if Neural Import is available and working */ async checkNeuralImportHealth(): Promise<{ available: boolean status: string version?: string }> { try { // Check if Neural Import is registered as an augmentation // Note: hasAugmentation method doesn't exist yet in BrainyData const hasNeuralImport = false // this.brainy.hasAugmentation && this.brainy.hasAugmentation('SENSE', 'neural-import') return { available: hasNeuralImport || false, status: hasNeuralImport ? 'active' : 'not registered (awaiting BrainyData support)', version: '1.0.0' } } catch (error) { return { available: false, status: `Error: ${error instanceof Error ? error.message : String(error)}` } } } /** * Reinstall Neural Import if it's missing or corrupted */ async reinstallNeuralImport(): Promise { try { // Remove existing if present // Note: removeAugmentation method doesn't exist yet in BrainyData /* if (this.brainy.removeAugmentation) { try { await this.brainy.removeAugmentation('SENSE', 'neural-import') } catch (error) { // Ignore errors if augmentation doesn't exist } } */ // Re-register await this.registerNeuralImport() console.log('🧠⚛️ Neural Import reinstalled successfully') } catch (error) { throw new Error(`Failed to reinstall Neural Import: ${error instanceof Error ? error.message : String(error)}`) } } } /** * Helper function to initialize default augmentations for any Brainy instance */ export async function initializeDefaultAugmentations(brainy: BrainyDataInterface): Promise { const registry = new DefaultAugmentationRegistry(brainy) await registry.initializeDefaults() return registry }