create-openclaw-bot 5.16.6 → 5.16.7

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/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  *Run one command → open the dashboard → your bot is live. Windows · macOS · Linux · VPS — Docker-powered, auto-installed for you.*
8
8
 
9
9
  <p align="center">
10
- <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.16.6-0EA5E9?style=for-the-badge" alt="Version 5.16.6" /></a>
10
+ <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.16.7-0EA5E9?style=for-the-badge" alt="Version 5.16.7" /></a>
11
11
  <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>
12
12
  <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>
13
13
  <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>
@@ -37,7 +37,7 @@
37
37
 
38
38
  ---
39
39
 
40
- ## 🆕 What's New in v5.16.6
40
+ ## 🆕 What's New in v5.16.7
41
41
 
42
42
  - 🩹 **Native installs on OpenClaw 2026.8 are smooth from the first run** - this wave patches the remaining chain of issues measured on fresh customer machines: generated configs pass the new strict checks 100%, install steps run in the right order, and restarts/plugin installs no longer get blocked midway.
43
43
  - 🔑 **9Router login works on Docker**: the new 9Router blocks the default password for "remote" access - and inside Docker every request counts as remote, so 123456 could never log in. It works now (still change the password once you're in).
package/README.vi.md CHANGED
@@ -7,7 +7,7 @@
7
7
  *Chạy một lệnh → mở dashboard → bot lên sóng. Windows · macOS · Linux · VPS — chạy trên Docker, tự cài giúp bạn.*
8
8
 
9
9
  <p align="center">
10
- <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.16.6-0EA5E9?style=for-the-badge" alt="Version 5.16.6" /></a>
10
+ <a href="https://github.com/tuanminhhole/openclaw-setup/releases"><img src="https://img.shields.io/badge/RELEASE-v5.16.7-0EA5E9?style=for-the-badge" alt="Version 5.16.7" /></a>
11
11
  <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>
12
12
  <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>
13
13
  <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>
@@ -37,7 +37,7 @@
37
37
 
38
38
  ---
39
39
 
40
- ## 🆕 Có gì mới trong v5.16.6
40
+ ## 🆕 Có gì mới trong v5.16.7
41
41
 
42
42
  - 🩹 **Cài native trên OpenClaw 2026.8 mượt từ phát đầu** - đợt này vá nốt chuỗi lỗi đo được khi dựng máy khách mới: cấu hình sinh ra sạch 100% với bộ soát khắt khe của OpenClaw mới, các bước cài tự chạy đúng thứ tự, và mọi thao tác khởi động lại/cài plugin không còn bị chặn giữa chừng.
43
43
  - 🔑 **Đăng nhập 9Router hoạt động trên Docker**: bản 9Router mới chặn mật khẩu mặc định với truy cập "từ xa" - mà trong Docker thì mọi truy cập đều bị tính là từ xa, nên trước đây không cách nào vào được bằng 123456. Giờ đăng nhập bình thường (vào rồi vẫn nên đổi mật khẩu).
@@ -149,6 +149,26 @@
149
149
  // we use. This is the turn budget — a DIFFERENT layer from 9router's per-request
150
150
  // timeout, so raising it does not conflict with / overrun 9router.
151
151
  timeoutSeconds: 900,
152
+ // Đổi model trong Control UI KHÔNG được ghi vào config. OpenClaw mặc định "dính" lựa
153
+ // chọn model vào `agents.defaults.model` ([agents/sticky-model-selection] … target=defaults),
154
+ // nên một lần bấm nhầm là bot rời 9router vĩnh viễn, restart cũng không về. "session"
155
+ // giữ lựa chọn trong phiên đang chat. Khoá có từ OpenClaw 2026.8 (setup cài 2026.8.1).
156
+ modelSelectionScope: 'session',
157
+ // Nhiều agent mà không khai chủ thì OpenClaw TẮT heartbeat và chỉ ghi một dòng log:
158
+ // "[heartbeat] disabled — multi-agent config has no ambient heartbeat owner". Bot mất
159
+ // nhịp tự kiểm tra mà không ai hay. Chủ là bot THẬT đầu tiên, không phải agent `main`.
160
+ // Roster nhiều agent mà không khai chủ thì hỏng ba chỗ, đo được từng cái trên máy thật:
161
+ // • [heartbeat] disabled — bot mất nhịp tự kiểm tra, không báo gì
162
+ // • cron.list ✗ "Agent-less cron job has no resolvable owner" — VỠ CẢ TRANG Automations
163
+ // trong Control UI, vì job hệ thống (memory-dreaming…) không gắn agent nào
164
+ // • talk.catalog ✗ "Talk session ownership has no explicit owner"
165
+ // Chủ là bot THẬT đầu tiên, không phải agent `main` của gateway chat.
166
+ ...(agentMetas.length > 1 && agentMetas[0]?.agentId
167
+ ? {
168
+ heartbeat: { agentId: agentMetas[0].agentId },
169
+ systemAgent: { agentId: agentMetas[0].agentId },
170
+ }
171
+ : {}),
152
172
  ...(isLocal ? { llm: { idleTimeoutSeconds: 300 } } : {}),
153
173
  },
154
174
  list: agentsList,
@@ -236,7 +256,15 @@
236
256
  }
237
257
 
238
258
  // ── tools ────────────────────────────────────────────────────────────────
239
- cfg.tools = { profile: 'full', exec: { host: 'gateway', security: 'full', ask: 'off' } };
259
+ cfg.tools = {
260
+ profile: 'full',
261
+ exec: { host: 'gateway', security: 'full', ask: 'off' },
262
+ // Mặc định của OpenClaw là "all" — nguyên văn schema: "any session on the Gateway, including
263
+ // other agents and users". Máy khách hay chạy nhiều bot cho nhiều người, để nguyên là bot này
264
+ // đọc được hội thoại của bot kia qua sessions_history/sessions_search. "agent" giới hạn trong
265
+ // đúng agent của mình. (Khoá có ở cả 2026.7 lẫn 2026.8.)
266
+ sessions: { visibility: 'agent' },
267
+ };
240
268
  const alsoAllow = [];
241
269
  if (selectedSkills.includes('scheduler') || selectedSkills.includes('cron')) {
242
270
  alsoAllow.push('group:automation');
@@ -291,6 +319,13 @@
291
319
  // `osChoice === 'vps'` clause predates native mode; keep native on loopback and reach it through
292
320
  // an SSH tunnel, which is what docker-on-a-VPS effectively does too.
293
321
  const openGatewayBind = deployMode === 'docker' || (osChoice === 'vps' && deployMode !== 'native');
322
+ // Talk (thoại) cũng cần chủ khi có nhiều agent: "Multiple agents are configured, but Talk
323
+ // session ownership has no explicit owner. Set talk.agentId…" — không khai là talk.catalog
324
+ // lỗi ngay lúc mở Control UI.
325
+ if (agentMetas.length > 1 && agentMetas[0]?.agentId) {
326
+ cfg.talk = { ...(cfg.talk || {}), agentId: agentMetas[0].agentId };
327
+ }
328
+
294
329
  cfg.gateway = {
295
330
  port: gatewayPort,
296
331
  mode: 'local',
@@ -207,7 +207,7 @@ if(touched){console.log('[patch-9router] Applied Codex compatibility patch.');}e
207
207
  // Gio gate theo version openclaw THAT trong container: <2026.8 thi backfill nhu cu, ≥2026.8 thi
208
208
  // GO key neu con (tu chua cac project da nhiem). Khong doc duoc version thi KHONG dong nao chay
209
209
  // — tha thieu mot default con hon gieo key lam gateway tu choi boot.
210
- const contextDefaultsScript = `const fs=require('fs'),path=require('path');const p=path.join(process.cwd(),'.openclaw','openclaw.json');if(fs.existsSync(p)){const c=JSON.parse(fs.readFileSync(p,'utf8'));let ch=false;c.skills=c.skills||{};c.skills.workshop=c.skills.workshop||{};if(!c.skills.workshop.approvalPolicy){c.skills.workshop.approvalPolicy='auto';ch=true;}if(c.browser&&c.browser.enabled!==false){c.tools=c.tools||{};const dn=Array.isArray(c.tools.deny)?c.tools.deny:[];if(!dn.includes('browser')){dn.push('browser');c.tools.deny=dn;ch=true;}}let ocMajorMinor=0;try{const v=String(require('child_process').execSync('openclaw --version',{stdio:['ignore','pipe','ignore']})).match(/(\\d{4})\\.(\\d+)/);if(v)ocMajorMinor=Number(v[1])*100+Number(v[2]);}catch(e){}const d=(c.agents&&c.agents.defaults)?c.agents.defaults:null;if(d){if(d.imageMaxDimensionPx===undefined){d.imageMaxDimensionPx=1024;ch=true;}if(d.imageQuality===undefined){d.imageQuality='efficient';ch=true;}if(ocMajorMinor&&ocMajorMinor<202608){d.contextLimits=d.contextLimits||{};if(d.contextLimits.toolResultMaxChars===undefined){d.contextLimits.toolResultMaxChars=12000;ch=true;}}else if(ocMajorMinor>=202608&&d.contextLimits&&d.contextLimits.toolResultMaxChars!==undefined){delete d.contextLimits.toolResultMaxChars;ch=true;}}if(ocMajorMinor>=202608){const ag=c.agents||{};const nEntries=(Array.isArray(ag.list)?ag.list.length:0)+(ag.entries&&typeof ag.entries==='object'?Object.keys(ag.entries).length:0);if(nEntries>1&&ag.ownership!=='explicit'){ag.ownership='explicit';c.agents=ag;ch=true;}try{const agRoot=path.join(process.cwd(),'.openclaw','agents');for(const id of fs.readdirSync(agRoot)){const sf=path.join(agRoot,id,'sessions','sessions.json');if(fs.existsSync(sf)){fs.renameSync(sf,sf+'.bak-legacy-'+Date.now());console.log('[migrate] parked legacy session store '+sf);}}}catch(e){}if(c.commands&&c.commands.ownerDisplay!==undefined){delete c.commands.ownerDisplay;ch=true;}if(c.plugins&&c.plugins.bundledDiscovery!==undefined){delete c.plugins.bundledDiscovery;ch=true;}if(Array.isArray(ag.list)){ag.entries=(ag.entries&&typeof ag.entries==='object'&&!Array.isArray(ag.entries))?ag.entries:{};for(const a of ag.list){if(a&&a.id&&!ag.entries[a.id]){const{id:_aid,...rest}=a;ag.entries[_aid]=rest;}}delete ag.list;c.agents=ag;ch=true;console.log('[migrate] moved agents.list into agents.entries');}try{const ea=path.join(process.cwd(),'.openclaw','exec-approvals.json');if(fs.existsSync(ea)){fs.renameSync(ea,ea+'.bak-legacy-'+Date.now());console.log('[migrate] parked legacy exec approvals '+ea);}}catch(e){}}const pr=c.models&&c.models.providers&&c.models.providers['9router'];if(pr&&Array.isArray(pr.models)){for(const m of pr.models){if(m&&m.id==='smart-route'&&(m.contextWindow===200000||m.contextWindow===131072)){m.contextWindow=1048576;ch=true;}}}if(ch)fs.writeFileSync(p,JSON.stringify(c,null,2));}`;
210
+ const contextDefaultsScript = `const fs=require('fs'),path=require('path');const p=path.join(process.cwd(),'.openclaw','openclaw.json');if(fs.existsSync(p)){const c=JSON.parse(fs.readFileSync(p,'utf8'));let ch=false;c.skills=c.skills||{};c.skills.workshop=c.skills.workshop||{};if(!c.skills.workshop.approvalPolicy){c.skills.workshop.approvalPolicy='auto';ch=true;}if(c.browser&&c.browser.enabled!==false){c.tools=c.tools||{};const dn=Array.isArray(c.tools.deny)?c.tools.deny:[];if(!dn.includes('browser')){dn.push('browser');c.tools.deny=dn;ch=true;}}let ocMajorMinor=0;try{const v=String(require('child_process').execSync('openclaw --version',{stdio:['ignore','pipe','ignore']})).match(/(\\d{4})\\.(\\d+)/);if(v)ocMajorMinor=Number(v[1])*100+Number(v[2]);}catch(e){}const d=(c.agents&&c.agents.defaults)?c.agents.defaults:null;if(d){if(d.imageMaxDimensionPx===undefined){d.imageMaxDimensionPx=1024;ch=true;}if(d.imageQuality===undefined){d.imageQuality='efficient';ch=true;}if(ocMajorMinor&&ocMajorMinor<202608){d.contextLimits=d.contextLimits||{};if(d.contextLimits.toolResultMaxChars===undefined){d.contextLimits.toolResultMaxChars=12000;ch=true;}}else if(ocMajorMinor>=202608&&d.contextLimits&&d.contextLimits.toolResultMaxChars!==undefined){delete d.contextLimits.toolResultMaxChars;ch=true;}}c.gateway=(c.gateway&&typeof c.gateway==='object')?c.gateway:{};if(c.gateway.mode===undefined){c.gateway.mode='local';ch=true;console.log('[migrate] gateway.mode=local (2026.9 tu choi chay neu thieu)');}c.tools=c.tools||{};c.tools.sessions=(c.tools.sessions&&typeof c.tools.sessions==='object')?c.tools.sessions:{};if(c.tools.sessions.visibility===undefined){c.tools.sessions.visibility='agent';ch=true;console.log('[migrate] tools.sessions.visibility=agent (khong cho bot doc phien cua bot khac)');}if(ocMajorMinor>=202608&&d&&d.modelSelectionScope===undefined){d.modelSelectionScope='session';ch=true;console.log('[migrate] agents.defaults.modelSelectionScope=session (khong ghi de model trong config)');}if(ocMajorMinor>=202608){const ag=c.agents||{};const nEntries=(Array.isArray(ag.list)?ag.list.length:0)+(ag.entries&&typeof ag.entries==='object'?Object.keys(ag.entries).length:0);if(nEntries>1&&ag.ownership!=='explicit'){ag.ownership='explicit';c.agents=ag;ch=true;}try{const agRoot=path.join(process.cwd(),'.openclaw','agents');for(const id of fs.readdirSync(agRoot)){const sf=path.join(agRoot,id,'sessions','sessions.json');if(fs.existsSync(sf)){fs.renameSync(sf,sf+'.bak-legacy-'+Date.now());console.log('[migrate] parked legacy session store '+sf);}}}catch(e){}if(c.commands&&c.commands.ownerDisplay!==undefined){delete c.commands.ownerDisplay;ch=true;}if(c.plugins&&c.plugins.bundledDiscovery!==undefined){delete c.plugins.bundledDiscovery;ch=true;}if(Array.isArray(ag.list)){ag.entries=(ag.entries&&typeof ag.entries==='object'&&!Array.isArray(ag.entries))?ag.entries:{};for(const a of ag.list){if(a&&a.id&&!ag.entries[a.id]){const{id:_aid,...rest}=a;ag.entries[_aid]=rest;}}delete ag.list;c.agents=ag;ch=true;console.log('[migrate] moved agents.list into agents.entries');}try{const ea=path.join(process.cwd(),'.openclaw','exec-approvals.json');if(fs.existsSync(ea)){fs.renameSync(ea,ea+'.bak-legacy-'+Date.now());console.log('[migrate] parked legacy exec approvals '+ea);}}catch(e){}try{const ag2=c.agents||{};const ids=(ag2.entries&&typeof ag2.entries==='object')?Object.keys(ag2.entries):(Array.isArray(ag2.list)?ag2.list.map(function(a){return a&&a.id;}).filter(Boolean):[]);if(ids.length>1&&d){if(!(d.heartbeat&&d.heartbeat.agentId)){d.heartbeat=(d.heartbeat&&typeof d.heartbeat==='object')?d.heartbeat:{};d.heartbeat.agentId=ids[0];ch=true;console.log('[migrate] agents.defaults.heartbeat.agentId='+ids[0]+' (khong thi heartbeat tat cam)');}if(!(d.systemAgent&&d.systemAgent.agentId)){d.systemAgent=(d.systemAgent&&typeof d.systemAgent==='object')?d.systemAgent:{};d.systemAgent.agentId=ids[0];ch=true;console.log('[migrate] agents.defaults.systemAgent.agentId='+ids[0]+' (khong thi cron.list vo ca trang Automations)');}const tk=(c.talk&&typeof c.talk==='object')?c.talk:{};if(!tk.agentId){tk.agentId=ids[0];c.talk=tk;ch=true;console.log('[migrate] talk.agentId='+ids[0]+' (khong thi talk.catalog loi khi mo Control UI)');}}}catch(e){}}const pr=c.models&&c.models.providers&&c.models.providers['9router'];if(pr&&Array.isArray(pr.models)){for(const m of pr.models){if(m&&m.id==='smart-route'&&(m.contextWindow===200000||m.contextWindow===131072)){m.contextWindow=1048576;ch=true;}}}if(ch)fs.writeFileSync(p,JSON.stringify(c,null,2));}`;
211
211
 
212
212
  function buildDockerArtifacts(options) {
213
213
  const {
@@ -865,7 +865,7 @@ Skills cung cấp công cụ cho bạn. Cần cái nào, đọc \`SKILL.md\` c
865
865
 
866
866
  Khi nhận heartbeat poll, đừng chỉ trả \`HEARTBEAT_OK\` mọi lần. Dùng heartbeat có ích!
867
867
 
868
- Bạn được tự do sửa \`HEARTBEAT.md\` với checklist/ghi chú ngắn. Giữ nó nhỏ để tiết kiệm token.
868
+ Muốn nhớ việc giữa các nhịp, ghi checklist ngắn vào phần ghi chú (scratch) của chính automation đó — \`openclaw cron scratch\`. Giữ nó nhỏ để tiết kiệm token.
869
869
 
870
870
  ### Heartbeat vs Cron: dùng cái nào
871
871
 
@@ -873,7 +873,7 @@ Bạn được tự do sửa \`HEARTBEAT.md\` với checklist/ghi chú ngắn. G
873
873
 
874
874
  **Cron khi:** cần giờ chính xác ("9:00 sáng thứ Hai"); task cần tách khỏi lịch sử main session; muốn model/thinking khác; nhắc một lần ("nhắc sau 20 phút"); kết quả gửi thẳng vào channel.
875
875
 
876
- **Mẹo:** Gộp các check định kỳ tương tự vào \`HEARTBEAT.md\` thay vì tạo nhiều cron job.
876
+ **Mẹo:** Gộp các check định kỳ tương tự vào MỘT automation thay vì tạo nhiều cron job.
877
877
 
878
878
  **Nên check (xoay vòng, 2-4 lần/ngày):** email khẩn, lịch 24-48h tới, mentions, thời tiết (nếu chủ sắp ra ngoài).
879
879
 
@@ -911,8 +911,7 @@ Mục tiêu: hữu ích mà không phiền. Check vài lần một ngày, làm v
911
911
  - 👤 **USER.md** — Thông tin và bối cảnh về User
912
912
  - 💭 **MEMORY.md** — Bộ nhớ dài hạn
913
913
  - ✨ **DREAMS.md** — Tự tổng hợp hoạt động trong ngày
914
- - 💓 **HEARTBEAT.md** — Nhịp kiểm tra định kỳ
915
- - 🚀 **BOOTSTRAP.md** — Khởi động và thiết lập
914
+ - 🚀 **BOOTSTRAP.md** — Khởi động thiết lập${otherAgents.length > 0 ? '\n- 👥 **TEAMS.md** — Các trợ lý khác cùng máy và cách gọi nhau' : ''}
916
915
 
917
916
  ## Make It Yours
918
917
 
@@ -1075,7 +1074,7 @@ Skills provide your tools. When you need one, check its \`SKILL.md\`. Keep local
1075
1074
 
1076
1075
  When you receive a heartbeat poll, don't just reply \`HEARTBEAT_OK\` every time. Use heartbeats productively!
1077
1076
 
1078
- You are free to edit \`HEARTBEAT.md\` with a short checklist or reminders. Keep it small to limit token burn.
1077
+ To remember things between beats, keep a short checklist in the automation's own scratch (\`openclaw cron scratch\`). Keep it small to limit token burn.
1079
1078
 
1080
1079
  ### Heartbeat vs Cron: When to Use Each
1081
1080
 
@@ -1083,7 +1082,7 @@ You are free to edit \`HEARTBEAT.md\` with a short checklist or reminders. Keep
1083
1082
 
1084
1083
  **Use cron when:** exact timing matters ("9:00 AM sharp every Monday"); task needs isolation from main session history; you want a different model or thinking level; one-shot reminders ("remind me in 20 minutes"); output should deliver directly to a channel.
1085
1084
 
1086
- **Tip:** Batch similar periodic checks into \`HEARTBEAT.md\` instead of creating multiple cron jobs.
1085
+ **Tip:** Batch similar periodic checks into ONE automation instead of creating multiple cron jobs.
1087
1086
 
1088
1087
  **Things to check (rotate, 2-4 times per day):** urgent emails, calendar next 24-48h, mentions, weather (if your human might go out).
1089
1088
 
@@ -1121,8 +1120,7 @@ The goal: Be helpful without being annoying. Check in a few times a day, do usef
1121
1120
  - 👤 **USER.md** — User info and context
1122
1121
  - 💭 **MEMORY.md** — Long-term memory
1123
1122
  - ✨ **DREAMS.md** — Daily activity self-summarization
1124
- - 💓 **HEARTBEAT.md** — Periodic check rhythm
1125
- - 🚀 **BOOTSTRAP.md** — Startup instructions
1123
+ - 🚀 **BOOTSTRAP.md** — Startup instructions${otherAgents.length > 0 ? '\n- 👥 **TEAMS.md** — Other assistants on this machine and how to reach them' : ''}
1126
1124
 
1127
1125
  ## Make It Yours
1128
1126
 
@@ -1425,7 +1423,10 @@ Add whatever helps you do your job. This is your cheat sheet.
1425
1423
  isVi, skillListStr, workspacePath, variant, agentWorkspaceDir, hasBrowser, hasScheduler, hasZaloMod, browserDocVariant,
1426
1424
  }),
1427
1425
  'MEMORY.md': buildMemoryDoc({ isVi, variant: memoryVariant }),
1428
- 'HEARTBEAT.md': buildHeartbeatDoc({ isVi }),
1426
+ // KHÔNG sinh HEARTBEAT.md nữa: từ OpenClaw 2026.8, nhịp kiểm tra định kỳ nằm trong scratch
1427
+ // của chính cron job, và doctor `core/doctor/heartbeat-scratch-migration` dời nội dung file
1428
+ // này sang đó rồi XOÁ file (`LEGACY_HEARTBEAT_FILENAME`). Setup mà cứ sinh lại thì mỗi lần
1429
+ // dựng workspace là một lần tái nhiễm — đúng vết xe của `toolResultMaxChars` hồi 5.16.1.
1429
1430
  'BOOTSTRAP.md': buildBootstrapDoc({ isVi, botName }),
1430
1431
  'DREAMS.md': buildDreamsDoc({ isVi }),
1431
1432
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-openclaw-bot",
3
- "version": "5.16.6",
3
+ "version": "5.16.7",
4
4
  "description": "Interactive CLI installer for OpenClaw Bot",
5
5
  "main": "dist/cli.js",
6
6
  "bin": {