UNPKG

claude-flow-multilang

Version:

Revolutionary multilingual AI orchestration framework with cultural awareness and DDD architecture

309 lines (216 loc) โ€ข 8.95 kB
# Enhanced Web UI Architecture ## ๐ŸŽฏ Overview This is the modular UI architecture designed to support **71+ MCP tools and CLI commands** for Claude Flow. The architecture provides a comprehensive interface that can run in multiple modes: full browser UI, enhanced terminal interface, or fallback mode. ## ๐Ÿ—๏ธ Architecture Components ### Core System (`/core/`) - **`UIManager.js`** - Central UI controller that coordinates all views and manages global state - **`MCPIntegrationLayer.js`** - Bridge between UI and Claude Flow MCP tools with caching and error handling - **`EventBus.js`** - Central event communication system for loose coupling between components - **`ViewManager.js`** - Dynamic view loading and state management with transitions - **`StateManager.js`** - Global state persistence and user preferences ### Component Library (`/components/`) - **`ComponentLibrary.js`** - Reusable UI components (charts, forms, panels, etc.) with consistent theming ### Views (`/views/`) - **`NeuralNetworkView.js`** - Example view implementation for neural network tools - **More views** - Each tool category gets its own specialized view ### Main Controllers - **`EnhancedWebUI.js`** - Main enhanced UI controller with fallback support - **`EnhancedProcessUI.js`** - Enhanced version of the original process UI with 71+ tools - **`index.js`** - Main entry point and auto-initialization ## ๐Ÿ”ง Tool Categories Supported | Category | Tools | Description | | ---------------------------- | ----- | --------------------------------------------------------- | | ๐Ÿง  **Neural Network** | 15 | Training, prediction, patterns, models, WASM optimization | | ๐Ÿ’พ **Memory Management** | 10 | Storage, backup, sync, analytics, namespaces | | ๐Ÿ“Š **Monitoring & Analysis** | 13 | Performance, bottlenecks, health, metrics, trends | | ๐Ÿ”„ **Workflow & Automation** | 11 | Workflows, pipelines, scheduling, triggers, SPARC modes | | ๐Ÿ™ **GitHub Integration** | 8 | Repository analysis, PR management, release coordination | | ๐Ÿค– **Dynamic Agents (DAA)** | 8 | Agent creation, consensus, fault tolerance, optimization | | ๐Ÿ› ๏ธ **System Utilities** | 6 | Security, backup, diagnostics, configuration | | โŒจ๏ธ **CLI Commands** | 9 | Bridge to command-line tools and operations | **Total: 71+ tools and commands** ## ๐Ÿš€ Usage ### Browser Environment ```javascript import { initializeEnhancedUI } from './ui/web-ui/index.js'; // Full UI manager mode const ui = await initializeEnhancedUI({ mode: 'full' }); await ui.navigateToView('neural'); await ui.executeMCPTool('neural_train', { epochs: 100 }); ``` ### Terminal Environment ```javascript import { launchTerminalUI } from './ui/web-ui/index.js'; // Launch enhanced terminal interface await launchTerminalUI(); ``` ### Enhance Existing UI ```javascript import { initializeEnhancedUI } from './ui/web-ui/index.js'; // Enhance existing process UI const enhanced = await initializeEnhancedUI({ mode: 'enhanced', existingUI: existingProcessUI, }); ``` ### Auto-Initialization The system automatically detects the environment and initializes appropriately: - **Browser**: Creates full UI manager with DOM integration - **Node.js with existing UI**: Enhances existing interface - **Terminal**: Provides enhanced terminal interface - **Fallback**: Always provides basic functionality ## ๐ŸŽจ Views and Navigation ### View Structure Each view follows a consistent pattern: ```javascript export default class ExampleView { constructor(container, eventBus, viewConfig) { this.container = container; this.eventBus = eventBus; this.viewConfig = viewConfig; } async render(params = {}) { // Create UI based on environment (DOM or terminal) } async destroy() { // Cleanup resources } } ``` ### Navigation System - **Keyboard Shortcuts**: 0-9, Tab, Arrow keys - **View Categories**: Overview, Processes, Tools by category - **Quick Actions**: Direct tool execution shortcuts - **Command Palette**: Ctrl+K for command search ## ๐Ÿ”Œ MCP Tool Integration ### Tool Execution ```javascript // Execute any MCP tool through the integration layer const result = await ui.executeMCPTool('neural_train', { pattern_type: 'coordination', training_data: 'sample_data', epochs: 50, }); ``` ### Real-time Updates - **Event-driven**: Tools emit events on completion - **Caching**: Intelligent caching with TTL - **Statistics**: Usage tracking and performance metrics - **Error Handling**: Graceful degradation and retry logic ## ๐Ÿ’พ State Management ### Persistence - **Local Storage**: Browser environment - **File System**: Node.js environment - **Auto-save**: Configurable intervals - **Import/Export**: State backup and restore ### State Structure ```javascript { preferences: { theme: 'dark', autoSave: true }, viewStates: { neural: { lastModel: 'model_123' } }, toolResults: { neural_train: { result: {...}, timestamp: 123 } }, sessionData: { currentSwarm: 'swarm_456' } } ``` ## ๐ŸŽฏ Event System ### Event Categories - **`ui:*`** - UI lifecycle and interactions - **`tool:*`** - MCP tool execution and results - **`view:*`** - View navigation and state changes - **`state:*`** - State persistence and updates ### Event Usage ```javascript // Listen for tool results eventBus.on('tool:executed', (data) => { console.log(`Tool ${data.tool} completed:`, data.result); }); // Emit navigation events eventBus.emit('view:navigate', { viewId: 'neural', params: {} }); ``` ## ๐ŸŽจ Component Library ### Available Components - **ToolPanel**: Reusable tool interface panel - **MetricsChart**: Real-time charts and graphs - **CommandPalette**: VS Code-style command interface - **ProgressBar**: Operation progress indicators - **StatusBadge**: Status indicators with color coding - **FormBuilder**: Dynamic form generation - **TabContainer**: Tabbed content organization ### Usage Example ```javascript const toolPanel = componentLibrary.getComponent('ToolPanel')({ title: 'Neural Network Tools', description: 'AI model training and optimization', }); toolPanel.append(someContent); ``` ## ๐Ÿ”ง Customization ### Adding New Views 1. **Create view class** in `/views/NewView.js` 2. **Register in UIManager** view configurations 3. **Add navigation** shortcuts and menu items 4. **Implement tool handlers** for view-specific tools ### Adding New Tools 1. **Register in MCPIntegrationLayer** tool definitions 2. **Add to tool categories** in UIManager 3. **Create view handlers** for tool-specific UI 4. **Update help system** with tool documentation ### Theming ```javascript // Update theme eventBus.emit('ui:theme:changed', 'light'); // Component library automatically updates styles ``` ## ๐Ÿ” Debugging ### Debug Information ```javascript // Get system status const status = await ui.getSystemStatus(); // View event history eventBus.getEventHistory(50); // Tool execution statistics const stats = mcpIntegration.getToolUsageStats(); ``` ### Logging - **Event Bus**: All events logged with timestamps - **Tool Execution**: Detailed execution logs with performance metrics - **Error Tracking**: Comprehensive error handling and reporting ## ๐Ÿงช Testing ### Component Testing Each component includes test interfaces: ```javascript // Test tool execution await ui.executeTool('neural_train', { test: true }); // Mock data generation const mockData = mcpIntegration.generateMockData('neural_status'); ``` ### Integration Testing - **Cross-platform**: Browser, Node.js, terminal environments - **Fallback modes**: Graceful degradation testing - **Performance**: Load testing with multiple tools ## ๐Ÿš€ Performance ### Optimizations - **Lazy Loading**: Views loaded on demand - **Caching**: Intelligent tool result caching - **Event Batching**: Efficient event processing - **Memory Management**: Automatic cleanup and limits ### Metrics - **Tool Execution**: Average response times - **Memory Usage**: State and cache size monitoring - **Event Throughput**: Events processed per second - **View Performance**: Render and transition times ## ๐Ÿ”ฎ Future Enhancements ### Planned Features - **Web Components**: Native web component versions - **Real-time Collaboration**: Multi-user support - **Plugin System**: Third-party view and tool plugins - **Advanced Theming**: Custom CSS and layout options - **Offline Support**: Progressive Web App features ### Extensibility The architecture is designed for easy extension: - **Modular Views**: Add new tool categories - **Component Library**: Extend with new UI components - **Event System**: Custom event handlers and workflows - **State Management**: Additional persistence backends ## ๐Ÿ“ License Part of the Claude Flow project. See main project license.