# shellcheck shell=dash

xrc:mod:lib     coco        toolspec/invoke
___x_cmd_coco_toolspec(){
    [ $# -gt 0 ]    ||      set -- --help

    local op="$1";  shift
    case "$op" in
        -h|--help)  ___x_cmd help -m coco toolspec "$@";    return 0 ;;
        check|prompt|invoke|ls)
                    ___x_cmd_coco_toolspec___"$op" "$@" ;;
        *)          N=coco M="Unknown subcommand ==> $op" log:ret:64 ;;
    esac
}

___x_cmd_coco_toolspec___check(){
    local cmd="$1"
    case "$cmd" in
        findgrep|readfile|writefile|diffv4a|shcmd|create_temp|histsum|update_stats|get_x_cmd_help|gg|\
            mcp|get_x_cmd_help_unit) return 0 ;;
        *)  return 1 ;;
    esac
}

___x_cmd_coco_toolspec___ls(){
    local i=""; local n=""
    for i in "$___X_CMD_ROOT_MOD/coco/lib/toolspec/data/schema"/*.json; do
        n="${i##*/}"
        n="${n%.json}"
        printf "%s\n" "$n"
    done
}

___x_cmd_coco_toolspec___prompt(){
    local fp="$___X_CMD_ROOT_MOD/coco/lib/toolspec/data/tool.prompt.md"
    [ -f "$fp" ] || N=coco M="Not found prompt file for tool spec" log:ret:1
    ___x_cmd_cmds cat "$fp"
}
