claude-flow-tbowman01
Version:
Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)
109 lines • 2.84 kB
TypeScript
/**
* Optimized Task Executor
* Implements async execution with connection pooling and caching
*/
import { EventEmitter } from 'node:events';
import type { TaskDefinition, TaskResult, AgentId } from '../types.js';
export interface ExecutorConfig {
connectionPool?: {
min?: number;
max?: number;
};
concurrency?: number;
caching?: {
enabled?: boolean;
ttl?: number;
maxSize?: number;
};
fileOperations?: {
outputDir?: string;
concurrency?: number;
};
monitoring?: {
metricsInterval?: number;
slowTaskThreshold?: number;
};
}
export interface ExecutionMetrics {
totalExecuted: number;
totalSucceeded: number;
totalFailed: number;
avgExecutionTime: number;
cacheHitRate: number;
queueLength: number;
activeExecutions: number;
}
export declare class OptimizedExecutor extends EventEmitter {
private config;
private logger;
private connectionPool;
private fileManager;
private executionQueue;
private resultCache;
private executionHistory;
private metrics;
private activeExecutions;
constructor(config?: ExecutorConfig);
executeTask(task: TaskDefinition, agentId: AgentId): Promise<TaskResult>;
executeBatch(tasks: TaskDefinition[], agentId: AgentId): Promise<TaskResult[]>;
private buildMessages;
private getTaskCacheKey;
private isRecoverableError;
private isRetryableError;
getMetrics(): ExecutionMetrics;
private emitMetrics;
waitForPendingExecutions(): Promise<void>;
shutdown(): Promise<void>;
/**
* Get execution history for analysis
*/
getExecutionHistory(): {
items: {
taskId: string;
duration: number;
status: "success" | "failed";
timestamp: Date;
}[];
capacity: number;
size: number;
totalItemsWritten: number;
overwrittenCount: number;
memoryUsage: number;
};
/**
* Get connection pool statistics
*/
getConnectionPoolStats(): {
total: number;
inUse: number;
idle: number;
waitingQueue: number;
totalUseCount: number;
};
/**
* Get file manager metrics
*/
getFileManagerMetrics(): {
operations: {
[k: string]: number;
};
totalBytes: number;
errors: number;
writeQueueSize: number;
readQueueSize: number;
writeQueuePending: number;
readQueuePending: number;
};
/**
* Get cache statistics
*/
getCacheStats(): {
size: number;
hitRate: number;
hits: number;
misses: number;
evictions: number;
expirations: number;
};
}
//# sourceMappingURL=optimized-executor.d.ts.map