#compdef task-maker-tools

autoload -U is-at-least

_task-maker-tools() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" : \
'*-v[Verbose mode (-v, -vv, -vvv, etc.). Note that it does not play well with curses ui]' \
'*--verbose[Verbose mode (-v, -vv, -vvv, etc.). Note that it does not play well with curses ui]' \
'-h[Print help]' \
'--help[Print help]' \
":: :_task-maker-tools_commands" \
"*::: :->task-maker-tools" \
&& ret=0
    case $state in
    (task-maker-tools)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:task-maker-tools-command-$line[1]:"
        case $line[1] in
            (clear)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(gen-autocompletion)
_arguments "${_arguments_options[@]}" : \
'-t+[Where to write the autocompletion files]:TARGET:_files' \
'--target=[Where to write the autocompletion files]:TARGET:_files' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(server)
_arguments "${_arguments_options[@]}" : \
'--client-password=[Password for the connection of the clients]:CLIENT_PASSWORD:_default' \
'--worker-password=[Password for the connection of the workers]:WORKER_PASSWORD:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'-h[Print help]' \
'--help[Print help]' \
'::client_addr -- Address to bind the server on for listening for the clients:_default' \
'::worker_addr -- Address to bind the server on for listening for the workers:_default' \
&& ret=0
;;
(worker)
_arguments "${_arguments_options[@]}" : \
'--name=[The name to use for the worker in remote executions]:NAME:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'-h[Print help]' \
'--help[Print help]' \
':server_addr -- Address to use to connect to a remote server:_default' \
'::worker_id -- ID of the worker (to differentiate between multiple workers on the same machine):_default' \
&& ret=0
;;
(reset)
_arguments "${_arguments_options[@]}" : \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(sandbox)
_arguments "${_arguments_options[@]}" : \
'-w+[Working directory of the sandbox]:WORKDIR:_files' \
'--workdir=[Working directory of the sandbox]:WORKDIR:_files' \
'-m+[Memory limit for the sandbox, in KiB]:MEMORY_LIMIT:_default' \
'--memory-limit=[Memory limit for the sandbox, in KiB]:MEMORY_LIMIT:_default' \
'-s+[Stack limit for the sandbox, in KiB]:STACK_LIMIT:_default' \
'--stack-limit=[Stack limit for the sandbox, in KiB]:STACK_LIMIT:_default' \
'*-r+[List of additional directory mounted read-only inside the sandbox]:READABLE_DIRS:_files' \
'*--readable-dirs=[List of additional directory mounted read-only inside the sandbox]:READABLE_DIRS:_files' \
'--uid=[User id]:UID:_default' \
'--gid=[User id]:GID:_default' \
'--single-process[Prevent forking]' \
'--mount-tmpfs[Mount /tmp and /dev/null inside the sandbox]' \
'--mount-proc[Mount /proc inside the sandbox]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::command -- Command to execute inside the sandbox. If not specified, bash is executed:_default' \
&& ret=0
;;
(task-info)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'-j[Produce JSON output]' \
'--json[Produce JSON output]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(booklet)
_arguments "${_arguments_options[@]}" : \
'-c+[Directory of the context]:CONTEST_DIR:_files' \
'--contest-dir=[Directory of the context]:CONTEST_DIR:_files' \
'*-t+[Directory of the task]:TASK_DIR:_files' \
'*--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'--ui=[Which UI to use, available UIs are\: print, raw, curses, json]:UI:_default' \
'--no-cache=[Disable the cache for this comma separated list of tags]' \
'--extra-time=[Give to the solution some extra time before being killed]:EXTRA_TIME:_default' \
'--extra-memory=[Give to the solution some extra memory before being killed]:EXTRA_MEMORY:_default' \
'--num-cores=[The number of CPU cores to use]:NUM_CORES:_default' \
'--evaluate-on=[Run the evaluation on a remote server instead of locally]:EVALUATE_ON:_default' \
'--name=[The name to use for the client in remote executions]:NAME:_default' \
'--priority=[Priority of the evaluations spawned by this invocation of task-maker; no effect if running locally]:PRIORITY:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'--booklet-solutions[Include the solutions in the booklet]' \
'--keep-sandboxes[Keep all the sandbox directories]' \
'--dry-run[Do not write any file inside the task directory]' \
'--copy-exe[Copy the executables to the bin/ folder]' \
'--copy-logs[Copy the logs of some executions to the bin/logs/ folder]' \
'--copy-dag[Store the DAG in DOT format inside of bin/DAG.dot]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(copy-competition-files)
_arguments "${_arguments_options[@]}" : \
'-c+[Directory of the context]:CONTEST_DIR:_files' \
'--contest-dir=[Directory of the context]:CONTEST_DIR:_files' \
'--ui=[Which UI to use, available UIs are\: print, raw, curses, json]:UI:_default' \
'--no-cache=[Disable the cache for this comma separated list of tags]' \
'--extra-time=[Give to the solution some extra time before being killed]:EXTRA_TIME:_default' \
'--extra-memory=[Give to the solution some extra memory before being killed]:EXTRA_MEMORY:_default' \
'--num-cores=[The number of CPU cores to use]:NUM_CORES:_default' \
'--evaluate-on=[Run the evaluation on a remote server instead of locally]:EVALUATE_ON:_default' \
'--name=[The name to use for the client in remote executions]:NAME:_default' \
'--priority=[Priority of the evaluations spawned by this invocation of task-maker; no effect if running locally]:PRIORITY:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'--keep-sandboxes[Keep all the sandbox directories]' \
'--dry-run[Do not write any file inside the task directory]' \
'--copy-exe[Copy the executables to the bin/ folder]' \
'--copy-logs[Copy the logs of some executions to the bin/logs/ folder]' \
'--copy-dag[Store the DAG in DOT format inside of bin/DAG.dot]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(terry-statement)
_arguments "${_arguments_options[@]}" : \
'-s+[Path to statement template (uses task directory structure if omitted)]:STATEMENT_PATH:_default' \
'--statement-path=[Path to statement template (uses task directory structure if omitted)]:STATEMENT_PATH:_default' \
'-t+[Path to subtasks file (none if omitted)]:SUBTASKS_PATH:_default' \
'--subtasks-path=[Path to subtasks file (none if omitted)]:SUBTASKS_PATH:_default' \
'-o+[Path to store output statement (stdout if omitted)]:OUTPUT_PATH:_default' \
'--output-path=[Path to store output statement (stdout if omitted)]:OUTPUT_PATH:_default' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(fuzz-checker)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'--fuzz-dir=[Where to store fuzzing data]:FUZZ_DIR:_files' \
'--sanitizers=[Additional sanitizers to use]:SANITIZERS:_default' \
'-j+[Number of fuzzing process to spawn]:JOBS:_default' \
'--jobs=[Number of fuzzing process to spawn]:JOBS:_default' \
'--checker-timeout=[Maximum number of seconds the checker can run]:CHECKER_TIMEOUT:_default' \
'--max-time=[Maximum fuzzing time in seconds]:MAX_TIME:_default' \
'--no-cache=[Disable the cache for this comma separated list of tags]' \
'--extra-time=[Give to the solution some extra time before being killed]:EXTRA_TIME:_default' \
'--extra-memory=[Give to the solution some extra memory before being killed]:EXTRA_MEMORY:_default' \
'--num-cores=[The number of CPU cores to use]:NUM_CORES:_default' \
'--evaluate-on=[Run the evaluation on a remote server instead of locally]:EVALUATE_ON:_default' \
'--name=[The name to use for the client in remote executions]:NAME:_default' \
'--priority=[Priority of the evaluations spawned by this invocation of task-maker; no effect if running locally]:PRIORITY:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'--quiet[Don'\''t print the fuzzer output to the console, but redirect it to a file]' \
'--no-build[Don'\''t run the evaluation for building the output files]' \
'--keep-sandboxes[Keep all the sandbox directories]' \
'--dry-run[Do not write any file inside the task directory]' \
'--copy-exe[Copy the executables to the bin/ folder]' \
'--copy-logs[Copy the logs of some executions to the bin/logs/ folder]' \
'--copy-dag[Store the DAG in DOT format inside of bin/DAG.dot]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::extra_args -- List of additional arguments to pass to the compiler:_default' \
&& ret=0
;;
(find-bad-case)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'--no-cache=[Disable the cache for this comma separated list of tags]' \
'--extra-time=[Give to the solution some extra time before being killed]:EXTRA_TIME:_default' \
'--extra-memory=[Give to the solution some extra memory before being killed]:EXTRA_MEMORY:_default' \
'--num-cores=[The number of CPU cores to use]:NUM_CORES:_default' \
'--evaluate-on=[Run the evaluation on a remote server instead of locally]:EVALUATE_ON:_default' \
'--name=[The name to use for the client in remote executions]:NAME:_default' \
'--priority=[Priority of the evaluations spawned by this invocation of task-maker; no effect if running locally]:PRIORITY:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'-b+[Number of input files to generate for each batch]:BATCH_SIZE:_default' \
'--batch-size=[Number of input files to generate for each batch]:BATCH_SIZE:_default' \
'--keep-sandboxes[Keep all the sandbox directories]' \
'--dry-run[Do not write any file inside the task directory]' \
'--copy-exe[Copy the executables to the bin/ folder]' \
'--copy-logs[Copy the logs of some executions to the bin/logs/ folder]' \
'--copy-dag[Store the DAG in DOT format inside of bin/DAG.dot]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
':solution -- Path to the solution to check against the official solution of the task:_files' \
'*::generator_args -- Arguments to pass to the generator. The value '\''{}'\'' will be replaced with a random seed:_default' \
&& ret=0
;;
(add-solution-checks)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'--ui=[Which UI to use, available UIs are\: print, raw, curses, json]:UI:_default' \
'--store-dir=[Where to store the storage files, including the cache]:STORE_DIR:_files' \
'--max-cache=[Maximum size of the storage directory, in MiB]:MAX_CACHE:_default' \
'--min-cache=[When the storage is flushed, this is the new maximum size, in MiB]:MIN_CACHE:_default' \
'*-s+[Evaluate only the solution with the specified path]:SOLUTION:_files' \
'*--solution=[Evaluate only the solution with the specified path]:SOLUTION:_files' \
'--no-cache=[Disable the cache for this comma separated list of tags]' \
'--extra-time=[Give to the solution some extra time before being killed]:EXTRA_TIME:_default' \
'--extra-memory=[Give to the solution some extra memory before being killed]:EXTRA_MEMORY:_default' \
'--num-cores=[The number of CPU cores to use]:NUM_CORES:_default' \
'--evaluate-on=[Run the evaluation on a remote server instead of locally]:EVALUATE_ON:_default' \
'--name=[The name to use for the client in remote executions]:NAME:_default' \
'--priority=[Priority of the evaluations spawned by this invocation of task-maker; no effect if running locally]:PRIORITY:_default' \
'--keep-sandboxes[Keep all the sandbox directories]' \
'--dry-run[Do not write any file inside the task directory]' \
'--copy-exe[Copy the executables to the bin/ folder]' \
'--copy-logs[Copy the logs of some executions to the bin/logs/ folder]' \
'--copy-dag[Store the DAG in DOT format inside of bin/DAG.dot]' \
'-i[Write the @check directly to the solution files]' \
'--in-place[Write the @check directly to the solution files]' \
'-o[Overwrite existing @check rules]' \
'--overwrite[Overwrite existing @check rules]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::filter -- Execute only the solutions whose names start with the filter:_default' \
&& ret=0
;;
(export-solution-checks)
_arguments "${_arguments_options[@]}" : \
'-t+[Directory of the task]:TASK_DIR:_files' \
'--task-dir=[Directory of the task]:TASK_DIR:_files' \
'--max-depth=[Look at most for this number of parents for searching the task]:MAX_DEPTH:_default' \
'*-s+[Evaluate only the solution with the specified path]:SOLUTION:_files' \
'*--solution=[Evaluate only the solution with the specified path]:SOLUTION:_files' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'*::filter -- Execute only the solutions whose names start with the filter:_default' \
&& ret=0
;;
(internal-sandbox)
_arguments "${_arguments_options[@]}" : \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_task-maker-tools__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:task-maker-tools-help-command-$line[1]:"
        case $line[1] in
            (clear)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(gen-autocompletion)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(server)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(worker)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(reset)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(sandbox)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(task-info)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(booklet)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(copy-competition-files)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(terry-statement)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(fuzz-checker)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(find-bad-case)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(add-solution-checks)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(export-solution-checks)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(internal-sandbox)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_task-maker-tools_commands] )) ||
_task-maker-tools_commands() {
    local commands; commands=(
'clear:Clear a task directory' \
'gen-autocompletion:Generate the autocompletion files for the shell' \
'server:Spawn an instance of the server' \
'worker:Spawn an instance of a worker' \
'reset:Wipe the internal storage of task-maker' \
'sandbox:Run a command inside a sandbox similar to the one used by task-maker' \
'task-info:Obtain the information about a task' \
'booklet:Compile just the booklet for a task or a contest' \
'copy-competition-files:Copy statements and attachments of a contest in a separate directory' \
'terry-statement:Build terry statements by adding the subtask table' \
'fuzz-checker:Fuzz the checker of a task' \
'find-bad-case:Generate and search for an input file that make a solution fail' \
'add-solution-checks:Add the @check comments to the solutions' \
'export-solution-checks:Exports solution checks to json' \
'internal-sandbox:Run the sandbox instead of the normal task-maker' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'task-maker-tools commands' commands "$@"
}
(( $+functions[_task-maker-tools__add-solution-checks_commands] )) ||
_task-maker-tools__add-solution-checks_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools add-solution-checks commands' commands "$@"
}
(( $+functions[_task-maker-tools__booklet_commands] )) ||
_task-maker-tools__booklet_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools booklet commands' commands "$@"
}
(( $+functions[_task-maker-tools__clear_commands] )) ||
_task-maker-tools__clear_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools clear commands' commands "$@"
}
(( $+functions[_task-maker-tools__copy-competition-files_commands] )) ||
_task-maker-tools__copy-competition-files_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools copy-competition-files commands' commands "$@"
}
(( $+functions[_task-maker-tools__export-solution-checks_commands] )) ||
_task-maker-tools__export-solution-checks_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools export-solution-checks commands' commands "$@"
}
(( $+functions[_task-maker-tools__find-bad-case_commands] )) ||
_task-maker-tools__find-bad-case_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools find-bad-case commands' commands "$@"
}
(( $+functions[_task-maker-tools__fuzz-checker_commands] )) ||
_task-maker-tools__fuzz-checker_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools fuzz-checker commands' commands "$@"
}
(( $+functions[_task-maker-tools__gen-autocompletion_commands] )) ||
_task-maker-tools__gen-autocompletion_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools gen-autocompletion commands' commands "$@"
}
(( $+functions[_task-maker-tools__help_commands] )) ||
_task-maker-tools__help_commands() {
    local commands; commands=(
'clear:Clear a task directory' \
'gen-autocompletion:Generate the autocompletion files for the shell' \
'server:Spawn an instance of the server' \
'worker:Spawn an instance of a worker' \
'reset:Wipe the internal storage of task-maker' \
'sandbox:Run a command inside a sandbox similar to the one used by task-maker' \
'task-info:Obtain the information about a task' \
'booklet:Compile just the booklet for a task or a contest' \
'copy-competition-files:Copy statements and attachments of a contest in a separate directory' \
'terry-statement:Build terry statements by adding the subtask table' \
'fuzz-checker:Fuzz the checker of a task' \
'find-bad-case:Generate and search for an input file that make a solution fail' \
'add-solution-checks:Add the @check comments to the solutions' \
'export-solution-checks:Exports solution checks to json' \
'internal-sandbox:Run the sandbox instead of the normal task-maker' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'task-maker-tools help commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__add-solution-checks_commands] )) ||
_task-maker-tools__help__add-solution-checks_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help add-solution-checks commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__booklet_commands] )) ||
_task-maker-tools__help__booklet_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help booklet commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__clear_commands] )) ||
_task-maker-tools__help__clear_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help clear commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__copy-competition-files_commands] )) ||
_task-maker-tools__help__copy-competition-files_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help copy-competition-files commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__export-solution-checks_commands] )) ||
_task-maker-tools__help__export-solution-checks_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help export-solution-checks commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__find-bad-case_commands] )) ||
_task-maker-tools__help__find-bad-case_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help find-bad-case commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__fuzz-checker_commands] )) ||
_task-maker-tools__help__fuzz-checker_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help fuzz-checker commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__gen-autocompletion_commands] )) ||
_task-maker-tools__help__gen-autocompletion_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help gen-autocompletion commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__help_commands] )) ||
_task-maker-tools__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help help commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__internal-sandbox_commands] )) ||
_task-maker-tools__help__internal-sandbox_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help internal-sandbox commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__reset_commands] )) ||
_task-maker-tools__help__reset_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help reset commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__sandbox_commands] )) ||
_task-maker-tools__help__sandbox_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help sandbox commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__server_commands] )) ||
_task-maker-tools__help__server_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help server commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__task-info_commands] )) ||
_task-maker-tools__help__task-info_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help task-info commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__terry-statement_commands] )) ||
_task-maker-tools__help__terry-statement_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help terry-statement commands' commands "$@"
}
(( $+functions[_task-maker-tools__help__worker_commands] )) ||
_task-maker-tools__help__worker_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools help worker commands' commands "$@"
}
(( $+functions[_task-maker-tools__internal-sandbox_commands] )) ||
_task-maker-tools__internal-sandbox_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools internal-sandbox commands' commands "$@"
}
(( $+functions[_task-maker-tools__reset_commands] )) ||
_task-maker-tools__reset_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools reset commands' commands "$@"
}
(( $+functions[_task-maker-tools__sandbox_commands] )) ||
_task-maker-tools__sandbox_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools sandbox commands' commands "$@"
}
(( $+functions[_task-maker-tools__server_commands] )) ||
_task-maker-tools__server_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools server commands' commands "$@"
}
(( $+functions[_task-maker-tools__task-info_commands] )) ||
_task-maker-tools__task-info_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools task-info commands' commands "$@"
}
(( $+functions[_task-maker-tools__terry-statement_commands] )) ||
_task-maker-tools__terry-statement_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools terry-statement commands' commands "$@"
}
(( $+functions[_task-maker-tools__worker_commands] )) ||
_task-maker-tools__worker_commands() {
    local commands; commands=()
    _describe -t commands 'task-maker-tools worker commands' commands "$@"
}

if [ "$funcstack[1]" = "_task-maker-tools" ]; then
    _task-maker-tools "$@"
else
    compdef _task-maker-tools task-maker-tools
fi
