 85bf1341f3
			
		
	
	85bf1341f3
	
	
	
		
			
			Frontend Enhancements: - Complete React TypeScript frontend with modern UI components - Distributed workflows management interface with real-time updates - Socket.IO integration for live agent status monitoring - Agent management dashboard with cluster visualization - Project management interface with metrics and task tracking - Responsive design with proper error handling and loading states Backend Infrastructure: - Distributed coordinator for multi-agent workflow orchestration - Cluster management API with comprehensive agent operations - Enhanced database models for agents and projects - Project service for filesystem-based project discovery - Performance monitoring and metrics collection - Comprehensive API documentation and error handling Documentation: - Complete distributed development guide (README_DISTRIBUTED.md) - Comprehensive development report with architecture insights - System configuration templates and deployment guides The platform now provides a complete web interface for managing the distributed AI cluster with real-time monitoring, workflow orchestration, and agent coordination capabilities. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Adapted from https://gist.github.com/mjackson/5311256
 | |
| function hueToRgb(p, q, t) {
 | |
|     if (t < 0)
 | |
|         t += 1;
 | |
|     if (t > 1)
 | |
|         t -= 1;
 | |
|     if (t < 1 / 6)
 | |
|         return p + (q - p) * 6 * t;
 | |
|     if (t < 1 / 2)
 | |
|         return q;
 | |
|     if (t < 2 / 3)
 | |
|         return p + (q - p) * (2 / 3 - t) * 6;
 | |
|     return p;
 | |
| }
 | |
| function hslaToRgba({ hue, saturation, lightness, alpha }) {
 | |
|     hue /= 360;
 | |
|     saturation /= 100;
 | |
|     lightness /= 100;
 | |
|     let red = 0;
 | |
|     let green = 0;
 | |
|     let blue = 0;
 | |
|     if (!saturation) {
 | |
|         red = green = blue = lightness;
 | |
|     }
 | |
|     else {
 | |
|         const q = lightness < 0.5
 | |
|             ? lightness * (1 + saturation)
 | |
|             : lightness + saturation - lightness * saturation;
 | |
|         const p = 2 * lightness - q;
 | |
|         red = hueToRgb(p, q, hue + 1 / 3);
 | |
|         green = hueToRgb(p, q, hue);
 | |
|         blue = hueToRgb(p, q, hue - 1 / 3);
 | |
|     }
 | |
|     return {
 | |
|         red: Math.round(red * 255),
 | |
|         green: Math.round(green * 255),
 | |
|         blue: Math.round(blue * 255),
 | |
|         alpha,
 | |
|     };
 | |
| }
 | |
| 
 | |
| export { hslaToRgba };
 |