 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>
		
			
				
	
	
		
			129 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| "use client";
 | |
| var __create = Object.create;
 | |
| var __defProp = Object.defineProperty;
 | |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
 | |
| var __getOwnPropNames = Object.getOwnPropertyNames;
 | |
| var __getProtoOf = Object.getPrototypeOf;
 | |
| var __hasOwnProp = Object.prototype.hasOwnProperty;
 | |
| var __export = (target, all) => {
 | |
|   for (var name in all)
 | |
|     __defProp(target, name, { get: all[name], enumerable: true });
 | |
| };
 | |
| var __copyProps = (to, from, except, desc) => {
 | |
|   if (from && typeof from === "object" || typeof from === "function") {
 | |
|     for (let key of __getOwnPropNames(from))
 | |
|       if (!__hasOwnProp.call(to, key) && key !== except)
 | |
|         __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
 | |
|   }
 | |
|   return to;
 | |
| };
 | |
| var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
 | |
|   // If the importer is in node compatibility mode or this is not an ESM
 | |
|   // file that has been converted to a CommonJS file using a Babel-
 | |
|   // compatible transform (i.e. "__esModule" has not been set), then set
 | |
|   // "default" to the CommonJS "module.exports" for node compatibility.
 | |
|   isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
 | |
|   mod
 | |
| ));
 | |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
 | |
| 
 | |
| // src/useBaseQuery.ts
 | |
| var useBaseQuery_exports = {};
 | |
| __export(useBaseQuery_exports, {
 | |
|   useBaseQuery: () => useBaseQuery
 | |
| });
 | |
| module.exports = __toCommonJS(useBaseQuery_exports);
 | |
| var React = __toESM(require("react"), 1);
 | |
| var import_query_core = require("@tanstack/query-core");
 | |
| var import_QueryClientProvider = require("./QueryClientProvider.cjs");
 | |
| var import_QueryErrorResetBoundary = require("./QueryErrorResetBoundary.cjs");
 | |
| var import_errorBoundaryUtils = require("./errorBoundaryUtils.cjs");
 | |
| var import_IsRestoringProvider = require("./IsRestoringProvider.cjs");
 | |
| var import_suspense = require("./suspense.cjs");
 | |
| function useBaseQuery(options, Observer, queryClient) {
 | |
|   if (process.env.NODE_ENV !== "production") {
 | |
|     if (typeof options !== "object" || Array.isArray(options)) {
 | |
|       throw new Error(
 | |
|         'Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object'
 | |
|       );
 | |
|     }
 | |
|   }
 | |
|   const isRestoring = (0, import_IsRestoringProvider.useIsRestoring)();
 | |
|   const errorResetBoundary = (0, import_QueryErrorResetBoundary.useQueryErrorResetBoundary)();
 | |
|   const client = (0, import_QueryClientProvider.useQueryClient)(queryClient);
 | |
|   const defaultedOptions = client.defaultQueryOptions(options);
 | |
|   client.getDefaultOptions().queries?._experimental_beforeQuery?.(
 | |
|     defaultedOptions
 | |
|   );
 | |
|   if (process.env.NODE_ENV !== "production") {
 | |
|     if (!defaultedOptions.queryFn) {
 | |
|       console.error(
 | |
|         `[${defaultedOptions.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`
 | |
|       );
 | |
|     }
 | |
|   }
 | |
|   defaultedOptions._optimisticResults = isRestoring ? "isRestoring" : "optimistic";
 | |
|   (0, import_suspense.ensureSuspenseTimers)(defaultedOptions);
 | |
|   (0, import_errorBoundaryUtils.ensurePreventErrorBoundaryRetry)(defaultedOptions, errorResetBoundary);
 | |
|   (0, import_errorBoundaryUtils.useClearResetErrorBoundary)(errorResetBoundary);
 | |
|   const isNewCacheEntry = !client.getQueryCache().get(defaultedOptions.queryHash);
 | |
|   const [observer] = React.useState(
 | |
|     () => new Observer(
 | |
|       client,
 | |
|       defaultedOptions
 | |
|     )
 | |
|   );
 | |
|   const result = observer.getOptimisticResult(defaultedOptions);
 | |
|   const shouldSubscribe = !isRestoring && options.subscribed !== false;
 | |
|   React.useSyncExternalStore(
 | |
|     React.useCallback(
 | |
|       (onStoreChange) => {
 | |
|         const unsubscribe = shouldSubscribe ? observer.subscribe(import_query_core.notifyManager.batchCalls(onStoreChange)) : import_query_core.noop;
 | |
|         observer.updateResult();
 | |
|         return unsubscribe;
 | |
|       },
 | |
|       [observer, shouldSubscribe]
 | |
|     ),
 | |
|     () => observer.getCurrentResult(),
 | |
|     () => observer.getCurrentResult()
 | |
|   );
 | |
|   React.useEffect(() => {
 | |
|     observer.setOptions(defaultedOptions);
 | |
|   }, [defaultedOptions, observer]);
 | |
|   if ((0, import_suspense.shouldSuspend)(defaultedOptions, result)) {
 | |
|     throw (0, import_suspense.fetchOptimistic)(defaultedOptions, observer, errorResetBoundary);
 | |
|   }
 | |
|   if ((0, import_errorBoundaryUtils.getHasError)({
 | |
|     result,
 | |
|     errorResetBoundary,
 | |
|     throwOnError: defaultedOptions.throwOnError,
 | |
|     query: client.getQueryCache().get(defaultedOptions.queryHash),
 | |
|     suspense: defaultedOptions.suspense
 | |
|   })) {
 | |
|     throw result.error;
 | |
|   }
 | |
|   ;
 | |
|   client.getDefaultOptions().queries?._experimental_afterQuery?.(
 | |
|     defaultedOptions,
 | |
|     result
 | |
|   );
 | |
|   if (defaultedOptions.experimental_prefetchInRender && !import_query_core.isServer && (0, import_suspense.willFetch)(result, isRestoring)) {
 | |
|     const promise = isNewCacheEntry ? (
 | |
|       // Fetch immediately on render in order to ensure `.promise` is resolved even if the component is unmounted
 | |
|       (0, import_suspense.fetchOptimistic)(defaultedOptions, observer, errorResetBoundary)
 | |
|     ) : (
 | |
|       // subscribe to the "cache promise" so that we can finalize the currentThenable once data comes in
 | |
|       client.getQueryCache().get(defaultedOptions.queryHash)?.promise
 | |
|     );
 | |
|     promise?.catch(import_query_core.noop).finally(() => {
 | |
|       observer.updateResult();
 | |
|     });
 | |
|   }
 | |
|   return !defaultedOptions.notifyOnChangeProps ? observer.trackResult(result) : result;
 | |
| }
 | |
| // Annotate the CommonJS export names for ESM import in node:
 | |
| 0 && (module.exports = {
 | |
|   useBaseQuery
 | |
| });
 | |
| //# sourceMappingURL=useBaseQuery.cjs.map
 |