 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>
		
			
				
	
	
		
			53 lines
		
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			985 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env node
 | |
| var which = require("../")
 | |
| if (process.argv.length < 3)
 | |
|   usage()
 | |
| 
 | |
| function usage () {
 | |
|   console.error('usage: which [-as] program ...')
 | |
|   process.exit(1)
 | |
| }
 | |
| 
 | |
| var all = false
 | |
| var silent = false
 | |
| var dashdash = false
 | |
| var args = process.argv.slice(2).filter(function (arg) {
 | |
|   if (dashdash || !/^-/.test(arg))
 | |
|     return true
 | |
| 
 | |
|   if (arg === '--') {
 | |
|     dashdash = true
 | |
|     return false
 | |
|   }
 | |
| 
 | |
|   var flags = arg.substr(1).split('')
 | |
|   for (var f = 0; f < flags.length; f++) {
 | |
|     var flag = flags[f]
 | |
|     switch (flag) {
 | |
|       case 's':
 | |
|         silent = true
 | |
|         break
 | |
|       case 'a':
 | |
|         all = true
 | |
|         break
 | |
|       default:
 | |
|         console.error('which: illegal option -- ' + flag)
 | |
|         usage()
 | |
|     }
 | |
|   }
 | |
|   return false
 | |
| })
 | |
| 
 | |
| process.exit(args.reduce(function (pv, current) {
 | |
|   try {
 | |
|     var f = which.sync(current, { all: all })
 | |
|     if (all)
 | |
|       f = f.join('\n')
 | |
|     if (!silent)
 | |
|       console.log(f)
 | |
|     return pv;
 | |
|   } catch (e) {
 | |
|     return 1;
 | |
|   }
 | |
| }, 0))
 |