@gguf/pigbot 0.0.5 → 0.0.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.
Files changed (1094) hide show
  1. package/CHANGELOG.md +1208 -10
  2. package/LICENSE +2 -2
  3. package/README.md +347 -37
  4. package/assets/chrome-extension/README.md +5 -5
  5. package/assets/chrome-extension/background.js +5 -5
  6. package/assets/chrome-extension/manifest.json +3 -3
  7. package/assets/chrome-extension/options.html +5 -5
  8. package/assets/chrome-extension/options.js +1 -1
  9. package/dist/acp/client.js +5 -5
  10. package/dist/acp/server.js +3 -3
  11. package/dist/acp/types.js +2 -2
  12. package/dist/agents/agent-paths.js +6 -6
  13. package/dist/agents/agent-scope.js +1 -1
  14. package/dist/agents/anthropic-payload-log.js +2 -2
  15. package/dist/agents/auth-profiles/doctor.js +1 -1
  16. package/dist/agents/auth-profiles/paths.js +3 -3
  17. package/dist/agents/bash-tools.exec.js +1 -1
  18. package/dist/agents/bash-tools.shared.js +2 -2
  19. package/dist/agents/cache-trace.js +5 -5
  20. package/dist/agents/channel-tools.js +31 -2
  21. package/dist/agents/cli-runner/helpers.js +3 -3
  22. package/dist/agents/cli-runner.js +3 -3
  23. package/dist/agents/context.js +4 -4
  24. package/dist/agents/docs-path.js +3 -3
  25. package/dist/agents/identity.js +1 -1
  26. package/dist/agents/live-auth-keys.js +2 -2
  27. package/dist/agents/memory-search.js +5 -0
  28. package/dist/agents/minimax-vlm.js +1 -1
  29. package/dist/agents/model-auth.js +2 -1
  30. package/dist/agents/model-catalog.js +4 -4
  31. package/dist/agents/model-selection.js +1 -1
  32. package/dist/agents/models-config.js +3 -3
  33. package/dist/agents/models-config.providers.js +40 -8
  34. package/dist/agents/{moltbot-tools.js → openclaw-tools.js} +1 -1
  35. package/dist/agents/pi-embedded-helpers/errors.js +20 -0
  36. package/dist/agents/pi-embedded-helpers/openai.js +1 -1
  37. package/dist/agents/pi-embedded-helpers.js +1 -1
  38. package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
  39. package/dist/agents/pi-embedded-runner/compact.js +8 -8
  40. package/dist/agents/pi-embedded-runner/model.js +2 -2
  41. package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
  42. package/dist/agents/pi-embedded-runner/run.js +31 -5
  43. package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
  44. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  45. package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
  46. package/dist/agents/pi-tools.js +5 -5
  47. package/dist/agents/pi-tools.read.js +2 -2
  48. package/dist/agents/sandbox/browser.js +16 -11
  49. package/dist/agents/sandbox/constants.js +7 -7
  50. package/dist/agents/sandbox/docker.js +17 -14
  51. package/dist/agents/sandbox/runtime-status.js +1 -1
  52. package/dist/agents/session-transcript-repair.js +1 -1
  53. package/dist/agents/session-write-lock.js +2 -2
  54. package/dist/agents/skills/bundled-dir.js +1 -1
  55. package/dist/agents/skills/config.js +2 -1
  56. package/dist/agents/skills/frontmatter.js +11 -3
  57. package/dist/agents/skills/workspace.js +6 -6
  58. package/dist/agents/synthetic-models.js +8 -0
  59. package/dist/agents/system-prompt.js +21 -21
  60. package/dist/agents/tool-images.js +1 -1
  61. package/dist/agents/tool-policy.js +2 -2
  62. package/dist/agents/tools/browser-tool.js +5 -5
  63. package/dist/agents/tools/image-tool.js +2 -2
  64. package/dist/agents/tools/memory-tool.js +1 -1
  65. package/dist/agents/tools/sessions-send-tool.js +2 -2
  66. package/dist/agents/tools/web-search.js +7 -7
  67. package/dist/agents/transcript-policy.js +2 -1
  68. package/dist/agents/workspace.js +3 -3
  69. package/dist/auto-reply/commands-registry.data.js +1 -1
  70. package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
  71. package/dist/auto-reply/reply/bash-command.js +2 -2
  72. package/dist/auto-reply/reply/commands-context-report.js +2 -2
  73. package/dist/auto-reply/reply/commands-session.js +4 -4
  74. package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
  75. package/dist/auto-reply/reply/dispatch-from-config.js +21 -0
  76. package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
  77. package/dist/auto-reply/reply/get-reply.js +1 -1
  78. package/dist/auto-reply/reply/groups.js +1 -1
  79. package/dist/auto-reply/reply/mentions.js +3 -2
  80. package/dist/auto-reply/reply/normalize-reply.js +12 -4
  81. package/dist/auto-reply/reply/reply-dispatcher.js +8 -1
  82. package/dist/auto-reply/reply/reply-elevated.js +1 -1
  83. package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
  84. package/dist/auto-reply/status.js +2 -2
  85. package/dist/browser/chrome.js +13 -13
  86. package/dist/browser/chrome.profile-decoration.js +5 -5
  87. package/dist/browser/client-fetch.js +3 -3
  88. package/dist/browser/config.js +11 -11
  89. package/dist/browser/constants.js +3 -3
  90. package/dist/browser/control-service.js +1 -1
  91. package/dist/browser/extension-relay.js +3 -3
  92. package/dist/browser/profiles-service.js +2 -2
  93. package/dist/browser/profiles.js +1 -1
  94. package/dist/browser/pw-tools-core.downloads.js +1 -1
  95. package/dist/browser/pw-tools-core.interactions.js +5 -5
  96. package/dist/browser/pw-tools-core.responses.js +1 -1
  97. package/dist/browser/routes/agent.act.js +2 -2
  98. package/dist/browser/routes/agent.debug.js +1 -1
  99. package/dist/browser/server-context.js +9 -9
  100. package/dist/browser/server.js +2 -2
  101. package/dist/build-info.json +2 -2
  102. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  103. package/dist/canvas-host/a2ui/a2ui.bundle.js +24 -19
  104. package/dist/canvas-host/a2ui/index.html +28 -28
  105. package/dist/canvas-host/a2ui.js +14 -18
  106. package/dist/canvas-host/server.js +33 -35
  107. package/dist/channels/plugins/catalog.js +7 -7
  108. package/dist/channels/plugins/helpers.js +2 -2
  109. package/dist/channels/plugins/onboarding/imessage.js +1 -1
  110. package/dist/channels/plugins/onboarding/signal.js +2 -2
  111. package/dist/channels/plugins/onboarding/slack.js +5 -5
  112. package/dist/channels/plugins/onboarding/telegram.js +3 -3
  113. package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
  114. package/dist/channels/plugins/pairing-message.js +1 -1
  115. package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
  116. package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
  117. package/dist/channels/registry.js +1 -1
  118. package/dist/cli/acp-cli.js +2 -2
  119. package/dist/cli/argv.js +2 -2
  120. package/dist/cli/banner.js +10 -11
  121. package/dist/cli/browser-cli-actions-input/register.files-downloads.js +1 -1
  122. package/dist/cli/browser-cli-examples.js +29 -29
  123. package/dist/cli/browser-cli-extension.js +5 -5
  124. package/dist/cli/browser-cli-manage.js +4 -4
  125. package/dist/cli/browser-cli.js +3 -3
  126. package/dist/cli/channel-options.js +1 -1
  127. package/dist/cli/channels-cli.js +1 -1
  128. package/dist/cli/cli-name.js +4 -8
  129. package/dist/cli/command-format.js +3 -3
  130. package/dist/cli/config-cli.js +2 -2
  131. package/dist/cli/cron-cli/register.js +1 -1
  132. package/dist/cli/daemon-cli/install.js +2 -2
  133. package/dist/cli/daemon-cli/register.js +1 -1
  134. package/dist/cli/daemon-cli/shared.js +11 -13
  135. package/dist/cli/daemon-cli/status.gather.js +2 -5
  136. package/dist/cli/daemon-cli/status.print.js +9 -17
  137. package/dist/cli/directory-cli.js +1 -1
  138. package/dist/cli/dns-cli.js +20 -13
  139. package/dist/cli/docs-cli.js +2 -2
  140. package/dist/cli/exec-approvals-cli.js +2 -2
  141. package/dist/cli/gateway-cli/dev.js +7 -5
  142. package/dist/cli/gateway-cli/register.js +12 -6
  143. package/dist/cli/gateway-cli/run.js +15 -14
  144. package/dist/cli/gateway-cli/shared.js +5 -5
  145. package/dist/cli/hooks-cli.js +3 -3
  146. package/dist/cli/logs-cli.js +3 -3
  147. package/dist/cli/memory-cli.js +36 -5
  148. package/dist/cli/models-cli.js +1 -1
  149. package/dist/cli/node-cli/daemon.js +3 -3
  150. package/dist/cli/node-cli/register.js +1 -1
  151. package/dist/cli/nodes-cli/register.canvas.js +1 -1
  152. package/dist/cli/nodes-cli/register.js +1 -1
  153. package/dist/cli/nodes-screen.js +1 -1
  154. package/dist/cli/pairing-cli.js +3 -3
  155. package/dist/cli/plugin-registry.js +2 -2
  156. package/dist/cli/plugins-cli.js +3 -3
  157. package/dist/cli/profile.js +9 -9
  158. package/dist/cli/program/config-guard.js +1 -1
  159. package/dist/cli/program/help.js +14 -11
  160. package/dist/cli/program/preaction.js +1 -1
  161. package/dist/cli/program/register.agent.js +15 -12
  162. package/dist/cli/program/register.configure.js +1 -1
  163. package/dist/cli/program/register.maintenance.js +4 -4
  164. package/dist/cli/program/register.message.js +5 -5
  165. package/dist/cli/program/register.onboard.js +5 -3
  166. package/dist/cli/program/register.setup.js +3 -3
  167. package/dist/cli/program/register.status-health-sessions.js +13 -13
  168. package/dist/cli/program/register.subclis.js +7 -2
  169. package/dist/cli/route.js +1 -1
  170. package/dist/cli/run-main.js +3 -3
  171. package/dist/cli/sandbox-cli.js +19 -19
  172. package/dist/cli/security-cli.js +4 -4
  173. package/dist/cli/skills-cli.js +3 -3
  174. package/dist/cli/system-cli.js +1 -1
  175. package/dist/cli/tagline.js +11 -9
  176. package/dist/cli/tui-cli.js +1 -1
  177. package/dist/cli/update-cli.js +48 -45
  178. package/dist/cli/webhooks-cli.js +6 -6
  179. package/dist/commands/agent-via-gateway.js +1 -1
  180. package/dist/commands/agent.js +1 -1
  181. package/dist/commands/agents.command-shared.js +1 -1
  182. package/dist/commands/agents.commands.add.js +2 -2
  183. package/dist/commands/agents.commands.list.js +1 -1
  184. package/dist/commands/auth-choice-options.js +10 -0
  185. package/dist/commands/auth-choice.apply.api-providers.js +49 -1
  186. package/dist/commands/auth-choice.apply.openai.js +1 -1
  187. package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
  188. package/dist/commands/auth-choice.preferred-provider.js +1 -0
  189. package/dist/commands/channels/shared.js +1 -1
  190. package/dist/commands/channels/status.js +1 -1
  191. package/dist/commands/chutes-oauth.js +1 -1
  192. package/dist/commands/configure.channels.js +2 -2
  193. package/dist/commands/configure.gateway.js +1 -1
  194. package/dist/commands/configure.wizard.js +21 -21
  195. package/dist/commands/daemon-install-helpers.js +2 -2
  196. package/dist/commands/dashboard.js +2 -2
  197. package/dist/commands/docs.js +5 -5
  198. package/dist/commands/doctor-auth.js +5 -5
  199. package/dist/commands/doctor-config-flow.js +64 -7
  200. package/dist/commands/doctor-format.js +5 -5
  201. package/dist/commands/doctor-gateway-daemon-flow.js +7 -4
  202. package/dist/commands/doctor-gateway-services.js +72 -65
  203. package/dist/commands/doctor-platform-notes.js +51 -9
  204. package/dist/commands/doctor-sandbox.js +4 -4
  205. package/dist/commands/doctor-security.js +7 -7
  206. package/dist/commands/doctor-state-integrity.js +9 -7
  207. package/dist/commands/doctor-state-migrations.js +1 -1
  208. package/dist/commands/doctor-ui.js +2 -2
  209. package/dist/commands/doctor-update.js +5 -5
  210. package/dist/commands/doctor-workspace-status.js +2 -2
  211. package/dist/commands/doctor-workspace.js +5 -27
  212. package/dist/commands/doctor.js +11 -11
  213. package/dist/commands/gateway-status/helpers.js +2 -2
  214. package/dist/commands/gateway-status.js +9 -3
  215. package/dist/commands/health.js +2 -2
  216. package/dist/commands/models/auth.js +1 -1
  217. package/dist/commands/models/list.probe.js +2 -2
  218. package/dist/commands/models/list.registry.js +4 -4
  219. package/dist/commands/models/list.status-command.js +4 -4
  220. package/dist/commands/node-daemon-install-helpers.js +1 -1
  221. package/dist/commands/onboard-auth.config-core.js +65 -1
  222. package/dist/commands/onboard-auth.credentials.js +14 -2
  223. package/dist/commands/onboard-auth.js +2 -2
  224. package/dist/commands/onboard-channels.js +5 -5
  225. package/dist/commands/onboard-helpers.js +9 -8
  226. package/dist/commands/onboard-hooks.js +4 -4
  227. package/dist/commands/onboard-non-interactive/local/auth-choice.js +21 -1
  228. package/dist/commands/onboard-non-interactive/local.js +1 -1
  229. package/dist/commands/onboard-non-interactive/remote.js +1 -1
  230. package/dist/commands/onboard-non-interactive.js +1 -1
  231. package/dist/commands/onboard-remote.js +7 -3
  232. package/dist/commands/onboard-skills.js +2 -2
  233. package/dist/commands/onboard.js +3 -3
  234. package/dist/commands/onboarding/plugin-install.js +2 -2
  235. package/dist/commands/reset.js +3 -3
  236. package/dist/commands/sandbox-display.js +1 -1
  237. package/dist/commands/sandbox-explain.js +2 -2
  238. package/dist/commands/setup.js +9 -7
  239. package/dist/commands/signal-install.js +2 -2
  240. package/dist/commands/status-all/diagnosis.js +1 -1
  241. package/dist/commands/status-all/report-lines.js +1 -1
  242. package/dist/commands/status-all.js +5 -5
  243. package/dist/commands/status.command.js +9 -9
  244. package/dist/commands/status.gateway-probe.js +2 -2
  245. package/dist/commands/status.scan.js +2 -2
  246. package/dist/commands/status.update.js +3 -3
  247. package/dist/commands/uninstall.js +4 -4
  248. package/dist/compat/legacy-names.js +8 -6
  249. package/dist/config/config.js +1 -1
  250. package/dist/config/io.js +13 -14
  251. package/dist/config/paths.js +107 -33
  252. package/dist/config/schema.js +14 -12
  253. package/dist/config/sessions/store.js +1 -1
  254. package/dist/config/sessions/transcript.js +1 -1
  255. package/dist/config/types.js +1 -1
  256. package/dist/config/validation.js +2 -2
  257. package/dist/config/version.js +4 -4
  258. package/dist/config/zod-schema.agent-runtime.js +1 -0
  259. package/dist/config/zod-schema.js +3 -2
  260. package/dist/config/zod-schema.session.js +6 -1
  261. package/dist/control-ui/apple-touch-icon.png +0 -0
  262. package/dist/control-ui/assets/index-BKPyesll.css +1 -0
  263. package/dist/control-ui/assets/{index-CxLFx0Ae.js → index-DFDgq9AK.js} +397 -366
  264. package/dist/control-ui/assets/index-DFDgq9AK.js.map +1 -0
  265. package/dist/control-ui/favicon-32.png +0 -0
  266. package/dist/control-ui/favicon.svg +22 -0
  267. package/dist/control-ui/index.html +7 -5
  268. package/dist/daemon/constants.js +19 -25
  269. package/dist/daemon/inspect.js +64 -28
  270. package/dist/daemon/launchd.js +7 -7
  271. package/dist/daemon/node-service.js +14 -14
  272. package/dist/daemon/paths.js +3 -3
  273. package/dist/daemon/program-args.js +1 -1
  274. package/dist/daemon/schtasks.js +6 -6
  275. package/dist/daemon/service-env.js +25 -21
  276. package/dist/daemon/systemd-hints.js +1 -1
  277. package/dist/daemon/systemd-unit.js +1 -1
  278. package/dist/daemon/systemd.js +6 -6
  279. package/dist/discord/send.outbound.js +4 -4
  280. package/dist/discord/send.shared.js +32 -1
  281. package/dist/discord/targets.js +79 -0
  282. package/dist/entry.js +9 -8
  283. package/dist/gateway/auth.js +6 -3
  284. package/dist/gateway/call.js +3 -1
  285. package/dist/gateway/control-ui.js +4 -4
  286. package/dist/gateway/hooks.js +3 -1
  287. package/dist/gateway/http-utils.js +5 -3
  288. package/dist/gateway/openai-http.js +3 -3
  289. package/dist/gateway/openresponses-http.js +4 -4
  290. package/dist/gateway/protocol/client-info.js +5 -5
  291. package/dist/gateway/server/ws-connection/message-handler.js +1 -1
  292. package/dist/gateway/server-browser.js +2 -2
  293. package/dist/gateway/server-constants.js +2 -2
  294. package/dist/gateway/server-cron.js +1 -1
  295. package/dist/gateway/server-discovery-runtime.js +12 -4
  296. package/dist/gateway/server-discovery.js +7 -7
  297. package/dist/gateway/server-http.js +1 -1
  298. package/dist/gateway/server-methods/config.js +2 -2
  299. package/dist/gateway/server-methods/logs.js +1 -1
  300. package/dist/gateway/server-methods/update.js +2 -2
  301. package/dist/gateway/server-plugins.js +2 -2
  302. package/dist/gateway/server-reload-handlers.js +5 -5
  303. package/dist/gateway/server-runtime-config.js +3 -3
  304. package/dist/gateway/server-startup.js +6 -6
  305. package/dist/gateway/server.impl.js +8 -7
  306. package/dist/gateway/session-utils.fs.js +2 -1
  307. package/dist/gateway/test-helpers.mocks.js +8 -6
  308. package/dist/gateway/test-helpers.server.js +28 -28
  309. package/dist/gateway/tools-invoke-http.js +40 -4
  310. package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
  311. package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
  312. package/dist/hooks/bundled/command-logger/handler.js +2 -1
  313. package/dist/hooks/bundled/session-memory/HOOK.md +30 -7
  314. package/dist/hooks/bundled/session-memory/handler.js +19 -12
  315. package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
  316. package/dist/hooks/bundled-dir.js +2 -2
  317. package/dist/hooks/config.js +1 -1
  318. package/dist/hooks/frontmatter.js +11 -3
  319. package/dist/hooks/gmail-ops.js +1 -1
  320. package/dist/hooks/gmail-watcher.js +1 -1
  321. package/dist/hooks/hooks-status.js +2 -2
  322. package/dist/hooks/install.js +8 -8
  323. package/dist/hooks/internal-hooks.js +1 -1
  324. package/dist/hooks/llm-slug-generator.js +1 -1
  325. package/dist/hooks/loader.js +1 -1
  326. package/dist/hooks/plugin-hooks.js +2 -2
  327. package/dist/hooks/workspace.js +9 -9
  328. package/dist/imessage/monitor/monitor-provider.js +2 -2
  329. package/dist/index.js +4 -4
  330. package/dist/infra/bonjour-discovery.js +21 -17
  331. package/dist/infra/bonjour.js +10 -9
  332. package/dist/infra/device-identity.js +1 -1
  333. package/dist/infra/diagnostic-flags.js +1 -1
  334. package/dist/infra/dotenv.js +1 -1
  335. package/dist/infra/exec-approvals.js +2 -2
  336. package/dist/infra/gateway-lock.js +3 -2
  337. package/dist/infra/machine-name.js +1 -1
  338. package/dist/infra/{moltbot-root.js → openclaw-root.js} +2 -2
  339. package/dist/infra/outbound/outbound-session.js +18 -0
  340. package/dist/infra/outbound/targets.js +1 -1
  341. package/dist/infra/path-env.js +10 -9
  342. package/dist/infra/ports-format.js +3 -2
  343. package/dist/infra/ports.js +2 -2
  344. package/dist/infra/provider-usage.auth.js +33 -0
  345. package/dist/infra/provider-usage.fetch.claude.js +1 -1
  346. package/dist/infra/provider-usage.fetch.minimax.js +1 -1
  347. package/dist/infra/provider-usage.load.js +6 -0
  348. package/dist/infra/provider-usage.shared.js +2 -0
  349. package/dist/infra/restart-sentinel.js +1 -1
  350. package/dist/infra/restart.js +4 -4
  351. package/dist/infra/runtime-guard.js +2 -2
  352. package/dist/infra/shell-env.js +4 -4
  353. package/dist/infra/ssh-config.js +2 -1
  354. package/dist/infra/ssh-tunnel.js +8 -1
  355. package/dist/infra/state-migrations.js +165 -6
  356. package/dist/infra/system-presence.js +1 -1
  357. package/dist/infra/tailscale.js +1 -1
  358. package/dist/infra/tls/gateway.js +1 -1
  359. package/dist/infra/unhandled-rejections.js +56 -33
  360. package/dist/infra/update-check.js +1 -1
  361. package/dist/infra/update-global.js +21 -11
  362. package/dist/infra/update-runner.js +7 -7
  363. package/dist/infra/update-startup.js +3 -3
  364. package/dist/infra/voicewake.js +1 -1
  365. package/dist/infra/warnings.js +1 -1
  366. package/dist/infra/widearea-dns.js +31 -14
  367. package/dist/logging/logger.js +4 -4
  368. package/dist/macos/gateway-daemon.js +9 -6
  369. package/dist/macos/relay-smoke.js +1 -1
  370. package/dist/macos/relay.js +6 -6
  371. package/dist/media/host.js +1 -1
  372. package/dist/media/image-ops.js +3 -3
  373. package/dist/media/input-files.js +1 -1
  374. package/dist/media/mime.js +3 -0
  375. package/dist/media-understanding/apply.js +278 -1
  376. package/dist/media-understanding/attachments.js +1 -1
  377. package/dist/media-understanding/providers/image.js +2 -2
  378. package/dist/media-understanding/runner.js +1 -1
  379. package/dist/memory/batch-gemini.js +2 -2
  380. package/dist/memory/batch-openai.js +1 -1
  381. package/dist/memory/embeddings-gemini.js +1 -1
  382. package/dist/memory/embeddings.js +1 -1
  383. package/dist/memory/internal.js +49 -16
  384. package/dist/memory/manager-cache-key.js +1 -0
  385. package/dist/memory/manager.js +62 -10
  386. package/dist/memory/sync-memory-files.js +1 -1
  387. package/dist/node-host/runner.js +6 -6
  388. package/dist/pairing/pairing-messages.js +2 -2
  389. package/dist/plugins/bundled-dir.js +1 -1
  390. package/dist/plugins/cli.js +2 -2
  391. package/dist/plugins/config-state.js +60 -0
  392. package/dist/plugins/discovery.js +14 -12
  393. package/dist/plugins/install.js +8 -8
  394. package/dist/plugins/loader.js +4 -7
  395. package/dist/plugins/manifest-registry.js +4 -4
  396. package/dist/plugins/manifest.js +4 -7
  397. package/dist/plugins/providers.js +2 -2
  398. package/dist/plugins/registry.js +2 -2
  399. package/dist/plugins/runtime.js +1 -1
  400. package/dist/plugins/status.js +2 -2
  401. package/dist/plugins/tools.js +2 -2
  402. package/dist/plugins/update.js +3 -3
  403. package/dist/providers/qwen-portal-oauth.js +1 -1
  404. package/dist/routing/resolve-route.js +2 -0
  405. package/dist/routing/session-key.js +5 -0
  406. package/dist/security/audit-extra.js +2 -2
  407. package/dist/security/audit.js +7 -7
  408. package/dist/shared/text/reasoning-tags.js +44 -3
  409. package/dist/slack/monitor/commands.js +4 -3
  410. package/dist/slack/monitor/slash.js +62 -59
  411. package/dist/slack/monitor.test-helpers.js +1 -1
  412. package/dist/telegram/accounts.js +1 -1
  413. package/dist/telegram/bot/delivery.js +26 -3
  414. package/dist/telegram/bot/helpers.js +13 -2
  415. package/dist/telegram/bot-message-context.js +8 -4
  416. package/dist/telegram/bot-message-dispatch.js +36 -5
  417. package/dist/telegram/bot-native-commands.js +50 -11
  418. package/dist/telegram/bot.js +7 -5
  419. package/dist/telegram/download.js +1 -1
  420. package/dist/telegram/monitor.js +19 -1
  421. package/dist/telegram/network-config.js +2 -2
  422. package/dist/telegram/network-errors.js +4 -0
  423. package/dist/terminal/links.js +1 -1
  424. package/dist/tts/tts.js +12 -6
  425. package/dist/tui/gateway-chat.js +3 -3
  426. package/dist/tui/tui.js +1 -1
  427. package/dist/utils.js +12 -3
  428. package/dist/version.js +3 -3
  429. package/dist/web/active-listener.js +1 -1
  430. package/dist/web/auth-store.js +1 -1
  431. package/dist/web/auto-reply/monitor/broadcast.js +2 -0
  432. package/dist/web/auto-reply/monitor/process-message.js +1 -1
  433. package/dist/web/auto-reply/monitor.js +1 -1
  434. package/dist/web/login.js +1 -1
  435. package/dist/web/session.js +2 -2
  436. package/dist/wizard/onboarding.finalize.js +24 -21
  437. package/dist/wizard/onboarding.gateway-config.js +1 -1
  438. package/dist/wizard/onboarding.js +11 -11
  439. package/docs/CNAME +1 -1
  440. package/docs/_config.yml +3 -3
  441. package/docs/_layouts/default.html +9 -9
  442. package/docs/assets/openclaw-logo-text-dark.png +0 -0
  443. package/docs/assets/openclaw-logo-text.png +0 -0
  444. package/docs/assets/theme.js +1 -1
  445. package/docs/automation/auth-monitoring.md +7 -7
  446. package/docs/automation/cron-jobs.md +19 -19
  447. package/docs/automation/cron-vs-heartbeat.md +7 -7
  448. package/docs/automation/gmail-pubsub.md +25 -25
  449. package/docs/automation/poll.md +7 -7
  450. package/docs/automation/webhook.md +5 -5
  451. package/docs/bedrock.md +10 -10
  452. package/docs/brave-search.md +1 -1
  453. package/docs/broadcast-groups.md +6 -6
  454. package/docs/channels/bluebubbles.md +12 -12
  455. package/docs/channels/discord.md +15 -15
  456. package/docs/channels/googlechat.md +16 -16
  457. package/docs/channels/imessage.md +13 -13
  458. package/docs/channels/index.md +4 -4
  459. package/docs/channels/line.md +6 -6
  460. package/docs/channels/location.md +1 -1
  461. package/docs/channels/matrix.md +14 -14
  462. package/docs/channels/mattermost.md +8 -8
  463. package/docs/channels/msteams.md +26 -26
  464. package/docs/channels/nextcloud-talk.md +7 -7
  465. package/docs/channels/nostr.md +9 -9
  466. package/docs/channels/signal.md +9 -9
  467. package/docs/channels/slack.md +16 -16
  468. package/docs/channels/telegram.md +23 -23
  469. package/docs/channels/tlon.md +5 -5
  470. package/docs/channels/troubleshooting.md +2 -2
  471. package/docs/channels/twitch.md +14 -14
  472. package/docs/channels/whatsapp.md +26 -26
  473. package/docs/channels/zalo.md +8 -8
  474. package/docs/channels/zalouser.md +12 -12
  475. package/docs/cli/acp.md +24 -24
  476. package/docs/cli/agent.md +6 -6
  477. package/docs/cli/agents.md +12 -12
  478. package/docs/cli/approvals.md +14 -14
  479. package/docs/cli/browser.md +24 -24
  480. package/docs/cli/channels.md +21 -21
  481. package/docs/cli/config.md +15 -15
  482. package/docs/cli/configure.md +6 -6
  483. package/docs/cli/cron.md +5 -5
  484. package/docs/cli/dashboard.md +4 -4
  485. package/docs/cli/devices.md +13 -13
  486. package/docs/cli/directory.md +12 -12
  487. package/docs/cli/dns.md +5 -6
  488. package/docs/cli/docs.md +5 -5
  489. package/docs/cli/doctor.md +11 -11
  490. package/docs/cli/gateway.md +26 -26
  491. package/docs/cli/health.md +5 -5
  492. package/docs/cli/hooks.md +35 -35
  493. package/docs/cli/index.md +42 -42
  494. package/docs/cli/logs.md +6 -6
  495. package/docs/cli/memory.md +12 -11
  496. package/docs/cli/message.md +11 -11
  497. package/docs/cli/models.md +15 -15
  498. package/docs/cli/node.md +14 -14
  499. package/docs/cli/nodes.md +14 -14
  500. package/docs/cli/onboard.md +7 -7
  501. package/docs/cli/pairing.md +4 -4
  502. package/docs/cli/plugins.md +16 -16
  503. package/docs/cli/reset.md +5 -5
  504. package/docs/cli/sandbox.md +28 -28
  505. package/docs/cli/security.md +6 -6
  506. package/docs/cli/sessions.md +5 -5
  507. package/docs/cli/setup.md +6 -6
  508. package/docs/cli/skills.md +6 -6
  509. package/docs/cli/status.md +7 -7
  510. package/docs/cli/system.md +6 -6
  511. package/docs/cli/tui.md +5 -5
  512. package/docs/cli/uninstall.md +5 -5
  513. package/docs/cli/update.md +20 -20
  514. package/docs/cli/voicecall.md +9 -9
  515. package/docs/cli/webhooks.md +5 -5
  516. package/docs/concepts/agent-loop.md +5 -5
  517. package/docs/concepts/agent-workspace.md +27 -27
  518. package/docs/concepts/agent.md +12 -12
  519. package/docs/concepts/architecture.md +2 -2
  520. package/docs/concepts/channel-routing.md +5 -5
  521. package/docs/concepts/compaction.md +5 -5
  522. package/docs/concepts/context.md +6 -6
  523. package/docs/concepts/group-messages.md +7 -7
  524. package/docs/concepts/groups.md +5 -5
  525. package/docs/concepts/markdown-formatting.md +3 -3
  526. package/docs/concepts/memory.md +41 -19
  527. package/docs/concepts/messages.md +4 -4
  528. package/docs/concepts/model-failover.md +14 -14
  529. package/docs/concepts/model-providers.md +25 -24
  530. package/docs/concepts/models.md +27 -27
  531. package/docs/concepts/multi-agent.md +31 -31
  532. package/docs/concepts/oauth.md +22 -22
  533. package/docs/concepts/presence.md +2 -2
  534. package/docs/concepts/retry.md +1 -1
  535. package/docs/concepts/session-pruning.md +1 -1
  536. package/docs/concepts/session-tool.md +4 -4
  537. package/docs/concepts/session.md +18 -16
  538. package/docs/concepts/streaming.md +3 -3
  539. package/docs/concepts/system-prompt.md +11 -11
  540. package/docs/concepts/timezone.md +2 -2
  541. package/docs/concepts/typebox.md +3 -3
  542. package/docs/concepts/typing-indicators.md +2 -2
  543. package/docs/concepts/usage-tracking.md +3 -3
  544. package/docs/date-time.md +2 -2
  545. package/docs/debug/node-issue.md +6 -6
  546. package/docs/debugging.md +18 -18
  547. package/docs/diagnostics/flags.md +7 -7
  548. package/docs/docs.json +21 -5
  549. package/docs/environment.md +7 -7
  550. package/docs/experiments/plans/cron-add-hardening.md +1 -1
  551. package/docs/experiments/plans/openresponses-gateway.md +2 -2
  552. package/docs/experiments/research/memory.md +12 -12
  553. package/docs/gateway/authentication.md +22 -22
  554. package/docs/gateway/background-process.md +2 -2
  555. package/docs/gateway/bonjour.md +25 -25
  556. package/docs/gateway/bridge-protocol.md +2 -2
  557. package/docs/gateway/cli-backends.md +12 -12
  558. package/docs/gateway/configuration-examples.md +26 -25
  559. package/docs/gateway/configuration.md +155 -153
  560. package/docs/gateway/discovery.md +10 -10
  561. package/docs/gateway/doctor.md +27 -27
  562. package/docs/gateway/gateway-lock.md +1 -1
  563. package/docs/gateway/health.md +11 -11
  564. package/docs/gateway/heartbeat.md +5 -5
  565. package/docs/gateway/index.md +63 -63
  566. package/docs/gateway/local-models.md +2 -2
  567. package/docs/gateway/logging.md +8 -8
  568. package/docs/gateway/multiple-gateways.md +24 -24
  569. package/docs/gateway/openai-http-api.md +12 -12
  570. package/docs/gateway/openresponses-http-api.md +12 -12
  571. package/docs/gateway/pairing.md +9 -9
  572. package/docs/gateway/protocol.md +4 -4
  573. package/docs/gateway/remote-gateway-readme.md +10 -10
  574. package/docs/gateway/remote.md +4 -4
  575. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -7
  576. package/docs/gateway/sandboxing.md +6 -6
  577. package/docs/gateway/security/formal-verification.md +67 -14
  578. package/docs/gateway/security/index.md +56 -59
  579. package/docs/gateway/tailscale.md +10 -10
  580. package/docs/gateway/tools-invoke-http-api.md +5 -5
  581. package/docs/gateway/troubleshooting.md +112 -112
  582. package/docs/help/faq.md +338 -338
  583. package/docs/help/troubleshooting.md +16 -16
  584. package/docs/hooks/soul-evil.md +2 -2
  585. package/docs/hooks.md +62 -62
  586. package/docs/index.md +45 -36
  587. package/docs/install/ansible.md +35 -35
  588. package/docs/install/development-channels.md +10 -10
  589. package/docs/install/docker.md +45 -45
  590. package/docs/install/index.md +33 -33
  591. package/docs/install/installer.md +24 -24
  592. package/docs/install/migrating.md +36 -36
  593. package/docs/install/nix.md +18 -18
  594. package/docs/install/node.md +4 -4
  595. package/docs/install/uninstall.md +29 -29
  596. package/docs/install/updating.md +51 -51
  597. package/docs/logging.md +59 -59
  598. package/docs/multi-agent-sandbox-tools.md +15 -15
  599. package/docs/network.md +1 -1
  600. package/docs/nodes/audio.md +2 -2
  601. package/docs/nodes/camera.md +18 -18
  602. package/docs/nodes/images.md +4 -4
  603. package/docs/nodes/index.md +57 -57
  604. package/docs/nodes/location-command.md +2 -2
  605. package/docs/nodes/media-understanding.md +5 -5
  606. package/docs/nodes/talk.md +1 -1
  607. package/docs/nodes/voicewake.md +3 -3
  608. package/docs/northflank.mdx +9 -9
  609. package/docs/perplexity.md +2 -2
  610. package/docs/platforms/android.md +14 -14
  611. package/docs/platforms/digitalocean.md +26 -26
  612. package/docs/platforms/exe-dev.md +68 -130
  613. package/docs/platforms/fly.md +33 -33
  614. package/docs/platforms/gcp.md +58 -58
  615. package/docs/platforms/hetzner.md +45 -45
  616. package/docs/platforms/index.md +8 -8
  617. package/docs/platforms/ios.md +13 -13
  618. package/docs/platforms/linux.md +11 -11
  619. package/docs/platforms/mac/bundled-gateway.md +14 -14
  620. package/docs/platforms/mac/canvas.md +14 -14
  621. package/docs/platforms/mac/child-process.md +5 -5
  622. package/docs/platforms/mac/dev-setup.md +10 -10
  623. package/docs/platforms/mac/health.md +2 -2
  624. package/docs/platforms/mac/icon.md +1 -1
  625. package/docs/platforms/mac/logging.md +4 -4
  626. package/docs/platforms/mac/menu-bar.md +1 -1
  627. package/docs/platforms/mac/peekaboo.md +9 -9
  628. package/docs/platforms/mac/permissions.md +1 -1
  629. package/docs/platforms/mac/release.md +18 -18
  630. package/docs/platforms/mac/remote.md +14 -14
  631. package/docs/platforms/mac/signing.md +7 -7
  632. package/docs/platforms/mac/skills.md +4 -4
  633. package/docs/platforms/mac/webchat.md +1 -1
  634. package/docs/platforms/mac/xpc.md +4 -4
  635. package/docs/platforms/macos-vm.md +27 -27
  636. package/docs/platforms/macos.md +16 -16
  637. package/docs/platforms/oracle.md +35 -35
  638. package/docs/platforms/raspberry-pi.md +22 -22
  639. package/docs/platforms/windows.md +11 -11
  640. package/docs/plugin.md +65 -65
  641. package/docs/plugins/agent-tools.md +1 -1
  642. package/docs/plugins/manifest.md +4 -4
  643. package/docs/plugins/voice-call.md +12 -12
  644. package/docs/plugins/zalouser.md +9 -9
  645. package/docs/prose.md +9 -9
  646. package/docs/providers/anthropic.md +16 -16
  647. package/docs/providers/claude-max-api-proxy.md +4 -4
  648. package/docs/providers/deepgram.md +2 -2
  649. package/docs/providers/github-copilot.md +11 -11
  650. package/docs/providers/glm.md +4 -4
  651. package/docs/providers/index.md +4 -3
  652. package/docs/providers/minimax.md +9 -9
  653. package/docs/providers/models.md +3 -3
  654. package/docs/providers/moonshot.md +15 -4
  655. package/docs/providers/ollama.md +11 -11
  656. package/docs/providers/openai.md +6 -6
  657. package/docs/providers/opencode.md +3 -3
  658. package/docs/providers/openrouter.md +3 -3
  659. package/docs/providers/qwen.md +6 -6
  660. package/docs/providers/synthetic.md +4 -4
  661. package/docs/providers/venice.md +23 -23
  662. package/docs/providers/vercel-ai-gateway.md +4 -4
  663. package/docs/providers/xiaomi.md +62 -0
  664. package/docs/providers/zai.md +5 -5
  665. package/docs/railway.mdx +8 -8
  666. package/docs/refactor/exec-host.md +5 -5
  667. package/docs/refactor/plugin-sdk.md +12 -12
  668. package/docs/refactor/strict-config.md +11 -11
  669. package/docs/reference/AGENTS.default.md +17 -17
  670. package/docs/reference/RELEASING.md +29 -29
  671. package/docs/reference/api-usage-costs.md +6 -6
  672. package/docs/reference/device-models.md +7 -7
  673. package/docs/reference/rpc.md +3 -3
  674. package/docs/reference/session-management-compaction.md +19 -19
  675. package/docs/reference/templates/AGENTS.dev.md +1 -1
  676. package/docs/reference/templates/BOOT.md +1 -1
  677. package/docs/reference/templates/IDENTITY.md +1 -1
  678. package/docs/reference/templates/TOOLS.dev.md +1 -1
  679. package/docs/reference/templates/USER.dev.md +2 -2
  680. package/docs/reference/test.md +2 -2
  681. package/docs/reference/transcript-hygiene.md +1 -1
  682. package/docs/render.mdx +13 -13
  683. package/docs/scripts.md +1 -1
  684. package/docs/security/formal-verification.md +66 -13
  685. package/docs/start/getting-started.md +29 -29
  686. package/docs/start/hubs.md +2 -2
  687. package/docs/start/lore.md +14 -14
  688. package/docs/start/onboarding.md +7 -7
  689. package/docs/start/{clawd.md → openclaw.md} +35 -35
  690. package/docs/start/pairing.md +10 -10
  691. package/docs/start/setup.md +22 -22
  692. package/docs/start/showcase.md +32 -32
  693. package/docs/start/wizard.md +30 -30
  694. package/docs/testing.md +56 -56
  695. package/docs/token-use.md +7 -7
  696. package/docs/tools/agent-send.md +10 -10
  697. package/docs/tools/browser-linux-troubleshooting.md +16 -16
  698. package/docs/tools/browser-login.md +6 -6
  699. package/docs/tools/browser.md +126 -126
  700. package/docs/tools/chrome-extension.md +17 -17
  701. package/docs/tools/clawdhub.md +7 -7
  702. package/docs/tools/creating-skills.md +6 -6
  703. package/docs/tools/exec-approvals.md +5 -5
  704. package/docs/tools/exec.md +4 -4
  705. package/docs/tools/firecrawl.md +2 -2
  706. package/docs/tools/index.md +13 -13
  707. package/docs/tools/llm-task.md +2 -2
  708. package/docs/tools/lobster.md +13 -13
  709. package/docs/tools/skills-config.md +2 -2
  710. package/docs/tools/skills.md +31 -31
  711. package/docs/tools/slash-commands.md +8 -8
  712. package/docs/tools/web.md +8 -8
  713. package/docs/tts.md +11 -11
  714. package/docs/tui.md +7 -7
  715. package/docs/vps.md +1 -1
  716. package/docs/web/control-ui.md +8 -8
  717. package/docs/web/dashboard.md +6 -6
  718. package/docs/web/index.md +5 -5
  719. package/extensions/bluebubbles/index.ts +3 -3
  720. package/extensions/bluebubbles/package.json +5 -5
  721. package/extensions/bluebubbles/src/accounts.ts +9 -9
  722. package/extensions/bluebubbles/src/actions.test.ts +22 -22
  723. package/extensions/bluebubbles/src/actions.ts +6 -6
  724. package/extensions/bluebubbles/src/attachments.ts +2 -2
  725. package/extensions/bluebubbles/src/channel.ts +17 -17
  726. package/extensions/bluebubbles/src/chat.ts +2 -2
  727. package/extensions/bluebubbles/src/config-schema.ts +1 -1
  728. package/extensions/bluebubbles/src/media-send.ts +2 -2
  729. package/extensions/bluebubbles/src/monitor.test.ts +48 -48
  730. package/extensions/bluebubbles/src/monitor.ts +6 -6
  731. package/extensions/bluebubbles/src/onboarding.ts +9 -9
  732. package/extensions/bluebubbles/src/reactions.ts +2 -2
  733. package/extensions/bluebubbles/src/runtime.ts +1 -1
  734. package/extensions/bluebubbles/src/send.ts +2 -2
  735. package/extensions/copilot-proxy/README.md +3 -3
  736. package/extensions/copilot-proxy/index.ts +1 -1
  737. package/extensions/copilot-proxy/package.json +4 -4
  738. package/extensions/diagnostics-otel/index.ts +3 -3
  739. package/extensions/diagnostics-otel/package.json +4 -4
  740. package/extensions/diagnostics-otel/src/service.test.ts +15 -15
  741. package/extensions/diagnostics-otel/src/service.ts +85 -85
  742. package/extensions/discord/index.ts +3 -3
  743. package/extensions/discord/package.json +4 -4
  744. package/extensions/discord/src/channel.ts +1 -1
  745. package/extensions/discord/src/runtime.ts +1 -1
  746. package/extensions/google-antigravity-auth/README.md +3 -3
  747. package/extensions/google-antigravity-auth/index.ts +2 -2
  748. package/extensions/google-antigravity-auth/package.json +4 -4
  749. package/extensions/google-gemini-cli-auth/README.md +5 -5
  750. package/extensions/google-gemini-cli-auth/index.ts +3 -3
  751. package/extensions/google-gemini-cli-auth/oauth.ts +4 -4
  752. package/extensions/google-gemini-cli-auth/package.json +4 -4
  753. package/extensions/googlechat/index.ts +4 -4
  754. package/extensions/googlechat/node_modules/.bin/openclaw +16 -0
  755. package/extensions/googlechat/node_modules/.bin/openclaw.CMD +7 -0
  756. package/extensions/googlechat/node_modules/.bin/openclaw.ps1 +28 -0
  757. package/extensions/googlechat/package.json +7 -7
  758. package/extensions/googlechat/src/accounts.ts +9 -9
  759. package/extensions/googlechat/src/actions.ts +8 -8
  760. package/extensions/googlechat/src/api.ts +1 -1
  761. package/extensions/googlechat/src/channel.ts +23 -23
  762. package/extensions/googlechat/src/monitor.ts +9 -9
  763. package/extensions/googlechat/src/onboarding.ts +11 -11
  764. package/extensions/googlechat/src/runtime.ts +1 -1
  765. package/extensions/googlechat/src/types.config.ts +1 -1
  766. package/extensions/imessage/index.ts +3 -3
  767. package/extensions/imessage/package.json +4 -4
  768. package/extensions/imessage/src/channel.ts +1 -1
  769. package/extensions/imessage/src/runtime.ts +1 -1
  770. package/extensions/line/index.ts +3 -3
  771. package/extensions/line/node_modules/.bin/openclaw +16 -0
  772. package/extensions/line/node_modules/.bin/openclaw.CMD +7 -0
  773. package/extensions/line/node_modules/.bin/openclaw.ps1 +28 -0
  774. package/extensions/line/package.json +6 -6
  775. package/extensions/line/src/card-command.ts +3 -3
  776. package/extensions/line/src/channel.logout.test.ts +4 -4
  777. package/extensions/line/src/channel.sendPayload.test.ts +8 -8
  778. package/extensions/line/src/channel.ts +5 -5
  779. package/extensions/line/src/runtime.ts +1 -1
  780. package/extensions/llm-task/README.md +4 -4
  781. package/extensions/llm-task/index.ts +2 -2
  782. package/extensions/llm-task/package.json +4 -4
  783. package/extensions/llm-task/src/llm-task-tool.ts +6 -6
  784. package/extensions/lobster/README.md +7 -7
  785. package/extensions/lobster/index.ts +2 -2
  786. package/extensions/lobster/package.json +3 -3
  787. package/extensions/lobster/src/lobster-tool.test.ts +7 -7
  788. package/extensions/lobster/src/lobster-tool.ts +2 -2
  789. package/extensions/matrix/CHANGELOG.md +14 -9
  790. package/extensions/matrix/index.ts +3 -3
  791. package/extensions/matrix/node_modules/.bin/markdown-it +0 -5
  792. package/extensions/matrix/node_modules/.bin/markdown-it.CMD +0 -5
  793. package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +0 -13
  794. package/extensions/matrix/node_modules/.bin/openclaw +16 -0
  795. package/extensions/matrix/node_modules/.bin/openclaw.CMD +7 -0
  796. package/extensions/matrix/node_modules/.bin/openclaw.ps1 +28 -0
  797. package/extensions/matrix/package.json +6 -6
  798. package/extensions/matrix/src/actions.ts +1 -1
  799. package/extensions/matrix/src/channel.directory.test.ts +1 -1
  800. package/extensions/matrix/src/channel.ts +1 -1
  801. package/extensions/matrix/src/config-schema.ts +1 -1
  802. package/extensions/matrix/src/directory-live.ts +1 -1
  803. package/extensions/matrix/src/group-mentions.ts +1 -1
  804. package/extensions/matrix/src/matrix/accounts.ts +1 -1
  805. package/extensions/matrix/src/matrix/actions/client.ts +1 -1
  806. package/extensions/matrix/src/matrix/client/config.ts +1 -1
  807. package/extensions/matrix/src/matrix/deps.ts +1 -1
  808. package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
  809. package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
  810. package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
  811. package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
  812. package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
  813. package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
  814. package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
  815. package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
  816. package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
  817. package/extensions/matrix/src/matrix/poll-types.ts +1 -1
  818. package/extensions/matrix/src/matrix/send/client.ts +1 -1
  819. package/extensions/matrix/src/matrix/send.test.ts +1 -1
  820. package/extensions/matrix/src/matrix/send.ts +1 -1
  821. package/extensions/matrix/src/onboarding.ts +2 -2
  822. package/extensions/matrix/src/outbound.ts +1 -1
  823. package/extensions/matrix/src/resolve-targets.ts +1 -1
  824. package/extensions/matrix/src/runtime.ts +1 -1
  825. package/extensions/matrix/src/tool-actions.ts +1 -1
  826. package/extensions/mattermost/index.ts +3 -3
  827. package/extensions/mattermost/package.json +5 -5
  828. package/extensions/mattermost/src/channel.ts +1 -1
  829. package/extensions/mattermost/src/config-schema.ts +1 -1
  830. package/extensions/mattermost/src/group-mentions.ts +1 -1
  831. package/extensions/mattermost/src/mattermost/accounts.ts +9 -9
  832. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
  833. package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
  834. package/extensions/mattermost/src/onboarding-helpers.ts +4 -4
  835. package/extensions/mattermost/src/onboarding.ts +4 -4
  836. package/extensions/mattermost/src/runtime.ts +1 -1
  837. package/extensions/mattermost/src/types.ts +1 -1
  838. package/extensions/memory-core/index.ts +3 -3
  839. package/extensions/memory-core/node_modules/.bin/openclaw +16 -0
  840. package/extensions/memory-core/node_modules/.bin/openclaw.CMD +7 -0
  841. package/extensions/memory-core/node_modules/.bin/openclaw.ps1 +28 -0
  842. package/extensions/memory-core/package.json +6 -6
  843. package/extensions/memory-lancedb/config.ts +26 -2
  844. package/extensions/memory-lancedb/index.test.ts +3 -3
  845. package/extensions/memory-lancedb/index.ts +4 -4
  846. package/extensions/memory-lancedb/node_modules/.bin/openai +0 -5
  847. package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +0 -5
  848. package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +0 -13
  849. package/extensions/memory-lancedb/{clawdbot.plugin.json → openclaw.plugin.json} +1 -1
  850. package/extensions/memory-lancedb/package.json +4 -4
  851. package/extensions/msteams/CHANGELOG.md +12 -7
  852. package/extensions/msteams/index.ts +3 -3
  853. package/extensions/msteams/node_modules/.bin/openclaw +16 -0
  854. package/extensions/msteams/node_modules/.bin/openclaw.CMD +7 -0
  855. package/extensions/msteams/node_modules/.bin/openclaw.ps1 +28 -0
  856. package/extensions/msteams/package.json +6 -6
  857. package/extensions/msteams/src/attachments.test.ts +1 -1
  858. package/extensions/msteams/src/channel.directory.test.ts +2 -2
  859. package/extensions/msteams/src/channel.ts +3 -3
  860. package/extensions/msteams/src/conversation-store-fs.test.ts +6 -5
  861. package/extensions/msteams/src/directory-live.ts +1 -1
  862. package/extensions/msteams/src/graph-upload.ts +4 -4
  863. package/extensions/msteams/src/media-helpers.ts +1 -1
  864. package/extensions/msteams/src/messenger.test.ts +1 -1
  865. package/extensions/msteams/src/messenger.ts +1 -1
  866. package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
  867. package/extensions/msteams/src/monitor-handler.ts +2 -2
  868. package/extensions/msteams/src/monitor.ts +3 -3
  869. package/extensions/msteams/src/onboarding.ts +11 -11
  870. package/extensions/msteams/src/outbound.ts +1 -1
  871. package/extensions/msteams/src/policy.test.ts +1 -1
  872. package/extensions/msteams/src/policy.ts +2 -2
  873. package/extensions/msteams/src/polls-store.test.ts +1 -1
  874. package/extensions/msteams/src/polls.test.ts +6 -5
  875. package/extensions/msteams/src/polls.ts +9 -8
  876. package/extensions/msteams/src/probe.test.ts +1 -1
  877. package/extensions/msteams/src/probe.ts +1 -1
  878. package/extensions/msteams/src/reply-dispatcher.ts +3 -3
  879. package/extensions/msteams/src/runtime.ts +1 -1
  880. package/extensions/msteams/src/send-context.ts +2 -2
  881. package/extensions/msteams/src/send.ts +5 -5
  882. package/extensions/msteams/src/token.ts +1 -1
  883. package/extensions/nextcloud-talk/index.ts +3 -3
  884. package/extensions/nextcloud-talk/package.json +5 -5
  885. package/extensions/nextcloud-talk/src/accounts.ts +2 -2
  886. package/extensions/nextcloud-talk/src/channel.ts +8 -8
  887. package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
  888. package/extensions/nextcloud-talk/src/inbound.ts +8 -8
  889. package/extensions/nextcloud-talk/src/monitor.ts +1 -1
  890. package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
  891. package/extensions/nextcloud-talk/src/policy.ts +2 -2
  892. package/extensions/nextcloud-talk/src/room-info.ts +1 -1
  893. package/extensions/nextcloud-talk/src/runtime.ts +1 -1
  894. package/extensions/nextcloud-talk/src/types.ts +1 -1
  895. package/extensions/nostr/CHANGELOG.md +9 -4
  896. package/extensions/nostr/README.md +5 -5
  897. package/extensions/nostr/index.ts +6 -6
  898. package/extensions/nostr/node_modules/.bin/openclaw +16 -0
  899. package/extensions/nostr/node_modules/.bin/openclaw.CMD +7 -0
  900. package/extensions/nostr/node_modules/.bin/openclaw.ps1 +28 -0
  901. package/extensions/nostr/package.json +6 -6
  902. package/extensions/nostr/src/channel.ts +2 -2
  903. package/extensions/nostr/src/config-schema.ts +1 -1
  904. package/extensions/nostr/src/nostr-state-store.test.ts +9 -8
  905. package/extensions/nostr/src/runtime.ts +1 -1
  906. package/extensions/nostr/src/types.ts +4 -4
  907. package/extensions/open-prose/index.ts +2 -2
  908. package/extensions/open-prose/package.json +3 -3
  909. package/extensions/open-prose/skills/prose/SKILL.md +5 -5
  910. package/extensions/open-prose/skills/prose/prose.md +4 -4
  911. package/extensions/qwen-portal-auth/README.md +3 -3
  912. package/extensions/qwen-portal-auth/index.ts +1 -1
  913. package/extensions/signal/index.ts +3 -3
  914. package/extensions/signal/package.json +4 -4
  915. package/extensions/signal/src/channel.ts +1 -1
  916. package/extensions/signal/src/runtime.ts +1 -1
  917. package/extensions/slack/index.ts +3 -3
  918. package/extensions/slack/package.json +4 -4
  919. package/extensions/slack/src/channel.ts +1 -1
  920. package/extensions/slack/src/runtime.ts +1 -1
  921. package/extensions/telegram/index.ts +3 -3
  922. package/extensions/telegram/package.json +4 -4
  923. package/extensions/telegram/src/channel.ts +3 -3
  924. package/extensions/telegram/src/runtime.ts +1 -1
  925. package/extensions/tlon/README.md +3 -3
  926. package/extensions/tlon/index.ts +3 -3
  927. package/extensions/tlon/package.json +5 -5
  928. package/extensions/tlon/src/channel.ts +15 -15
  929. package/extensions/tlon/src/config-schema.ts +1 -1
  930. package/extensions/tlon/src/monitor/discovery.ts +1 -1
  931. package/extensions/tlon/src/monitor/history.ts +1 -1
  932. package/extensions/tlon/src/monitor/index.ts +3 -3
  933. package/extensions/tlon/src/onboarding.ts +4 -4
  934. package/extensions/tlon/src/runtime.ts +1 -1
  935. package/extensions/tlon/src/types.ts +3 -3
  936. package/extensions/twitch/CHANGELOG.md +6 -1
  937. package/extensions/twitch/README.md +8 -8
  938. package/extensions/twitch/index.ts +3 -3
  939. package/extensions/twitch/node_modules/.bin/openclaw +16 -0
  940. package/extensions/twitch/node_modules/.bin/openclaw.CMD +7 -0
  941. package/extensions/twitch/node_modules/.bin/openclaw.ps1 +28 -0
  942. package/extensions/twitch/package.json +5 -5
  943. package/extensions/twitch/src/actions.ts +1 -1
  944. package/extensions/twitch/src/config-schema.ts +1 -1
  945. package/extensions/twitch/src/config.ts +3 -3
  946. package/extensions/twitch/src/monitor.ts +3 -3
  947. package/extensions/twitch/src/onboarding.test.ts +1 -1
  948. package/extensions/twitch/src/onboarding.ts +13 -13
  949. package/extensions/twitch/src/outbound.test.ts +2 -2
  950. package/extensions/twitch/src/outbound.ts +2 -2
  951. package/extensions/twitch/src/plugin.test.ts +2 -2
  952. package/extensions/twitch/src/plugin.ts +9 -9
  953. package/extensions/twitch/src/runtime.ts +1 -1
  954. package/extensions/twitch/src/send.test.ts +2 -2
  955. package/extensions/twitch/src/send.ts +5 -5
  956. package/extensions/twitch/src/token.test.ts +12 -12
  957. package/extensions/twitch/src/token.ts +7 -7
  958. package/extensions/twitch/src/twitch-client.ts +4 -4
  959. package/extensions/twitch/src/types.ts +3 -3
  960. package/extensions/twitch/src/utils/markdown.ts +1 -1
  961. package/extensions/voice-call/CHANGELOG.md +16 -11
  962. package/extensions/voice-call/README.md +16 -16
  963. package/extensions/voice-call/package.json +4 -4
  964. package/extensions/voice-call/src/cli.ts +16 -4
  965. package/extensions/voice-call/src/core-bridge.ts +5 -5
  966. package/extensions/voice-call/src/manager.test.ts +2 -2
  967. package/extensions/voice-call/src/manager.ts +17 -5
  968. package/extensions/voice-call/src/response-generator.ts +1 -1
  969. package/extensions/whatsapp/index.ts +3 -3
  970. package/extensions/whatsapp/package.json +4 -4
  971. package/extensions/whatsapp/src/channel.ts +1 -1
  972. package/extensions/whatsapp/src/runtime.ts +1 -1
  973. package/extensions/zalo/CHANGELOG.md +14 -9
  974. package/extensions/zalo/README.md +4 -4
  975. package/extensions/zalo/index.ts +3 -3
  976. package/extensions/zalo/node_modules/.bin/openclaw +16 -0
  977. package/extensions/zalo/node_modules/.bin/openclaw.CMD +7 -0
  978. package/extensions/zalo/node_modules/.bin/openclaw.ps1 +28 -0
  979. package/extensions/zalo/package.json +6 -6
  980. package/extensions/zalo/src/accounts.ts +9 -9
  981. package/extensions/zalo/src/actions.ts +6 -6
  982. package/extensions/zalo/src/channel.directory.test.ts +2 -2
  983. package/extensions/zalo/src/channel.ts +20 -20
  984. package/extensions/zalo/src/config-schema.ts +1 -1
  985. package/extensions/zalo/src/monitor.ts +9 -9
  986. package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
  987. package/extensions/zalo/src/onboarding.ts +27 -27
  988. package/extensions/zalo/src/runtime.ts +1 -1
  989. package/extensions/zalo/src/send.ts +2 -2
  990. package/extensions/zalo/src/status-issues.ts +1 -1
  991. package/extensions/zalo/src/token.ts +1 -1
  992. package/extensions/zalouser/CHANGELOG.md +9 -4
  993. package/extensions/zalouser/README.md +18 -18
  994. package/extensions/zalouser/index.ts +3 -3
  995. package/extensions/zalouser/node_modules/.bin/openclaw +16 -0
  996. package/extensions/zalouser/node_modules/.bin/openclaw.CMD +7 -0
  997. package/extensions/zalouser/node_modules/.bin/openclaw.ps1 +28 -0
  998. package/extensions/zalouser/package.json +6 -6
  999. package/extensions/zalouser/src/accounts.ts +10 -10
  1000. package/extensions/zalouser/src/channel.ts +27 -27
  1001. package/extensions/zalouser/src/config-schema.ts +1 -1
  1002. package/extensions/zalouser/src/monitor.ts +5 -5
  1003. package/extensions/zalouser/src/onboarding.ts +32 -32
  1004. package/extensions/zalouser/src/runtime.ts +1 -1
  1005. package/extensions/zalouser/src/status-issues.ts +2 -2
  1006. package/openclaw.mjs +14 -0
  1007. package/package.json +35 -25
  1008. package/scripts/postinstall.js +1 -0
  1009. package/skills/1password/SKILL.md +3 -3
  1010. package/skills/apple-notes/SKILL.md +2 -2
  1011. package/skills/apple-reminders/SKILL.md +1 -1
  1012. package/skills/bear-notes/SKILL.md +1 -1
  1013. package/skills/bird/SKILL.md +1 -1
  1014. package/skills/blogwatcher/SKILL.md +1 -1
  1015. package/skills/blucli/SKILL.md +1 -1
  1016. package/skills/bluebubbles/SKILL.md +1 -1
  1017. package/skills/camsnap/SKILL.md +1 -1
  1018. package/skills/canvas/SKILL.md +6 -6
  1019. package/skills/clawdhub/SKILL.md +2 -2
  1020. package/skills/coding-agent/SKILL.md +6 -6
  1021. package/skills/discord/SKILL.md +5 -5
  1022. package/skills/eightctl/SKILL.md +1 -1
  1023. package/skills/food-order/SKILL.md +1 -1
  1024. package/skills/gemini/SKILL.md +1 -1
  1025. package/skills/gifgrep/SKILL.md +1 -1
  1026. package/skills/github/SKILL.md +1 -1
  1027. package/skills/gog/SKILL.md +1 -1
  1028. package/skills/goplaces/SKILL.md +1 -1
  1029. package/skills/himalaya/SKILL.md +1 -1
  1030. package/skills/imsg/SKILL.md +1 -1
  1031. package/skills/local-places/SKILL.md +1 -1
  1032. package/skills/mcporter/SKILL.md +1 -1
  1033. package/skills/model-usage/SKILL.md +1 -1
  1034. package/skills/nano-banana-pro/SKILL.md +3 -3
  1035. package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
  1036. package/skills/nano-pdf/SKILL.md +1 -1
  1037. package/skills/notion/SKILL.md +1 -1
  1038. package/skills/obsidian/SKILL.md +1 -1
  1039. package/skills/openai-image-gen/SKILL.md +1 -1
  1040. package/skills/openai-whisper/SKILL.md +1 -1
  1041. package/skills/openai-whisper-api/SKILL.md +2 -2
  1042. package/skills/openhue/SKILL.md +1 -1
  1043. package/skills/oracle/SKILL.md +1 -1
  1044. package/skills/ordercli/SKILL.md +1 -1
  1045. package/skills/peekaboo/SKILL.md +1 -1
  1046. package/skills/sag/SKILL.md +1 -1
  1047. package/skills/session-logs/SKILL.md +1 -1
  1048. package/skills/sherpa-onnx-tts/SKILL.md +2 -2
  1049. package/skills/slack/SKILL.md +4 -4
  1050. package/skills/songsee/SKILL.md +1 -1
  1051. package/skills/sonoscli/SKILL.md +1 -1
  1052. package/skills/spotify-player/SKILL.md +1 -1
  1053. package/skills/summarize/SKILL.md +1 -1
  1054. package/skills/things-mac/SKILL.md +3 -3
  1055. package/skills/tmux/SKILL.md +7 -7
  1056. package/skills/trello/SKILL.md +2 -2
  1057. package/skills/video-frames/SKILL.md +1 -1
  1058. package/skills/voice-call/SKILL.md +4 -4
  1059. package/skills/wacli/SKILL.md +2 -2
  1060. package/skills/weather/SKILL.md +1 -1
  1061. package/dist/control-ui/assets/index-BAFzd9IE.css +0 -1
  1062. package/dist/control-ui/assets/index-CxLFx0Ae.js.map +0 -1
  1063. package/dist/control-ui/pixel_pig_icon.png +0 -0
  1064. package/dist/daemon/legacy.js +0 -44
  1065. /package/dist/config/{types.clawdbot.js → types.openclaw.js} +0 -0
  1066. /package/docs/{whatsapp-clawd.jpg → whatsapp-openclaw.jpg} +0 -0
  1067. /package/extensions/bluebubbles/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1068. /package/extensions/copilot-proxy/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1069. /package/extensions/diagnostics-otel/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1070. /package/extensions/discord/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1071. /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1072. /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1073. /package/extensions/googlechat/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1074. /package/extensions/imessage/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1075. /package/extensions/line/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1076. /package/extensions/llm-task/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1077. /package/extensions/lobster/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1078. /package/extensions/matrix/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1079. /package/extensions/mattermost/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1080. /package/extensions/memory-core/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1081. /package/extensions/msteams/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1082. /package/extensions/nextcloud-talk/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1083. /package/extensions/nostr/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1084. /package/extensions/open-prose/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1085. /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1086. /package/extensions/signal/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1087. /package/extensions/slack/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1088. /package/extensions/telegram/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1089. /package/extensions/tlon/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1090. /package/extensions/twitch/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1091. /package/extensions/voice-call/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1092. /package/extensions/whatsapp/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1093. /package/extensions/zalo/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
  1094. /package/extensions/zalouser/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
@@ -9,7 +9,7 @@ import { startPluginServices } from "../plugins/services.js";
9
9
  import { startBrowserControlServerIfEnabled } from "./server-browser.js";
10
10
  import { scheduleRestartSentinelWake, shouldWakeFromRestartSentinel, } from "./server-restart-sentinel.js";
11
11
  export async function startGatewaySidecars(params) {
12
- // Start clawd browser control server (unless disabled via config).
12
+ // Start OpenClaw browser control server (unless disabled via config).
13
13
  let browserControl = null;
14
14
  try {
15
15
  browserControl = await startBrowserControlServerIfEnabled();
@@ -18,7 +18,7 @@ export async function startGatewaySidecars(params) {
18
18
  params.logBrowser.error(`server failed to start: ${String(err)}`);
19
19
  }
20
20
  // Start Gmail watcher if configured (hooks.gmail.account).
21
- if (!isTruthyEnvValue(process.env.CLAWDBOT_SKIP_GMAIL_WATCHER)) {
21
+ if (!isTruthyEnvValue(process.env.OPENCLAW_SKIP_GMAIL_WATCHER)) {
22
22
  try {
23
23
  const gmailResult = await startGmailWatcher(params.cfg);
24
24
  if (gmailResult.started) {
@@ -75,9 +75,9 @@ export async function startGatewaySidecars(params) {
75
75
  params.logHooks.error(`failed to load hooks: ${String(err)}`);
76
76
  }
77
77
  // Launch configured channels so gateway replies via the surface the message came from.
78
- // Tests can opt out via CLAWDBOT_SKIP_CHANNELS (or legacy CLAWDBOT_SKIP_PROVIDERS).
79
- const skipChannels = isTruthyEnvValue(process.env.CLAWDBOT_SKIP_CHANNELS) ||
80
- isTruthyEnvValue(process.env.CLAWDBOT_SKIP_PROVIDERS);
78
+ // Tests can opt out via OPENCLAW_SKIP_CHANNELS (or legacy OPENCLAW_SKIP_PROVIDERS).
79
+ const skipChannels = isTruthyEnvValue(process.env.OPENCLAW_SKIP_CHANNELS) ||
80
+ isTruthyEnvValue(process.env.OPENCLAW_SKIP_PROVIDERS);
81
81
  if (!skipChannels) {
82
82
  try {
83
83
  await params.startChannels();
@@ -87,7 +87,7 @@ export async function startGatewaySidecars(params) {
87
87
  }
88
88
  }
89
89
  else {
90
- params.logChannels.info("skipping channel start (CLAWDBOT_SKIP_CHANNELS=1 or CLAWDBOT_SKIP_PROVIDERS=1)");
90
+ params.logChannels.info("skipping channel start (OPENCLAW_SKIP_CHANNELS=1 or OPENCLAW_SKIP_PROVIDERS=1)");
91
91
  }
92
92
  if (params.cfg.hooks?.internal?.enabled) {
93
93
  setTimeout(() => {
@@ -12,7 +12,7 @@ import { clearAgentRunContext, onAgentEvent } from "../infra/agent-events.js";
12
12
  import { onHeartbeatEvent } from "../infra/heartbeat-events.js";
13
13
  import { startHeartbeatRunner } from "../infra/heartbeat-runner.js";
14
14
  import { getMachineDisplayName } from "../infra/machine-name.js";
15
- import { ensureMoltbotCliOnPath } from "../infra/path-env.js";
15
+ import { ensureOpenClawCliOnPath } from "../infra/path-env.js";
16
16
  import { primeRemoteSkillsCache, refreshRemoteBinsForConnectedNodes, setSkillsRemoteRegistry, } from "../infra/skills-remote.js";
17
17
  import { scheduleGatewayUpdateCheck } from "../infra/update-startup.js";
18
18
  import { setGatewaySigusr1RestartPolicy } from "../infra/restart.js";
@@ -50,7 +50,7 @@ import { loadGatewayTlsRuntime } from "./server/tls.js";
50
50
  import { createWizardSessionTracker } from "./server-wizard-sessions.js";
51
51
  import { attachGatewayWsHandlers } from "./server-ws-runtime.js";
52
52
  export { __resetModelCatalogCacheForTest } from "./server-model-catalog.js";
53
- ensureMoltbotCliOnPath();
53
+ ensureOpenClawCliOnPath();
54
54
  const log = createSubsystemLogger("gateway");
55
55
  const logCanvas = log.child("canvas");
56
56
  const logDiscovery = log.child("discovery");
@@ -66,13 +66,13 @@ const logWsControl = log.child("ws");
66
66
  const canvasRuntime = runtimeForLogger(logCanvas);
67
67
  export async function startGatewayServer(port = 18789, opts = {}) {
68
68
  // Ensure all default port derivations (browser/canvas) see the actual runtime port.
69
- process.env.CLAWDBOT_GATEWAY_PORT = String(port);
69
+ process.env.OPENCLAW_GATEWAY_PORT = String(port);
70
70
  logAcceptedEnvOption({
71
- key: "CLAWDBOT_RAW_STREAM",
71
+ key: "OPENCLAW_RAW_STREAM",
72
72
  description: "raw stream logging enabled",
73
73
  });
74
74
  logAcceptedEnvOption({
75
- key: "CLAWDBOT_RAW_STREAM_PATH",
75
+ key: "OPENCLAW_RAW_STREAM_PATH",
76
76
  description: "raw stream log path override",
77
77
  });
78
78
  let configSnapshot = await readConfigFileSnapshot();
@@ -82,7 +82,7 @@ export async function startGatewayServer(port = 18789, opts = {}) {
82
82
  }
83
83
  const { config: migrated, changes } = migrateLegacyConfig(configSnapshot.parsed);
84
84
  if (!migrated) {
85
- throw new Error(`Legacy config entries detected but auto-migration failed. Run "${formatCliCommand("moltbot doctor")}" to migrate.`);
85
+ throw new Error(`Legacy config entries detected but auto-migration failed. Run "${formatCliCommand("openclaw doctor")}" to migrate.`);
86
86
  }
87
87
  await writeConfigFile(migrated);
88
88
  if (changes.length > 0) {
@@ -98,7 +98,7 @@ export async function startGatewayServer(port = 18789, opts = {}) {
98
98
  .map((issue) => `${issue.path || "<root>"}: ${issue.message}`)
99
99
  .join("\n")
100
100
  : "Unknown validation issue.";
101
- throw new Error(`Invalid config at ${configSnapshot.path}.\n${issues}\nRun "${formatCliCommand("moltbot doctor")}" to repair, then retry.`);
101
+ throw new Error(`Invalid config at ${configSnapshot.path}.\n${issues}\nRun "${formatCliCommand("openclaw doctor")}" to repair, then retry.`);
102
102
  }
103
103
  const autoEnable = applyPluginAutoEnable({ config: configSnapshot.config, env: process.env });
104
104
  if (autoEnable.changes.length > 0) {
@@ -216,6 +216,7 @@ export async function startGatewayServer(port = 18789, opts = {}) {
216
216
  ? { enabled: true, fingerprintSha256: gatewayTls.fingerprintSha256 }
217
217
  : undefined,
218
218
  wideAreaDiscoveryEnabled: cfgAtStart.discovery?.wideArea?.enabled === true,
219
+ wideAreaDiscoveryDomain: cfgAtStart.discovery?.wideArea?.domain,
219
220
  tailscaleMode,
220
221
  mdnsMode: cfgAtStart.discovery?.mdns?.mode,
221
222
  logDiscovery,
@@ -36,7 +36,8 @@ export function resolveSessionTranscriptCandidates(sessionId, storePath, session
36
36
  if (agentId) {
37
37
  candidates.push(resolveSessionTranscriptPath(sessionId, agentId));
38
38
  }
39
- candidates.push(path.join(os.homedir(), ".clawdbot", "sessions", `${sessionId}.jsonl`));
39
+ const home = os.homedir();
40
+ candidates.push(path.join(home, ".openclaw", "sessions", `${sessionId}.jsonl`));
40
41
  return candidates;
41
42
  }
42
43
  export function archiveFileOnDisk(filePath, reason) {
@@ -163,11 +163,11 @@ export const resetTestPluginRegistry = () => {
163
163
  setActivePluginRegistry(pluginRegistryState.registry);
164
164
  };
165
165
  const testConfigRoot = {
166
- value: path.join(os.tmpdir(), `moltbot-gateway-test-${process.pid}-${crypto.randomUUID()}`),
166
+ value: path.join(os.tmpdir(), `openclaw-gateway-test-${process.pid}-${crypto.randomUUID()}`),
167
167
  };
168
168
  export const setTestConfigRoot = (root) => {
169
169
  testConfigRoot.value = root;
170
- process.env.CLAWDBOT_CONFIG_PATH = path.join(root, "moltbot.json");
170
+ process.env.OPENCLAW_CONFIG_PATH = path.join(root, "openclaw.json");
171
171
  };
172
172
  export const testTailnetIPv4 = hoisted.testTailnetIPv4;
173
173
  export const piSdkMock = hoisted.piSdkMock;
@@ -232,7 +232,7 @@ vi.mock("../config/sessions.js", async () => {
232
232
  });
233
233
  vi.mock("../config/config.js", async () => {
234
234
  const actual = await vi.importActual("../config/config.js");
235
- const resolveConfigPath = () => path.join(testConfigRoot.value, "moltbot.json");
235
+ const resolveConfigPath = () => path.join(testConfigRoot.value, "openclaw.json");
236
236
  const hashConfigRaw = (raw) => crypto
237
237
  .createHash("sha256")
238
238
  .update(raw ?? "")
@@ -346,7 +346,7 @@ vi.mock("../config/config.js", async () => {
346
346
  : {};
347
347
  const defaults = {
348
348
  model: { primary: "anthropic/claude-opus-4-5" },
349
- workspace: path.join(os.tmpdir(), "clawd-gateway-test"),
349
+ workspace: path.join(os.tmpdir(), "openclaw-gateway-test"),
350
350
  ...fileDefaults,
351
351
  ...testState.agentConfig,
352
352
  };
@@ -498,5 +498,7 @@ vi.mock("../cli/deps.js", async () => {
498
498
  }),
499
499
  };
500
500
  });
501
- process.env.CLAWDBOT_SKIP_CHANNELS = "1";
502
- process.env.CLAWDBOT_SKIP_CRON = "1";
501
+ process.env.OPENCLAW_SKIP_CHANNELS = "1";
502
+ process.env.OPENCLAW_SKIP_CRON = "1";
503
+ process.env.OPENCLAW_SKIP_CHANNELS = "1";
504
+ process.env.OPENCLAW_SKIP_CRON = "1";
@@ -51,21 +51,21 @@ export async function writeSessionStore(params) {
51
51
  async function setupGatewayTestHome() {
52
52
  previousHome = process.env.HOME;
53
53
  previousUserProfile = process.env.USERPROFILE;
54
- previousStateDir = process.env.CLAWDBOT_STATE_DIR;
55
- previousConfigPath = process.env.CLAWDBOT_CONFIG_PATH;
56
- previousSkipBrowserControl = process.env.CLAWDBOT_SKIP_BROWSER_CONTROL_SERVER;
57
- previousSkipGmailWatcher = process.env.CLAWDBOT_SKIP_GMAIL_WATCHER;
58
- previousSkipCanvasHost = process.env.CLAWDBOT_SKIP_CANVAS_HOST;
59
- tempHome = await fs.mkdtemp(path.join(os.tmpdir(), "moltbot-gateway-home-"));
54
+ previousStateDir = process.env.OPENCLAW_STATE_DIR;
55
+ previousConfigPath = process.env.OPENCLAW_CONFIG_PATH;
56
+ previousSkipBrowserControl = process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER;
57
+ previousSkipGmailWatcher = process.env.OPENCLAW_SKIP_GMAIL_WATCHER;
58
+ previousSkipCanvasHost = process.env.OPENCLAW_SKIP_CANVAS_HOST;
59
+ tempHome = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-gateway-home-"));
60
60
  process.env.HOME = tempHome;
61
61
  process.env.USERPROFILE = tempHome;
62
- process.env.CLAWDBOT_STATE_DIR = path.join(tempHome, ".clawdbot");
63
- delete process.env.CLAWDBOT_CONFIG_PATH;
62
+ process.env.OPENCLAW_STATE_DIR = path.join(tempHome, ".openclaw");
63
+ delete process.env.OPENCLAW_CONFIG_PATH;
64
64
  }
65
65
  function applyGatewaySkipEnv() {
66
- process.env.CLAWDBOT_SKIP_BROWSER_CONTROL_SERVER = "1";
67
- process.env.CLAWDBOT_SKIP_GMAIL_WATCHER = "1";
68
- process.env.CLAWDBOT_SKIP_CANVAS_HOST = "1";
66
+ process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER = "1";
67
+ process.env.OPENCLAW_SKIP_GMAIL_WATCHER = "1";
68
+ process.env.OPENCLAW_SKIP_CANVAS_HOST = "1";
69
69
  }
70
70
  async function resetGatewayTestState(options) {
71
71
  // Some tests intentionally use fake timers; ensure they don't leak into gateway suites.
@@ -76,8 +76,8 @@ async function resetGatewayTestState(options) {
76
76
  }
77
77
  applyGatewaySkipEnv();
78
78
  tempConfigRoot = options.uniqueConfigRoot
79
- ? await fs.mkdtemp(path.join(tempHome, "moltbot-test-"))
80
- : path.join(tempHome, ".clawdbot-test");
79
+ ? await fs.mkdtemp(path.join(tempHome, "openclaw-test-"))
80
+ : path.join(tempHome, ".openclaw-test");
81
81
  setTestConfigRoot(tempConfigRoot);
82
82
  sessionStoreSaveDelayMs.value = 0;
83
83
  testTailnetIPv4.value = undefined;
@@ -127,25 +127,25 @@ async function cleanupGatewayTestHome(options) {
127
127
  else
128
128
  process.env.USERPROFILE = previousUserProfile;
129
129
  if (previousStateDir === undefined)
130
- delete process.env.CLAWDBOT_STATE_DIR;
130
+ delete process.env.OPENCLAW_STATE_DIR;
131
131
  else
132
- process.env.CLAWDBOT_STATE_DIR = previousStateDir;
132
+ process.env.OPENCLAW_STATE_DIR = previousStateDir;
133
133
  if (previousConfigPath === undefined)
134
- delete process.env.CLAWDBOT_CONFIG_PATH;
134
+ delete process.env.OPENCLAW_CONFIG_PATH;
135
135
  else
136
- process.env.CLAWDBOT_CONFIG_PATH = previousConfigPath;
136
+ process.env.OPENCLAW_CONFIG_PATH = previousConfigPath;
137
137
  if (previousSkipBrowserControl === undefined)
138
- delete process.env.CLAWDBOT_SKIP_BROWSER_CONTROL_SERVER;
138
+ delete process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER;
139
139
  else
140
- process.env.CLAWDBOT_SKIP_BROWSER_CONTROL_SERVER = previousSkipBrowserControl;
140
+ process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER = previousSkipBrowserControl;
141
141
  if (previousSkipGmailWatcher === undefined)
142
- delete process.env.CLAWDBOT_SKIP_GMAIL_WATCHER;
142
+ delete process.env.OPENCLAW_SKIP_GMAIL_WATCHER;
143
143
  else
144
- process.env.CLAWDBOT_SKIP_GMAIL_WATCHER = previousSkipGmailWatcher;
144
+ process.env.OPENCLAW_SKIP_GMAIL_WATCHER = previousSkipGmailWatcher;
145
145
  if (previousSkipCanvasHost === undefined)
146
- delete process.env.CLAWDBOT_SKIP_CANVAS_HOST;
146
+ delete process.env.OPENCLAW_SKIP_CANVAS_HOST;
147
147
  else
148
- process.env.CLAWDBOT_SKIP_CANVAS_HOST = previousSkipCanvasHost;
148
+ process.env.OPENCLAW_SKIP_CANVAS_HOST = previousSkipCanvasHost;
149
149
  }
150
150
  if (options.restoreEnv && tempHome) {
151
151
  await fs.rm(tempHome, {
@@ -228,7 +228,7 @@ export async function startGatewayServer(port, opts) {
228
228
  }
229
229
  export async function startServerWithClient(token, opts) {
230
230
  let port = await getFreePort();
231
- const prev = process.env.CLAWDBOT_GATEWAY_TOKEN;
231
+ const prev = process.env.OPENCLAW_GATEWAY_TOKEN;
232
232
  if (typeof token === "string") {
233
233
  testState.gatewayAuth = { mode: "token", token };
234
234
  }
@@ -237,10 +237,10 @@ export async function startServerWithClient(token, opts) {
237
237
  ? testState.gatewayAuth.token
238
238
  : undefined);
239
239
  if (fallbackToken === undefined) {
240
- delete process.env.CLAWDBOT_GATEWAY_TOKEN;
240
+ delete process.env.OPENCLAW_GATEWAY_TOKEN;
241
241
  }
242
242
  else {
243
- process.env.CLAWDBOT_GATEWAY_TOKEN = fallbackToken;
243
+ process.env.OPENCLAW_GATEWAY_TOKEN = fallbackToken;
244
244
  }
245
245
  let server = null;
246
246
  for (let attempt = 0; attempt < 10; attempt++) {
@@ -276,12 +276,12 @@ export async function connectReq(ws, opts) {
276
276
  ? undefined
277
277
  : typeof testState.gatewayAuth?.token === "string"
278
278
  ? (testState.gatewayAuth.token ?? undefined)
279
- : process.env.CLAWDBOT_GATEWAY_TOKEN;
279
+ : process.env.OPENCLAW_GATEWAY_TOKEN;
280
280
  const defaultPassword = opts?.skipDefaultAuth === true
281
281
  ? undefined
282
282
  : typeof testState.gatewayAuth?.password === "string"
283
283
  ? (testState.gatewayAuth.password ?? undefined)
284
- : process.env.CLAWDBOT_GATEWAY_PASSWORD;
284
+ : process.env.OPENCLAW_GATEWAY_PASSWORD;
285
285
  const token = opts?.token ?? defaultToken;
286
286
  const password = opts?.password ?? defaultPassword;
287
287
  const requestedScopes = Array.isArray(opts?.scopes) ? opts?.scopes : [];
@@ -1,9 +1,10 @@
1
- import { createMoltbotTools } from "../agents/moltbot-tools.js";
1
+ import { createOpenClawTools } from "../agents/openclaw-tools.js";
2
2
  import { filterToolsByPolicy, resolveEffectiveToolPolicy, resolveGroupToolPolicy, resolveSubagentToolPolicy, } from "../agents/pi-tools.policy.js";
3
3
  import { buildPluginToolGroups, collectExplicitAllowlist, expandPolicyWithPluginGroups, normalizeToolName, resolveToolProfilePolicy, stripPluginOnlyAllowlist, } from "../agents/tool-policy.js";
4
4
  import { loadConfig } from "../config/config.js";
5
5
  import { resolveMainSessionKey } from "../config/sessions.js";
6
6
  import { logWarn } from "../logger.js";
7
+ import { isTestDefaultMemorySlotDisabled } from "../plugins/config-state.js";
7
8
  import { getPluginToolMeta } from "../plugins/tools.js";
8
9
  import { isSubagentSessionKey } from "../routing/session-key.js";
9
10
  import { normalizeMessageChannel } from "../utils/message-channel.js";
@@ -11,11 +12,31 @@ import { authorizeGatewayConnect } from "./auth.js";
11
12
  import { getBearerToken, getHeader } from "./http-utils.js";
12
13
  import { readJsonBodyOrError, sendInvalidRequest, sendJson, sendMethodNotAllowed, sendUnauthorized, } from "./http-common.js";
13
14
  const DEFAULT_BODY_BYTES = 2 * 1024 * 1024;
15
+ const MEMORY_TOOL_NAMES = new Set(["memory_search", "memory_get"]);
14
16
  function resolveSessionKeyFromBody(body) {
15
17
  if (typeof body.sessionKey === "string" && body.sessionKey.trim())
16
18
  return body.sessionKey.trim();
17
19
  return undefined;
18
20
  }
21
+ function resolveMemoryToolDisableReasons(cfg) {
22
+ if (!process.env.VITEST)
23
+ return [];
24
+ const reasons = [];
25
+ const plugins = cfg.plugins;
26
+ const slotRaw = plugins?.slots?.memory;
27
+ const slotDisabled = slotRaw === null || (typeof slotRaw === "string" && slotRaw.trim().toLowerCase() === "none");
28
+ const pluginsDisabled = plugins?.enabled === false;
29
+ const defaultDisabled = isTestDefaultMemorySlotDisabled(cfg);
30
+ if (pluginsDisabled)
31
+ reasons.push("plugins.enabled=false");
32
+ if (slotDisabled) {
33
+ reasons.push(slotRaw === null ? "plugins.slots.memory=null" : 'plugins.slots.memory="none"');
34
+ }
35
+ if (!pluginsDisabled && !slotDisabled && defaultDisabled) {
36
+ reasons.push("memory plugin disabled by test default");
37
+ }
38
+ return reasons;
39
+ }
19
40
  function mergeActionIntoArgsIfSupported(params) {
20
41
  const { toolSchema, action, args } = params;
21
42
  if (!action)
@@ -61,6 +82,21 @@ export async function handleToolsInvokeHttpRequest(req, res, opts) {
61
82
  sendInvalidRequest(res, "tools.invoke requires body.tool");
62
83
  return true;
63
84
  }
85
+ if (process.env.VITEST && MEMORY_TOOL_NAMES.has(toolName)) {
86
+ const reasons = resolveMemoryToolDisableReasons(cfg);
87
+ if (reasons.length > 0) {
88
+ const suffix = reasons.length > 0 ? ` (${reasons.join(", ")})` : "";
89
+ sendJson(res, 400, {
90
+ ok: false,
91
+ error: {
92
+ type: "invalid_request",
93
+ message: `memory tools are disabled in tests${suffix}. ` +
94
+ 'Enable by setting plugins.slots.memory="memory-core" (and ensure plugins.enabled is not false).',
95
+ },
96
+ });
97
+ return true;
98
+ }
99
+ }
64
100
  const action = typeof body.action === "string" ? body.action.trim() : undefined;
65
101
  const argsRaw = body.args;
66
102
  const args = (argsRaw && typeof argsRaw === "object" && !Array.isArray(argsRaw)
@@ -69,8 +105,8 @@ export async function handleToolsInvokeHttpRequest(req, res, opts) {
69
105
  const rawSessionKey = resolveSessionKeyFromBody(body);
70
106
  const sessionKey = !rawSessionKey || rawSessionKey === "main" ? resolveMainSessionKey(cfg) : rawSessionKey;
71
107
  // Resolve message channel/account hints (optional headers) for policy inheritance.
72
- const messageChannel = normalizeMessageChannel(getHeader(req, "x-moltbot-message-channel") ?? "");
73
- const accountId = getHeader(req, "x-moltbot-account-id")?.trim() || undefined;
108
+ const messageChannel = normalizeMessageChannel(getHeader(req, "x-openclaw-message-channel") ?? "");
109
+ const accountId = getHeader(req, "x-openclaw-account-id")?.trim() || undefined;
74
110
  const { agentId, globalPolicy, globalProviderPolicy, agentPolicy, agentProviderPolicy, profile, providerProfile, profileAlsoAllow, providerProfileAlsoAllow, } = resolveEffectiveToolPolicy({ config: cfg, sessionKey });
75
111
  const profilePolicy = resolveToolProfilePolicy(profile);
76
112
  const providerProfilePolicy = resolveToolProfilePolicy(providerProfile);
@@ -91,7 +127,7 @@ export async function handleToolsInvokeHttpRequest(req, res, opts) {
91
127
  ? resolveSubagentToolPolicy(cfg)
92
128
  : undefined;
93
129
  // Build tool list (core + plugin tools).
94
- const allTools = createMoltbotTools({
130
+ const allTools = createOpenClawTools({
95
131
  agentSessionKey: sessionKey,
96
132
  agentChannel: messageChannel ?? undefined,
97
133
  agentAccountId: accountId,
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: boot-md
3
3
  description: "Run BOOT.md on gateway startup"
4
- homepage: https://docs.molt.bot/hooks#boot-md
4
+ homepage: https://docs.openclaw.ai/hooks#boot-md
5
5
  metadata:
6
6
  {
7
- "moltbot":
7
+ "openclaw":
8
8
  {
9
9
  "emoji": "🚀",
10
10
  "events": ["gateway:startup"],
11
11
  "requires": { "config": ["workspace.dir"] },
12
- "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with Moltbot" }],
12
+ "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with OpenClaw" }],
13
13
  },
14
14
  }
15
15
  ---
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: command-logger
3
3
  description: "Log all command events to a centralized audit file"
4
- homepage: https://docs.molt.bot/hooks#command-logger
4
+ homepage: https://docs.openclaw.ai/hooks#command-logger
5
5
  metadata:
6
6
  {
7
- "moltbot":
7
+ "openclaw":
8
8
  {
9
9
  "emoji": "📝",
10
10
  "events": ["command"],
11
- "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with Moltbot" }],
11
+ "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with OpenClaw" }],
12
12
  },
13
13
  }
14
14
  ---
@@ -22,7 +22,7 @@ Logs all command events (`/new`, `/reset`, `/stop`, etc.) to a centralized audit
22
22
  Every time you issue a command to the agent:
23
23
 
24
24
  1. **Captures event details** - Command action, timestamp, session key, sender ID, source
25
- 2. **Appends to log file** - Writes a JSON line to `~/.clawdbot/logs/commands.log`
25
+ 2. **Appends to log file** - Writes a JSON line to `~/.openclaw/logs/commands.log`
26
26
  3. **Silent operation** - Runs in the background without user notifications
27
27
 
28
28
  ## Output Format
@@ -43,7 +43,7 @@ Log entries are written in JSONL (JSON Lines) format:
43
43
 
44
44
  ## Log File Location
45
45
 
46
- `~/.clawdbot/logs/commands.log`
46
+ `~/.openclaw/logs/commands.log`
47
47
 
48
48
  ## Requirements
49
49
 
@@ -62,7 +62,7 @@ No configuration needed. The hook automatically:
62
62
  To disable this hook:
63
63
 
64
64
  ```bash
65
- moltbot hooks disable command-logger
65
+ openclaw hooks disable command-logger
66
66
  ```
67
67
 
68
68
  Or via config:
@@ -86,13 +86,13 @@ The hook does not automatically rotate logs. To manage log size, you can:
86
86
  1. **Manual rotation**:
87
87
 
88
88
  ```bash
89
- mv ~/.clawdbot/logs/commands.log ~/.clawdbot/logs/commands.log.old
89
+ mv ~/.openclaw/logs/commands.log ~/.openclaw/logs/commands.log.old
90
90
  ```
91
91
 
92
92
  2. **Use logrotate** (Linux):
93
- Create `/etc/logrotate.d/moltbot`:
93
+ Create `/etc/logrotate.d/openclaw`:
94
94
  ```
95
- /home/username/.clawdbot/logs/commands.log {
95
+ /home/username/.openclaw/logs/commands.log {
96
96
  weekly
97
97
  rotate 4
98
98
  compress
@@ -106,17 +106,17 @@ The hook does not automatically rotate logs. To manage log size, you can:
106
106
  View recent commands:
107
107
 
108
108
  ```bash
109
- tail -n 20 ~/.clawdbot/logs/commands.log
109
+ tail -n 20 ~/.openclaw/logs/commands.log
110
110
  ```
111
111
 
112
112
  Pretty-print with jq:
113
113
 
114
114
  ```bash
115
- cat ~/.clawdbot/logs/commands.log | jq .
115
+ cat ~/.openclaw/logs/commands.log | jq .
116
116
  ```
117
117
 
118
118
  Filter by action:
119
119
 
120
120
  ```bash
121
- grep '"action":"new"' ~/.clawdbot/logs/commands.log | jq .
121
+ grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .
122
122
  ```
@@ -35,7 +35,8 @@ const logCommand = async (event) => {
35
35
  }
36
36
  try {
37
37
  // Create log directory
38
- const logDir = path.join(os.homedir(), ".clawdbot", "logs");
38
+ const stateDir = process.env.OPENCLAW_STATE_DIR?.trim() || path.join(os.homedir(), ".openclaw");
39
+ const logDir = path.join(stateDir, "logs");
39
40
  await fs.mkdir(logDir, { recursive: true });
40
41
  // Append to command log file
41
42
  const logFile = path.join(logDir, "commands.log");
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  name: session-memory
3
3
  description: "Save session context to memory when /new command is issued"
4
- homepage: https://docs.molt.bot/hooks#session-memory
4
+ homepage: https://docs.openclaw.ai/hooks#session-memory
5
5
  metadata:
6
6
  {
7
- "moltbot":
7
+ "openclaw":
8
8
  {
9
9
  "emoji": "💾",
10
10
  "events": ["command:new"],
11
11
  "requires": { "config": ["workspace.dir"] },
12
- "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with Moltbot" }],
12
+ "install": [{ "id": "bundled", "kind": "bundled", "label": "Bundled with OpenClaw" }],
13
13
  },
14
14
  }
15
15
  ---
@@ -23,7 +23,7 @@ Automatically saves session context to your workspace memory when you issue the
23
23
  When you run `/new` to start a fresh session:
24
24
 
25
25
  1. **Finds the previous session** - Uses the pre-reset session entry to locate the correct transcript
26
- 2. **Extracts conversation** - Reads the last 15 lines of conversation from the session
26
+ 2. **Extracts conversation** - Reads the last N user/assistant messages from the session (default: 15, configurable)
27
27
  3. **Generates descriptive slug** - Uses LLM to create a meaningful filename slug based on conversation content
28
28
  4. **Saves to memory** - Creates a new file at `<workspace>/memory/YYYY-MM-DD-slug.md`
29
29
  5. **Sends confirmation** - Notifies you with the file path
@@ -57,9 +57,32 @@ The hook uses your configured LLM provider to generate slugs, so it works with a
57
57
 
58
58
  ## Configuration
59
59
 
60
- No additional configuration required. The hook automatically:
60
+ The hook supports optional configuration:
61
61
 
62
- - Uses your workspace directory (`~/clawd` by default)
62
+ | Option | Type | Default | Description |
63
+ | ---------- | ------ | ------- | --------------------------------------------------------------- |
64
+ | `messages` | number | 15 | Number of user/assistant messages to include in the memory file |
65
+
66
+ Example configuration:
67
+
68
+ ```json
69
+ {
70
+ "hooks": {
71
+ "internal": {
72
+ "entries": {
73
+ "session-memory": {
74
+ "enabled": true,
75
+ "messages": 25
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ ```
82
+
83
+ The hook automatically:
84
+
85
+ - Uses your workspace directory (`~/.openclaw/workspace` by default)
63
86
  - Uses your configured LLM for slug generation
64
87
  - Falls back to timestamp slugs if LLM is unavailable
65
88
 
@@ -68,7 +91,7 @@ No additional configuration required. The hook automatically:
68
91
  To disable this hook:
69
92
 
70
93
  ```bash
71
- moltbot hooks disable session-memory
94
+ openclaw hooks disable session-memory
72
95
  ```
73
96
 
74
97
  Or remove it from your config:
@@ -7,20 +7,20 @@
7
7
  import fs from "node:fs/promises";
8
8
  import path from "node:path";
9
9
  import os from "node:os";
10
+ import { fileURLToPath } from "node:url";
10
11
  import { resolveAgentWorkspaceDir } from "../../../agents/agent-scope.js";
11
12
  import { resolveAgentIdFromSessionKey } from "../../../routing/session-key.js";
13
+ import { resolveHookConfig } from "../../config.js";
12
14
  /**
13
15
  * Read recent messages from session file for slug generation
14
16
  */
15
- async function getRecentSessionContent(sessionFilePath) {
17
+ async function getRecentSessionContent(sessionFilePath, messageCount = 15) {
16
18
  try {
17
19
  const content = await fs.readFile(sessionFilePath, "utf-8");
18
20
  const lines = content.trim().split("\n");
19
- // Get last 15 lines (recent conversation)
20
- const recentLines = lines.slice(-15);
21
- // Parse JSONL and extract messages
22
- const messages = [];
23
- for (const line of recentLines) {
21
+ // Parse JSONL and extract user/assistant messages first
22
+ const allMessages = [];
23
+ for (const line of lines) {
24
24
  try {
25
25
  const entry = JSON.parse(line);
26
26
  // Session files have entries with type="message" containing a nested message object
@@ -33,7 +33,7 @@ async function getRecentSessionContent(sessionFilePath) {
33
33
  ? msg.content.find((c) => c.type === "text")?.text
34
34
  : msg.content;
35
35
  if (text && !text.startsWith("/")) {
36
- messages.push(`${role}: ${text}`);
36
+ allMessages.push(`${role}: ${text}`);
37
37
  }
38
38
  }
39
39
  }
@@ -42,7 +42,9 @@ async function getRecentSessionContent(sessionFilePath) {
42
42
  // Skip invalid JSON lines
43
43
  }
44
44
  }
45
- return messages.join("\n");
45
+ // Then slice to get exactly messageCount messages
46
+ const recentMessages = allMessages.slice(-messageCount);
47
+ return recentMessages.join("\n");
46
48
  }
47
49
  catch {
48
50
  return null;
@@ -63,7 +65,7 @@ const saveSessionToMemory = async (event) => {
63
65
  const agentId = resolveAgentIdFromSessionKey(event.sessionKey);
64
66
  const workspaceDir = cfg
65
67
  ? resolveAgentWorkspaceDir(cfg, agentId)
66
- : path.join(os.homedir(), "clawd");
68
+ : path.join(os.homedir(), ".openclaw", "workspace");
67
69
  const memoryDir = path.join(workspaceDir, "memory");
68
70
  await fs.mkdir(memoryDir, { recursive: true });
69
71
  // Get today's date for filename
@@ -77,19 +79,24 @@ const saveSessionToMemory = async (event) => {
77
79
  console.log("[session-memory] Current sessionFile:", currentSessionFile);
78
80
  console.log("[session-memory] cfg present:", !!cfg);
79
81
  const sessionFile = currentSessionFile || undefined;
82
+ // Read message count from hook config (default: 15)
83
+ const hookConfig = resolveHookConfig(cfg, "session-memory");
84
+ const messageCount = typeof hookConfig?.messages === "number" && hookConfig.messages > 0
85
+ ? hookConfig.messages
86
+ : 15;
80
87
  let slug = null;
81
88
  let sessionContent = null;
82
89
  if (sessionFile) {
83
90
  // Get recent conversation content
84
- sessionContent = await getRecentSessionContent(sessionFile);
91
+ sessionContent = await getRecentSessionContent(sessionFile, messageCount);
85
92
  console.log("[session-memory] sessionContent length:", sessionContent?.length || 0);
86
93
  if (sessionContent && cfg) {
87
94
  console.log("[session-memory] Calling generateSlugViaLLM...");
88
95
  // Dynamically import the LLM slug generator (avoids module caching issues)
89
96
  // When compiled, handler is at dist/hooks/bundled/session-memory/handler.js
90
97
  // Going up ../.. puts us at dist/hooks/, so just add llm-slug-generator.js
91
- const moltbotRoot = path.resolve(path.dirname(import.meta.url.replace("file://", "")), "../..");
92
- const slugGenPath = path.join(moltbotRoot, "llm-slug-generator.js");
98
+ const openclawRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
99
+ const slugGenPath = path.join(openclawRoot, "llm-slug-generator.js");
93
100
  const { generateSlugViaLLM } = await import(slugGenPath);
94
101
  // Use LLM to generate a descriptive slug
95
102
  slug = await generateSlugViaLLM({ sessionContent, cfg });