 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>
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';
 | |
| import { DOMVisualElement } from '../dom/DOMVisualElement.mjs';
 | |
| import { buildSVGAttrs } from './utils/build-attrs.mjs';
 | |
| import { camelToDash } from '../dom/utils/camel-to-dash.mjs';
 | |
| import { camelCaseAttributes } from './utils/camel-case-attrs.mjs';
 | |
| import { transformProps } from '../html/utils/transform.mjs';
 | |
| import { renderSVG } from './utils/render.mjs';
 | |
| import { getDefaultValueType } from '../dom/value-types/defaults.mjs';
 | |
| import { createBox } from '../../projection/geometry/models.mjs';
 | |
| import { isSVGTag } from './utils/is-svg-tag.mjs';
 | |
| 
 | |
| class SVGVisualElement extends DOMVisualElement {
 | |
|     constructor() {
 | |
|         super(...arguments);
 | |
|         this.type = "svg";
 | |
|         this.isSVGTag = false;
 | |
|     }
 | |
|     getBaseTargetFromProps(props, key) {
 | |
|         return props[key];
 | |
|     }
 | |
|     readValueFromInstance(instance, key) {
 | |
|         if (transformProps.has(key)) {
 | |
|             const defaultType = getDefaultValueType(key);
 | |
|             return defaultType ? defaultType.default || 0 : 0;
 | |
|         }
 | |
|         key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;
 | |
|         return instance.getAttribute(key);
 | |
|     }
 | |
|     measureInstanceViewportBox() {
 | |
|         return createBox();
 | |
|     }
 | |
|     scrapeMotionValuesFromProps(props, prevProps) {
 | |
|         return scrapeMotionValuesFromProps(props, prevProps);
 | |
|     }
 | |
|     build(renderState, latestValues, options, props) {
 | |
|         buildSVGAttrs(renderState, latestValues, options, this.isSVGTag, props.transformTemplate);
 | |
|     }
 | |
|     renderInstance(instance, renderState, styleProp, projection) {
 | |
|         renderSVG(instance, renderState, styleProp, projection);
 | |
|     }
 | |
|     mount(instance) {
 | |
|         this.isSVGTag = isSVGTag(instance.tagName);
 | |
|         super.mount(instance);
 | |
|     }
 | |
| }
 | |
| 
 | |
| export { SVGVisualElement };
 |