/** * Function Executor for MCP * * Secure function execution framework with validation, sandboxing, and monitoring */ import { EventEmitter } from 'events'; import { FunctionCall, FunctionSecurity } from '../types'; import { FunctionRegistry, FunctionExecutionContext, FunctionExecutionResult } from './function-registry'; import { AuthManager } from '../security/auth-manager'; import { AuditLogger } from '../security/audit-logger'; /** * Execution environment */ export interface ExecutionEnvironment { sandboxed: boolean; timeoutMs: number; memoryLimitMB: number; networkAccess: boolean; fileSystemAccess: boolean; allowedModules: string[]; environmentVariables: Record; } /** * Execution options */ export interface ExecutionOptions { environment?: Partial; priority: 'low' | 'normal' | 'high' | 'critical'; retryOnFailure: boolean; maxRetries: number; validateResult: boolean; auditExecution: boolean; } /** * Result validation schema */ export interface ResultValidationSchema { type: string; properties?: Record; required?: string[]; maxLength?: number; maxItems?: number; pattern?: string; } /** * Execution metrics */ export interface ExecutionMetrics { functionName: string; executionTime: number; memoryUsed: number; cpuTime: number; networkCalls: number; errors: string[]; warnings: string[]; securityViolations: string[]; } /** * Sandbox violation */ export interface SandboxViolation { type: 'network' | 'filesystem' | 'memory' | 'cpu' | 'module' | 'timeout'; message: string; timestamp: Date; severity: 'low' | 'medium' | 'high' | 'critical'; } /** * Function Executor */ export declare class FunctionExecutor extends EventEmitter { private functionRegistry; private authManager; private auditLogger; private defaultEnvironment; private executionQueue; private activeExecutions; private resultValidators; private securityPolicies; private isProcessing; private processInterval?; constructor(functionRegistry: FunctionRegistry, authManager: AuthManager, auditLogger: AuditLogger, defaultEnvironment?: ExecutionEnvironment); /** * Execute function with full security and validation */ executeFunction(functionCall: FunctionCall, context: FunctionExecutionContext, options?: ExecutionOptions): Promise; /** * Register result validator for function */ registerResultValidator(functionName: string, schema: ResultValidationSchema): void; /** * Set security policy for function */ setSecurityPolicy(functionName: string, policy: FunctionSecurity): void; /** * Get execution statistics */ getExecutionStatistics(): { queueSize: number; activeExecutions: number; totalExecuted: number; averageExecutionTime: number; errorRate: number; securityViolations: number; }; /** * Perform security checks before execution */ private performSecurityChecks; /** * Execute function immediately */ private executeImmediate; /** * Queue execution for later processing */ private queueExecution; /** * Execute function with comprehensive monitoring */ private executeWithMonitoring; /** * Execute function in sandbox */ private executeSandboxed; /** * Validate execution result */ private validateExecutionResult; /** * Validate result against schema */ private validateResultAgainstSchema; /** * Create execution environment */ private createExecutionEnvironment; /** * Get priority value for sorting */ private getPriorityValue; /** * Start queue processor */ private startQueueProcessor; /** * Process execution queue */ private processQueue; /** * Clear execution queue */ clearQueue(): void; /** * Shutdown executor */ shutdown(): void; } export default FunctionExecutor; //# sourceMappingURL=function-executor.d.ts.map