 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>
		
			
				
	
	
		
			216 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			216 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @fileoverview Defines environment settings and globals.
 | |
|  * @author Elan Shanker
 | |
|  */
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Requirements
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| import globals from "globals";
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Helpers
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| /**
 | |
|  * Get the object that has difference.
 | |
|  * @param {Record<string,boolean>} current The newer object.
 | |
|  * @param {Record<string,boolean>} prev The older object.
 | |
|  * @returns {Record<string,boolean>} The difference object.
 | |
|  */
 | |
| function getDiff(current, prev) {
 | |
|     const retv = {};
 | |
| 
 | |
|     for (const [key, value] of Object.entries(current)) {
 | |
|         if (!Object.hasOwnProperty.call(prev, key)) {
 | |
|             retv[key] = value;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     return retv;
 | |
| }
 | |
| 
 | |
| const newGlobals2015 = getDiff(globals.es2015, globals.es5); // 19 variables such as Promise, Map, ...
 | |
| const newGlobals2017 = {
 | |
|     Atomics: false,
 | |
|     SharedArrayBuffer: false
 | |
| };
 | |
| const newGlobals2020 = {
 | |
|     BigInt: false,
 | |
|     BigInt64Array: false,
 | |
|     BigUint64Array: false,
 | |
|     globalThis: false
 | |
| };
 | |
| 
 | |
| const newGlobals2021 = {
 | |
|     AggregateError: false,
 | |
|     FinalizationRegistry: false,
 | |
|     WeakRef: false
 | |
| };
 | |
| 
 | |
| //------------------------------------------------------------------------------
 | |
| // Public Interface
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| /** @type {Map<string, import("../lib/shared/types").Environment>} */
 | |
| export default new Map(Object.entries({
 | |
| 
 | |
|     // Language
 | |
|     builtin: {
 | |
|         globals: globals.es5
 | |
|     },
 | |
|     es6: {
 | |
|         globals: newGlobals2015,
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 6
 | |
|         }
 | |
|     },
 | |
|     es2015: {
 | |
|         globals: newGlobals2015,
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 6
 | |
|         }
 | |
|     },
 | |
|     es2016: {
 | |
|         globals: newGlobals2015,
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 7
 | |
|         }
 | |
|     },
 | |
|     es2017: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 8
 | |
|         }
 | |
|     },
 | |
|     es2018: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 9
 | |
|         }
 | |
|     },
 | |
|     es2019: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 10
 | |
|         }
 | |
|     },
 | |
|     es2020: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 11
 | |
|         }
 | |
|     },
 | |
|     es2021: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 12
 | |
|         }
 | |
|     },
 | |
|     es2022: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 13
 | |
|         }
 | |
|     },
 | |
|     es2023: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 14
 | |
|         }
 | |
|     },
 | |
|     es2024: {
 | |
|         globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
 | |
|         parserOptions: {
 | |
|             ecmaVersion: 15
 | |
|         }
 | |
|     },
 | |
| 
 | |
|     // Platforms
 | |
|     browser: {
 | |
|         globals: globals.browser
 | |
|     },
 | |
|     node: {
 | |
|         globals: globals.node,
 | |
|         parserOptions: {
 | |
|             ecmaFeatures: {
 | |
|                 globalReturn: true
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     "shared-node-browser": {
 | |
|         globals: globals["shared-node-browser"]
 | |
|     },
 | |
|     worker: {
 | |
|         globals: globals.worker
 | |
|     },
 | |
|     serviceworker: {
 | |
|         globals: globals.serviceworker
 | |
|     },
 | |
| 
 | |
|     // Frameworks
 | |
|     commonjs: {
 | |
|         globals: globals.commonjs,
 | |
|         parserOptions: {
 | |
|             ecmaFeatures: {
 | |
|                 globalReturn: true
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     amd: {
 | |
|         globals: globals.amd
 | |
|     },
 | |
|     mocha: {
 | |
|         globals: globals.mocha
 | |
|     },
 | |
|     jasmine: {
 | |
|         globals: globals.jasmine
 | |
|     },
 | |
|     jest: {
 | |
|         globals: globals.jest
 | |
|     },
 | |
|     phantomjs: {
 | |
|         globals: globals.phantomjs
 | |
|     },
 | |
|     jquery: {
 | |
|         globals: globals.jquery
 | |
|     },
 | |
|     qunit: {
 | |
|         globals: globals.qunit
 | |
|     },
 | |
|     prototypejs: {
 | |
|         globals: globals.prototypejs
 | |
|     },
 | |
|     shelljs: {
 | |
|         globals: globals.shelljs
 | |
|     },
 | |
|     meteor: {
 | |
|         globals: globals.meteor
 | |
|     },
 | |
|     mongo: {
 | |
|         globals: globals.mongo
 | |
|     },
 | |
|     protractor: {
 | |
|         globals: globals.protractor
 | |
|     },
 | |
|     applescript: {
 | |
|         globals: globals.applescript
 | |
|     },
 | |
|     nashorn: {
 | |
|         globals: globals.nashorn
 | |
|     },
 | |
|     atomtest: {
 | |
|         globals: globals.atomtest
 | |
|     },
 | |
|     embertest: {
 | |
|         globals: globals.embertest
 | |
|     },
 | |
|     webextensions: {
 | |
|         globals: globals.webextensions
 | |
|     },
 | |
|     greasemonkey: {
 | |
|         globals: globals.greasemonkey
 | |
|     }
 | |
| }));
 |