 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>
		
			
				
	
	
		
			253 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			253 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * Cache used to store references to objects, used for circular
 | |
|  * reference checks.
 | |
|  */
 | |
| export interface Cache<Key extends object, Value> {
 | |
|   delete(key: Key): boolean;
 | |
|   get(key: Key): Value | undefined;
 | |
|   set(key: Key, value: any): any;
 | |
| }
 | |
| 
 | |
| export interface State<Meta> {
 | |
|   /**
 | |
|    * Cache used to identify circular references
 | |
|    */
 | |
|   readonly cache: Cache<any, any> | undefined;
 | |
|   /**
 | |
|    * Method used to determine equality of nested value.
 | |
|    */
 | |
|   readonly equals: InternalEqualityComparator<Meta>;
 | |
|   /**
 | |
|    * Additional value that can be used for comparisons.
 | |
|    */
 | |
|   meta: Meta;
 | |
|   /**
 | |
|    * Whether the equality comparison is strict, meaning it matches
 | |
|    * all properties (including symbols and non-enumerable properties)
 | |
|    * with equal shape of descriptors.
 | |
|    */
 | |
|   readonly strict: boolean;
 | |
| }
 | |
| 
 | |
| export interface CircularState<Meta> extends State<Meta> {
 | |
|   readonly cache: Cache<any, any>;
 | |
| }
 | |
| 
 | |
| export interface DefaultState<Meta> extends State<Meta> {
 | |
|   readonly cache: undefined;
 | |
| }
 | |
| 
 | |
| export interface Dictionary<Value = any> {
 | |
|   [key: string | symbol]: Value;
 | |
|   $$typeof?: any;
 | |
| }
 | |
| 
 | |
| export interface ComparatorConfig<Meta> {
 | |
|   /**
 | |
|    * Whether the arrays passed are equal in value. In strict mode, this includes
 | |
|    * additional properties added to the array.
 | |
|    */
 | |
|   areArraysEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the dates passed are equal in value.
 | |
|    */
 | |
|   areDatesEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the errors passed are equal in value.
 | |
|    */
 | |
|   areErrorsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the functions passed are equal in value.
 | |
|    */
 | |
|   areFunctionsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the maps passed are equal in value. In strict mode, this includes
 | |
|    * additional properties added to the map.
 | |
|    */
 | |
|   areMapsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the numbers passed are equal in value.
 | |
|    */
 | |
|   areNumbersEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the objects passed are equal in value. In strict mode, this includes
 | |
|    * non-enumerable properties added to the map, as well as symbol properties.
 | |
|    */
 | |
|   areObjectsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the primitive wrappers passed are equal in value.
 | |
|    */
 | |
|   arePrimitiveWrappersEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the regexps passed are equal in value.
 | |
|    */
 | |
|   areRegExpsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the sets passed are equal in value. In strict mode, this includes
 | |
|    * additional properties added to the set.
 | |
|    */
 | |
|   areSetsEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the typed arrays passed are equal in value. In strict mode, this includes
 | |
|    * additional properties added to the typed array.
 | |
|    */
 | |
|   areTypedArraysEqual: TypeEqualityComparator<any, Meta>;
 | |
|   /**
 | |
|    * Whether the URLs passed are equal in value.
 | |
|    */
 | |
|   areUrlsEqual: TypeEqualityComparator<any, Meta>;
 | |
| }
 | |
| 
 | |
| export type CreateCustomComparatorConfig<Meta> = (
 | |
|   config: ComparatorConfig<Meta>,
 | |
| ) => Partial<ComparatorConfig<Meta>>;
 | |
| 
 | |
| export type CreateState<Meta> = () => {
 | |
|   cache?: Cache<any, any> | undefined;
 | |
|   meta?: Meta;
 | |
| };
 | |
| 
 | |
| export type EqualityComparator<Meta> = <A, B>(
 | |
|   a: A,
 | |
|   b: B,
 | |
|   state: State<Meta>,
 | |
| ) => boolean;
 | |
| export type AnyEqualityComparator<Meta> = (
 | |
|   a: any,
 | |
|   b: any,
 | |
|   state: State<Meta>,
 | |
| ) => boolean;
 | |
| 
 | |
| export type EqualityComparatorCreator<Meta> = (
 | |
|   fn: EqualityComparator<Meta>,
 | |
| ) => InternalEqualityComparator<Meta>;
 | |
| 
 | |
| export type InternalEqualityComparator<Meta> = (
 | |
|   a: any,
 | |
|   b: any,
 | |
|   indexOrKeyA: any,
 | |
|   indexOrKeyB: any,
 | |
|   parentA: any,
 | |
|   parentB: any,
 | |
|   state: State<Meta>,
 | |
| ) => boolean;
 | |
| 
 | |
| // We explicitly check for primitive wrapper types
 | |
| // eslint-disable-next-line @typescript-eslint/ban-types
 | |
| export type PrimitiveWrapper = Boolean | Number | String;
 | |
| 
 | |
| /**
 | |
|  * Type which encompasses possible instances of TypedArray
 | |
|  * classes.
 | |
|  *
 | |
|  * **NOTE**: This does not include `BigInt64Array` and
 | |
|  * `BitUint64Array` because those are part of ES2020 and
 | |
|  * not supported by certain TS configurations. If using
 | |
|  * either in `areTypedArraysEqual`, you can cast the
 | |
|  * instance as `TypedArray` and it will work as expected,
 | |
|  * because runtime checks will still work for those classes.
 | |
|  */
 | |
| export type TypedArray =
 | |
|   | Float32Array
 | |
|   | Float64Array
 | |
|   | Int8Array
 | |
|   | Int16Array
 | |
|   | Int32Array
 | |
|   | Uint16Array
 | |
|   | Uint32Array
 | |
|   | Uint8Array
 | |
|   | Uint8ClampedArray;
 | |
| 
 | |
| export type TypeEqualityComparator<Type, Meta = undefined> = (
 | |
|   a: Type,
 | |
|   b: Type,
 | |
|   state: State<Meta>,
 | |
| ) => boolean;
 | |
| 
 | |
| export interface CustomEqualCreatorOptions<Meta> {
 | |
|   /**
 | |
|    * Whether circular references should be supported. It causes the
 | |
|    * comparison to be slower, but for objects that have circular references
 | |
|    * it is required to avoid stack overflows.
 | |
|    */
 | |
|   circular?: boolean;
 | |
|   /**
 | |
|    * Create a custom configuration of type-specific equality comparators.
 | |
|    * This receives the default configuration, which allows either replacement
 | |
|    * or supersetting of the default methods.
 | |
|    */
 | |
|   createCustomConfig?: CreateCustomComparatorConfig<Meta>;
 | |
|   /**
 | |
|    * Create a custom internal comparator, which is used as an override to the
 | |
|    * default entry point for nested value equality comparisons. This is often
 | |
|    * used for doing custom logic for specific types (such as handling a specific
 | |
|    * class instance differently than other objects) or to incorporate `meta` in
 | |
|    * the comparison. See the recipes for examples.
 | |
|    */
 | |
|   createInternalComparator?: (
 | |
|     compare: EqualityComparator<Meta>,
 | |
|   ) => InternalEqualityComparator<Meta>;
 | |
|   /**
 | |
|    * Create a custom `state` object passed between the methods. This allows for
 | |
|    * custom `cache` and/or `meta` values to be used.
 | |
|    */
 | |
|   createState?: CreateState<Meta>;
 | |
|   /**
 | |
|    * Whether the equality comparison is strict, meaning it matches
 | |
|    * all properties (including symbols and non-enumerable properties)
 | |
|    * with equal shape of descriptors.
 | |
|    */
 | |
|   strict?: boolean;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * Whether the values passed are strictly equal or both NaN.
 | |
|  */
 | |
| export declare const sameValueZeroEqual: <A, B>(a: A, b: B) => boolean;
 | |
| 
 | |
| /**
 | |
|  * Whether the items passed are deeply-equal in value.
 | |
|  */
 | |
| export declare const deepEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are deeply-equal in value based on strict comparison.
 | |
|  */
 | |
| export declare const strictDeepEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are deeply-equal in value, including circular references.
 | |
|  */
 | |
| export declare const circularDeepEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are deeply-equal in value, including circular references,
 | |
|  * based on strict comparison.
 | |
|  */
 | |
| export declare const strictCircularDeepEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are shallowly-equal in value.
 | |
|  */
 | |
| export declare const shallowEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are shallowly-equal in value based on strict comparison
 | |
|  */
 | |
| export declare const strictShallowEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are shallowly-equal in value, including circular references.
 | |
|  */
 | |
| export declare const circularShallowEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Whether the items passed are shallowly-equal in value, including circular references,
 | |
|  * based on strict comparison.
 | |
|  */
 | |
| export declare const strictCircularShallowEqual: <A, B>(a: A, b: B) => boolean;
 | |
| /**
 | |
|  * Create a custom equality comparison method.
 | |
|  *
 | |
|  * This can be done to create very targeted comparisons in extreme hot-path scenarios
 | |
|  * where the standard methods are not performant enough, but can also be used to provide
 | |
|  * support for legacy environments that cannot polyfill for modern features expected by
 | |
|  * `fast-equals`, such as `WeakMap` or `RegExp.prototype.flags`.
 | |
|  */
 | |
| export declare function createCustomEqual<Meta = undefined>(
 | |
|   options?: CustomEqualCreatorOptions<Meta>,
 | |
| ): <A, B>(a: A, b: B) => boolean; |