Add comprehensive frontend UI and distributed infrastructure

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>
This commit is contained in:
anthonyrawlins
2025-07-10 08:41:59 +10:00
parent fc0eec91ef
commit 85bf1341f3
28348 changed files with 2646896 additions and 69 deletions

View File

@@ -0,0 +1,39 @@
import { polarToCartesian } from '../PolarUtils';
import { getRadialCursorPoints } from './getRadialCursorPoints';
export function getCursorPoints(layout, activeCoordinate, offset) {
var x1, y1, x2, y2;
if (layout === 'horizontal') {
x1 = activeCoordinate.x;
x2 = x1;
y1 = offset.top;
y2 = offset.top + offset.height;
} else if (layout === 'vertical') {
y1 = activeCoordinate.y;
y2 = y1;
x1 = offset.left;
x2 = offset.left + offset.width;
} else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {
if (layout === 'centric') {
var cx = activeCoordinate.cx,
cy = activeCoordinate.cy,
innerRadius = activeCoordinate.innerRadius,
outerRadius = activeCoordinate.outerRadius,
angle = activeCoordinate.angle;
var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);
var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);
x1 = innerPoint.x;
y1 = innerPoint.y;
x2 = outerPoint.x;
y2 = outerPoint.y;
} else {
return getRadialCursorPoints(activeCoordinate);
}
}
return [{
x: x1,
y: y1
}, {
x: x2,
y: y2
}];
}

View File

@@ -0,0 +1,11 @@
export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {
var halfSize = tooltipAxisBandSize / 2;
return {
stroke: 'none',
fill: '#ccc',
x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,
y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,
width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,
height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize
};
}

View File

@@ -0,0 +1,23 @@
import { polarToCartesian } from '../PolarUtils';
/**
* Only applicable for radial layouts
* @param {Object} activeCoordinate ChartCoordinate
* @returns {Object} RadialCursorPoints
*/
export function getRadialCursorPoints(activeCoordinate) {
var cx = activeCoordinate.cx,
cy = activeCoordinate.cy,
radius = activeCoordinate.radius,
startAngle = activeCoordinate.startAngle,
endAngle = activeCoordinate.endAngle;
var startPoint = polarToCartesian(cx, cy, radius, startAngle);
var endPoint = polarToCartesian(cx, cy, radius, endAngle);
return {
points: [startPoint, endPoint],
cx: cx,
cy: cy,
radius: radius,
startAngle: startAngle,
endAngle: endAngle
};
}