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>
39 lines
924 B
JavaScript
39 lines
924 B
JavaScript
"use strict";
|
|
// imported from https://github.com/galkn/querystring
|
|
/**
|
|
* Compiles a querystring
|
|
* Returns string representation of the object
|
|
*
|
|
* @param {Object}
|
|
* @api private
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.encode = encode;
|
|
exports.decode = decode;
|
|
function encode(obj) {
|
|
let str = '';
|
|
for (let i in obj) {
|
|
if (obj.hasOwnProperty(i)) {
|
|
if (str.length)
|
|
str += '&';
|
|
str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);
|
|
}
|
|
}
|
|
return str;
|
|
}
|
|
/**
|
|
* Parses a simple querystring into an object
|
|
*
|
|
* @param {String} qs
|
|
* @api private
|
|
*/
|
|
function decode(qs) {
|
|
let qry = {};
|
|
let pairs = qs.split('&');
|
|
for (let i = 0, l = pairs.length; i < l; i++) {
|
|
let pair = pairs[i].split('=');
|
|
qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);
|
|
}
|
|
return qry;
|
|
}
|