openclaw-botonline 0.1.6 → 2026.2.14

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.
Files changed (423) hide show
  1. package/CHANGELOG.md +4 -4
  2. package/README.md +3 -3
  3. package/dist/acp/server.js +1 -1
  4. package/dist/agents/auth-profiles/doctor.js +1 -1
  5. package/dist/agents/model-auth.js +1 -1
  6. package/dist/agents/model-compat.js +1 -1
  7. package/dist/agents/sandbox/docker.js +3 -3
  8. package/dist/agents/sandbox/runtime-status.js +1 -1
  9. package/dist/agents/system-prompt.js +6 -6
  10. package/dist/agents/tools/web-search.js +1 -1
  11. package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
  12. package/dist/auto-reply/reply/bash-command.js +1 -1
  13. package/dist/auto-reply/reply/commands-session.js +2 -2
  14. package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
  15. package/dist/auto-reply/reply/reply-elevated.js +1 -1
  16. package/dist/browser/client-fetch.js +1 -1
  17. package/dist/browser/pw-tools-core.responses.js +1 -1
  18. package/dist/build-info.json +3 -3
  19. package/dist/channels/plugins/helpers.js +2 -2
  20. package/dist/channels/plugins/onboarding/signal.js +1 -1
  21. package/dist/channels/plugins/onboarding/telegram.js +1 -1
  22. package/dist/channels/plugins/onboarding/whatsapp.js +1 -1
  23. package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
  24. package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
  25. package/dist/cli/acp-cli.js +1 -1
  26. package/dist/cli/browser-cli-examples.js +29 -29
  27. package/dist/cli/browser-cli-extension.js +1 -1
  28. package/dist/cli/browser-cli.js +1 -1
  29. package/dist/cli/config-cli.js +1 -1
  30. package/dist/cli/daemon-cli/install.js +1 -1
  31. package/dist/cli/daemon-cli/shared.js +3 -3
  32. package/dist/cli/daemon-cli/status.print.js +5 -5
  33. package/dist/cli/dns-cli.js +1 -1
  34. package/dist/cli/exec-approvals-cli.js +1 -1
  35. package/dist/cli/gateway-cli/dev.js +1 -1
  36. package/dist/cli/gateway-cli/run.js +2 -2
  37. package/dist/cli/gateway-cli/shared.js +4 -4
  38. package/dist/cli/hooks-cli.js +2 -2
  39. package/dist/cli/logs-cli.js +2 -2
  40. package/dist/cli/node-cli/daemon.js +3 -3
  41. package/dist/cli/pairing-cli.js +2 -2
  42. package/dist/cli/program/config-guard.js +1 -1
  43. package/dist/cli/program/help.js +11 -11
  44. package/dist/cli/program/register.agent.js +10 -10
  45. package/dist/cli/program/register.message.js +4 -4
  46. package/dist/cli/program/register.status-health-sessions.js +10 -10
  47. package/dist/cli/run-main.js +1 -1
  48. package/dist/cli/sandbox-cli.js +18 -18
  49. package/dist/cli/security-cli.js +2 -2
  50. package/dist/cli/skills-cli.js +2 -2
  51. package/dist/cli/update-cli.js +20 -20
  52. package/dist/commands/agent-via-gateway.js +1 -1
  53. package/dist/commands/agent.js +1 -1
  54. package/dist/commands/agents.command-shared.js +1 -1
  55. package/dist/commands/agents.commands.list.js +1 -1
  56. package/dist/commands/channels/shared.js +1 -1
  57. package/dist/commands/channels/status.js +1 -1
  58. package/dist/commands/configure.channels.js +1 -1
  59. package/dist/commands/configure.wizard.js +1 -1
  60. package/dist/commands/daemon-install-helpers.js +1 -1
  61. package/dist/commands/docs.js +2 -2
  62. package/dist/commands/doctor-auth.js +2 -2
  63. package/dist/commands/doctor-config-flow.js +4 -4
  64. package/dist/commands/doctor-format.js +2 -2
  65. package/dist/commands/doctor-gateway-daemon-flow.js +1 -1
  66. package/dist/commands/doctor-security.js +6 -6
  67. package/dist/commands/doctor-update.js +1 -1
  68. package/dist/commands/doctor.js +4 -4
  69. package/dist/commands/models/auth.js +1 -1
  70. package/dist/commands/models/list.status-command.js +2 -2
  71. package/dist/commands/onboard-channels.js +3 -3
  72. package/dist/commands/onboard-hooks.js +3 -3
  73. package/dist/commands/onboard-non-interactive/local.js +1 -1
  74. package/dist/commands/onboard-non-interactive/remote.js +1 -1
  75. package/dist/commands/onboard-non-interactive.js +1 -1
  76. package/dist/commands/onboard-skills.js +1 -1
  77. package/dist/commands/onboard.js +1 -1
  78. package/dist/commands/reset.js +2 -2
  79. package/dist/commands/sandbox-display.js +1 -1
  80. package/dist/commands/status-all.js +1 -1
  81. package/dist/commands/status.command.js +6 -6
  82. package/dist/commands/status.update.js +1 -1
  83. package/dist/config/schema.js +1 -1
  84. package/dist/control-ui/assets/{index-BcKRIZdG.js → index-BQCtUQ8f.js} +449 -449
  85. package/dist/control-ui/assets/index-BQCtUQ8f.js.map +1 -0
  86. package/dist/control-ui/index.html +1 -1
  87. package/dist/daemon/inspect.js +1 -1
  88. package/dist/daemon/systemd-hints.js +1 -1
  89. package/dist/entry.js +4 -4
  90. package/dist/feishu/client.js +1 -1
  91. package/dist/feishu/message.js +1 -1
  92. package/dist/gateway/server.impl.js +2 -2
  93. package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
  94. package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
  95. package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
  96. package/dist/hooks/gmail-ops.js +1 -1
  97. package/dist/hooks/internal-hooks.js +1 -1
  98. package/dist/infra/clawdbot-root.js +1 -1
  99. package/dist/infra/outbound/targets.js +1 -1
  100. package/dist/infra/ports-format.js +1 -1
  101. package/dist/infra/ports.js +1 -1
  102. package/dist/infra/restart-sentinel.js +1 -1
  103. package/dist/infra/runtime-guard.js +2 -2
  104. package/dist/infra/tailscale.js +1 -1
  105. package/dist/infra/update-runner.js +1 -1
  106. package/dist/infra/update-startup.js +1 -1
  107. package/dist/media/host.js +1 -1
  108. package/dist/pairing/pairing-messages.js +1 -1
  109. package/dist/plugins/loader.js +1 -1
  110. package/dist/providers/qwen-portal-oauth.js +1 -1
  111. package/dist/security/audit-extra.js +1 -1
  112. package/dist/security/audit.js +2 -2
  113. package/dist/telegram/bot-message-context.js +1 -1
  114. package/dist/tui/tui.js +1 -1
  115. package/dist/version.js +1 -1
  116. package/dist/web/active-listener.js +1 -1
  117. package/dist/web/auth-store.js +1 -1
  118. package/dist/web/auto-reply/monitor.js +1 -1
  119. package/dist/web/login.js +1 -1
  120. package/dist/web/session.js +1 -1
  121. package/dist/wizard/onboarding.finalize.js +4 -4
  122. package/dist/wizard/onboarding.js +4 -4
  123. package/docs/automation/auth-monitoring.md +3 -3
  124. package/docs/automation/cron-jobs.md +4 -4
  125. package/docs/automation/poll.md +5 -5
  126. package/docs/bedrock.md +1 -1
  127. package/docs/channels/bluebubbles.md +6 -6
  128. package/docs/channels/discord.md +2 -2
  129. package/docs/channels/feishu.md +25 -25
  130. package/docs/channels/googlechat.md +4 -4
  131. package/docs/channels/imessage.md +3 -3
  132. package/docs/channels/line.md +4 -4
  133. package/docs/channels/matrix.md +6 -6
  134. package/docs/channels/mattermost.md +5 -5
  135. package/docs/channels/msteams.md +11 -11
  136. package/docs/channels/nextcloud-talk.md +4 -4
  137. package/docs/channels/nostr.md +3 -3
  138. package/docs/channels/signal.md +2 -2
  139. package/docs/channels/slack.md +1 -1
  140. package/docs/channels/telegram.md +10 -10
  141. package/docs/channels/tlon.md +3 -3
  142. package/docs/channels/troubleshooting.md +2 -2
  143. package/docs/channels/whatsapp.md +10 -10
  144. package/docs/channels/zalo.md +7 -7
  145. package/docs/channels/zalouser.md +10 -10
  146. package/docs/cli/channels.md +19 -19
  147. package/docs/cli/directory.md +12 -12
  148. package/docs/cli/doctor.md +1 -1
  149. package/docs/cli/gateway.md +3 -3
  150. package/docs/cli/index.md +13 -13
  151. package/docs/cli/message.md +10 -10
  152. package/docs/cli/models.md +14 -14
  153. package/docs/cli/onboard.md +6 -6
  154. package/docs/cli/pairing.md +4 -4
  155. package/docs/cli/plugins.md +14 -14
  156. package/docs/cli/sandbox.md +1 -1
  157. package/docs/cli/setup.md +1 -1
  158. package/docs/concepts/agent-workspace.md +4 -4
  159. package/docs/concepts/agent.md +1 -1
  160. package/docs/concepts/group-messages.md +1 -1
  161. package/docs/concepts/model-providers.md +18 -18
  162. package/docs/concepts/models.md +22 -22
  163. package/docs/concepts/multi-agent.md +2 -2
  164. package/docs/concepts/oauth.md +8 -8
  165. package/docs/concepts/usage-tracking.md +1 -1
  166. package/docs/gateway/authentication.md +15 -15
  167. package/docs/gateway/configuration-examples.md +8 -8
  168. package/docs/gateway/configuration.md +9 -9
  169. package/docs/gateway/health.md +2 -2
  170. package/docs/gateway/index.md +37 -37
  171. package/docs/gateway/multiple-gateways.md +1 -1
  172. package/docs/gateway/pairing-required-troubleshooting.md +19 -19
  173. package/docs/gateway/remote.md +2 -2
  174. package/docs/gateway/security.md +19 -19
  175. package/docs/gateway/tailscale.md +8 -8
  176. package/docs/gateway/token-mismatch-troubleshooting.md +4 -4
  177. package/docs/gateway/troubleshooting.md +90 -90
  178. package/docs/guides/custom-ai-providers.md +11 -11
  179. package/docs/guides/ssl-deployment.md +1 -1
  180. package/docs/help/faq.md +67 -67
  181. package/docs/help/troubleshooting.md +10 -10
  182. package/docs/hooks.md +1 -1
  183. package/docs/index.md +5 -5
  184. package/docs/install/ansible.md +9 -9
  185. package/docs/install/development-channels.md +6 -6
  186. package/docs/install/docker-hub-setup.md +10 -10
  187. package/docs/install/docker-quick.md +31 -31
  188. package/docs/install/docker.md +38 -38
  189. package/docs/install/index.md +16 -16
  190. package/docs/install/installer.md +8 -8
  191. package/docs/install/nix.md +1 -1
  192. package/docs/install/node.md +3 -3
  193. package/docs/install/uninstall.md +13 -13
  194. package/docs/install/updating.md +52 -52
  195. package/docs/logging.md +2 -2
  196. package/docs/nodes/images.md +3 -3
  197. package/docs/npm-publish-guide.md +7 -7
  198. package/docs/platforms/digitalocean.md +5 -5
  199. package/docs/platforms/exe-dev.md +2 -2
  200. package/docs/platforms/index.md +2 -2
  201. package/docs/platforms/linux.md +2 -2
  202. package/docs/platforms/mac/dev-setup.md +1 -1
  203. package/docs/platforms/mac/remote.md +1 -1
  204. package/docs/platforms/macos-vm.md +3 -3
  205. package/docs/platforms/raspberry-pi.md +1 -1
  206. package/docs/platforms/windows.md +2 -2
  207. package/docs/plugin.md +18 -18
  208. package/docs/plugins/voice-call.md +2 -2
  209. package/docs/plugins/zalouser.md +7 -7
  210. package/docs/prose.md +2 -2
  211. package/docs/providers/anthropic.md +10 -10
  212. package/docs/providers/github-copilot.md +5 -5
  213. package/docs/providers/glm.md +1 -1
  214. package/docs/providers/index.md +1 -1
  215. package/docs/providers/minimax.md +2 -2
  216. package/docs/providers/models.md +1 -1
  217. package/docs/providers/moonshot.md +2 -2
  218. package/docs/providers/ollama.md +1 -1
  219. package/docs/providers/openai.md +4 -4
  220. package/docs/providers/opencode.md +2 -2
  221. package/docs/providers/openrouter.md +1 -1
  222. package/docs/providers/qwen.md +3 -3
  223. package/docs/providers/synthetic.md +1 -1
  224. package/docs/providers/venice.md +7 -7
  225. package/docs/providers/vercel-ai-gateway.md +2 -2
  226. package/docs/providers/volcengine.md +2 -2
  227. package/docs/providers/zai.md +2 -2
  228. package/docs/reference/api-usage-costs.md +3 -3
  229. package/docs/scripts.md +1 -1
  230. package/docs/start/clawd.md +10 -10
  231. package/docs/start/getting-started.md +18 -18
  232. package/docs/start/onboarding.md +1 -1
  233. package/docs/start/pairing.md +6 -6
  234. package/docs/start/setup.md +7 -7
  235. package/docs/start/wizard.md +18 -18
  236. package/docs/testing.md +5 -5
  237. package/docs/token-use.md +1 -1
  238. package/docs/tools/agent-send.md +1 -1
  239. package/docs/tools/browser-linux-troubleshooting.md +1 -1
  240. package/docs/tools/browser-login.md +3 -3
  241. package/docs/tools/browser.md +59 -59
  242. package/docs/tools/chrome-extension.md +6 -6
  243. package/docs/tools/slash-commands.md +3 -3
  244. package/docs/tui.md +1 -1
  245. package/extensions/bluebubbles/index.ts +2 -2
  246. package/extensions/bluebubbles/src/accounts.ts +2 -2
  247. package/extensions/bluebubbles/src/actions.test.ts +1 -1
  248. package/extensions/bluebubbles/src/actions.ts +1 -1
  249. package/extensions/bluebubbles/src/attachments.ts +1 -1
  250. package/extensions/bluebubbles/src/channel.ts +2 -2
  251. package/extensions/bluebubbles/src/chat.ts +1 -1
  252. package/extensions/bluebubbles/src/config-schema.ts +1 -1
  253. package/extensions/bluebubbles/src/media-send.ts +1 -1
  254. package/extensions/bluebubbles/src/monitor.test.ts +2 -2
  255. package/extensions/bluebubbles/src/onboarding.ts +2 -2
  256. package/extensions/bluebubbles/src/reactions.ts +1 -1
  257. package/extensions/bluebubbles/src/runtime.ts +1 -1
  258. package/extensions/bluebubbles/src/send.ts +1 -1
  259. package/extensions/copilot-proxy/README.md +2 -2
  260. package/extensions/copilot-proxy/index.ts +1 -1
  261. package/extensions/diagnostics-otel/index.ts +2 -2
  262. package/extensions/diagnostics-otel/src/service.test.ts +1 -1
  263. package/extensions/diagnostics-otel/src/service.ts +2 -2
  264. package/extensions/discord/index.ts +2 -2
  265. package/extensions/discord/src/channel.ts +1 -1
  266. package/extensions/discord/src/runtime.ts +1 -1
  267. package/extensions/feishu/PUBLISHING.md +10 -10
  268. package/extensions/feishu/PUBLISH_CHECKLIST.md +2 -2
  269. package/extensions/feishu/README.md +5 -5
  270. package/extensions/feishu/package.json +5 -5
  271. package/extensions/google-antigravity-auth/README.md +2 -2
  272. package/extensions/google-antigravity-auth/index.ts +1 -1
  273. package/extensions/google-gemini-cli-auth/README.md +2 -2
  274. package/extensions/google-gemini-cli-auth/index.ts +1 -1
  275. package/extensions/googlechat/index.ts +2 -2
  276. package/extensions/googlechat/src/accounts.ts +2 -2
  277. package/extensions/googlechat/src/actions.ts +2 -2
  278. package/extensions/googlechat/src/channel.ts +2 -2
  279. package/extensions/googlechat/src/monitor.ts +2 -2
  280. package/extensions/googlechat/src/onboarding.ts +2 -2
  281. package/extensions/googlechat/src/runtime.ts +1 -1
  282. package/extensions/googlechat/src/types.config.ts +1 -1
  283. package/extensions/imessage/index.ts +2 -2
  284. package/extensions/imessage/src/channel.ts +1 -1
  285. package/extensions/imessage/src/runtime.ts +1 -1
  286. package/extensions/line/index.ts +2 -2
  287. package/extensions/line/src/card-command.ts +2 -2
  288. package/extensions/line/src/channel.logout.test.ts +1 -1
  289. package/extensions/line/src/channel.sendPayload.test.ts +1 -1
  290. package/extensions/line/src/channel.ts +2 -2
  291. package/extensions/line/src/runtime.ts +1 -1
  292. package/extensions/matrix/index.ts +2 -2
  293. package/extensions/matrix/src/actions.ts +1 -1
  294. package/extensions/matrix/src/channel.directory.test.ts +1 -1
  295. package/extensions/matrix/src/channel.ts +1 -1
  296. package/extensions/matrix/src/config-schema.ts +1 -1
  297. package/extensions/matrix/src/directory-live.ts +1 -1
  298. package/extensions/matrix/src/group-mentions.ts +1 -1
  299. package/extensions/matrix/src/matrix/accounts.ts +1 -1
  300. package/extensions/matrix/src/matrix/deps.ts +1 -1
  301. package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
  302. package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
  303. package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
  304. package/extensions/matrix/src/matrix/monitor/handler.ts +2 -2
  305. package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
  306. package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
  307. package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
  308. package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
  309. package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
  310. package/extensions/matrix/src/matrix/poll-types.ts +1 -1
  311. package/extensions/matrix/src/matrix/send.test.ts +1 -1
  312. package/extensions/matrix/src/matrix/send.ts +1 -1
  313. package/extensions/matrix/src/onboarding.ts +1 -1
  314. package/extensions/matrix/src/outbound.ts +1 -1
  315. package/extensions/matrix/src/resolve-targets.ts +1 -1
  316. package/extensions/matrix/src/runtime.ts +1 -1
  317. package/extensions/matrix/src/tool-actions.ts +1 -1
  318. package/extensions/mattermost/index.ts +2 -2
  319. package/extensions/mattermost/src/channel.ts +1 -1
  320. package/extensions/mattermost/src/config-schema.ts +1 -1
  321. package/extensions/mattermost/src/group-mentions.ts +1 -1
  322. package/extensions/mattermost/src/mattermost/accounts.ts +2 -2
  323. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +1 -1
  324. package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
  325. package/extensions/mattermost/src/onboarding-helpers.ts +2 -2
  326. package/extensions/mattermost/src/onboarding.ts +2 -2
  327. package/extensions/mattermost/src/runtime.ts +1 -1
  328. package/extensions/mattermost/src/types.ts +1 -1
  329. package/extensions/memory-core/index.ts +2 -2
  330. package/extensions/memory-lancedb/index.ts +2 -2
  331. package/extensions/msteams/index.ts +2 -2
  332. package/extensions/msteams/src/attachments.test.ts +1 -1
  333. package/extensions/msteams/src/channel.directory.test.ts +1 -1
  334. package/extensions/msteams/src/channel.ts +2 -2
  335. package/extensions/msteams/src/conversation-store-fs.test.ts +1 -1
  336. package/extensions/msteams/src/directory-live.ts +1 -1
  337. package/extensions/msteams/src/media-helpers.ts +1 -1
  338. package/extensions/msteams/src/messenger.test.ts +1 -1
  339. package/extensions/msteams/src/messenger.ts +1 -1
  340. package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
  341. package/extensions/msteams/src/monitor-handler.ts +1 -1
  342. package/extensions/msteams/src/monitor.ts +1 -1
  343. package/extensions/msteams/src/onboarding.ts +2 -2
  344. package/extensions/msteams/src/outbound.ts +1 -1
  345. package/extensions/msteams/src/policy.test.ts +1 -1
  346. package/extensions/msteams/src/policy.ts +2 -2
  347. package/extensions/msteams/src/polls.test.ts +1 -1
  348. package/extensions/msteams/src/polls.ts +1 -1
  349. package/extensions/msteams/src/probe.test.ts +1 -1
  350. package/extensions/msteams/src/probe.ts +1 -1
  351. package/extensions/msteams/src/reply-dispatcher.ts +1 -1
  352. package/extensions/msteams/src/runtime.ts +1 -1
  353. package/extensions/msteams/src/send-context.ts +1 -1
  354. package/extensions/msteams/src/send.ts +2 -2
  355. package/extensions/msteams/src/token.ts +1 -1
  356. package/extensions/nextcloud-talk/index.ts +2 -2
  357. package/extensions/nextcloud-talk/src/accounts.ts +1 -1
  358. package/extensions/nextcloud-talk/src/channel.ts +1 -1
  359. package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
  360. package/extensions/nextcloud-talk/src/inbound.ts +1 -1
  361. package/extensions/nextcloud-talk/src/monitor.ts +1 -1
  362. package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
  363. package/extensions/nextcloud-talk/src/policy.ts +2 -2
  364. package/extensions/nextcloud-talk/src/room-info.ts +1 -1
  365. package/extensions/nextcloud-talk/src/runtime.ts +1 -1
  366. package/extensions/nextcloud-talk/src/types.ts +1 -1
  367. package/extensions/nostr/README.md +2 -2
  368. package/extensions/nostr/index.ts +2 -2
  369. package/extensions/nostr/src/channel.ts +1 -1
  370. package/extensions/nostr/src/config-schema.ts +1 -1
  371. package/extensions/nostr/src/nostr-state-store.test.ts +1 -1
  372. package/extensions/nostr/src/runtime.ts +1 -1
  373. package/extensions/nostr/src/types.ts +1 -1
  374. package/extensions/qwen-portal-auth/README.md +2 -2
  375. package/extensions/qwen-portal-auth/index.ts +1 -1
  376. package/extensions/signal/index.ts +2 -2
  377. package/extensions/signal/src/channel.ts +1 -1
  378. package/extensions/signal/src/runtime.ts +1 -1
  379. package/extensions/slack/index.ts +2 -2
  380. package/extensions/slack/src/channel.ts +1 -1
  381. package/extensions/slack/src/runtime.ts +1 -1
  382. package/extensions/telegram/index.ts +2 -2
  383. package/extensions/telegram/src/channel.ts +1 -1
  384. package/extensions/telegram/src/runtime.ts +1 -1
  385. package/extensions/tlon/index.ts +2 -2
  386. package/extensions/tlon/src/channel.ts +2 -2
  387. package/extensions/tlon/src/config-schema.ts +1 -1
  388. package/extensions/tlon/src/monitor/discovery.ts +1 -1
  389. package/extensions/tlon/src/monitor/history.ts +1 -1
  390. package/extensions/tlon/src/monitor/index.ts +1 -1
  391. package/extensions/tlon/src/onboarding.ts +2 -2
  392. package/extensions/tlon/src/runtime.ts +1 -1
  393. package/extensions/tlon/src/types.ts +1 -1
  394. package/extensions/voice-call/CHANGELOG.md +1 -1
  395. package/extensions/voice-call/README.md +8 -8
  396. package/extensions/whatsapp/index.ts +2 -2
  397. package/extensions/whatsapp/src/channel.ts +1 -1
  398. package/extensions/whatsapp/src/runtime.ts +1 -1
  399. package/extensions/zalo/README.md +2 -2
  400. package/extensions/zalo/index.ts +2 -2
  401. package/extensions/zalo/src/accounts.ts +2 -2
  402. package/extensions/zalo/src/actions.ts +2 -2
  403. package/extensions/zalo/src/channel.directory.test.ts +1 -1
  404. package/extensions/zalo/src/channel.ts +2 -2
  405. package/extensions/zalo/src/config-schema.ts +1 -1
  406. package/extensions/zalo/src/monitor.ts +1 -1
  407. package/extensions/zalo/src/monitor.webhook.test.ts +1 -1
  408. package/extensions/zalo/src/onboarding.ts +2 -2
  409. package/extensions/zalo/src/runtime.ts +1 -1
  410. package/extensions/zalo/src/send.ts +1 -1
  411. package/extensions/zalo/src/status-issues.ts +1 -1
  412. package/extensions/zalo/src/token.ts +1 -1
  413. package/extensions/zalouser/README.md +16 -16
  414. package/extensions/zalouser/index.ts +2 -2
  415. package/extensions/zalouser/src/accounts.ts +2 -2
  416. package/extensions/zalouser/src/channel.ts +2 -2
  417. package/extensions/zalouser/src/config-schema.ts +1 -1
  418. package/extensions/zalouser/src/monitor.ts +2 -2
  419. package/extensions/zalouser/src/onboarding.ts +2 -2
  420. package/extensions/zalouser/src/runtime.ts +1 -1
  421. package/extensions/zalouser/src/status-issues.ts +2 -2
  422. package/package.json +3 -10
  423. package/dist/control-ui/assets/index-BcKRIZdG.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,7 +4,7 @@ Docs: https://docs.clawd.bot
4
4
 
5
5
  ## 0.1.0
6
6
 
7
- > 🎉 **版本号规范化**:从本版本起,openclaw-cn 采用标准语义化版本号 (Semver),告别日期版本。
7
+ > 🎉 **版本号规范化**:从本版本起,openclaw-botonline 采用标准语义化版本号 (Semver),告别日期版本。
8
8
  > 本版本整合了 2026.2.3 ~ 2026.2.5 的所有更新内容。
9
9
 
10
10
  ### ✨ 新功能(Features)
@@ -21,7 +21,7 @@ Docs: https://docs.clawd.bot
21
21
 
22
22
  - **飞书流式卡片 fallback**:改进 `closeStreamingMode` 返回值检查,API 失败时正确回退到普通消息 (#57) - 感谢 @Y1fe1Zh0u
23
23
  - **飞书富文本解析**:修复 post 富文本消息解析,支持 locale 包装格式和嵌入图片下载 (#37)
24
- - **依赖安装问题彻底解决**:使用 `@openclaw-cn/baileys` 替代上游 `@whiskeysockets/baileys`,彻底解决全局安装时 libsignal git 依赖导致的安装失败问题
24
+ - **依赖安装问题彻底解决**:使用 `@openclaw-botonline/baileys` 替代上游 `@whiskeysockets/baileys`,彻底解决全局安装时 libsignal git 依赖导致的安装失败问题
25
25
  - **npm/yarn 兼容**:完善 libsignal 依赖替换,添加 npm `overrides` 和 yarn `resolutions` 支持
26
26
  - **Control UI 资源**:修复 npm 包缺少 Control UI 资源的问题 (#28)
27
27
  - **Feishu 扩展打包**:修复 npm 包缺少 feishu 扩展 dist 目录的问题
@@ -50,7 +50,7 @@ Docs: https://docs.clawd.bot
50
50
 
51
51
  ### 🔧 修复(Fixes)
52
52
 
53
- - Dependencies: 使用 `@openclaw-cn/baileys` 替代上游 `@whiskeysockets/baileys`,彻底解决全局安装时 libsignal git 依赖导致的安装失败问题
53
+ - Dependencies: 使用 `@openclaw-botonline/baileys` 替代上游 `@whiskeysockets/baileys`,彻底解决全局安装时 libsignal git 依赖导致的安装失败问题
54
54
  - Dependencies: 完善 libsignal 依赖替换,添加 npm `overrides` 和 yarn `resolutions` 支持,修复 npm/yarn 用户仍遇到 git 依赖安装失败的问题
55
55
  - Feishu: 优化权限缺失时的错误提示,降低国内用户配置排障门槛 (#27)
56
56
 
@@ -65,7 +65,7 @@ Docs: https://docs.clawd.bot
65
65
  ### 🔧 修复(Fixes)
66
66
 
67
67
  - Packaging: 修复 npm 包缺少 Control UI 资源的问题,导致网关管理页面无法正常显示 (#28)
68
- - Dependencies: 使用 `@openclaw-cn/libsignal` 替代 git 依赖,解决中国大陆用户因无法访问 GitHub 导致安装失败的问题
68
+ - Dependencies: 使用 `@openclaw-botonline/libsignal` 替代 git 依赖,解决中国大陆用户因无法访问 GitHub 导致安装失败的问题
69
69
 
70
70
  ---
71
71
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **私有化部署的 AI 智能助手网关。**
4
4
 
5
- > ⚠️ **声明:** 本项目基于 [jiulingyun/openclaw-cn](https://github.com/jiulingyun/openclaw-cn) 进行再开发,旨在提供更加灵活的在线服务部署方案。
5
+ > ⚠️ **声明:** 本项目基于 [jiulingyun/openclaw-botonline](https://github.com/jiulingyun/openclaw-botonline) 进行再开发,旨在提供更加灵活的在线服务部署方案。
6
6
 
7
7
  <p align="center">
8
8
  <img src="docs/images/main-view.png" alt="OpenClaw Bot Online 控制界面" width="800">
@@ -93,7 +93,7 @@ pnpm openclaw-botonline onboard --install-daemon
93
93
 
94
94
  ## 🔄 版本说明
95
95
 
96
- 本项目基于 [jiulingyun/openclaw-cn](https://github.com/jiulingyun/openclaw-cn) 进行再开发,适配在线服务部署场景。
96
+ 本项目基于 [jiulingyun/openclaw-botonline](https://github.com/jiulingyun/openclaw-botonline) 进行再开发,适配在线服务部署场景。
97
97
 
98
98
  版本格式:`v0.Y.Z`(如 `v0.1.4`)
99
99
 
@@ -122,7 +122,7 @@ pnpm openclaw-botonline onboard --install-daemon
122
122
  ---
123
123
 
124
124
  <p align="center">
125
- <strong>本项目基于 <a href="https://github.com/jiulingyun/openclaw-cn">jiulingyun/openclaw-cn</a> 进行再开发</a>
125
+ <strong>本项目基于 <a href="https://github.com/jiulingyun/openclaw-botonline">jiulingyun/openclaw-botonline</a> 进行再开发</a>
126
126
  </p>
127
127
 
128
128
  <p align="center">
@@ -108,7 +108,7 @@ function parseArgs(args) {
108
108
  return opts;
109
109
  }
110
110
  function printHelp() {
111
- console.log(`Usage: openclaw-cn acp [options]
111
+ console.log(`Usage: openclaw-botonline acp [options]
112
112
 
113
113
  Gateway-backed ACP server for IDE integration.
114
114
 
@@ -26,6 +26,6 @@ export function formatAuthDoctorHint(params) {
26
26
  `- config: ${legacyProfileId}${cfgProvider || cfgMode ? ` (provider=${cfgProvider ?? "?"}, mode=${cfgMode ?? "?"})` : ""}`,
27
27
  `- auth store oauth profiles: ${storeOauthProfiles || "(none)"}`,
28
28
  `- suggested profile: ${suggested}`,
29
- `Fix: run "${formatCliCommand("openclaw-cn doctor --yes")}"`,
29
+ `Fix: run "${formatCliCommand("openclaw-botonline doctor --yes")}"`,
30
30
  ].join("\n");
31
31
  }
@@ -162,7 +162,7 @@ export async function resolveApiKeyForProvider(params) {
162
162
  throw new Error([
163
163
  `No API key found for provider "${provider}".`,
164
164
  `Auth store: ${authStorePath} (agentDir: ${resolvedAgentDir}).`,
165
- `Configure auth for this agent (${formatCliCommand("openclaw-cn agents add <id>")}) or copy auth-profiles.json from the main agentDir.`,
165
+ `Configure auth for this agent (${formatCliCommand("openclaw-botonline agents add <id>")}) or copy auth-profiles.json from the main agentDir.`,
166
166
  ].join(" "));
167
167
  }
168
168
  export function resolveEnvApiKey(provider) {
@@ -4,7 +4,7 @@ function isOpenAiCompletionsModel(model) {
4
4
  /**
5
5
  * Ensures the model has an `input` field to prevent crashes in upstream SDK.
6
6
  * The SDK uses `model.input.includes("image")` without null checking.
7
- * @see https://github.com/jiulingyun/openclaw-cn/issues/32
7
+ * @see https://github.com/jiulingyun/openclaw-botonline/issues/32
8
8
  */
9
9
  function ensureModelInput(model) {
10
10
  if (model.input && Array.isArray(model.input))
@@ -197,13 +197,13 @@ async function readContainerConfigHash(containerName) {
197
197
  }
198
198
  function formatSandboxRecreateHint(params) {
199
199
  if (params.scope === "session") {
200
- return formatCliCommand(`openclaw-cn sandbox recreate --session ${params.sessionKey}`);
200
+ return formatCliCommand(`openclaw-botonline sandbox recreate --session ${params.sessionKey}`);
201
201
  }
202
202
  if (params.scope === "agent") {
203
203
  const agentId = resolveSandboxAgentId(params.sessionKey) ?? "main";
204
- return formatCliCommand(`openclaw-cn sandbox recreate --agent ${agentId}`);
204
+ return formatCliCommand(`openclaw-botonline sandbox recreate --agent ${agentId}`);
205
205
  }
206
- return formatCliCommand("openclaw-cn sandbox recreate --all");
206
+ return formatCliCommand("openclaw-botonline sandbox recreate --all");
207
207
  }
208
208
  export async function ensureSandboxContainer(params) {
209
209
  const scopeKey = resolveSandboxScopeKey(params.cfg.scope, params.sessionKey);
@@ -85,6 +85,6 @@ export function formatSandboxToolPolicyBlockedMessage(params) {
85
85
  if (runtime.mode === "non-main") {
86
86
  lines.push(`- Use main session key (direct): ${runtime.mainSessionKey}`);
87
87
  }
88
- lines.push(`- See: ${formatCliCommand(`openclaw-cn sandbox explain --session ${runtime.sessionKey}`)}`);
88
+ lines.push(`- See: ${formatCliCommand(`openclaw-botonline sandbox explain --session ${runtime.sessionKey}`)}`);
89
89
  return lines.join("\n");
90
90
  }
@@ -106,7 +106,7 @@ function buildDocsSection(params) {
106
106
  "Community: https://discord.com/invite/clawd",
107
107
  "Find new skills: https://clawdhub.com",
108
108
  "For Clawdbot behavior, commands, config, or architecture: consult local docs first.",
109
- "When diagnosing issues, run `openclaw-cn status` yourself when possible; only ask the user if you lack access (e.g., sandboxed).",
109
+ "When diagnosing issues, run `openclaw-botonline status` yourself when possible; only ask the user if you lack access (e.g., sandboxed).",
110
110
  "",
111
111
  ];
112
112
  }
@@ -285,11 +285,11 @@ export function buildAgentSystemPrompt(params) {
285
285
  "## Clawdbot CLI Quick Reference",
286
286
  "Clawdbot is controlled via subcommands. Do not invent commands.",
287
287
  "To manage the Gateway daemon service (start/stop/restart):",
288
- "- openclaw-cn gateway status",
289
- "- openclaw-cn gateway start",
290
- "- openclaw-cn gateway stop",
291
- "- openclaw-cn gateway restart",
292
- "If unsure, ask the user to run `openclaw-cn help` (or `openclaw-cn gateway --help`) and paste the output.",
288
+ "- openclaw-botonline gateway status",
289
+ "- openclaw-botonline gateway start",
290
+ "- openclaw-botonline gateway stop",
291
+ "- openclaw-botonline gateway restart",
292
+ "If unsure, ask the user to run `openclaw-botonline help` (or `openclaw-botonline gateway --help`) and paste the output.",
293
293
  "",
294
294
  ...skillsSection,
295
295
  ...memorySection,
@@ -71,7 +71,7 @@ function missingSearchKeyPayload(provider) {
71
71
  }
72
72
  return {
73
73
  error: "missing_brave_api_key",
74
- message: `web_search needs a Brave Search API key. Run \`${formatCliCommand("openclaw-cn configure --section web")}\` to store it, or set BRAVE_API_KEY in the Gateway environment.`,
74
+ message: `web_search needs a Brave Search API key. Run \`${formatCliCommand("openclaw-botonline configure --section web")}\` to store it, or set BRAVE_API_KEY in the Gateway environment.`,
75
75
  docs: "https://docs.clawd.bot/tools/web",
76
76
  };
77
77
  }
@@ -441,7 +441,7 @@ export async function runAgentTurnWithFallback(params) {
441
441
  ? "⚠️ Context overflow — prompt too large for this model. Try a shorter message or a larger-context model."
442
442
  : isRoleOrderingError
443
443
  ? "⚠️ Message ordering conflict - please try again. If this persists, use /new to start a fresh session."
444
- : `⚠️ Agent failed before reply: ${trimmedMessage}.\nLogs: openclaw-cn logs --follow`;
444
+ : `⚠️ Agent failed before reply: ${trimmedMessage}.\nLogs: openclaw-botonline logs --follow`;
445
445
  return {
446
446
  kind: "final",
447
447
  payload: {
@@ -140,7 +140,7 @@ function formatElevatedUnavailableMessage(params) {
140
140
  lines.push("- agents.list[].tools.elevated.enabled");
141
141
  lines.push("- agents.list[].tools.elevated.allowFrom.<provider>");
142
142
  if (params.sessionKey) {
143
- lines.push(`查看: ${formatCliCommand(`openclaw-cn sandbox explain --session ${params.sessionKey}`)}`);
143
+ lines.push(`查看: ${formatCliCommand(`openclaw-botonline sandbox explain --session ${params.sessionKey}`)}`);
144
144
  }
145
145
  return lines.join("\n");
146
146
  }
@@ -210,7 +210,7 @@ export const handleRestartCommand = async (params, allowTextCommands) => {
210
210
  return {
211
211
  shouldContinue: false,
212
212
  reply: {
213
- text: "⚙️ 正在进程内重启 openclaw-cn (SIGUSR1);几秒后恢复。",
213
+ text: "⚙️ 正在进程内重启 openclaw-botonline (SIGUSR1);几秒后恢复。",
214
214
  },
215
215
  };
216
216
  }
@@ -227,7 +227,7 @@ export const handleRestartCommand = async (params, allowTextCommands) => {
227
227
  return {
228
228
  shouldContinue: false,
229
229
  reply: {
230
- text: `⚙️ 正在通过 ${restartMethod.method} 重启 openclaw-cn;请稍等几秒恢复。`,
230
+ text: `⚙️ 正在通过 ${restartMethod.method} 重启 openclaw-botonline;请稍等几秒恢复。`,
231
231
  },
232
232
  };
233
233
  };
@@ -37,7 +37,7 @@ export function formatElevatedUnavailableText(params) {
37
37
  lines.push("Fix-it keys: tools.elevated.enabled, tools.elevated.allowFrom.<provider>, agents.list[].tools.elevated.*");
38
38
  }
39
39
  if (params.sessionKey) {
40
- lines.push(`See: ${formatCliCommand(`openclaw-cn sandbox explain --session ${params.sessionKey}`)}`);
40
+ lines.push(`See: ${formatCliCommand(`openclaw-botonline sandbox explain --session ${params.sessionKey}`)}`);
41
41
  }
42
42
  return lines.join("\n");
43
43
  }
@@ -160,7 +160,7 @@ export function formatElevatedUnavailableMessage(params) {
160
160
  lines.push("- agents.list[].tools.elevated.enabled");
161
161
  lines.push("- agents.list[].tools.elevated.allowFrom.<provider>");
162
162
  if (params.sessionKey) {
163
- lines.push(`See: ${formatCliCommand(`openclaw-cn sandbox explain --session ${params.sessionKey}`)}`);
163
+ lines.push(`See: ${formatCliCommand(`openclaw-botonline sandbox explain --session ${params.sessionKey}`)}`);
164
164
  }
165
165
  return lines.join("\n");
166
166
  }
@@ -29,7 +29,7 @@ function unwrapCause(err) {
29
29
  function enhanceBrowserFetchError(url, err, timeoutMs) {
30
30
  const cause = unwrapCause(err);
31
31
  const code = extractErrorCode(cause) ?? extractErrorCode(err) ?? "";
32
- const hint = `Start (or restart) the Clawdbot gateway (Clawdbot.app menubar, or \`${formatCliCommand("openclaw-cn gateway")}\`) and try again.`;
32
+ const hint = `Start (or restart) the Clawdbot gateway (Clawdbot.app menubar, or \`${formatCliCommand("openclaw-botonline gateway")}\`) and try again.`;
33
33
  if (code === "ECONNREFUSED") {
34
34
  return new Error(`Can't reach the clawd browser control server at ${url} (connection refused). ${hint}`);
35
35
  }
@@ -52,7 +52,7 @@ export async function responseBodyViaPlaywright(opts) {
52
52
  return;
53
53
  done = true;
54
54
  cleanup();
55
- reject(new Error(`Response not found for url pattern "${pattern}". Run '${formatCliCommand("openclaw-cn browser requests")}' to inspect recent network activity.`));
55
+ reject(new Error(`Response not found for url pattern "${pattern}". Run '${formatCliCommand("openclaw-botonline browser requests")}' to inspect recent network activity.`));
56
56
  }, timeout);
57
57
  });
58
58
  const resp = (await promise);
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.6",
3
- "commit": "8c5e34c2dbc626688b4ee90a7360a44aa80f6469",
4
- "builtAt": "2026-02-14T03:19:35.829Z"
2
+ "version": "2026.2.14",
3
+ "commit": "7494bb9f62e911f2a0a1b05a0887454dc0665d59",
4
+ "builtAt": "2026-02-14T04:38:17.153Z"
5
5
  }
@@ -6,7 +6,7 @@ export function resolveChannelDefaultAccountId(params) {
6
6
  return params.plugin.config.defaultAccountId?.(params.cfg) ?? accountIds[0] ?? DEFAULT_ACCOUNT_ID;
7
7
  }
8
8
  export function formatPairingApproveHint(channelId) {
9
- const listCmd = formatCliCommand(`openclaw-cn pairing list ${channelId}`);
10
- const approveCmd = formatCliCommand(`openclaw-cn pairing approve ${channelId} <code>`);
9
+ const listCmd = formatCliCommand(`openclaw-botonline pairing list ${channelId}`);
10
+ const approveCmd = formatCliCommand(`openclaw-botonline pairing approve ${channelId} <code>`);
11
11
  return `Approve via: ${listCmd} / ${approveCmd}`;
12
12
  }
@@ -246,7 +246,7 @@ export const signalOnboardingAdapter = {
246
246
  await prompter.note([
247
247
  'Link device with: signal-cli link -n "Clawdbot"',
248
248
  "Scan QR in Signal → Linked Devices",
249
- `Then run: ${formatCliCommand("openclaw-cn gateway call channels.status --params '{\"probe\":true}'")}`,
249
+ `Then run: ${formatCliCommand("openclaw-botonline gateway call channels.status --params '{\"probe\":true}'")}`,
250
250
  `Docs: ${formatDocsLink("/signal", "signal")}`,
251
251
  ].join("\n"), "Signal next steps");
252
252
  return { cfg: next, accountId: signalAccountId };
@@ -30,7 +30,7 @@ async function noteTelegramTokenHelp(prompter) {
30
30
  }
31
31
  async function noteTelegramUserIdHelp(prompter) {
32
32
  await prompter.note([
33
- `1) DM your bot, then read from.id in \`${formatCliCommand("openclaw-cn logs --follow")}\` (safest)`,
33
+ `1) DM your bot, then read from.id in \`${formatCliCommand("openclaw-botonline logs --follow")}\` (safest)`,
34
34
  "2) Or call https://api.telegram.org/bot<bot_token>/getUpdates and read message.from.id",
35
35
  "3) Third-party: DM @userinfobot or @getidsbot",
36
36
  `Docs: ${formatDocsLink("/telegram")}`,
@@ -273,7 +273,7 @@ export const whatsappOnboardingAdapter = {
273
273
  }
274
274
  }
275
275
  else if (!linked) {
276
- await prompter.note(`Run \`${formatCliCommand("openclaw-cn channels login")}\` later to link WhatsApp.`, "WhatsApp");
276
+ await prompter.note(`Run \`${formatCliCommand("openclaw-botonline channels login")}\` later to link WhatsApp.`, "WhatsApp");
277
277
  }
278
278
  next = await promptWhatsAppAllowFrom(next, runtime, prompter, {
279
279
  forceAllowlist: forceAllowFrom,
@@ -42,7 +42,7 @@ export function collectBlueBubblesStatusIssues(accounts) {
42
42
  accountId,
43
43
  kind: "config",
44
44
  message: "Not configured (missing serverUrl or password).",
45
- fix: "Run: openclaw-cn channels add bluebubbles --http-url <server-url> --password <password>",
45
+ fix: "Run: openclaw-botonline channels add bluebubbles --http-url <server-url> --password <password>",
46
46
  });
47
47
  continue;
48
48
  }
@@ -34,7 +34,7 @@ export function collectWhatsAppStatusIssues(accounts) {
34
34
  accountId,
35
35
  kind: "auth",
36
36
  message: "Not linked (no WhatsApp Web session).",
37
- fix: `Run: ${formatCliCommand("openclaw-cn channels login")} (scan QR on the gateway host).`,
37
+ fix: `Run: ${formatCliCommand("openclaw-botonline channels login")} (scan QR on the gateway host).`,
38
38
  });
39
39
  continue;
40
40
  }
@@ -44,7 +44,7 @@ export function collectWhatsAppStatusIssues(accounts) {
44
44
  accountId,
45
45
  kind: "runtime",
46
46
  message: `Linked but disconnected${reconnectAttempts != null ? ` (reconnectAttempts=${reconnectAttempts})` : ""}${lastError ? `: ${lastError}` : "."}`,
47
- fix: `Run: ${formatCliCommand("openclaw-cn doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`,
47
+ fix: `Run: ${formatCliCommand("openclaw-botonline doctor")} (or restart the gateway). If it persists, relink via channels login and check logs.`,
48
48
  });
49
49
  }
50
50
  }
@@ -39,7 +39,7 @@ export function registerAcpCli(program) {
39
39
  .command("client")
40
40
  .description("运行与本地 ACP 桥接交互的客户端")
41
41
  .option("--cwd <dir>", "ACP 会话的工作目录")
42
- .option("--server <command>", "ACP 服务器命令(默认:openclaw-cn)")
42
+ .option("--server <command>", "ACP 服务器命令(默认:openclaw-botonline)")
43
43
  .option("--server-args <args...>", "ACP 服务器的额外参数")
44
44
  .option("--server-verbose", "在 ACP 服务器上启用详细日志", false)
45
45
  .option("--verbose, -v", "详细客户端日志", false)
@@ -1,33 +1,33 @@
1
1
  export const browserCoreExamples = [
2
- "openclaw-cn browser status",
3
- "openclaw-cn browser start",
4
- "openclaw-cn browser stop",
5
- "openclaw-cn browser tabs",
6
- "openclaw-cn browser open https://example.com",
7
- "openclaw-cn browser focus abcd1234",
8
- "openclaw-cn browser close abcd1234",
9
- "openclaw-cn browser screenshot",
10
- "openclaw-cn browser screenshot --full-page",
11
- "openclaw-cn browser screenshot --ref 12",
12
- "openclaw-cn browser snapshot",
13
- "openclaw-cn browser snapshot --format aria --limit 200",
14
- "openclaw-cn browser snapshot --efficient",
15
- "openclaw-cn browser snapshot --labels",
2
+ "openclaw-botonline browser status",
3
+ "openclaw-botonline browser start",
4
+ "openclaw-botonline browser stop",
5
+ "openclaw-botonline browser tabs",
6
+ "openclaw-botonline browser open https://example.com",
7
+ "openclaw-botonline browser focus abcd1234",
8
+ "openclaw-botonline browser close abcd1234",
9
+ "openclaw-botonline browser screenshot",
10
+ "openclaw-botonline browser screenshot --full-page",
11
+ "openclaw-botonline browser screenshot --ref 12",
12
+ "openclaw-botonline browser snapshot",
13
+ "openclaw-botonline browser snapshot --format aria --limit 200",
14
+ "openclaw-botonline browser snapshot --efficient",
15
+ "openclaw-botonline browser snapshot --labels",
16
16
  ];
17
17
  export const browserActionExamples = [
18
- "openclaw-cn browser navigate https://example.com",
19
- "openclaw-cn browser resize 1280 720",
20
- "openclaw-cn browser click 12 --double",
21
- 'openclaw-cn browser type 23 "hello" --submit',
22
- "openclaw-cn browser press Enter",
23
- "openclaw-cn browser hover 44",
24
- "openclaw-cn browser drag 10 11",
25
- "openclaw-cn browser select 9 OptionA OptionB",
26
- "openclaw-cn browser upload /tmp/file.pdf",
27
- 'openclaw-cn browser fill --fields \'[{"ref":"1","value":"Ada"}]\'',
28
- "openclaw-cn browser dialog --accept",
29
- 'openclaw-cn browser wait --text "完成"',
30
- "openclaw-cn browser evaluate --fn '(el) => el.textContent' --ref 7",
31
- "openclaw-cn browser console --level error",
32
- "openclaw-cn browser pdf",
18
+ "openclaw-botonline browser navigate https://example.com",
19
+ "openclaw-botonline browser resize 1280 720",
20
+ "openclaw-botonline browser click 12 --double",
21
+ 'openclaw-botonline browser type 23 "hello" --submit',
22
+ "openclaw-botonline browser press Enter",
23
+ "openclaw-botonline browser hover 44",
24
+ "openclaw-botonline browser drag 10 11",
25
+ "openclaw-botonline browser select 9 OptionA OptionB",
26
+ "openclaw-botonline browser upload /tmp/file.pdf",
27
+ 'openclaw-botonline browser fill --fields \'[{"ref":"1","value":"Ada"}]\'',
28
+ "openclaw-botonline browser dialog --accept",
29
+ 'openclaw-botonline browser wait --text "完成"',
30
+ "openclaw-botonline browser evaluate --fn '(el) => el.textContent' --ref 7",
31
+ "openclaw-botonline browser console --level error",
32
+ "openclaw-botonline browser pdf",
33
33
  ];
@@ -80,7 +80,7 @@ export function registerBrowserExtensionCommands(browser, parentOpts) {
80
80
  const dir = installedExtensionRootDir();
81
81
  if (!hasManifest(dir)) {
82
82
  defaultRuntime.error(danger([
83
- `Chrome 扩展未安装。运行:"${formatCliCommand("openclaw-cn browser extension install")}"`,
83
+ `Chrome 扩展未安装。运行:"${formatCliCommand("openclaw-botonline browser extension install")}"`,
84
84
  `Docs: ${formatDocsLink("/tools/chrome-extension", "docs.clawd.bot/tools/chrome-extension")}`,
85
85
  ].join("\n")));
86
86
  defaultRuntime.exit(1);
@@ -23,7 +23,7 @@ export function registerBrowserCli(program) {
23
23
  .addHelpText("after", () => `\n${theme.heading("示例:")}\n${formatHelpExamples([...browserCoreExamples, ...browserActionExamples].map((cmd) => [cmd, ""]), true)}\n\n${theme.muted("文档:")} ${formatDocsLink("/cli/browser", "docs.clawd.bot/cli/browser")}\n`)
24
24
  .action(() => {
25
25
  browser.outputHelp();
26
- defaultRuntime.error(danger(`缺少子命令。尝试: "${formatCliCommand("openclaw-cn browser status")}"`));
26
+ defaultRuntime.error(danger(`缺少子命令。尝试: "${formatCliCommand("openclaw-botonline browser status")}"`));
27
27
  defaultRuntime.exit(1);
28
28
  });
29
29
  const parentOpts = (cmd) => cmd.parent?.opts?.();
@@ -180,7 +180,7 @@ async function loadValidConfig() {
180
180
  for (const issue of snapshot.issues) {
181
181
  defaultRuntime.error(`- ${issue.path || "<root>"}: ${issue.message}`);
182
182
  }
183
- defaultRuntime.error(`Run \`${formatCliCommand("openclaw-cn doctor")}\` to repair, then retry.`);
183
+ defaultRuntime.error(`Run \`${formatCliCommand("openclaw-botonline doctor")}\` to repair, then retry.`);
184
184
  defaultRuntime.exit(1);
185
185
  return snapshot;
186
186
  }
@@ -65,7 +65,7 @@ export async function runDaemonInstall(opts) {
65
65
  });
66
66
  if (!json) {
67
67
  defaultRuntime.log(`Gateway service already ${service.loadedText}.`);
68
- defaultRuntime.log(`Reinstall with: ${formatCliCommand("openclaw-cn gateway install --force")}`);
68
+ defaultRuntime.log(`Reinstall with: ${formatCliCommand("openclaw-botonline gateway install --force")}`);
69
69
  }
70
70
  return;
71
71
  }
@@ -113,7 +113,7 @@ export function renderRuntimeHints(runtime, env = process.env) {
113
113
  }
114
114
  })();
115
115
  if (runtime.missingUnit) {
116
- hints.push(`Service not installed. Run: ${formatCliCommand("openclaw-cn gateway install", env)}`);
116
+ hints.push(`Service not installed. Run: ${formatCliCommand("openclaw-botonline gateway install", env)}`);
117
117
  if (fileLog)
118
118
  hints.push(`File logs: ${fileLog}`);
119
119
  return hints;
@@ -139,8 +139,8 @@ export function renderRuntimeHints(runtime, env = process.env) {
139
139
  }
140
140
  export function renderGatewayServiceStartHints(env = process.env) {
141
141
  const base = [
142
- formatCliCommand("openclaw-cn gateway install", env),
143
- formatCliCommand("openclaw-cn gateway", env),
142
+ formatCliCommand("openclaw-botonline gateway install", env),
143
+ formatCliCommand("openclaw-botonline gateway", env),
144
144
  ];
145
145
  const profile = env.OPENCLAW_PROFILE;
146
146
  switch (process.platform) {
@@ -74,7 +74,7 @@ export function printDaemonStatus(status, opts) {
74
74
  const detail = issue.detail ? ` (${issue.detail})` : "";
75
75
  defaultRuntime.error(`${warnText("服务配置问题:")} ${issue.message}${detail}`);
76
76
  }
77
- defaultRuntime.error(warnText(`建议: 运行 "${formatCliCommand("openclaw-cn doctor")}" (或 "${formatCliCommand("openclaw-cn doctor --repair")}").`));
77
+ defaultRuntime.error(warnText(`建议: 运行 "${formatCliCommand("openclaw-botonline doctor")}" (或 "${formatCliCommand("openclaw-botonline doctor --repair")}").`));
78
78
  }
79
79
  if (status.config) {
80
80
  const cliCfg = `${shortenHomePath(status.config.cli.path)}${status.config.cli.exists ? "" : " (missing)"}${status.config.cli.valid ? "" : " (invalid)"}`;
@@ -95,7 +95,7 @@ export function printDaemonStatus(status, opts) {
95
95
  }
96
96
  if (status.config.mismatch) {
97
97
  defaultRuntime.error(errorText("根本原因: CLI 和服务使用不同的配置路径 (可能是配置文件/state-dir 不匹配)。"));
98
- defaultRuntime.error(errorText(`修复: 从相同的 --profile / OPENCLAW_STATE_DIR 重新运行 \`${formatCliCommand("openclaw-cn gateway install --force")}\``));
98
+ defaultRuntime.error(errorText(`修复: 从相同的 --profile / OPENCLAW_STATE_DIR 重新运行 \`${formatCliCommand("openclaw-botonline gateway install --force")}\``));
99
99
  }
100
100
  spacer();
101
101
  }
@@ -178,7 +178,7 @@ export function printDaemonStatus(status, opts) {
178
178
  const env = (service.command?.environment ?? process.env);
179
179
  const labelValue = resolveGatewayLaunchAgentLabel(env.OPENCLAW_PROFILE);
180
180
  defaultRuntime.error(errorText(`LaunchAgent 标签已缓存但 plist 缺失。使用以下命令清除: launchctl bootout gui/$UID/${labelValue}`));
181
- defaultRuntime.error(errorText(`Then reinstall: ${formatCliCommand("openclaw-cn gateway install")}`));
181
+ defaultRuntime.error(errorText(`Then reinstall: ${formatCliCommand("openclaw-botonline gateway install")}`));
182
182
  spacer();
183
183
  }
184
184
  for (const line of renderPortDiagnosticsForCli(status, rpc?.ok)) {
@@ -218,7 +218,7 @@ export function printDaemonStatus(status, opts) {
218
218
  for (const svc of legacyServices) {
219
219
  defaultRuntime.error(`- ${errorText(svc.label)} (${svc.detail})`);
220
220
  }
221
- defaultRuntime.error(errorText(`Cleanup: ${formatCliCommand("openclaw-cn doctor")}`));
221
+ defaultRuntime.error(errorText(`Cleanup: ${formatCliCommand("openclaw-botonline doctor")}`));
222
222
  spacer();
223
223
  }
224
224
  if (extraServices.length > 0) {
@@ -236,6 +236,6 @@ export function printDaemonStatus(status, opts) {
236
236
  defaultRuntime.error(errorText("如果您需要多个网关 (例如,在同一主机上的救援机器人),请隔离端口 + 配置/状态 (参见文档: /gateway#multiple-gateways-same-host)。"));
237
237
  spacer();
238
238
  }
239
- defaultRuntime.log(`${label("问题排查:")} run ${formatCliCommand("openclaw-cn status")}`);
239
+ defaultRuntime.log(`${label("问题排查:")} run ${formatCliCommand("openclaw-botonline status")}`);
240
240
  defaultRuntime.log(`${label("故障排除:")} https://docs.clawd.bot/troubleshooting`);
241
241
  }
@@ -175,7 +175,7 @@ export function registerDnsCli(program) {
175
175
  const d = String(new Date().getUTCDate()).padStart(2, "0");
176
176
  const serial = `${y}${m}${d}01`;
177
177
  const zoneLines = [
178
- `; created by openclaw-cn dns setup (will be overwritten by the gateway when wide-area discovery is enabled)`,
178
+ `; created by openclaw-botonline dns setup (will be overwritten by the gateway when wide-area discovery is enabled)`,
179
179
  `$ORIGIN ${WIDE_AREA_DISCOVERY_DOMAIN}`,
180
180
  `$TTL 60`,
181
181
  `@ IN SOA ns1 hostmaster ${serial} 7200 3600 1209600 60`,
@@ -258,7 +258,7 @@ export function registerExecApprovalsCli(program) {
258
258
  const allowlist = approvals
259
259
  .command("allowlist")
260
260
  .description("编辑每个智能体的允许列表")
261
- .addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample('openclaw-cn approvals allowlist add "~/Projects/**/bin/rg"', "Allowlist a local binary pattern for the main agent.")}\n${formatExample('openclaw-cn approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"', "Allowlist on a specific node/agent.")}\n${formatExample('openclaw-cn approvals allowlist add --agent "*" "/usr/bin/uname"', "Allowlist for all agents (wildcard).")}\n${formatExample('openclaw-cn approvals allowlist remove "~/Projects/**/bin/rg"', "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.clawd.bot/cli/approvals")}\n`);
261
+ .addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatExample('openclaw-botonline approvals allowlist add "~/Projects/**/bin/rg"', "Allowlist a local binary pattern for the main agent.")}\n${formatExample('openclaw-botonline approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"', "Allowlist on a specific node/agent.")}\n${formatExample('openclaw-botonline approvals allowlist add --agent "*" "/usr/bin/uname"', "Allowlist for all agents (wildcard).")}\n${formatExample('openclaw-botonline approvals allowlist remove "~/Projects/**/bin/rg"', "Remove an allowlist pattern.")}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/approvals", "docs.clawd.bot/cli/approvals")}\n`);
262
262
  const allowlistAdd = allowlist
263
263
  .command("add <pattern>")
264
264
  .description("向允许列表添加 glob 模式")
@@ -49,7 +49,7 @@ async function ensureDevWorkspace(dir) {
49
49
  const resolvedDir = resolveUserPath(dir);
50
50
  await fs.promises.mkdir(resolvedDir, { recursive: true });
51
51
  const [agents, soul, tools, identity, user] = await Promise.all([
52
- loadDevTemplate("AGENTS.dev.md", `# AGENTS.md - Clawdbot Dev Workspace\n\nDefault dev workspace for openclaw-cn gateway --dev.\n`),
52
+ loadDevTemplate("AGENTS.dev.md", `# AGENTS.md - Clawdbot Dev Workspace\n\nDefault dev workspace for openclaw-botonline gateway --dev.\n`),
53
53
  loadDevTemplate("SOUL.dev.md", `# SOUL.md - Dev Persona\n\nProtocol droid for debugging and operations.\n`),
54
54
  loadDevTemplate("TOOLS.dev.md", `# TOOLS.md - User Tool Notes (editable)\n\nAdd your local tool notes here.\n`),
55
55
  loadDevTemplate("IDENTITY.dev.md", `# IDENTITY.md - Agent Identity\n\n- Name: ${DEV_IDENTITY_NAME}\n- Creature: protocol droid\n- Vibe: ${DEV_IDENTITY_THEME}\n- Emoji: ${DEV_IDENTITY_EMOJI}\n`),
@@ -115,7 +115,7 @@ async function runGatewayCommand(opts) {
115
115
  const mode = cfg.gateway?.mode;
116
116
  if (!opts.allowUnconfigured && mode !== "local") {
117
117
  if (!configExists) {
118
- defaultRuntime.error(`Missing config. Run \`${formatCliCommand("openclaw-cn setup")}\` or set gateway.mode=local (or pass --allow-unconfigured).`);
118
+ defaultRuntime.error(`Missing config. Run \`${formatCliCommand("openclaw-botonline setup")}\` or set gateway.mode=local (or pass --allow-unconfigured).`);
119
119
  }
120
120
  else {
121
121
  defaultRuntime.error(`Gateway start blocked: set gateway.mode=local (current: ${mode ?? "unset"}) or pass --allow-unconfigured.`);
@@ -220,7 +220,7 @@ async function runGatewayCommand(opts) {
220
220
  if (err instanceof GatewayLockError ||
221
221
  (err && typeof err === "object" && err.name === "GatewayLockError")) {
222
222
  const errMessage = describeUnknownError(err);
223
- defaultRuntime.error(`Gateway failed to start: ${errMessage}\nIf the gateway is supervised, stop it with: ${formatCliCommand("openclaw-cn gateway stop")}`);
223
+ defaultRuntime.error(`Gateway failed to start: ${errMessage}\nIf the gateway is supervised, stop it with: ${formatCliCommand("openclaw-botonline gateway stop")}`);
224
224
  try {
225
225
  const diagnostics = await inspectPortUsage(port);
226
226
  if (diagnostics.status === "busy") {
@@ -64,21 +64,21 @@ export function renderGatewayServiceStopHints(env = process.env) {
64
64
  switch (process.platform) {
65
65
  case "darwin":
66
66
  return [
67
- `Tip: ${formatCliCommand("openclaw-cn gateway stop")}`,
67
+ `Tip: ${formatCliCommand("openclaw-botonline gateway stop")}`,
68
68
  `Or: launchctl bootout gui/$UID/${resolveGatewayLaunchAgentLabel(profile)}`,
69
69
  ];
70
70
  case "linux":
71
71
  return [
72
- `Tip: ${formatCliCommand("openclaw-cn gateway stop")}`,
72
+ `Tip: ${formatCliCommand("openclaw-botonline gateway stop")}`,
73
73
  `Or: systemctl --user stop ${resolveGatewaySystemdServiceName(profile)}.service`,
74
74
  ];
75
75
  case "win32":
76
76
  return [
77
- `Tip: ${formatCliCommand("openclaw-cn gateway stop")}`,
77
+ `Tip: ${formatCliCommand("openclaw-botonline gateway stop")}`,
78
78
  `Or: schtasks /End /TN "${resolveGatewayWindowsTaskName(profile)}"`,
79
79
  ];
80
80
  default:
81
- return [`Tip: ${formatCliCommand("openclaw-cn gateway stop")}`];
81
+ return [`Tip: ${formatCliCommand("openclaw-botonline gateway stop")}`];
82
82
  }
83
83
  }
84
84
  export async function maybeExplainGatewayServiceStop() {
@@ -105,7 +105,7 @@ export function formatHooksList(report, opts) {
105
105
  }
106
106
  if (hooks.length === 0) {
107
107
  const message = opts.eligible
108
- ? `No eligible hooks found. Run \`${formatCliCommand("openclaw-cn hooks list")}\` to see all hooks.`
108
+ ? `No eligible hooks found. Run \`${formatCliCommand("openclaw-botonline hooks list")}\` to see all hooks.`
109
109
  : "No hooks found.";
110
110
  return message;
111
111
  }
@@ -148,7 +148,7 @@ export function formatHookInfo(report, hookName, opts) {
148
148
  if (opts.json) {
149
149
  return JSON.stringify({ error: "not found", hook: hookName }, null, 2);
150
150
  }
151
- return `Hook "${hookName}" not found. Run \`${formatCliCommand("openclaw-cn hooks list")}\` to see available hooks.`;
151
+ return `Hook "${hookName}" not found. Run \`${formatCliCommand("openclaw-botonline hooks list")}\` to see available hooks.`;
152
152
  }
153
153
  if (opts.json) {
154
154
  return JSON.stringify(hook, null, 2);