create-openclaw-bot 5.1.14 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +185 -158
- package/CHANGELOG.vi.md +279 -252
- package/README.md +12 -11
- package/README.vi.md +12 -11
- package/cli.js +416 -233
- package/package.json +1 -1
- package/setup.js +636 -318
- package/style.css +168 -37
- package/tests/smoke-cli-logic.mjs +123 -24
- package/upgrade.ps1 +90 -0
- package/upgrade.sh +93 -0
package/upgrade.sh
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# OpenClaw Upgrade Script — Linux / macOS / Ubuntu
|
|
3
|
+
# Cach dung:
|
|
4
|
+
# bash upgrade.sh
|
|
5
|
+
# curl -fsSL https://raw.githubusercontent.com/tuanminhhole/openclaw-setup/main/upgrade.sh | bash
|
|
6
|
+
# wget -qO- https://raw.githubusercontent.com/tuanminhhole/openclaw-setup/main/upgrade.sh | bash
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
RED='\033[0;31m'
|
|
11
|
+
GREEN='\033[0;32m'
|
|
12
|
+
CYAN='\033[0;36m'
|
|
13
|
+
YELLOW='\033[1;33m'
|
|
14
|
+
GRAY='\033[0;90m'
|
|
15
|
+
NC='\033[0m'
|
|
16
|
+
|
|
17
|
+
# ── Version ──────────────────────────────────────────────────────────────────
|
|
18
|
+
VER=""
|
|
19
|
+
if [ -f "package.json" ] && command -v node &>/dev/null; then
|
|
20
|
+
VER=$(node -p "try{JSON.parse(require('fs').readFileSync('package.json','utf8')).version}catch(e){''}" 2>/dev/null || true)
|
|
21
|
+
fi
|
|
22
|
+
[ -n "$VER" ] && VER_STR=" v${VER}" || VER_STR=""
|
|
23
|
+
|
|
24
|
+
# ── Banner: LOGO + BOX ───────────────────────────────────────────────────────
|
|
25
|
+
echo -e "${RED}"
|
|
26
|
+
echo '████████╗██╗ ██╗ █████╗ ███╗ ██╗███╗ ███╗██╗███╗ ██╗██╗ ██╗██╗ ██╗ ██████╗ ██╗ ███████╗'
|
|
27
|
+
echo '╚══██╔══╝██║ ██║██╔══██╗████╗ ██║████╗ ████║██║████╗ ██║██║ ██║██║ ██║██╔═══██╗██║ ██╔════╝'
|
|
28
|
+
echo ' ██║ ██║ ██║███████║██╔██╗ ██║██╔████╔██║██║██╔██╗ ██║███████║███████║██║ ██║██║ █████╗ '
|
|
29
|
+
echo ' ██║ ██║ ██║██╔══██║██║╚██╗██║██║╚██╔╝██║██║██║╚██╗██║██╔══██║██╔══██║██║ ██║██║ ██╔══╝ '
|
|
30
|
+
echo ' ██║ ╚██████╔╝██║ ██║██║ ╚████║██║ ╚═╝ ██║██║██║ ╚████║██║ ██║██║ ██║╚██████╔╝███████╗███████╗'
|
|
31
|
+
echo ' ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝'
|
|
32
|
+
echo -e "${NC}"
|
|
33
|
+
|
|
34
|
+
# Box — node render (handles emoji visual width correctly on all terminals)
|
|
35
|
+
L1=" 🦞 OpenClaw Setup${VER_STR} | Upgrade Script"
|
|
36
|
+
L2=" Linux / macOS / Ubuntu"
|
|
37
|
+
L1="$L1" L2="$L2" node -e "
|
|
38
|
+
const RED='\x1b[0;31m',NC='\x1b[0m';
|
|
39
|
+
function vw(s){let w=0;for(const c of[...s]){const cp=c.codePointAt(0);w+=(cp>=0x1F000&&cp<=0x1FFFF?2:1);}return w;}
|
|
40
|
+
const L1=process.env.L1,L2=process.env.L2;
|
|
41
|
+
const INNER=Math.max(vw(L1),vw(L2))+2;
|
|
42
|
+
const D='─'.repeat(INNER);const pad=s=>' '.repeat(Math.max(0,INNER-vw(s)));
|
|
43
|
+
console.log(RED+'╭'+D+'╮'+NC);
|
|
44
|
+
console.log(RED+'│'+NC+L1+pad(L1)+RED+'│'+NC);
|
|
45
|
+
console.log(RED+'│'+NC+L2+pad(L2)+RED+'│'+NC);
|
|
46
|
+
console.log(RED+'╰'+D+'╯'+NC);
|
|
47
|
+
"
|
|
48
|
+
echo ""
|
|
49
|
+
|
|
50
|
+
# ── 1. Kiem tra Node.js ──────────────────────────────────────────────────────
|
|
51
|
+
if ! command -v node &> /dev/null; then
|
|
52
|
+
echo -e "${RED} ❌ Khong tim thay Node.js.${NC}"
|
|
53
|
+
echo -e "${YELLOW} Cai dat: https://nodejs.org/${NC}"
|
|
54
|
+
echo ""
|
|
55
|
+
echo -e "${GRAY} Ubuntu/Debian:${NC}"
|
|
56
|
+
echo -e "${GRAY} curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -${NC}"
|
|
57
|
+
echo -e "${GRAY} sudo apt-get install -y nodejs${NC}"
|
|
58
|
+
exit 1
|
|
59
|
+
fi
|
|
60
|
+
NODE_VER=$(node -e "process.stdout.write(process.version)")
|
|
61
|
+
echo -e "${GREEN} ✅ Node.js ${NODE_VER}${NC}"
|
|
62
|
+
|
|
63
|
+
# ── 2. Xac dinh thu muc project ──────────────────────────────────────────────
|
|
64
|
+
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
|
|
65
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
66
|
+
if [ -d "$SCRIPT_DIR/.openclaw" ] || [ -d "$SCRIPT_DIR/docker" ]; then
|
|
67
|
+
PROJECT_DIR="$SCRIPT_DIR"
|
|
68
|
+
else
|
|
69
|
+
PROJECT_DIR="$PWD"
|
|
70
|
+
fi
|
|
71
|
+
else
|
|
72
|
+
PROJECT_DIR="$PWD"
|
|
73
|
+
fi
|
|
74
|
+
echo -e "${GRAY} 📁 Project: $PROJECT_DIR${NC}"
|
|
75
|
+
echo ""
|
|
76
|
+
cd "$PROJECT_DIR"
|
|
77
|
+
|
|
78
|
+
# ── 3. Chay upgrade ──────────────────────────────────────────────────────────
|
|
79
|
+
echo -e "${CYAN} 🔄 Dang lay CLI moi nhat va chay upgrade...${NC}"
|
|
80
|
+
echo -e "${GRAY} npx luon tai create-openclaw-bot@latest — khong can cap nhat tay${NC}"
|
|
81
|
+
echo ""
|
|
82
|
+
|
|
83
|
+
npx create-openclaw-bot@latest upgrade
|
|
84
|
+
EXIT_CODE=$?
|
|
85
|
+
|
|
86
|
+
echo ""
|
|
87
|
+
if [ $EXIT_CODE -eq 0 ]; then
|
|
88
|
+
echo -e "${GREEN} 🎉 Upgrade hoan tat!${NC}"
|
|
89
|
+
echo -e "${CYAN} Dashboard: http://localhost:18791${NC}"
|
|
90
|
+
else
|
|
91
|
+
echo -e "${YELLOW} ⚠️ Ma loi: $EXIT_CODE — xem log o tren.${NC}"
|
|
92
|
+
fi
|
|
93
|
+
echo ""
|