/** * Augmentation Manifest Types * * Defines the manifest structure for augmentation discovery and configuration * Enables tools like brain-cloud to discover and configure augmentations */ /** * JSON Schema type for configuration validation */ export interface JSONSchema { type?: 'object' | 'array' | 'string' | 'number' | 'boolean' | 'null'; properties?: Record; items?: JSONSchema; required?: string[]; default?: any; description?: string; minimum?: number; maximum?: number; minLength?: number; maxLength?: number; pattern?: string; enum?: any[]; additionalProperties?: boolean | JSONSchema; } /** * Augmentation manifest for discovery and configuration */ export interface AugmentationManifest { /** * Unique identifier for the augmentation (e.g., 'wal', 'cache') */ id: string; /** * Display name for the augmentation */ name: string; /** * Semantic version (e.g., '2.0.0') */ version: string; /** * Author or organization */ author?: string; /** * Short description of what the augmentation does */ description: string; /** * Detailed description for documentation */ longDescription?: string; /** * Augmentation category for organization */ category: 'storage' | 'performance' | 'analytics' | 'integration' | 'internal' | 'core' | 'premium' | 'community' | 'external'; /** * JSON Schema for configuration options * Used to generate configuration UIs and validate configuration */ configSchema?: JSONSchema; /** * Default configuration values */ configDefaults?: Record; /** * Configuration examples for documentation */ configExamples?: Array<{ name: string; description: string; config: Record; }>; /** * Minimum Brainy version required */ minBrainyVersion?: string; /** * Maximum Brainy version supported */ maxBrainyVersion?: string; /** * Other augmentations this one depends on */ dependencies?: Array<{ id: string; version?: string; optional?: boolean; }>; /** * Keywords for search and discovery */ keywords?: string[]; /** * URL to documentation */ documentation?: string; /** * URL to source code repository */ repository?: string; /** * License identifier (e.g., 'MIT', 'Apache-2.0') */ license?: string; /** * UI hints for tools and configuration interfaces */ ui?: { /** * Icon for the augmentation (emoji or URL) */ icon?: string; /** * Color theme for UI */ color?: string; /** * Custom React component name for configuration */ configComponent?: string; /** * URL to dashboard or control panel */ dashboardUrl?: string; /** * Hide from UI listings */ hidden?: boolean; }; /** * Performance characteristics */ performance?: { /** * Estimated memory usage */ memoryUsage?: 'low' | 'medium' | 'high'; /** * CPU intensity */ cpuUsage?: 'low' | 'medium' | 'high'; /** * Network usage */ networkUsage?: 'none' | 'low' | 'medium' | 'high'; }; /** * Feature flags this augmentation provides */ features?: string[]; /** * Operations this augmentation enhances */ enhancedOperations?: string[]; /** * Metrics this augmentation exposes */ metrics?: Array<{ name: string; type: 'counter' | 'gauge' | 'histogram'; description: string; }>; /** * Status of the augmentation */ status?: 'stable' | 'beta' | 'experimental' | 'deprecated'; /** * Deprecation notice if applicable */ deprecation?: { since: string; alternative?: string; removalDate?: string; }; }