


___x_cmd_claw_run___agentwork___handlemsg(){
    local msg="$1"

    local chatid
    case "$msg" in
        weixin:*)
                if ! ___x_cmd worker isalive --ns x-claw-default-worker --name weixin-clawbot; then
                    ___x_cmd worker run --ns x-claw-default-worker --name weixin-clawbot --  ___x_cmd_claw_run___agentwork___handlemsg___weixin
                fi
                ;;
        telegram:*)
                chatid="${msg#*:}"
                if ! ___x_cmd worker isalive --ns x-claw-default-worker --name "telegram-${chatid}"; then
                    ___x_cmd worker run --ns x-claw-default-worker --name "telegram-${chatid}" -- ___x_cmd_claw_run___agentwork___handlemsg___telegram "${chatid}"
                fi
                ;;
        feishu:*)
                chatid="${msg#*:}"
                if ! ___x_cmd worker isalive --ns x-claw-default-worker --name "feishu-${chatid}"; then
                    ___x_cmd worker run --ns x-claw-default-worker --name "feishu-${chatid}" -- ___x_cmd_claw_run___agentwork___handlemsg___feishu "${chatid}"
                fi
                ;;
        qywx:*)
                chatid="${msg#*:}"
                if ! ___x_cmd worker isalive --ns x-claw-default-worker --name "qywx-${chatid}"; then
                    ___x_cmd worker run --ns x-claw-default-worker --name "qywx-${chatid}" -- ___x_cmd_claw_run___agentwork___handlemsg___qywx "${chatid}"
                fi
                ;;
    esac
}


# ___x_cmd_claw_run___agentwork___weixin(){
#     local mq_fp="$1"
#     local msg_list=""

#     local last_handler_timestamp=""

#     while ___x_cmd tailer msg waitunread "$mq_fp"; do
#         msg_list="$( ___x_cmd tailer msg recent )"
#         ___x_cmd tailer msg commit
#         ___x_cmd agent request ""
#         ___x_cmd epoch get_
#         last_handler_timestamp="$x_"
#     done
# }

___x_cmd_claw_run___agentwork___handlemsg___weixin(){
    local chatid="clawbot"
    ___x_cmd_claw_run___activate_im "weixin" "$chatid" || return $?

    # User activity refreshes the session; clear any pending reminder marker.
    ___x_cmd rmrf "$___X_CMD_CLAW_WEIXIN_REMIND_MARKER" 2>/dev/null || true

    ___x_cmd_claw_weixin_has_unread || return 0
    claw:info "Weixin unread messages detected, launching agent request"
    ___x_cmd_claw_run___agentrequest___handlemsg "weixin" "$chatid" "$( ___x_cmd_claw_weixin_get_unread )"
}

___x_cmd_claw_run___agentwork___handlemsg___telegram(){
    local chatid="$1"
    [ -n "$chatid" ] || return 0

    ___x_cmd_claw_run___activate_im "telegram" "$chatid" || return $?

    ___x_cmd_claw_telegram_has_unread "$chatid" || return 0
    claw:info "Telegram unread messages detected, launching agent request"
    ___x_cmd_claw_run___agentrequest___handlemsg "telegram" "$chatid" "$( ___x_cmd_claw_telegram_get_unread "$chatid" )"
}

___x_cmd_claw_run___agentwork___handlemsg___feishu(){
    local chatid="$1"
    [ -n "$chatid" ] || return 0

    ___x_cmd_claw_run___activate_im "feishu" "$chatid" || return $?

    ___x_cmd_claw_feishu_has_unread "$chatid" || return 0
    claw:info "Feishu unread messages detected, launching agent request"
    ___x_cmd_claw_run___agentrequest___handlemsg "feishu" "$chatid" "$( ___x_cmd_claw_feishu_get_unread "$chatid" )"
}

___x_cmd_claw_run___agentwork___handlemsg___qywx(){
    local chatid="$1"
    [ -n "$chatid" ] || return 0

    ___x_cmd_claw_run___activate_im "qywx" "$chatid" || return $?

    ___x_cmd_claw_qywx_has_unread "$chatid" || return 0
    claw:info "Qywx unread messages detected, launching agent request"
    ___x_cmd_claw_run___agentrequest___handlemsg "qywx" "$chatid" "$( ___x_cmd_claw_qywx_get_unread "$chatid" )"
}
