 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
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| Object.defineProperty(exports, "__esModule", {
 | |
|   value: true
 | |
| });
 | |
| exports.addComment = addComment;
 | |
| exports.addComments = addComments;
 | |
| exports.shareCommentsWithSiblings = shareCommentsWithSiblings;
 | |
| var _t = require("@babel/types");
 | |
| const {
 | |
|   addComment: _addComment,
 | |
|   addComments: _addComments
 | |
| } = _t;
 | |
| function shareCommentsWithSiblings() {
 | |
|   if (typeof this.key === "string") return;
 | |
|   const node = this.node;
 | |
|   if (!node) return;
 | |
|   const trailing = node.trailingComments;
 | |
|   const leading = node.leadingComments;
 | |
|   if (!trailing && !leading) return;
 | |
|   const prev = this.getSibling(this.key - 1);
 | |
|   const next = this.getSibling(this.key + 1);
 | |
|   const hasPrev = Boolean(prev.node);
 | |
|   const hasNext = Boolean(next.node);
 | |
|   if (hasPrev) {
 | |
|     if (leading) {
 | |
|       prev.addComments("trailing", removeIfExisting(leading, prev.node.trailingComments));
 | |
|     }
 | |
|     if (trailing && !hasNext) prev.addComments("trailing", trailing);
 | |
|   }
 | |
|   if (hasNext) {
 | |
|     if (trailing) {
 | |
|       next.addComments("leading", removeIfExisting(trailing, next.node.leadingComments));
 | |
|     }
 | |
|     if (leading && !hasPrev) next.addComments("leading", leading);
 | |
|   }
 | |
| }
 | |
| function removeIfExisting(list, toRemove) {
 | |
|   if (!(toRemove != null && toRemove.length)) return list;
 | |
|   const set = new Set(toRemove);
 | |
|   return list.filter(el => {
 | |
|     return !set.has(el);
 | |
|   });
 | |
| }
 | |
| function addComment(type, content, line) {
 | |
|   _addComment(this.node, type, content, line);
 | |
| }
 | |
| function addComments(type, comments) {
 | |
|   _addComments(this.node, type, comments);
 | |
| }
 | |
| 
 | |
| //# sourceMappingURL=comments.js.map
 |