 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>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| import toFormData from './toFormData.js';
 | |
| 
 | |
| /**
 | |
|  * It encodes a string by replacing all characters that are not in the unreserved set with
 | |
|  * their percent-encoded equivalents
 | |
|  *
 | |
|  * @param {string} str - The string to encode.
 | |
|  *
 | |
|  * @returns {string} The encoded string.
 | |
|  */
 | |
| function encode(str) {
 | |
|   const charMap = {
 | |
|     '!': '%21',
 | |
|     "'": '%27',
 | |
|     '(': '%28',
 | |
|     ')': '%29',
 | |
|     '~': '%7E',
 | |
|     '%20': '+',
 | |
|     '%00': '\x00'
 | |
|   };
 | |
|   return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {
 | |
|     return charMap[match];
 | |
|   });
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * It takes a params object and converts it to a FormData object
 | |
|  *
 | |
|  * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 | |
|  * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 | |
|  *
 | |
|  * @returns {void}
 | |
|  */
 | |
| function AxiosURLSearchParams(params, options) {
 | |
|   this._pairs = [];
 | |
| 
 | |
|   params && toFormData(params, this, options);
 | |
| }
 | |
| 
 | |
| const prototype = AxiosURLSearchParams.prototype;
 | |
| 
 | |
| prototype.append = function append(name, value) {
 | |
|   this._pairs.push([name, value]);
 | |
| };
 | |
| 
 | |
| prototype.toString = function toString(encoder) {
 | |
|   const _encode = encoder ? function(value) {
 | |
|     return encoder.call(this, value, encode);
 | |
|   } : encode;
 | |
| 
 | |
|   return this._pairs.map(function each(pair) {
 | |
|     return _encode(pair[0]) + '=' + _encode(pair[1]);
 | |
|   }, '').join('&');
 | |
| };
 | |
| 
 | |
| export default AxiosURLSearchParams;
 |