# shellcheck shell=dash disable=SC2034

xrc cfgy
___x_cmd_buse_cfg(){
    [ "$#" -gt 0 ] || {
        ___x_cmd_buse_init
        return
    }

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

___x_cmd_buse_cur(){
    local X_help_cmd=; X_help_cmd='___x_cmd help -m buse --cur' help:arg:parse
    ___x_cmd_buse_cfg --current "$@"
}

___x_cmd_buse_init(){
    local cur_apikey=""; local cur_model=""; local cur_headless=""; local cur_mcp=""

    if [ -f "$(___x_cmd_buse_cur --get config)" ]; then
        ___x_cmd_buse_cur cur_apikey:=apikey cur_model:=model cur_headless:=headless cur_mcp:=mcp 2>/dev/null
    fi

    buse:info "To get Browser Use Cloud API key -> https://cloud.browser-use.com/dashboard/api"

    ___x_cmd_buse_cfg___invoke --init  \
        apikey      "Set up the Browser Use Cloud API key"                               \
                    "$cur_apikey"   '=~*' "^[A-Za-z0-9-]+$"                     --       \
        model       "Model to use"                                                      \
                    "${cur_model:-gemini-2.0-flash}"      '='                           \
                        gemini-2.5-pro gemini-2.5-flash gemini-2.0-flash gemini-2.0-flash-lite  \
                        gpt-4.1 gpt-4.1-mini gpt-4.1-nano gpt-4o-mini gpt-4o    --      \
        headless    "Run browser in headless mode"                                      \
                    "${cur_headless:-disable}"  '=' disable enable              --      \
        mcp         "Run as MCP server (exposes JSON RPC via stdin/stdout)"             \
                    "${cur_mcp:-disable}"       '=' disable enable
}

___X_CMD_BUSE_CFG_VARLIST="apikey,model,headless,mcp"
___x_cmd_buse_cfg___invoke(){
    ___x_cmd_cfgy_obj                                               \
        --prefix            ___X_CMD_BUSE_CFG_DATA                \
        --default-config    "${___X_CMD_ROOT_CFG}/buse/X.cfg.yml" \
        --current-config    "${___X_CMD_BUSE_LOCAL_CONFIG}"       \
        --current-profile   "${___X_CMD_BUSE_LOCAL_PROFILE}"      \
        --varlist           "$___X_CMD_BUSE_CFG_VARLIST"          \
        "$@"
}

