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,28 @@
Copyright 2010-2021 Mike Bostock
Copyright 2001 Robert Penner
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the author nor the names of contributors may be used to
endorse or promote products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.backOut = exports.backInOut = exports.backIn = void 0;
var overshoot = 1.70158;
var backIn = function custom(s) {
s = +s;
function backIn(t) {
return (t = +t) * t * (s * (t - 1) + t);
}
backIn.overshoot = custom;
return backIn;
}(overshoot);
exports.backIn = backIn;
var backOut = function custom(s) {
s = +s;
function backOut(t) {
return --t * t * ((t + 1) * s + t) + 1;
}
backOut.overshoot = custom;
return backOut;
}(overshoot);
exports.backOut = backOut;
var backInOut = function custom(s) {
s = +s;
function backInOut(t) {
return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;
}
backInOut.overshoot = custom;
return backInOut;
}(overshoot);
exports.backInOut = backInOut;

View File

@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bounceIn = bounceIn;
exports.bounceInOut = bounceInOut;
exports.bounceOut = bounceOut;
var b1 = 4 / 11,
b2 = 6 / 11,
b3 = 8 / 11,
b4 = 3 / 4,
b5 = 9 / 11,
b6 = 10 / 11,
b7 = 15 / 16,
b8 = 21 / 22,
b9 = 63 / 64,
b0 = 1 / b1 / b1;
function bounceIn(t) {
return 1 - bounceOut(1 - t);
}
function bounceOut(t) {
return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;
}
function bounceInOut(t) {
return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;
}

View File

@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.circleIn = circleIn;
exports.circleInOut = circleInOut;
exports.circleOut = circleOut;
function circleIn(t) {
return 1 - Math.sqrt(1 - t * t);
}
function circleOut(t) {
return Math.sqrt(1 - --t * t);
}
function circleInOut(t) {
return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;
}

View File

@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.cubicIn = cubicIn;
exports.cubicInOut = cubicInOut;
exports.cubicOut = cubicOut;
function cubicIn(t) {
return t * t * t;
}
function cubicOut(t) {
return --t * t * t + 1;
}
function cubicInOut(t) {
return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;
}

View File

@@ -0,0 +1,72 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.elasticOut = exports.elasticInOut = exports.elasticIn = void 0;
var _math = require("./math.js");
var tau = 2 * Math.PI,
amplitude = 1,
period = 0.3;
var elasticIn = function custom(a, p) {
var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
function elasticIn(t) {
return a * (0, _math.tpmt)(- --t) * Math.sin((s - t) / p);
}
elasticIn.amplitude = function (a) {
return custom(a, p * tau);
};
elasticIn.period = function (p) {
return custom(a, p);
};
return elasticIn;
}(amplitude, period);
exports.elasticIn = elasticIn;
var elasticOut = function custom(a, p) {
var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
function elasticOut(t) {
return 1 - a * (0, _math.tpmt)(t = +t) * Math.sin((t + s) / p);
}
elasticOut.amplitude = function (a) {
return custom(a, p * tau);
};
elasticOut.period = function (p) {
return custom(a, p);
};
return elasticOut;
}(amplitude, period);
exports.elasticOut = elasticOut;
var elasticInOut = function custom(a, p) {
var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);
function elasticInOut(t) {
return ((t = t * 2 - 1) < 0 ? a * (0, _math.tpmt)(-t) * Math.sin((s - t) / p) : 2 - a * (0, _math.tpmt)(t) * Math.sin((s + t) / p)) / 2;
}
elasticInOut.amplitude = function (a) {
return custom(a, p * tau);
};
elasticInOut.period = function (p) {
return custom(a, p);
};
return elasticInOut;
}(amplitude, period);
exports.elasticInOut = elasticInOut;

View File

@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.expIn = expIn;
exports.expInOut = expInOut;
exports.expOut = expOut;
var _math = require("./math.js");
function expIn(t) {
return (0, _math.tpmt)(1 - +t);
}
function expOut(t) {
return 1 - (0, _math.tpmt)(t);
}
function expInOut(t) {
return ((t *= 2) <= 1 ? (0, _math.tpmt)(1 - t) : 2 - (0, _math.tpmt)(t - 1)) / 2;
}

View File

@@ -0,0 +1,247 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "easeBack", {
enumerable: true,
get: function () {
return _back.backInOut;
}
});
Object.defineProperty(exports, "easeBackIn", {
enumerable: true,
get: function () {
return _back.backIn;
}
});
Object.defineProperty(exports, "easeBackInOut", {
enumerable: true,
get: function () {
return _back.backInOut;
}
});
Object.defineProperty(exports, "easeBackOut", {
enumerable: true,
get: function () {
return _back.backOut;
}
});
Object.defineProperty(exports, "easeBounce", {
enumerable: true,
get: function () {
return _bounce.bounceOut;
}
});
Object.defineProperty(exports, "easeBounceIn", {
enumerable: true,
get: function () {
return _bounce.bounceIn;
}
});
Object.defineProperty(exports, "easeBounceInOut", {
enumerable: true,
get: function () {
return _bounce.bounceInOut;
}
});
Object.defineProperty(exports, "easeBounceOut", {
enumerable: true,
get: function () {
return _bounce.bounceOut;
}
});
Object.defineProperty(exports, "easeCircle", {
enumerable: true,
get: function () {
return _circle.circleInOut;
}
});
Object.defineProperty(exports, "easeCircleIn", {
enumerable: true,
get: function () {
return _circle.circleIn;
}
});
Object.defineProperty(exports, "easeCircleInOut", {
enumerable: true,
get: function () {
return _circle.circleInOut;
}
});
Object.defineProperty(exports, "easeCircleOut", {
enumerable: true,
get: function () {
return _circle.circleOut;
}
});
Object.defineProperty(exports, "easeCubic", {
enumerable: true,
get: function () {
return _cubic.cubicInOut;
}
});
Object.defineProperty(exports, "easeCubicIn", {
enumerable: true,
get: function () {
return _cubic.cubicIn;
}
});
Object.defineProperty(exports, "easeCubicInOut", {
enumerable: true,
get: function () {
return _cubic.cubicInOut;
}
});
Object.defineProperty(exports, "easeCubicOut", {
enumerable: true,
get: function () {
return _cubic.cubicOut;
}
});
Object.defineProperty(exports, "easeElastic", {
enumerable: true,
get: function () {
return _elastic.elasticOut;
}
});
Object.defineProperty(exports, "easeElasticIn", {
enumerable: true,
get: function () {
return _elastic.elasticIn;
}
});
Object.defineProperty(exports, "easeElasticInOut", {
enumerable: true,
get: function () {
return _elastic.elasticInOut;
}
});
Object.defineProperty(exports, "easeElasticOut", {
enumerable: true,
get: function () {
return _elastic.elasticOut;
}
});
Object.defineProperty(exports, "easeExp", {
enumerable: true,
get: function () {
return _exp.expInOut;
}
});
Object.defineProperty(exports, "easeExpIn", {
enumerable: true,
get: function () {
return _exp.expIn;
}
});
Object.defineProperty(exports, "easeExpInOut", {
enumerable: true,
get: function () {
return _exp.expInOut;
}
});
Object.defineProperty(exports, "easeExpOut", {
enumerable: true,
get: function () {
return _exp.expOut;
}
});
Object.defineProperty(exports, "easeLinear", {
enumerable: true,
get: function () {
return _linear.linear;
}
});
Object.defineProperty(exports, "easePoly", {
enumerable: true,
get: function () {
return _poly.polyInOut;
}
});
Object.defineProperty(exports, "easePolyIn", {
enumerable: true,
get: function () {
return _poly.polyIn;
}
});
Object.defineProperty(exports, "easePolyInOut", {
enumerable: true,
get: function () {
return _poly.polyInOut;
}
});
Object.defineProperty(exports, "easePolyOut", {
enumerable: true,
get: function () {
return _poly.polyOut;
}
});
Object.defineProperty(exports, "easeQuad", {
enumerable: true,
get: function () {
return _quad.quadInOut;
}
});
Object.defineProperty(exports, "easeQuadIn", {
enumerable: true,
get: function () {
return _quad.quadIn;
}
});
Object.defineProperty(exports, "easeQuadInOut", {
enumerable: true,
get: function () {
return _quad.quadInOut;
}
});
Object.defineProperty(exports, "easeQuadOut", {
enumerable: true,
get: function () {
return _quad.quadOut;
}
});
Object.defineProperty(exports, "easeSin", {
enumerable: true,
get: function () {
return _sin.sinInOut;
}
});
Object.defineProperty(exports, "easeSinIn", {
enumerable: true,
get: function () {
return _sin.sinIn;
}
});
Object.defineProperty(exports, "easeSinInOut", {
enumerable: true,
get: function () {
return _sin.sinInOut;
}
});
Object.defineProperty(exports, "easeSinOut", {
enumerable: true,
get: function () {
return _sin.sinOut;
}
});
var _linear = require("./linear.js");
var _quad = require("./quad.js");
var _cubic = require("./cubic.js");
var _poly = require("./poly.js");
var _sin = require("./sin.js");
var _exp = require("./exp.js");
var _circle = require("./circle.js");
var _bounce = require("./bounce.js");
var _back = require("./back.js");
var _elastic = require("./elastic.js");

View File

@@ -0,0 +1,10 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.linear = void 0;
const linear = t => +t;
exports.linear = linear;

View File

@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.tpmt = tpmt;
// tpmt is two power minus ten times t scaled to [0,1]
function tpmt(x) {
return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;
}

View File

@@ -0,0 +1,46 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.polyOut = exports.polyInOut = exports.polyIn = void 0;
var exponent = 3;
var polyIn = function custom(e) {
e = +e;
function polyIn(t) {
return Math.pow(t, e);
}
polyIn.exponent = custom;
return polyIn;
}(exponent);
exports.polyIn = polyIn;
var polyOut = function custom(e) {
e = +e;
function polyOut(t) {
return 1 - Math.pow(1 - t, e);
}
polyOut.exponent = custom;
return polyOut;
}(exponent);
exports.polyOut = polyOut;
var polyInOut = function custom(e) {
e = +e;
function polyInOut(t) {
return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;
}
polyInOut.exponent = custom;
return polyInOut;
}(exponent);
exports.polyInOut = polyInOut;

View File

@@ -0,0 +1,20 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.quadIn = quadIn;
exports.quadInOut = quadInOut;
exports.quadOut = quadOut;
function quadIn(t) {
return t * t;
}
function quadOut(t) {
return t * (2 - t);
}
function quadInOut(t) {
return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;
}

View File

@@ -0,0 +1,22 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.sinIn = sinIn;
exports.sinInOut = sinInOut;
exports.sinOut = sinOut;
var pi = Math.PI,
halfPi = pi / 2;
function sinIn(t) {
return +t === 1 ? 1 : 1 - Math.cos(t * halfPi);
}
function sinOut(t) {
return Math.sin(t * halfPi);
}
function sinInOut(t) {
return (1 - Math.cos(pi * t)) / 2;
}