Files
aitbc/cli/completion/aitbc_shell_completion.sh
oib 00d00cb964 docs(readme): enhance README with CLI tool documentation, GPU provider monetization focus, and performance metrics
- Add comprehensive CLI tool section with quick start guide and key features
- Add "Earn Money with Your GPU" section highlighting provider benefits and success tips
- Add CLI installation and usage examples for marketplace, agent management, and development
- Add multi-language CLI support documentation
- Add performance metrics section with response times, processing speed, and up
2026-03-02 22:36:28 +01:00

252 lines
7.1 KiB
Bash

#!/bin/bash
# AITBC CLI Shell Completion Script
# Source this file in your .bashrc or .zshrc to enable tab completion
# AITBC CLI completion for bash
_aitbc_completion() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Main commands
if [[ ${COMP_CWORD} -eq 1 ]]; then
opts="client miner wallet auth blockchain marketplace admin config simulate help --help --version --url --api-key --output -v --debug --config-file"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
# Command-specific completions
case "${COMP_WORDS[1]}" in
client)
_aitbc_client_completion
;;
miner)
_aitbc_miner_completion
;;
wallet)
_aitbc_wallet_completion
;;
auth)
_aitbc_auth_completion
;;
blockchain)
_aitbc_blockchain_completion
;;
marketplace)
_aitbc_marketplace_completion
;;
admin)
_aitbc_admin_completion
;;
config)
_aitbc_config_completion
;;
simulate)
_aitbc_simulate_completion
;;
--output)
opts="table json yaml"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
}
# Client command completion
_aitbc_client_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="submit status blocks receipts cancel history"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
submit)
opts="inference training fine-tuning"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
status|cancel)
# Complete with job IDs (placeholder)
COMPREPLY=( $(compgen -W "job_123 job_456 job_789" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Miner command completion
_aitbc_miner_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="register poll mine heartbeat status"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
fi
}
# Wallet command completion
_aitbc_wallet_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="balance earn spend history address stats send request"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
fi
}
# Auth command completion
_aitbc_auth_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="login logout token status refresh keys import-env"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
keys)
opts="create list revoke"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Blockchain command completion
_aitbc_blockchain_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="blocks block transaction status sync-status peers info supply validators"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
fi
}
# Marketplace command completion
_aitbc_marketplace_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="gpu orders pricing reviews"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
gpu)
opts="list details book release"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Admin command completion
_aitbc_admin_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="status jobs miners analytics logs maintenance action"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
jobs|miners)
opts="list details cancel suspend"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Config command completion
_aitbc_config_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="show set path edit reset export import validate environments profiles"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
set)
opts="coordinator_url api_key timeout"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
export|import)
opts="--format json yaml"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
profiles)
opts="save list load delete"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Simulate command completion
_aitbc_simulate_completion() {
local cur prev opts
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ ${COMP_CWORD} -eq 2 ]]; then
opts="init user workflow load-test scenario results reset"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
elif [[ ${COMP_CWORD} -eq 3 ]]; then
case "${COMP_WORDS[2]}" in
user)
opts="create list balance fund"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
scenario)
opts="list run"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
;;
*)
;;
esac
fi
}
# Register the completion
complete -F _aitbc_completion aitbc
# For zsh compatibility
if [[ -n "$ZSH_VERSION" ]]; then
autoload -U compinit
compinit -i
_aitbc_completion() {
local matches
matches=($(compgen -W "$(aitbc _completion_helper "${words[@]}")" -- "${words[CURRENT]}"))
_describe 'aitbc commands' matches
}
compdef _aitbc_completion aitbc
fi
echo "AITBC CLI shell completion loaded!"
echo "Tab completion is now enabled for the aitbc command."