 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>
		
			
				
	
	
		
			107 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {{# def.definitions }}
 | |
| {{# def.errors }}
 | |
| {{# def.setupKeyword }}
 | |
| 
 | |
| {{## def.skipFormat:
 | |
|   {{? $breakOnError }} if (true) { {{?}}
 | |
|   {{ return out; }}
 | |
| #}}
 | |
| 
 | |
| {{? it.opts.format === false }}{{# def.skipFormat }}{{?}}
 | |
| 
 | |
| 
 | |
| {{# def.$data }}
 | |
| 
 | |
| 
 | |
| {{## def.$dataCheckFormat:
 | |
|   {{# def.$dataNotType:'string' }}
 | |
|   ({{? $unknownFormats != 'ignore' }}
 | |
|      ({{=$schemaValue}} && !{{=$format}}
 | |
|       {{? $allowUnknown }}
 | |
|         && self._opts.unknownFormats.indexOf({{=$schemaValue}}) == -1
 | |
|       {{?}}) ||
 | |
|    {{?}}
 | |
|    ({{=$format}} && {{=$formatType}} == '{{=$ruleType}}'
 | |
|                  && !(typeof {{=$format}} == 'function'
 | |
|                      ? {{? it.async}}
 | |
|                         (async{{=$lvl}} ? await {{=$format}}({{=$data}}) : {{=$format}}({{=$data}}))
 | |
|                        {{??}}
 | |
|                         {{=$format}}({{=$data}})
 | |
|                        {{?}}
 | |
|                      : {{=$format}}.test({{=$data}}))))
 | |
| #}}
 | |
| 
 | |
| {{## def.checkFormat:
 | |
|   {{
 | |
|     var $formatRef = 'formats' + it.util.getProperty($schema);
 | |
|     if ($isObject) $formatRef += '.validate';
 | |
|   }}
 | |
|   {{? typeof $format == 'function' }}
 | |
|     {{=$formatRef}}({{=$data}})
 | |
|   {{??}}
 | |
|     {{=$formatRef}}.test({{=$data}})
 | |
|   {{?}}
 | |
| #}}
 | |
| 
 | |
| 
 | |
| {{
 | |
|   var $unknownFormats = it.opts.unknownFormats
 | |
|     , $allowUnknown = Array.isArray($unknownFormats);
 | |
| }}
 | |
| 
 | |
| {{? $isData }}
 | |
|   {{
 | |
|     var $format = 'format' + $lvl
 | |
|       , $isObject = 'isObject' + $lvl
 | |
|       , $formatType = 'formatType' + $lvl;
 | |
|   }}
 | |
|   var {{=$format}} = formats[{{=$schemaValue}}];
 | |
|   var {{=$isObject}} = typeof {{=$format}} == 'object'
 | |
|                         && !({{=$format}} instanceof RegExp)
 | |
|                         && {{=$format}}.validate;
 | |
|   var {{=$formatType}} = {{=$isObject}} && {{=$format}}.type || 'string';
 | |
|   if ({{=$isObject}}) {
 | |
|     {{? it.async}}
 | |
|       var async{{=$lvl}} = {{=$format}}.async;
 | |
|     {{?}}
 | |
|     {{=$format}} = {{=$format}}.validate;
 | |
|   }
 | |
|   if ({{# def.$dataCheckFormat }}) {
 | |
| {{??}}
 | |
|   {{ var $format = it.formats[$schema]; }}
 | |
|   {{? !$format }}
 | |
|     {{? $unknownFormats == 'ignore' }}
 | |
|       {{ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }}
 | |
|       {{# def.skipFormat }}
 | |
|     {{?? $allowUnknown && $unknownFormats.indexOf($schema) >= 0 }}
 | |
|       {{# def.skipFormat }}
 | |
|     {{??}}
 | |
|       {{ throw new Error('unknown format "' + $schema + '" is used in schema at path "' + it.errSchemaPath + '"'); }}
 | |
|     {{?}}
 | |
|   {{?}}
 | |
|   {{
 | |
|     var $isObject = typeof $format == 'object'
 | |
|                     && !($format instanceof RegExp)
 | |
|                     && $format.validate;
 | |
|     var $formatType = $isObject && $format.type || 'string';
 | |
|     if ($isObject) {
 | |
|       var $async = $format.async === true;
 | |
|       $format = $format.validate;
 | |
|     }
 | |
|   }}
 | |
|   {{? $formatType != $ruleType }}
 | |
|     {{# def.skipFormat }}
 | |
|   {{?}}
 | |
|   {{? $async }}
 | |
|     {{
 | |
|       if (!it.async) throw new Error('async format in sync schema');
 | |
|       var $formatRef = 'formats' + it.util.getProperty($schema) + '.validate';
 | |
|     }}
 | |
|     if (!(await {{=$formatRef}}({{=$data}}))) {
 | |
|   {{??}}
 | |
|     if (!{{# def.checkFormat }}) {
 | |
|   {{?}}
 | |
| {{?}}
 | |
|     {{# def.error:'format' }}
 | |
|   } {{? $breakOnError }} else { {{?}}
 |