/** * Advanced Task Executor with timeout handling and process management */ import { EventEmitter } from "node:events"; import { Logger } from "../core/logger.js"; import { TaskDefinition, AgentState } from "./types.js"; export interface ExecutionContext { task: TaskDefinition; agent: AgentState; workingDirectory: string; tempDirectory: string; logDirectory: string; environment: Record; resources: ExecutionResources; } export interface ExecutionResources { maxMemory: number; maxCpuTime: number; maxDiskSpace: number; maxNetworkConnections: number; maxFileHandles: number; priority: number; } export interface ExecutionResult { success: boolean; output: string; error?: string; exitCode: number; duration: number; resourcesUsed: ResourceUsage; artifacts: Record; metadata: Record; } export interface ResourceUsage { cpuTime: number; maxMemory: number; diskIO: number; networkIO: number; fileHandles: number; } export interface ExecutionConfig { timeoutMs: number; retryAttempts: number; killTimeout: number; resourceLimits: ExecutionResources; sandboxed: boolean; logLevel: string; captureOutput: boolean; streamOutput: boolean; enableMetrics: boolean; } export declare class TaskExecutor extends EventEmitter { private logger; private config; private activeExecutions; private resourceMonitor; private processPool; constructor(config?: Partial); initialize(): Promise; shutdown(): Promise; executeTask(task: TaskDefinition, agent: AgentState, options?: Partial): Promise; stopExecution(sessionId: string, reason: string): Promise; executeClaudeTask(task: TaskDefinition, agent: AgentState, claudeOptions?: ClaudeExecutionOptions): Promise; getActiveExecutions(): ExecutionSession[]; getExecutionMetrics(): ExecutionMetrics; private executeWithTimeout; private executeClaudeWithTimeout; private buildClaudeCommand; private buildClaudePrompt; private createExecutionContext; private cleanupExecution; private collectResourceUsage; private collectArtifacts; private scanDirectory; private collectLogs; private collectOutputs; private getPriorityNumber; private mergeWithDefaults; private setupEventHandlers; } declare class ExecutionSession { id: string; task: TaskDefinition; agent: AgentState; context: ExecutionContext; config: ExecutionConfig; private logger; private process?; private startTime?; private endTime?; constructor(id: string, task: TaskDefinition, agent: AgentState, context: ExecutionContext, config: ExecutionConfig, logger: Logger); execute(): Promise; stop(reason: string): Promise; cleanup(): Promise; } export interface ClaudeExecutionOptions { model?: string; maxTokens?: number; temperature?: number; timeout?: number; claudePath?: string; useStdin?: boolean; detached?: boolean; outputFormat?: string; } export interface ClaudeCommand { command: string; args: string[]; input?: string; } export interface ExecutionMetrics { activeExecutions: number; totalExecutions: number; averageDuration: number; successRate: number; resourceUtilization: Record; errorRate: number; } export default TaskExecutor; //# sourceMappingURL=executor.d.ts.map