# shellcheck shell=dash disable=SC2034

xrc cfgy
___x_cmd_jina_cfg(){
    [ "$#" -gt 0 ] || set -- --help

    local op="$1"; shift
    case "$op" in
        -h|--help)      ___x_cmd help -m jina --cfg ;;
        *)              ___x_cmd_jina_cfg___invoke "$op" "$@" ;;
    esac
}

___x_cmd_jina_cur(){
    local X_help_cmd=; X_help_cmd='x help -m jina --cur' help:arg:parse
    ___x_cmd_jina_cfg___invoke --current "$@"
}

___x_cmd_jina_init(){
    local cur_apikey=; local embedModel=; local cur_endpoint=; local cur_rerankerModel=;
    local cur_proxy=;
    if [ -f "$(___x_cmd_jina_cur --get config)" ]; then
        ___x_cmd_jina_cur cur_apikey:=apikey cur_embedModel:=embedModel cur_rerankerModel:=rerankerModel cur_proxy:=proxy
    fi

    jina:info "To get jina's API key -> https://jina.ai/embeddings/#apiform"

    ___x_cmd_jina_cfg___invoke --init ${cur_apikey:+"--ctrl_exit_strategy"}                                                            \
        apikey                      "Set up the API key of jina key"            "$cur_apikey"                                          \
                            '=~*'   "^[A-Za-z0-9_\\-]+$"           --                                                                     \
        embedModel                  "Set the embedding model of jina ai"     "${cur_embedModel:-"jina-embeddings-v2-base-en"}"         \
                            '='     jina-embeddings-v2-base-en                                                                         \
                                    jina-embeddings-v2-base-code                                                                       \
                                    jina-embeddings-v2-base-zh  --                                                                     \
        rerankerModel               "Set the reranker  model of jina ai"     "${cur_rerankerModel:-"jina-reranker-v1-base-en "}"       \
                            '='     jina-reranker-v1-base-en                                                                           \
                                    jina-reranker-v1-turbo-en                                                                          \
                                    jina-reranker-v1-tiny-en                                                                           \
                                    jina-reranker-v2-base-multilingual                                                                 \
                                    jina-colbert-v1-en          --                                                                     \
        proxy                       "Set up the network proxy for API requests (optional)"                                             \
                                    "$cur_proxy" '=~'    "^([a-z0-9]+://)?[0-9.:]+$" --
}

# Config setting the key.
# set the default prompt

___X_CMD_JINA_CFG_VARLIST="apikey,embedModel,rerankerModel,proxy"
___x_cmd_jina_cfg___invoke(){
    ___x_cmd_cfgy_obj                                               \
        --prefix            ___X_CMD_JINA_CFG_DATA                \
        --default-config    "${___X_CMD_ROOT_CFG}/jina/X.cfg.yml" \
        --current-config    "${___X_CMD_JINA_LOCAL_CONFIG}"       \
        --current-profile   "${___X_CMD_JINA_LOCAL_PROFILE}"      \
        --varlist           "$___X_CMD_JINA_CFG_VARLIST"          \
        "$@"
}

