create-openclaw-bot 5.1.1 → 5.1.2

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 CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog (English)
2
2
 
3
3
 
4
+ ## [5.1.2] — 2026-04-06
5
+
6
+ ### 🐛 Fix Shell Injection: Sync Script Now Uses Base64 Encoding
7
+
8
+ The `node -e "...JSON.stringify(script)..."` approach caused `/bin/sh: Syntax error: "(" unexpected` because `JSON.stringify` produces a double-quoted string that breaks out of the surrounding `node -e "..."` shell argument.
9
+
10
+ - **Fix**: sync script content is now **base64-encoded at compose-generation time** using `Buffer.from(script).toString('base64')`
11
+ - The generated entrypoint becomes: `node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('<b64>','base64').toString())"`
12
+ - Base64 output contains only `[A-Za-z0-9+/=]` — zero shell quoting issues, works in YAML `|` blocks without escaping
13
+ - Applies to all compose generation paths: Docker web wizard (`setup.js` × 2) and Docker CLI (`cli.js` × 2)
14
+
15
+
4
16
  ## [5.1.1] — 2026-04-06
5
17
 
6
18
  ### 🔧 9Router Smart-Route Sync — Stable via API
package/CHANGELOG.vi.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # Changelog (Tiếng Việt)
2
2
 
3
3
 
4
+ ## [5.1.2] — 2026-04-06
5
+
6
+ ### 🐛 Fix Shell Injection: Sync Script Dùng Base64
7
+
8
+ Approach node -e JSON.stringify gây lỗi /bin/sh: Syntax error "(" unexpected vì JSON.stringify sinh chuỗi double-quoted phá vỡ shell argument.
9
+
10
+ - **Fix**: nội dung sync script nay được **base64-encode tại thời điểm gen compose** bằng Buffer.from(script).toString base64
11
+ - Entrypoint sinh ra dạng: node -e writeFileSync Buffer.from b64 base64 toString
12
+ - Base64 chỉ chứa [A-Za-z0-9+/=] — không có ký tự đặc biệt, hoạt động đúng trong YAML block
13
+ - Áp dụng cho tất cả luồng gen compose: Docker web wizard (setup.js x2) và Docker CLI (cli.js x2)
14
+
15
+
4
16
  ## [5.1.1] — 2026-04-06
5
17
 
6
18
  ### 🔧 9Router Smart-Route Sync — Ổn định qua API
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # 🦞 OpenClaw Setup
4
4
 
5
5
  <p align="center">
6
- <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.1.1-0EA5E9?style=for-the-badge" alt="Version 5.1.1" /></a>
6
+ <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.1.2-0EA5E9?style=for-the-badge" alt="Version 5.1.2" /></a>
7
7
  <a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
8
8
  <a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
9
9
  <a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
@@ -24,7 +24,7 @@ An interactive **CLI tool** and **Setup Wizard** to deploy your own free AI Bot
24
24
 
25
25
  ---
26
26
 
27
- ## 🆕 What's new in v5.1.1
27
+ ## 🆕 What's new in v5.1.2
28
28
 
29
29
  - 💻 **OS-First Setup** — Step 1 is now choosing your OS (Windows, macOS, Ubuntu, VPS). All scripts, configs, and instructions are generated to match.
30
30
  - 🧠 **Gemma 4 — 4 sizes** — `gemma4:e2b` (~4 GB), `gemma4:e4b` (~8 GB), `gemma4:26b` (~18 GB), `gemma4:31b` (~24 GB). Auto-pulled on first launch.
@@ -112,7 +112,7 @@ Run in your terminal → follow the interactive prompts → startup script is ge
112
112
  2. Open this repo as your workspace
113
113
  3. Paste into chat:
114
114
  ```
115
- Read SETUP.md and set up OpenClaw v5.1.1 for me.
115
+ Read SETUP.md and set up OpenClaw v5.1.2 for me.
116
116
  My bot token is X. Use 9Router (no API key).
117
117
  My project folder: <YOUR_PATH>
118
118
  ```
package/README.vi.md CHANGED
@@ -3,7 +3,7 @@
3
3
  # 🦞 OpenClaw Setup
4
4
 
5
5
  <p align="center">
6
- <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.1.1-0EA5E9?style=for-the-badge" alt="Version 5.1.1" /></a>
6
+ <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.1.2-0EA5E9?style=for-the-badge" alt="Version 5.1.2" /></a>
7
7
  <a href="https://github.com/tuanminhhole/openclaw-setup?tab=MIT-1-ov-file"><img src="https://img.shields.io/badge/LICENSE-MIT-success?style=for-the-badge" alt="MIT License" /></a>
8
8
  <a href="https://www.npmjs.com/package/create-openclaw-bot"><img src="https://img.shields.io/npm/v/create-openclaw-bot?style=for-the-badge&label=CLI&color=2563EB&logo=npm&logoColor=white" alt="NPM Version" /></a>
9
9
  <a href="https://github.com/tuanminhhole/openclaw-setup/stargazers"><img src="https://img.shields.io/github/stars/tuanminhhole/openclaw-setup?style=for-the-badge&color=eab308&logo=github&logoColor=white" alt="GitHub Stars" /></a>
@@ -24,7 +24,7 @@ Công cụ **CLI tương tác** và **Setup Wizard** để tự triển khai Bot
24
24
 
25
25
  ---
26
26
 
27
- ## 🆕 Có gì mới trong v5.1.1
27
+ ## 🆕 Có gì mới trong v5.1.2
28
28
 
29
29
  - 💻 **OS-First Setup** — Bước đầu tiên bây giờ là chọn hệ điều hành của bạn (Windows, macOS, Ubuntu, VPS). Toàn bộ script, cấu hình và hướng dẫn được tạo ra phù hợp với lựa chọn đó.
30
30
  - 🧠 **Gemma 4 — 4 kích thước** — `gemma4:e2b` (~4 GB), `gemma4:e4b` (~8 GB), `gemma4:26b` (~18 GB), `gemma4:31b` (~24 GB). Tự pull về khi bot khởi động lần đầu.
@@ -112,7 +112,7 @@ Chạy lệnh trên trong Terminal → làm theo các prompt tương tác → sc
112
112
  2. Mở repo này làm workspace
113
113
  3. Paste vào chat:
114
114
  ```
115
- Read SETUP.md and set up OpenClaw v5.1.1 for me.
115
+ Read SETUP.md and set up OpenClaw v5.1.2 for me.
116
116
  My bot token is X. Use 9Router (no API key).
117
117
  My project folder: <THƯ_MỤC_CỦA_BẠN>
118
118
  ```
package/cli.js CHANGED
@@ -1,4 +1,4 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
 
3
3
  import { input, select, checkbox, confirm } from '@inquirer/prompts';
4
4
  import fs from 'fs-extra';
@@ -1312,7 +1312,7 @@ ${dependsOn}${extraHosts} ports:
1312
1312
  - -c
1313
1313
  - |
1314
1314
  npm install -g 9router
1315
- node -e "require('fs').writeFileSync('/tmp/sync.js',${JSON.stringify(syncComboScript)})"
1315
+ node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('\${Buffer.from(syncComboScript).toString('base64')}','base64').toString())"
1316
1316
  node /tmp/sync.js > /tmp/sync.log 2>&1 &
1317
1317
  exec 9router -n -t -l -H 0.0.0.0 -p 20128 --skip-update
1318
1318
  environment:
@@ -1407,7 +1407,7 @@ ${hasBrowserDesktop ? ` extra_hosts:\n - "host.docker.internal:host-gate
1407
1407
  - -c
1408
1408
  - |
1409
1409
  npm install -g 9router
1410
- node -e "require('fs').writeFileSync('/tmp/sync.js',${JSON.stringify(syncComboScript)})"
1410
+ node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('\${Buffer.from(syncComboScript).toString('base64')}','base64').toString())"
1411
1411
  node /tmp/sync.js > /tmp/sync.log 2>&1 &
1412
1412
  exec 9router -n -t -l -H 0.0.0.0 -p 20128 --skip-update
1413
1413
  environment:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-openclaw-bot",
3
- "version": "5.1.1",
3
+ "version": "5.1.2",
4
4
  "description": "Interactive CLI installer for OpenClaw Bot",
5
5
  "main": "cli.js",
6
6
  "bin": {
package/setup.js CHANGED
@@ -1920,7 +1920,7 @@ ${dependsOn}${extraHosts} volumes:
1920
1920
  - -c
1921
1921
  - |
1922
1922
  npm install -g 9router
1923
- node -e "require('fs').writeFileSync('/tmp/sync.js',${JSON.stringify(syncScript)})"
1923
+ node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('\${Buffer.from(syncScript).toString('base64')}','base64').toString())"
1924
1924
  node /tmp/sync.js > /tmp/sync.log 2>&1 &
1925
1925
  exec 9router -n -t -l -H 0.0.0.0 -p 20128 --skip-update
1926
1926
  environment:
@@ -2016,7 +2016,7 @@ ${extraHostsBlock}
2016
2016
  - -c
2017
2017
  - |
2018
2018
  npm install -g 9router
2019
- node -e "require('fs').writeFileSync('/tmp/sync.js',${JSON.stringify(syncScript)})"
2019
+ node -e "require('fs').writeFileSync('/tmp/sync.js',Buffer.from('\${Buffer.from(syncScript).toString('base64')}','base64').toString())"
2020
2020
  node /tmp/sync.js > /tmp/sync.log 2>&1 &
2021
2021
  exec 9router -n -t -l -H 0.0.0.0 -p 20128 --skip-update
2022
2022
  environment: