claude-flow 2.7.34 โ 2.7.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -0
- package/bin/claude-flow +1 -1
- package/dist/src/__tests__/benchmarks/performance.bench.js +0 -19
- package/dist/src/__tests__/benchmarks/performance.bench.js.map +1 -1
- package/dist/src/__tests__/hook-matchers.test.js.map +1 -1
- package/dist/src/agents/agent-registry.js.map +1 -1
- package/dist/src/api/auth-service.js.map +1 -1
- package/dist/src/api/claude-client-enhanced.js +4 -2
- package/dist/src/api/claude-client-enhanced.js.map +1 -1
- package/dist/src/api/claude-client.js +4 -2
- package/dist/src/api/claude-client.js.map +1 -1
- package/dist/src/api/database-service.js.map +1 -1
- package/dist/src/api/swarm-api.js +1 -1
- package/dist/src/api/swarm-api.js.map +1 -1
- package/dist/src/cli/commands/hive-mind/wizard.js +1 -1
- package/dist/src/cli/commands/hive-mind/wizard.js.map +1 -1
- package/dist/src/cli/help-formatter.js +0 -5
- package/dist/src/cli/init/index.js +55 -33
- package/dist/src/cli/init/index.js.map +1 -1
- package/dist/src/cli/simple-commands/init/skills-copier.js +1 -1
- package/dist/src/cli/simple-commands/init/skills-copier.js.map +1 -1
- package/dist/src/cli/simple-orchestrator.js +1 -1
- package/dist/src/cli/simple-orchestrator.js.map +1 -1
- package/dist/src/coordination/conflict-resolution.js +1 -1
- package/dist/src/coordination/conflict-resolution.js.map +1 -1
- package/dist/src/coordination/load-balancer.js +1 -1
- package/dist/src/coordination/load-balancer.js.map +1 -1
- package/dist/src/core/DatabaseManager.js +39 -9
- package/dist/src/core/DatabaseManager.js.map +1 -1
- package/dist/src/core/config.js +1 -1
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/enterprise/audit-manager.js +1 -1
- package/dist/src/enterprise/audit-manager.js.map +1 -1
- package/dist/src/providers/openai-provider.js +2 -2
- package/dist/src/providers/openai-provider.js.map +1 -1
- package/dist/src/sdk/checkpoint-manager.js +1 -1
- package/dist/src/sdk/checkpoint-manager.js.map +1 -1
- package/dist/src/services/agentic-flow-hooks/workflow-hooks.js +1 -1
- package/dist/src/services/agentic-flow-hooks/workflow-hooks.js.map +1 -1
- package/dist/src/swarm/coordinator.js +1 -1
- package/dist/src/swarm/coordinator.js.map +1 -1
- package/dist/src/utils/error-recovery.js +215 -0
- package/dist/src/utils/error-recovery.js.map +1 -0
- package/dist/src/utils/key-redactor.js.map +1 -1
- package/dist/src/utils/metrics-reader.js +10 -0
- package/dist/src/verification/rollback.js +2 -2
- package/dist/src/verification/rollback.js.map +1 -1
- package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js +4 -2
- package/dist/src/verification/tests/mocks/false-reporting-scenarios.test.js.map +1 -1
- package/docs/.claude-flow/metrics/performance.json +3 -3
- package/docs/.claude-flow/metrics/task-metrics.json +3 -3
- package/docs/architecture/README.md +555 -0
- package/docs/architecture/github-workflows-optimization-strategy.md +1079 -0
- package/docs/architecture/workflow-architecture-diagram.md +615 -0
- package/docs/architecture/workflow-optimization-implementation-guide.md +593 -0
- package/docs/features/AUTOMATIC_ERROR_RECOVERY_v2.7.35.md +321 -0
- package/docs/features/automatic-error-recovery.md +333 -0
- package/docs/fixes/WORKFLOW_FIXES.md +292 -0
- package/docs/fixes/WORKFLOW_FIXES_FINAL_STATUS.md +291 -0
- package/docs/fixes/github-workflow-fixes-pr888.md +279 -0
- package/docs/fixes/workflow-fixes-action-plan.md +388 -0
- package/docs/github-issues/README.md +88 -0
- package/docs/github-issues/wsl-enotempty-automatic-recovery.md +470 -0
- package/docs/github-workflow-fixes.md +219 -0
- package/docs/reviews/github-workflows-analysis-report.md +820 -0
- package/docs/reviews/pr-888-review-report.md +560 -0
- package/docs/testing/CONFIRMATION_AUTOMATIC_ERROR_RECOVERY.md +384 -0
- package/docs/testing/DOCKER_TEST_RESULTS_v2.7.35.md +305 -0
- package/docs/troubleshooting/wsl-better-sqlite3-error.md +239 -0
- package/docs/validation/workflow-fix-verification.md +206 -0
- package/package.json +7 -7
- package/scripts/create-github-issue.sh +64 -0
- package/scripts/test-docker-wsl.sh +198 -0
- package/src/__tests__/benchmarks/performance.bench.ts +2 -25
- package/src/__tests__/hook-matchers.test.ts +2 -0
- package/src/agents/agent-registry.ts +1 -1
- package/src/api/auth-service.ts +1 -1
- package/src/api/claude-client-enhanced.ts +2 -1
- package/src/api/claude-client.ts +2 -2
- package/src/api/database-service.ts +1 -2
- package/src/api/swarm-api.ts +2 -2
- package/src/cli/commands/hive-mind/wizard.ts +1 -1
- package/src/cli/init/index.ts +72 -42
- package/src/cli/simple-commands/init/skills-copier.js +1 -1
- package/src/cli/simple-orchestrator.ts +1 -1
- package/src/coordination/conflict-resolution.ts +1 -1
- package/src/coordination/load-balancer.ts +1 -1
- package/src/core/DatabaseManager.ts +55 -9
- package/src/core/config.ts +1 -1
- package/src/enterprise/audit-manager.ts +1 -1
- package/src/providers/openai-provider.ts +2 -2
- package/src/sdk/checkpoint-manager.ts +1 -1
- package/src/services/agentic-flow-hooks/workflow-hooks.ts +1 -1
- package/src/swarm/coordinator.ts +1 -1
- package/src/utils/error-recovery.ts +325 -0
- package/src/verification/rollback.ts +2 -2
- package/src/verification/tests/mocks/false-reporting-scenarios.test.ts +6 -3
- /package/docs/{BUG_REPORT_MEMORY_STATS.md โ bug-reports/BUG_REPORT_MEMORY_STATS.md} +0 -0
- /package/docs/{MCP_2025_FEATURE_CONFIRMATION.md โ features/MCP_2025_FEATURE_CONFIRMATION.md} +0 -0
- /package/docs/{OPTIONAL_LOCAL_EMBEDDINGS.md โ features/OPTIONAL_LOCAL_EMBEDDINGS.md} +0 -0
- /package/docs/{mcp-2025-implementation-summary.md โ features/mcp-2025-implementation-summary.md} +0 -0
- /package/docs/{mcp-spec-2025-implementation-plan.md โ features/mcp-spec-2025-implementation-plan.md} +0 -0
- /package/docs/{AGENTIC_FLOW_ENABLED_LOG_FIX.md โ fixes/AGENTIC_FLOW_ENABLED_LOG_FIX.md} +0 -0
- /package/docs/{MEMORY_COMMAND_FIX.md โ fixes/MEMORY_COMMAND_FIX.md} +0 -0
- /package/docs/{NPX_MEMORY_FIX_v2.7.19.md โ fixes/NPX_MEMORY_FIX_v2.7.19.md} +0 -0
- /package/docs/{REMOTE_INSTALL_FIX.md โ fixes/REMOTE_INSTALL_FIX.md} +0 -0
- /package/docs/{SQLITE_FIX_COMPLETE_v2.7.21.md โ fixes/SQLITE_FIX_COMPLETE_v2.7.21.md} +0 -0
- /package/docs/{NPM_PUBLISH_GUIDE_v2.7.33.md โ guides/NPM_PUBLISH_GUIDE_v2.7.33.md} +0 -0
- /package/docs/{SWARM_INITIALIZATION_GUIDE.md โ guides/SWARM_INITIALIZATION_GUIDE.md} +0 -0
- /package/docs/{AGENTDB_BRANCH_MERGE_VERIFICATION.md โ integration/AGENTDB_BRANCH_MERGE_VERIFICATION.md} +0 -0
- /package/docs/{INTEGRATION_STATUS_FINAL.md โ integration/INTEGRATION_STATUS_FINAL.md} +0 -0
- /package/docs/{agentic-flow-agentdb-mcp-integration.md โ integration/agentic-flow-agentdb-mcp-integration.md} +0 -0
- /package/docs/{phase-1-2-implementation-summary.md โ integration/phase-1-2-implementation-summary.md} +0 -0
- /package/docs/{.github-release-issue-v2.7.33.md โ releases/.github-release-issue-v2.7.33.md} +0 -0
- /package/docs/{RELEASE_NOTES_v2.7.15.md โ releases/RELEASE_NOTES_v2.7.15.md} +0 -0
- /package/docs/{RELEASE_NOTES_v2.7.33.md โ releases/RELEASE_NOTES_v2.7.33.md} +0 -0
- /package/docs/{RELEASE_READINESS_SUMMARY.md โ releases/RELEASE_READINESS_SUMMARY.md} +0 -0
- /package/docs/{RELEASE_SUMMARY_v2.7.33.md โ releases/RELEASE_SUMMARY_v2.7.33.md} +0 -0
- /package/docs/{V2.7.14_RELEASE_NOTES.md โ releases/V2.7.14_RELEASE_NOTES.md} +0 -0
- /package/docs/{V2.7.25_RELEASE_NOTES.md โ releases/V2.7.25_RELEASE_NOTES.md} +0 -0
- /package/docs/{V2.7.26_RELEASE_SUMMARY.md โ releases/V2.7.26_RELEASE_SUMMARY.md} +0 -0
- /package/docs/{V2.7.27_RELEASE_NOTES.md โ releases/V2.7.27_RELEASE_NOTES.md} +0 -0
- /package/docs/{V2.7.28_RELEASE_NOTES.md โ releases/V2.7.28_RELEASE_NOTES.md} +0 -0
- /package/docs/{AGENTIC_FLOW_INTEGRATION_REVIEW.md โ reviews/AGENTIC_FLOW_INTEGRATION_REVIEW.md} +0 -0
- /package/docs/{BRANCH_REVIEW_SUMMARY.md โ reviews/BRANCH_REVIEW_SUMMARY.md} +0 -0
- /package/docs/{DEEP_CODE_REVIEW_v2.7.33.md โ reviews/DEEP_CODE_REVIEW_v2.7.33.md} +0 -0
- /package/docs/{LATEST_LIBRARIES_REVIEW.md โ reviews/LATEST_LIBRARIES_REVIEW.md} +0 -0
- /package/docs/{REGRESSION_TEST_REPORT_v2.7.33.md โ testing/REGRESSION_TEST_REPORT_v2.7.33.md} +0 -0
- /package/docs/{V2.7.27_TEST_REPORT.md โ testing/V2.7.27_TEST_REPORT.md} +0 -0
- /package/docs/{regression-analysis-phase-1-2.md โ testing/regression-analysis-phase-1-2.md} +0 -0
- /package/docs/{TRANSFORMER_INITIALIZATION_ISSUE.md โ troubleshooting/TRANSFORMER_INITIALIZATION_ISSUE.md} +0 -0
- /package/docs/{FIX_VERIFICATION_MEMORY_STATS.md โ validation/FIX_VERIFICATION_MEMORY_STATS.md} +0 -0
- /package/docs/{TOOL_VALIDATION_REPORT.md โ validation/TOOL_VALIDATION_REPORT.md} +0 -0
- /package/docs/{VALIDATION_REPORT_v2.7.1.md โ validation/VALIDATION_REPORT_v2.7.1.md} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/database-service.ts"],"sourcesContent":["/**\n * Database service for swarm coordination system\n * Provides data access layer with support for multiple database engines\n */\n\nimport { ILogger } from '../core/logger.js';\nimport { ConfigManager } from '../config/config-manager.js';\nimport { SwarmError, DatabaseError } from '../utils/errors.js';\nimport { nanoid } from 'nanoid';\n\nexport interface DatabaseConfig {\n type: 'sqlite' | 'mysql' | 'postgresql';\n host?: string;\n port?: number;\n database: string;\n username?: string;\n password?: string;\n ssl?: boolean;\n poolSize?: number;\n timeout?: number;\n retryAttempts?: number;\n}\n\nexport interface SwarmRecord {\n id: string;\n name: string;\n topology: 'hierarchical' | 'mesh' | 'ring' | 'star';\n maxAgents: number;\n strategy: 'balanced' | 'specialized' | 'adaptive';\n status: 'initializing' | 'active' | 'paused' | 'destroyed';\n config?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n destroyedAt?: Date;\n}\n\nexport interface AgentRecord {\n id: string;\n swarmId: string;\n type: string;\n name?: string;\n status: 'spawning' | 'idle' | 'busy' | 'error' | 'terminated';\n capabilities?: string[];\n config?: Record<string, unknown>;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n terminatedAt?: Date;\n}\n\nexport interface TaskRecord {\n id: string;\n swarmId: string;\n description: string;\n priority: 'low' | 'medium' | 'high' | 'critical';\n strategy: 'parallel' | 'sequential' | 'adaptive';\n status: 'pending' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled';\n maxAgents?: number;\n requirements?: string[];\n metadata?: Record<string, unknown>;\n result?: unknown;\n errorMessage?: string;\n assignedTo?: string;\n createdAt: Date;\n updatedAt: Date;\n startedAt?: Date;\n completedAt?: Date;\n}\n\nexport interface MetricRecord {\n id: string;\n swarmId?: string;\n agentId?: string;\n metricType: string;\n metricName: string;\n metricValue: number;\n unit?: string;\n timestamp: Date;\n metadata?: Record<string, unknown>;\n}\n\nexport interface EventRecord {\n id: string;\n swarmId?: string;\n agentId?: string;\n eventType: string;\n eventName: string;\n eventData?: Record<string, unknown>;\n severity: 'debug' | 'info' | 'warning' | 'error' | 'critical';\n createdAt: Date;\n}\n\n/**\n * Database service implementation\n */\nexport class DatabaseService {\n private db: any; // Database connection instance\n private initialized = false;\n\n constructor(\n private config: DatabaseConfig,\n private logger: ILogger,\n ) {}\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n this.logger.info('Initializing database service', {\n type: this.config.type,\n database: this.config.database,\n });\n\n // Initialize database connection based on type\n switch (this.config.type) {\n case 'sqlite':\n await this.initializeSQLite();\n break;\n case 'mysql':\n await this.initializeMySQL();\n break;\n case 'postgresql':\n await this.initializePostgreSQL();\n break;\n default:\n throw new DatabaseError(`Unsupported database type: ${this.config.type}`);\n }\n\n // Run migrations if needed\n await this.runMigrations();\n\n this.initialized = true;\n this.logger.info('Database service initialized successfully');\n } catch (error) {\n this.logger.error('Failed to initialize database service', error);\n throw new DatabaseError('Database initialization failed', { error });\n }\n }\n\n async shutdown(): Promise<void> {\n if (!this.initialized || !this.db) {\n return;\n }\n\n try {\n if (this.config.type === 'sqlite') {\n await this.db.close();\n } else {\n await this.db.end();\n }\n this.initialized = false;\n this.logger.info('Database service shutdown complete');\n } catch (error) {\n this.logger.error('Error shutting down database service', error);\n }\n }\n\n // Swarm operations\n async createSwarm(swarm: Omit<SwarmRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<SwarmRecord> {\n const id = `swarm_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: SwarmRecord = {\n id,\n ...swarm,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO swarms (id, name, topology, max_agents, strategy, status, config, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.name,\n record.topology,\n record.maxAgents,\n record.strategy,\n record.status,\n JSON.stringify(record.config),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create swarm', { error, swarmId: id });\n }\n }\n\n async getSwarm(id: string): Promise<SwarmRecord | null> {\n try {\n const query = 'SELECT * FROM swarms WHERE id = ?';\n const rows = await this.query(query, [id]);\n \n if (rows.length === 0) {\n return null;\n }\n\n return this.mapSwarmRow(rows[0]);\n } catch (error) {\n throw new DatabaseError('Failed to get swarm', { error, swarmId: id });\n }\n }\n\n async updateSwarm(id: string, updates: Partial<SwarmRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (key === 'config' && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE swarms SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update swarm', { error, swarmId: id });\n }\n }\n\n async deleteSwarm(id: string): Promise<void> {\n try {\n const query = 'UPDATE swarms SET status = ?, destroyed_at = ? WHERE id = ?';\n await this.execute(query, ['destroyed', new Date(), id]);\n } catch (error) {\n throw new DatabaseError('Failed to delete swarm', { error, swarmId: id });\n }\n }\n\n async listSwarms(filter?: { status?: string }): Promise<SwarmRecord[]> {\n try {\n let query = 'SELECT * FROM swarms';\n const values: any[] = [];\n\n if (filter?.status) {\n query += ' WHERE status = ?';\n values.push(filter.status);\n }\n\n query += ' ORDER BY created_at DESC';\n const rows = await this.query(query, values);\n \n return rows.map(row => this.mapSwarmRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to list swarms', { error });\n }\n }\n\n // Agent operations\n async createAgent(agent: Omit<AgentRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<AgentRecord> {\n const id = `agent_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: AgentRecord = {\n id,\n ...agent,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO agents (id, swarm_id, type, name, status, capabilities, config, metadata, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.type,\n record.name,\n record.status,\n JSON.stringify(record.capabilities),\n JSON.stringify(record.config),\n JSON.stringify(record.metadata),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create agent', { error, agentId: id });\n }\n }\n\n async getAgentsBySwarm(swarmId: string): Promise<AgentRecord[]> {\n try {\n const query = 'SELECT * FROM agents WHERE swarm_id = ? AND status != ? ORDER BY created_at';\n const rows = await this.query(query, [swarmId, 'terminated']);\n \n return rows.map(row => this.mapAgentRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get agents by swarm', { error, swarmId });\n }\n }\n\n async updateAgent(id: string, updates: Partial<AgentRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (['capabilities', 'config', 'metadata'].includes(key) && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE agents SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update agent', { error, agentId: id });\n }\n }\n\n // Task operations\n async createTask(task: Omit<TaskRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskRecord> {\n const id = `task_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: TaskRecord = {\n id,\n ...task,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO tasks (id, swarm_id, description, priority, strategy, status, max_agents, requirements, metadata, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.description,\n record.priority,\n record.strategy,\n record.status,\n record.maxAgents,\n JSON.stringify(record.requirements),\n JSON.stringify(record.metadata),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create task', { error, taskId: id });\n }\n }\n\n async getTasksBySwarm(swarmId: string): Promise<TaskRecord[]> {\n try {\n const query = 'SELECT * FROM tasks WHERE swarm_id = ? ORDER BY created_at DESC';\n const rows = await this.query(query, [swarmId]);\n \n return rows.map(row => this.mapTaskRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get tasks by swarm', { error, swarmId });\n }\n }\n\n async updateTask(id: string, updates: Partial<TaskRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (['requirements', 'metadata', 'result'].includes(key) && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE tasks SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update task', { error, taskId: id });\n }\n }\n\n // Metrics operations\n async recordMetric(metric: Omit<MetricRecord, 'id' | 'timestamp'>): Promise<void> {\n const id = `metric_${Date.now()}_${nanoid(8)}`;\n const record = {\n id,\n ...metric,\n timestamp: new Date(),\n };\n\n try {\n const query = `\n INSERT INTO performance_metrics (id, swarm_id, agent_id, metric_type, metric_name, metric_value, unit, timestamp, metadata)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.agentId,\n record.metricType,\n record.metricName,\n record.metricValue,\n record.unit,\n record.timestamp,\n JSON.stringify(record.metadata),\n ];\n\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to record metric', { error, metricId: id });\n }\n }\n\n async getMetrics(filter: {\n swarmId?: string;\n agentId?: string;\n metricType?: string;\n startTime?: Date;\n endTime?: Date;\n limit?: number;\n }): Promise<MetricRecord[]> {\n try {\n let query = 'SELECT * FROM performance_metrics WHERE 1=1';\n const values: any[] = [];\n\n if (filter.swarmId) {\n query += ' AND swarm_id = ?';\n values.push(filter.swarmId);\n }\n if (filter.agentId) {\n query += ' AND agent_id = ?';\n values.push(filter.agentId);\n }\n if (filter.metricType) {\n query += ' AND metric_type = ?';\n values.push(filter.metricType);\n }\n if (filter.startTime) {\n query += ' AND timestamp >= ?';\n values.push(filter.startTime);\n }\n if (filter.endTime) {\n query += ' AND timestamp <= ?';\n values.push(filter.endTime);\n }\n\n query += ' ORDER BY timestamp DESC';\n \n if (filter.limit) {\n query += ' LIMIT ?';\n values.push(filter.limit);\n }\n\n const rows = await this.query(query, values);\n return rows.map(row => this.mapMetricRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get metrics', { error });\n }\n }\n\n // Event logging\n async recordEvent(event: Omit<EventRecord, 'id' | 'createdAt'>): Promise<void> {\n const id = `event_${Date.now()}_${nanoid(8)}`;\n const record = {\n id,\n ...event,\n createdAt: new Date(),\n };\n\n try {\n const query = `\n INSERT INTO events (id, swarm_id, agent_id, event_type, event_name, event_data, severity, created_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.agentId,\n record.eventType,\n record.eventName,\n JSON.stringify(record.eventData),\n record.severity,\n record.createdAt,\n ];\n\n await this.execute(query, values);\n } catch (error) {\n // Don't throw for event logging failures, just log the error\n this.logger.error('Failed to record event', { error, event: record });\n }\n }\n\n // Health check\n async getHealthStatus(): Promise<{\n healthy: boolean;\n error?: string;\n metrics?: Record<string, number>;\n }> {\n try {\n const query = 'SELECT 1 as test';\n await this.query(query);\n \n // Get basic metrics\n const swarmCount = await this.query('SELECT COUNT(*) as count FROM swarms WHERE status != ?', ['destroyed']);\n const agentCount = await this.query('SELECT COUNT(*) as count FROM agents WHERE status != ?', ['terminated']);\n const activeTaskCount = await this.query('SELECT COUNT(*) as count FROM tasks WHERE status IN (?, ?, ?)', ['pending', 'assigned', 'running']);\n\n return {\n healthy: true,\n metrics: {\n totalSwarms: swarmCount[0]?.count || 0,\n totalAgents: agentCount[0]?.count || 0,\n activeTasks: activeTaskCount[0]?.count || 0,\n },\n };\n } catch (error) {\n return {\n healthy: false,\n error: error instanceof Error ? error.message : 'Unknown database error',\n };\n }\n }\n\n // Private helper methods\n private async initializeSQLite(): Promise<void> {\n try {\n // Import better-sqlite3 dynamically\n const Database = (await import('better-sqlite3')).default;\n this.db = new Database(this.config.database);\n \n // Enable WAL mode for better concurrency\n this.db.pragma('journal_mode = WAL');\n this.db.pragma('synchronous = NORMAL');\n this.db.pragma('cache_size = 1000');\n this.db.pragma('temp_store = memory');\n } catch (error) {\n throw new DatabaseError('Failed to initialize SQLite', { error });\n }\n }\n\n private async initializeMySQL(): Promise<void> {\n // MySQL initialization would go here\n throw new DatabaseError('MySQL support not implemented yet');\n }\n\n private async initializePostgreSQL(): Promise<void> {\n // PostgreSQL initialization would go here\n throw new DatabaseError('PostgreSQL support not implemented yet');\n }\n\n private async runMigrations(): Promise<void> {\n try {\n // Check if migrations table exists\n const migrationQuery = this.config.type === 'sqlite'\n ? \"SELECT name FROM sqlite_master WHERE type='table' AND name='migrations'\"\n : \"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'migrations'\";\n \n const migrationTable = await this.query(migrationQuery);\n \n if (migrationTable.length === 0) {\n // Create migrations table and run initial schema\n await this.execute(`\n CREATE TABLE migrations (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n filename VARCHAR(255) NOT NULL,\n executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n )\n `);\n \n // Run schema creation (simplified for demo)\n await this.createTables();\n \n await this.execute(\n \"INSERT INTO migrations (filename) VALUES (?)\",\n ['001_initial_schema.sql']\n );\n }\n } catch (error) {\n throw new DatabaseError('Failed to run migrations', { error });\n }\n }\n\n private async createTables(): Promise<void> {\n const tables = [\n // Swarms table\n `CREATE TABLE IF NOT EXISTS swarms (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n topology TEXT NOT NULL,\n max_agents INTEGER DEFAULT 8,\n strategy TEXT DEFAULT 'balanced',\n status TEXT DEFAULT 'initializing',\n config TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n destroyed_at TEXT\n )`,\n \n // Agents table\n `CREATE TABLE IF NOT EXISTS agents (\n id TEXT PRIMARY KEY,\n swarm_id TEXT NOT NULL,\n type TEXT NOT NULL,\n name TEXT,\n status TEXT DEFAULT 'spawning',\n capabilities TEXT,\n config TEXT,\n metadata TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n terminated_at TEXT,\n FOREIGN KEY (swarm_id) REFERENCES swarms(id)\n )`,\n \n // Tasks table\n `CREATE TABLE IF NOT EXISTS tasks (\n id TEXT PRIMARY KEY,\n swarm_id TEXT NOT NULL,\n description TEXT NOT NULL,\n priority TEXT DEFAULT 'medium',\n strategy TEXT DEFAULT 'adaptive',\n status TEXT DEFAULT 'pending',\n max_agents INTEGER,\n requirements TEXT,\n metadata TEXT,\n result TEXT,\n error_message TEXT,\n assigned_to TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n started_at TEXT,\n completed_at TEXT,\n FOREIGN KEY (swarm_id) REFERENCES swarms(id)\n )`,\n \n // Performance metrics table\n `CREATE TABLE IF NOT EXISTS performance_metrics (\n id TEXT PRIMARY KEY,\n swarm_id TEXT,\n agent_id TEXT,\n metric_type TEXT NOT NULL,\n metric_name TEXT NOT NULL,\n metric_value REAL NOT NULL,\n unit TEXT,\n timestamp TEXT DEFAULT CURRENT_TIMESTAMP,\n metadata TEXT\n )`,\n \n // Events table\n `CREATE TABLE IF NOT EXISTS events (\n id TEXT PRIMARY KEY,\n swarm_id TEXT,\n agent_id TEXT,\n event_type TEXT NOT NULL,\n event_name TEXT NOT NULL,\n event_data TEXT,\n severity TEXT DEFAULT 'info',\n created_at TEXT DEFAULT CURRENT_TIMESTAMP\n )`,\n ];\n\n for (const table of tables) {\n await this.execute(table);\n }\n }\n\n private async query(sql: string, params: any[] = []): Promise<any[]> {\n if (this.config.type === 'sqlite') {\n const stmt = this.db.prepare(sql);\n return stmt.all(...params);\n }\n \n // Other database types would be handled here\n throw new DatabaseError('Unsupported database operation');\n }\n\n private async execute(sql: string, params: any[] = []): Promise<any> {\n if (this.config.type === 'sqlite') {\n const stmt = this.db.prepare(sql);\n return stmt.run(...params);\n }\n \n // Other database types would be handled here\n throw new DatabaseError('Unsupported database operation');\n }\n\n private camelToSnake(str: string): string {\n return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);\n }\n\n private mapSwarmRow(row: any): SwarmRecord {\n return {\n id: row.id,\n name: row.name,\n topology: row.topology,\n maxAgents: row.max_agents,\n strategy: row.strategy,\n status: row.status,\n config: row.config ? JSON.parse(row.config) : undefined,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n destroyedAt: row.destroyed_at ? new Date(row.destroyed_at) : undefined,\n };\n }\n\n private mapAgentRow(row: any): AgentRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n type: row.type,\n name: row.name,\n status: row.status,\n capabilities: row.capabilities ? JSON.parse(row.capabilities) : undefined,\n config: row.config ? JSON.parse(row.config) : undefined,\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n terminatedAt: row.terminated_at ? new Date(row.terminated_at) : undefined,\n };\n }\n\n private mapTaskRow(row: any): TaskRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n description: row.description,\n priority: row.priority,\n strategy: row.strategy,\n status: row.status,\n maxAgents: row.max_agents,\n requirements: row.requirements ? JSON.parse(row.requirements) : undefined,\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n result: row.result ? JSON.parse(row.result) : undefined,\n errorMessage: row.error_message,\n assignedTo: row.assigned_to,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n startedAt: row.started_at ? new Date(row.started_at) : undefined,\n completedAt: row.completed_at ? new Date(row.completed_at) : undefined,\n };\n }\n\n private mapMetricRow(row: any): MetricRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n agentId: row.agent_id,\n metricType: row.metric_type,\n metricName: row.metric_name,\n metricValue: row.metric_value,\n unit: row.unit,\n timestamp: new Date(row.timestamp),\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n };\n }\n}"],"names":["DatabaseError","nanoid","DatabaseService","db","initialized","config","logger","initialize","info","type","database","initializeSQLite","initializeMySQL","initializePostgreSQL","runMigrations","error","shutdown","close","end","createSwarm","swarm","id","Date","now","record","createdAt","updatedAt","query","values","name","topology","maxAgents","strategy","status","JSON","stringify","execute","swarmId","getSwarm","rows","length","mapSwarmRow","updateSwarm","updates","setClause","Object","keys","filter","key","map","camelToSnake","join","entries","value","push","deleteSwarm","listSwarms","row","createAgent","agent","capabilities","metadata","agentId","getAgentsBySwarm","mapAgentRow","updateAgent","includes","createTask","task","description","priority","requirements","taskId","getTasksBySwarm","mapTaskRow","updateTask","recordMetric","metric","timestamp","metricType","metricName","metricValue","unit","metricId","getMetrics","startTime","endTime","limit","mapMetricRow","recordEvent","event","eventType","eventName","eventData","severity","getHealthStatus","swarmCount","agentCount","activeTaskCount","healthy","metrics","totalSwarms","count","totalAgents","activeTasks","Error","message","Database","default","pragma","migrationQuery","migrationTable","createTables","tables","table","sql","params","stmt","prepare","all","run","str","replace","letter","toLowerCase","max_agents","parse","undefined","created_at","updated_at","destroyedAt","destroyed_at","swarm_id","terminatedAt","terminated_at","result","errorMessage","error_message","assignedTo","assigned_to","startedAt","started_at","completedAt","completed_at","agent_id","metric_type","metric_name","metric_value"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/database-service.ts"],"sourcesContent":["/**\n * Database service for swarm coordination system\n * Provides data access layer with support for multiple database engines\n */\n\nimport { ILogger } from '../core/logger.js';\nimport { DatabaseError } from '../utils/errors.js';\nimport { nanoid } from 'nanoid';\n\nexport interface DatabaseConfig {\n type: 'sqlite' | 'mysql' | 'postgresql';\n host?: string;\n port?: number;\n database: string;\n username?: string;\n password?: string;\n ssl?: boolean;\n poolSize?: number;\n timeout?: number;\n retryAttempts?: number;\n}\n\nexport interface SwarmRecord {\n id: string;\n name: string;\n topology: 'hierarchical' | 'mesh' | 'ring' | 'star';\n maxAgents: number;\n strategy: 'balanced' | 'specialized' | 'adaptive';\n status: 'initializing' | 'active' | 'paused' | 'destroyed';\n config?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n destroyedAt?: Date;\n}\n\nexport interface AgentRecord {\n id: string;\n swarmId: string;\n type: string;\n name?: string;\n status: 'spawning' | 'idle' | 'busy' | 'error' | 'terminated';\n capabilities?: string[];\n config?: Record<string, unknown>;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n terminatedAt?: Date;\n}\n\nexport interface TaskRecord {\n id: string;\n swarmId: string;\n description: string;\n priority: 'low' | 'medium' | 'high' | 'critical';\n strategy: 'parallel' | 'sequential' | 'adaptive';\n status: 'pending' | 'assigned' | 'running' | 'completed' | 'failed' | 'cancelled';\n maxAgents?: number;\n requirements?: string[];\n metadata?: Record<string, unknown>;\n result?: unknown;\n errorMessage?: string;\n assignedTo?: string;\n createdAt: Date;\n updatedAt: Date;\n startedAt?: Date;\n completedAt?: Date;\n}\n\nexport interface MetricRecord {\n id: string;\n swarmId?: string;\n agentId?: string;\n metricType: string;\n metricName: string;\n metricValue: number;\n unit?: string;\n timestamp: Date;\n metadata?: Record<string, unknown>;\n}\n\nexport interface EventRecord {\n id: string;\n swarmId?: string;\n agentId?: string;\n eventType: string;\n eventName: string;\n eventData?: Record<string, unknown>;\n severity: 'debug' | 'info' | 'warning' | 'error' | 'critical';\n createdAt: Date;\n}\n\n/**\n * Database service implementation\n */\nexport class DatabaseService {\n private db: any; // Database connection instance\n private initialized = false;\n\n constructor(\n private config: DatabaseConfig,\n private logger: ILogger,\n ) {}\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n\n try {\n this.logger.info('Initializing database service', {\n type: this.config.type,\n database: this.config.database,\n });\n\n // Initialize database connection based on type\n switch (this.config.type) {\n case 'sqlite':\n await this.initializeSQLite();\n break;\n case 'mysql':\n await this.initializeMySQL();\n break;\n case 'postgresql':\n await this.initializePostgreSQL();\n break;\n default:\n throw new DatabaseError(`Unsupported database type: ${this.config.type}`);\n }\n\n // Run migrations if needed\n await this.runMigrations();\n\n this.initialized = true;\n this.logger.info('Database service initialized successfully');\n } catch (error) {\n this.logger.error('Failed to initialize database service', error);\n throw new DatabaseError('Database initialization failed', { error });\n }\n }\n\n async shutdown(): Promise<void> {\n if (!this.initialized || !this.db) {\n return;\n }\n\n try {\n if (this.config.type === 'sqlite') {\n await this.db.close();\n } else {\n await this.db.end();\n }\n this.initialized = false;\n this.logger.info('Database service shutdown complete');\n } catch (error) {\n this.logger.error('Error shutting down database service', error);\n }\n }\n\n // Swarm operations\n async createSwarm(swarm: Omit<SwarmRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<SwarmRecord> {\n const id = `swarm_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: SwarmRecord = {\n id,\n ...swarm,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO swarms (id, name, topology, max_agents, strategy, status, config, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.name,\n record.topology,\n record.maxAgents,\n record.strategy,\n record.status,\n JSON.stringify(record.config),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create swarm', { error, swarmId: id });\n }\n }\n\n async getSwarm(id: string): Promise<SwarmRecord | null> {\n try {\n const query = 'SELECT * FROM swarms WHERE id = ?';\n const rows = await this.query(query, [id]);\n \n if (rows.length === 0) {\n return null;\n }\n\n return this.mapSwarmRow(rows[0]);\n } catch (error) {\n throw new DatabaseError('Failed to get swarm', { error, swarmId: id });\n }\n }\n\n async updateSwarm(id: string, updates: Partial<SwarmRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (key === 'config' && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE swarms SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update swarm', { error, swarmId: id });\n }\n }\n\n async deleteSwarm(id: string): Promise<void> {\n try {\n const query = 'UPDATE swarms SET status = ?, destroyed_at = ? WHERE id = ?';\n await this.execute(query, ['destroyed', new Date(), id]);\n } catch (error) {\n throw new DatabaseError('Failed to delete swarm', { error, swarmId: id });\n }\n }\n\n async listSwarms(filter?: { status?: string }): Promise<SwarmRecord[]> {\n try {\n let query = 'SELECT * FROM swarms';\n const values: any[] = [];\n\n if (filter?.status) {\n query += ' WHERE status = ?';\n values.push(filter.status);\n }\n\n query += ' ORDER BY created_at DESC';\n const rows = await this.query(query, values);\n \n return rows.map(row => this.mapSwarmRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to list swarms', { error });\n }\n }\n\n // Agent operations\n async createAgent(agent: Omit<AgentRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<AgentRecord> {\n const id = `agent_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: AgentRecord = {\n id,\n ...agent,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO agents (id, swarm_id, type, name, status, capabilities, config, metadata, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.type,\n record.name,\n record.status,\n JSON.stringify(record.capabilities),\n JSON.stringify(record.config),\n JSON.stringify(record.metadata),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create agent', { error, agentId: id });\n }\n }\n\n async getAgentsBySwarm(swarmId: string): Promise<AgentRecord[]> {\n try {\n const query = 'SELECT * FROM agents WHERE swarm_id = ? AND status != ? ORDER BY created_at';\n const rows = await this.query(query, [swarmId, 'terminated']);\n \n return rows.map(row => this.mapAgentRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get agents by swarm', { error, swarmId });\n }\n }\n\n async updateAgent(id: string, updates: Partial<AgentRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (['capabilities', 'config', 'metadata'].includes(key) && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE agents SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update agent', { error, agentId: id });\n }\n }\n\n // Task operations\n async createTask(task: Omit<TaskRecord, 'id' | 'createdAt' | 'updatedAt'>): Promise<TaskRecord> {\n const id = `task_${Date.now()}_${nanoid(10)}`;\n const now = new Date();\n\n const record: TaskRecord = {\n id,\n ...task,\n createdAt: now,\n updatedAt: now,\n };\n\n try {\n const query = `\n INSERT INTO tasks (id, swarm_id, description, priority, strategy, status, max_agents, requirements, metadata, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.description,\n record.priority,\n record.strategy,\n record.status,\n record.maxAgents,\n JSON.stringify(record.requirements),\n JSON.stringify(record.metadata),\n record.createdAt,\n record.updatedAt,\n ];\n\n await this.execute(query, values);\n return record;\n } catch (error) {\n throw new DatabaseError('Failed to create task', { error, taskId: id });\n }\n }\n\n async getTasksBySwarm(swarmId: string): Promise<TaskRecord[]> {\n try {\n const query = 'SELECT * FROM tasks WHERE swarm_id = ? ORDER BY created_at DESC';\n const rows = await this.query(query, [swarmId]);\n \n return rows.map(row => this.mapTaskRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get tasks by swarm', { error, swarmId });\n }\n }\n\n async updateTask(id: string, updates: Partial<TaskRecord>): Promise<void> {\n try {\n const setClause = Object.keys(updates)\n .filter(key => key !== 'id' && key !== 'createdAt')\n .map(key => `${this.camelToSnake(key)} = ?`)\n .join(', ');\n \n const values = Object.entries(updates)\n .filter(([key]) => key !== 'id' && key !== 'createdAt')\n .map(([key, value]) => {\n if (['requirements', 'metadata', 'result'].includes(key) && typeof value === 'object') {\n return JSON.stringify(value);\n }\n return value;\n });\n \n values.push(new Date()); // updated_at\n values.push(id);\n\n const query = `UPDATE tasks SET ${setClause}, updated_at = ? WHERE id = ?`;\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to update task', { error, taskId: id });\n }\n }\n\n // Metrics operations\n async recordMetric(metric: Omit<MetricRecord, 'id' | 'timestamp'>): Promise<void> {\n const id = `metric_${Date.now()}_${nanoid(8)}`;\n const record = {\n id,\n ...metric,\n timestamp: new Date(),\n };\n\n try {\n const query = `\n INSERT INTO performance_metrics (id, swarm_id, agent_id, metric_type, metric_name, metric_value, unit, timestamp, metadata)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.agentId,\n record.metricType,\n record.metricName,\n record.metricValue,\n record.unit,\n record.timestamp,\n JSON.stringify(record.metadata),\n ];\n\n await this.execute(query, values);\n } catch (error) {\n throw new DatabaseError('Failed to record metric', { error, metricId: id });\n }\n }\n\n async getMetrics(filter: {\n swarmId?: string;\n agentId?: string;\n metricType?: string;\n startTime?: Date;\n endTime?: Date;\n limit?: number;\n }): Promise<MetricRecord[]> {\n try {\n let query = 'SELECT * FROM performance_metrics WHERE 1=1';\n const values: any[] = [];\n\n if (filter.swarmId) {\n query += ' AND swarm_id = ?';\n values.push(filter.swarmId);\n }\n if (filter.agentId) {\n query += ' AND agent_id = ?';\n values.push(filter.agentId);\n }\n if (filter.metricType) {\n query += ' AND metric_type = ?';\n values.push(filter.metricType);\n }\n if (filter.startTime) {\n query += ' AND timestamp >= ?';\n values.push(filter.startTime);\n }\n if (filter.endTime) {\n query += ' AND timestamp <= ?';\n values.push(filter.endTime);\n }\n\n query += ' ORDER BY timestamp DESC';\n \n if (filter.limit) {\n query += ' LIMIT ?';\n values.push(filter.limit);\n }\n\n const rows = await this.query(query, values);\n return rows.map(row => this.mapMetricRow(row));\n } catch (error) {\n throw new DatabaseError('Failed to get metrics', { error });\n }\n }\n\n // Event logging\n async recordEvent(event: Omit<EventRecord, 'id' | 'createdAt'>): Promise<void> {\n const id = `event_${Date.now()}_${nanoid(8)}`;\n const record = {\n id,\n ...event,\n createdAt: new Date(),\n };\n\n try {\n const query = `\n INSERT INTO events (id, swarm_id, agent_id, event_type, event_name, event_data, severity, created_at)\n VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n `;\n const values = [\n record.id,\n record.swarmId,\n record.agentId,\n record.eventType,\n record.eventName,\n JSON.stringify(record.eventData),\n record.severity,\n record.createdAt,\n ];\n\n await this.execute(query, values);\n } catch (error) {\n // Don't throw for event logging failures, just log the error\n this.logger.error('Failed to record event', { error, event: record });\n }\n }\n\n // Health check\n async getHealthStatus(): Promise<{\n healthy: boolean;\n error?: string;\n metrics?: Record<string, number>;\n }> {\n try {\n const query = 'SELECT 1 as test';\n await this.query(query);\n \n // Get basic metrics\n const swarmCount = await this.query('SELECT COUNT(*) as count FROM swarms WHERE status != ?', ['destroyed']);\n const agentCount = await this.query('SELECT COUNT(*) as count FROM agents WHERE status != ?', ['terminated']);\n const activeTaskCount = await this.query('SELECT COUNT(*) as count FROM tasks WHERE status IN (?, ?, ?)', ['pending', 'assigned', 'running']);\n\n return {\n healthy: true,\n metrics: {\n totalSwarms: swarmCount[0]?.count || 0,\n totalAgents: agentCount[0]?.count || 0,\n activeTasks: activeTaskCount[0]?.count || 0,\n },\n };\n } catch (error) {\n return {\n healthy: false,\n error: error instanceof Error ? error.message : 'Unknown database error',\n };\n }\n }\n\n // Private helper methods\n private async initializeSQLite(): Promise<void> {\n try {\n // Import better-sqlite3 dynamically\n const Database = (await import('better-sqlite3')).default;\n this.db = new Database(this.config.database);\n \n // Enable WAL mode for better concurrency\n this.db.pragma('journal_mode = WAL');\n this.db.pragma('synchronous = NORMAL');\n this.db.pragma('cache_size = 1000');\n this.db.pragma('temp_store = memory');\n } catch (error) {\n throw new DatabaseError('Failed to initialize SQLite', { error });\n }\n }\n\n private async initializeMySQL(): Promise<void> {\n // MySQL initialization would go here\n throw new DatabaseError('MySQL support not implemented yet');\n }\n\n private async initializePostgreSQL(): Promise<void> {\n // PostgreSQL initialization would go here\n throw new DatabaseError('PostgreSQL support not implemented yet');\n }\n\n private async runMigrations(): Promise<void> {\n try {\n // Check if migrations table exists\n const migrationQuery = this.config.type === 'sqlite'\n ? \"SELECT name FROM sqlite_master WHERE type='table' AND name='migrations'\"\n : \"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'migrations'\";\n \n const migrationTable = await this.query(migrationQuery);\n \n if (migrationTable.length === 0) {\n // Create migrations table and run initial schema\n await this.execute(`\n CREATE TABLE migrations (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n filename VARCHAR(255) NOT NULL,\n executed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP\n )\n `);\n \n // Run schema creation (simplified for demo)\n await this.createTables();\n \n await this.execute(\n \"INSERT INTO migrations (filename) VALUES (?)\",\n ['001_initial_schema.sql']\n );\n }\n } catch (error) {\n throw new DatabaseError('Failed to run migrations', { error });\n }\n }\n\n private async createTables(): Promise<void> {\n const tables = [\n // Swarms table\n `CREATE TABLE IF NOT EXISTS swarms (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n topology TEXT NOT NULL,\n max_agents INTEGER DEFAULT 8,\n strategy TEXT DEFAULT 'balanced',\n status TEXT DEFAULT 'initializing',\n config TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n destroyed_at TEXT\n )`,\n \n // Agents table\n `CREATE TABLE IF NOT EXISTS agents (\n id TEXT PRIMARY KEY,\n swarm_id TEXT NOT NULL,\n type TEXT NOT NULL,\n name TEXT,\n status TEXT DEFAULT 'spawning',\n capabilities TEXT,\n config TEXT,\n metadata TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n terminated_at TEXT,\n FOREIGN KEY (swarm_id) REFERENCES swarms(id)\n )`,\n \n // Tasks table\n `CREATE TABLE IF NOT EXISTS tasks (\n id TEXT PRIMARY KEY,\n swarm_id TEXT NOT NULL,\n description TEXT NOT NULL,\n priority TEXT DEFAULT 'medium',\n strategy TEXT DEFAULT 'adaptive',\n status TEXT DEFAULT 'pending',\n max_agents INTEGER,\n requirements TEXT,\n metadata TEXT,\n result TEXT,\n error_message TEXT,\n assigned_to TEXT,\n created_at TEXT DEFAULT CURRENT_TIMESTAMP,\n updated_at TEXT DEFAULT CURRENT_TIMESTAMP,\n started_at TEXT,\n completed_at TEXT,\n FOREIGN KEY (swarm_id) REFERENCES swarms(id)\n )`,\n \n // Performance metrics table\n `CREATE TABLE IF NOT EXISTS performance_metrics (\n id TEXT PRIMARY KEY,\n swarm_id TEXT,\n agent_id TEXT,\n metric_type TEXT NOT NULL,\n metric_name TEXT NOT NULL,\n metric_value REAL NOT NULL,\n unit TEXT,\n timestamp TEXT DEFAULT CURRENT_TIMESTAMP,\n metadata TEXT\n )`,\n \n // Events table\n `CREATE TABLE IF NOT EXISTS events (\n id TEXT PRIMARY KEY,\n swarm_id TEXT,\n agent_id TEXT,\n event_type TEXT NOT NULL,\n event_name TEXT NOT NULL,\n event_data TEXT,\n severity TEXT DEFAULT 'info',\n created_at TEXT DEFAULT CURRENT_TIMESTAMP\n )`,\n ];\n\n for (const table of tables) {\n await this.execute(table);\n }\n }\n\n private async query(sql: string, params: any[] = []): Promise<any[]> {\n if (this.config.type === 'sqlite') {\n const stmt = this.db.prepare(sql);\n return stmt.all(...params);\n }\n \n // Other database types would be handled here\n throw new DatabaseError('Unsupported database operation');\n }\n\n private async execute(sql: string, params: any[] = []): Promise<any> {\n if (this.config.type === 'sqlite') {\n const stmt = this.db.prepare(sql);\n return stmt.run(...params);\n }\n \n // Other database types would be handled here\n throw new DatabaseError('Unsupported database operation');\n }\n\n private camelToSnake(str: string): string {\n return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);\n }\n\n private mapSwarmRow(row: any): SwarmRecord {\n return {\n id: row.id,\n name: row.name,\n topology: row.topology,\n maxAgents: row.max_agents,\n strategy: row.strategy,\n status: row.status,\n config: row.config ? JSON.parse(row.config) : undefined,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n destroyedAt: row.destroyed_at ? new Date(row.destroyed_at) : undefined,\n };\n }\n\n private mapAgentRow(row: any): AgentRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n type: row.type,\n name: row.name,\n status: row.status,\n capabilities: row.capabilities ? JSON.parse(row.capabilities) : undefined,\n config: row.config ? JSON.parse(row.config) : undefined,\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n terminatedAt: row.terminated_at ? new Date(row.terminated_at) : undefined,\n };\n }\n\n private mapTaskRow(row: any): TaskRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n description: row.description,\n priority: row.priority,\n strategy: row.strategy,\n status: row.status,\n maxAgents: row.max_agents,\n requirements: row.requirements ? JSON.parse(row.requirements) : undefined,\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n result: row.result ? JSON.parse(row.result) : undefined,\n errorMessage: row.error_message,\n assignedTo: row.assigned_to,\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n startedAt: row.started_at ? new Date(row.started_at) : undefined,\n completedAt: row.completed_at ? new Date(row.completed_at) : undefined,\n };\n }\n\n private mapMetricRow(row: any): MetricRecord {\n return {\n id: row.id,\n swarmId: row.swarm_id,\n agentId: row.agent_id,\n metricType: row.metric_type,\n metricName: row.metric_name,\n metricValue: row.metric_value,\n unit: row.unit,\n timestamp: new Date(row.timestamp),\n metadata: row.metadata ? JSON.parse(row.metadata) : undefined,\n };\n }\n}"],"names":["DatabaseError","nanoid","DatabaseService","db","initialized","config","logger","initialize","info","type","database","initializeSQLite","initializeMySQL","initializePostgreSQL","runMigrations","error","shutdown","close","end","createSwarm","swarm","id","Date","now","record","createdAt","updatedAt","query","values","name","topology","maxAgents","strategy","status","JSON","stringify","execute","swarmId","getSwarm","rows","length","mapSwarmRow","updateSwarm","updates","setClause","Object","keys","filter","key","map","camelToSnake","join","entries","value","push","deleteSwarm","listSwarms","row","createAgent","agent","capabilities","metadata","agentId","getAgentsBySwarm","mapAgentRow","updateAgent","includes","createTask","task","description","priority","requirements","taskId","getTasksBySwarm","mapTaskRow","updateTask","recordMetric","metric","timestamp","metricType","metricName","metricValue","unit","metricId","getMetrics","startTime","endTime","limit","mapMetricRow","recordEvent","event","eventType","eventName","eventData","severity","getHealthStatus","swarmCount","agentCount","activeTaskCount","healthy","metrics","totalSwarms","count","totalAgents","activeTasks","Error","message","Database","default","pragma","migrationQuery","migrationTable","createTables","tables","table","sql","params","stmt","prepare","all","run","str","replace","letter","toLowerCase","max_agents","parse","undefined","created_at","updated_at","destroyedAt","destroyed_at","swarm_id","terminatedAt","terminated_at","result","errorMessage","error_message","assignedTo","assigned_to","startedAt","started_at","completedAt","completed_at","agent_id","metric_type","metric_name","metric_value"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/api/swarm-api.ts"],"sourcesContent":["/**\n * Swarm API - RESTful API for swarm coordination and management\n * Provides HTTP endpoints for swarm operations, agent management, and task orchestration\n */\n\nimport { Router } from 'express';\nimport { ILogger } from '../core/logger.js';\nimport { ClaudeAPIClient } from './claude-client.js';\nimport { ConfigManager } from '../config/config-manager.js';\nimport { ICoordinationManager } from '../coordination/manager.js';\nimport { SwarmCoordinator } from '../swarm/coordinator.js';\nimport { AgentManager } from '../agents/agent-manager.js';\nimport { ResourceManager } from '../resources/resource-manager.js';\nimport { Task, Agent, SwarmConfig, SwarmStatus } from '../utils/types.js';\nimport { ValidationError, SwarmError } from '../utils/errors.js';\nimport { nanoid } from 'nanoid';\n\nexport interface SwarmApiConfig {\n rateLimit: {\n windowMs: number;\n maxRequests: number;\n };\n authentication: {\n enabled: boolean;\n apiKeys?: string[];\n jwtSecret?: string;\n };\n cors: {\n origins: string[];\n methods: string[];\n };\n swagger: {\n enabled: boolean;\n title: string;\n version: string;\n description: string;\n };\n}\n\nexport interface SwarmCreateRequest {\n name: string;\n topology: 'hierarchical' | 'mesh' | 'ring' | 'star';\n maxAgents?: number;\n strategy?: 'balanced' | 'specialized' | 'adaptive';\n config?: Partial<SwarmConfig>;\n}\n\nexport interface AgentSpawnRequest {\n type: string;\n name?: string;\n capabilities?: string[];\n config?: Record<string, unknown>;\n}\n\nexport interface TaskOrchestrationRequest {\n task: string;\n priority?: 'low' | 'medium' | 'high' | 'critical';\n strategy?: 'parallel' | 'sequential' | 'adaptive';\n maxAgents?: number;\n requirements?: string[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface SwarmMetrics {\n swarmId: string;\n agentCount: number;\n activeTasks: number;\n completedTasks: number;\n failedTasks: number;\n averageResponseTime: number;\n resourceUtilization: Record<string, number>;\n healthScore: number;\n}\n\n/**\n * Swarm API implementation\n */\nexport class SwarmApi {\n private router: Router;\n private swarms = new Map<string, SwarmCoordinator>();\n\n constructor(\n private config: SwarmApiConfig,\n private logger: ILogger,\n private claudeClient: ClaudeAPIClient,\n private configManager: ConfigManager,\n private coordinationManager: ICoordinationManager,\n private agentManager: AgentManager,\n private resourceManager: ResourceManager,\n ) {\n this.router = Router();\n this.setupRoutes();\n this.setupMiddleware();\n }\n\n getRouter(): Router {\n return this.router;\n }\n\n private setupMiddleware(): void {\n // Request logging\n this.router.use((req, res, next) => {\n this.logger.info('Swarm API request', {\n method: req.method,\n path: req.path,\n ip: req.ip,\n userAgent: req.get('User-Agent'),\n });\n next();\n });\n\n // Request validation\n this.router.use((req, res, next) => {\n if (req.method === 'POST' || req.method === 'PUT') {\n if (!req.body) {\n return res.status(400).json({\n error: 'Request body is required',\n code: 'MISSING_BODY',\n });\n }\n }\n next();\n });\n\n // Error handling\n this.router.use((err: Error, req: any, res: any, next: any) => {\n this.logger.error('Swarm API error', {\n error: err.message,\n stack: err.stack,\n method: req.method,\n path: req.path,\n });\n\n if (err instanceof ValidationError) {\n return res.status(400).json({\n error: err.message,\n code: 'VALIDATION_ERROR',\n details: err.details,\n });\n }\n\n if (err instanceof SwarmError) {\n return res.status(409).json({\n error: err.message,\n code: 'SWARM_ERROR',\n details: err.details,\n });\n }\n\n res.status(500).json({\n error: 'Internal server error',\n code: 'INTERNAL_ERROR',\n });\n });\n }\n\n private setupRoutes(): void {\n // Health check\n this.router.get('/health', async (req, res) => {\n try {\n const health = await this.getSystemHealth();\n res.json(health);\n } catch (error) {\n res.status(500).json({\n healthy: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n }\n });\n\n // Swarm management\n this.router.post('/swarms', this.createSwarm.bind(this));\n this.router.get('/swarms', this.listSwarms.bind(this));\n this.router.get('/swarms/:swarmId', this.getSwarm.bind(this));\n this.router.delete('/swarms/:swarmId', this.destroySwarm.bind(this));\n this.router.post('/swarms/:swarmId/scale', this.scaleSwarm.bind(this));\n\n // Agent management\n this.router.post('/swarms/:swarmId/agents', this.spawnAgent.bind(this));\n this.router.get('/swarms/:swarmId/agents', this.listAgents.bind(this));\n this.router.get('/swarms/:swarmId/agents/:agentId', this.getAgent.bind(this));\n this.router.delete('/swarms/:swarmId/agents/:agentId', this.terminateAgent.bind(this));\n\n // Task orchestration\n this.router.post('/swarms/:swarmId/tasks', this.orchestrateTask.bind(this));\n this.router.get('/swarms/:swarmId/tasks', this.listTasks.bind(this));\n this.router.get('/swarms/:swarmId/tasks/:taskId', this.getTask.bind(this));\n this.router.delete('/swarms/:swarmId/tasks/:taskId', this.cancelTask.bind(this));\n\n // Metrics and monitoring\n this.router.get('/swarms/:swarmId/metrics', this.getSwarmMetrics.bind(this));\n this.router.get('/swarms/:swarmId/status', this.getSwarmStatus.bind(this));\n this.router.get('/system/metrics', this.getSystemMetrics.bind(this));\n }\n\n private async createSwarm(req: any, res: any): Promise<void> {\n try {\n const request = req.body as SwarmCreateRequest;\n \n // Validate request\n if (!request.name || !request.topology) {\n return res.status(400).json({\n error: 'Name and topology are required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n // Create swarm configuration\n const swarmConfig: SwarmConfig = {\n name: request.name,\n topology: request.topology,\n maxAgents: request.maxAgents || 8,\n strategy: request.strategy || 'balanced',\n ...request.config,\n };\n\n // Generate swarm ID\n const swarmId = `swarm_${Date.now()}_${nanoid(10)}`;\n\n // Create swarm coordinator\n const swarm = new SwarmCoordinator(\n swarmId,\n swarmConfig,\n this.logger,\n this.claudeClient,\n this.configManager,\n this.coordinationManager,\n this.agentManager,\n this.resourceManager,\n );\n\n // Initialize swarm\n await swarm.initialize();\n\n // Store swarm\n this.swarms.set(swarmId, swarm);\n\n this.logger.info('Swarm created', {\n swarmId,\n name: request.name,\n topology: request.topology,\n });\n\n res.status(201).json({\n swarmId,\n name: request.name,\n topology: request.topology,\n maxAgents: swarmConfig.maxAgents,\n strategy: swarmConfig.strategy,\n status: 'active',\n createdAt: new Date().toISOString(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async listSwarms(req: any, res: any): Promise<void> {\n try {\n const swarmList = Array.from(this.swarms.entries()).map(([swarmId, swarm]) => ({\n swarmId,\n name: swarm.getConfig().name,\n topology: swarm.getConfig().topology,\n agentCount: swarm.getAgentCount(),\n status: swarm.getStatus(),\n createdAt: swarm.getCreatedAt(),\n }));\n\n res.json({\n swarms: swarmList,\n total: swarmList.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const config = swarm.getConfig();\n const status = swarm.getStatus();\n const agents = await swarm.getAgents();\n const metrics = await swarm.getMetrics();\n\n res.json({\n swarmId,\n config,\n status,\n agents: agents.map(agent => ({\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n })),\n metrics,\n createdAt: swarm.getCreatedAt(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async destroySwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.destroy();\n this.swarms.delete(swarmId);\n\n this.logger.info('Swarm destroyed', { swarmId });\n\n res.json({\n message: 'Swarm destroyed successfully',\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async scaleSwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const { targetSize } = req.body;\n\n if (!targetSize || targetSize < 1) {\n return res.status(400).json({\n error: 'Valid targetSize is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.scale(targetSize);\n\n res.json({\n message: 'Swarm scaled successfully',\n swarmId,\n newSize: targetSize,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async spawnAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const request = req.body as AgentSpawnRequest;\n\n if (!request.type) {\n return res.status(400).json({\n error: 'Agent type is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agent = await swarm.spawnAgent({\n type: request.type,\n name: request.name,\n capabilities: request.capabilities || [],\n config: request.config,\n });\n\n res.status(201).json({\n agent: {\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n },\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async orchestrateTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const request = req.body as TaskOrchestrationRequest;\n\n if (!request.task) {\n return res.status(400).json({\n error: 'Task description is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const task = await swarm.orchestrateTask({\n description: request.task,\n priority: request.priority || 'medium',\n strategy: request.strategy || 'adaptive',\n maxAgents: request.maxAgents,\n requirements: request.requirements,\n metadata: request.metadata,\n });\n\n res.status(201).json({\n task: {\n id: task.id,\n description: task.description,\n status: task.status,\n priority: task.priority,\n strategy: task.strategy,\n },\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarmMetrics(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const metrics = await swarm.getMetrics();\n res.json(metrics);\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarmStatus(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const status = await swarm.getDetailedStatus();\n res.json(status);\n } catch (error) {\n throw error;\n }\n }\n\n private async getSystemHealth(): Promise<{\n healthy: boolean;\n services: Record<string, { healthy: boolean; error?: string }>;\n metrics: Record<string, number>;\n }> {\n const services: Record<string, { healthy: boolean; error?: string }> = {};\n let allHealthy = true;\n\n // Check Claude API health\n const claudeHealth = this.claudeClient.getHealthStatus();\n services.claude = {\n healthy: claudeHealth?.healthy || false,\n error: claudeHealth?.error,\n };\n allHealthy = allHealthy && services.claude.healthy;\n\n // Check coordination manager health\n const coordHealth = await this.coordinationManager.getHealthStatus();\n services.coordination = {\n healthy: coordHealth.healthy,\n error: coordHealth.error,\n };\n allHealthy = allHealthy && services.coordination.healthy;\n\n // Check agent manager health\n const agentHealth = await this.agentManager.getHealthStatus();\n services.agents = {\n healthy: agentHealth.healthy,\n error: agentHealth.error,\n };\n allHealthy = allHealthy && services.agents.healthy;\n\n // Collect metrics\n const metrics = {\n totalSwarms: this.swarms.size,\n ...coordHealth.metrics,\n ...agentHealth.metrics,\n };\n\n return {\n healthy: allHealthy,\n services,\n metrics,\n };\n }\n\n private async getSystemMetrics(req: any, res: any): Promise<void> {\n try {\n const systemMetrics = await this.getSystemHealth();\n const swarmMetrics = await Promise.all(\n Array.from(this.swarms.values()).map(async (swarm) => {\n const metrics = await swarm.getMetrics();\n return {\n swarmId: swarm.getId(),\n ...metrics,\n };\n }),\n );\n\n res.json({\n system: systemMetrics,\n swarms: swarmMetrics,\n timestamp: new Date().toISOString(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n // Additional helper methods\n private async listAgents(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agents = await swarm.getAgents();\n res.json({\n agents: agents.map(agent => ({\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n createdAt: agent.createdAt,\n })),\n total: agents.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId, agentId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agent = await swarm.getAgent(agentId);\n if (!agent) {\n return res.status(404).json({\n error: 'Agent not found',\n code: 'AGENT_NOT_FOUND',\n });\n }\n\n res.json(agent);\n } catch (error) {\n throw error;\n }\n }\n\n private async terminateAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId, agentId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.terminateAgent(agentId);\n res.json({\n message: 'Agent terminated successfully',\n agentId,\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async listTasks(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const tasks = await swarm.getTasks();\n res.json({\n tasks: tasks.map(task => ({\n id: task.id,\n description: task.description,\n status: task.status,\n priority: task.priority,\n assignedTo: task.assignedTo,\n createdAt: task.createdAt,\n completedAt: task.completedAt,\n })),\n total: tasks.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId, taskId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const task = await swarm.getTask(taskId);\n if (!task) {\n return res.status(404).json({\n error: 'Task not found',\n code: 'TASK_NOT_FOUND',\n });\n }\n\n res.json(task);\n } catch (error) {\n throw error;\n }\n }\n\n private async cancelTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId, taskId } = req.params;\n const { reason } = req.body;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.cancelTask(taskId, reason || 'User requested cancellation');\n res.json({\n message: 'Task cancelled successfully',\n taskId,\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Clean up resources\n */\n async destroy(): Promise<void> {\n this.logger.info('Destroying Swarm API');\n\n // Destroy all swarms\n for (const [swarmId, swarm] of this.swarms) {\n try {\n await swarm.destroy();\n } catch (error) {\n this.logger.error('Error destroying swarm', { swarmId, error });\n }\n }\n\n this.swarms.clear();\n }\n}"],"names":["Router","SwarmCoordinator","ValidationError","SwarmError","nanoid","SwarmApi","router","swarms","Map","config","logger","claudeClient","configManager","coordinationManager","agentManager","resourceManager","setupRoutes","setupMiddleware","getRouter","use","req","res","next","info","method","path","ip","userAgent","get","body","status","json","error","code","err","message","stack","details","health","getSystemHealth","healthy","Error","post","createSwarm","bind","listSwarms","getSwarm","delete","destroySwarm","scaleSwarm","spawnAgent","listAgents","getAgent","terminateAgent","orchestrateTask","listTasks","getTask","cancelTask","getSwarmMetrics","getSwarmStatus","getSystemMetrics","request","name","topology","swarmConfig","maxAgents","strategy","swarmId","Date","now","swarm","initialize","set","createdAt","toISOString","swarmList","Array","from","entries","map","getConfig","agentCount","getAgentCount","getStatus","getCreatedAt","total","length","params","agents","getAgents","metrics","getMetrics","agent","id","type","capabilities","destroy","targetSize","scale","newSize","task","description","priority","requirements","metadata","getDetailedStatus","services","allHealthy","claudeHealth","getHealthStatus","claude","coordHealth","coordination","agentHealth","totalSwarms","size","systemMetrics","swarmMetrics","Promise","all","values","getId","system","timestamp","agentId","tasks","getTasks","assignedTo","completedAt","taskId","reason","clear"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/api/swarm-api.ts"],"sourcesContent":["/**\n * Swarm API - RESTful API for swarm coordination and management\n * Provides HTTP endpoints for swarm operations, agent management, and task orchestration\n */\n\nimport { Router } from 'express';\nimport { ILogger } from '../core/logger.js';\nimport { ClaudeAPIClient } from './claude-client.js';\nimport { ConfigManager } from '../config/config-manager.js';\nimport { ICoordinationManager } from '../coordination/manager.js';\nimport { SwarmCoordinator } from '../swarm/coordinator.js';\nimport { AgentManager } from '../agents/agent-manager.js';\nimport { ResourceManager } from '../resources/resource-manager.js';\nimport { SwarmConfig } from '../utils/types.js';\nimport { ValidationError, SwarmError } from '../utils/errors.js';\nimport { nanoid } from 'nanoid';\n\nexport interface SwarmApiConfig {\n rateLimit: {\n windowMs: number;\n maxRequests: number;\n };\n authentication: {\n enabled: boolean;\n apiKeys?: string[];\n jwtSecret?: string;\n };\n cors: {\n origins: string[];\n methods: string[];\n };\n swagger: {\n enabled: boolean;\n title: string;\n version: string;\n description: string;\n };\n}\n\nexport interface SwarmCreateRequest {\n name: string;\n topology: 'hierarchical' | 'mesh' | 'ring' | 'star';\n maxAgents?: number;\n strategy?: 'balanced' | 'specialized' | 'adaptive';\n config?: Partial<SwarmConfig>;\n}\n\nexport interface AgentSpawnRequest {\n type: string;\n name?: string;\n capabilities?: string[];\n config?: Record<string, unknown>;\n}\n\nexport interface TaskOrchestrationRequest {\n task: string;\n priority?: 'low' | 'medium' | 'high' | 'critical';\n strategy?: 'parallel' | 'sequential' | 'adaptive';\n maxAgents?: number;\n requirements?: string[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface SwarmMetrics {\n swarmId: string;\n agentCount: number;\n activeTasks: number;\n completedTasks: number;\n failedTasks: number;\n averageResponseTime: number;\n resourceUtilization: Record<string, number>;\n healthScore: number;\n}\n\n/**\n * Swarm API implementation\n */\nexport class SwarmApi {\n private router: Router;\n private swarms = new Map<string, SwarmCoordinator>();\n\n constructor(\n private config: SwarmApiConfig,\n private logger: ILogger,\n private claudeClient: ClaudeAPIClient,\n private configManager: ConfigManager,\n private coordinationManager: ICoordinationManager,\n private agentManager: AgentManager,\n private resourceManager: ResourceManager,\n ) {\n this.router = Router();\n this.setupRoutes();\n this.setupMiddleware();\n }\n\n getRouter(): Router {\n return this.router;\n }\n\n private setupMiddleware(): void {\n // Request logging\n this.router.use((req, res, next) => {\n this.logger.info('Swarm API request', {\n method: req.method,\n path: req.path,\n ip: req.ip,\n userAgent: req.get('User-Agent'),\n });\n next();\n });\n\n // Request validation\n this.router.use((req, res, next) => {\n if (req.method === 'POST' || req.method === 'PUT') {\n if (!req.body) {\n return res.status(400).json({\n error: 'Request body is required',\n code: 'MISSING_BODY',\n });\n }\n }\n next();\n });\n\n // Error handling\n this.router.use((err: Error, req: any, res: any, _next: any) => {\n this.logger.error('Swarm API error', {\n error: err.message,\n stack: err.stack,\n method: req.method,\n path: req.path,\n });\n\n if (err instanceof ValidationError) {\n return res.status(400).json({\n error: err.message,\n code: 'VALIDATION_ERROR',\n details: err.details,\n });\n }\n\n if (err instanceof SwarmError) {\n return res.status(409).json({\n error: err.message,\n code: 'SWARM_ERROR',\n details: err.details,\n });\n }\n\n res.status(500).json({\n error: 'Internal server error',\n code: 'INTERNAL_ERROR',\n });\n });\n }\n\n private setupRoutes(): void {\n // Health check\n this.router.get('/health', async (req, res) => {\n try {\n const health = await this.getSystemHealth();\n res.json(health);\n } catch (error) {\n res.status(500).json({\n healthy: false,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n }\n });\n\n // Swarm management\n this.router.post('/swarms', this.createSwarm.bind(this));\n this.router.get('/swarms', this.listSwarms.bind(this));\n this.router.get('/swarms/:swarmId', this.getSwarm.bind(this));\n this.router.delete('/swarms/:swarmId', this.destroySwarm.bind(this));\n this.router.post('/swarms/:swarmId/scale', this.scaleSwarm.bind(this));\n\n // Agent management\n this.router.post('/swarms/:swarmId/agents', this.spawnAgent.bind(this));\n this.router.get('/swarms/:swarmId/agents', this.listAgents.bind(this));\n this.router.get('/swarms/:swarmId/agents/:agentId', this.getAgent.bind(this));\n this.router.delete('/swarms/:swarmId/agents/:agentId', this.terminateAgent.bind(this));\n\n // Task orchestration\n this.router.post('/swarms/:swarmId/tasks', this.orchestrateTask.bind(this));\n this.router.get('/swarms/:swarmId/tasks', this.listTasks.bind(this));\n this.router.get('/swarms/:swarmId/tasks/:taskId', this.getTask.bind(this));\n this.router.delete('/swarms/:swarmId/tasks/:taskId', this.cancelTask.bind(this));\n\n // Metrics and monitoring\n this.router.get('/swarms/:swarmId/metrics', this.getSwarmMetrics.bind(this));\n this.router.get('/swarms/:swarmId/status', this.getSwarmStatus.bind(this));\n this.router.get('/system/metrics', this.getSystemMetrics.bind(this));\n }\n\n private async createSwarm(req: any, res: any): Promise<void> {\n try {\n const request = req.body as SwarmCreateRequest;\n \n // Validate request\n if (!request.name || !request.topology) {\n return res.status(400).json({\n error: 'Name and topology are required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n // Create swarm configuration\n const swarmConfig: SwarmConfig = {\n name: request.name,\n topology: request.topology,\n maxAgents: request.maxAgents || 8,\n strategy: request.strategy || 'balanced',\n ...request.config,\n };\n\n // Generate swarm ID\n const swarmId = `swarm_${Date.now()}_${nanoid(10)}`;\n\n // Create swarm coordinator\n const swarm = new SwarmCoordinator(\n swarmId,\n swarmConfig,\n this.logger,\n this.claudeClient,\n this.configManager,\n this.coordinationManager,\n this.agentManager,\n this.resourceManager,\n );\n\n // Initialize swarm\n await swarm.initialize();\n\n // Store swarm\n this.swarms.set(swarmId, swarm);\n\n this.logger.info('Swarm created', {\n swarmId,\n name: request.name,\n topology: request.topology,\n });\n\n res.status(201).json({\n swarmId,\n name: request.name,\n topology: request.topology,\n maxAgents: swarmConfig.maxAgents,\n strategy: swarmConfig.strategy,\n status: 'active',\n createdAt: new Date().toISOString(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async listSwarms(req: any, res: any): Promise<void> {\n try {\n const swarmList = Array.from(this.swarms.entries()).map(([swarmId, swarm]) => ({\n swarmId,\n name: swarm.getConfig().name,\n topology: swarm.getConfig().topology,\n agentCount: swarm.getAgentCount(),\n status: swarm.getStatus(),\n createdAt: swarm.getCreatedAt(),\n }));\n\n res.json({\n swarms: swarmList,\n total: swarmList.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const config = swarm.getConfig();\n const status = swarm.getStatus();\n const agents = await swarm.getAgents();\n const metrics = await swarm.getMetrics();\n\n res.json({\n swarmId,\n config,\n status,\n agents: agents.map(agent => ({\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n })),\n metrics,\n createdAt: swarm.getCreatedAt(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async destroySwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.destroy();\n this.swarms.delete(swarmId);\n\n this.logger.info('Swarm destroyed', { swarmId });\n\n res.json({\n message: 'Swarm destroyed successfully',\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async scaleSwarm(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const { targetSize } = req.body;\n\n if (!targetSize || targetSize < 1) {\n return res.status(400).json({\n error: 'Valid targetSize is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.scale(targetSize);\n\n res.json({\n message: 'Swarm scaled successfully',\n swarmId,\n newSize: targetSize,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async spawnAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const request = req.body as AgentSpawnRequest;\n\n if (!request.type) {\n return res.status(400).json({\n error: 'Agent type is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agent = await swarm.spawnAgent({\n type: request.type,\n name: request.name,\n capabilities: request.capabilities || [],\n config: request.config,\n });\n\n res.status(201).json({\n agent: {\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n },\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async orchestrateTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const request = req.body as TaskOrchestrationRequest;\n\n if (!request.task) {\n return res.status(400).json({\n error: 'Task description is required',\n code: 'VALIDATION_ERROR',\n });\n }\n\n const swarm = this.swarms.get(swarmId);\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const task = await swarm.orchestrateTask({\n description: request.task,\n priority: request.priority || 'medium',\n strategy: request.strategy || 'adaptive',\n maxAgents: request.maxAgents,\n requirements: request.requirements,\n metadata: request.metadata,\n });\n\n res.status(201).json({\n task: {\n id: task.id,\n description: task.description,\n status: task.status,\n priority: task.priority,\n strategy: task.strategy,\n },\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarmMetrics(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const metrics = await swarm.getMetrics();\n res.json(metrics);\n } catch (error) {\n throw error;\n }\n }\n\n private async getSwarmStatus(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const status = await swarm.getDetailedStatus();\n res.json(status);\n } catch (error) {\n throw error;\n }\n }\n\n private async getSystemHealth(): Promise<{\n healthy: boolean;\n services: Record<string, { healthy: boolean; error?: string }>;\n metrics: Record<string, number>;\n }> {\n const services: Record<string, { healthy: boolean; error?: string }> = {};\n let allHealthy = true;\n\n // Check Claude API health\n const claudeHealth = this.claudeClient.getHealthStatus();\n services.claude = {\n healthy: claudeHealth?.healthy || false,\n error: claudeHealth?.error,\n };\n allHealthy = allHealthy && services.claude.healthy;\n\n // Check coordination manager health\n const coordHealth = await this.coordinationManager.getHealthStatus();\n services.coordination = {\n healthy: coordHealth.healthy,\n error: coordHealth.error,\n };\n allHealthy = allHealthy && services.coordination.healthy;\n\n // Check agent manager health\n const agentHealth = await this.agentManager.getHealthStatus();\n services.agents = {\n healthy: agentHealth.healthy,\n error: agentHealth.error,\n };\n allHealthy = allHealthy && services.agents.healthy;\n\n // Collect metrics\n const metrics = {\n totalSwarms: this.swarms.size,\n ...coordHealth.metrics,\n ...agentHealth.metrics,\n };\n\n return {\n healthy: allHealthy,\n services,\n metrics,\n };\n }\n\n private async getSystemMetrics(req: any, res: any): Promise<void> {\n try {\n const systemMetrics = await this.getSystemHealth();\n const swarmMetrics = await Promise.all(\n Array.from(this.swarms.values()).map(async (swarm) => {\n const metrics = await swarm.getMetrics();\n return {\n swarmId: swarm.getId(),\n ...metrics,\n };\n }),\n );\n\n res.json({\n system: systemMetrics,\n swarms: swarmMetrics,\n timestamp: new Date().toISOString(),\n });\n } catch (error) {\n throw error;\n }\n }\n\n // Additional helper methods\n private async listAgents(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agents = await swarm.getAgents();\n res.json({\n agents: agents.map(agent => ({\n id: agent.id,\n type: agent.type,\n name: agent.name,\n status: agent.status,\n capabilities: agent.capabilities,\n createdAt: agent.createdAt,\n })),\n total: agents.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId, agentId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const agent = await swarm.getAgent(agentId);\n if (!agent) {\n return res.status(404).json({\n error: 'Agent not found',\n code: 'AGENT_NOT_FOUND',\n });\n }\n\n res.json(agent);\n } catch (error) {\n throw error;\n }\n }\n\n private async terminateAgent(req: any, res: any): Promise<void> {\n try {\n const { swarmId, agentId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.terminateAgent(agentId);\n res.json({\n message: 'Agent terminated successfully',\n agentId,\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async listTasks(req: any, res: any): Promise<void> {\n try {\n const { swarmId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const tasks = await swarm.getTasks();\n res.json({\n tasks: tasks.map(task => ({\n id: task.id,\n description: task.description,\n status: task.status,\n priority: task.priority,\n assignedTo: task.assignedTo,\n createdAt: task.createdAt,\n completedAt: task.completedAt,\n })),\n total: tasks.length,\n });\n } catch (error) {\n throw error;\n }\n }\n\n private async getTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId, taskId } = req.params;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n const task = await swarm.getTask(taskId);\n if (!task) {\n return res.status(404).json({\n error: 'Task not found',\n code: 'TASK_NOT_FOUND',\n });\n }\n\n res.json(task);\n } catch (error) {\n throw error;\n }\n }\n\n private async cancelTask(req: any, res: any): Promise<void> {\n try {\n const { swarmId, taskId } = req.params;\n const { reason } = req.body;\n const swarm = this.swarms.get(swarmId);\n\n if (!swarm) {\n return res.status(404).json({\n error: 'Swarm not found',\n code: 'SWARM_NOT_FOUND',\n });\n }\n\n await swarm.cancelTask(taskId, reason || 'User requested cancellation');\n res.json({\n message: 'Task cancelled successfully',\n taskId,\n swarmId,\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Clean up resources\n */\n async destroy(): Promise<void> {\n this.logger.info('Destroying Swarm API');\n\n // Destroy all swarms\n for (const [swarmId, swarm] of this.swarms) {\n try {\n await swarm.destroy();\n } catch (error) {\n this.logger.error('Error destroying swarm', { swarmId, error });\n }\n }\n\n this.swarms.clear();\n }\n}"],"names":["Router","SwarmCoordinator","ValidationError","SwarmError","nanoid","SwarmApi","router","swarms","Map","config","logger","claudeClient","configManager","coordinationManager","agentManager","resourceManager","setupRoutes","setupMiddleware","getRouter","use","req","res","next","info","method","path","ip","userAgent","get","body","status","json","error","code","err","_next","message","stack","details","health","getSystemHealth","healthy","Error","post","createSwarm","bind","listSwarms","getSwarm","delete","destroySwarm","scaleSwarm","spawnAgent","listAgents","getAgent","terminateAgent","orchestrateTask","listTasks","getTask","cancelTask","getSwarmMetrics","getSwarmStatus","getSystemMetrics","request","name","topology","swarmConfig","maxAgents","strategy","swarmId","Date","now","swarm","initialize","set","createdAt","toISOString","swarmList","Array","from","entries","map","getConfig","agentCount","getAgentCount","getStatus","getCreatedAt","total","length","params","agents","getAgents","metrics","getMetrics","agent","id","type","capabilities","destroy","targetSize","scale","newSize","task","description","priority","requirements","metadata","getDetailedStatus","services","allHealthy","claudeHealth","getHealthStatus","claude","coordHealth","coordination","agentHealth","totalSwarms","size","systemMetrics","swarmMetrics","Promise","all","values","getId","system","timestamp","agentId","tasks","getTasks","assignedTo","completedAt","taskId","reason","clear"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/commands/hive-mind/wizard.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Hive Mind Interactive Wizard\n *\n * Interactive setup and management wizard for Hive Mind swarms\n * with guided workflows and visual feedback.\n */\n\nimport { Command } from '../commander-fix.js';\nimport chalk from 'chalk';\nimport inquirer from 'inquirer';\nimport figlet from 'figlet';\nimport gradient from 'gradient-string';\nimport { HiveMind } from '../../../hive-mind/core/HiveMind.js';\nimport { DatabaseManager } from '../../../hive-mind/core/DatabaseManager.js';\nimport { formatSuccess, formatError, formatInfo, formatWarning } from '../../formatter.js';\n\ntype WizardAction =\n | 'create_swarm'\n | 'manage_agents'\n | 'submit_task'\n | 'view_status'\n | 'configure_memory'\n | 'run_simulation'\n | 'export_data'\n | 'switch_swarm'\n | 'exit';\n\nexport const wizardCommand = new Command('wizard')\n .description('Interactive Hive Mind setup and management wizard')\n .option('--skip-intro', 'Skip the intro animation', false)\n .action(async (options) => {\n try {\n // Show intro\n if (!options.skipIntro) {\n await showIntro();\n }\n\n // Main wizard loop\n let exit = false;\n while (!exit) {\n const action = await selectAction();\n\n switch (action) {\n case 'create_swarm':\n await createSwarmWizard();\n break;\n case 'manage_agents':\n await manageAgentsWizard();\n break;\n case 'submit_task':\n await submitTaskWizard();\n break;\n case 'view_status':\n await viewStatusWizard();\n break;\n case 'configure_memory':\n await configureMemoryWizard();\n break;\n case 'run_simulation':\n await runSimulationWizard();\n break;\n case 'export_data':\n await exportDataWizard();\n break;\n case 'switch_swarm':\n await switchSwarmWizard();\n break;\n case 'exit':\n exit = true;\n break;\n }\n\n if (!exit) {\n await inquirer\n .prompt([\n {\n type: 'confirm',\n name: 'continue',\n message: 'Continue with another action?',\n default: true,\n },\n ])\n .then((answers) => {\n exit = !answers.continue;\n });\n }\n }\n\n console.log('\\n' + chalk.bold.yellow('๐ Thank you for using Hive Mind!'));\n } catch (error) {\n console.error(formatError('Wizard error: ' + (error as Error).message));\n process.exit(1);\n }\n });\n\nasync function showIntro() {\n console.clear();\n const title = figlet.textSync('Hive Mind', {\n font: 'Big',\n horizontalLayout: 'default',\n verticalLayout: 'default',\n });\n\n console.log(gradient.rainbow(title));\n console.log(chalk.bold.yellow('\\n๐ Welcome to the Hive Mind Interactive Wizard! ๐\\n'));\n console.log(chalk.gray('Collective intelligence for autonomous task orchestration\\n'));\n\n await new Promise((resolve) => setTimeout(resolve, 2000));\n}\n\nasync function selectAction(): Promise<WizardAction> {\n const db = await DatabaseManager.getInstance();\n const activeSwarm = await db.getActiveSwarmId();\n\n console.log('\\n' + chalk.bold('๐ฏ What would you like to do?'));\n if (activeSwarm) {\n console.log(chalk.gray(`Active swarm: ${activeSwarm}`));\n }\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: 'Select an action:',\n choices: [\n { name: '๐ Create New Swarm', value: 'create_swarm' },\n { name: '๐ค Manage Agents', value: 'manage_agents', disabled: !activeSwarm },\n { name: '๐ Submit Task', value: 'submit_task', disabled: !activeSwarm },\n { name: '๐ View Status', value: 'view_status', disabled: !activeSwarm },\n { name: '๐พ Configure Memory', value: 'configure_memory', disabled: !activeSwarm },\n { name: '๐ฎ Run Simulation', value: 'run_simulation', disabled: !activeSwarm },\n { name: '๐ค Export Data', value: 'export_data', disabled: !activeSwarm },\n { name: '๐ Switch Swarm', value: 'switch_swarm' },\n new inquirer.Separator(),\n { name: '๐ช Exit', value: 'exit' },\n ],\n },\n ]);\n\n return action;\n}\n\nasync function createSwarmWizard() {\n console.log('\\n' + chalk.bold('๐ Create New Hive Mind Swarm'));\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'name',\n message: 'Swarm name:',\n default: `hive-mind-${Date.now()}`,\n validate: (input) => input.length > 0 || 'Name is required',\n },\n {\n type: 'list',\n name: 'topology',\n message: 'Select swarm topology:',\n choices: [\n { name: '๐๏ธ Hierarchical - Queen-led with clear command structure', value: 'hierarchical' },\n { name: '๐ธ๏ธ Mesh - Fully connected peer-to-peer network', value: 'mesh' },\n { name: '๐ Ring - Circular communication pattern', value: 'ring' },\n { name: 'โญ Star - Central hub with radiating connections', value: 'star' },\n ],\n },\n {\n type: 'list',\n name: 'queenMode',\n message: 'Queen coordination mode:',\n choices: [\n { name: '๐ Centralized - Single Queen controls all decisions', value: 'centralized' },\n { name: '๐ค Distributed - Multiple Queens share leadership', value: 'distributed' },\n ],\n },\n {\n type: 'number',\n name: 'maxAgents',\n message: 'Maximum number of agents:',\n default: 8,\n validate: (input) => (input > 0 && input <= 100) || 'Must be between 1 and 100',\n },\n {\n type: 'number',\n name: 'consensusThreshold',\n message: 'Consensus threshold (0.5 - 1.0):',\n default: 0.66,\n validate: (input) => (input >= 0.5 && input <= 1.0) || 'Must be between 0.5 and 1.0',\n },\n {\n type: 'confirm',\n name: 'autoSpawn',\n message: 'Auto-spawn initial agents?',\n default: true,\n },\n ]);\n\n // Advanced options\n const { showAdvanced } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'showAdvanced',\n message: 'Configure advanced options?',\n default: false,\n },\n ]);\n\n if (showAdvanced) {\n const advanced = await inquirer.prompt([\n {\n type: 'number',\n name: 'memoryTTL',\n message: 'Default memory TTL (seconds):',\n default: 86400,\n },\n {\n type: 'checkbox',\n name: 'enabledFeatures',\n message: 'Enable features:',\n choices: [\n { name: 'Neural Learning', value: 'neural', checked: true },\n { name: 'Performance Monitoring', value: 'monitoring', checked: true },\n { name: 'Auto-scaling', value: 'autoscale', checked: false },\n { name: 'Fault Tolerance', value: 'faultTolerance', checked: true },\n { name: 'Predictive Task Assignment', value: 'predictive', checked: false },\n ],\n },\n ]);\n\n Object.assign(answers, advanced);\n }\n\n // Create swarm\n const spinner = require('ora')('Creating Hive Mind swarm...').start();\n\n try {\n const hiveMind = new HiveMind({\n name: answers.name,\n topology: answers.topology,\n maxAgents: answers.maxAgents,\n queenMode: answers.queenMode,\n memoryTTL: answers.memoryTTL || 86400,\n consensusThreshold: answers.consensusThreshold,\n autoSpawn: answers.autoSpawn,\n enabledFeatures: answers.enabledFeatures || ['neural', 'monitoring', 'faultTolerance'],\n createdAt: new Date(),\n });\n\n const swarmId = await hiveMind.initialize();\n\n spinner.succeed(formatSuccess('Hive Mind created successfully!'));\n console.log(formatInfo(`Swarm ID: ${swarmId}`));\n\n if (answers.autoSpawn) {\n const agents = await hiveMind.autoSpawnAgents();\n console.log(formatSuccess(`Spawned ${agents.length} initial agents`));\n }\n } catch (error) {\n spinner.fail(formatError('Failed to create swarm'));\n throw error;\n }\n}\n\nasync function manageAgentsWizard() {\n console.log('\\n' + chalk.bold('๐ค Manage Agents'));\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: 'What would you like to do?',\n choices: [\n { name: 'โ Spawn New Agent', value: 'spawn' },\n { name: '๐ View Agent List', value: 'list' },\n { name: '๐ง Modify Agent', value: 'modify' },\n { name: '๐๏ธ Remove Agent', value: 'remove' },\n { name: '๐ Rebalance Agents', value: 'rebalance' },\n ],\n },\n ]);\n\n const db = await DatabaseManager.getInstance();\n const swarmId = await db.getActiveSwarmId();\n const hiveMind = await HiveMind.load(swarmId!);\n\n switch (action) {\n case 'spawn':\n await spawnAgentInteractive(hiveMind);\n break;\n case 'list':\n await listAgentsInteractive(hiveMind);\n break;\n case 'modify':\n await modifyAgentInteractive(hiveMind);\n break;\n case 'remove':\n await removeAgentInteractive(hiveMind);\n break;\n case 'rebalance':\n await rebalanceAgentsInteractive(hiveMind);\n break;\n }\n}\n\nasync function spawnAgentInteractive(hiveMind: HiveMind) {\n const agentTypes = [\n { name: '๐ฏ Coordinator - Task management and delegation', value: 'coordinator' },\n { name: '๐ฌ Researcher - Information gathering and analysis', value: 'researcher' },\n { name: '๐ป Coder - Code generation and implementation', value: 'coder' },\n { name: '๐ Analyst - Data analysis and insights', value: 'analyst' },\n { name: '๐๏ธ Architect - System design and planning', value: 'architect' },\n { name: '๐งช Tester - Quality assurance and testing', value: 'tester' },\n { name: '๐๏ธ Reviewer - Code and design review', value: 'reviewer' },\n { name: 'โก Optimizer - Performance optimization', value: 'optimizer' },\n { name: '๐ Documenter - Documentation generation', value: 'documenter' },\n { name: '๐ก Monitor - System monitoring and alerts', value: 'monitor' },\n { name: '๐จ Specialist - Custom specialized agent', value: 'specialist' },\n ];\n\n const answers = await inquirer.prompt([\n {\n type: 'list',\n name: 'type',\n message: 'Select agent type:',\n choices: agentTypes,\n },\n {\n type: 'input',\n name: 'name',\n message: 'Agent name (optional):',\n default: (answers: any) => `${answers.type}-${Date.now()}`,\n },\n {\n type: 'number',\n name: 'count',\n message: 'How many agents to spawn?',\n default: 1,\n validate: (input) => (input > 0 && input <= 10) || 'Must be between 1 and 10',\n },\n ]);\n\n const spinner = require('ora')(`Spawning ${answers.count} ${answers.type} agent(s)...`).start();\n\n try {\n const agents = [];\n for (let i = 0; i < answers.count; i++) {\n const agent = await hiveMind.spawnAgent({\n type: answers.type,\n name: answers.count > 1 ? `${answers.name}-${i}` : answers.name,\n });\n agents.push(agent);\n }\n\n spinner.succeed(formatSuccess(`Spawned ${agents.length} agent(s) successfully!`));\n } catch (error) {\n spinner.fail(formatError('Failed to spawn agents'));\n throw error;\n }\n}\n\nasync function submitTaskWizard() {\n console.log('\\n' + chalk.bold('๐ Submit Task to Hive Mind'));\n\n const db = await DatabaseManager.getInstance();\n const swarmId = await db.getActiveSwarmId();\n const hiveMind = await HiveMind.load(swarmId!);\n\n const templates = [\n { name: '๐ Research Task', value: 'research' },\n { name: '๐ป Development Task', value: 'development' },\n { name: '๐ Analysis Task', value: 'analysis' },\n { name: '๐งช Testing Task', value: 'testing' },\n { name: '๐ Documentation Task', value: 'documentation' },\n { name: 'โ๏ธ Custom Task', value: 'custom' },\n ];\n\n const { template } = await inquirer.prompt([\n {\n type: 'list',\n name: 'template',\n message: 'Select task template:',\n choices: templates,\n },\n ]);\n\n let taskDescription = '';\n let taskConfig: any = {};\n\n if (template === 'custom') {\n const answers = await inquirer.prompt([\n {\n type: 'editor',\n name: 'description',\n message: 'Enter task description:',\n },\n ]);\n taskDescription = answers.description;\n } else {\n // Use predefined templates\n const templates = {\n research: {\n prompt: 'What would you like to research?',\n prefix: 'Research and analyze: ',\n },\n development: {\n prompt: 'What would you like to develop?',\n prefix: 'Develop and implement: ',\n },\n analysis: {\n prompt: 'What would you like to analyze?',\n prefix: 'Analyze and provide insights on: ',\n },\n testing: {\n prompt: 'What would you like to test?',\n prefix: 'Test and validate: ',\n },\n documentation: {\n prompt: 'What would you like to document?',\n prefix: 'Create documentation for: ',\n },\n };\n\n const tmpl = templates[template as keyof typeof templates];\n const { detail } = await inquirer.prompt([\n {\n type: 'input',\n name: 'detail',\n message: tmpl.prompt,\n },\n ]);\n\n taskDescription = tmpl.prefix + detail;\n }\n\n // Task configuration\n const config = await inquirer.prompt([\n {\n type: 'list',\n name: 'priority',\n message: 'Task priority:',\n choices: [\n { name: '๐ข Low', value: 'low' },\n { name: '๐ก Medium', value: 'medium' },\n { name: '๐ High', value: 'high' },\n { name: '๐ด Critical', value: 'critical' },\n ],\n default: 'medium',\n },\n {\n type: 'list',\n name: 'strategy',\n message: 'Execution strategy:',\n choices: [\n { name: '๐ค Adaptive (AI-optimized)', value: 'adaptive' },\n { name: 'โก Parallel (Multiple agents)', value: 'parallel' },\n { name: '๐ Sequential (Step-by-step)', value: 'sequential' },\n { name: '๐ค Consensus (Requires agreement)', value: 'consensus' },\n ],\n default: 'adaptive',\n },\n {\n type: 'confirm',\n name: 'monitor',\n message: 'Monitor task progress?',\n default: true,\n },\n ]);\n\n const spinner = require('ora')('Submitting task...').start();\n\n try {\n const task = await hiveMind.submitTask({\n description: taskDescription,\n priority: config.priority,\n strategy: config.strategy,\n });\n\n spinner.succeed(formatSuccess('Task submitted successfully!'));\n console.log(formatInfo(`Task ID: ${task.id}`));\n\n if (config.monitor) {\n console.log('\\n' + chalk.bold('Monitoring task progress...'));\n // TODO: Implement real-time monitoring\n }\n } catch (error) {\n spinner.fail(formatError('Failed to submit task'));\n throw error;\n }\n}\n\nasync function viewStatusWizard() {\n const { view } = await inquirer.prompt([\n {\n type: 'list',\n name: 'view',\n message: 'What would you like to view?',\n choices: [\n { name: '๐ Overall Status', value: 'overall' },\n { name: '๐ค Agent Details', value: 'agents' },\n { name: '๐ Task Queue', value: 'tasks' },\n { name: '๐พ Memory Usage', value: 'memory' },\n { name: '๐ Performance Metrics', value: 'performance' },\n { name: '๐ก Communications', value: 'communications' },\n ],\n },\n ]);\n\n // Execute the status command with appropriate flags\n const statusCmd = require('./status').statusCommand;\n const args = ['status'];\n\n switch (view) {\n case 'agents':\n args.push('--detailed');\n break;\n case 'tasks':\n args.push('--tasks');\n break;\n case 'memory':\n args.push('--memory');\n break;\n case 'performance':\n args.push('--performance');\n break;\n }\n\n await statusCmd.parseAsync(args);\n}\n\n// Helper functions for other wizard actions\nasync function listAgentsInteractive(hiveMind: HiveMind) {\n const agents = await hiveMind.getAgents();\n\n console.log('\\n' + chalk.bold('๐ค Agent List:'));\n agents.forEach((agent) => {\n const statusEmoji = agent.status === 'busy' ? '๐ด' : '๐ข';\n console.log(`${statusEmoji} ${agent.name} (${agent.type}) - ${agent.status}`);\n });\n}\n\nasync function modifyAgentInteractive(hiveMind: HiveMind) {\n // Implementation for modifying agents\n console.log(formatInfo('Agent modification coming soon...'));\n}\n\nasync function removeAgentInteractive(hiveMind: HiveMind) {\n // Implementation for removing agents\n console.log(formatInfo('Agent removal coming soon...'));\n}\n\nasync function rebalanceAgentsInteractive(hiveMind: HiveMind) {\n const spinner = require('ora')('Rebalancing agents...').start();\n\n try {\n await hiveMind.rebalanceAgents();\n spinner.succeed(formatSuccess('Agents rebalanced successfully!'));\n } catch (error) {\n spinner.fail(formatError('Failed to rebalance agents'));\n throw error;\n }\n}\n\nasync function configureMemoryWizard() {\n console.log(formatInfo('Memory configuration coming soon...'));\n}\n\nasync function runSimulationWizard() {\n console.log(formatInfo('Simulation mode coming soon...'));\n}\n\nasync function exportDataWizard() {\n console.log(formatInfo('Data export coming soon...'));\n}\n\nasync function switchSwarmWizard() {\n const db = await DatabaseManager.getInstance();\n const swarms = await db.getAllSwarms();\n\n if (swarms.length === 0) {\n console.log(formatWarning('No swarms found. Create one first!'));\n return;\n }\n\n const { swarmId } = await inquirer.prompt([\n {\n type: 'list',\n name: 'swarmId',\n message: 'Select swarm:',\n choices: swarms.map((s) => ({\n name: `${s.name} (${s.topology}) - ${s.agentCount} agents`,\n value: s.id,\n })),\n },\n ]);\n\n await db.setActiveSwarm(swarmId);\n console.log(formatSuccess('Switched to swarm: ' + swarmId));\n}\n"],"names":["Command","chalk","inquirer","figlet","gradient","HiveMind","DatabaseManager","formatSuccess","formatError","formatInfo","formatWarning","wizardCommand","description","option","action","options","skipIntro","showIntro","exit","selectAction","createSwarmWizard","manageAgentsWizard","submitTaskWizard","viewStatusWizard","configureMemoryWizard","runSimulationWizard","exportDataWizard","switchSwarmWizard","prompt","type","name","message","default","then","answers","continue","console","log","bold","yellow","error","process","clear","title","textSync","font","horizontalLayout","verticalLayout","rainbow","gray","Promise","resolve","setTimeout","db","getInstance","activeSwarm","getActiveSwarmId","choices","value","disabled","Separator","Date","now","validate","input","length","showAdvanced","advanced","checked","Object","assign","spinner","require","start","hiveMind","topology","maxAgents","queenMode","memoryTTL","consensusThreshold","autoSpawn","enabledFeatures","createdAt","swarmId","initialize","succeed","agents","autoSpawnAgents","fail","load","spawnAgentInteractive","listAgentsInteractive","modifyAgentInteractive","removeAgentInteractive","rebalanceAgentsInteractive","agentTypes","count","i","agent","spawnAgent","push","templates","template","taskDescription","taskConfig","research","prefix","development","analysis","testing","documentation","tmpl","detail","config","task","submitTask","priority","strategy","id","monitor","view","statusCmd","statusCommand","args","parseAsync","getAgents","forEach","statusEmoji","status","rebalanceAgents","swarms","getAllSwarms","map","s","agentCount","setActiveSwarm"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/commands/hive-mind/wizard.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * Hive Mind Interactive Wizard\n *\n * Interactive setup and management wizard for Hive Mind swarms\n * with guided workflows and visual feedback.\n */\n\nimport { Command } from '../commander-fix.js';\nimport chalk from 'chalk';\nimport inquirer from 'inquirer';\nimport figlet from 'figlet';\nimport gradient from 'gradient-string';\nimport { HiveMind } from '../../../hive-mind/core/HiveMind.js';\nimport { DatabaseManager } from '../../../hive-mind/core/DatabaseManager.js';\nimport { formatSuccess, formatError, formatInfo, formatWarning } from '../../formatter.js';\n\ntype WizardAction =\n | 'create_swarm'\n | 'manage_agents'\n | 'submit_task'\n | 'view_status'\n | 'configure_memory'\n | 'run_simulation'\n | 'export_data'\n | 'switch_swarm'\n | 'exit';\n\nexport const wizardCommand = new Command('wizard')\n .description('Interactive Hive Mind setup and management wizard')\n .option('--skip-intro', 'Skip the intro animation', false)\n .action(async (options) => {\n try {\n // Show intro\n if (!options.skipIntro) {\n await showIntro();\n }\n\n // Main wizard loop\n let exit = false;\n while (!exit) {\n const action = await selectAction();\n\n switch (action) {\n case 'create_swarm':\n await createSwarmWizard();\n break;\n case 'manage_agents':\n await manageAgentsWizard();\n break;\n case 'submit_task':\n await submitTaskWizard();\n break;\n case 'view_status':\n await viewStatusWizard();\n break;\n case 'configure_memory':\n await configureMemoryWizard();\n break;\n case 'run_simulation':\n await runSimulationWizard();\n break;\n case 'export_data':\n await exportDataWizard();\n break;\n case 'switch_swarm':\n await switchSwarmWizard();\n break;\n case 'exit':\n exit = true;\n break;\n }\n\n if (!exit) {\n await inquirer\n .prompt([\n {\n type: 'confirm',\n name: 'continue',\n message: 'Continue with another action?',\n default: true,\n },\n ])\n .then((answers) => {\n exit = !answers.continue;\n });\n }\n }\n\n console.log('\\n' + chalk.bold.yellow('๐ Thank you for using Hive Mind!'));\n } catch (error) {\n console.error(formatError('Wizard error: ' + (error as Error).message));\n process.exit(1);\n }\n });\n\nasync function showIntro() {\n console.clear();\n const title = figlet.textSync('Hive Mind', {\n font: 'Big',\n horizontalLayout: 'default',\n verticalLayout: 'default',\n });\n\n console.log(gradient.rainbow(title));\n console.log(chalk.bold.yellow('\\n๐ Welcome to the Hive Mind Interactive Wizard! ๐\\n'));\n console.log(chalk.gray('Collective intelligence for autonomous task orchestration\\n'));\n\n await new Promise((resolve) => setTimeout(resolve, 2000));\n}\n\nasync function selectAction(): Promise<WizardAction> {\n const db = await DatabaseManager.getInstance();\n const activeSwarm = await db.getActiveSwarmId();\n\n console.log('\\n' + chalk.bold('๐ฏ What would you like to do?'));\n if (activeSwarm) {\n console.log(chalk.gray(`Active swarm: ${activeSwarm}`));\n }\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: 'Select an action:',\n choices: [\n { name: '๐ Create New Swarm', value: 'create_swarm' },\n { name: '๐ค Manage Agents', value: 'manage_agents', disabled: !activeSwarm },\n { name: '๐ Submit Task', value: 'submit_task', disabled: !activeSwarm },\n { name: '๐ View Status', value: 'view_status', disabled: !activeSwarm },\n { name: '๐พ Configure Memory', value: 'configure_memory', disabled: !activeSwarm },\n { name: '๐ฎ Run Simulation', value: 'run_simulation', disabled: !activeSwarm },\n { name: '๐ค Export Data', value: 'export_data', disabled: !activeSwarm },\n { name: '๐ Switch Swarm', value: 'switch_swarm' },\n new inquirer.Separator(),\n { name: '๐ช Exit', value: 'exit' },\n ],\n },\n ]);\n\n return action;\n}\n\nasync function createSwarmWizard() {\n console.log('\\n' + chalk.bold('๐ Create New Hive Mind Swarm'));\n\n const answers = await inquirer.prompt([\n {\n type: 'input',\n name: 'name',\n message: 'Swarm name:',\n default: `hive-mind-${Date.now()}`,\n validate: (input) => input.length > 0 || 'Name is required',\n },\n {\n type: 'list',\n name: 'topology',\n message: 'Select swarm topology:',\n choices: [\n { name: '๐๏ธ Hierarchical - Queen-led with clear command structure', value: 'hierarchical' },\n { name: '๐ธ๏ธ Mesh - Fully connected peer-to-peer network', value: 'mesh' },\n { name: '๐ Ring - Circular communication pattern', value: 'ring' },\n { name: 'โญ Star - Central hub with radiating connections', value: 'star' },\n ],\n },\n {\n type: 'list',\n name: 'queenMode',\n message: 'Queen coordination mode:',\n choices: [\n { name: '๐ Centralized - Single Queen controls all decisions', value: 'centralized' },\n { name: '๐ค Distributed - Multiple Queens share leadership', value: 'distributed' },\n ],\n },\n {\n type: 'number',\n name: 'maxAgents',\n message: 'Maximum number of agents:',\n default: 8,\n validate: (input) => (input > 0 && input <= 100) || 'Must be between 1 and 100',\n },\n {\n type: 'number',\n name: 'consensusThreshold',\n message: 'Consensus threshold (0.5 - 1.0):',\n default: 0.66,\n validate: (input) => (input >= 0.5 && input <= 1.0) || 'Must be between 0.5 and 1.0',\n },\n {\n type: 'confirm',\n name: 'autoSpawn',\n message: 'Auto-spawn initial agents?',\n default: true,\n },\n ]);\n\n // Advanced options\n const { showAdvanced } = await inquirer.prompt([\n {\n type: 'confirm',\n name: 'showAdvanced',\n message: 'Configure advanced options?',\n default: false,\n },\n ]);\n\n if (showAdvanced) {\n const advanced = await inquirer.prompt([\n {\n type: 'number',\n name: 'memoryTTL',\n message: 'Default memory TTL (seconds):',\n default: 86400,\n },\n {\n type: 'checkbox',\n name: 'enabledFeatures',\n message: 'Enable features:',\n choices: [\n { name: 'Neural Learning', value: 'neural', checked: true },\n { name: 'Performance Monitoring', value: 'monitoring', checked: true },\n { name: 'Auto-scaling', value: 'autoscale', checked: false },\n { name: 'Fault Tolerance', value: 'faultTolerance', checked: true },\n { name: 'Predictive Task Assignment', value: 'predictive', checked: false },\n ],\n },\n ]);\n\n Object.assign(answers, advanced);\n }\n\n // Create swarm\n const spinner = require('ora')('Creating Hive Mind swarm...').start();\n\n try {\n const hiveMind = new HiveMind({\n name: answers.name,\n topology: answers.topology,\n maxAgents: answers.maxAgents,\n queenMode: answers.queenMode,\n memoryTTL: answers.memoryTTL || 86400,\n consensusThreshold: answers.consensusThreshold,\n autoSpawn: answers.autoSpawn,\n enabledFeatures: answers.enabledFeatures || ['neural', 'monitoring', 'faultTolerance'],\n createdAt: new Date(),\n });\n\n const swarmId = await hiveMind.initialize();\n\n spinner.succeed(formatSuccess('Hive Mind created successfully!'));\n console.log(formatInfo(`Swarm ID: ${swarmId}`));\n\n if (answers.autoSpawn) {\n const agents = await hiveMind.autoSpawnAgents();\n console.log(formatSuccess(`Spawned ${agents.length} initial agents`));\n }\n } catch (error) {\n spinner.fail(formatError('Failed to create swarm'));\n throw error;\n }\n}\n\nasync function manageAgentsWizard() {\n console.log('\\n' + chalk.bold('๐ค Manage Agents'));\n\n const { action } = await inquirer.prompt([\n {\n type: 'list',\n name: 'action',\n message: 'What would you like to do?',\n choices: [\n { name: 'โ Spawn New Agent', value: 'spawn' },\n { name: '๐ View Agent List', value: 'list' },\n { name: '๐ง Modify Agent', value: 'modify' },\n { name: '๐๏ธ Remove Agent', value: 'remove' },\n { name: '๐ Rebalance Agents', value: 'rebalance' },\n ],\n },\n ]);\n\n const db = await DatabaseManager.getInstance();\n const swarmId = await db.getActiveSwarmId();\n const hiveMind = await HiveMind.load(swarmId!);\n\n switch (action) {\n case 'spawn':\n await spawnAgentInteractive(hiveMind);\n break;\n case 'list':\n await listAgentsInteractive(hiveMind);\n break;\n case 'modify':\n await modifyAgentInteractive(hiveMind);\n break;\n case 'remove':\n await removeAgentInteractive(hiveMind);\n break;\n case 'rebalance':\n await rebalanceAgentsInteractive(hiveMind);\n break;\n }\n}\n\nasync function spawnAgentInteractive(hiveMind: HiveMind) {\n const agentTypes = [\n { name: '๐ฏ Coordinator - Task management and delegation', value: 'coordinator' },\n { name: '๐ฌ Researcher - Information gathering and analysis', value: 'researcher' },\n { name: '๐ป Coder - Code generation and implementation', value: 'coder' },\n { name: '๐ Analyst - Data analysis and insights', value: 'analyst' },\n { name: '๐๏ธ Architect - System design and planning', value: 'architect' },\n { name: '๐งช Tester - Quality assurance and testing', value: 'tester' },\n { name: '๐๏ธ Reviewer - Code and design review', value: 'reviewer' },\n { name: 'โก Optimizer - Performance optimization', value: 'optimizer' },\n { name: '๐ Documenter - Documentation generation', value: 'documenter' },\n { name: '๐ก Monitor - System monitoring and alerts', value: 'monitor' },\n { name: '๐จ Specialist - Custom specialized agent', value: 'specialist' },\n ];\n\n const answers = await inquirer.prompt([\n {\n type: 'list',\n name: 'type',\n message: 'Select agent type:',\n choices: agentTypes,\n },\n {\n type: 'input',\n name: 'name',\n message: 'Agent name (optional):',\n default: (answers: any) => `${answers.type}-${Date.now()}`,\n },\n {\n type: 'number',\n name: 'count',\n message: 'How many agents to spawn?',\n default: 1,\n validate: (input) => (input > 0 && input <= 10) || 'Must be between 1 and 10',\n },\n ]);\n\n const spinner = require('ora')(`Spawning ${answers.count} ${answers.type} agent(s)...`).start();\n\n try {\n const agents = [];\n for (let i = 0; i < answers.count; i++) {\n const agent = await hiveMind.spawnAgent({\n type: answers.type,\n name: answers.count > 1 ? `${answers.name}-${i}` : answers.name,\n });\n agents.push(agent);\n }\n\n spinner.succeed(formatSuccess(`Spawned ${agents.length} agent(s) successfully!`));\n } catch (error) {\n spinner.fail(formatError('Failed to spawn agents'));\n throw error;\n }\n}\n\nasync function submitTaskWizard() {\n console.log('\\n' + chalk.bold('๐ Submit Task to Hive Mind'));\n\n const db = await DatabaseManager.getInstance();\n const swarmId = await db.getActiveSwarmId();\n const hiveMind = await HiveMind.load(swarmId!);\n\n const templates = [\n { name: '๐ Research Task', value: 'research' },\n { name: '๐ป Development Task', value: 'development' },\n { name: '๐ Analysis Task', value: 'analysis' },\n { name: '๐งช Testing Task', value: 'testing' },\n { name: '๐ Documentation Task', value: 'documentation' },\n { name: 'โ๏ธ Custom Task', value: 'custom' },\n ];\n\n const { template } = await inquirer.prompt([\n {\n type: 'list',\n name: 'template',\n message: 'Select task template:',\n choices: templates,\n },\n ]);\n\n let taskDescription = '';\n const taskConfig: any = {};\n\n if (template === 'custom') {\n const answers = await inquirer.prompt([\n {\n type: 'editor',\n name: 'description',\n message: 'Enter task description:',\n },\n ]);\n taskDescription = answers.description;\n } else {\n // Use predefined templates\n const templates = {\n research: {\n prompt: 'What would you like to research?',\n prefix: 'Research and analyze: ',\n },\n development: {\n prompt: 'What would you like to develop?',\n prefix: 'Develop and implement: ',\n },\n analysis: {\n prompt: 'What would you like to analyze?',\n prefix: 'Analyze and provide insights on: ',\n },\n testing: {\n prompt: 'What would you like to test?',\n prefix: 'Test and validate: ',\n },\n documentation: {\n prompt: 'What would you like to document?',\n prefix: 'Create documentation for: ',\n },\n };\n\n const tmpl = templates[template as keyof typeof templates];\n const { detail } = await inquirer.prompt([\n {\n type: 'input',\n name: 'detail',\n message: tmpl.prompt,\n },\n ]);\n\n taskDescription = tmpl.prefix + detail;\n }\n\n // Task configuration\n const config = await inquirer.prompt([\n {\n type: 'list',\n name: 'priority',\n message: 'Task priority:',\n choices: [\n { name: '๐ข Low', value: 'low' },\n { name: '๐ก Medium', value: 'medium' },\n { name: '๐ High', value: 'high' },\n { name: '๐ด Critical', value: 'critical' },\n ],\n default: 'medium',\n },\n {\n type: 'list',\n name: 'strategy',\n message: 'Execution strategy:',\n choices: [\n { name: '๐ค Adaptive (AI-optimized)', value: 'adaptive' },\n { name: 'โก Parallel (Multiple agents)', value: 'parallel' },\n { name: '๐ Sequential (Step-by-step)', value: 'sequential' },\n { name: '๐ค Consensus (Requires agreement)', value: 'consensus' },\n ],\n default: 'adaptive',\n },\n {\n type: 'confirm',\n name: 'monitor',\n message: 'Monitor task progress?',\n default: true,\n },\n ]);\n\n const spinner = require('ora')('Submitting task...').start();\n\n try {\n const task = await hiveMind.submitTask({\n description: taskDescription,\n priority: config.priority,\n strategy: config.strategy,\n });\n\n spinner.succeed(formatSuccess('Task submitted successfully!'));\n console.log(formatInfo(`Task ID: ${task.id}`));\n\n if (config.monitor) {\n console.log('\\n' + chalk.bold('Monitoring task progress...'));\n // TODO: Implement real-time monitoring\n }\n } catch (error) {\n spinner.fail(formatError('Failed to submit task'));\n throw error;\n }\n}\n\nasync function viewStatusWizard() {\n const { view } = await inquirer.prompt([\n {\n type: 'list',\n name: 'view',\n message: 'What would you like to view?',\n choices: [\n { name: '๐ Overall Status', value: 'overall' },\n { name: '๐ค Agent Details', value: 'agents' },\n { name: '๐ Task Queue', value: 'tasks' },\n { name: '๐พ Memory Usage', value: 'memory' },\n { name: '๐ Performance Metrics', value: 'performance' },\n { name: '๐ก Communications', value: 'communications' },\n ],\n },\n ]);\n\n // Execute the status command with appropriate flags\n const statusCmd = require('./status').statusCommand;\n const args = ['status'];\n\n switch (view) {\n case 'agents':\n args.push('--detailed');\n break;\n case 'tasks':\n args.push('--tasks');\n break;\n case 'memory':\n args.push('--memory');\n break;\n case 'performance':\n args.push('--performance');\n break;\n }\n\n await statusCmd.parseAsync(args);\n}\n\n// Helper functions for other wizard actions\nasync function listAgentsInteractive(hiveMind: HiveMind) {\n const agents = await hiveMind.getAgents();\n\n console.log('\\n' + chalk.bold('๐ค Agent List:'));\n agents.forEach((agent) => {\n const statusEmoji = agent.status === 'busy' ? '๐ด' : '๐ข';\n console.log(`${statusEmoji} ${agent.name} (${agent.type}) - ${agent.status}`);\n });\n}\n\nasync function modifyAgentInteractive(hiveMind: HiveMind) {\n // Implementation for modifying agents\n console.log(formatInfo('Agent modification coming soon...'));\n}\n\nasync function removeAgentInteractive(hiveMind: HiveMind) {\n // Implementation for removing agents\n console.log(formatInfo('Agent removal coming soon...'));\n}\n\nasync function rebalanceAgentsInteractive(hiveMind: HiveMind) {\n const spinner = require('ora')('Rebalancing agents...').start();\n\n try {\n await hiveMind.rebalanceAgents();\n spinner.succeed(formatSuccess('Agents rebalanced successfully!'));\n } catch (error) {\n spinner.fail(formatError('Failed to rebalance agents'));\n throw error;\n }\n}\n\nasync function configureMemoryWizard() {\n console.log(formatInfo('Memory configuration coming soon...'));\n}\n\nasync function runSimulationWizard() {\n console.log(formatInfo('Simulation mode coming soon...'));\n}\n\nasync function exportDataWizard() {\n console.log(formatInfo('Data export coming soon...'));\n}\n\nasync function switchSwarmWizard() {\n const db = await DatabaseManager.getInstance();\n const swarms = await db.getAllSwarms();\n\n if (swarms.length === 0) {\n console.log(formatWarning('No swarms found. Create one first!'));\n return;\n }\n\n const { swarmId } = await inquirer.prompt([\n {\n type: 'list',\n name: 'swarmId',\n message: 'Select swarm:',\n choices: swarms.map((s) => ({\n name: `${s.name} (${s.topology}) - ${s.agentCount} agents`,\n value: s.id,\n })),\n },\n ]);\n\n await db.setActiveSwarm(swarmId);\n console.log(formatSuccess('Switched to swarm: ' + swarmId));\n}\n"],"names":["Command","chalk","inquirer","figlet","gradient","HiveMind","DatabaseManager","formatSuccess","formatError","formatInfo","formatWarning","wizardCommand","description","option","action","options","skipIntro","showIntro","exit","selectAction","createSwarmWizard","manageAgentsWizard","submitTaskWizard","viewStatusWizard","configureMemoryWizard","runSimulationWizard","exportDataWizard","switchSwarmWizard","prompt","type","name","message","default","then","answers","continue","console","log","bold","yellow","error","process","clear","title","textSync","font","horizontalLayout","verticalLayout","rainbow","gray","Promise","resolve","setTimeout","db","getInstance","activeSwarm","getActiveSwarmId","choices","value","disabled","Separator","Date","now","validate","input","length","showAdvanced","advanced","checked","Object","assign","spinner","require","start","hiveMind","topology","maxAgents","queenMode","memoryTTL","consensusThreshold","autoSpawn","enabledFeatures","createdAt","swarmId","initialize","succeed","agents","autoSpawnAgents","fail","load","spawnAgentInteractive","listAgentsInteractive","modifyAgentInteractive","removeAgentInteractive","rebalanceAgentsInteractive","agentTypes","count","i","agent","spawnAgent","push","templates","template","taskDescription","taskConfig","research","prefix","development","analysis","testing","documentation","tmpl","detail","config","task","submitTask","priority","strategy","id","monitor","view","statusCmd","statusCommand","args","parseAsync","getAgents","forEach","statusEmoji","status","rebalanceAgents","swarms","getAllSwarms","map","s","agentCount","setActiveSwarm"],"mappings":"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"}
|