claude-flow
Version:
Ruflo - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration
539 lines (506 loc) • 21.5 kB
JavaScript
/**
* V3 CLI Completions Command
* Shell completions for bash, zsh, fish, powershell
*
* Created with ruv.io
*/
import { output } from '../output.js';
// Get all top-level commands for completions
const TOP_LEVEL_COMMANDS = [
'swarm', 'agent', 'task', 'session', 'config', 'memory', 'workflow',
'hive-mind', 'hooks', 'daemon', 'neural', 'security', 'performance',
'providers', 'plugins', 'deployment', 'claims', 'embeddings',
'doctor', 'completions', 'help', 'version'
];
// Swarm subcommands
const SWARM_SUBCOMMANDS = ['init', 'status', 'scale', 'destroy', 'monitor', 'optimize'];
// Agent subcommands
const AGENT_SUBCOMMANDS = ['spawn', 'terminate', 'status', 'list', 'pool', 'health', 'update'];
// Task subcommands
const TASK_SUBCOMMANDS = ['create', 'status', 'list', 'complete', 'cancel'];
// Memory subcommands
const MEMORY_SUBCOMMANDS = ['store', 'retrieve', 'search', 'list', 'delete', 'stats', 'configure', 'cleanup', 'compress', 'export', 'import'];
// Hive-mind subcommands
const HIVE_MIND_SUBCOMMANDS = ['init', 'spawn', 'status', 'task', 'join', 'leave', 'consensus', 'broadcast', 'memory', 'optimize-memory', 'shutdown'];
// Hooks subcommands
const HOOKS_SUBCOMMANDS = ['pre-edit', 'post-edit', 'pre-command', 'post-command', 'pre-task', 'post-task', 'route', 'explain', 'pretrain', 'build-agents', 'metrics', 'transfer', 'list', 'intelligence'];
// Generate bash completion script
function generateBashCompletion() {
return `# claude-flow bash completion
# Generated by claude-flow completions bash
# Add this to ~/.bashrc or ~/.bash_completion
_claude_flow_completions() {
local cur prev words cword
_init_completion -n : || return
local commands="${TOP_LEVEL_COMMANDS.join(' ')}"
# Subcommand completions
local swarm_commands="${SWARM_SUBCOMMANDS.join(' ')}"
local agent_commands="${AGENT_SUBCOMMANDS.join(' ')}"
local task_commands="${TASK_SUBCOMMANDS.join(' ')}"
local memory_commands="${MEMORY_SUBCOMMANDS.join(' ')}"
local hive_mind_commands="${HIVE_MIND_SUBCOMMANDS.join(' ')}"
local hooks_commands="${HOOKS_SUBCOMMANDS.join(' ')}"
case "\${words[1]}" in
swarm)
COMPREPLY=( $(compgen -W "\${swarm_commands}" -- "\${cur}") )
return 0
;;
agent)
COMPREPLY=( $(compgen -W "\${agent_commands}" -- "\${cur}") )
return 0
;;
task)
COMPREPLY=( $(compgen -W "\${task_commands}" -- "\${cur}") )
return 0
;;
memory)
COMPREPLY=( $(compgen -W "\${memory_commands}" -- "\${cur}") )
return 0
;;
hive-mind|hive)
COMPREPLY=( $(compgen -W "\${hive_mind_commands}" -- "\${cur}") )
return 0
;;
hooks)
COMPREPLY=( $(compgen -W "\${hooks_commands}" -- "\${cur}") )
return 0
;;
neural)
COMPREPLY=( $(compgen -W "train status patterns predict optimize" -- "\${cur}") )
return 0
;;
security)
COMPREPLY=( $(compgen -W "scan cve threats audit secrets" -- "\${cur}") )
return 0
;;
performance)
COMPREPLY=( $(compgen -W "benchmark profile metrics optimize bottleneck" -- "\${cur}") )
return 0
;;
plugins)
COMPREPLY=( $(compgen -W "list install uninstall toggle info create" -- "\${cur}") )
return 0
;;
deployment|deploy)
COMPREPLY=( $(compgen -W "deploy status rollback history environments logs" -- "\${cur}") )
return 0
;;
claims)
COMPREPLY=( $(compgen -W "list check grant revoke roles policies" -- "\${cur}") )
return 0
;;
embeddings)
COMPREPLY=( $(compgen -W "generate search compare collections index providers" -- "\${cur}") )
return 0
;;
daemon)
COMPREPLY=( $(compgen -W "start stop status trigger enable" -- "\${cur}") )
return 0
;;
providers)
COMPREPLY=( $(compgen -W "list configure test models usage" -- "\${cur}") )
return 0
;;
doctor)
COMPREPLY=( $(compgen -W "--fix --component --verbose" -- "\${cur}") )
return 0
;;
esac
if [[ \${cword} -eq 1 ]]; then
COMPREPLY=( $(compgen -W "\${commands}" -- "\${cur}") )
return 0
fi
}
complete -F _claude_flow_completions claude-flow
complete -F _claude_flow_completions npx\\ @claude-flow/cli@v3alpha
`;
}
// Generate zsh completion script
function generateZshCompletion() {
return `#compdef claude-flow
# claude-flow zsh completion
# Generated by claude-flow completions zsh
# Add to ~/.zfunc/_claude-flow or ~/.zsh/completions/_claude-flow
_claude_flow() {
local -a commands
local -a subcommands
commands=(
'swarm:Multi-agent swarm orchestration'
'agent:Agent lifecycle management'
'task:Task creation and management'
'session:Session management'
'config:Configuration management'
'memory:Memory operations with AgentDB'
'workflow:Workflow automation'
'hive-mind:Queen-led consensus coordination'
'hooks:Self-learning automation hooks'
'daemon:Background service management'
'neural:Neural pattern training'
'security:Security scanning and CVE detection'
'performance:Performance profiling'
'providers:AI provider management'
'plugins:Plugin management'
'deployment:Deployment management'
'claims:Claims-based authorization'
'embeddings:Vector embeddings'
'doctor:System diagnostics'
'completions:Shell completion scripts'
'help:Show help'
'version:Show version'
)
_arguments -C \\
'1: :->command' \\
'2: :->subcommand' \\
'*:: :->args' && return
case $state in
command)
_describe -t commands 'claude-flow commands' commands
;;
subcommand)
case $words[2] in
swarm)
subcommands=(
'init:Initialize swarm'
'status:Show swarm status'
'scale:Scale agent count'
'destroy:Shutdown swarm'
'monitor:Real-time monitoring'
'optimize:Optimize topology'
)
;;
agent)
subcommands=(
'spawn:Create new agent'
'terminate:Stop agent'
'status:Check agent status'
'list:List all agents'
'pool:Manage agent pool'
'health:Health check'
'update:Update agent config'
)
;;
task)
subcommands=(
'create:Create new task'
'status:Check task status'
'list:List all tasks'
'complete:Mark task complete'
'cancel:Cancel task'
)
;;
memory)
subcommands=(
'store:Store data'
'retrieve:Retrieve data'
'search:Semantic search'
'list:List entries'
'delete:Delete entry'
'stats:Show statistics'
'configure:Configure backend'
'cleanup:Clean stale data'
'compress:Compress storage'
'export:Export to file'
'import:Import from file'
)
;;
hive-mind|hive)
subcommands=(
'init:Initialize hive mind'
'spawn:Spawn worker agents'
'status:Show hive status'
'task:Submit task'
'join:Join agent to hive'
'leave:Remove agent'
'consensus:Consensus management'
'broadcast:Broadcast message'
'memory:Shared memory'
'optimize-memory:Optimize patterns'
'shutdown:Shutdown hive'
)
;;
hooks)
subcommands=(
'pre-edit:Before file editing'
'post-edit:After file editing'
'pre-command:Before command execution'
'post-command:After command execution'
'pre-task:Before task start'
'post-task:After task completion'
'route:Route task to agent'
'explain:Explain routing'
'pretrain:Bootstrap intelligence'
'build-agents:Generate agent configs'
'metrics:Show metrics'
'transfer:Transfer learning'
'list:List hooks'
'intelligence:Neural intelligence commands'
)
;;
neural)
subcommands=(
'train:Train neural patterns'
'status:Check neural status'
'patterns:Manage patterns'
'predict:Make predictions'
'optimize:Optimize models'
)
;;
security)
subcommands=(
'scan:Security scan'
'cve:CVE detection'
'threats:Threat modeling'
'audit:Security audit'
'secrets:Secrets scanning'
)
;;
performance)
subcommands=(
'benchmark:Run benchmarks'
'profile:Profile code'
'metrics:Show metrics'
'optimize:Optimize performance'
'bottleneck:Find bottlenecks'
)
;;
plugins)
subcommands=(
'list:List plugins'
'install:Install plugin'
'uninstall:Remove plugin'
'toggle:Enable/disable'
'info:Plugin details'
'create:Scaffold plugin'
)
;;
deployment|deploy)
subcommands=(
'deploy:Deploy to environment'
'status:Deployment status'
'rollback:Rollback version'
'history:Deployment history'
'environments:List environments'
'logs:View logs'
)
;;
claims)
subcommands=(
'list:List claims'
'check:Check permission'
'grant:Grant claim'
'revoke:Revoke claim'
'roles:Manage roles'
'policies:Manage policies'
)
;;
embeddings)
subcommands=(
'generate:Generate embeddings'
'search:Semantic search'
'compare:Compare vectors'
'collections:Manage collections'
'index:Index operations'
'providers:Embedding providers'
)
;;
daemon)
subcommands=(
'start:Start daemon'
'stop:Stop daemon'
'status:Daemon status'
'trigger:Trigger event'
'enable:Enable feature'
)
;;
providers)
subcommands=(
'list:List providers'
'configure:Configure provider'
'test:Test connection'
'models:Available models'
'usage:Usage statistics'
)
;;
esac
_describe -t subcommands 'subcommands' subcommands
;;
esac
}
_claude_flow "$@"
`;
}
// Generate fish completion script
function generateFishCompletion() {
return `# claude-flow fish completion
# Generated by claude-flow completions fish
# Save to ~/.config/fish/completions/claude-flow.fish
# Disable file completion by default
complete -c claude-flow -f
# Top-level commands
${TOP_LEVEL_COMMANDS.map(cmd => `complete -c claude-flow -n "__fish_use_subcommand" -a "${cmd}"`).join('\n')}
# Swarm subcommands
${SWARM_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from swarm" -a "${sub}"`).join('\n')}
# Agent subcommands
${AGENT_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from agent" -a "${sub}"`).join('\n')}
# Task subcommands
${TASK_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from task" -a "${sub}"`).join('\n')}
# Memory subcommands
${MEMORY_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from memory" -a "${sub}"`).join('\n')}
# Hive-mind subcommands
${HIVE_MIND_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from hive-mind hive" -a "${sub}"`).join('\n')}
# Hooks subcommands
${HOOKS_SUBCOMMANDS.map(sub => `complete -c claude-flow -n "__fish_seen_subcommand_from hooks" -a "${sub}"`).join('\n')}
# Neural subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from neural" -a "train status patterns predict optimize"
# Security subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from security" -a "scan cve threats audit secrets"
# Performance subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from performance" -a "benchmark profile metrics optimize bottleneck"
# Plugins subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from plugins" -a "list install uninstall toggle info create"
# Deployment subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from deployment deploy" -a "deploy status rollback history environments logs"
# Claims subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from claims" -a "list check grant revoke roles policies"
# Embeddings subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from embeddings" -a "generate search compare collections index providers"
# Daemon subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from daemon" -a "start stop status trigger enable"
# Providers subcommands
complete -c claude-flow -n "__fish_seen_subcommand_from providers" -a "list configure test models usage"
`;
}
// Generate PowerShell completion script
function generatePowerShellCompletion() {
return `# claude-flow PowerShell completion
# Generated by claude-flow completions powershell
# Add to $PROFILE or save to a separate file and dot-source it
$script:ClaudeFlowCommands = @(
'${TOP_LEVEL_COMMANDS.join("',\n '")}'
)
$script:SubCommands = @{
'swarm' = @('${SWARM_SUBCOMMANDS.join("', '")}')
'agent' = @('${AGENT_SUBCOMMANDS.join("', '")}')
'task' = @('${TASK_SUBCOMMANDS.join("', '")}')
'memory' = @('${MEMORY_SUBCOMMANDS.join("', '")}')
'hive-mind' = @('${HIVE_MIND_SUBCOMMANDS.join("', '")}')
'hive' = @('${HIVE_MIND_SUBCOMMANDS.join("', '")}')
'hooks' = @('${HOOKS_SUBCOMMANDS.join("', '")}')
'neural' = @('train', 'status', 'patterns', 'predict', 'optimize')
'security' = @('scan', 'cve', 'threats', 'audit', 'secrets')
'performance' = @('benchmark', 'profile', 'metrics', 'optimize', 'bottleneck')
'plugins' = @('list', 'install', 'uninstall', 'toggle', 'info', 'create')
'deployment' = @('deploy', 'status', 'rollback', 'history', 'environments', 'logs')
'deploy' = @('deploy', 'status', 'rollback', 'history', 'environments', 'logs')
'claims' = @('list', 'check', 'grant', 'revoke', 'roles', 'policies')
'embeddings' = @('generate', 'search', 'compare', 'collections', 'index', 'providers')
'daemon' = @('start', 'stop', 'status', 'trigger', 'enable')
'providers' = @('list', 'configure', 'test', 'models', 'usage')
}
Register-ArgumentCompleter -Native -CommandName claude-flow -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
$tokens = $commandAst.ToString().Split(' ')
$command = $tokens[1]
if ($tokens.Count -eq 2) {
# Complete top-level commands
$script:ClaudeFlowCommands | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
elseif ($tokens.Count -eq 3 -and $script:SubCommands.ContainsKey($command)) {
# Complete subcommands
$script:SubCommands[$command] | Where-Object { $_ -like "$wordToComplete*" } | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
}
`;
}
// Bash subcommand
const bashCommand = {
name: 'bash',
description: 'Generate bash completion script',
action: async (ctx) => {
const script = generateBashCompletion();
output.writeln(script);
return { success: true };
}
};
// Zsh subcommand
const zshCommand = {
name: 'zsh',
description: 'Generate zsh completion script',
action: async (ctx) => {
const script = generateZshCompletion();
output.writeln(script);
return { success: true };
}
};
// Fish subcommand
const fishCommand = {
name: 'fish',
description: 'Generate fish completion script',
action: async (ctx) => {
const script = generateFishCompletion();
output.writeln(script);
return { success: true };
}
};
// PowerShell subcommand
const powershellCommand = {
name: 'powershell',
aliases: ['pwsh'],
description: 'Generate PowerShell completion script',
action: async (ctx) => {
const script = generatePowerShellCompletion();
output.writeln(script);
return { success: true };
}
};
// Main completions command
export const completionsCommand = {
name: 'completions',
description: 'Generate shell completion scripts',
subcommands: [bashCommand, zshCommand, fishCommand, powershellCommand],
options: [],
examples: [
{ command: 'claude-flow completions bash > ~/.bash_completion.d/claude-flow', description: 'Install bash completions' },
{ command: 'claude-flow completions zsh > ~/.zfunc/_claude-flow', description: 'Install zsh completions' },
{ command: 'claude-flow completions fish > ~/.config/fish/completions/claude-flow.fish', description: 'Install fish completions' },
{ command: 'claude-flow completions powershell >> $PROFILE', description: 'Install PowerShell completions' }
],
action: async () => {
output.writeln();
output.writeln(output.bold('Shell Completions'));
output.writeln();
output.writeln('Generate shell completion scripts for tab completion support.');
output.writeln();
output.writeln('Supported shells:');
output.printList([
`${output.highlight('bash')} - Bash completion`,
`${output.highlight('zsh')} - Zsh completion`,
`${output.highlight('fish')} - Fish completion`,
`${output.highlight('powershell')} - PowerShell completion`
]);
output.writeln();
output.writeln('Installation:');
output.writeln();
output.writeln(output.bold('Bash:'));
output.writeln(output.dim(' claude-flow completions bash > ~/.bash_completion.d/claude-flow'));
output.writeln(output.dim(' source ~/.bash_completion.d/claude-flow'));
output.writeln();
output.writeln(output.bold('Zsh:'));
output.writeln(output.dim(' mkdir -p ~/.zfunc'));
output.writeln(output.dim(' claude-flow completions zsh > ~/.zfunc/_claude-flow'));
output.writeln(output.dim(' # Add to ~/.zshrc: fpath=(~/.zfunc $fpath); autoload -Uz compinit && compinit'));
output.writeln();
output.writeln(output.bold('Fish:'));
output.writeln(output.dim(' claude-flow completions fish > ~/.config/fish/completions/claude-flow.fish'));
output.writeln();
output.writeln(output.bold('PowerShell:'));
output.writeln(output.dim(' claude-flow completions powershell >> $PROFILE'));
return { success: true };
}
};
export default completionsCommand;
//# sourceMappingURL=completions.js.map