UNPKG

claude-flow

Version:

Enterprise-grade AI agent orchestration with WASM-powered ReasoningBank memory and AgentDB vector database (always uses latest agentic-flow)

416 lines (344 loc) 9.41 kB
/** * Mock Components for System Integration Testing * These are lightweight mocks for missing components during development */ import { EventBus } from '../core/event-bus.js'; import { Logger } from '../core/logger.js'; export class MockConfigManager { private config: Record<string, any> = {}; static getInstance(): MockConfigManager { return new MockConfigManager(); } async load(): Promise<void> { // Mock configuration loading this.config = { agents: { maxAgents: 10 }, swarm: { topology: 'mesh' }, memory: { backend: 'memory' }, }; } get(path: string): any { const keys = path.split('.'); let value = this.config; for (const key of keys) { value = value?.[key]; if (value === undefined) break; } return value; } set(path: string, value: any): void { const keys = path.split('.'); let obj = this.config; for (let i = 0; i < keys.length - 1; i++) { const key = keys[i]; if (!(key in obj)) { obj[key] = {}; } obj = obj[key]; } obj[keys[keys.length - 1]] = value; } async initialize(): Promise<void> { await this.load(); } async shutdown(): Promise<void> { // Mock shutdown } healthCheck(): Promise<any> { return Promise.resolve({ component: 'configManager', healthy: true, message: 'Mock config manager healthy', timestamp: Date.now(), }); } } export class MockMemoryManager { private storage: Map<string, any> = new Map(); async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } async get(key: string): Promise<any> { return this.storage.get(key) || null; } async set(key: string, value: any): Promise<void> { this.storage.set(key, value); } async delete(key: string): Promise<boolean> { return this.storage.delete(key); } async keys(pattern?: string): Promise<string[]> { const allKeys = Array.from(this.storage.keys()); if (!pattern) return allKeys; // Simple pattern matching const regex = new RegExp(pattern.replace(/\*/g, '.*')); return allKeys.filter((key) => regex.test(key)); } healthCheck(): Promise<any> { return Promise.resolve({ component: 'memoryManager', healthy: true, message: 'Mock memory manager healthy', timestamp: Date.now(), }); } getMetrics(): Promise<any> { return Promise.resolve({ storageSize: this.storage.size, memoryUsage: process.memoryUsage().heapUsed, }); } } export class MockAgentManager { private agents: Map<string, any> = new Map(); constructor( private eventBus: EventBus, private logger: Logger, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } async spawnAgent(type: string, config: any): Promise<string> { const agentId = `mock-agent-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; this.agents.set(agentId, { id: agentId, type, config, status: 'active', createdAt: new Date(), }); return agentId; } async terminateAgent(agentId: string): Promise<void> { this.agents.delete(agentId); } async listAgents(): Promise<any[]> { return Array.from(this.agents.values()); } async getAgent(agentId: string): Promise<any> { return this.agents.get(agentId) || null; } async sendMessage(message: any): Promise<any> { // Mock message sending return { success: true, id: `msg-${Date.now()}` }; } healthCheck(): Promise<any> { return Promise.resolve({ component: 'agentManager', healthy: true, message: 'Mock agent manager healthy', timestamp: Date.now(), }); } getMetrics(): Promise<any> { return Promise.resolve({ activeAgents: this.agents.size, totalAgents: this.agents.size, }); } } export class MockSwarmCoordinator { private swarms: Map<string, any> = new Map(); constructor( private eventBus: EventBus, private logger: Logger, private memoryManager: MockMemoryManager, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } async createSwarm(config: any): Promise<string> { const swarmId = `mock-swarm-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; this.swarms.set(swarmId, { id: swarmId, config, status: 'active', agents: [], createdAt: new Date(), }); return swarmId; } async getSwarmStatus(swarmId: string): Promise<any> { const swarm = this.swarms.get(swarmId); return swarm || null; } async spawnAgentInSwarm(swarmId: string, agentConfig: any): Promise<string> { const agentId = `mock-swarm-agent-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; const swarm = this.swarms.get(swarmId); if (swarm) { swarm.agents.push(agentId); } return agentId; } async getSwarmAgents(swarmId: string): Promise<string[]> { const swarm = this.swarms.get(swarmId); return swarm?.agents || []; } healthCheck(): Promise<any> { return Promise.resolve({ component: 'swarmCoordinator', healthy: true, message: 'Mock swarm coordinator healthy', timestamp: Date.now(), }); } getMetrics(): Promise<any> { return Promise.resolve({ activeSwarms: this.swarms.size, totalAgents: Array.from(this.swarms.values()).reduce( (sum, swarm) => sum + swarm.agents.length, 0, ), }); } } export class MockTaskEngine { private tasks: Map<string, any> = new Map(); constructor( private eventBus: EventBus, private logger: Logger, private memoryManager: MockMemoryManager, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } async createTask(taskConfig: any): Promise<string> { const taskId = `mock-task-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; this.tasks.set(taskId, { id: taskId, ...taskConfig, status: 'pending', createdAt: new Date(), }); return taskId; } async getTaskStatus(taskId: string): Promise<any> { return this.tasks.get(taskId) || null; } async getActiveTasks(swarmId?: string): Promise<any[]> { const allTasks = Array.from(this.tasks.values()); return swarmId ? allTasks.filter((task) => task.swarmId === swarmId && task.status === 'active') : allTasks.filter((task) => task.status === 'active'); } healthCheck(): Promise<any> { return Promise.resolve({ component: 'taskEngine', healthy: true, message: 'Mock task engine healthy', timestamp: Date.now(), }); } getMetrics(): Promise<any> { const tasks = Array.from(this.tasks.values()); return Promise.resolve({ totalTasks: tasks.length, activeTasks: tasks.filter((t) => t.status === 'active').length, queuedTasks: tasks.filter((t) => t.status === 'pending').length, completedTasks: tasks.filter((t) => t.status === 'completed').length, }); } } export class MockRealTimeMonitor { constructor( private eventBus: EventBus, private logger: Logger, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } attachToOrchestrator(orchestrator: any): void { // Mock attachment } attachToAgentManager(agentManager: any): void { // Mock attachment } attachToSwarmCoordinator(swarmCoordinator: any): void { // Mock attachment } attachToTaskEngine(taskEngine: any): void { // Mock attachment } healthCheck(): Promise<any> { return Promise.resolve({ component: 'monitor', healthy: true, message: 'Mock monitor healthy', timestamp: Date.now(), }); } } export class MockMcpServer { constructor( private eventBus: EventBus, private logger: Logger, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } attachToOrchestrator(orchestrator: any): void { // Mock attachment } attachToAgentManager(agentManager: any): void { // Mock attachment } attachToSwarmCoordinator(swarmCoordinator: any): void { // Mock attachment } attachToTaskEngine(taskEngine: any): void { // Mock attachment } attachToMemoryManager(memoryManager: any): void { // Mock attachment } healthCheck(): Promise<any> { return Promise.resolve({ component: 'mcpServer', healthy: true, message: 'Mock MCP server healthy', timestamp: Date.now(), }); } } export class MockOrchestrator { constructor( private configManager: any, private eventBus: EventBus, private logger: Logger, ) {} async initialize(): Promise<void> { // Mock initialization } async shutdown(): Promise<void> { // Mock shutdown } setAgentManager(agentManager: any): void { // Mock setter } healthCheck(): Promise<any> { return Promise.resolve({ component: 'orchestrator', healthy: true, message: 'Mock orchestrator healthy', timestamp: Date.now(), }); } }