 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>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var path = require('path');
 | |
| var test = require('tape');
 | |
| var resolve = require('../');
 | |
| 
 | |
| test('moduleDirectory strings', function (t) {
 | |
|     t.plan(4);
 | |
|     var dir = path.join(__dirname, 'module_dir');
 | |
|     var xopts = {
 | |
|         basedir: dir,
 | |
|         moduleDirectory: 'xmodules'
 | |
|     };
 | |
|     resolve('aaa', xopts, function (err, res, pkg) {
 | |
|         t.ifError(err);
 | |
|         t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
 | |
|     });
 | |
| 
 | |
|     var yopts = {
 | |
|         basedir: dir,
 | |
|         moduleDirectory: 'ymodules'
 | |
|     };
 | |
|     resolve('aaa', yopts, function (err, res, pkg) {
 | |
|         t.ifError(err);
 | |
|         t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
 | |
|     });
 | |
| });
 | |
| 
 | |
| test('moduleDirectory array', function (t) {
 | |
|     t.plan(6);
 | |
|     var dir = path.join(__dirname, 'module_dir');
 | |
|     var aopts = {
 | |
|         basedir: dir,
 | |
|         moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
 | |
|     };
 | |
|     resolve('aaa', aopts, function (err, res, pkg) {
 | |
|         t.ifError(err);
 | |
|         t.equal(res, path.join(dir, '/xmodules/aaa/index.js'));
 | |
|     });
 | |
| 
 | |
|     var bopts = {
 | |
|         basedir: dir,
 | |
|         moduleDirectory: ['zmodules', 'ymodules', 'xmodules']
 | |
|     };
 | |
|     resolve('aaa', bopts, function (err, res, pkg) {
 | |
|         t.ifError(err);
 | |
|         t.equal(res, path.join(dir, '/ymodules/aaa/index.js'));
 | |
|     });
 | |
| 
 | |
|     var copts = {
 | |
|         basedir: dir,
 | |
|         moduleDirectory: ['xmodules', 'ymodules', 'zmodules']
 | |
|     };
 | |
|     resolve('bbb', copts, function (err, res, pkg) {
 | |
|         t.ifError(err);
 | |
|         t.equal(res, path.join(dir, '/zmodules/bbb/main.js'));
 | |
|     });
 | |
| });
 |