UNPKG

claude-flow-tbowman01

Version:

Enterprise-grade AI agent orchestration with ruv-swarm integration (Alpha Release)

1,088 lines (992 loc) 43.3 kB
// command-registry.js - Extensible command registration system import process from 'process'; import { initCommand } from './simple-commands/init/index.js'; import { memoryCommand } from './simple-commands/memory.js'; import { memoryConsolidationCommand } from './simple-commands/memory-consolidation.js'; import { sparcCommand } from './simple-commands/sparc.js'; import { agentCommand } from './simple-commands/agent.js'; import { taskCommand } from './simple-commands/task.js'; import { configCommand } from './simple-commands/config.js'; import { statusCommand } from './simple-commands/status.js'; import { mcpCommand } from './simple-commands/mcp.js'; import { monitorCommand } from './simple-commands/monitor.js'; import { startCommand } from './simple-commands/start.js'; import { swarmCommand } from './simple-commands/swarm.js'; import { batchManagerCommand } from './simple-commands/batch-manager.js'; import { githubCommand } from './simple-commands/github.js'; import { trainingAction } from './simple-commands/training.js'; import { analysisAction } from './simple-commands/analysis.js'; import { automationAction } from './simple-commands/automation.js'; import { coordinationAction } from './simple-commands/coordination.js'; import { hooksAction } from './simple-commands/hooks.js'; import { hookSafetyCommand } from './simple-commands/hook-safety.js'; import { hiveMindCommand } from './simple-commands/hive-mind.js'; import { HelpFormatter } from './help-formatter.js'; import hiveMindOptimizeCommand from './simple-commands/hive-mind-optimize.js'; import { showUnifiedMetrics, fixTaskAttribution, } from './simple-commands/swarm-metrics-integration.js'; import { migrateHooksCommand, migrateHooksCommandConfig } from './simple-commands/migrate-hooks.js'; import { fixHookVariablesCommand, fixHookVariablesCommandConfig, } from './simple-commands/fix-hook-variables.js'; import { initializePerformanceTracking, trackCommandExecution } from './simple-commands/performance-hooks.js'; // Maestro commands integrated with clean implementation // Note: Maestro TypeScript commands now integrated directly in ./commands/maestro.ts // Note: TypeScript imports commented out for Node.js compatibility // import { ruvSwarmAction } from './commands/ruv-swarm.ts'; // import { configIntegrationAction } from './commands/config-integration.ts'; // Command registry for extensible CLI export const commandRegistry = new Map(); // Register core commands export function registerCoreCommands() { commandRegistry.set('init', { handler: initCommand, description: 'Initialize Claude Code integration files and SPARC development environment', usage: 'init [--force] [--minimal] [--sparc]', examples: [ 'npx claude-flow@latest init --sparc # Recommended: Full SPARC setup', 'init --sparc # Initialize with SPARC modes', 'init --force --minimal # Minimal setup, overwrite existing', 'init --sparc --force # Force SPARC setup', ], details: ` The --sparc flag creates a complete development environment: • .roomodes file containing 17 specialized SPARC modes • CLAUDE.md for AI-readable project instructions • Pre-configured modes: architect, code, tdd, debug, security, and more • Ready for TDD workflows and automated code generation First-time users should run: npx claude-flow@latest init --sparc`, }); commandRegistry.set('start', { handler: startCommand, description: 'Start the Claude-Flow orchestration system', usage: 'start [--daemon] [--port <port>] [--verbose] [--ui] [--web]', examples: [ 'start # Start in interactive mode', 'start --daemon # Start as background daemon', 'start --port 8080 # Use custom MCP port', 'start --verbose # Show detailed system activity', 'start --ui # Launch terminal-based UI', 'start --web # Launch web-based UI', ], }); // Add start-ui as a convenient alias for launching the UI commandRegistry.set('start-ui', { handler: async (args, flags) => { // Import and use the direct UI launcher const { launchUI } = await import('./simple-commands/start-ui.js'); // Pass the full raw arguments from process.argv const fullArgs = process.argv.slice(3); // Skip node, script, and command return launchUI(fullArgs); }, description: 'Start the UI interface (web UI by default)', usage: 'start-ui [--port <port>] [--terminal]', examples: [ 'start-ui # Launch web-based UI (default)', 'start-ui --port 3000 # Use custom port', 'start-ui --terminal # Launch terminal-based UI instead', ], }); commandRegistry.set('memory', { handler: memoryCommand, description: 'Memory management operations', usage: 'memory <subcommand> [options]', examples: [ 'memory store key "value"', 'memory query search_term', 'memory stats', 'memory export backup.json', ], }); commandRegistry.set('memory-consolidate', { handler: memoryConsolidationCommand, description: 'Consolidate fragmented memory stores into unified database', usage: 'memory-consolidate <command> [options]', examples: [ 'memory-consolidate scan # Scan for all memory stores', 'memory-consolidate plan # Create consolidation plan', 'memory-consolidate execute --force # Execute consolidation', 'memory-consolidate report # Generate report', ], details: ` Memory Consolidation Features: • Discovers all memory storage locations (JSON & SQLite) • Creates automatic backups before consolidation • Merges all stores into unified SQLite database • Optimizes with indices for better performance • Maintains backward compatibility Benefits: • Single source of truth for all memory data • Improved query performance with indices • Reduced disk fragmentation • Easier backup and restore • Cross-session persistence`, }); commandRegistry.set('sparc', { handler: sparcCommand, description: 'SPARC development mode operations', usage: 'sparc [subcommand] [options]', examples: [ 'sparc "orchestrate full app development" # Default: sparc orchestrator', 'sparc modes # List available modes', 'sparc run code "implement feature" # Run specific mode', 'sparc tdd "feature description" # TDD workflow', 'sparc info architect # Mode details', ], }); // Note: Maestro commands are now handled by TypeScript module // See src/cli/commands/maestro.ts for the clean implementation commandRegistry.set('maestro', { handler: () => { console.log('⚠️ Maestro commands have been moved to TypeScript.'); console.log('Please use: npx claude-flow maestro help'); console.log('Or import from: ./commands/maestro.js after compilation'); }, description: 'Maestro: Specs-Driven Development with Hive Mind Integration', usage: 'maestro <subcommand> [options]', examples: [ 'maestro create-spec my-feature --request "Implement user auth"', 'maestro generate-design my-feature', 'maestro generate-tasks my-feature', 'maestro implement-task my-feature 1', 'maestro approve-phase my-feature', 'maestro status my-feature --detailed', 'maestro init-steering api-design', 'maestro help', ], }); commandRegistry.set('agent', { handler: agentCommand, description: 'Manage AI agents and hierarchies', usage: 'agent <subcommand> [options]', examples: [ 'agent spawn researcher --name "DataBot"', 'agent list --verbose', 'agent hierarchy create enterprise', 'agent ecosystem status', ], }); commandRegistry.set('task', { handler: taskCommand, description: 'Manage tasks and workflows', usage: 'task <subcommand> [options]', examples: [ 'task create research "Market analysis"', 'task list --filter running', 'task workflow examples/dev-flow.json', 'task coordination status', ], }); commandRegistry.set('config', { handler: configCommand, description: 'Manage system configuration', usage: 'config <subcommand> [options]', examples: [ 'config init', 'config set terminal.poolSize 15', 'config get orchestrator.maxConcurrentTasks', 'config validate', ], }); commandRegistry.set('status', { handler: statusCommand, description: 'Show system status and health', usage: 'status [--verbose] [--json]', examples: ['status', 'status --verbose', 'status --json'], }); commandRegistry.set('mcp', { handler: mcpCommand, description: 'Manage MCP server and tools', usage: 'mcp <subcommand> [options]', examples: ['mcp status', 'mcp start --port 8080', 'mcp tools --verbose', 'mcp auth setup'], }); commandRegistry.set('monitor', { handler: monitorCommand, description: 'Real-time system monitoring', usage: 'monitor [--watch] [--interval <ms>]', examples: [ 'monitor', 'monitor --watch', 'monitor --interval 1000 --watch', 'monitor --format json', ], }); commandRegistry.set('swarm', { handler: swarmCommand, description: 'Swarm-based AI agent coordination', usage: 'swarm <objective> [options]', examples: [ 'swarm "Build a REST API"', 'swarm "Research cloud architecture" --strategy research', 'swarm "Analyze data" --max-agents 3 --parallel', 'swarm "Development task" --ui --monitor --background', ], }); commandRegistry.set('hive-mind', { handler: hiveMindCommand, description: '🧠 Advanced Hive Mind swarm intelligence with collective decision-making', usage: 'hive-mind <subcommand> [options]', examples: [ 'hive-mind init # Initialize hive mind system', 'hive-mind spawn "Build microservices" # Create swarm with objective', 'hive-mind wizard # Interactive setup wizard', 'hive-mind status # View active swarms', 'hive-mind consensus # View consensus decisions', 'hive-mind metrics # Performance analytics', ], customHelp: true, // Use command's own help function details: ` Hive Mind System Features: • Queen-led coordination with specialized worker agents • Collective memory and knowledge sharing • Consensus building for critical decisions • Auto-scaling based on workload • Parallel task execution with work stealing • Real-time monitoring and metrics • SQLite-backed persistence • MCP tool integration for 87+ operations Queen Types: • Strategic - Long-term planning and optimization • Tactical - Task prioritization and rapid response • Adaptive - Learning and strategy evolution Worker Types: • Researcher, Coder, Analyst, Tester • Architect, Reviewer, Optimizer, Documenter Use 'hive-mind wizard' for interactive setup or 'hive-mind help' for full documentation.`, }); commandRegistry.set('hive-mind-optimize', { handler: hiveMindOptimizeCommand, description: '🔧 Optimize hive mind database for better performance', usage: 'hive-mind-optimize [options]', examples: [ 'hive-mind-optimize # Interactive optimization wizard', 'hive-mind-optimize --auto # Auto-optimize with defaults', 'hive-mind-optimize --report # Generate optimization report', 'hive-mind-optimize --clean-memory --memory-days 60', 'hive-mind-optimize --auto --vacuum --archive-tasks', ], details: ` Hive Mind Database Optimization Features: • Safe, backward-compatible optimizations • Performance indexes for 50% faster queries • Memory cleanup and archiving • Task archival for space management • Behavioral pattern tracking • Database integrity checking Optimization Levels: • v1.0 → v1.1: Basic performance indexes • v1.1 → v1.2: Advanced query optimization • v1.2 → v1.3: Performance tracking tables • v1.3 → v1.4: Memory optimization features • v1.4 → v1.5: Behavioral analysis tracking Safety Features: • Automatic backups before major operations • All changes are backward-compatible • Existing data is always preserved • Rollback capability on errors`, }); commandRegistry.set('swarm-metrics', { handler: async (args, flags) => { const subcommand = args[0]; if (subcommand === 'fix') { return await fixTaskAttribution(); } else { return await showUnifiedMetrics(); } }, description: 'Unified swarm metrics and task attribution diagnostics', usage: 'swarm-metrics [fix] [options]', examples: [ 'swarm-metrics # Show unified metrics from all swarm systems', 'swarm-metrics fix # Fix task attribution issues between systems', ], details: ` Swarm Metrics Integration Features: • Unified view of hive-mind and ruv-swarm metrics • Task attribution diagnosis and repair • Cross-system swarm performance comparison • Database integration status checking • Automatic sample task creation for empty swarms This command helps resolve issues where: • Overall task statistics show correctly but per-swarm shows 0/0 • Multiple swarm systems are not properly integrated • Task assignments are missing or incorrectly attributed Use 'swarm-metrics fix' to automatically repair attribution issues.`, }); commandRegistry.set('batch', { handler: batchManagerCommand, description: 'Batch operation management and configuration utilities', usage: 'batch <command> [options]', examples: [ 'batch create-config my-batch.json', 'batch create-config --interactive', 'batch validate-config my-batch.json', 'batch estimate my-batch.json', 'batch list-templates', 'batch list-environments', ], details: ` Batch operations support: • Multiple project initialization with templates • Environment-specific configurations (dev, staging, prod) • Parallel processing with resource management • Progress tracking and detailed reporting • Configuration validation and estimation tools Use with init command: claude-flow init --batch-init project1,project2,project3 claude-flow init --config batch-config.json --parallel`, }); commandRegistry.set('github', { handler: githubCommand, description: 'GitHub workflow automation with 6 specialized modes', usage: 'github <mode> <objective> [options]', examples: [ 'github pr-manager "create feature PR with automated testing"', 'github gh-coordinator "setup CI/CD pipeline" --auto-approve', 'github release-manager "prepare v2.0.0 release"', 'github repo-architect "optimize repository structure"', 'github issue-tracker "analyze project roadmap issues"', 'github sync-coordinator "sync package versions across repos"', ], details: ` GitHub automation modes: • gh-coordinator: GitHub workflow orchestration and coordination • pr-manager: Pull request management with multi-reviewer coordination • issue-tracker: Issue management and project coordination • release-manager: Release coordination and deployment pipelines • repo-architect: Repository structure optimization • sync-coordinator: Multi-package synchronization and version alignment Advanced features: • Multi-reviewer coordination with automated scheduling • Intelligent issue categorization and assignment • Automated testing integration and quality gates • Release pipeline orchestration with rollback capabilities`, }); commandRegistry.set('training', { handler: trainingAction, description: 'Neural pattern learning and model updates', usage: 'training <command> [options]', examples: [ 'training neural-train --data recent --model task-predictor', 'training pattern-learn --operation "file-creation" --outcome "success"', 'training model-update --agent-type coordinator --operation-result "efficient"', ], details: ` Neural training commands: • neural-train: Train neural patterns from operations • pattern-learn: Learn from specific operation outcomes • model-update: Update agent models with new insights Improves task selection accuracy, agent performance prediction, and coordination efficiency.`, }); commandRegistry.set('analysis', { handler: analysisAction, description: 'Performance and usage analytics', usage: 'analysis <command> [options]', examples: [ 'analysis bottleneck-detect --scope system', 'analysis performance-report --timeframe 7d --format detailed', 'analysis token-usage --breakdown --cost-analysis', ], details: ` Analysis commands: • bottleneck-detect: Detect performance bottlenecks in the system • performance-report: Generate comprehensive performance reports • token-usage: Analyze token consumption and costs Helps with performance optimization, cost management, and resource allocation.`, }); commandRegistry.set('automation', { handler: automationAction, description: 'Intelligent agent and workflow management with MLE-STAR and Claude integration', usage: 'automation <command> [options]', examples: [ 'automation auto-agent --task-complexity enterprise --swarm-id swarm-123', 'automation smart-spawn --requirement "web-development" --max-agents 8', 'automation workflow-select --project-type api --priority speed', 'automation run-workflow my-workflow.json --claude --non-interactive', 'automation mle-star --dataset data/train.csv --target price --claude', ], details: ` Automation commands: • auto-agent: Automatically spawn optimal agents based on task complexity • smart-spawn: Intelligently spawn agents based on specific requirements • workflow-select: Select and configure optimal workflows for project types • run-workflow: Execute workflows from JSON/YAML files with Claude integration • mle-star: Run MLE-STAR Machine Learning Engineering workflow (flagship) New features: • Claude CLI integration for actual execution • MLE-STAR methodology for ML engineering • Non-interactive mode for CI/CD integration • Comprehensive workflow templates Provides optimal resource allocation, intelligent agent selection, and complete automation workflows.`, }); commandRegistry.set('coordination', { handler: coordinationAction, description: 'Swarm and agent orchestration', usage: 'coordination <command> [options]', examples: [ 'coordination swarm-init --topology hierarchical --max-agents 8', 'coordination agent-spawn --type developer --name "api-dev" --swarm-id swarm-123', 'coordination task-orchestrate --task "Build REST API" --strategy parallel', ], details: ` Coordination commands: • swarm-init: Initialize swarm coordination infrastructure • agent-spawn: Spawn and coordinate new agents • task-orchestrate: Orchestrate task execution across agents Enables intelligent task distribution, agent synchronization, and shared memory coordination.`, }); commandRegistry.set('hooks', { handler: hooksAction, description: 'Lifecycle event management', usage: 'hooks <command> [options]', examples: [ 'hooks pre-task --description "Build API" --task-id task-123', 'hooks post-task --task-id task-123 --analyze-performance --generate-insights', 'hooks session-end --export-metrics --generate-summary', ], details: ` Hooks commands: • pre-task: Execute before task begins (preparation & setup) • post-task: Execute after task completion (analysis & cleanup) • pre-edit: Execute before file modifications (backup & validation) • post-edit: Execute after file modifications (tracking & coordination) • session-end: Execute at session termination (cleanup & export) Enables automated preparation & cleanup, performance tracking, and coordination synchronization.`, }); commandRegistry.set('hook-safety', { handler: hookSafetyCommand, description: '🚨 Critical hook safety system - Prevent infinite loops & financial damage', usage: 'hook-safety <command> [options]', examples: [ 'hook-safety validate # Check for dangerous hook configurations', 'hook-safety validate --config ~/.claude/settings.json', 'hook-safety status # View safety status and context', 'hook-safety reset # Reset circuit breakers', 'hook-safety safe-mode # Enable safe mode (skip all hooks)', ], details: ` 🚨 CRITICAL: Stop hooks calling 'claude' commands create INFINITE LOOPS that can: • Bypass API rate limits • Cost thousands of dollars per day • Make your system unresponsive Hook Safety commands: • validate: Check Claude Code settings for dangerous patterns • status: Show current safety status and execution context • reset: Reset circuit breakers and execution counters • safe-mode: Enable/disable safe mode (skips all hooks) SAFE ALTERNATIVES: • Use PostToolUse hooks instead of Stop hooks • Implement flag-based update patterns • Use 'claude --skip-hooks' for manual updates • Create conditional execution scripts For more information: https://github.com/ruvnet/claude-flow/issues/166`, }); commandRegistry.set('migrate-hooks', migrateHooksCommandConfig); commandRegistry.set('fix-hook-variables', { handler: fixHookVariablesCommand, ...fixHookVariablesCommandConfig, }); // Verification system commands commandRegistry.set('verify', { handler: async (args, flags) => { try { const { verificationCommand } = await import('./simple-commands/verification.js'); return await verificationCommand(args, flags); } catch (error) { console.error('❌ Error loading verification module:', error.message); console.log('Error details:', error); } }, description: '🔍 Verification and truth enforcement system', usage: 'verify <subcommand> [options]', examples: [ 'verify status # Show verification system status', 'verify check --taskId task-123 # Run verification checks', 'verify validate --taskId task-456 # Validate task results', 'verify config # Manage verification config', 'verify cleanup --force # Clean up old verification data', ], details: ` Verification system commands: • status: Show current system status and health • check: Run verification checks on tasks • validate: Validate task completion and results • config: Manage verification configuration • cleanup: Clean up old verification data • pre-task: Execute pre-task verification • post-task: Execute post-task validation • integration: Run integration tests • truth: Execute truth telemetry checks • rollback: Trigger rollback if needed Truth enforcement features: • 0.95 minimum truth threshold • Cross-agent integration testing • Automated rollback on failures • Cryptographic verification • Byzantine fault tolerance`, }); commandRegistry.set('truth', { handler: async (args, flags) => { try { const { truthCommand } = await import('./simple-commands/verification.js'); return await truthCommand(args, flags); } catch (error) { console.error('❌ Error loading verification module:', error.message); console.log('Error details:', error); } }, description: '🎯 Truth telemetry and accuracy scoring', usage: 'truth [options]', examples: [ 'truth # Show current truth scores', 'truth --taskId task-123 # Check truth for specific task', 'truth --threshold 0.95 # Set minimum truth threshold', 'truth --report # Generate truth report', ], details: ` Truth scoring system: • Real-time truth metrics collection • Agent performance scoring • System-wide truth accuracy tracking • Automated alerting for threshold violations • Dashboard data export functionality Target metrics: • >95% truth accuracy rate • <10% human intervention rate • >90% integration success rate • <5% automated rollback frequency`, }); commandRegistry.set('pair', { handler: async (args, flags) => { try { const pairCommand = (await import('./simple-commands/pair.js')).default; return await pairCommand(args, flags); } catch (error) { console.error('❌ Error loading pair module:', error.message); console.log('Error details:', error); } }, description: '👥 Interactive pair programming with AI assistance', usage: 'pair [options]', examples: [ 'pair --start # Start pair programming session', 'pair --start --mode driver # You write, AI assists', 'pair --start --verify --test # Enable verification and testing', 'pair --status # Show session status', 'pair --end # End current session', ], details: ` Pair programming features: • Three modes: driver, navigator, switch • Real-time code assistance • Optional verification and testing • Session persistence • Background execution support`, }); commandRegistry.set('verify-train', { handler: async (args, flags) => { try { const { verificationTrainingCommand } = await import('./simple-commands/verification-training-integration.js'); return await verificationTrainingCommand(args, flags); } catch (error) { console.error('❌ Error loading verification-training module:', error.message); console.log('Error details:', error); } }, description: '🧠 Verification-Training integration for continuous improvement', usage: 'verify-train <command> [options]', examples: [ 'verify-train status # Show training status', 'verify-train feed # Feed verification data to training', 'verify-train predict coder # Predict verification outcome', 'verify-train recommend # Get agent recommendations', 'verify-train train # Trigger neural training', ], details: ` Verification-Training Integration: • Feeds verification results to training system • Learns from agent performance over time • Predicts verification outcomes • Recommends best agents for tasks • Improves reliability through continuous learning`, }); commandRegistry.set('train-pipeline', { handler: async (args, flags) => { try { // Always use real execution - no more simulation const { trainingPipelineCommand } = await import('./simple-commands/training-pipeline.js'); return await trainingPipelineCommand(args, flags); } catch (error) { console.error('❌ Error loading training-pipeline module:', error.message); console.log('Error details:', error); } }, description: '🚀 Real training pipeline with actual code execution and learning', usage: 'train-pipeline <command> [options]', examples: [ 'train-pipeline run # Run training with real code', 'train-pipeline run --complexity hard --iterations 5', 'train-pipeline generate # Generate real training tasks', 'train-pipeline validate # Validate current performance', 'train-pipeline status # Show pipeline status with real metrics', ], details: ` Real Training Pipeline Features: • Creates actual code files and tests • Runs real npm test commands • Learns from actual test results • Validates improvements with real metrics • Applies learned optimizations to production Pipeline Stages: 1. Generate real code tasks (easy/medium/hard) 2. Execute with different strategies using npm 3. Learn from real test results 4. Validate actual improvements 5. Apply to production configuration Options: --complexity <level> Task complexity (easy/medium/hard) --iterations <n> Number of training iterations`, }); commandRegistry.set('stream-chain', { handler: async (args, flags) => { try { const { streamChainCommand } = await import('./simple-commands/stream-chain.js'); return await streamChainCommand(args, flags); } catch (error) { console.error('❌ Error loading stream-chain module:', error.message); console.log('Error details:', error); } }, description: '🔗 Connect multiple Claude instances via stream-json for chained workflows', usage: 'stream-chain <subcommand> [options]', examples: [ 'stream-chain run "analyze" "design" "implement" # Custom chain', 'stream-chain demo # Run demo chain', 'stream-chain pipeline analysis # Run analysis pipeline', 'stream-chain test # Test stream connection', 'stream-chain help # Show detailed help', ], details: ` 📚 SUBCOMMANDS run <p1> <p2> [...] Execute custom chain (min 2 prompts) demo Run 3-step demo chain pipeline <type> Run predefined pipeline (analysis/refactor/test/optimize) test Test stream connection help Show comprehensive documentation ⚙️ OPTIONS --verbose Show detailed execution info --timeout <seconds> Timeout per step (default: 30) --debug Enable debug mode 🔄 STREAM CHAINING Chains multiple Claude Code calls with context preservation: • Step 1 outputs stream-json → Step 2 receives context → Step 3... • 100% context preservation between steps • Real execution with Claude Code (not simulated) 🚀 PIPELINES analysis - Analyze → Identify issues → Generate report refactor - Find opportunities → Create plan → Apply changes test - Analyze coverage → Design cases → Generate tests optimize - Profile code → Find bottlenecks → Apply optimizations ⚡ PERFORMANCE • Latency: ~10-30s per step • Context: Full preservation • Streaming: No intermediate files 📖 For full documentation: stream-chain help`, }); commandRegistry.set('hive', { handler: async (args, flags) => { try { // Try to load the hive command module const { hiveAction } = await import('./commands/hive.js'); return hiveAction({ args, flags, command: 'hive' }); } catch (error) { // Fallback to simple implementation if module not found console.log('🐝 Hive Mind - Advanced Multi-Agent Coordination'); console.log(''); console.log('The Hive Mind system provides:'); console.log(' • Consensus-based decision making'); console.log(' • Distributed task orchestration'); console.log(' • Quality-driven execution'); console.log(' • Real-time swarm monitoring'); console.log(''); console.log('Usage: hive <objective> [options]'); console.log(''); console.log('For full functionality, ensure the hive module is properly built.'); } }, description: 'Hive Mind - Advanced multi-agent swarm with consensus', usage: 'hive <objective> [options]', examples: [ 'hive "Build microservices architecture"', 'hive "Optimize database performance" --consensus unanimous', 'hive "Develop ML pipeline" --topology mesh --monitor', 'hive "Create REST API" --sparc --max-agents 8', 'hive "Research cloud patterns" --background --quality-threshold 0.9', ], details: ` Hive Mind features: • 👑 Queen-led orchestration with specialized agents • 🗳️ Consensus mechanisms (quorum, unanimous, weighted, leader) • 🏗️ Multiple topologies (hierarchical, mesh, ring, star) • 📊 Real-time monitoring dashboard • 🧪 SPARC methodology integration • 💾 Distributed memory and knowledge sharing Agent types: • Queen: Orchestrator and decision maker • Architect: System design and planning • Worker: Implementation and execution • Scout: Research and exploration • Guardian: Quality and validation Options: --topology <type> Swarm topology (default: hierarchical) --consensus <type> Decision mechanism (default: quorum) --max-agents <n> Maximum agents (default: 8) --quality-threshold <n> Min quality 0-1 (default: 0.8) --sparc Use SPARC methodology --monitor Real-time monitoring --background Run in background`, }); // Temporarily commented out for Node.js compatibility /* commandRegistry.set('ruv-swarm', { handler: ruvSwarmAction, description: 'Advanced AI swarm coordination with neural capabilities', usage: 'ruv-swarm <command> [options]', examples: [ 'ruv-swarm init --topology mesh --max-agents 8', 'ruv-swarm spawn researcher --name "AI Researcher"', 'ruv-swarm orchestrate "Build a REST API"', 'ruv-swarm neural train --iterations 20', 'ruv-swarm benchmark --type swarm', 'ruv-swarm config show', 'ruv-swarm status --verbose' ], details: ` Advanced swarm coordination features: • 84.8% SWE-Bench solve rate • 32.3% token reduction through coordination • 2.8-4.4x speed improvement via parallel execution • 27+ neural models for cognitive approaches • Persistent memory across sessions • Automatic topology optimization Commands: init - Initialize swarm with specified topology status - Get current swarm status and metrics spawn - Spawn specialized agents (researcher, coder, analyst, etc.) orchestrate - Coordinate complex tasks across agents neural - Neural pattern training and management benchmark - Performance testing and optimization config - Configuration management memory - Memory usage and coordination data` }); */ // Additional ruv-swarm coordination commands - temporarily commented out /* commandRegistry.set('swarm-init', { handler: async (args, flags) => { const { ruvSwarmAction } = await import('./commands/ruv-swarm.js'); return ruvSwarmAction({ args: ['init', ...args], flags }); }, description: 'Quick swarm initialization with topology selection', usage: 'swarm-init [--topology <type>] [--max-agents <n>] [--strategy <type>]', examples: [ 'swarm-init --topology mesh --max-agents 8', 'swarm-init --topology hierarchical --strategy specialized', 'swarm-init --topology star --max-agents 5 --strategy balanced' ] }); commandRegistry.set('neural-spawn', { handler: async (args, flags) => { const { ruvSwarmAction } = await import('./commands/ruv-swarm.js'); return ruvSwarmAction({ args: ['spawn', ...args], flags }); }, description: 'Spawn neural agents with cognitive capabilities', usage: 'neural-spawn <type> [--name <name>] [--capabilities <list>]', examples: [ 'neural-spawn researcher --name "Data Analyst"', 'neural-spawn coder --capabilities "typescript,react,api"', 'neural-spawn coordinator --name "Project Manager"' ] }); commandRegistry.set('memory-coordinate', { handler: async (args, flags) => { const { ruvSwarmAction } = await import('./commands/ruv-swarm.js'); return ruvSwarmAction({ args: ['memory', ...args], flags }); }, description: 'Coordinate memory across swarm agents', usage: 'memory-coordinate [--detail <level>] [--sync] [--compress]', examples: [ 'memory-coordinate --detail summary', 'memory-coordinate --detail detailed --sync', 'memory-coordinate --compress --sync' ] }); commandRegistry.set('config-integration', { handler: configIntegrationAction, description: 'Enhanced configuration management with ruv-swarm integration', usage: 'config-integration <command> [options]', examples: [ 'config-integration setup --enable-ruv-swarm', 'config-integration preset development', 'config-integration sync --force', 'config-integration status --verbose', 'config-integration export my-config.json', 'config-integration validate --fix' ], details: ` Advanced configuration management features: • Unified configuration across Claude-Flow and ruv-swarm • Configuration presets for different environments • Automatic synchronization between config systems • Import/export capabilities with validation • Real-time status monitoring and validation Presets: development - Hierarchical topology, specialized strategy, 8 agents research - Mesh topology, adaptive strategy, 12 agents production - Star topology, balanced strategy, 6 agents Commands: setup - Initialize ruv-swarm integration sync - Synchronize configurations status - Show integration status validate - Validate all configurations preset - Apply configuration preset export - Export unified configuration import - Import and apply configuration` }); */ } // Register a new command export function registerCommand(name, command) { if (commandRegistry.has(name)) { console.warn(`Command '${name}' already exists and will be overwritten`); } commandRegistry.set(name, { handler: command.handler, description: command.description || 'No description available', usage: command.usage || `${name} [options]`, examples: command.examples || [], hidden: command.hidden || false, }); } // Get command handler export function getCommand(name) { return commandRegistry.get(name); } // List all registered commands export function listCommands(includeHidden = false) { const commands = []; for (const [name, command] of commandRegistry.entries()) { if (includeHidden || !command.hidden) { commands.push({ name, ...command, }); } } return commands.sort((a, b) => a.name.localeCompare(b.name)); } // Check if command exists export function hasCommand(name) { return commandRegistry.has(name); } // Execute a command export async function executeCommand(name, subArgs, flags) { const command = commandRegistry.get(name); if (!command) { throw new Error(`Unknown command: ${name}`); } try { // Track command execution for performance metrics await trackCommandExecution(name, command.handler, subArgs, flags); } catch (err) { throw new Error(`Command '${name}' failed: ${err.message}`); } } // Helper to show command help export function showCommandHelp(name) { const command = commandRegistry.get(name); if (!command) { console.log( HelpFormatter.formatError( `Unknown command: ${name}`, 'claude-flow', 'claude-flow <command> [options]', ), ); return; } // If command has custom help, call it with help flag if (command.customHelp) { command.handler(['--help'], { help: true }); return; } // Convert command info to standardized format const helpInfo = { name: `claude-flow ${name}`, description: HelpFormatter.stripFormatting(command.description), usage: `claude-flow ${command.usage}`, details: command.details, // Pass through the details section }; // Parse examples if (command.examples && command.examples.length > 0) { helpInfo.examples = command.examples.map((ex) => { if (ex.startsWith('npx')) { return ex; } return `claude-flow ${ex}`; }); } // Parse options from details if available if (command.details) { const optionsMatch = command.details.match(/Options:([\s\S]*?)(?=\n\n|$)/); if (optionsMatch) { const optionsText = optionsMatch[1]; const options = []; const optionLines = optionsText.split('\n').filter((line) => line.trim()); for (const line of optionLines) { const match = line.match(/^\s*(--.+?)\s{2,}(.+)$/); if (match) { let [_, flags, description] = match; // Check for default value in description const defaultMatch = description.match(/\(default: (.+?)\)/); const option = { flags: flags.trim(), description: description.replace(/\(default: .+?\)/, '').trim(), }; if (defaultMatch) { option.defaultValue = defaultMatch[1]; } options.push(option); } } if (options.length > 0) { helpInfo.options = options; } } } console.log(HelpFormatter.formatHelp(helpInfo)); } // Helper to show all commands export function showAllCommands() { const commands = listCommands(); console.log('Available commands:'); console.log(); for (const command of commands) { console.log(` ${command.name.padEnd(12)} ${command.description}`); } console.log(); console.log('Use "claude-flow help <command>" for detailed usage information'); } // Initialize the command registry registerCoreCommands(); // Initialize performance tracking initializePerformanceTracking().catch(err => { // Performance tracking is optional, don't fail if it errors console.error('Failed to initialize performance tracking:', err.message); });