claude-flow 2.5.0-alpha.136 → 2.5.0-alpha.138

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/cli/simple-commands/init/templates/enhanced-templates.js"],"sourcesContent":["// enhanced-templates.js - Generate Claude Flow v2.0.0 enhanced templates\nimport { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n// Load template files\nconst loadTemplate = (filename) => {\n try {\n return readFileSync(join(__dirname, filename), 'utf8');\n } catch (error) {\n // Silently fall back to hardcoded templates if files not found\n // This handles npm packaging scenarios where template files may not be included\n return null;\n }\n};\n\nexport function createEnhancedClaudeMd() {\n const template = loadTemplate('CLAUDE.md');\n if (!template) {\n // Fallback to hardcoded if template file not found\n return createEnhancedClaudeMdFallback();\n }\n return template;\n}\n\nexport function createEnhancedSettingsJson() {\n const template = loadTemplate('settings.json');\n if (!template) {\n return createEnhancedSettingsJsonFallback();\n }\n return template;\n}\n\nexport function createWrapperScript(type = 'unix') {\n // For unix, use the universal wrapper that works in both CommonJS and ES modules\n if (type === 'unix') {\n const universalTemplate = loadTemplate('claude-flow-universal');\n if (universalTemplate) {\n return universalTemplate;\n }\n }\n\n const filename =\n type === 'unix' ? 'claude-flow' : type === 'windows' ? 'claude-flow.bat' : 'claude-flow.ps1';\n\n const template = loadTemplate(filename);\n if (!template) {\n return createWrapperScriptFallback(type);\n }\n return template;\n}\n\nexport function createCommandDoc(category, command) {\n const template = loadTemplate(`commands/${category}/${command}.md`);\n if (!template) {\n // Silently fall back to generated documentation\n return createCommandDocFallback(category, command);\n }\n return template;\n}\n\n// Generate command documentation fallbacks\nfunction createCommandDocFallback(category, command) {\n const docs = {\n analysis: {\n 'bottleneck-detect': `# bottleneck-detect\n\nAutomatically detect performance bottlenecks in your swarm operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis bottleneck-detect [options]\n\\`\\`\\`\n\n## Options\n- \\`--swarm-id <id>\\` - Target specific swarm\n- \\`--threshold <ms>\\` - Performance threshold (default: 1000ms)\n- \\`--export <file>\\` - Export results to file\n\n## Examples\n\\`\\`\\`bash\n# Detect bottlenecks in current swarm\nnpx claude-flow analysis bottleneck-detect\n\n# Set custom threshold\nnpx claude-flow analysis bottleneck-detect --threshold 500\n\n# Export results\nnpx claude-flow analysis bottleneck-detect --export bottlenecks.json\n\\`\\`\\`\n`,\n 'token-usage': `# token-usage\n\nAnalyze token usage patterns and optimize for efficiency.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis token-usage [options]\n\\`\\`\\`\n\n## Options\n- \\`--period <time>\\` - Analysis period (1h, 24h, 7d, 30d)\n- \\`--by-agent\\` - Break down by agent\n- \\`--by-operation\\` - Break down by operation type\n\n## Examples\n\\`\\`\\`bash\n# Last 24 hours token usage\nnpx claude-flow analysis token-usage --period 24h\n\n# By agent breakdown\nnpx claude-flow analysis token-usage --by-agent\n\n# Export detailed report\nnpx claude-flow analysis token-usage --period 7d --export tokens.csv\n\\`\\`\\`\n`,\n 'performance-report': `# performance-report\n\nGenerate comprehensive performance reports for swarm operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis performance-report [options]\n\\`\\`\\`\n\n## Options\n- \\`--format <type>\\` - Report format (json, html, markdown)\n- \\`--include-metrics\\` - Include detailed metrics\n- \\`--compare <id>\\` - Compare with previous swarm\n\n## Examples\n\\`\\`\\`bash\n# Generate HTML report\nnpx claude-flow analysis performance-report --format html\n\n# Compare swarms\nnpx claude-flow analysis performance-report --compare swarm-123\n\n# Full metrics report\nnpx claude-flow analysis performance-report --include-metrics --format markdown\n\\`\\`\\`\n`,\n },\n automation: {\n 'auto-agent': `# auto-agent\n\nAutomatically assign agents based on task analysis.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation auto-agent [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task to analyze\n- \\`--max-agents <n>\\` - Maximum agents to spawn\n- \\`--strategy <type>\\` - Assignment strategy\n\n## Examples\n\\`\\`\\`bash\n# Auto-assign for task\nnpx claude-flow automation auto-agent --task \"Build REST API\"\n\n# Limit agents\nnpx claude-flow automation auto-agent --task \"Fix bugs\" --max-agents 3\n\n# Use specific strategy\nnpx claude-flow automation auto-agent --strategy specialized\n\\`\\`\\`\n`,\n 'smart-spawn': `# smart-spawn\n\nIntelligently spawn agents based on workload analysis.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation smart-spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--analyze\\` - Analyze before spawning\n- \\`--threshold <n>\\` - Spawn threshold\n- \\`--topology <type>\\` - Preferred topology\n\n## Examples\n\\`\\`\\`bash\n# Smart spawn with analysis\nnpx claude-flow automation smart-spawn --analyze\n\n# Set spawn threshold\nnpx claude-flow automation smart-spawn --threshold 5\n\n# Force topology\nnpx claude-flow automation smart-spawn --topology hierarchical\n\\`\\`\\`\n`,\n 'workflow-select': `# workflow-select\n\nAutomatically select optimal workflow based on task type.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation workflow-select [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task description\n- \\`--constraints <list>\\` - Workflow constraints\n- \\`--preview\\` - Preview without executing\n\n## Examples\n\\`\\`\\`bash\n# Select workflow for task\nnpx claude-flow automation workflow-select --task \"Deploy to production\"\n\n# With constraints\nnpx claude-flow automation workflow-select --constraints \"no-downtime,rollback\"\n\n# Preview mode\nnpx claude-flow automation workflow-select --task \"Database migration\" --preview\n\\`\\`\\`\n`,\n },\n coordination: {\n 'swarm-init': `# swarm-init\n\nInitialize a new agent swarm with specified topology.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm init [options]\n\\`\\`\\`\n\n## Options\n- \\`--topology <type>\\` - Swarm topology (mesh, hierarchical, ring, star)\n- \\`--max-agents <n>\\` - Maximum number of agents\n- \\`--strategy <type>\\` - Execution strategy (parallel, sequential, adaptive)\n\n## Examples\n\\`\\`\\`bash\n# Initialize hierarchical swarm\nnpx claude-flow swarm init --topology hierarchical\n\n# With agent limit\nnpx claude-flow swarm init --topology mesh --max-agents 8\n\n# Parallel execution\nnpx claude-flow swarm init --strategy parallel\n\\`\\`\\`\n`,\n 'agent-spawn': `# agent-spawn\n\nSpawn a new agent in the current swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow agent spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--type <type>\\` - Agent type (coder, researcher, analyst, tester, coordinator)\n- \\`--name <name>\\` - Custom agent name\n- \\`--skills <list>\\` - Specific skills (comma-separated)\n\n## Examples\n\\`\\`\\`bash\n# Spawn coder agent\nnpx claude-flow agent spawn --type coder\n\n# With custom name\nnpx claude-flow agent spawn --type researcher --name \"API Expert\"\n\n# With specific skills\nnpx claude-flow agent spawn --type coder --skills \"python,fastapi,testing\"\n\\`\\`\\`\n`,\n 'task-orchestrate': `# task-orchestrate\n\nOrchestrate complex tasks across the swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow task orchestrate [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task description\n- \\`--strategy <type>\\` - Orchestration strategy\n- \\`--priority <level>\\` - Task priority (low, medium, high, critical)\n\n## Examples\n\\`\\`\\`bash\n# Orchestrate development task\nnpx claude-flow task orchestrate --task \"Implement user authentication\"\n\n# High priority task\nnpx claude-flow task orchestrate --task \"Fix production bug\" --priority critical\n\n# With specific strategy\nnpx claude-flow task orchestrate --task \"Refactor codebase\" --strategy parallel\n\\`\\`\\`\n`,\n },\n github: {\n 'github-swarm': `# github-swarm\n\nCreate a specialized swarm for GitHub repository management.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github swarm [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Target repository\n- \\`--agents <n>\\` - Number of specialized agents\n- \\`--focus <area>\\` - Focus area (maintenance, features, security)\n\n## Examples\n\\`\\`\\`bash\n# Create GitHub swarm\nnpx claude-flow github swarm --repository myorg/myrepo\n\n# With specific focus\nnpx claude-flow github swarm --repository myorg/myrepo --focus security\n\n# Custom agent count\nnpx claude-flow github swarm --repository myorg/myrepo --agents 6\n\\`\\`\\`\n`,\n 'repo-analyze': `# repo-analyze\n\nDeep analysis of GitHub repository with AI insights.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github repo-analyze [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Repository to analyze\n- \\`--deep\\` - Enable deep analysis\n- \\`--include <areas>\\` - Include specific areas (issues, prs, code, commits)\n\n## Examples\n\\`\\`\\`bash\n# Basic analysis\nnpx claude-flow github repo-analyze --repository myorg/myrepo\n\n# Deep analysis\nnpx claude-flow github repo-analyze --repository myorg/myrepo --deep\n\n# Specific areas\nnpx claude-flow github repo-analyze --repository myorg/myrepo --include issues,prs\n\\`\\`\\`\n`,\n 'pr-enhance': `# pr-enhance\n\nAI-powered pull request enhancements.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github pr-enhance [options]\n\\`\\`\\`\n\n## Options\n- \\`--pr-number <n>\\` - Pull request number\n- \\`--add-tests\\` - Add missing tests\n- \\`--improve-docs\\` - Improve documentation\n- \\`--check-security\\` - Security review\n\n## Examples\n\\`\\`\\`bash\n# Enhance PR\nnpx claude-flow github pr-enhance --pr-number 123\n\n# Add tests\nnpx claude-flow github pr-enhance --pr-number 123 --add-tests\n\n# Full enhancement\nnpx claude-flow github pr-enhance --pr-number 123 --add-tests --improve-docs\n\\`\\`\\`\n`,\n 'issue-triage': `# issue-triage\n\nIntelligent issue classification and triage.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github issue-triage [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Target repository\n- \\`--auto-label\\` - Automatically apply labels\n- \\`--assign\\` - Auto-assign to team members\n\n## Examples\n\\`\\`\\`bash\n# Triage issues\nnpx claude-flow github issue-triage --repository myorg/myrepo\n\n# With auto-labeling\nnpx claude-flow github issue-triage --repository myorg/myrepo --auto-label\n\n# Full automation\nnpx claude-flow github issue-triage --repository myorg/myrepo --auto-label --assign\n\\`\\`\\`\n`,\n 'code-review': `# code-review\n\nAutomated code review with swarm intelligence.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github code-review [options]\n\\`\\`\\`\n\n## Options\n- \\`--pr-number <n>\\` - Pull request to review\n- \\`--focus <areas>\\` - Review focus (security, performance, style)\n- \\`--suggest-fixes\\` - Suggest code fixes\n\n## Examples\n\\`\\`\\`bash\n# Review PR\nnpx claude-flow github code-review --pr-number 456\n\n# Security focus\nnpx claude-flow github code-review --pr-number 456 --focus security\n\n# With fix suggestions\nnpx claude-flow github code-review --pr-number 456 --suggest-fixes\n\\`\\`\\`\n`,\n },\n hooks: {\n 'pre-task': `# pre-task\n\nHook executed before task execution.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook pre-task [options]\n\\`\\`\\`\n\n## Options\n- \\`--description <text>\\` - Task description\n- \\`--auto-spawn-agents\\` - Automatically spawn required agents\n- \\`--load-context\\` - Load previous context\n\n## Examples\n\\`\\`\\`bash\n# Basic pre-task hook\nnpx claude-flow hook pre-task --description \"Building API endpoints\"\n\n# With auto-spawn\nnpx claude-flow hook pre-task --description \"Complex refactoring\" --auto-spawn-agents\n\n# Load context\nnpx claude-flow hook pre-task --description \"Continue feature\" --load-context\n\\`\\`\\`\n`,\n 'post-task': `# post-task\n\nHook executed after task completion.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook post-task [options]\n\\`\\`\\`\n\n## Options\n- \\`--task-id <id>\\` - Task identifier\n- \\`--analyze-performance\\` - Analyze task performance\n- \\`--update-memory\\` - Update swarm memory\n\n## Examples\n\\`\\`\\`bash\n# Basic post-task\nnpx claude-flow hook post-task --task-id task-123\n\n# With performance analysis\nnpx claude-flow hook post-task --task-id task-123 --analyze-performance\n\n# Update memory\nnpx claude-flow hook post-task --task-id task-123 --update-memory\n\\`\\`\\`\n`,\n 'pre-edit': `# pre-edit\n\nHook executed before file edits.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook pre-edit [options]\n\\`\\`\\`\n\n## Options\n- \\`--file <path>\\` - File to be edited\n- \\`--validate-syntax\\` - Validate syntax before edit\n- \\`--backup\\` - Create backup\n\n## Examples\n\\`\\`\\`bash\n# Pre-edit hook\nnpx claude-flow hook pre-edit --file src/api.js\n\n# With validation\nnpx claude-flow hook pre-edit --file src/api.js --validate-syntax\n\n# Create backup\nnpx claude-flow hook pre-edit --file src/api.js --backup\n\\`\\`\\`\n`,\n 'post-edit': `# post-edit\n\nHook executed after file edits.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook post-edit [options]\n\\`\\`\\`\n\n## Options\n- \\`--file <path>\\` - Edited file\n- \\`--memory-key <key>\\` - Memory storage key\n- \\`--format\\` - Auto-format code\n\n## Examples\n\\`\\`\\`bash\n# Post-edit hook\nnpx claude-flow hook post-edit --file src/api.js\n\n# Store in memory\nnpx claude-flow hook post-edit --file src/api.js --memory-key \"api-changes\"\n\n# With formatting\nnpx claude-flow hook post-edit --file src/api.js --format\n\\`\\`\\`\n`,\n 'session-end': `# session-end\n\nHook executed at session end.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook session-end [options]\n\\`\\`\\`\n\n## Options\n- \\`--export-metrics\\` - Export session metrics\n- \\`--generate-summary\\` - Generate session summary\n- \\`--persist-state\\` - Save session state\n\n## Examples\n\\`\\`\\`bash\n# End session\nnpx claude-flow hook session-end\n\n# Export metrics\nnpx claude-flow hook session-end --export-metrics\n\n# Full closure\nnpx claude-flow hook session-end --export-metrics --generate-summary --persist-state\n\\`\\`\\`\n`,\n },\n memory: {\n 'memory-usage': `# memory-usage\n\nManage persistent memory storage.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory usage [options]\n\\`\\`\\`\n\n## Options\n- \\`--action <type>\\` - Action (store, retrieve, list, clear)\n- \\`--key <key>\\` - Memory key\n- \\`--value <data>\\` - Data to store (JSON)\n\n## Examples\n\\`\\`\\`bash\n# Store memory\nnpx claude-flow memory usage --action store --key \"project-config\" --value '{\"api\": \"v2\"}'\n\n# Retrieve memory\nnpx claude-flow memory usage --action retrieve --key \"project-config\"\n\n# List all keys\nnpx claude-flow memory usage --action list\n\\`\\`\\`\n`,\n 'memory-persist': `# memory-persist\n\nPersist memory across sessions.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory persist [options]\n\\`\\`\\`\n\n## Options\n- \\`--export <file>\\` - Export to file\n- \\`--import <file>\\` - Import from file\n- \\`--compress\\` - Compress memory data\n\n## Examples\n\\`\\`\\`bash\n# Export memory\nnpx claude-flow memory persist --export memory-backup.json\n\n# Import memory\nnpx claude-flow memory persist --import memory-backup.json\n\n# Compressed export\nnpx claude-flow memory persist --export memory.gz --compress\n\\`\\`\\`\n`,\n 'memory-search': `# memory-search\n\nSearch through stored memory.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory search [options]\n\\`\\`\\`\n\n## Options\n- \\`--query <text>\\` - Search query\n- \\`--pattern <regex>\\` - Pattern matching\n- \\`--limit <n>\\` - Result limit\n\n## Examples\n\\`\\`\\`bash\n# Search memory\nnpx claude-flow memory search --query \"authentication\"\n\n# Pattern search\nnpx claude-flow memory search --pattern \"api-.*\"\n\n# Limited results\nnpx claude-flow memory search --query \"config\" --limit 10\n\\`\\`\\`\n`,\n },\n monitoring: {\n 'swarm-monitor': `# swarm-monitor\n\nReal-time swarm monitoring.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm monitor [options]\n\\`\\`\\`\n\n## Options\n- \\`--interval <ms>\\` - Update interval\n- \\`--metrics\\` - Show detailed metrics\n- \\`--export\\` - Export monitoring data\n\n## Examples\n\\`\\`\\`bash\n# Start monitoring\nnpx claude-flow swarm monitor\n\n# Custom interval\nnpx claude-flow swarm monitor --interval 5000\n\n# With metrics\nnpx claude-flow swarm monitor --metrics\n\\`\\`\\`\n`,\n 'agent-metrics': `# agent-metrics\n\nView agent performance metrics.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow agent metrics [options]\n\\`\\`\\`\n\n## Options\n- \\`--agent-id <id>\\` - Specific agent\n- \\`--period <time>\\` - Time period\n- \\`--format <type>\\` - Output format\n\n## Examples\n\\`\\`\\`bash\n# All agents metrics\nnpx claude-flow agent metrics\n\n# Specific agent\nnpx claude-flow agent metrics --agent-id agent-001\n\n# Last hour\nnpx claude-flow agent metrics --period 1h\n\\`\\`\\`\n`,\n 'real-time-view': `# real-time-view\n\nReal-time view of swarm activity.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow monitoring real-time-view [options]\n\\`\\`\\`\n\n## Options\n- \\`--filter <type>\\` - Filter view\n- \\`--highlight <pattern>\\` - Highlight pattern\n- \\`--tail <n>\\` - Show last N events\n\n## Examples\n\\`\\`\\`bash\n# Start real-time view\nnpx claude-flow monitoring real-time-view\n\n# Filter errors\nnpx claude-flow monitoring real-time-view --filter errors\n\n# Highlight pattern\nnpx claude-flow monitoring real-time-view --highlight \"API\"\n\\`\\`\\`\n`,\n },\n optimization: {\n 'topology-optimize': `# topology-optimize\n\nOptimize swarm topology for current workload.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization topology-optimize [options]\n\\`\\`\\`\n\n## Options\n- \\`--analyze-first\\` - Analyze before optimizing\n- \\`--target <metric>\\` - Optimization target\n- \\`--apply\\` - Apply optimizations\n\n## Examples\n\\`\\`\\`bash\n# Analyze and suggest\nnpx claude-flow optimization topology-optimize --analyze-first\n\n# Optimize for speed\nnpx claude-flow optimization topology-optimize --target speed\n\n# Apply changes\nnpx claude-flow optimization topology-optimize --target efficiency --apply\n\\`\\`\\`\n`,\n 'parallel-execute': `# parallel-execute\n\nExecute tasks in parallel for maximum efficiency.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization parallel-execute [options]\n\\`\\`\\`\n\n## Options\n- \\`--tasks <file>\\` - Task list file\n- \\`--max-parallel <n>\\` - Maximum parallel tasks\n- \\`--strategy <type>\\` - Execution strategy\n\n## Examples\n\\`\\`\\`bash\n# Execute task list\nnpx claude-flow optimization parallel-execute --tasks tasks.json\n\n# Limit parallelism\nnpx claude-flow optimization parallel-execute --tasks tasks.json --max-parallel 5\n\n# Custom strategy\nnpx claude-flow optimization parallel-execute --strategy adaptive\n\\`\\`\\`\n`,\n 'cache-manage': `# cache-manage\n\nManage operation cache for performance.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization cache-manage [options]\n\\`\\`\\`\n\n## Options\n- \\`--action <type>\\` - Action (view, clear, optimize)\n- \\`--max-size <mb>\\` - Maximum cache size\n- \\`--ttl <seconds>\\` - Time to live\n\n## Examples\n\\`\\`\\`bash\n# View cache stats\nnpx claude-flow optimization cache-manage --action view\n\n# Clear cache\nnpx claude-flow optimization cache-manage --action clear\n\n# Set limits\nnpx claude-flow optimization cache-manage --max-size 100 --ttl 3600\n\\`\\`\\`\n`,\n },\n training: {\n 'neural-train': `# neural-train\n\nTrain neural patterns from operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training neural-train [options]\n\\`\\`\\`\n\n## Options\n- \\`--data <source>\\` - Training data source\n- \\`--model <name>\\` - Target model\n- \\`--epochs <n>\\` - Training epochs\n\n## Examples\n\\`\\`\\`bash\n# Train from recent ops\nnpx claude-flow training neural-train --data recent\n\n# Specific model\nnpx claude-flow training neural-train --model task-predictor\n\n# Custom epochs\nnpx claude-flow training neural-train --epochs 100\n\\`\\`\\`\n`,\n 'pattern-learn': `# pattern-learn\n\nLearn patterns from successful operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training pattern-learn [options]\n\\`\\`\\`\n\n## Options\n- \\`--source <type>\\` - Pattern source\n- \\`--threshold <score>\\` - Success threshold\n- \\`--save <name>\\` - Save pattern set\n\n## Examples\n\\`\\`\\`bash\n# Learn from all ops\nnpx claude-flow training pattern-learn\n\n# High success only\nnpx claude-flow training pattern-learn --threshold 0.9\n\n# Save patterns\nnpx claude-flow training pattern-learn --save optimal-patterns\n\\`\\`\\`\n`,\n 'model-update': `# model-update\n\nUpdate neural models with new data.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training model-update [options]\n\\`\\`\\`\n\n## Options\n- \\`--model <name>\\` - Model to update\n- \\`--incremental\\` - Incremental update\n- \\`--validate\\` - Validate after update\n\n## Examples\n\\`\\`\\`bash\n# Update all models\nnpx claude-flow training model-update\n\n# Specific model\nnpx claude-flow training model-update --model agent-selector\n\n# Incremental with validation\nnpx claude-flow training model-update --incremental --validate\n\\`\\`\\`\n`,\n },\n workflows: {\n 'workflow-create': `# workflow-create\n\nCreate reusable workflow templates.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow create [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow name\n- \\`--from-history\\` - Create from history\n- \\`--interactive\\` - Interactive creation\n\n## Examples\n\\`\\`\\`bash\n# Create workflow\nnpx claude-flow workflow create --name \"deploy-api\"\n\n# From history\nnpx claude-flow workflow create --name \"test-suite\" --from-history\n\n# Interactive mode\nnpx claude-flow workflow create --interactive\n\\`\\`\\`\n`,\n 'workflow-execute': `# workflow-execute\n\nExecute saved workflows.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow execute [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow name\n- \\`--params <json>\\` - Workflow parameters\n- \\`--dry-run\\` - Preview execution\n\n## Examples\n\\`\\`\\`bash\n# Execute workflow\nnpx claude-flow workflow execute --name \"deploy-api\"\n\n# With parameters\nnpx claude-flow workflow execute --name \"test-suite\" --params '{\"env\": \"staging\"}'\n\n# Dry run\nnpx claude-flow workflow execute --name \"deploy-api\" --dry-run\n\\`\\`\\`\n`,\n 'workflow-export': `# workflow-export\n\nExport workflows for sharing.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow export [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow to export\n- \\`--format <type>\\` - Export format\n- \\`--include-history\\` - Include execution history\n\n## Examples\n\\`\\`\\`bash\n# Export workflow\nnpx claude-flow workflow export --name \"deploy-api\"\n\n# As YAML\nnpx claude-flow workflow export --name \"test-suite\" --format yaml\n\n# With history\nnpx claude-flow workflow export --name \"deploy-api\" --include-history\n\\`\\`\\`\n`,\n },\n swarm: {\n 'swarm': `# swarm\n\nMain swarm orchestration command for Claude Flow.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm <objective> [options]\n\\`\\`\\`\n\n## Options\n- \\`--strategy <type>\\` - Execution strategy (research, development, analysis, testing)\n- \\`--mode <type>\\` - Coordination mode (centralized, distributed, hierarchical, mesh)\n- \\`--max-agents <n>\\` - Maximum number of agents (default: 5)\n- \\`--claude\\` - Open Claude Code CLI with swarm prompt\n- \\`--parallel\\` - Enable parallel execution\n\n## Examples\n\\`\\`\\`bash\n# Basic swarm\nnpx claude-flow swarm \"Build REST API\"\n\n# With strategy\nnpx claude-flow swarm \"Research AI patterns\" --strategy research\n\n# Open in Claude Code\nnpx claude-flow swarm \"Build API\" --claude\n\\`\\`\\`\n`,\n 'swarm-init': `# swarm-init\n\nInitialize a new swarm with specified topology.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm init [options]\n\\`\\`\\`\n\n## Options\n- \\`--topology <type>\\` - Swarm topology (mesh, hierarchical, ring, star)\n- \\`--max-agents <n>\\` - Maximum agents\n- \\`--strategy <type>\\` - Distribution strategy\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology mesh\nnpx claude-flow swarm init --topology hierarchical --max-agents 8\n\\`\\`\\`\n`,\n 'swarm-spawn': `# swarm-spawn\n\nSpawn agents in the swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--type <type>\\` - Agent type\n- \\`--count <n>\\` - Number to spawn\n- \\`--capabilities <list>\\` - Agent capabilities\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow swarm spawn --type coder --count 3\nnpx claude-flow swarm spawn --type researcher --capabilities \"web-search,analysis\"\n\\`\\`\\`\n`,\n },\n 'hive-mind': {\n 'hive-mind': `# hive-mind\n\nHive Mind collective intelligence system for advanced swarm coordination.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind [subcommand] [options]\n\\`\\`\\`\n\n## Subcommands\n- \\`init\\` - Initialize hive mind system\n- \\`spawn\\` - Spawn hive mind swarm\n- \\`status\\` - Show hive mind status\n- \\`resume\\` - Resume paused session\n- \\`stop\\` - Stop running session\n\n## Examples\n\\`\\`\\`bash\n# Initialize hive mind\nnpx claude-flow hive-mind init\n\n# Spawn swarm\nnpx claude-flow hive-mind spawn \"Build microservices\"\n\n# Check status\nnpx claude-flow hive-mind status\n\\`\\`\\`\n`,\n 'hive-mind-init': `# hive-mind-init\n\nInitialize the Hive Mind collective intelligence system.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind init [options]\n\\`\\`\\`\n\n## Options\n- \\`--force\\` - Force reinitialize\n- \\`--config <file>\\` - Configuration file\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow hive-mind init\nnpx claude-flow hive-mind init --force\n\\`\\`\\`\n`,\n 'hive-mind-spawn': `# hive-mind-spawn\n\nSpawn a Hive Mind swarm with queen-led coordination.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind spawn <objective> [options]\n\\`\\`\\`\n\n## Options\n- \\`--queen-type <type>\\` - Queen type (strategic, tactical, adaptive)\n- \\`--max-workers <n>\\` - Maximum worker agents\n- \\`--consensus <type>\\` - Consensus algorithm\n- \\`--claude\\` - Generate Claude Code spawn commands\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow hive-mind spawn \"Build API\"\nnpx claude-flow hive-mind spawn \"Research patterns\" --queen-type adaptive\nnpx claude-flow hive-mind spawn \"Build service\" --claude\n\\`\\`\\`\n`,\n },\n agents: {\n 'agent-types': `# agent-types\n\nComplete guide to all 54 available agent types in Claude Flow.\n\n## Core Development Agents\n- \\`coder\\` - Implementation specialist\n- \\`reviewer\\` - Code quality assurance\n- \\`tester\\` - Test creation and validation\n- \\`planner\\` - Strategic planning\n- \\`researcher\\` - Information gathering\n\n## Swarm Coordination Agents\n- \\`hierarchical-coordinator\\` - Queen-led coordination\n- \\`mesh-coordinator\\` - Peer-to-peer networks\n- \\`adaptive-coordinator\\` - Dynamic topology\n\n## Specialized Agents\n- \\`backend-dev\\` - API development\n- \\`mobile-dev\\` - React Native development\n- \\`ml-developer\\` - Machine learning\n- \\`system-architect\\` - High-level design\n\nFor full list and details:\n\\`\\`\\`bash\nnpx claude-flow agents list\n\\`\\`\\`\n`,\n 'agent-capabilities': `# agent-capabilities\n\nMatrix of agent capabilities and their specializations.\n\n## Capability Matrix\n\n| Agent Type | Primary Skills | Best For |\n|------------|---------------|----------|\n| coder | Implementation, debugging | Feature development |\n| researcher | Analysis, synthesis | Requirements gathering |\n| tester | Testing, validation | Quality assurance |\n| architect | Design, planning | System architecture |\n\n## Querying Capabilities\n\\`\\`\\`bash\n# List all capabilities\nnpx claude-flow agents capabilities\n\n# For specific agent\nnpx claude-flow agents capabilities --type coder\n\\`\\`\\`\n`,\n 'agent-coordination': `# agent-coordination\n\nCoordination patterns for multi-agent collaboration.\n\n## Coordination Patterns\n\n### Hierarchical\nQueen-led with worker specialization\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology hierarchical\n\\`\\`\\`\n\n### Mesh\nPeer-to-peer collaboration\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology mesh\n\\`\\`\\`\n\n### Adaptive\nDynamic topology based on workload\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology adaptive\n\\`\\`\\`\n\n## Best Practices\n- Use hierarchical for complex projects\n- Use mesh for research tasks\n- Use adaptive for unknown workloads\n`,\n 'agent-spawning': `# agent-spawning\n\nGuide to spawning agents with Claude Code's Task tool.\n\n## Using Claude Code's Task Tool\n\n**CRITICAL**: Always use Claude Code's Task tool for actual agent execution:\n\n\\`\\`\\`javascript\n// Spawn ALL agents in ONE message\nTask(\"Researcher\", \"Analyze requirements...\", \"researcher\")\nTask(\"Coder\", \"Implement features...\", \"coder\")\nTask(\"Tester\", \"Create tests...\", \"tester\")\n\\`\\`\\`\n\n## MCP Coordination Setup (Optional)\n\nMCP tools are ONLY for coordination:\n\\`\\`\\`javascript\nmcp__claude-flow__swarm_init { topology: \"mesh\" }\nmcp__claude-flow__agent_spawn { type: \"researcher\" }\n\\`\\`\\`\n\n## Best Practices\n1. Always spawn agents concurrently\n2. Use Task tool for execution\n3. MCP only for coordination\n4. Batch all operations\n`,\n },\n };\n\n return (\n docs[category]?.[command] ||\n `# ${command}\\n\\nCommand documentation for ${command} in category ${category}.\\n\\nUsage:\\n\\`\\`\\`bash\\nnpx claude-flow ${category} ${command} [options]\\n\\`\\`\\`\\n`\n );\n}\n\n// Command categories and their commands\nexport const COMMAND_STRUCTURE = {\n analysis: ['bottleneck-detect', 'token-usage', 'performance-report'],\n automation: ['auto-agent', 'smart-spawn', 'workflow-select'],\n coordination: ['swarm-init', 'agent-spawn', 'task-orchestrate'],\n github: ['github-swarm', 'repo-analyze', 'pr-enhance', 'issue-triage', 'code-review'],\n hooks: ['pre-task', 'post-task', 'pre-edit', 'post-edit', 'session-end'],\n memory: ['memory-usage', 'memory-persist', 'memory-search'],\n monitoring: ['swarm-monitor', 'agent-metrics', 'real-time-view'],\n optimization: ['topology-optimize', 'parallel-execute', 'cache-manage'],\n training: ['neural-train', 'pattern-learn', 'model-update'],\n workflows: ['workflow-create', 'workflow-execute', 'workflow-export'],\n swarm: ['swarm', 'swarm-init', 'swarm-spawn', 'swarm-status', 'swarm-monitor', 'swarm-strategies', 'swarm-modes', 'swarm-background', 'swarm-analysis'],\n 'hive-mind': ['hive-mind', 'hive-mind-init', 'hive-mind-spawn', 'hive-mind-status', 'hive-mind-resume', 'hive-mind-stop', 'hive-mind-sessions', 'hive-mind-consensus', 'hive-mind-memory', 'hive-mind-metrics', 'hive-mind-wizard'],\n agents: ['agent-types', 'agent-capabilities', 'agent-coordination', 'agent-spawning'],\n};\n\n// Helper script content\nexport function createHelperScript(name) {\n const scripts = {\n 'setup-mcp.sh': `#!/bin/bash\n# Setup MCP server for Claude Flow\n\necho \"🚀 Setting up Claude Flow MCP server...\"\n\n# Check if claude command exists\nif ! command -v claude &> /dev/null; then\n echo \"❌ Error: Claude Code CLI not found\"\n echo \"Please install Claude Code first\"\n exit 1\nfi\n\n# Add MCP server\necho \"đŸ“Ļ Adding Claude Flow MCP server...\"\nclaude mcp add claude-flow npx claude-flow mcp start\n\necho \"✅ MCP server setup complete!\"\necho \"đŸŽ¯ You can now use mcp__claude-flow__ tools in Claude Code\"\n`,\n 'quick-start.sh': `#!/bin/bash\n# Quick start guide for Claude Flow\n\necho \"🚀 Claude Flow Quick Start\"\necho \"==========================\"\necho \"\"\necho \"1. Initialize a swarm:\"\necho \" npx claude-flow swarm init --topology hierarchical\"\necho \"\"\necho \"2. Spawn agents:\"\necho \" npx claude-flow agent spawn --type coder --name \\\"API Developer\\\"\"\necho \"\"\necho \"3. Orchestrate tasks:\"\necho \" npx claude-flow task orchestrate --task \\\"Build REST API\\\"\"\necho \"\"\necho \"4. Monitor progress:\"\necho \" npx claude-flow swarm monitor\"\necho \"\"\necho \"📚 For more examples, see .claude/commands/\"\n`,\n 'github-setup.sh': `#!/bin/bash\n# Setup GitHub integration for Claude Flow\n\necho \"🔗 Setting up GitHub integration...\"\n\n# Check for gh CLI\nif ! command -v gh &> /dev/null; then\n echo \"âš ī¸ GitHub CLI (gh) not found\"\n echo \"Install from: https://cli.github.com/\"\n echo \"Continuing without GitHub features...\"\nelse\n echo \"✅ GitHub CLI found\"\n \n # Check auth status\n if gh auth status &> /dev/null; then\n echo \"✅ GitHub authentication active\"\n else\n echo \"âš ī¸ Not authenticated with GitHub\"\n echo \"Run: gh auth login\"\n fi\nfi\n\necho \"\"\necho \"đŸ“Ļ GitHub swarm commands available:\"\necho \" - npx claude-flow github swarm\"\necho \" - npx claude-flow repo analyze\"\necho \" - npx claude-flow pr enhance\"\necho \" - npx claude-flow issue triage\"\n`,\n 'github-safe.js': `#!/usr/bin/env node\n\n/**\n * Safe GitHub CLI Helper\n * Prevents timeout issues when using gh commands with special characters\n * \n * Usage:\n * ./github-safe.js issue comment 123 \"Message with \\`backticks\\`\"\n * ./github-safe.js pr create --title \"Title\" --body \"Complex body\"\n */\n\nimport { execSync } from 'child_process';\nimport { writeFileSync, unlinkSync } from 'fs';\nimport { tmpdir } from 'os';\nimport { join } from 'path';\nimport { randomBytes } from 'crypto';\n\nconst args = process.argv.slice(2);\n\nif (args.length < 2) {\n console.log(\\`\nSafe GitHub CLI Helper\n\nUsage:\n ./github-safe.js issue comment <number> <body>\n ./github-safe.js pr comment <number> <body>\n ./github-safe.js issue create --title <title> --body <body>\n ./github-safe.js pr create --title <title> --body <body>\n\nThis helper prevents timeout issues with special characters like:\n- Backticks in code examples\n- Command substitution \\\\$(...)\n- Directory paths\n- Special shell characters\n\\`);\n process.exit(1);\n}\n\nconst [command, subcommand, ...restArgs] = args;\n\n// Handle commands that need body content\nif ((command === 'issue' || command === 'pr') && \n (subcommand === 'comment' || subcommand === 'create')) {\n \n let bodyIndex = -1;\n let body = '';\n \n if (subcommand === 'comment' && restArgs.length >= 2) {\n // Simple format: github-safe.js issue comment 123 \"body\"\n body = restArgs[1];\n bodyIndex = 1;\n } else {\n // Flag format: --body \"content\" \n bodyIndex = restArgs.indexOf('--body');\n if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {\n body = restArgs[bodyIndex + 1];\n }\n }\n \n if (body) {\n // Use temporary file for body content\n const tmpFile = join(tmpdir(), \\`gh-body-\\${randomBytes(8).toString('hex')}.tmp\\`);\n \n try {\n writeFileSync(tmpFile, body, 'utf8');\n \n // Build new command with --body-file\n const newArgs = [...restArgs];\n if (subcommand === 'comment' && bodyIndex === 1) {\n // Replace body with --body-file\n newArgs[1] = '--body-file';\n newArgs.push(tmpFile);\n } else if (bodyIndex !== -1) {\n // Replace --body with --body-file\n newArgs[bodyIndex] = '--body-file';\n newArgs[bodyIndex + 1] = tmpFile;\n }\n \n // Execute safely\n const ghCommand = \\`gh \\${command} \\${subcommand} \\${newArgs.join(' ')}\\`;\n console.log(\\`Executing: \\${ghCommand}\\`);\n \n const result = execSync(ghCommand, { \n stdio: 'inherit',\n timeout: 30000 // 30 second timeout\n });\n \n } catch (error) {\n console.error('Error:', error.message);\n process.exit(1);\n } finally {\n // Clean up\n try {\n unlinkSync(tmpFile);\n } catch (e) {\n // Ignore cleanup errors\n }\n }\n } else {\n // No body content, execute normally\n execSync(\\`gh \\${args.join(' ')}\\`, { stdio: 'inherit' });\n }\n} else {\n // Other commands, execute normally\n execSync(\\`gh \\${args.join(' ')}\\`, { stdio: 'inherit' });\n}\n`,\n 'checkpoint-hooks.sh': `#!/bin/bash\n# Checkpoint hook functions for Claude settings.json\n\n# Function to handle pre-edit checkpoints\npre_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ]; then\n local checkpoint_branch=\"checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create checkpoint\n git add -A\n git stash push -m \"Pre-edit checkpoint for $file\" >/dev/null 2>&1\n git branch \"$checkpoint_branch\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"branch\": \"$checkpoint_branch\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"pre-edit\",\n \"original_branch\": \"$current_branch\"\n}\nEOF\n \n # Restore working directory\n git stash pop --quiet >/dev/null 2>&1 || true\n \n echo \"✅ Created checkpoint: $checkpoint_branch for $file\"\n fi\n}\n\n# Function to handle post-edit checkpoints\npost_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ] && [ -f \"$file\" ]; then\n # Check if file was modified - first check if file is tracked\n if ! git ls-files --error-unmatch \"$file\" >/dev/null 2>&1; then\n # File is not tracked, add it first\n git add \"$file\"\n fi\n \n # Now check if there are changes\n if git diff --cached --quiet \"$file\" 2>/dev/null && git diff --quiet \"$file\" 2>/dev/null; then\n echo \"â„šī¸ No changes to checkpoint for $file\"\n else\n local tag_name=\"checkpoint-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create commit\n git add \"$file\"\n if git commit -m \"🔖 Checkpoint: Edit $file\n\nAutomatic checkpoint created by Claude\n- File: $file\n- Branch: $current_branch\n- Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\n\n[Auto-checkpoint]\" --quiet; then\n # Create tag only if commit succeeded\n git tag -a \"$tag_name\" -m \"Checkpoint after editing $file\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n local diff_stats=$(git diff HEAD~1 --stat | tr '\\\\n' ' ' | sed 's/\"/\\\\\\\\\"/g')\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"tag\": \"$tag_name\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"post-edit\",\n \"branch\": \"$current_branch\",\n \"diff_summary\": \"$diff_stats\"\n}\nEOF\n \n echo \"✅ Created checkpoint: $tag_name for $file\"\n else\n echo \"â„šī¸ No commit created (no changes or commit failed)\"\n fi\n fi\n fi\n}\n\n# Function to handle task checkpoints\ntask_checkpoint() {\n local user_prompt=\"$1\"\n local task=$(echo \"$user_prompt\" | head -c 100 | tr '\\\\n' ' ')\n \n if [ -n \"$task\" ]; then\n local checkpoint_name=\"task-$(date +%Y%m%d-%H%M%S)\"\n \n # Commit current state\n git add -A\n git commit -m \"🔖 Task checkpoint: $task...\" --quiet || true\n \n # No GitHub release in standard version\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/task-$(date +%s).json\" <<EOF\n{\n \"checkpoint\": \"$checkpoint_name\",\n \"task\": \"$task\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"commit\": \"$(git rev-parse HEAD)\"\n}\nEOF\n \n echo \"✅ Created task checkpoint: $checkpoint_name\"\n fi\n}\n\n# Function to handle session end\nsession_end_checkpoint() {\n local session_id=\"session-$(date +%Y%m%d-%H%M%S)\"\n local summary_file=\".claude/checkpoints/summary-$session_id.md\"\n \n mkdir -p .claude/checkpoints\n \n # Create summary\n cat > \"$summary_file\" <<EOF\n# Session Summary - $(date +'%Y-%m-%d %H:%M:%S')\n\n## Checkpoints Created\n$(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \\\\; | sort)\n\n## Files Modified\n$(git diff --name-only $(git log --format=%H -n 1 --before=\"1 hour ago\" 2>/dev/null) 2>/dev/null || echo \"No files tracked\")\n\n## Recent Commits\n$(git log --oneline -10 --grep=\"Checkpoint\" || echo \"No checkpoint commits\")\n\n## Rollback Instructions\nTo rollback to a specific checkpoint:\n\\\\\\`\\\\\\`\\\\\\`bash\n# List all checkpoints\ngit tag -l 'checkpoint-*' | sort -r\n\n# Rollback to a checkpoint\ngit checkout checkpoint-YYYYMMDD-HHMMSS\n\n# Or reset to a checkpoint (destructive)\ngit reset --hard checkpoint-YYYYMMDD-HHMMSS\n\\\\\\`\\\\\\`\\\\\\`\nEOF\n \n # Create final checkpoint\n git add -A\n git commit -m \"🏁 Session end checkpoint: $session_id\" --quiet || true\n git tag -a \"session-end-$session_id\" -m \"End of Claude session\"\n \n echo \"✅ Session summary saved to: $summary_file\"\n echo \"📌 Final checkpoint: session-end-$session_id\"\n}\n\n# Main entry point\ncase \"$1\" in\n pre-edit)\n pre_edit_checkpoint \"$2\"\n ;;\n post-edit)\n post_edit_checkpoint \"$2\"\n ;;\n task)\n task_checkpoint \"$2\"\n ;;\n session-end)\n session_end_checkpoint\n ;;\n *)\n echo \"Usage: $0 {pre-edit|post-edit|task|session-end} [input]\"\n exit 1\n ;;\nesac\n`,\n 'checkpoint-manager.sh': `#!/bin/bash\n# Claude Checkpoint Manager\n# Provides easy rollback and management of Claude Code checkpoints\n\nset -e\n\n# Colors\nRED='\\\\033[0;31m'\nGREEN='\\\\033[0;32m'\nYELLOW='\\\\033[1;33m'\nBLUE='\\\\033[0;34m'\nNC='\\\\033[0m' # No Color\n\n# Configuration\nCHECKPOINT_DIR=\".claude/checkpoints\"\nBACKUP_DIR=\".claude/backups\"\n\n# Help function\nshow_help() {\n cat << EOF\nClaude Checkpoint Manager\n========================\n\nUsage: $0 <command> [options]\n\nCommands:\n list List all checkpoints\n show <id> Show details of a specific checkpoint\n rollback <id> Rollback to a specific checkpoint\n diff <id> Show diff since checkpoint\n clean Clean old checkpoints (older than 7 days)\n summary Show session summary\n \nOptions:\n --hard For rollback: use git reset --hard (destructive)\n --soft For rollback: use git reset --soft (default)\n --branch For rollback: create new branch from checkpoint\n\nExamples:\n $0 list\n $0 show checkpoint-20240130-143022\n $0 rollback checkpoint-20240130-143022 --branch\n $0 diff session-end-session-20240130-150000\nEOF\n}\n\n# List all checkpoints\nfunction list_checkpoints() {\n echo -e \"\\${BLUE}📋 Available Checkpoints:\\${NC}\"\n echo \"\"\n \n # List checkpoint tags\n echo -e \"\\${YELLOW}Git Tags:\\${NC}\"\n local tags=$(git tag -l 'checkpoint-*' -l 'session-end-*' -l 'task-*' --sort=-creatordate | head -20)\n if [ -n \"$tags\" ]; then\n echo \"$tags\"\n else\n echo \"No checkpoint tags found\"\n fi\n \n echo \"\"\n \n # List checkpoint branches\n echo -e \"\\${YELLOW}Checkpoint Branches:\\${NC}\"\n local branches=$(git branch -a | grep \"checkpoint/\" | sed 's/^[ *]*//')\n if [ -n \"$branches\" ]; then\n echo \"$branches\"\n else\n echo \"No checkpoint branches found\"\n fi\n \n echo \"\"\n \n # List checkpoint files\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n echo -e \"\\${YELLOW}Recent Checkpoint Files:\\${NC}\"\n find \"$CHECKPOINT_DIR\" -name \"*.json\" -type f -printf \"%T@ %p\\\\n\" | \\\\\n sort -rn | head -10 | cut -d' ' -f2- | xargs -I {} basename {}\n fi\n}\n\n# Show checkpoint details\nfunction show_checkpoint() {\n local checkpoint_id=\"$1\"\n \n echo -e \"\\${BLUE}📍 Checkpoint Details: $checkpoint_id\\${NC}\"\n echo \"\"\n \n # Check if it's a tag\n if git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${YELLOW}Type:\\${NC} Git Tag\"\n echo -e \"\\${YELLOW}Commit:\\${NC} $(git rev-list -n 1 \"$checkpoint_id\")\"\n echo -e \"\\${YELLOW}Date:\\${NC} $(git log -1 --format=%ai \"$checkpoint_id\")\"\n echo -e \"\\${YELLOW}Message:\\${NC}\"\n git log -1 --format=%B \"$checkpoint_id\" | sed 's/^/ /'\n echo \"\"\n echo -e \"\\${YELLOW}Files changed:\\${NC}\"\n git diff-tree --no-commit-id --name-status -r \"$checkpoint_id\" | sed 's/^/ /'\n # Check if it's a branch\n elif git branch -a | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${YELLOW}Type:\\${NC} Git Branch\"\n echo -e \"\\${YELLOW}Latest commit:\\${NC}\"\n git log -1 --oneline \"$checkpoint_id\"\n else\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n}\n\n# Rollback to checkpoint\nfunction rollback_checkpoint() {\n local checkpoint_id=\"$1\"\n local mode=\"$2\"\n \n echo -e \"\\${YELLOW}🔄 Rolling back to checkpoint: $checkpoint_id\\${NC}\"\n echo \"\"\n \n # Verify checkpoint exists\n if ! git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\" && \\\\\n ! git branch -a | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n \n # Create backup before rollback\n local backup_name=\"backup-$(date +%Y%m%d-%H%M%S)\"\n echo \"Creating backup: $backup_name\"\n git tag \"$backup_name\" -m \"Backup before rollback to $checkpoint_id\"\n \n case \"$mode\" in\n \"--hard\")\n echo -e \"\\${RED}âš ī¸ Performing hard reset (destructive)\\${NC}\"\n git reset --hard \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Rolled back to $checkpoint_id (hard reset)\\${NC}\"\n ;;\n \"--branch\")\n local branch_name=\"rollback-$checkpoint_id-$(date +%Y%m%d-%H%M%S)\"\n echo \"Creating new branch: $branch_name\"\n git checkout -b \"$branch_name\" \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Created branch $branch_name from $checkpoint_id\\${NC}\"\n ;;\n \"--stash\"|*)\n echo \"Stashing current changes...\"\n git stash push -m \"Stash before rollback to $checkpoint_id\"\n git reset --soft \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Rolled back to $checkpoint_id (soft reset)\\${NC}\"\n echo \"Your changes are stashed. Use 'git stash pop' to restore them.\"\n ;;\n esac\n}\n\n# Show diff since checkpoint\nfunction diff_checkpoint() {\n local checkpoint_id=\"$1\"\n \n echo -e \"\\${BLUE}📊 Changes since checkpoint: $checkpoint_id\\${NC}\"\n echo \"\"\n \n if git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\"; then\n git diff \"$checkpoint_id\"\n elif git branch -a | grep -q \"$checkpoint_id\"; then\n git diff \"$checkpoint_id\"\n else\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n}\n\n# Clean old checkpoints\nfunction clean_checkpoints() {\n local days=\\${1:-7}\n \n echo -e \"\\${YELLOW}🧹 Cleaning checkpoints older than $days days...\\${NC}\"\n echo \"\"\n \n # Clean old checkpoint files\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n find \"$CHECKPOINT_DIR\" -name \"*.json\" -type f -mtime +$days -delete\n echo \"✅ Cleaned old checkpoint files\"\n fi\n \n # List old tags (but don't delete automatically)\n echo \"\"\n echo \"Old checkpoint tags (manual deletion required):\"\n git tag -l 'checkpoint-*' --sort=-creatordate | tail -n +50 || echo \"No old tags found\"\n}\n\n# Show session summary\nfunction show_summary() {\n echo -e \"\\${BLUE}📊 Session Summary\\${NC}\"\n echo \"\"\n \n # Find most recent session summary\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n local latest_summary=$(find \"$CHECKPOINT_DIR\" -name \"summary-*.md\" -type f -printf \"%T@ %p\\\\n\" | \\\\\n sort -rn | head -1 | cut -d' ' -f2-)\n \n if [ -n \"$latest_summary\" ]; then\n echo -e \"\\${YELLOW}Latest session summary:\\${NC}\"\n cat \"$latest_summary\"\n else\n echo \"No session summaries found\"\n fi\n fi\n}\n\n# Main command handling\ncase \"$1\" in\n list)\n list_checkpoints\n ;;\n show)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n show_checkpoint \"$2\"\n ;;\n rollback)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n rollback_checkpoint \"$2\" \"$3\"\n ;;\n diff)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n diff_checkpoint \"$2\"\n ;;\n clean)\n clean_checkpoints \"$2\"\n ;;\n summary)\n show_summary\n ;;\n help|--help|-h)\n show_help\n ;;\n *)\n echo -e \"\\${RED}Error: Unknown command: $1\\${NC}\"\n echo \"\"\n show_help\n exit 1\n ;;\nesac\n`,\n 'standard-checkpoint-hooks.sh': `#!/bin/bash\n# Standard checkpoint hook functions for Claude settings.json (without GitHub features)\n\n# Function to handle pre-edit checkpoints\npre_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ]; then\n local checkpoint_branch=\"checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create checkpoint\n git add -A\n git stash push -m \"Pre-edit checkpoint for $file\" >/dev/null 2>&1\n git branch \"$checkpoint_branch\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"branch\": \"$checkpoint_branch\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"pre-edit\",\n \"original_branch\": \"$current_branch\"\n}\nEOF\n \n # Restore working directory\n git stash pop --quiet >/dev/null 2>&1 || true\n \n echo \"✅ Created checkpoint: $checkpoint_branch for $file\"\n fi\n}\n\n# Function to handle post-edit checkpoints\npost_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ] && [ -f \"$file\" ]; then\n # Check if file was modified - first check if file is tracked\n if ! git ls-files --error-unmatch \"$file\" >/dev/null 2>&1; then\n # File is not tracked, add it first\n git add \"$file\"\n fi\n \n # Now check if there are changes\n if git diff --cached --quiet \"$file\" 2>/dev/null && git diff --quiet \"$file\" 2>/dev/null; then\n echo \"â„šī¸ No changes to checkpoint for $file\"\n else\n local tag_name=\"checkpoint-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create commit\n git add \"$file\"\n if git commit -m \"🔖 Checkpoint: Edit $file\n\nAutomatic checkpoint created by Claude\n- File: $file\n- Branch: $current_branch\n- Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\n\n[Auto-checkpoint]\" --quiet; then\n # Create tag only if commit succeeded\n git tag -a \"$tag_name\" -m \"Checkpoint after editing $file\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n local diff_stats=$(git diff HEAD~1 --stat | tr '\\\\n' ' ' | sed 's/\"/\\\\\"/g')\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"tag\": \"$tag_name\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"post-edit\",\n \"branch\": \"$current_branch\",\n \"diff_summary\": \"$diff_stats\"\n}\nEOF\n \n echo \"✅ Created checkpoint: $tag_name for $file\"\n else\n echo \"â„šī¸ No commit created (no changes or commit failed)\"\n fi\n fi\n fi\n}\n\n# Function to handle task checkpoints\ntask_checkpoint() {\n local user_prompt=\"$1\"\n local task=$(echo \"$user_prompt\" | head -c 100 | tr '\\\\n' ' ')\n \n if [ -n \"$task\" ]; then\n local checkpoint_name=\"task-$(date +%Y%m%d-%H%M%S)\"\n \n # Commit current state\n git add -A\n git commit -m \"🔖 Task checkpoint: $task...\" --quiet || true\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/task-$(date +%s).json\" <<EOF\n{\n \"checkpoint\": \"$checkpoint_name\",\n \"task\": \"$task\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"commit\": \"$(git rev-parse HEAD)\"\n}\nEOF\n \n echo \"✅ Created task checkpoint: $checkpoint_name\"\n fi\n}\n\n# Function to handle session end\nsession_end_checkpoint() {\n local session_id=\"session-$(date +%Y%m%d-%H%M%S)\"\n local summary_file=\".claude/checkpoints/summary-$session_id.md\"\n \n mkdir -p .claude/checkpoints\n \n # Create summary\n cat > \"$summary_file\" <<EOF\n# Session Summary - $(date +'%Y-%m-%d %H:%M:%S')\n\n## Checkpoints Created\n$(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \\\\; | sort)\n\n## Files Modified\n$(git diff --name-only $(git log --format=%H -n 1 --before=\"1 hour ago\" 2>/dev/null) 2>/dev/null || echo \"No files tracked\")\n\n## Recent Commits\n$(git log --oneline -10 --grep=\"Checkpoint\" || echo \"No checkpoint commits\")\n\n## Rollback Instructions\nTo rollback to a specific checkpoint:\n\\\\\\`\\\\\\`\\\\\\`bash\n# List all checkpoints\ngit tag -l 'checkpoint-*' | sort -r\n\n# Rollback to a checkpoint\ngit checkout checkpoint-YYYYMMDD-HHMMSS\n\n# Or reset to a checkpoint (destructive)\ngit reset --hard checkpoint-YYYYMMDD-HHMMSS\n\\\\\\`\\\\\\`\\\\\\`\nEOF\n \n # Create final checkpoint\n git add -A\n git commit -m \"🏁 Session end checkpoint: $session_id\" --quiet || true\n git tag -a \"session-end-$session_id\" -m \"End of Claude session\"\n \n echo \"✅ Session summary saved to: $summary_file\"\n echo \"📌 Final checkpoint: session-end-$session_id\"\n}\n\n# Main entry point\ncase \"$1\" in\n pre-edit)\n pre_edit_checkpoint \"$2\"\n ;;\n post-edit)\n post_edit_checkpoint \"$2\"\n ;;\n task)\n task_checkpoint \"$2\"\n ;;\n session-end)\n session_end_checkpoint\n ;;\n *)\n echo \"Usage: $0 {pre-edit|post-edit|task|session-end} [input]\"\n exit 1\n ;;\nesac\n`,\n };\n\n return scripts[name] || '';\n}\n\n// Wrapper script fallbacks\nfunction createWrapperScriptFallback(type) {\n if (type === 'unix') {\n // Return the universal ES module compatible wrapper\n return `#!/usr/bin/env node\n\n/**\n * Claude Flow CLI - Universal Wrapper\n * Works in both CommonJS and ES Module projects\n */\n\n// Use dynamic import to work in both CommonJS and ES modules\n(async () => {\n const { spawn } = await import('child_process');\n const { resolve } = await import('path');\n const { fileURLToPath } = await import('url');\n \n try {\n // Try to use import.meta.url (ES modules)\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = resolve(__filename, '..');\n } catch {\n // Fallback for CommonJS\n }\n\n // Try multiple strategies to find claude-flow\n const strategies = [\n // 1. Local node_modules\n async () => {\n try {\n const localPath = resolve(process.cwd(), 'node_modules/.bin/claude-flow');\n const { existsSync } = await import('fs');\n if (existsSync(localPath)) {\n return spawn(localPath, process.argv.slice(2), { stdio: 'inherit' });\n }\n } catch {}\n },\n \n // 2. Parent node_modules (monorepo)\n async () => {\n try {\n const parentPath = resolve(process.cwd(), '../node_modules/.bin/claude-flow');\n const { existsSync } = await import('fs');\n if (existsSync(parentPath)) {\n return spawn(parentPath, process.argv.slice(2), { stdio: 'inherit' });\n }\n } catch {}\n },\n \n // 3. NPX with latest alpha version (prioritized over global)\n async () => {\n return spawn('npx', ['claude-flow@2.0.0-alpha.25', ...process.argv.slice(2)], { stdio: 'inherit' });\n }\n ];\n\n // Try each strategy\n for (const strategy of strategies) {\n try {\n const child = await strategy();\n if (child) {\n child.on('exit', (code) => process.exit(code || 0));\n child.on('error', (err) => {\n if (err.code !== 'ENOENT') {\n console.error('Error:', err);\n process.exit(1);\n }\n });\n return;\n }\n } catch {}\n }\n \n console.error('Could not find claude-flow. Please install it with: npm install claude-flow');\n process.exit(1);\n})();`;\n } else if (type === 'windows') {\n return `@echo off\nrem Claude Flow wrapper script for Windows\n\nrem Check if package.json exists in current directory\nif exist \"%~dp0package.json\" (\n rem Local development mode\n if exist \"%~dp0src\\\\cli\\\\simple-cli.js\" (\n node \"%~dp0src\\\\cli\\\\simple-cli.js\" %*\n ) else if exist \"%~dp0dist\\\\cli.js\" (\n node \"%~dp0dist\\\\cli.js\" %*\n ) else (\n echo Error: Could not find Claude Flow CLI files\n exit /b 1\n )\n) else (\n rem Production mode - use npx alpha\n npx claude-flow@alpha %*\n)`;\n } else if (type === 'powershell') {\n return `# Claude Flow wrapper script for PowerShell\n\n$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path\n\nif (Test-Path \"$scriptPath\\\\package.json\") {\n # Local development mode\n if (Test-Path \"$scriptPath\\\\src\\\\cli\\\\simple-cli.js\") {\n & node \"$scriptPath\\\\src\\\\cli\\\\simple-cli.js\" $args\n } elseif (Test-Path \"$scriptPath\\\\dist\\\\cli.js\") {\n & node \"$scriptPath\\\\dist\\\\cli.js\" $args\n } else {\n Write-Error \"Could not find Claude Flow CLI files\"\n exit 1\n }\n} else {\n # Production mode - use npx alpha\n & npx claude-flow@alpha $args\n}`;\n }\n return '';\n}\n\n// Fallback functions for when templates can't be loaded\nfunction createEnhancedClaudeMdFallback() {\n // Read from the actual template file we created\n try {\n return readFileSync(join(__dirname, 'CLAUDE.md'), 'utf8');\n } catch (error) {\n // If that fails, return a minimal version\n return `# Claude Code Configuration for Claude Flow\n\n## 🚀 IMPORTANT: Claude Flow AI-Driven Development\n\n### Claude Code Handles:\n- ✅ **ALL file operations** (Read, Write, Edit, MultiEdit)\n- ✅ **ALL code generation** and development tasks\n- ✅ **ALL bash commands** and system operations\n- ✅ **ALL actual implementation** work\n- ✅ **Project navigation** and code analysis\n\n### Claude Flow MCP Tools Handle:\n- 🧠 **Coordination only** - Orchestrating Claude Code's actions\n- 💾 **Memory management** - Persistent state across sessions\n- 🤖 **Neural features** - Cognitive patterns and learning\n- 📊 **Performance tracking** - Monitoring and metrics\n- 🐝 **Swarm orchestration** - Multi-agent coordination\n- 🔗 **GitHub integration** - Advanced repository management\n\n### âš ī¸ Key Principle:\n**MCP tools DO NOT create content or write code.** They coordinate and enhance Claude Code's native capabilities.\n\n## Quick Start\n\n1. Add MCP server: \\`claude mcp add claude-flow npx claude-flow mcp start\\`\n2. Initialize swarm: \\`mcp__claude-flow__swarm_init { topology: \"hierarchical\" }\\`\n3. Spawn agents: \\`mcp__claude-flow__agent_spawn { type: \"coder\" }\\`\n4. Orchestrate: \\`mcp__claude-flow__task_orchestrate { task: \"Build feature\" }\\`\n\nSee full documentation in \\`.claude/commands/\\`\n`;\n }\n}\n\nfunction createEnhancedSettingsJsonFallback() {\n return JSON.stringify(\n {\n env: {\n CLAUDE_FLOW_AUTO_COMMIT: 'false',\n CLAUDE_FLOW_AUTO_PUSH: 'false',\n CLAUDE_FLOW_HOOKS_ENABLED: 'true',\n CLAUDE_FLOW_TELEMETRY_ENABLED: 'true',\n CLAUDE_FLOW_REMOTE_EXECUTION: 'true',\n CLAUDE_FLOW_CHECKPOINTS_ENABLED: 'true',\n },\n permissions: {\n allow: [\n 'Bash(npx claude-flow:*)',\n 'Bash(npm run lint)',\n 'Bash(npm run test:*)',\n 'Bash(npm test:*)',\n 'Bash(git status)',\n 'Bash(git diff:*)',\n 'Bash(git log:*)',\n 'Bash(git add:*)',\n 'Bash(git commit:*)',\n 'Bash(git push)',\n 'Bash(git config:*)',\n 'Bash(git tag:*)',\n 'Bash(git branch:*)',\n 'Bash(git checkout:*)',\n 'Bash(git stash:*)',\n 'Bash(node:*)',\n 'Bash(which:*)',\n 'Bash(pwd)',\n 'Bash(ls:*)',\n 'Bash(jq:*)',\n ],\n deny: ['Bash(rm -rf /)'],\n },\n enabledMcpjsonServers: ['claude-flow', 'ruv-swarm'],\n hooks: {\n PreToolUse: [\n {\n matcher: 'Bash',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.command // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks pre-command --command \"{}\" --validate-safety true --prepare-resources true',\n },\n ],\n },\n {\n matcher: 'Write|Edit|MultiEdit',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.file_path // .tool_input.path // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks pre-edit --file \"{}\" --auto-assign-agents true --load-context true',\n },\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh pre-edit \"{{tool_input}}\"',\n },\n ],\n },\n ],\n PostToolUse: [\n {\n matcher: 'Bash',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.command // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks post-command --command \"{}\" --track-metrics true --store-results true',\n },\n ],\n },\n {\n matcher: 'Write|Edit|MultiEdit',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.file_path // .tool_input.path // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks post-edit --file \"{}\" --format true --update-memory true --train-neural true',\n },\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh post-edit \"{{tool_input}}\"',\n },\n ],\n },\n ],\n UserPromptSubmit: [\n {\n hooks: [\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh task \"{{user_prompt}}\"',\n },\n ],\n },\n ],\n Stop: [\n {\n hooks: [\n {\n type: 'command',\n command:\n '/usr/bin/env bash -c \\'if command -v npx >/dev/null 2>&1; then npx claude-flow@alpha hooks session-end --generate-summary true --persist-state true --export-metrics true; else echo \"âš ī¸ npx not available, skipping Claude Flow session-end hook\"; fi\\'',\n },\n {\n type: 'command',\n command: '/usr/bin/env bash -c \\'if [ -f ./.claude/helpers/standard-checkpoint-hooks.sh ]; then ./.claude/helpers/standard-checkpoint-hooks.sh session-end; else echo \"âš ī¸ Checkpoint hooks not found\"; fi\\'',\n },\n ],\n },\n ],\n },\n includeCoAuthoredBy: true,\n statusLine: {\n type: 'command',\n command: '~/.claude/statusline-command.sh',\n },\n },\n null,\n 2,\n );\n}\n"],"names":["readFileSync","dirname","join","fileURLToPath","__dirname","url","loadTemplate","filename","error","createEnhancedClaudeMd","template","createEnhancedClaudeMdFallback","createEnhancedSettingsJson","createEnhancedSettingsJsonFallback","createWrapperScript","type","universalTemplate","createWrapperScriptFallback","createCommandDoc","category","command","createCommandDocFallback","docs","analysis","automation","coordination","github","hooks","memory","monitoring","optimization","training","workflows","swarm","agents","COMMAND_STRUCTURE","createHelperScript","name","scripts","JSON","stringify","env","CLAUDE_FLOW_AUTO_COMMIT","CLAUDE_FLOW_AUTO_PUSH","CLAUDE_FLOW_HOOKS_ENABLED","CLAUDE_FLOW_TELEMETRY_ENABLED","CLAUDE_FLOW_REMOTE_EXECUTION","CLAUDE_FLOW_CHECKPOINTS_ENABLED","permissions","allow","deny","enabledMcpjsonServers","PreToolUse","matcher","PostToolUse","UserPromptSubmit","Stop","includeCoAuthoredBy","statusLine"],"mappings":"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AY;QACnDxB,OAAO;YACLyB,YAAY;gBACV;oBACEC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;qBACD;gBACH;gBACA;oBACEiC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDkC,aAAa;gBACX;oBACED,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;qBACD;gBACH;gBACA;oBACEiC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDmC,kBAAkB;gBAChB;oBACE5B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDoC,MAAM;gBACJ;oBACE7B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;QACH;QACAqC,qBAAqB;QACrBC,YAAY;YACV3C,MAAM;YACNK,SAAS;QACX;IACF,GACA,MACA;AAEJ"}
1
+ {"version":3,"sources":["../../../../../../src/cli/simple-commands/init/templates/enhanced-templates.js"],"sourcesContent":["// enhanced-templates.js - Generate Claude Flow v2.0.0 enhanced templates\nimport { readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\n// Load template files\nconst loadTemplate = (filename) => {\n try {\n return readFileSync(join(__dirname, filename), 'utf8');\n } catch (error) {\n // Silently fall back to hardcoded templates if files not found\n // This handles npm packaging scenarios where template files may not be included\n return null;\n }\n};\n\nexport function createEnhancedClaudeMd() {\n const template = loadTemplate('CLAUDE.md');\n if (!template) {\n // Fallback to hardcoded if template file not found\n return createEnhancedClaudeMdFallback();\n }\n return template;\n}\n\nexport function createEnhancedSettingsJson() {\n const template = loadTemplate('settings.json');\n if (!template) {\n return createEnhancedSettingsJsonFallback();\n }\n return template;\n}\n\nexport function createWrapperScript(type = 'unix') {\n // For unix, use the universal wrapper that works in both CommonJS and ES modules\n if (type === 'unix') {\n const universalTemplate = loadTemplate('claude-flow-universal');\n if (universalTemplate) {\n return universalTemplate;\n }\n }\n\n const filename =\n type === 'unix' ? 'claude-flow' : type === 'windows' ? 'claude-flow.bat' : 'claude-flow.ps1';\n\n const template = loadTemplate(filename);\n if (!template) {\n return createWrapperScriptFallback(type);\n }\n return template;\n}\n\nexport function createCommandDoc(category, command) {\n const template = loadTemplate(`commands/${category}/${command}.md`);\n if (!template) {\n // Silently fall back to generated documentation\n return createCommandDocFallback(category, command);\n }\n return template;\n}\n\n// Generate command documentation fallbacks\nfunction createCommandDocFallback(category, command) {\n const docs = {\n analysis: {\n 'bottleneck-detect': `# bottleneck-detect\n\nAutomatically detect performance bottlenecks in your swarm operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis bottleneck-detect [options]\n\\`\\`\\`\n\n## Options\n- \\`--swarm-id <id>\\` - Target specific swarm\n- \\`--threshold <ms>\\` - Performance threshold (default: 1000ms)\n- \\`--export <file>\\` - Export results to file\n\n## Examples\n\\`\\`\\`bash\n# Detect bottlenecks in current swarm\nnpx claude-flow analysis bottleneck-detect\n\n# Set custom threshold\nnpx claude-flow analysis bottleneck-detect --threshold 500\n\n# Export results\nnpx claude-flow analysis bottleneck-detect --export bottlenecks.json\n\\`\\`\\`\n`,\n 'token-usage': `# token-usage\n\nAnalyze token usage patterns and optimize for efficiency.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis token-usage [options]\n\\`\\`\\`\n\n## Options\n- \\`--period <time>\\` - Analysis period (1h, 24h, 7d, 30d)\n- \\`--by-agent\\` - Break down by agent\n- \\`--by-operation\\` - Break down by operation type\n\n## Examples\n\\`\\`\\`bash\n# Last 24 hours token usage\nnpx claude-flow analysis token-usage --period 24h\n\n# By agent breakdown\nnpx claude-flow analysis token-usage --by-agent\n\n# Export detailed report\nnpx claude-flow analysis token-usage --period 7d --export tokens.csv\n\\`\\`\\`\n`,\n 'performance-report': `# performance-report\n\nGenerate comprehensive performance reports for swarm operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow analysis performance-report [options]\n\\`\\`\\`\n\n## Options\n- \\`--format <type>\\` - Report format (json, html, markdown)\n- \\`--include-metrics\\` - Include detailed metrics\n- \\`--compare <id>\\` - Compare with previous swarm\n\n## Examples\n\\`\\`\\`bash\n# Generate HTML report\nnpx claude-flow analysis performance-report --format html\n\n# Compare swarms\nnpx claude-flow analysis performance-report --compare swarm-123\n\n# Full metrics report\nnpx claude-flow analysis performance-report --include-metrics --format markdown\n\\`\\`\\`\n`,\n },\n automation: {\n 'auto-agent': `# auto-agent\n\nAutomatically assign agents based on task analysis.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation auto-agent [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task to analyze\n- \\`--max-agents <n>\\` - Maximum agents to spawn\n- \\`--strategy <type>\\` - Assignment strategy\n\n## Examples\n\\`\\`\\`bash\n# Auto-assign for task\nnpx claude-flow automation auto-agent --task \"Build REST API\"\n\n# Limit agents\nnpx claude-flow automation auto-agent --task \"Fix bugs\" --max-agents 3\n\n# Use specific strategy\nnpx claude-flow automation auto-agent --strategy specialized\n\\`\\`\\`\n`,\n 'smart-spawn': `# smart-spawn\n\nIntelligently spawn agents based on workload analysis.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation smart-spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--analyze\\` - Analyze before spawning\n- \\`--threshold <n>\\` - Spawn threshold\n- \\`--topology <type>\\` - Preferred topology\n\n## Examples\n\\`\\`\\`bash\n# Smart spawn with analysis\nnpx claude-flow automation smart-spawn --analyze\n\n# Set spawn threshold\nnpx claude-flow automation smart-spawn --threshold 5\n\n# Force topology\nnpx claude-flow automation smart-spawn --topology hierarchical\n\\`\\`\\`\n`,\n 'workflow-select': `# workflow-select\n\nAutomatically select optimal workflow based on task type.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow automation workflow-select [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task description\n- \\`--constraints <list>\\` - Workflow constraints\n- \\`--preview\\` - Preview without executing\n\n## Examples\n\\`\\`\\`bash\n# Select workflow for task\nnpx claude-flow automation workflow-select --task \"Deploy to production\"\n\n# With constraints\nnpx claude-flow automation workflow-select --constraints \"no-downtime,rollback\"\n\n# Preview mode\nnpx claude-flow automation workflow-select --task \"Database migration\" --preview\n\\`\\`\\`\n`,\n },\n coordination: {\n 'swarm-init': `# swarm-init\n\nInitialize a new agent swarm with specified topology.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm init [options]\n\\`\\`\\`\n\n## Options\n- \\`--topology <type>\\` - Swarm topology (mesh, hierarchical, ring, star)\n- \\`--max-agents <n>\\` - Maximum number of agents\n- \\`--strategy <type>\\` - Execution strategy (parallel, sequential, adaptive)\n\n## Examples\n\\`\\`\\`bash\n# Initialize hierarchical swarm\nnpx claude-flow swarm init --topology hierarchical\n\n# With agent limit\nnpx claude-flow swarm init --topology mesh --max-agents 8\n\n# Parallel execution\nnpx claude-flow swarm init --strategy parallel\n\\`\\`\\`\n`,\n 'agent-spawn': `# agent-spawn\n\nSpawn a new agent in the current swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow agent spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--type <type>\\` - Agent type (coder, researcher, analyst, tester, coordinator)\n- \\`--name <name>\\` - Custom agent name\n- \\`--skills <list>\\` - Specific skills (comma-separated)\n\n## Examples\n\\`\\`\\`bash\n# Spawn coder agent\nnpx claude-flow agent spawn --type coder\n\n# With custom name\nnpx claude-flow agent spawn --type researcher --name \"API Expert\"\n\n# With specific skills\nnpx claude-flow agent spawn --type coder --skills \"python,fastapi,testing\"\n\\`\\`\\`\n`,\n 'task-orchestrate': `# task-orchestrate\n\nOrchestrate complex tasks across the swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow task orchestrate [options]\n\\`\\`\\`\n\n## Options\n- \\`--task <description>\\` - Task description\n- \\`--strategy <type>\\` - Orchestration strategy\n- \\`--priority <level>\\` - Task priority (low, medium, high, critical)\n\n## Examples\n\\`\\`\\`bash\n# Orchestrate development task\nnpx claude-flow task orchestrate --task \"Implement user authentication\"\n\n# High priority task\nnpx claude-flow task orchestrate --task \"Fix production bug\" --priority critical\n\n# With specific strategy\nnpx claude-flow task orchestrate --task \"Refactor codebase\" --strategy parallel\n\\`\\`\\`\n`,\n },\n github: {\n 'github-swarm': `# github-swarm\n\nCreate a specialized swarm for GitHub repository management.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github swarm [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Target repository\n- \\`--agents <n>\\` - Number of specialized agents\n- \\`--focus <area>\\` - Focus area (maintenance, features, security)\n\n## Examples\n\\`\\`\\`bash\n# Create GitHub swarm\nnpx claude-flow github swarm --repository myorg/myrepo\n\n# With specific focus\nnpx claude-flow github swarm --repository myorg/myrepo --focus security\n\n# Custom agent count\nnpx claude-flow github swarm --repository myorg/myrepo --agents 6\n\\`\\`\\`\n`,\n 'repo-analyze': `# repo-analyze\n\nDeep analysis of GitHub repository with AI insights.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github repo-analyze [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Repository to analyze\n- \\`--deep\\` - Enable deep analysis\n- \\`--include <areas>\\` - Include specific areas (issues, prs, code, commits)\n\n## Examples\n\\`\\`\\`bash\n# Basic analysis\nnpx claude-flow github repo-analyze --repository myorg/myrepo\n\n# Deep analysis\nnpx claude-flow github repo-analyze --repository myorg/myrepo --deep\n\n# Specific areas\nnpx claude-flow github repo-analyze --repository myorg/myrepo --include issues,prs\n\\`\\`\\`\n`,\n 'pr-enhance': `# pr-enhance\n\nAI-powered pull request enhancements.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github pr-enhance [options]\n\\`\\`\\`\n\n## Options\n- \\`--pr-number <n>\\` - Pull request number\n- \\`--add-tests\\` - Add missing tests\n- \\`--improve-docs\\` - Improve documentation\n- \\`--check-security\\` - Security review\n\n## Examples\n\\`\\`\\`bash\n# Enhance PR\nnpx claude-flow github pr-enhance --pr-number 123\n\n# Add tests\nnpx claude-flow github pr-enhance --pr-number 123 --add-tests\n\n# Full enhancement\nnpx claude-flow github pr-enhance --pr-number 123 --add-tests --improve-docs\n\\`\\`\\`\n`,\n 'issue-triage': `# issue-triage\n\nIntelligent issue classification and triage.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github issue-triage [options]\n\\`\\`\\`\n\n## Options\n- \\`--repository <owner/repo>\\` - Target repository\n- \\`--auto-label\\` - Automatically apply labels\n- \\`--assign\\` - Auto-assign to team members\n\n## Examples\n\\`\\`\\`bash\n# Triage issues\nnpx claude-flow github issue-triage --repository myorg/myrepo\n\n# With auto-labeling\nnpx claude-flow github issue-triage --repository myorg/myrepo --auto-label\n\n# Full automation\nnpx claude-flow github issue-triage --repository myorg/myrepo --auto-label --assign\n\\`\\`\\`\n`,\n 'code-review': `# code-review\n\nAutomated code review with swarm intelligence.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow github code-review [options]\n\\`\\`\\`\n\n## Options\n- \\`--pr-number <n>\\` - Pull request to review\n- \\`--focus <areas>\\` - Review focus (security, performance, style)\n- \\`--suggest-fixes\\` - Suggest code fixes\n\n## Examples\n\\`\\`\\`bash\n# Review PR\nnpx claude-flow github code-review --pr-number 456\n\n# Security focus\nnpx claude-flow github code-review --pr-number 456 --focus security\n\n# With fix suggestions\nnpx claude-flow github code-review --pr-number 456 --suggest-fixes\n\\`\\`\\`\n`,\n },\n hooks: {\n 'pre-task': `# pre-task\n\nHook executed before task execution.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook pre-task [options]\n\\`\\`\\`\n\n## Options\n- \\`--description <text>\\` - Task description\n- \\`--auto-spawn-agents\\` - Automatically spawn required agents\n- \\`--load-context\\` - Load previous context\n\n## Examples\n\\`\\`\\`bash\n# Basic pre-task hook\nnpx claude-flow hook pre-task --description \"Building API endpoints\"\n\n# With auto-spawn\nnpx claude-flow hook pre-task --description \"Complex refactoring\" --auto-spawn-agents\n\n# Load context\nnpx claude-flow hook pre-task --description \"Continue feature\" --load-context\n\\`\\`\\`\n`,\n 'post-task': `# post-task\n\nHook executed after task completion.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook post-task [options]\n\\`\\`\\`\n\n## Options\n- \\`--task-id <id>\\` - Task identifier\n- \\`--analyze-performance\\` - Analyze task performance\n- \\`--update-memory\\` - Update swarm memory\n\n## Examples\n\\`\\`\\`bash\n# Basic post-task\nnpx claude-flow hook post-task --task-id task-123\n\n# With performance analysis\nnpx claude-flow hook post-task --task-id task-123 --analyze-performance\n\n# Update memory\nnpx claude-flow hook post-task --task-id task-123 --update-memory\n\\`\\`\\`\n`,\n 'pre-edit': `# pre-edit\n\nHook executed before file edits.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook pre-edit [options]\n\\`\\`\\`\n\n## Options\n- \\`--file <path>\\` - File to be edited\n- \\`--validate-syntax\\` - Validate syntax before edit\n- \\`--backup\\` - Create backup\n\n## Examples\n\\`\\`\\`bash\n# Pre-edit hook\nnpx claude-flow hook pre-edit --file src/api.js\n\n# With validation\nnpx claude-flow hook pre-edit --file src/api.js --validate-syntax\n\n# Create backup\nnpx claude-flow hook pre-edit --file src/api.js --backup\n\\`\\`\\`\n`,\n 'post-edit': `# post-edit\n\nHook executed after file edits.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook post-edit [options]\n\\`\\`\\`\n\n## Options\n- \\`--file <path>\\` - Edited file\n- \\`--memory-key <key>\\` - Memory storage key\n- \\`--format\\` - Auto-format code\n\n## Examples\n\\`\\`\\`bash\n# Post-edit hook\nnpx claude-flow hook post-edit --file src/api.js\n\n# Store in memory\nnpx claude-flow hook post-edit --file src/api.js --memory-key \"api-changes\"\n\n# With formatting\nnpx claude-flow hook post-edit --file src/api.js --format\n\\`\\`\\`\n`,\n 'session-end': `# session-end\n\nHook executed at session end.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hook session-end [options]\n\\`\\`\\`\n\n## Options\n- \\`--export-metrics\\` - Export session metrics\n- \\`--generate-summary\\` - Generate session summary\n- \\`--persist-state\\` - Save session state\n\n## Examples\n\\`\\`\\`bash\n# End session\nnpx claude-flow hook session-end\n\n# Export metrics\nnpx claude-flow hook session-end --export-metrics\n\n# Full closure\nnpx claude-flow hook session-end --export-metrics --generate-summary --persist-state\n\\`\\`\\`\n`,\n },\n memory: {\n 'memory-usage': `# memory-usage\n\nManage persistent memory storage.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory usage [options]\n\\`\\`\\`\n\n## Options\n- \\`--action <type>\\` - Action (store, retrieve, list, clear)\n- \\`--key <key>\\` - Memory key\n- \\`--value <data>\\` - Data to store (JSON)\n\n## Examples\n\\`\\`\\`bash\n# Store memory\nnpx claude-flow memory usage --action store --key \"project-config\" --value '{\"api\": \"v2\"}'\n\n# Retrieve memory\nnpx claude-flow memory usage --action retrieve --key \"project-config\"\n\n# List all keys\nnpx claude-flow memory usage --action list\n\\`\\`\\`\n`,\n 'memory-persist': `# memory-persist\n\nPersist memory across sessions.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory persist [options]\n\\`\\`\\`\n\n## Options\n- \\`--export <file>\\` - Export to file\n- \\`--import <file>\\` - Import from file\n- \\`--compress\\` - Compress memory data\n\n## Examples\n\\`\\`\\`bash\n# Export memory\nnpx claude-flow memory persist --export memory-backup.json\n\n# Import memory\nnpx claude-flow memory persist --import memory-backup.json\n\n# Compressed export\nnpx claude-flow memory persist --export memory.gz --compress\n\\`\\`\\`\n`,\n 'memory-search': `# memory-search\n\nSearch through stored memory.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow memory search [options]\n\\`\\`\\`\n\n## Options\n- \\`--query <text>\\` - Search query\n- \\`--pattern <regex>\\` - Pattern matching\n- \\`--limit <n>\\` - Result limit\n\n## Examples\n\\`\\`\\`bash\n# Search memory\nnpx claude-flow memory search --query \"authentication\"\n\n# Pattern search\nnpx claude-flow memory search --pattern \"api-.*\"\n\n# Limited results\nnpx claude-flow memory search --query \"config\" --limit 10\n\\`\\`\\`\n`,\n },\n monitoring: {\n 'swarm-monitor': `# swarm-monitor\n\nReal-time swarm monitoring.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm monitor [options]\n\\`\\`\\`\n\n## Options\n- \\`--interval <ms>\\` - Update interval\n- \\`--metrics\\` - Show detailed metrics\n- \\`--export\\` - Export monitoring data\n\n## Examples\n\\`\\`\\`bash\n# Start monitoring\nnpx claude-flow swarm monitor\n\n# Custom interval\nnpx claude-flow swarm monitor --interval 5000\n\n# With metrics\nnpx claude-flow swarm monitor --metrics\n\\`\\`\\`\n`,\n 'agent-metrics': `# agent-metrics\n\nView agent performance metrics.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow agent metrics [options]\n\\`\\`\\`\n\n## Options\n- \\`--agent-id <id>\\` - Specific agent\n- \\`--period <time>\\` - Time period\n- \\`--format <type>\\` - Output format\n\n## Examples\n\\`\\`\\`bash\n# All agents metrics\nnpx claude-flow agent metrics\n\n# Specific agent\nnpx claude-flow agent metrics --agent-id agent-001\n\n# Last hour\nnpx claude-flow agent metrics --period 1h\n\\`\\`\\`\n`,\n 'real-time-view': `# real-time-view\n\nReal-time view of swarm activity.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow monitoring real-time-view [options]\n\\`\\`\\`\n\n## Options\n- \\`--filter <type>\\` - Filter view\n- \\`--highlight <pattern>\\` - Highlight pattern\n- \\`--tail <n>\\` - Show last N events\n\n## Examples\n\\`\\`\\`bash\n# Start real-time view\nnpx claude-flow monitoring real-time-view\n\n# Filter errors\nnpx claude-flow monitoring real-time-view --filter errors\n\n# Highlight pattern\nnpx claude-flow monitoring real-time-view --highlight \"API\"\n\\`\\`\\`\n`,\n },\n optimization: {\n 'topology-optimize': `# topology-optimize\n\nOptimize swarm topology for current workload.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization topology-optimize [options]\n\\`\\`\\`\n\n## Options\n- \\`--analyze-first\\` - Analyze before optimizing\n- \\`--target <metric>\\` - Optimization target\n- \\`--apply\\` - Apply optimizations\n\n## Examples\n\\`\\`\\`bash\n# Analyze and suggest\nnpx claude-flow optimization topology-optimize --analyze-first\n\n# Optimize for speed\nnpx claude-flow optimization topology-optimize --target speed\n\n# Apply changes\nnpx claude-flow optimization topology-optimize --target efficiency --apply\n\\`\\`\\`\n`,\n 'parallel-execute': `# parallel-execute\n\nExecute tasks in parallel for maximum efficiency.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization parallel-execute [options]\n\\`\\`\\`\n\n## Options\n- \\`--tasks <file>\\` - Task list file\n- \\`--max-parallel <n>\\` - Maximum parallel tasks\n- \\`--strategy <type>\\` - Execution strategy\n\n## Examples\n\\`\\`\\`bash\n# Execute task list\nnpx claude-flow optimization parallel-execute --tasks tasks.json\n\n# Limit parallelism\nnpx claude-flow optimization parallel-execute --tasks tasks.json --max-parallel 5\n\n# Custom strategy\nnpx claude-flow optimization parallel-execute --strategy adaptive\n\\`\\`\\`\n`,\n 'cache-manage': `# cache-manage\n\nManage operation cache for performance.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow optimization cache-manage [options]\n\\`\\`\\`\n\n## Options\n- \\`--action <type>\\` - Action (view, clear, optimize)\n- \\`--max-size <mb>\\` - Maximum cache size\n- \\`--ttl <seconds>\\` - Time to live\n\n## Examples\n\\`\\`\\`bash\n# View cache stats\nnpx claude-flow optimization cache-manage --action view\n\n# Clear cache\nnpx claude-flow optimization cache-manage --action clear\n\n# Set limits\nnpx claude-flow optimization cache-manage --max-size 100 --ttl 3600\n\\`\\`\\`\n`,\n },\n training: {\n 'neural-train': `# neural-train\n\nTrain neural patterns from operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training neural-train [options]\n\\`\\`\\`\n\n## Options\n- \\`--data <source>\\` - Training data source\n- \\`--model <name>\\` - Target model\n- \\`--epochs <n>\\` - Training epochs\n\n## Examples\n\\`\\`\\`bash\n# Train from recent ops\nnpx claude-flow training neural-train --data recent\n\n# Specific model\nnpx claude-flow training neural-train --model task-predictor\n\n# Custom epochs\nnpx claude-flow training neural-train --epochs 100\n\\`\\`\\`\n`,\n 'pattern-learn': `# pattern-learn\n\nLearn patterns from successful operations.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training pattern-learn [options]\n\\`\\`\\`\n\n## Options\n- \\`--source <type>\\` - Pattern source\n- \\`--threshold <score>\\` - Success threshold\n- \\`--save <name>\\` - Save pattern set\n\n## Examples\n\\`\\`\\`bash\n# Learn from all ops\nnpx claude-flow training pattern-learn\n\n# High success only\nnpx claude-flow training pattern-learn --threshold 0.9\n\n# Save patterns\nnpx claude-flow training pattern-learn --save optimal-patterns\n\\`\\`\\`\n`,\n 'model-update': `# model-update\n\nUpdate neural models with new data.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow training model-update [options]\n\\`\\`\\`\n\n## Options\n- \\`--model <name>\\` - Model to update\n- \\`--incremental\\` - Incremental update\n- \\`--validate\\` - Validate after update\n\n## Examples\n\\`\\`\\`bash\n# Update all models\nnpx claude-flow training model-update\n\n# Specific model\nnpx claude-flow training model-update --model agent-selector\n\n# Incremental with validation\nnpx claude-flow training model-update --incremental --validate\n\\`\\`\\`\n`,\n },\n workflows: {\n 'workflow-create': `# workflow-create\n\nCreate reusable workflow templates.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow create [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow name\n- \\`--from-history\\` - Create from history\n- \\`--interactive\\` - Interactive creation\n\n## Examples\n\\`\\`\\`bash\n# Create workflow\nnpx claude-flow workflow create --name \"deploy-api\"\n\n# From history\nnpx claude-flow workflow create --name \"test-suite\" --from-history\n\n# Interactive mode\nnpx claude-flow workflow create --interactive\n\\`\\`\\`\n`,\n 'workflow-execute': `# workflow-execute\n\nExecute saved workflows.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow execute [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow name\n- \\`--params <json>\\` - Workflow parameters\n- \\`--dry-run\\` - Preview execution\n\n## Examples\n\\`\\`\\`bash\n# Execute workflow\nnpx claude-flow workflow execute --name \"deploy-api\"\n\n# With parameters\nnpx claude-flow workflow execute --name \"test-suite\" --params '{\"env\": \"staging\"}'\n\n# Dry run\nnpx claude-flow workflow execute --name \"deploy-api\" --dry-run\n\\`\\`\\`\n`,\n 'workflow-export': `# workflow-export\n\nExport workflows for sharing.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow workflow export [options]\n\\`\\`\\`\n\n## Options\n- \\`--name <name>\\` - Workflow to export\n- \\`--format <type>\\` - Export format\n- \\`--include-history\\` - Include execution history\n\n## Examples\n\\`\\`\\`bash\n# Export workflow\nnpx claude-flow workflow export --name \"deploy-api\"\n\n# As YAML\nnpx claude-flow workflow export --name \"test-suite\" --format yaml\n\n# With history\nnpx claude-flow workflow export --name \"deploy-api\" --include-history\n\\`\\`\\`\n`,\n },\n swarm: {\n 'swarm': `# swarm\n\nMain swarm orchestration command for Claude Flow.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm <objective> [options]\n\\`\\`\\`\n\n## Options\n- \\`--strategy <type>\\` - Execution strategy (research, development, analysis, testing)\n- \\`--mode <type>\\` - Coordination mode (centralized, distributed, hierarchical, mesh)\n- \\`--max-agents <n>\\` - Maximum number of agents (default: 5)\n- \\`--claude\\` - Open Claude Code CLI with swarm prompt\n- \\`--parallel\\` - Enable parallel execution\n\n## Examples\n\\`\\`\\`bash\n# Basic swarm\nnpx claude-flow swarm \"Build REST API\"\n\n# With strategy\nnpx claude-flow swarm \"Research AI patterns\" --strategy research\n\n# Open in Claude Code\nnpx claude-flow swarm \"Build API\" --claude\n\\`\\`\\`\n`,\n 'swarm-init': `# swarm-init\n\nInitialize a new swarm with specified topology.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm init [options]\n\\`\\`\\`\n\n## Options\n- \\`--topology <type>\\` - Swarm topology (mesh, hierarchical, ring, star)\n- \\`--max-agents <n>\\` - Maximum agents\n- \\`--strategy <type>\\` - Distribution strategy\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology mesh\nnpx claude-flow swarm init --topology hierarchical --max-agents 8\n\\`\\`\\`\n`,\n 'swarm-spawn': `# swarm-spawn\n\nSpawn agents in the swarm.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow swarm spawn [options]\n\\`\\`\\`\n\n## Options\n- \\`--type <type>\\` - Agent type\n- \\`--count <n>\\` - Number to spawn\n- \\`--capabilities <list>\\` - Agent capabilities\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow swarm spawn --type coder --count 3\nnpx claude-flow swarm spawn --type researcher --capabilities \"web-search,analysis\"\n\\`\\`\\`\n`,\n },\n 'hive-mind': {\n 'hive-mind': `# hive-mind\n\nHive Mind collective intelligence system for advanced swarm coordination.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind [subcommand] [options]\n\\`\\`\\`\n\n## Subcommands\n- \\`init\\` - Initialize hive mind system\n- \\`spawn\\` - Spawn hive mind swarm\n- \\`status\\` - Show hive mind status\n- \\`resume\\` - Resume paused session\n- \\`stop\\` - Stop running session\n\n## Examples\n\\`\\`\\`bash\n# Initialize hive mind\nnpx claude-flow hive-mind init\n\n# Spawn swarm\nnpx claude-flow hive-mind spawn \"Build microservices\"\n\n# Check status\nnpx claude-flow hive-mind status\n\\`\\`\\`\n`,\n 'hive-mind-init': `# hive-mind-init\n\nInitialize the Hive Mind collective intelligence system.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind init [options]\n\\`\\`\\`\n\n## Options\n- \\`--force\\` - Force reinitialize\n- \\`--config <file>\\` - Configuration file\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow hive-mind init\nnpx claude-flow hive-mind init --force\n\\`\\`\\`\n`,\n 'hive-mind-spawn': `# hive-mind-spawn\n\nSpawn a Hive Mind swarm with queen-led coordination.\n\n## Usage\n\\`\\`\\`bash\nnpx claude-flow hive-mind spawn <objective> [options]\n\\`\\`\\`\n\n## Options\n- \\`--queen-type <type>\\` - Queen type (strategic, tactical, adaptive)\n- \\`--max-workers <n>\\` - Maximum worker agents\n- \\`--consensus <type>\\` - Consensus algorithm\n- \\`--claude\\` - Generate Claude Code spawn commands\n\n## Examples\n\\`\\`\\`bash\nnpx claude-flow hive-mind spawn \"Build API\"\nnpx claude-flow hive-mind spawn \"Research patterns\" --queen-type adaptive\nnpx claude-flow hive-mind spawn \"Build service\" --claude\n\\`\\`\\`\n`,\n },\n agents: {\n 'agent-types': `# agent-types\n\nComplete guide to all 54 available agent types in Claude Flow.\n\n## Core Development Agents\n- \\`coder\\` - Implementation specialist\n- \\`reviewer\\` - Code quality assurance\n- \\`tester\\` - Test creation and validation\n- \\`planner\\` - Strategic planning\n- \\`researcher\\` - Information gathering\n\n## Swarm Coordination Agents\n- \\`hierarchical-coordinator\\` - Queen-led coordination\n- \\`mesh-coordinator\\` - Peer-to-peer networks\n- \\`adaptive-coordinator\\` - Dynamic topology\n\n## Specialized Agents\n- \\`backend-dev\\` - API development\n- \\`mobile-dev\\` - React Native development\n- \\`ml-developer\\` - Machine learning\n- \\`system-architect\\` - High-level design\n\nFor full list and details:\n\\`\\`\\`bash\nnpx claude-flow agents list\n\\`\\`\\`\n`,\n 'agent-capabilities': `# agent-capabilities\n\nMatrix of agent capabilities and their specializations.\n\n## Capability Matrix\n\n| Agent Type | Primary Skills | Best For |\n|------------|---------------|----------|\n| coder | Implementation, debugging | Feature development |\n| researcher | Analysis, synthesis | Requirements gathering |\n| tester | Testing, validation | Quality assurance |\n| architect | Design, planning | System architecture |\n\n## Querying Capabilities\n\\`\\`\\`bash\n# List all capabilities\nnpx claude-flow agents capabilities\n\n# For specific agent\nnpx claude-flow agents capabilities --type coder\n\\`\\`\\`\n`,\n 'agent-coordination': `# agent-coordination\n\nCoordination patterns for multi-agent collaboration.\n\n## Coordination Patterns\n\n### Hierarchical\nQueen-led with worker specialization\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology hierarchical\n\\`\\`\\`\n\n### Mesh\nPeer-to-peer collaboration\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology mesh\n\\`\\`\\`\n\n### Adaptive\nDynamic topology based on workload\n\\`\\`\\`bash\nnpx claude-flow swarm init --topology adaptive\n\\`\\`\\`\n\n## Best Practices\n- Use hierarchical for complex projects\n- Use mesh for research tasks\n- Use adaptive for unknown workloads\n`,\n 'agent-spawning': `# agent-spawning\n\nGuide to spawning agents with Claude Code's Task tool.\n\n## Using Claude Code's Task Tool\n\n**CRITICAL**: Always use Claude Code's Task tool for actual agent execution:\n\n\\`\\`\\`javascript\n// Spawn ALL agents in ONE message\nTask(\"Researcher\", \"Analyze requirements...\", \"researcher\")\nTask(\"Coder\", \"Implement features...\", \"coder\")\nTask(\"Tester\", \"Create tests...\", \"tester\")\n\\`\\`\\`\n\n## MCP Coordination Setup (Optional)\n\nMCP tools are ONLY for coordination:\n\\`\\`\\`javascript\nmcp__claude-flow__swarm_init { topology: \"mesh\" }\nmcp__claude-flow__agent_spawn { type: \"researcher\" }\n\\`\\`\\`\n\n## Best Practices\n1. Always spawn agents concurrently\n2. Use Task tool for execution\n3. MCP only for coordination\n4. Batch all operations\n`,\n },\n };\n\n return (\n docs[category]?.[command] ||\n `# ${command}\\n\\nCommand documentation for ${command} in category ${category}.\\n\\nUsage:\\n\\`\\`\\`bash\\nnpx claude-flow ${category} ${command} [options]\\n\\`\\`\\`\\n`\n );\n}\n\n// Command categories and their commands\nexport const COMMAND_STRUCTURE = {\n analysis: ['bottleneck-detect', 'token-usage', 'performance-report'],\n automation: ['auto-agent', 'smart-spawn', 'workflow-select'],\n coordination: ['swarm-init', 'agent-spawn', 'task-orchestrate'],\n github: ['github-swarm', 'repo-analyze', 'pr-enhance', 'issue-triage', 'code-review'],\n hooks: ['pre-task', 'post-task', 'pre-edit', 'post-edit', 'session-end'],\n memory: ['memory-usage', 'memory-persist', 'memory-search'],\n monitoring: ['swarm-monitor', 'agent-metrics', 'real-time-view'],\n optimization: ['topology-optimize', 'parallel-execute', 'cache-manage'],\n training: ['neural-train', 'pattern-learn', 'model-update'],\n workflows: ['workflow-create', 'workflow-execute', 'workflow-export'],\n swarm: ['swarm', 'swarm-init', 'swarm-spawn', 'swarm-status', 'swarm-monitor', 'swarm-strategies', 'swarm-modes', 'swarm-background', 'swarm-analysis'],\n 'hive-mind': ['hive-mind', 'hive-mind-init', 'hive-mind-spawn', 'hive-mind-status', 'hive-mind-resume', 'hive-mind-stop', 'hive-mind-sessions', 'hive-mind-consensus', 'hive-mind-memory', 'hive-mind-metrics', 'hive-mind-wizard'],\n agents: ['agent-types', 'agent-capabilities', 'agent-coordination', 'agent-spawning'],\n};\n\n// Helper script content\nexport function createHelperScript(name) {\n const scripts = {\n 'setup-mcp.sh': `#!/bin/bash\n# Setup MCP server for Claude Flow\n\necho \"🚀 Setting up Claude Flow MCP server...\"\n\n# Check if claude command exists\nif ! command -v claude &> /dev/null; then\n echo \"❌ Error: Claude Code CLI not found\"\n echo \"Please install Claude Code first\"\n exit 1\nfi\n\n# Add MCP server\necho \"đŸ“Ļ Adding Claude Flow MCP server...\"\nclaude mcp add claude-flow npx claude-flow mcp start\n\necho \"✅ MCP server setup complete!\"\necho \"đŸŽ¯ You can now use mcp__claude-flow__ tools in Claude Code\"\n`,\n 'quick-start.sh': `#!/bin/bash\n# Quick start guide for Claude Flow\n\necho \"🚀 Claude Flow Quick Start\"\necho \"==========================\"\necho \"\"\necho \"1. Initialize a swarm:\"\necho \" npx claude-flow swarm init --topology hierarchical\"\necho \"\"\necho \"2. Spawn agents:\"\necho \" npx claude-flow agent spawn --type coder --name \\\"API Developer\\\"\"\necho \"\"\necho \"3. Orchestrate tasks:\"\necho \" npx claude-flow task orchestrate --task \\\"Build REST API\\\"\"\necho \"\"\necho \"4. Monitor progress:\"\necho \" npx claude-flow swarm monitor\"\necho \"\"\necho \"📚 For more examples, see .claude/commands/\"\n`,\n 'github-setup.sh': `#!/bin/bash\n# Setup GitHub integration for Claude Flow\n\necho \"🔗 Setting up GitHub integration...\"\n\n# Check for gh CLI\nif ! command -v gh &> /dev/null; then\n echo \"âš ī¸ GitHub CLI (gh) not found\"\n echo \"Install from: https://cli.github.com/\"\n echo \"Continuing without GitHub features...\"\nelse\n echo \"✅ GitHub CLI found\"\n \n # Check auth status\n if gh auth status &> /dev/null; then\n echo \"✅ GitHub authentication active\"\n else\n echo \"âš ī¸ Not authenticated with GitHub\"\n echo \"Run: gh auth login\"\n fi\nfi\n\necho \"\"\necho \"đŸ“Ļ GitHub swarm commands available:\"\necho \" - npx claude-flow github swarm\"\necho \" - npx claude-flow repo analyze\"\necho \" - npx claude-flow pr enhance\"\necho \" - npx claude-flow issue triage\"\n`,\n 'github-safe.js': `#!/usr/bin/env node\n\n/**\n * Safe GitHub CLI Helper\n * Prevents timeout issues when using gh commands with special characters\n * \n * Usage:\n * ./github-safe.js issue comment 123 \"Message with \\`backticks\\`\"\n * ./github-safe.js pr create --title \"Title\" --body \"Complex body\"\n */\n\nimport { execSync } from 'child_process';\nimport { writeFileSync, unlinkSync } from 'fs';\nimport { tmpdir } from 'os';\nimport { join } from 'path';\nimport { randomBytes } from 'crypto';\n\nconst args = process.argv.slice(2);\n\nif (args.length < 2) {\n console.log(\\`\nSafe GitHub CLI Helper\n\nUsage:\n ./github-safe.js issue comment <number> <body>\n ./github-safe.js pr comment <number> <body>\n ./github-safe.js issue create --title <title> --body <body>\n ./github-safe.js pr create --title <title> --body <body>\n\nThis helper prevents timeout issues with special characters like:\n- Backticks in code examples\n- Command substitution \\\\$(...)\n- Directory paths\n- Special shell characters\n\\`);\n process.exit(1);\n}\n\nconst [command, subcommand, ...restArgs] = args;\n\n// Handle commands that need body content\nif ((command === 'issue' || command === 'pr') && \n (subcommand === 'comment' || subcommand === 'create')) {\n \n let bodyIndex = -1;\n let body = '';\n \n if (subcommand === 'comment' && restArgs.length >= 2) {\n // Simple format: github-safe.js issue comment 123 \"body\"\n body = restArgs[1];\n bodyIndex = 1;\n } else {\n // Flag format: --body \"content\" \n bodyIndex = restArgs.indexOf('--body');\n if (bodyIndex !== -1 && bodyIndex < restArgs.length - 1) {\n body = restArgs[bodyIndex + 1];\n }\n }\n \n if (body) {\n // Use temporary file for body content\n const tmpFile = join(tmpdir(), \\`gh-body-\\${randomBytes(8).toString('hex')}.tmp\\`);\n \n try {\n writeFileSync(tmpFile, body, 'utf8');\n \n // Build new command with --body-file\n const newArgs = [...restArgs];\n if (subcommand === 'comment' && bodyIndex === 1) {\n // Replace body with --body-file\n newArgs[1] = '--body-file';\n newArgs.push(tmpFile);\n } else if (bodyIndex !== -1) {\n // Replace --body with --body-file\n newArgs[bodyIndex] = '--body-file';\n newArgs[bodyIndex + 1] = tmpFile;\n }\n \n // Execute safely\n const ghCommand = \\`gh \\${command} \\${subcommand} \\${newArgs.join(' ')}\\`;\n console.log(\\`Executing: \\${ghCommand}\\`);\n \n const result = execSync(ghCommand, { \n stdio: 'inherit',\n timeout: 30000 // 30 second timeout\n });\n \n } catch (error) {\n console.error('Error:', error.message);\n process.exit(1);\n } finally {\n // Clean up\n try {\n unlinkSync(tmpFile);\n } catch (e) {\n // Ignore cleanup errors\n }\n }\n } else {\n // No body content, execute normally\n execSync(\\`gh \\${args.join(' ')}\\`, { stdio: 'inherit' });\n }\n} else {\n // Other commands, execute normally\n execSync(\\`gh \\${args.join(' ')}\\`, { stdio: 'inherit' });\n}\n`,\n 'checkpoint-hooks.sh': `#!/bin/bash\n# Checkpoint hook functions for Claude settings.json\n\n# Function to handle pre-edit checkpoints\npre_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ]; then\n local checkpoint_branch=\"checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create checkpoint\n git add -A\n git stash push -m \"Pre-edit checkpoint for $file\" >/dev/null 2>&1\n git branch \"$checkpoint_branch\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"branch\": \"$checkpoint_branch\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"pre-edit\",\n \"original_branch\": \"$current_branch\"\n}\nEOF\n \n # Restore working directory\n git stash pop --quiet >/dev/null 2>&1 || true\n \n echo \"✅ Created checkpoint: $checkpoint_branch for $file\"\n fi\n}\n\n# Function to handle post-edit checkpoints\npost_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ] && [ -f \"$file\" ]; then\n # Check if file was modified - first check if file is tracked\n if ! git ls-files --error-unmatch \"$file\" >/dev/null 2>&1; then\n # File is not tracked, add it first\n git add \"$file\"\n fi\n \n # Now check if there are changes\n if git diff --cached --quiet \"$file\" 2>/dev/null && git diff --quiet \"$file\" 2>/dev/null; then\n echo \"â„šī¸ No changes to checkpoint for $file\"\n else\n local tag_name=\"checkpoint-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create commit\n git add \"$file\"\n if git commit -m \"🔖 Checkpoint: Edit $file\n\nAutomatic checkpoint created by Claude\n- File: $file\n- Branch: $current_branch\n- Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\n\n[Auto-checkpoint]\" --quiet; then\n # Create tag only if commit succeeded\n git tag -a \"$tag_name\" -m \"Checkpoint after editing $file\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n local diff_stats=$(git diff HEAD~1 --stat | tr '\\\\n' ' ' | sed 's/\"/\\\\\\\\\"/g')\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"tag\": \"$tag_name\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"post-edit\",\n \"branch\": \"$current_branch\",\n \"diff_summary\": \"$diff_stats\"\n}\nEOF\n \n echo \"✅ Created checkpoint: $tag_name for $file\"\n else\n echo \"â„šī¸ No commit created (no changes or commit failed)\"\n fi\n fi\n fi\n}\n\n# Function to handle task checkpoints\ntask_checkpoint() {\n local user_prompt=\"$1\"\n local task=$(echo \"$user_prompt\" | head -c 100 | tr '\\\\n' ' ')\n \n if [ -n \"$task\" ]; then\n local checkpoint_name=\"task-$(date +%Y%m%d-%H%M%S)\"\n \n # Commit current state\n git add -A\n git commit -m \"🔖 Task checkpoint: $task...\" --quiet || true\n \n # No GitHub release in standard version\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/task-$(date +%s).json\" <<EOF\n{\n \"checkpoint\": \"$checkpoint_name\",\n \"task\": \"$task\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"commit\": \"$(git rev-parse HEAD)\"\n}\nEOF\n \n echo \"✅ Created task checkpoint: $checkpoint_name\"\n fi\n}\n\n# Function to handle session end\nsession_end_checkpoint() {\n local session_id=\"session-$(date +%Y%m%d-%H%M%S)\"\n local summary_file=\".claude/checkpoints/summary-$session_id.md\"\n \n mkdir -p .claude/checkpoints\n \n # Create summary\n cat > \"$summary_file\" <<EOF\n# Session Summary - $(date +'%Y-%m-%d %H:%M:%S')\n\n## Checkpoints Created\n$(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \\\\; | sort)\n\n## Files Modified\n$(git diff --name-only $(git log --format=%H -n 1 --before=\"1 hour ago\" 2>/dev/null) 2>/dev/null || echo \"No files tracked\")\n\n## Recent Commits\n$(git log --oneline -10 --grep=\"Checkpoint\" || echo \"No checkpoint commits\")\n\n## Rollback Instructions\nTo rollback to a specific checkpoint:\n\\\\\\`\\\\\\`\\\\\\`bash\n# List all checkpoints\ngit tag -l 'checkpoint-*' | sort -r\n\n# Rollback to a checkpoint\ngit checkout checkpoint-YYYYMMDD-HHMMSS\n\n# Or reset to a checkpoint (destructive)\ngit reset --hard checkpoint-YYYYMMDD-HHMMSS\n\\\\\\`\\\\\\`\\\\\\`\nEOF\n \n # Create final checkpoint\n git add -A\n git commit -m \"🏁 Session end checkpoint: $session_id\" --quiet || true\n git tag -a \"session-end-$session_id\" -m \"End of Claude session\"\n \n echo \"✅ Session summary saved to: $summary_file\"\n echo \"📌 Final checkpoint: session-end-$session_id\"\n}\n\n# Main entry point\ncase \"$1\" in\n pre-edit)\n pre_edit_checkpoint \"$2\"\n ;;\n post-edit)\n post_edit_checkpoint \"$2\"\n ;;\n task)\n task_checkpoint \"$2\"\n ;;\n session-end)\n session_end_checkpoint\n ;;\n *)\n echo \"Usage: $0 {pre-edit|post-edit|task|session-end} [input]\"\n exit 1\n ;;\nesac\n`,\n 'checkpoint-manager.sh': `#!/bin/bash\n# Claude Checkpoint Manager\n# Provides easy rollback and management of Claude Code checkpoints\n\nset -e\n\n# Colors\nRED='\\\\033[0;31m'\nGREEN='\\\\033[0;32m'\nYELLOW='\\\\033[1;33m'\nBLUE='\\\\033[0;34m'\nNC='\\\\033[0m' # No Color\n\n# Configuration\nCHECKPOINT_DIR=\".claude/checkpoints\"\nBACKUP_DIR=\".claude/backups\"\n\n# Help function\nshow_help() {\n cat << EOF\nClaude Checkpoint Manager\n========================\n\nUsage: $0 <command> [options]\n\nCommands:\n list List all checkpoints\n show <id> Show details of a specific checkpoint\n rollback <id> Rollback to a specific checkpoint\n diff <id> Show diff since checkpoint\n clean Clean old checkpoints (older than 7 days)\n summary Show session summary\n \nOptions:\n --hard For rollback: use git reset --hard (destructive)\n --soft For rollback: use git reset --soft (default)\n --branch For rollback: create new branch from checkpoint\n\nExamples:\n $0 list\n $0 show checkpoint-20240130-143022\n $0 rollback checkpoint-20240130-143022 --branch\n $0 diff session-end-session-20240130-150000\nEOF\n}\n\n# List all checkpoints\nfunction list_checkpoints() {\n echo -e \"\\${BLUE}📋 Available Checkpoints:\\${NC}\"\n echo \"\"\n \n # List checkpoint tags\n echo -e \"\\${YELLOW}Git Tags:\\${NC}\"\n local tags=$(git tag -l 'checkpoint-*' -l 'session-end-*' -l 'task-*' --sort=-creatordate | head -20)\n if [ -n \"$tags\" ]; then\n echo \"$tags\"\n else\n echo \"No checkpoint tags found\"\n fi\n \n echo \"\"\n \n # List checkpoint branches\n echo -e \"\\${YELLOW}Checkpoint Branches:\\${NC}\"\n local branches=$(git branch -a | grep \"checkpoint/\" | sed 's/^[ *]*//')\n if [ -n \"$branches\" ]; then\n echo \"$branches\"\n else\n echo \"No checkpoint branches found\"\n fi\n \n echo \"\"\n \n # List checkpoint files\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n echo -e \"\\${YELLOW}Recent Checkpoint Files:\\${NC}\"\n find \"$CHECKPOINT_DIR\" -name \"*.json\" -type f -printf \"%T@ %p\\\\n\" | \\\\\n sort -rn | head -10 | cut -d' ' -f2- | xargs -I {} basename {}\n fi\n}\n\n# Show checkpoint details\nfunction show_checkpoint() {\n local checkpoint_id=\"$1\"\n \n echo -e \"\\${BLUE}📍 Checkpoint Details: $checkpoint_id\\${NC}\"\n echo \"\"\n \n # Check if it's a tag\n if git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${YELLOW}Type:\\${NC} Git Tag\"\n echo -e \"\\${YELLOW}Commit:\\${NC} $(git rev-list -n 1 \"$checkpoint_id\")\"\n echo -e \"\\${YELLOW}Date:\\${NC} $(git log -1 --format=%ai \"$checkpoint_id\")\"\n echo -e \"\\${YELLOW}Message:\\${NC}\"\n git log -1 --format=%B \"$checkpoint_id\" | sed 's/^/ /'\n echo \"\"\n echo -e \"\\${YELLOW}Files changed:\\${NC}\"\n git diff-tree --no-commit-id --name-status -r \"$checkpoint_id\" | sed 's/^/ /'\n # Check if it's a branch\n elif git branch -a | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${YELLOW}Type:\\${NC} Git Branch\"\n echo -e \"\\${YELLOW}Latest commit:\\${NC}\"\n git log -1 --oneline \"$checkpoint_id\"\n else\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n}\n\n# Rollback to checkpoint\nfunction rollback_checkpoint() {\n local checkpoint_id=\"$1\"\n local mode=\"$2\"\n \n echo -e \"\\${YELLOW}🔄 Rolling back to checkpoint: $checkpoint_id\\${NC}\"\n echo \"\"\n \n # Verify checkpoint exists\n if ! git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\" && \\\\\n ! git branch -a | grep -q \"$checkpoint_id\"; then\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n \n # Create backup before rollback\n local backup_name=\"backup-$(date +%Y%m%d-%H%M%S)\"\n echo \"Creating backup: $backup_name\"\n git tag \"$backup_name\" -m \"Backup before rollback to $checkpoint_id\"\n \n case \"$mode\" in\n \"--hard\")\n echo -e \"\\${RED}âš ī¸ Performing hard reset (destructive)\\${NC}\"\n git reset --hard \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Rolled back to $checkpoint_id (hard reset)\\${NC}\"\n ;;\n \"--branch\")\n local branch_name=\"rollback-$checkpoint_id-$(date +%Y%m%d-%H%M%S)\"\n echo \"Creating new branch: $branch_name\"\n git checkout -b \"$branch_name\" \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Created branch $branch_name from $checkpoint_id\\${NC}\"\n ;;\n \"--stash\"|*)\n echo \"Stashing current changes...\"\n git stash push -m \"Stash before rollback to $checkpoint_id\"\n git reset --soft \"$checkpoint_id\"\n echo -e \"\\${GREEN}✅ Rolled back to $checkpoint_id (soft reset)\\${NC}\"\n echo \"Your changes are stashed. Use 'git stash pop' to restore them.\"\n ;;\n esac\n}\n\n# Show diff since checkpoint\nfunction diff_checkpoint() {\n local checkpoint_id=\"$1\"\n \n echo -e \"\\${BLUE}📊 Changes since checkpoint: $checkpoint_id\\${NC}\"\n echo \"\"\n \n if git tag -l \"$checkpoint_id\" | grep -q \"$checkpoint_id\"; then\n git diff \"$checkpoint_id\"\n elif git branch -a | grep -q \"$checkpoint_id\"; then\n git diff \"$checkpoint_id\"\n else\n echo -e \"\\${RED}❌ Checkpoint not found: $checkpoint_id\\${NC}\"\n exit 1\n fi\n}\n\n# Clean old checkpoints\nfunction clean_checkpoints() {\n local days=\\${1:-7}\n \n echo -e \"\\${YELLOW}🧹 Cleaning checkpoints older than $days days...\\${NC}\"\n echo \"\"\n \n # Clean old checkpoint files\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n find \"$CHECKPOINT_DIR\" -name \"*.json\" -type f -mtime +$days -delete\n echo \"✅ Cleaned old checkpoint files\"\n fi\n \n # List old tags (but don't delete automatically)\n echo \"\"\n echo \"Old checkpoint tags (manual deletion required):\"\n git tag -l 'checkpoint-*' --sort=-creatordate | tail -n +50 || echo \"No old tags found\"\n}\n\n# Show session summary\nfunction show_summary() {\n echo -e \"\\${BLUE}📊 Session Summary\\${NC}\"\n echo \"\"\n \n # Find most recent session summary\n if [ -d \"$CHECKPOINT_DIR\" ]; then\n local latest_summary=$(find \"$CHECKPOINT_DIR\" -name \"summary-*.md\" -type f -printf \"%T@ %p\\\\n\" | \\\\\n sort -rn | head -1 | cut -d' ' -f2-)\n \n if [ -n \"$latest_summary\" ]; then\n echo -e \"\\${YELLOW}Latest session summary:\\${NC}\"\n cat \"$latest_summary\"\n else\n echo \"No session summaries found\"\n fi\n fi\n}\n\n# Main command handling\ncase \"$1\" in\n list)\n list_checkpoints\n ;;\n show)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n show_checkpoint \"$2\"\n ;;\n rollback)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n rollback_checkpoint \"$2\" \"$3\"\n ;;\n diff)\n if [ -z \"$2\" ]; then\n echo -e \"\\${RED}Error: Please specify a checkpoint ID\\${NC}\"\n show_help\n exit 1\n fi\n diff_checkpoint \"$2\"\n ;;\n clean)\n clean_checkpoints \"$2\"\n ;;\n summary)\n show_summary\n ;;\n help|--help|-h)\n show_help\n ;;\n *)\n echo -e \"\\${RED}Error: Unknown command: $1\\${NC}\"\n echo \"\"\n show_help\n exit 1\n ;;\nesac\n`,\n 'standard-checkpoint-hooks.sh': `#!/bin/bash\n# Standard checkpoint hook functions for Claude settings.json (without GitHub features)\n\n# Function to handle pre-edit checkpoints\npre_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ]; then\n local checkpoint_branch=\"checkpoint/pre-edit-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create checkpoint\n git add -A\n git stash push -m \"Pre-edit checkpoint for $file\" >/dev/null 2>&1\n git branch \"$checkpoint_branch\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"branch\": \"$checkpoint_branch\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"pre-edit\",\n \"original_branch\": \"$current_branch\"\n}\nEOF\n \n # Restore working directory\n git stash pop --quiet >/dev/null 2>&1 || true\n \n echo \"✅ Created checkpoint: $checkpoint_branch for $file\"\n fi\n}\n\n# Function to handle post-edit checkpoints\npost_edit_checkpoint() {\n local tool_input=\"$1\"\n local file=$(echo \"$tool_input\" | jq -r '.file_path // empty')\n \n if [ -n \"$file\" ] && [ -f \"$file\" ]; then\n # Check if file was modified - first check if file is tracked\n if ! git ls-files --error-unmatch \"$file\" >/dev/null 2>&1; then\n # File is not tracked, add it first\n git add \"$file\"\n fi\n \n # Now check if there are changes\n if git diff --cached --quiet \"$file\" 2>/dev/null && git diff --quiet \"$file\" 2>/dev/null; then\n echo \"â„šī¸ No changes to checkpoint for $file\"\n else\n local tag_name=\"checkpoint-$(date +%Y%m%d-%H%M%S)\"\n local current_branch=$(git branch --show-current)\n \n # Create commit\n git add \"$file\"\n if git commit -m \"🔖 Checkpoint: Edit $file\n\nAutomatic checkpoint created by Claude\n- File: $file\n- Branch: $current_branch\n- Timestamp: $(date -u +%Y-%m-%dT%H:%M:%SZ)\n\n[Auto-checkpoint]\" --quiet; then\n # Create tag only if commit succeeded\n git tag -a \"$tag_name\" -m \"Checkpoint after editing $file\"\n \n # Store metadata\n mkdir -p .claude/checkpoints\n local diff_stats=$(git diff HEAD~1 --stat | tr '\\\\n' ' ' | sed 's/\"/\\\\\"/g')\n cat > \".claude/checkpoints/$(date +%s).json\" <<EOF\n{\n \"tag\": \"$tag_name\",\n \"file\": \"$file\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"type\": \"post-edit\",\n \"branch\": \"$current_branch\",\n \"diff_summary\": \"$diff_stats\"\n}\nEOF\n \n echo \"✅ Created checkpoint: $tag_name for $file\"\n else\n echo \"â„šī¸ No commit created (no changes or commit failed)\"\n fi\n fi\n fi\n}\n\n# Function to handle task checkpoints\ntask_checkpoint() {\n local user_prompt=\"$1\"\n local task=$(echo \"$user_prompt\" | head -c 100 | tr '\\\\n' ' ')\n \n if [ -n \"$task\" ]; then\n local checkpoint_name=\"task-$(date +%Y%m%d-%H%M%S)\"\n \n # Commit current state\n git add -A\n git commit -m \"🔖 Task checkpoint: $task...\" --quiet || true\n \n # Store metadata\n mkdir -p .claude/checkpoints\n cat > \".claude/checkpoints/task-$(date +%s).json\" <<EOF\n{\n \"checkpoint\": \"$checkpoint_name\",\n \"task\": \"$task\",\n \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\n \"commit\": \"$(git rev-parse HEAD)\"\n}\nEOF\n \n echo \"✅ Created task checkpoint: $checkpoint_name\"\n fi\n}\n\n# Function to handle session end\nsession_end_checkpoint() {\n local session_id=\"session-$(date +%Y%m%d-%H%M%S)\"\n local summary_file=\".claude/checkpoints/summary-$session_id.md\"\n \n mkdir -p .claude/checkpoints\n \n # Create summary\n cat > \"$summary_file\" <<EOF\n# Session Summary - $(date +'%Y-%m-%d %H:%M:%S')\n\n## Checkpoints Created\n$(find .claude/checkpoints -name '*.json' -mtime -1 -exec basename {} \\\\; | sort)\n\n## Files Modified\n$(git diff --name-only $(git log --format=%H -n 1 --before=\"1 hour ago\" 2>/dev/null) 2>/dev/null || echo \"No files tracked\")\n\n## Recent Commits\n$(git log --oneline -10 --grep=\"Checkpoint\" || echo \"No checkpoint commits\")\n\n## Rollback Instructions\nTo rollback to a specific checkpoint:\n\\\\\\`\\\\\\`\\\\\\`bash\n# List all checkpoints\ngit tag -l 'checkpoint-*' | sort -r\n\n# Rollback to a checkpoint\ngit checkout checkpoint-YYYYMMDD-HHMMSS\n\n# Or reset to a checkpoint (destructive)\ngit reset --hard checkpoint-YYYYMMDD-HHMMSS\n\\\\\\`\\\\\\`\\\\\\`\nEOF\n \n # Create final checkpoint\n git add -A\n git commit -m \"🏁 Session end checkpoint: $session_id\" --quiet || true\n git tag -a \"session-end-$session_id\" -m \"End of Claude session\"\n \n echo \"✅ Session summary saved to: $summary_file\"\n echo \"📌 Final checkpoint: session-end-$session_id\"\n}\n\n# Main entry point\ncase \"$1\" in\n pre-edit)\n pre_edit_checkpoint \"$2\"\n ;;\n post-edit)\n post_edit_checkpoint \"$2\"\n ;;\n task)\n task_checkpoint \"$2\"\n ;;\n session-end)\n session_end_checkpoint\n ;;\n *)\n echo \"Usage: $0 {pre-edit|post-edit|task|session-end} [input]\"\n exit 1\n ;;\nesac\n`,\n };\n\n return scripts[name] || '';\n}\n\n// Wrapper script fallbacks\nfunction createWrapperScriptFallback(type) {\n if (type === 'unix') {\n // Return the universal ES module compatible wrapper\n return `#!/usr/bin/env node\n\n/**\n * Claude Flow CLI - Universal Wrapper\n * Works in both CommonJS and ES Module projects\n */\n\n// Use dynamic import to work in both CommonJS and ES modules\n(async () => {\n const { spawn } = await import('child_process');\n const { resolve } = await import('path');\n const { fileURLToPath } = await import('url');\n \n try {\n // Try to use import.meta.url (ES modules)\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = resolve(__filename, '..');\n } catch {\n // Fallback for CommonJS\n }\n\n // Try multiple strategies to find claude-flow\n const strategies = [\n // 1. Local node_modules\n async () => {\n try {\n const localPath = resolve(process.cwd(), 'node_modules/.bin/claude-flow');\n const { existsSync } = await import('fs');\n if (existsSync(localPath)) {\n return spawn(localPath, process.argv.slice(2), { stdio: 'inherit' });\n }\n } catch {}\n },\n \n // 2. Parent node_modules (monorepo)\n async () => {\n try {\n const parentPath = resolve(process.cwd(), '../node_modules/.bin/claude-flow');\n const { existsSync } = await import('fs');\n if (existsSync(parentPath)) {\n return spawn(parentPath, process.argv.slice(2), { stdio: 'inherit' });\n }\n } catch {}\n },\n \n // 3. NPX with latest alpha version (prioritized over global)\n async () => {\n return spawn('npx', ['claude-flow@2.0.0-alpha.25', ...process.argv.slice(2)], { stdio: 'inherit' });\n }\n ];\n\n // Try each strategy\n for (const strategy of strategies) {\n try {\n const child = await strategy();\n if (child) {\n child.on('exit', (code) => process.exit(code || 0));\n child.on('error', (err) => {\n if (err.code !== 'ENOENT') {\n console.error('Error:', err);\n process.exit(1);\n }\n });\n return;\n }\n } catch {}\n }\n \n console.error('Could not find claude-flow. Please install it with: npm install claude-flow');\n process.exit(1);\n})();`;\n } else if (type === 'windows') {\n return `@echo off\nrem Claude Flow wrapper script for Windows\n\nrem Check if package.json exists in current directory\nif exist \"%~dp0package.json\" (\n rem Local development mode\n if exist \"%~dp0src\\\\cli\\\\simple-cli.js\" (\n node \"%~dp0src\\\\cli\\\\simple-cli.js\" %*\n ) else if exist \"%~dp0dist\\\\cli.js\" (\n node \"%~dp0dist\\\\cli.js\" %*\n ) else (\n echo Error: Could not find Claude Flow CLI files\n exit /b 1\n )\n) else (\n rem Production mode - use npx alpha\n npx claude-flow@alpha %*\n)`;\n } else if (type === 'powershell') {\n return `# Claude Flow wrapper script for PowerShell\n\n$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path\n\nif (Test-Path \"$scriptPath\\\\package.json\") {\n # Local development mode\n if (Test-Path \"$scriptPath\\\\src\\\\cli\\\\simple-cli.js\") {\n & node \"$scriptPath\\\\src\\\\cli\\\\simple-cli.js\" $args\n } elseif (Test-Path \"$scriptPath\\\\dist\\\\cli.js\") {\n & node \"$scriptPath\\\\dist\\\\cli.js\" $args\n } else {\n Write-Error \"Could not find Claude Flow CLI files\"\n exit 1\n }\n} else {\n # Production mode - use npx alpha\n & npx claude-flow@alpha $args\n}`;\n }\n return '';\n}\n\n// Fallback functions for when templates can't be loaded\nfunction createEnhancedClaudeMdFallback() {\n // Read from the actual template file we created\n try {\n return readFileSync(join(__dirname, 'CLAUDE.md'), 'utf8');\n } catch (error) {\n // If that fails, return a minimal version\n return `# Claude Code Configuration for Claude Flow\n\n## 🚀 IMPORTANT: Claude Flow AI-Driven Development\n\n### Claude Code Handles:\n- ✅ **ALL file operations** (Read, Write, Edit, MultiEdit)\n- ✅ **ALL code generation** and development tasks\n- ✅ **ALL bash commands** and system operations\n- ✅ **ALL actual implementation** work\n- ✅ **Project navigation** and code analysis\n\n### Claude Flow MCP Tools Handle:\n- 🧠 **Coordination only** - Orchestrating Claude Code's actions\n- 💾 **Memory management** - Persistent state across sessions\n- 🤖 **Neural features** - Cognitive patterns and learning\n- 📊 **Performance tracking** - Monitoring and metrics\n- 🐝 **Swarm orchestration** - Multi-agent coordination\n- 🔗 **GitHub integration** - Advanced repository management\n\n### âš ī¸ Key Principle:\n**MCP tools DO NOT create content or write code.** They coordinate and enhance Claude Code's native capabilities.\n\n## Quick Start\n\n1. Add MCP server: \\`claude mcp add claude-flow npx claude-flow mcp start\\`\n2. Initialize swarm: \\`mcp__claude-flow__swarm_init { topology: \"hierarchical\" }\\`\n3. Spawn agents: \\`mcp__claude-flow__agent_spawn { type: \"coder\" }\\`\n4. Orchestrate: \\`mcp__claude-flow__task_orchestrate { task: \"Build feature\" }\\`\n\nSee full documentation in \\`.claude/commands/\\`\n`;\n }\n}\n\nfunction createEnhancedSettingsJsonFallback() {\n return JSON.stringify(\n {\n env: {\n CLAUDE_FLOW_AUTO_COMMIT: 'false',\n CLAUDE_FLOW_AUTO_PUSH: 'false',\n CLAUDE_FLOW_HOOKS_ENABLED: 'true',\n CLAUDE_FLOW_TELEMETRY_ENABLED: 'true',\n CLAUDE_FLOW_REMOTE_EXECUTION: 'true',\n CLAUDE_FLOW_CHECKPOINTS_ENABLED: 'true',\n },\n permissions: {\n allow: [\n 'Bash(npx claude-flow:*)',\n 'Bash(npm run lint)',\n 'Bash(npm run test:*)',\n 'Bash(npm test:*)',\n 'Bash(git status)',\n 'Bash(git diff:*)',\n 'Bash(git log:*)',\n 'Bash(git add:*)',\n 'Bash(git commit:*)',\n 'Bash(git push)',\n 'Bash(git config:*)',\n 'Bash(git tag:*)',\n 'Bash(git branch:*)',\n 'Bash(git checkout:*)',\n 'Bash(git stash:*)',\n 'Bash(node:*)',\n 'Bash(which:*)',\n 'Bash(pwd)',\n 'Bash(ls:*)',\n 'Bash(jq:*)',\n ],\n deny: ['Bash(rm -rf /)'],\n },\n enabledMcpjsonServers: ['claude-flow', 'ruv-swarm'],\n hooks: {\n PreToolUse: [\n {\n matcher: 'Bash',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.command // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks pre-command --command \"{}\" --validate-safety true --prepare-resources true',\n },\n ],\n },\n {\n matcher: 'Write|Edit|MultiEdit',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.file_path // .tool_input.path // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks pre-edit --file \"{}\" --auto-assign-agents true --load-context true',\n },\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh pre-edit \"{{tool_input}}\"',\n },\n ],\n },\n ],\n PostToolUse: [\n {\n matcher: 'Bash',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.command // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks post-command --command \"{}\" --track-metrics true --store-results true',\n },\n ],\n },\n {\n matcher: 'Write|Edit|MultiEdit',\n hooks: [\n {\n type: 'command',\n command:\n 'cat | jq -r \\'.tool_input.file_path // .tool_input.path // \"\"\\' | xargs -I {} npx claude-flow@alpha hooks post-edit --file \"{}\" --format true --update-memory true --train-neural true',\n },\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh post-edit \"{{tool_input}}\"',\n },\n ],\n },\n ],\n UserPromptSubmit: [\n {\n hooks: [\n {\n type: 'command',\n command: './.claude/helpers/standard-checkpoint-hooks.sh task \"{{user_prompt}}\"',\n },\n ],\n },\n ],\n Stop: [\n {\n hooks: [\n {\n type: 'command',\n command:\n '/usr/bin/env bash -c \\'if command -v npx >/dev/null 2>&1; then npx claude-flow@alpha hooks session-end --generate-summary true --persist-state true --export-metrics true; else echo \"âš ī¸ npx not available, skipping Claude Flow session-end hook\"; fi\\'',\n },\n {\n type: 'command',\n command: '/usr/bin/env bash -c \\'if [ -f ./.claude/helpers/standard-checkpoint-hooks.sh ]; then ./.claude/helpers/standard-checkpoint-hooks.sh session-end; else echo \"âš ī¸ Checkpoint hooks not found\"; fi\\'',\n },\n ],\n },\n ],\n },\n includeCoAuthoredBy: true,\n statusLine: {\n type: 'command',\n command: '.claude/statusline-command.sh',\n },\n },\n null,\n 2,\n );\n}\n"],"names":["readFileSync","dirname","join","fileURLToPath","__dirname","url","loadTemplate","filename","error","createEnhancedClaudeMd","template","createEnhancedClaudeMdFallback","createEnhancedSettingsJson","createEnhancedSettingsJsonFallback","createWrapperScript","type","universalTemplate","createWrapperScriptFallback","createCommandDoc","category","command","createCommandDocFallback","docs","analysis","automation","coordination","github","hooks","memory","monitoring","optimization","training","workflows","swarm","agents","COMMAND_STRUCTURE","createHelperScript","name","scripts","JSON","stringify","env","CLAUDE_FLOW_AUTO_COMMIT","CLAUDE_FLOW_AUTO_PUSH","CLAUDE_FLOW_HOOKS_ENABLED","CLAUDE_FLOW_TELEMETRY_ENABLED","CLAUDE_FLOW_REMOTE_EXECUTION","CLAUDE_FLOW_CHECKPOINTS_ENABLED","permissions","allow","deny","enabledMcpjsonServers","PreToolUse","matcher","PostToolUse","UserPromptSubmit","Stop","includeCoAuthoredBy","statusLine"],"mappings":"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AY;QACnDxB,OAAO;YACLyB,YAAY;gBACV;oBACEC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;qBACD;gBACH;gBACA;oBACEiC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDkC,aAAa;gBACX;oBACED,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;qBACD;gBACH;gBACA;oBACEiC,SAAS;oBACT1B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDmC,kBAAkB;gBAChB;oBACE5B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;YACDoC,MAAM;gBACJ;oBACE7B,OAAO;wBACL;4BACEZ,MAAM;4BACNK,SACE;wBACJ;wBACA;4BACEL,MAAM;4BACNK,SAAS;wBACX;qBACD;gBACH;aACD;QACH;QACAqC,qBAAqB;QACrBC,YAAY;YACV3C,MAAM;YACNK,SAAS;QACX;IACF,GACA,MACA;AAEJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/validation-helper.js"],"sourcesContent":["/**\n * CLI Parameter Validation Helper\n * Provides standardized error messages for invalid parameters\n */\n\nimport { HelpFormatter } from './help-formatter.js';\n\nexport class ValidationHelper {\n /**\n * Validate enum parameter\n */\n static validateEnum(value, paramName, validOptions, commandPath) {\n if (!validOptions.includes(value)) {\n console.error(\n HelpFormatter.formatValidationError(value, paramName, validOptions, commandPath),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate numeric parameter\n */\n static validateNumber(value, paramName, min, max, commandPath) {\n const num = parseInt(value, 10);\n\n if (isNaN(num)) {\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid number for ${paramName}.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (min !== undefined && num < min) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at least ${min}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (max !== undefined && num > max) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at most ${max}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n return num;\n }\n\n /**\n * Validate required parameter\n */\n static validateRequired(value, paramName, commandPath) {\n if (!value || (typeof value === 'string' && value.trim() === '')) {\n console.error(\n HelpFormatter.formatError(\n `Missing required parameter: ${paramName}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate file path exists\n */\n static async validateFilePath(path, paramName, commandPath) {\n try {\n const fs = await import('fs/promises');\n await fs.access(path);\n } catch (error) {\n console.error(\n HelpFormatter.formatError(\n `File not found for ${paramName}: ${path}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate boolean flag\n */\n static validateBoolean(value, paramName, commandPath) {\n const lowerValue = value.toLowerCase();\n if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes') {\n return true;\n }\n if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no') {\n return false;\n }\n\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid boolean for ${paramName}. Use: true, false, yes, no, 1, or 0.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n}\n"],"names":["HelpFormatter","ValidationHelper","validateEnum","value","paramName","validOptions","commandPath","includes","console","error","formatValidationError","process","exit","validateNumber","min","max","num","parseInt","isNaN","formatError","undefined","validateRequired","trim","validateFilePath","path","fs","access","validateBoolean","lowerValue","toLowerCase"],"mappings":"AAKA,SAASA,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC;IAIX,OAAOC,aAAaC,KAAK,EAAEC,SAAS,EAAEC,YAAY,EAAEC,WAAW,EAAE;QAC/D,IAAI,CAACD,aAAaE,QAAQ,CAACJ,QAAQ;YACjCK,QAAQC,KAAK,CACXT,cAAcU,qBAAqB,CAACP,OAAOC,WAAWC,cAAcC;YAEtEK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOC,eAAeV,KAAK,EAAEC,SAAS,EAAEU,GAAG,EAAEC,GAAG,EAAET,WAAW,EAAE;QAC7D,MAAMU,MAAMC,SAASd,OAAO;QAE5B,IAAIe,MAAMF,MAAM;YACdR,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,4BAA4B,EAAEC,UAAU,CAAC,CAAC,EACpDE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIE,QAAQM,aAAaJ,MAAMF,KAAK;YAClCN,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,kBAAkB,EAAEU,IAAI,OAAO,EAAEE,KAAK,EACnDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIG,QAAQK,aAAaJ,MAAMD,KAAK;YAClCP,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,iBAAiB,EAAEW,IAAI,OAAO,EAAEC,KAAK,EAClDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,OAAOI;IACT;IAKA,OAAOK,iBAAiBlB,KAAK,EAAEC,SAAS,EAAEE,WAAW,EAAE;QACrD,IAAI,CAACH,SAAU,OAAOA,UAAU,YAAYA,MAAMmB,IAAI,OAAO,IAAK;YAChEd,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,4BAA4B,EAAEf,WAAW,EAC1CE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,aAAaW,iBAAiBC,IAAI,EAAEpB,SAAS,EAAEE,WAAW,EAAE;QAC1D,IAAI;YACF,MAAMmB,KAAK,MAAM,MAAM,CAAC;YACxB,MAAMA,GAAGC,MAAM,CAACF;QAClB,EAAE,OAAOf,OAAO;YACdD,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,mBAAmB,EAAEf,UAAU,EAAE,EAAEoB,MAAM,EAC1ClB,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOe,gBAAgBxB,KAAK,EAAEC,SAAS,EAAEE,WAAW,EAAE;QACpD,MAAMsB,aAAazB,MAAM0B,WAAW;QACpC,IAAID,eAAe,UAAUA,eAAe,OAAOA,eAAe,OAAO;YACvE,OAAO;QACT;QACA,IAAIA,eAAe,WAAWA,eAAe,OAAOA,eAAe,MAAM;YACvE,OAAO;QACT;QAEApB,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,6BAA6B,EAAEC,UAAU,qCAAqC,CAAC,EACzFE,eAAe;QAGnBK,QAAQC,IAAI,CAAC;IACf;AACF"}
1
+ {"version":3,"sources":["../../../src/cli/validation-helper.ts"],"sourcesContent":["/**\n * CLI Parameter Validation Helper\n * Provides standardized error messages for invalid parameters\n */\n\nimport { HelpFormatter } from './help-formatter.js';\n\nexport class ValidationHelper {\n /**\n * Validate enum parameter\n */\n static validateEnum(\n value: string,\n paramName: string,\n validOptions: string[],\n commandPath: string,\n ): void {\n if (!validOptions.includes(value)) {\n console.error(\n HelpFormatter.formatValidationError(value, paramName, validOptions, commandPath),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate numeric parameter\n */\n static validateNumber(\n value: string,\n paramName: string,\n min?: number,\n max?: number,\n commandPath?: string,\n ): number {\n const num = parseInt(value, 10);\n\n if (isNaN(num)) {\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid number for ${paramName}.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (min !== undefined && num < min) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at least ${min}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n if (max !== undefined && num > max) {\n console.error(\n HelpFormatter.formatError(\n `${paramName} must be at most ${max}. Got: ${num}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n\n return num;\n }\n\n /**\n * Validate required parameter\n */\n static validateRequired(value: any, paramName: string, commandPath?: string): void {\n if (!value || (typeof value === 'string' && value.trim() === '')) {\n console.error(\n HelpFormatter.formatError(\n `Missing required parameter: ${paramName}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate file path exists\n */\n static async validateFilePath(\n path: string,\n paramName: string,\n commandPath?: string,\n ): Promise<void> {\n try {\n const fs = await import('fs/promises');\n await fs.access(path);\n } catch (error) {\n console.error(\n HelpFormatter.formatError(\n `File not found for ${paramName}: ${path}`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n }\n\n /**\n * Validate boolean flag\n */\n static validateBoolean(value: string, paramName: string, commandPath?: string): boolean {\n const lowerValue = value.toLowerCase();\n if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes') {\n return true;\n }\n if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no') {\n return false;\n }\n\n console.error(\n HelpFormatter.formatError(\n `'${value}' is not a valid boolean for ${paramName}. Use: true, false, yes, no, 1, or 0.`,\n commandPath || 'claude-flow',\n ),\n );\n process.exit(1);\n }\n}\n"],"names":["HelpFormatter","ValidationHelper","validateEnum","value","paramName","validOptions","commandPath","includes","console","error","formatValidationError","process","exit","validateNumber","min","max","num","parseInt","isNaN","formatError","undefined","validateRequired","trim","validateFilePath","path","fs","access","validateBoolean","lowerValue","toLowerCase"],"mappings":"AAKA,SAASA,aAAa,QAAQ,sBAAsB;AAEpD,OAAO,MAAMC;IAIX,OAAOC,aACLC,KAAa,EACbC,SAAiB,EACjBC,YAAsB,EACtBC,WAAmB,EACb;QACN,IAAI,CAACD,aAAaE,QAAQ,CAACJ,QAAQ;YACjCK,QAAQC,KAAK,CACXT,cAAcU,qBAAqB,CAACP,OAAOC,WAAWC,cAAcC;YAEtEK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOC,eACLV,KAAa,EACbC,SAAiB,EACjBU,GAAY,EACZC,GAAY,EACZT,WAAoB,EACZ;QACR,MAAMU,MAAMC,SAASd,OAAO;QAE5B,IAAIe,MAAMF,MAAM;YACdR,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,4BAA4B,EAAEC,UAAU,CAAC,CAAC,EACpDE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIE,QAAQM,aAAaJ,MAAMF,KAAK;YAClCN,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,kBAAkB,EAAEU,IAAI,OAAO,EAAEE,KAAK,EACnDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,IAAIG,QAAQK,aAAaJ,MAAMD,KAAK;YAClCP,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,GAAGf,UAAU,iBAAiB,EAAEW,IAAI,OAAO,EAAEC,KAAK,EAClDV,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;QAEA,OAAOI;IACT;IAKA,OAAOK,iBAAiBlB,KAAU,EAAEC,SAAiB,EAAEE,WAAoB,EAAQ;QACjF,IAAI,CAACH,SAAU,OAAOA,UAAU,YAAYA,MAAMmB,IAAI,OAAO,IAAK;YAChEd,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,4BAA4B,EAAEf,WAAW,EAC1CE,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,aAAaW,iBACXC,IAAY,EACZpB,SAAiB,EACjBE,WAAoB,EACL;QACf,IAAI;YACF,MAAMmB,KAAK,MAAM,MAAM,CAAC;YACxB,MAAMA,GAAGC,MAAM,CAACF;QAClB,EAAE,OAAOf,OAAO;YACdD,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,mBAAmB,EAAEf,UAAU,EAAE,EAAEoB,MAAM,EAC1ClB,eAAe;YAGnBK,QAAQC,IAAI,CAAC;QACf;IACF;IAKA,OAAOe,gBAAgBxB,KAAa,EAAEC,SAAiB,EAAEE,WAAoB,EAAW;QACtF,MAAMsB,aAAazB,MAAM0B,WAAW;QACpC,IAAID,eAAe,UAAUA,eAAe,OAAOA,eAAe,OAAO;YACvE,OAAO;QACT;QACA,IAAIA,eAAe,WAAWA,eAAe,OAAOA,eAAe,MAAM;YACvE,OAAO;QACT;QAEApB,QAAQC,KAAK,CACXT,cAAcmB,WAAW,CACvB,CAAC,CAAC,EAAEhB,MAAM,6BAA6B,EAAEC,UAAU,qCAAqC,CAAC,EACzFE,eAAe;QAGnBK,QAAQC,IAAI,CAAC;IACf;AACF"}
@@ -23,4 +23,4 @@ export function displayVersion() {
23
23
  console.log(getVersionString());
24
24
  }
25
25
 
26
- //# sourceMappingURL=version.js.mapp
26
+ //# sourceMappingURL=version.js.map
@@ -1,11 +1,13 @@
1
- import * as fs from 'fs/promises';
2
- import * as path from 'path';
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
3
  import { exec } from 'child_process';
4
4
  import { promisify } from 'util';
5
5
  const execAsync = promisify(exec);
6
- export class MetricsReader {
7
- metricsDir = '.claude-flow/metrics';
8
- sessionsDir = '.claude-flow/sessions';
6
+ let MetricsReader = class MetricsReader {
7
+ constructor(){
8
+ this.metricsDir = '.claude-flow/metrics';
9
+ this.sessionsDir = '.claude-flow/sessions';
10
+ }
9
11
  async getSystemMetrics() {
10
12
  try {
11
13
  const filePath = path.join(this.metricsDir, 'system-metrics.json');
@@ -16,6 +18,15 @@ export class MetricsReader {
16
18
  return null;
17
19
  }
18
20
  }
21
+ async getTaskQueue() {
22
+ try {
23
+ const queueFile = '.claude-flow/tasks/queue.json';
24
+ const content = await fs.readFile(queueFile, 'utf8');
25
+ return JSON.parse(content);
26
+ } catch (error) {
27
+ return [];
28
+ }
29
+ }
19
30
  async getTaskMetrics() {
20
31
  try {
21
32
  const filePath = path.join(this.metricsDir, 'task-metrics.json');
@@ -36,30 +47,30 @@ export class MetricsReader {
36
47
  }
37
48
  async getActiveAgents() {
38
49
  try {
39
- const perfMetrics = await this.getPerformanceMetrics();
40
- const sessionFiles = await this.getSessionFiles();
41
50
  const agents = [];
42
- for (const file of sessionFiles){
43
- try {
44
- const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');
45
- const sessionData = JSON.parse(content);
46
- if (sessionData.agents && Array.isArray(sessionData.agents)) {
47
- agents.push(...sessionData.agents);
51
+ const agentsDir = '.claude-flow/agents';
52
+ try {
53
+ const agentFiles = await fs.readdir(agentsDir);
54
+ for (const file of agentFiles){
55
+ if (file.endsWith('.json')) {
56
+ try {
57
+ const content = await fs.readFile(path.join(agentsDir, file), 'utf8');
58
+ const agent = JSON.parse(content);
59
+ agents.push(agent);
60
+ } catch {}
48
61
  }
49
- } catch {}
50
- }
51
- if (agents.length === 0 && perfMetrics) {
52
- const activeCount = perfMetrics.activeAgents || 0;
53
- const totalCount = perfMetrics.totalAgents || 0;
54
- for(let i = 0; i < totalCount; i++){
55
- agents.push({
56
- id: `agent-${i + 1}`,
57
- name: `Agent ${i + 1}`,
58
- type: i === 0 ? 'orchestrator' : 'worker',
59
- status: i < activeCount ? 'active' : 'idle',
60
- activeTasks: i < activeCount ? 1 : 0,
61
- lastActivity: Date.now() - i * 1000
62
- });
62
+ }
63
+ } catch {}
64
+ if (agents.length === 0) {
65
+ const sessionFiles = await this.getSessionFiles();
66
+ for (const file of sessionFiles){
67
+ try {
68
+ const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');
69
+ const sessionData = JSON.parse(content);
70
+ if (sessionData.agents && Array.isArray(sessionData.agents)) {
71
+ agents.push(...sessionData.agents);
72
+ }
73
+ } catch {}
63
74
  }
64
75
  }
65
76
  return agents;
@@ -135,7 +146,7 @@ export class MetricsReader {
135
146
  }
136
147
  async getMCPServerStatus() {
137
148
  try {
138
- const { stdout } = await execAsync('ps aux | grep -E "mcp-server\\.js|claude-flow mcp start" | grep -v grep | wc -l');
149
+ const { stdout } = await execAsync('ps aux | grep -E "mcp" | grep -v grep | wc -l');
139
150
  const processCount = parseInt(stdout.trim(), 10);
140
151
  const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E "claude-flow start" | grep -v grep | wc -l');
141
152
  const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;
@@ -164,6 +175,7 @@ export class MetricsReader {
164
175
  };
165
176
  }
166
177
  }
167
- }
178
+ };
179
+ export { MetricsReader };
168
180
 
169
181
  //# sourceMappingURL=metrics-reader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/metrics-reader.ts"],"sourcesContent":["import * as fs from 'fs/promises';\nimport * as path from 'path';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\ninterface SystemMetrics {\n timestamp: number;\n memoryTotal: number;\n memoryUsed: number;\n memoryFree: number;\n memoryUsagePercent: number;\n memoryEfficiency: number;\n cpuCount: number;\n cpuLoad: number;\n platform: string;\n uptime: number;\n}\n\ninterface TaskMetric {\n id: string;\n type: string;\n success: boolean;\n duration: number;\n timestamp: number;\n metadata: Record<string, any>;\n}\n\ninterface PerformanceMetrics {\n startTime: number;\n totalTasks: number;\n successfulTasks: number;\n failedTasks: number;\n totalAgents: number;\n activeAgents: number;\n neuralEvents: number;\n}\n\ninterface Agent {\n id: string;\n name: string;\n type: string;\n status: 'active' | 'idle' | 'busy';\n activeTasks: number;\n lastActivity?: number;\n}\n\ninterface SessionData {\n id: string;\n startTime: number;\n endTime?: number;\n agents: Agent[];\n tasks: any[];\n status: 'active' | 'completed' | 'paused';\n}\n\ninterface MCPServerStatus {\n running: boolean;\n processCount: number;\n orchestratorRunning: boolean;\n port: number | null;\n connections: number;\n}\n\nexport class MetricsReader {\n private metricsDir = '.claude-flow/metrics';\n private sessionsDir = '.claude-flow/sessions';\n\n async getSystemMetrics(): Promise<SystemMetrics | null> {\n try {\n const filePath = path.join(this.metricsDir, 'system-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n const metrics: SystemMetrics[] = JSON.parse(content);\n \n // Return the most recent metric\n return metrics.length > 0 ? metrics[metrics.length - 1] : null;\n } catch (error) {\n return null;\n }\n }\n\n async getTaskMetrics(): Promise<TaskMetric[]> {\n try {\n const filePath = path.join(this.metricsDir, 'task-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getPerformanceMetrics(): Promise<PerformanceMetrics | null> {\n try {\n const filePath = path.join(this.metricsDir, 'performance.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getActiveAgents(): Promise<Agent[]> {\n try {\n // First check performance metrics for agent count\n const perfMetrics = await this.getPerformanceMetrics();\n \n // Also check session files for more detailed agent info\n const sessionFiles = await this.getSessionFiles();\n const agents: Agent[] = [];\n \n for (const file of sessionFiles) {\n try {\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');\n const sessionData = JSON.parse(content);\n \n if (sessionData.agents && Array.isArray(sessionData.agents)) {\n agents.push(...sessionData.agents);\n }\n } catch {\n // Skip invalid session files\n }\n }\n \n // If no agents found in sessions, create mock agents based on performance metrics\n if (agents.length === 0 && perfMetrics) {\n const activeCount = perfMetrics.activeAgents || 0;\n const totalCount = perfMetrics.totalAgents || 0;\n \n for (let i = 0; i < totalCount; i++) {\n agents.push({\n id: `agent-${i + 1}`,\n name: `Agent ${i + 1}`,\n type: i === 0 ? 'orchestrator' : 'worker',\n status: i < activeCount ? 'active' : 'idle',\n activeTasks: i < activeCount ? 1 : 0,\n lastActivity: Date.now() - (i * 1000)\n });\n }\n }\n \n return agents;\n } catch (error) {\n return [];\n }\n }\n\n async getSessionStatus(): Promise<SessionData | null> {\n try {\n const sessionFiles = await this.getSessionFiles();\n \n if (sessionFiles.length === 0) {\n return null;\n }\n \n // Get the most recent session\n const mostRecentFile = sessionFiles[sessionFiles.length - 1];\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', mostRecentFile), 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getRecentTasks(limit: number = 10): Promise<any[]> {\n try {\n const taskMetrics = await this.getTaskMetrics();\n \n // Sort by timestamp descending and take the limit\n return taskMetrics\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, limit)\n .map(task => ({\n id: task.id,\n type: task.type,\n status: task.success ? 'completed' : 'failed',\n startTime: task.timestamp - task.duration,\n endTime: task.timestamp,\n duration: task.duration\n }));\n } catch (error) {\n return [];\n }\n }\n\n async getOverallHealth(): Promise<'healthy' | 'warning' | 'error'> {\n try {\n const systemMetrics = await this.getSystemMetrics();\n const perfMetrics = await this.getPerformanceMetrics();\n \n if (!systemMetrics && !perfMetrics) {\n return 'error';\n }\n \n // Check memory usage\n if (systemMetrics && systemMetrics.memoryUsagePercent > 90) {\n return 'error';\n }\n \n if (systemMetrics && systemMetrics.memoryUsagePercent > 75) {\n return 'warning';\n }\n \n // Check CPU load\n if (systemMetrics && systemMetrics.cpuLoad > 0.8) {\n return 'warning';\n }\n \n // Check task failure rate\n if (perfMetrics && perfMetrics.totalTasks > 0) {\n const failureRate = perfMetrics.failedTasks / perfMetrics.totalTasks;\n if (failureRate > 0.5) {\n return 'error';\n }\n if (failureRate > 0.2) {\n return 'warning';\n }\n }\n \n return 'healthy';\n } catch (error) {\n return 'error';\n }\n }\n\n private async getSessionFiles(): Promise<string[]> {\n try {\n const files = await fs.readdir(path.join(this.sessionsDir, 'pair'));\n return files.filter(f => f.endsWith('.json')).sort();\n } catch (error) {\n return [];\n }\n }\n\n async getMCPServerStatus(): Promise<MCPServerStatus> {\n try {\n // Check if MCP server process is running\n const { stdout } = await execAsync('ps aux | grep -E \"mcp-server\\\\.js|claude-flow mcp start\" | grep -v grep | wc -l');\n const processCount = parseInt(stdout.trim(), 10);\n \n // Check for orchestrator running\n const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E \"claude-flow start\" | grep -v grep | wc -l');\n const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;\n \n // Determine status\n const isRunning = processCount > 0;\n \n // Try to get port from process (default is 3000)\n let port: number | null = 3000;\n try {\n const { stdout: portOut } = await execAsync('lsof -i :3000 2>/dev/null | grep LISTEN | wc -l');\n if (parseInt(portOut.trim(), 10) === 0) {\n // If port 3000 not listening, check other common ports\n port = null;\n }\n } catch {\n // lsof might not be available or port not in use\n }\n \n return {\n running: isRunning,\n processCount,\n orchestratorRunning,\n port,\n connections: processCount > 0 ? Math.max(1, processCount - 1) : 0 // Estimate connections\n };\n } catch (error) {\n // Fallback if commands fail\n return {\n running: false,\n processCount: 0,\n orchestratorRunning: false,\n port: null,\n connections: 0\n };\n }\n }\n}"],"names":["fs","path","exec","promisify","execAsync","MetricsReader","metricsDir","sessionsDir","getSystemMetrics","filePath","join","content","readFile","metrics","JSON","parse","length","error","getTaskMetrics","getPerformanceMetrics","getActiveAgents","perfMetrics","sessionFiles","getSessionFiles","agents","file","sessionData","Array","isArray","push","activeCount","activeAgents","totalCount","totalAgents","i","id","name","type","status","activeTasks","lastActivity","Date","now","getSessionStatus","mostRecentFile","getRecentTasks","limit","taskMetrics","sort","a","b","timestamp","slice","map","task","success","startTime","duration","endTime","getOverallHealth","systemMetrics","memoryUsagePercent","cpuLoad","totalTasks","failureRate","failedTasks","files","readdir","filter","f","endsWith","getMCPServerStatus","stdout","processCount","parseInt","trim","orchestratorOut","orchestratorRunning","isRunning","port","portOut","running","connections","Math","max"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/utils/metrics-reader.js"],"sourcesContent":["import { promises as fs } from 'fs';\nimport path from 'path';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\nclass MetricsReader {\n constructor() {\n this.metricsDir = '.claude-flow/metrics';\n this.sessionsDir = '.claude-flow/sessions';\n }\n\n async getSystemMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'system-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n const metrics = JSON.parse(content);\n \n // Return the most recent metric\n return metrics.length > 0 ? metrics[metrics.length - 1] : null;\n } catch (error) {\n return null;\n }\n }\n\n async getTaskQueue() {\n try {\n const queueFile = '.claude-flow/tasks/queue.json';\n const content = await fs.readFile(queueFile, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getTaskMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'task-metrics.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return [];\n }\n }\n\n async getPerformanceMetrics() {\n try {\n const filePath = path.join(this.metricsDir, 'performance.json');\n const content = await fs.readFile(filePath, 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getActiveAgents() {\n try {\n const agents = [];\n \n // Check for agents in the .claude-flow/agents directory\n const agentsDir = '.claude-flow/agents';\n try {\n const agentFiles = await fs.readdir(agentsDir);\n for (const file of agentFiles) {\n if (file.endsWith('.json')) {\n try {\n const content = await fs.readFile(path.join(agentsDir, file), 'utf8');\n const agent = JSON.parse(content);\n agents.push(agent);\n } catch {\n // Skip invalid agent files\n }\n }\n }\n } catch {\n // Agents directory doesn't exist yet\n }\n \n // If no agents found in directory, check session files\n if (agents.length === 0) {\n const sessionFiles = await this.getSessionFiles();\n for (const file of sessionFiles) {\n try {\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', file), 'utf8');\n const sessionData = JSON.parse(content);\n \n if (sessionData.agents && Array.isArray(sessionData.agents)) {\n agents.push(...sessionData.agents);\n }\n } catch {\n // Skip invalid session files\n }\n }\n }\n \n return agents;\n } catch (error) {\n return [];\n }\n }\n\n async getSessionStatus() {\n try {\n const sessionFiles = await this.getSessionFiles();\n \n if (sessionFiles.length === 0) {\n return null;\n }\n \n // Get the most recent session\n const mostRecentFile = sessionFiles[sessionFiles.length - 1];\n const content = await fs.readFile(path.join(this.sessionsDir, 'pair', mostRecentFile), 'utf8');\n return JSON.parse(content);\n } catch (error) {\n return null;\n }\n }\n\n async getRecentTasks(limit = 10) {\n try {\n const taskMetrics = await this.getTaskMetrics();\n \n // Sort by timestamp descending and take the limit\n return taskMetrics\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, limit)\n .map(task => ({\n id: task.id,\n type: task.type,\n status: task.success ? 'completed' : 'failed',\n startTime: task.timestamp - task.duration,\n endTime: task.timestamp,\n duration: task.duration\n }));\n } catch (error) {\n return [];\n }\n }\n\n async getOverallHealth() {\n try {\n const systemMetrics = await this.getSystemMetrics();\n const perfMetrics = await this.getPerformanceMetrics();\n \n if (!systemMetrics && !perfMetrics) {\n return 'error';\n }\n \n // Check memory usage\n if (systemMetrics && systemMetrics.memoryUsagePercent > 90) {\n return 'error';\n }\n \n if (systemMetrics && systemMetrics.memoryUsagePercent > 75) {\n return 'warning';\n }\n \n // Check CPU load\n if (systemMetrics && systemMetrics.cpuLoad > 0.8) {\n return 'warning';\n }\n \n // Check task failure rate\n if (perfMetrics && perfMetrics.totalTasks > 0) {\n const failureRate = perfMetrics.failedTasks / perfMetrics.totalTasks;\n if (failureRate > 0.5) {\n return 'error';\n }\n if (failureRate > 0.2) {\n return 'warning';\n }\n }\n \n return 'healthy';\n } catch (error) {\n return 'error';\n }\n }\n\n async getSessionFiles() {\n try {\n const files = await fs.readdir(path.join(this.sessionsDir, 'pair'));\n return files.filter(f => f.endsWith('.json')).sort();\n } catch (error) {\n return [];\n }\n }\n\n async getMCPServerStatus() {\n try {\n // Check if MCP server process is running (including flow-nexus and other MCP variants)\n const { stdout } = await execAsync('ps aux | grep -E \"mcp\" | grep -v grep | wc -l');\n const processCount = parseInt(stdout.trim(), 10);\n \n // Check for orchestrator running\n const { stdout: orchestratorOut } = await execAsync('ps aux | grep -E \"claude-flow start\" | grep -v grep | wc -l');\n const orchestratorRunning = parseInt(orchestratorOut.trim(), 10) > 0;\n \n // Determine status\n const isRunning = processCount > 0;\n \n // Try to get port from process (default is 3000)\n let port = 3000;\n try {\n const { stdout: portOut } = await execAsync('lsof -i :3000 2>/dev/null | grep LISTEN | wc -l');\n if (parseInt(portOut.trim(), 10) === 0) {\n // If port 3000 not listening, check other common ports\n port = null;\n }\n } catch {\n // lsof might not be available or port not in use\n }\n \n return {\n running: isRunning,\n processCount,\n orchestratorRunning,\n port,\n connections: processCount > 0 ? Math.max(1, processCount - 1) : 0 // Estimate connections\n };\n } catch (error) {\n // Fallback if commands fail\n return {\n running: false,\n processCount: 0,\n orchestratorRunning: false,\n port: null,\n connections: 0\n };\n }\n }\n}\n\nexport { MetricsReader };"],"names":["promises","fs","path","exec","promisify","execAsync","MetricsReader","metricsDir","sessionsDir","getSystemMetrics","filePath","join","content","readFile","metrics","JSON","parse","length","error","getTaskQueue","queueFile","getTaskMetrics","getPerformanceMetrics","getActiveAgents","agents","agentsDir","agentFiles","readdir","file","endsWith","agent","push","sessionFiles","getSessionFiles","sessionData","Array","isArray","getSessionStatus","mostRecentFile","getRecentTasks","limit","taskMetrics","sort","a","b","timestamp","slice","map","task","id","type","status","success","startTime","duration","endTime","getOverallHealth","systemMetrics","perfMetrics","memoryUsagePercent","cpuLoad","totalTasks","failureRate","failedTasks","files","filter","f","getMCPServerStatus","stdout","processCount","parseInt","trim","orchestratorOut","orchestratorRunning","isRunning","port","portOut","running","connections","Math","max"],"mappings":"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"}