@poolzin/pool-bot 1.28.0 → 2026.1.26

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 (1024) hide show
  1. package/CHANGELOG.md +1123 -32
  2. package/README.md +37 -47
  3. package/assets/chrome-extension/background.js +5 -5
  4. package/assets/chrome-extension/manifest.json +3 -3
  5. package/assets/chrome-extension/options.html +6 -5
  6. package/assets/chrome-extension/options.js +1 -1
  7. package/dist/acp/client.js +5 -5
  8. package/dist/acp/server.js +1 -1
  9. package/dist/acp/types.js +2 -2
  10. package/dist/agents/agent-paths.js +3 -3
  11. package/dist/agents/auth-health.js +6 -2
  12. package/dist/agents/auth-profiles/doctor.js +1 -1
  13. package/dist/agents/auth-profiles/external-cli-sync.js +150 -5
  14. package/dist/agents/auth-profiles/oauth.js +7 -26
  15. package/dist/agents/auth-profiles/paths.js +3 -3
  16. package/dist/agents/auth-profiles/store.js +13 -5
  17. package/dist/agents/bash-tools.shared.js +1 -8
  18. package/dist/agents/cli-backends.js +0 -8
  19. package/dist/agents/cli-runner/helpers.js +3 -3
  20. package/dist/agents/cli-runner.js +2 -2
  21. package/dist/agents/compaction.js +0 -3
  22. package/dist/agents/context.js +4 -4
  23. package/dist/agents/docs-path.js +3 -3
  24. package/dist/agents/identity.js +1 -1
  25. package/dist/agents/memory-search.js +2 -7
  26. package/dist/agents/minimax-vlm.js +1 -1
  27. package/dist/agents/model-auth.js +1 -1
  28. package/dist/agents/model-catalog.js +4 -4
  29. package/dist/agents/model-fallback.js +0 -22
  30. package/dist/agents/model-selection.js +1 -1
  31. package/dist/agents/models-config.js +3 -3
  32. package/dist/agents/models-config.providers.js +4 -4
  33. package/dist/agents/pi-embedded-helpers/openai.js +1 -1
  34. package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
  35. package/dist/agents/pi-embedded-runner/compact.js +8 -8
  36. package/dist/agents/pi-embedded-runner/extensions.js +0 -5
  37. package/dist/agents/pi-embedded-runner/model.js +2 -2
  38. package/dist/agents/pi-embedded-runner/run/attempt.js +6 -10
  39. package/dist/agents/pi-embedded-runner/run.js +4 -4
  40. package/dist/agents/pi-embedded-runner/sandbox-info.js +4 -1
  41. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  42. package/dist/agents/pi-embedded-utils.js +1 -7
  43. package/dist/agents/pi-extensions/compaction-safeguard.js +3 -32
  44. package/dist/agents/pi-tools.js +15 -25
  45. package/dist/agents/pi-tools.policy.js +1 -34
  46. package/dist/agents/pi-tools.read.js +2 -2
  47. package/dist/agents/sandbox/browser.js +7 -5
  48. package/dist/agents/sandbox/config.js +12 -0
  49. package/dist/agents/sandbox/constants.js +7 -7
  50. package/dist/agents/sandbox/context.js +3 -3
  51. package/dist/agents/sandbox/docker.js +8 -8
  52. package/dist/agents/sandbox/runtime-status.js +1 -1
  53. package/dist/agents/session-transcript-repair.js +1 -1
  54. package/dist/agents/session-write-lock.js +0 -68
  55. package/dist/agents/skills/config.js +8 -9
  56. package/dist/agents/skills/env-overrides.js +1 -1
  57. package/dist/agents/skills/frontmatter.js +14 -15
  58. package/dist/agents/skills/workspace.js +7 -7
  59. package/dist/agents/skills-install.js +1 -1
  60. package/dist/agents/skills-status.js +12 -12
  61. package/dist/agents/subagent-registry.store.js +2 -2
  62. package/dist/agents/system-prompt.js +32 -21
  63. package/dist/agents/tool-images.js +1 -1
  64. package/dist/agents/tool-policy.js +2 -8
  65. package/dist/agents/tools/browser-tool.js +79 -19
  66. package/dist/agents/tools/browser-tool.schema.js +2 -1
  67. package/dist/agents/tools/cron-tool.js +1 -44
  68. package/dist/agents/tools/discord-actions-guild.js +1 -5
  69. package/dist/agents/tools/image-tool.js +2 -2
  70. package/dist/agents/tools/message-tool.js +0 -1
  71. package/dist/agents/tools/sessions-send-helpers.js +2 -17
  72. package/dist/agents/tools/telegram-actions.js +1 -93
  73. package/dist/agents/tools/web-fetch.js +103 -123
  74. package/dist/agents/tools/web-search.js +7 -7
  75. package/dist/agents/workspace.js +0 -36
  76. package/dist/auto-reply/commands-registry.data.js +3 -68
  77. package/dist/auto-reply/commands-registry.js +11 -14
  78. package/dist/auto-reply/reply/agent-runner-execution.js +3 -21
  79. package/dist/auto-reply/reply/agent-runner-memory.js +0 -5
  80. package/dist/auto-reply/reply/bash-command.js +2 -2
  81. package/dist/auto-reply/reply/commands-context-report.js +2 -2
  82. package/dist/auto-reply/reply/commands-info.js +5 -50
  83. package/dist/auto-reply/reply/commands-session.js +4 -4
  84. package/dist/auto-reply/reply/commands-tts.js +63 -61
  85. package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
  86. package/dist/auto-reply/reply/dispatch-from-config.js +1 -65
  87. package/dist/auto-reply/reply/followup-runner.js +0 -5
  88. package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
  89. package/dist/auto-reply/reply/get-reply-run.js +0 -4
  90. package/dist/auto-reply/reply/groups.js +1 -1
  91. package/dist/auto-reply/reply/history.js +0 -23
  92. package/dist/auto-reply/reply/reply-elevated.js +1 -1
  93. package/dist/auto-reply/reply/session-updates.js +1 -6
  94. package/dist/auto-reply/status.js +49 -141
  95. package/dist/browser/bridge-server.js +3 -1
  96. package/dist/browser/client-actions-core.js +7 -13
  97. package/dist/browser/client-actions-observe.js +8 -14
  98. package/dist/browser/client-actions-state.js +15 -21
  99. package/dist/browser/client-fetch.js +61 -74
  100. package/dist/browser/client.js +21 -19
  101. package/dist/browser/config.js +26 -13
  102. package/dist/browser/constants.js +1 -1
  103. package/dist/browser/extension-relay.js +3 -3
  104. package/dist/browser/pw-session.js +4 -41
  105. package/dist/browser/pw-tools-core.downloads.js +1 -1
  106. package/dist/browser/pw-tools-core.interactions.js +5 -5
  107. package/dist/browser/pw-tools-core.responses.js +1 -1
  108. package/dist/browser/routes/agent.act.js +0 -13
  109. package/dist/browser/routes/agent.debug.js +1 -1
  110. package/dist/browser/routes/basic.js +1 -0
  111. package/dist/browser/server-context.js +3 -3
  112. package/dist/browser/server.js +9 -7
  113. package/dist/build-info.json +3 -3
  114. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  115. package/dist/canvas-host/a2ui/a2ui.bundle.js +1618 -1620
  116. package/dist/canvas-host/a2ui/index.html +28 -28
  117. package/dist/canvas-host/a2ui.js +19 -25
  118. package/dist/canvas-host/server.js +32 -66
  119. package/dist/channels/plugins/actions/discord/handle-action.guild-admin.js +1 -5
  120. package/dist/channels/plugins/actions/telegram.js +7 -60
  121. package/dist/channels/plugins/catalog.js +4 -6
  122. package/dist/channels/plugins/group-mentions.js +1 -48
  123. package/dist/channels/plugins/helpers.js +2 -2
  124. package/dist/channels/plugins/message-action-names.js +0 -1
  125. package/dist/channels/plugins/onboarding/imessage.js +1 -1
  126. package/dist/channels/plugins/onboarding/signal.js +2 -2
  127. package/dist/channels/plugins/onboarding/slack.js +4 -4
  128. package/dist/channels/plugins/onboarding/telegram.js +9 -17
  129. package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
  130. package/dist/channels/plugins/outbound/telegram.js +0 -38
  131. package/dist/channels/plugins/pairing-message.js +1 -1
  132. package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
  133. package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
  134. package/dist/channels/registry.js +1 -1
  135. package/dist/cli/acp-cli.js +2 -2
  136. package/dist/cli/argv.js +7 -14
  137. package/dist/cli/banner.js +1 -3
  138. package/dist/cli/browser-cli-actions-input/register.element.js +44 -72
  139. package/dist/cli/browser-cli-actions-input/register.files-downloads.js +35 -55
  140. package/dist/cli/browser-cli-actions-input/register.form-wait-eval.js +28 -41
  141. package/dist/cli/browser-cli-actions-input/register.navigation.js +14 -23
  142. package/dist/cli/browser-cli-actions-input/shared.js +3 -10
  143. package/dist/cli/browser-cli-actions-observe.js +21 -29
  144. package/dist/cli/browser-cli-debug.js +35 -49
  145. package/dist/cli/browser-cli-examples.js +29 -29
  146. package/dist/cli/browser-cli-extension.js +8 -8
  147. package/dist/cli/browser-cli-inspect.js +17 -23
  148. package/dist/cli/browser-cli-manage.js +56 -106
  149. package/dist/cli/browser-cli-shared.js +1 -34
  150. package/dist/cli/browser-cli-state.cookies-storage.js +39 -53
  151. package/dist/cli/browser-cli-state.js +64 -90
  152. package/dist/cli/browser-cli.js +5 -4
  153. package/dist/cli/channels-cli.js +1 -1
  154. package/dist/cli/command-format.js +7 -11
  155. package/dist/cli/config-cli.js +2 -2
  156. package/dist/cli/cron-cli/register.js +1 -1
  157. package/dist/cli/daemon-cli/install.js +1 -1
  158. package/dist/cli/daemon-cli/register.js +1 -1
  159. package/dist/cli/daemon-cli/shared.js +3 -5
  160. package/dist/cli/daemon-cli/status.print.js +6 -6
  161. package/dist/cli/directory-cli.js +1 -1
  162. package/dist/cli/dns-cli.js +7 -7
  163. package/dist/cli/docs-cli.js +2 -2
  164. package/dist/cli/exec-approvals-cli.js +2 -2
  165. package/dist/cli/gateway-cli/dev.js +4 -4
  166. package/dist/cli/gateway-cli/register.js +1 -1
  167. package/dist/cli/gateway-cli/run.js +8 -11
  168. package/dist/cli/gateway-cli/shared.js +4 -4
  169. package/dist/cli/hooks-cli.js +3 -3
  170. package/dist/cli/logs-cli.js +3 -3
  171. package/dist/cli/memory-cli.js +1 -1
  172. package/dist/cli/models-cli.js +2 -2
  173. package/dist/cli/node-cli/daemon.js +2 -2
  174. package/dist/cli/node-cli/register.js +1 -1
  175. package/dist/cli/nodes-camera.js +1 -3
  176. package/dist/cli/nodes-canvas.js +1 -3
  177. package/dist/cli/nodes-cli/register.canvas.js +1 -1
  178. package/dist/cli/nodes-cli/register.js +1 -1
  179. package/dist/cli/nodes-screen.js +1 -1
  180. package/dist/cli/pairing-cli.js +3 -3
  181. package/dist/cli/plugin-registry.js +2 -2
  182. package/dist/cli/plugins-cli.js +3 -3
  183. package/dist/cli/profile.js +1 -1
  184. package/dist/cli/program/config-guard.js +1 -1
  185. package/dist/cli/program/help.js +14 -13
  186. package/dist/cli/program/message/register.send.js +1 -2
  187. package/dist/cli/program/preaction.js +2 -4
  188. package/dist/cli/program/register.agent.js +12 -12
  189. package/dist/cli/program/register.configure.js +1 -1
  190. package/dist/cli/program/register.maintenance.js +4 -4
  191. package/dist/cli/program/register.message.js +5 -5
  192. package/dist/cli/program/register.onboard.js +3 -5
  193. package/dist/cli/program/register.setup.js +2 -2
  194. package/dist/cli/program/register.status-health-sessions.js +13 -13
  195. package/dist/cli/run-main.js +4 -11
  196. package/dist/cli/sandbox-cli.js +19 -19
  197. package/dist/cli/security-cli.js +8 -18
  198. package/dist/cli/skills-cli.js +3 -3
  199. package/dist/cli/system-cli.js +1 -1
  200. package/dist/cli/tagline.js +1 -1
  201. package/dist/cli/tui-cli.js +1 -1
  202. package/dist/cli/update-cli.js +42 -58
  203. package/dist/cli/webhooks-cli.js +6 -6
  204. package/dist/commands/agent-via-gateway.js +1 -1
  205. package/dist/commands/agent.js +1 -2
  206. package/dist/commands/agents.command-shared.js +1 -1
  207. package/dist/commands/agents.commands.add.js +3 -2
  208. package/dist/commands/agents.commands.list.js +1 -1
  209. package/dist/commands/auth-choice-options.js +54 -4
  210. package/dist/commands/auth-choice.apply.anthropic.js +109 -6
  211. package/dist/commands/auth-choice.apply.openai.js +33 -1
  212. package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
  213. package/dist/commands/channels/list.js +2 -2
  214. package/dist/commands/channels/shared.js +1 -1
  215. package/dist/commands/channels/status.js +1 -1
  216. package/dist/commands/chutes-oauth.js +1 -1
  217. package/dist/commands/configure.channels.js +4 -4
  218. package/dist/commands/configure.gateway-auth.js +8 -1
  219. package/dist/commands/configure.gateway.js +10 -1
  220. package/dist/commands/configure.wizard.js +11 -11
  221. package/dist/commands/daemon-install-helpers.js +1 -1
  222. package/dist/commands/dashboard.js +1 -1
  223. package/dist/commands/docs.js +5 -5
  224. package/dist/commands/doctor-auth.js +3 -122
  225. package/dist/commands/doctor-config-flow.js +7 -7
  226. package/dist/commands/doctor-format.js +2 -2
  227. package/dist/commands/doctor-gateway-daemon-flow.js +1 -1
  228. package/dist/commands/doctor-gateway-services.js +3 -3
  229. package/dist/commands/doctor-security.js +1 -48
  230. package/dist/commands/doctor-ui.js +2 -2
  231. package/dist/commands/doctor-update.js +4 -4
  232. package/dist/commands/doctor-workspace-status.js +2 -2
  233. package/dist/commands/doctor-workspace.js +4 -4
  234. package/dist/commands/doctor.js +12 -13
  235. package/dist/commands/gateway-status.js +2 -2
  236. package/dist/commands/models/auth.js +22 -23
  237. package/dist/commands/models/list.probe.js +2 -2
  238. package/dist/commands/models/list.registry.js +4 -4
  239. package/dist/commands/models/list.status-command.js +9 -8
  240. package/dist/commands/onboard-auth.credentials.js +2 -2
  241. package/dist/commands/onboard-channels.js +3 -3
  242. package/dist/commands/onboard-helpers.js +4 -4
  243. package/dist/commands/onboard-hooks.js +4 -4
  244. package/dist/commands/onboard-non-interactive/local/auth-choice.js +34 -38
  245. package/dist/commands/onboard-non-interactive/local/gateway-config.js +4 -7
  246. package/dist/commands/onboard-non-interactive/local.js +1 -1
  247. package/dist/commands/onboard-non-interactive/remote.js +1 -1
  248. package/dist/commands/onboard-non-interactive.js +1 -1
  249. package/dist/commands/onboard-remote.js +2 -2
  250. package/dist/commands/onboard-skills.js +2 -2
  251. package/dist/commands/onboard.js +4 -25
  252. package/dist/commands/onboarding/plugin-install.js +2 -2
  253. package/dist/commands/reset.js +3 -3
  254. package/dist/commands/sandbox-display.js +1 -1
  255. package/dist/commands/sandbox-explain.js +2 -2
  256. package/dist/commands/setup.js +2 -2
  257. package/dist/commands/signal-install.js +2 -2
  258. package/dist/commands/status-all/diagnosis.js +1 -1
  259. package/dist/commands/status-all/report-lines.js +1 -1
  260. package/dist/commands/status-all.js +3 -3
  261. package/dist/commands/status.command.js +9 -9
  262. package/dist/commands/status.update.js +3 -3
  263. package/dist/commands/uninstall.js +3 -3
  264. package/dist/config/config.js +1 -1
  265. package/dist/config/group-policy.js +0 -69
  266. package/dist/config/io.js +5 -17
  267. package/dist/config/legacy.migrations.part-3.js +0 -3
  268. package/dist/config/logging.js +3 -3
  269. package/dist/config/paths.js +13 -43
  270. package/dist/config/schema.js +9 -21
  271. package/dist/config/sessions/transcript.js +1 -1
  272. package/dist/config/validation.js +2 -2
  273. package/dist/config/version.js +4 -4
  274. package/dist/config/zod-schema.agent-defaults.js +0 -1
  275. package/dist/config/zod-schema.agent-runtime.js +7 -39
  276. package/dist/config/zod-schema.hooks.js +0 -2
  277. package/dist/config/zod-schema.js +3 -9
  278. package/dist/config/zod-schema.providers-core.js +0 -23
  279. package/dist/config/zod-schema.providers-whatsapp.js +0 -3
  280. package/dist/control-ui/assets/{index-HlBhZmfj.js → index-Cl-Y9zqE.js} +578 -620
  281. package/dist/control-ui/assets/index-Cl-Y9zqE.js.map +1 -0
  282. package/dist/control-ui/assets/index-DEPfFcOb.css +1 -0
  283. package/dist/control-ui/index.html +4 -4
  284. package/dist/cron/isolated-agent/run.js +3 -38
  285. package/dist/daemon/constants.js +12 -12
  286. package/dist/daemon/inspect.js +11 -11
  287. package/dist/daemon/program-args.js +1 -1
  288. package/dist/daemon/systemd-hints.js +1 -1
  289. package/dist/daemon/systemd-unit.js +1 -1
  290. package/dist/discord/monitor/listeners.js +1 -25
  291. package/dist/discord/monitor/native-command.js +5 -7
  292. package/dist/discord/monitor/provider.js +7 -21
  293. package/dist/entry.js +4 -4
  294. package/dist/gateway/auth.js +19 -52
  295. package/dist/gateway/hooks-mapping.js +4 -18
  296. package/dist/gateway/hooks.js +7 -5
  297. package/dist/gateway/http-utils.js +5 -3
  298. package/dist/gateway/net.js +1 -1
  299. package/dist/gateway/openai-http.js +3 -3
  300. package/dist/gateway/openresponses-http.js +4 -4
  301. package/dist/gateway/protocol/client-info.js +5 -5
  302. package/dist/gateway/protocol/schema/logs-chat.js +1 -1
  303. package/dist/gateway/server/health-state.js +3 -3
  304. package/dist/gateway/server/hooks.js +0 -1
  305. package/dist/gateway/server/ws-connection/message-handler.js +35 -44
  306. package/dist/gateway/server-browser.js +3 -14
  307. package/dist/gateway/server-chat.js +2 -28
  308. package/dist/gateway/server-discovery-runtime.js +17 -25
  309. package/dist/gateway/server-discovery.js +5 -5
  310. package/dist/gateway/server-http.js +3 -9
  311. package/dist/gateway/server-methods/agent.js +0 -2
  312. package/dist/gateway/server-methods/chat.js +0 -5
  313. package/dist/gateway/server-methods/config.js +8 -8
  314. package/dist/gateway/server-methods/logs.js +1 -1
  315. package/dist/gateway/server-methods/skills.js +3 -3
  316. package/dist/gateway/server-methods/update.js +2 -2
  317. package/dist/gateway/server-methods-list.js +0 -1
  318. package/dist/gateway/server-methods.js +0 -3
  319. package/dist/gateway/server-plugins.js +2 -2
  320. package/dist/gateway/server-restart-sentinel.js +5 -10
  321. package/dist/gateway/server-runtime-config.js +2 -5
  322. package/dist/gateway/server.impl.js +6 -7
  323. package/dist/gateway/session-utils.js +11 -31
  324. package/dist/gateway/test-helpers.mocks.js +5 -5
  325. package/dist/gateway/test-helpers.server.js +9 -28
  326. package/dist/gateway/tools-invoke-http.js +8 -15
  327. package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
  328. package/dist/hooks/bundled/command-logger/HOOK.md +5 -5
  329. package/dist/hooks/bundled/session-memory/HOOK.md +4 -4
  330. package/dist/hooks/bundled/session-memory/handler.js +2 -2
  331. package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
  332. package/dist/hooks/bundled-dir.js +1 -1
  333. package/dist/hooks/config.js +7 -8
  334. package/dist/hooks/frontmatter.js +15 -16
  335. package/dist/hooks/gmail-ops.js +4 -4
  336. package/dist/hooks/hooks-status.js +13 -13
  337. package/dist/hooks/install.js +7 -8
  338. package/dist/hooks/internal-hooks.js +1 -1
  339. package/dist/hooks/llm-slug-generator.js +1 -1
  340. package/dist/hooks/loader.js +3 -3
  341. package/dist/hooks/plugin-hooks.js +8 -8
  342. package/dist/hooks/workspace.js +9 -10
  343. package/dist/imessage/monitor/monitor-provider.js +2 -2
  344. package/dist/index.js +4 -4
  345. package/dist/infra/agent-events.js +0 -3
  346. package/dist/infra/bonjour-discovery.js +9 -9
  347. package/dist/infra/bonjour.js +12 -19
  348. package/dist/infra/gateway-lock.js +1 -1
  349. package/dist/infra/heartbeat-visibility.js +0 -14
  350. package/dist/infra/heartbeat-wake.js +2 -2
  351. package/dist/infra/machine-name.js +1 -1
  352. package/dist/infra/net/ssrf.js +1 -77
  353. package/dist/infra/outbound/message-action-spec.js +0 -1
  354. package/dist/infra/outbound/targets.js +1 -1
  355. package/dist/infra/path-env.js +7 -7
  356. package/dist/infra/ports-format.js +2 -2
  357. package/dist/infra/ports.js +2 -2
  358. package/dist/infra/provider-usage.auth.js +4 -2
  359. package/dist/infra/provider-usage.fetch.claude.js +1 -1
  360. package/dist/infra/provider-usage.fetch.minimax.js +1 -1
  361. package/dist/infra/restart-sentinel.js +1 -1
  362. package/dist/infra/restart.js +1 -1
  363. package/dist/infra/retry-policy.js +1 -4
  364. package/dist/infra/runtime-guard.js +2 -2
  365. package/dist/infra/shell-env.js +1 -1
  366. package/dist/infra/skills-remote.js +3 -3
  367. package/dist/infra/tailscale.js +1 -63
  368. package/dist/infra/tls/gateway.js +1 -1
  369. package/dist/infra/unhandled-rejections.js +2 -89
  370. package/dist/infra/update-check.js +4 -2
  371. package/dist/infra/update-global.js +5 -5
  372. package/dist/infra/update-runner.js +8 -32
  373. package/dist/infra/update-startup.js +3 -3
  374. package/dist/infra/warnings.js +1 -1
  375. package/dist/infra/widearea-dns.js +10 -10
  376. package/dist/line/monitor.js +5 -1
  377. package/dist/line/webhook.js +6 -2
  378. package/dist/logging/logger.js +4 -4
  379. package/dist/macos/gateway-daemon.js +2 -2
  380. package/dist/macos/relay.js +4 -4
  381. package/dist/media/host.js +1 -1
  382. package/dist/media/image-ops.js +1 -1
  383. package/dist/media/input-files.js +32 -40
  384. package/dist/media/server.js +15 -39
  385. package/dist/media/store.js +52 -72
  386. package/dist/media-understanding/attachments.js +1 -1
  387. package/dist/media-understanding/providers/image.js +2 -2
  388. package/dist/media-understanding/runner.js +1 -33
  389. package/dist/memory/batch-gemini.js +1 -1
  390. package/dist/memory/batch-openai.js +1 -1
  391. package/dist/memory/embeddings.js +1 -1
  392. package/dist/node-host/runner.js +56 -60
  393. package/dist/pairing/pairing-messages.js +2 -2
  394. package/dist/plugin-sdk/index.js +0 -1
  395. package/dist/plugins/cli.js +2 -2
  396. package/dist/plugins/discovery.js +4 -5
  397. package/dist/plugins/install.js +7 -8
  398. package/dist/plugins/loader.js +4 -11
  399. package/dist/plugins/manifest-registry.js +2 -2
  400. package/dist/plugins/manifest.js +1 -16
  401. package/dist/plugins/providers.js +2 -2
  402. package/dist/plugins/registry.js +5 -5
  403. package/dist/plugins/runtime.js +1 -1
  404. package/dist/plugins/services.js +3 -3
  405. package/dist/plugins/status.js +2 -2
  406. package/dist/plugins/tools.js +2 -2
  407. package/dist/plugins/update.js +3 -3
  408. package/dist/providers/qwen-portal-oauth.js +1 -1
  409. package/dist/routing/session-key.js +12 -17
  410. package/dist/security/audit-extra.js +69 -116
  411. package/dist/security/audit-fs.js +0 -78
  412. package/dist/security/audit.js +88 -121
  413. package/dist/security/fix.js +8 -93
  414. package/dist/slack/monitor/media.js +4 -32
  415. package/dist/slack/monitor/message-handler/dispatch.js +1 -2
  416. package/dist/slack/monitor/slash.js +3 -3
  417. package/dist/slack/monitor.test-helpers.js +1 -1
  418. package/dist/telegram/bot/delivery.js +22 -139
  419. package/dist/telegram/bot-handlers.js +8 -70
  420. package/dist/telegram/bot-message-context.js +21 -79
  421. package/dist/telegram/bot-message-dispatch.js +0 -64
  422. package/dist/telegram/bot-native-commands.js +94 -244
  423. package/dist/telegram/bot.js +2 -18
  424. package/dist/telegram/fetch.js +1 -25
  425. package/dist/telegram/monitor.js +3 -11
  426. package/dist/telegram/send.js +4 -148
  427. package/dist/telegram/webhook-set.js +6 -13
  428. package/dist/telegram/webhook.js +3 -8
  429. package/dist/terminal/links.js +1 -1
  430. package/dist/tts/tts.js +22 -27
  431. package/dist/tui/components/filterable-select-list.js +1 -1
  432. package/dist/tui/components/searchable-select-list.js +1 -2
  433. package/dist/tui/gateway-chat.js +1 -1
  434. package/dist/tui/tui.js +1 -1
  435. package/dist/version.js +1 -1
  436. package/dist/web/active-listener.js +1 -1
  437. package/dist/web/auth-store.js +1 -1
  438. package/dist/web/auto-reply/monitor/process-message.js +1 -1
  439. package/dist/web/auto-reply/monitor.js +1 -1
  440. package/dist/web/login.js +1 -1
  441. package/dist/web/session.js +2 -2
  442. package/dist/wizard/onboarding.finalize.js +14 -14
  443. package/dist/wizard/onboarding.gateway-config.js +11 -1
  444. package/dist/wizard/onboarding.js +10 -21
  445. package/docs/CNAME +1 -1
  446. package/docs/POOL-BOT.md +119 -0
  447. package/docs/_config.yml +2 -2
  448. package/docs/_layouts/default.html +9 -9
  449. package/docs/assets/terminal.css +0 -3
  450. package/docs/assets/theme.js +1 -1
  451. package/docs/automation/auth-monitoring.md +7 -7
  452. package/docs/automation/cron-jobs.md +13 -13
  453. package/docs/automation/cron-vs-heartbeat.md +8 -8
  454. package/docs/automation/gmail-pubsub.md +21 -23
  455. package/docs/automation/poll.md +6 -6
  456. package/docs/automation/webhook.md +8 -13
  457. package/docs/bedrock.md +10 -10
  458. package/docs/brave-search.md +1 -1
  459. package/docs/broadcast-groups.md +3 -3
  460. package/docs/channels/bluebubbles.md +12 -13
  461. package/docs/channels/discord.md +16 -21
  462. package/docs/channels/googlechat.md +15 -15
  463. package/docs/channels/imessage.md +10 -10
  464. package/docs/channels/index.md +4 -6
  465. package/docs/channels/location.md +1 -1
  466. package/docs/channels/matrix.md +13 -13
  467. package/docs/channels/mattermost.md +8 -8
  468. package/docs/channels/msteams.md +25 -29
  469. package/docs/channels/nextcloud-talk.md +7 -7
  470. package/docs/channels/nostr.md +9 -9
  471. package/docs/channels/signal.md +9 -9
  472. package/docs/channels/slack.md +13 -15
  473. package/docs/channels/telegram.md +20 -149
  474. package/docs/channels/tlon.md +5 -5
  475. package/docs/channels/troubleshooting.md +2 -2
  476. package/docs/channels/whatsapp.md +23 -23
  477. package/docs/channels/zalo.md +8 -8
  478. package/docs/channels/zalouser.md +12 -12
  479. package/docs/cli/acp.md +24 -24
  480. package/docs/cli/agent.md +6 -6
  481. package/docs/cli/agents.md +9 -9
  482. package/docs/cli/approvals.md +13 -13
  483. package/docs/cli/browser.md +35 -33
  484. package/docs/cli/channels.md +21 -21
  485. package/docs/cli/config.md +15 -15
  486. package/docs/cli/configure.md +6 -6
  487. package/docs/cli/cron.md +5 -5
  488. package/docs/cli/dashboard.md +4 -4
  489. package/docs/cli/devices.md +13 -13
  490. package/docs/cli/directory.md +12 -12
  491. package/docs/cli/dns.md +5 -5
  492. package/docs/cli/docs.md +5 -5
  493. package/docs/cli/doctor.md +6 -6
  494. package/docs/cli/gateway.md +24 -24
  495. package/docs/cli/health.md +5 -5
  496. package/docs/cli/hooks.md +28 -28
  497. package/docs/cli/index.md +50 -44
  498. package/docs/cli/logs.md +6 -6
  499. package/docs/cli/memory.md +11 -11
  500. package/docs/cli/message.md +11 -11
  501. package/docs/cli/models.md +17 -17
  502. package/docs/cli/node.md +12 -12
  503. package/docs/cli/nodes.md +14 -14
  504. package/docs/cli/onboard.md +6 -7
  505. package/docs/cli/pairing.md +4 -4
  506. package/docs/cli/plugins.md +16 -16
  507. package/docs/cli/reset.md +5 -5
  508. package/docs/cli/sandbox.md +28 -28
  509. package/docs/cli/security.md +5 -5
  510. package/docs/cli/sessions.md +5 -5
  511. package/docs/cli/setup.md +6 -6
  512. package/docs/cli/skills.md +6 -6
  513. package/docs/cli/status.md +7 -7
  514. package/docs/cli/system.md +6 -6
  515. package/docs/cli/tui.md +5 -5
  516. package/docs/cli/uninstall.md +5 -5
  517. package/docs/cli/update.md +20 -20
  518. package/docs/cli/voicecall.md +9 -9
  519. package/docs/cli/webhooks.md +5 -5
  520. package/docs/concepts/agent-loop.md +5 -5
  521. package/docs/concepts/agent-workspace.md +11 -11
  522. package/docs/concepts/agent.md +10 -10
  523. package/docs/concepts/architecture.md +1 -1
  524. package/docs/concepts/channel-routing.md +2 -2
  525. package/docs/concepts/compaction.md +5 -5
  526. package/docs/concepts/context.md +6 -6
  527. package/docs/concepts/group-messages.md +5 -5
  528. package/docs/concepts/groups.md +5 -41
  529. package/docs/concepts/markdown-formatting.md +3 -3
  530. package/docs/concepts/memory.md +12 -12
  531. package/docs/concepts/messages.md +4 -4
  532. package/docs/concepts/model-failover.md +11 -11
  533. package/docs/concepts/model-providers.md +22 -22
  534. package/docs/concepts/models.md +26 -26
  535. package/docs/concepts/multi-agent.md +5 -5
  536. package/docs/concepts/oauth.md +55 -28
  537. package/docs/concepts/presence.md +2 -2
  538. package/docs/concepts/retry.md +1 -1
  539. package/docs/concepts/session-pruning.md +1 -1
  540. package/docs/concepts/session-tool.md +4 -4
  541. package/docs/concepts/session.md +11 -11
  542. package/docs/concepts/streaming.md +3 -3
  543. package/docs/concepts/system-prompt.md +11 -11
  544. package/docs/concepts/timezone.md +2 -2
  545. package/docs/concepts/typebox.md +2 -2
  546. package/docs/concepts/typing-indicators.md +2 -2
  547. package/docs/concepts/usage-tracking.md +3 -3
  548. package/docs/date-time.md +2 -2
  549. package/docs/debug/node-issue.md +4 -4
  550. package/docs/debugging.md +9 -9
  551. package/docs/diagnostics/flags.md +5 -5
  552. package/docs/docs.json +7 -37
  553. package/docs/environment.md +3 -3
  554. package/docs/experiments/plans/cron-add-hardening.md +1 -1
  555. package/docs/experiments/plans/openresponses-gateway.md +2 -2
  556. package/docs/experiments/research/memory.md +6 -6
  557. package/docs/gateway/authentication.md +54 -30
  558. package/docs/gateway/background-process.md +1 -1
  559. package/docs/gateway/bonjour.md +21 -21
  560. package/docs/gateway/bridge-protocol.md +2 -2
  561. package/docs/gateway/cli-backends.md +12 -13
  562. package/docs/gateway/configuration-examples.md +10 -10
  563. package/docs/gateway/configuration.md +107 -120
  564. package/docs/gateway/discovery.md +6 -6
  565. package/docs/gateway/doctor.md +21 -21
  566. package/docs/gateway/gateway-lock.md +1 -1
  567. package/docs/gateway/health.md +9 -9
  568. package/docs/gateway/heartbeat.md +5 -5
  569. package/docs/gateway/index.md +51 -51
  570. package/docs/gateway/local-models.md +2 -2
  571. package/docs/gateway/logging.md +8 -8
  572. package/docs/gateway/multiple-gateways.md +19 -19
  573. package/docs/gateway/openai-http-api.md +10 -10
  574. package/docs/gateway/openresponses-http-api.md +10 -10
  575. package/docs/gateway/pairing.md +5 -5
  576. package/docs/gateway/protocol.md +4 -5
  577. package/docs/gateway/remote-gateway-readme.md +8 -8
  578. package/docs/gateway/remote.md +4 -4
  579. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -10
  580. package/docs/gateway/sandboxing.md +5 -7
  581. package/docs/gateway/{security/index.md → security.md} +63 -143
  582. package/docs/gateway/tailscale.md +35 -16
  583. package/docs/gateway/tools-invoke-http-api.md +3 -3
  584. package/docs/gateway/troubleshooting.md +106 -101
  585. package/docs/help/faq.md +312 -303
  586. package/docs/help/troubleshooting.md +15 -15
  587. package/docs/hooks/soul-evil.md +2 -2
  588. package/docs/hooks.md +44 -44
  589. package/docs/index.md +33 -33
  590. package/docs/install/ansible.md +35 -35
  591. package/docs/install/development-channels.md +10 -10
  592. package/docs/install/docker.md +27 -27
  593. package/docs/install/index.md +27 -28
  594. package/docs/install/installer.md +21 -21
  595. package/docs/install/nix.md +16 -16
  596. package/docs/install/node.md +6 -7
  597. package/docs/install/uninstall.md +21 -21
  598. package/docs/install/updating.md +47 -48
  599. package/docs/logging.md +58 -58
  600. package/docs/multi-agent-sandbox-tools.md +5 -5
  601. package/docs/network.md +1 -1
  602. package/docs/nodes/audio.md +2 -2
  603. package/docs/nodes/camera.md +18 -18
  604. package/docs/nodes/images.md +4 -4
  605. package/docs/nodes/index.md +50 -50
  606. package/docs/nodes/location-command.md +2 -2
  607. package/docs/nodes/media-understanding.md +5 -5
  608. package/docs/nodes/talk.md +1 -1
  609. package/docs/nodes/voicewake.md +1 -1
  610. package/docs/perplexity.md +2 -2
  611. package/docs/platforms/android.md +13 -13
  612. package/docs/platforms/exe-dev.md +23 -23
  613. package/docs/platforms/fly.md +18 -129
  614. package/docs/platforms/hetzner.md +20 -20
  615. package/docs/platforms/index.md +8 -8
  616. package/docs/platforms/ios.md +13 -13
  617. package/docs/platforms/linux.md +11 -11
  618. package/docs/platforms/mac/bundled-gateway.md +11 -11
  619. package/docs/platforms/mac/canvas.md +14 -14
  620. package/docs/platforms/mac/child-process.md +1 -1
  621. package/docs/platforms/mac/dev-setup.md +10 -10
  622. package/docs/platforms/mac/health.md +2 -2
  623. package/docs/platforms/mac/icon.md +1 -1
  624. package/docs/platforms/mac/logging.md +4 -4
  625. package/docs/platforms/mac/menu-bar.md +1 -1
  626. package/docs/platforms/mac/peekaboo.md +9 -9
  627. package/docs/platforms/mac/permissions.md +1 -1
  628. package/docs/platforms/mac/release.md +18 -18
  629. package/docs/platforms/mac/remote.md +14 -14
  630. package/docs/platforms/mac/signing.md +6 -6
  631. package/docs/platforms/mac/skills.md +2 -2
  632. package/docs/platforms/mac/webchat.md +1 -1
  633. package/docs/platforms/mac/xpc.md +4 -4
  634. package/docs/platforms/macos-vm.md +27 -27
  635. package/docs/platforms/macos.md +14 -14
  636. package/docs/platforms/windows.md +11 -11
  637. package/docs/plugin.md +57 -57
  638. package/docs/plugins/agent-tools.md +1 -1
  639. package/docs/plugins/manifest.md +4 -4
  640. package/docs/plugins/voice-call.md +12 -15
  641. package/docs/plugins/zalouser.md +9 -9
  642. package/docs/prose.md +9 -9
  643. package/docs/providers/anthropic.md +27 -23
  644. package/docs/providers/deepgram.md +2 -2
  645. package/docs/providers/github-copilot.md +11 -11
  646. package/docs/providers/glm.md +4 -4
  647. package/docs/providers/index.md +3 -7
  648. package/docs/providers/minimax.md +9 -9
  649. package/docs/providers/models.md +3 -3
  650. package/docs/providers/moonshot.md +2 -2
  651. package/docs/providers/ollama.md +11 -11
  652. package/docs/providers/openai.md +13 -9
  653. package/docs/providers/opencode.md +3 -3
  654. package/docs/providers/openrouter.md +3 -3
  655. package/docs/providers/qwen.md +6 -6
  656. package/docs/providers/synthetic.md +4 -4
  657. package/docs/providers/venice.md +21 -21
  658. package/docs/providers/vercel-ai-gateway.md +3 -4
  659. package/docs/providers/zai.md +5 -5
  660. package/docs/railway.mdx +5 -5
  661. package/docs/refactor/plugin-sdk.md +10 -10
  662. package/docs/refactor/strict-config.md +11 -11
  663. package/docs/reference/AGENTS.default.md +10 -10
  664. package/docs/reference/RELEASING.md +27 -27
  665. package/docs/reference/api-usage-costs.md +6 -6
  666. package/docs/reference/device-models.md +7 -7
  667. package/docs/reference/rpc.md +3 -3
  668. package/docs/reference/session-management-compaction.md +17 -17
  669. package/docs/reference/templates/AGENTS.dev.md +1 -1
  670. package/docs/reference/templates/BOOT.md +1 -1
  671. package/docs/reference/templates/TOOLS.dev.md +1 -1
  672. package/docs/reference/templates/USER.dev.md +2 -2
  673. package/docs/reference/test.md +2 -2
  674. package/docs/reference/transcript-hygiene.md +1 -1
  675. package/docs/scripts.md +1 -1
  676. package/docs/start/clawd.md +27 -27
  677. package/docs/start/getting-started.md +23 -29
  678. package/docs/start/hubs.md +2 -2
  679. package/docs/start/lore.md +38 -74
  680. package/docs/start/onboarding.md +4 -4
  681. package/docs/start/pairing.md +8 -8
  682. package/docs/start/setup.md +15 -28
  683. package/docs/start/showcase.md +32 -32
  684. package/docs/start/wizard.md +21 -24
  685. package/docs/testing.md +10 -10
  686. package/docs/token-use.md +7 -7
  687. package/docs/tools/agent-send.md +10 -10
  688. package/docs/tools/browser-linux-troubleshooting.md +8 -8
  689. package/docs/tools/browser-login.md +4 -4
  690. package/docs/tools/browser.md +241 -135
  691. package/docs/tools/chrome-extension.md +48 -31
  692. package/docs/tools/clawdhub.md +7 -7
  693. package/docs/tools/creating-skills.md +4 -4
  694. package/docs/tools/elevated.md +0 -1
  695. package/docs/tools/exec-approvals.md +2 -5
  696. package/docs/tools/exec.md +3 -14
  697. package/docs/tools/firecrawl.md +2 -2
  698. package/docs/tools/index.md +15 -18
  699. package/docs/tools/llm-task.md +1 -1
  700. package/docs/tools/lobster.md +11 -23
  701. package/docs/tools/skills-config.md +1 -1
  702. package/docs/tools/skills.md +21 -29
  703. package/docs/tools/slash-commands.md +8 -10
  704. package/docs/tools/web.md +6 -6
  705. package/docs/tts.md +9 -9
  706. package/docs/tui.md +7 -7
  707. package/docs/vps.md +1 -6
  708. package/docs/web/control-ui.md +12 -13
  709. package/docs/web/dashboard.md +4 -8
  710. package/docs/web/index.md +5 -6
  711. package/docs/web/webchat.md +1 -1
  712. package/extensions/bluebubbles/index.ts +2 -2
  713. package/extensions/bluebubbles/package.json +5 -5
  714. package/extensions/bluebubbles/src/accounts.ts +8 -8
  715. package/extensions/bluebubbles/src/actions.test.ts +22 -22
  716. package/extensions/bluebubbles/src/actions.ts +5 -5
  717. package/extensions/bluebubbles/src/attachments.ts +2 -2
  718. package/extensions/bluebubbles/src/channel.ts +16 -16
  719. package/extensions/bluebubbles/src/chat.ts +2 -2
  720. package/extensions/bluebubbles/src/media-send.ts +2 -2
  721. package/extensions/bluebubbles/src/monitor.test.ts +49 -55
  722. package/extensions/bluebubbles/src/monitor.ts +5 -180
  723. package/extensions/bluebubbles/src/onboarding.ts +7 -7
  724. package/extensions/bluebubbles/src/reactions.ts +2 -2
  725. package/extensions/bluebubbles/src/send.ts +2 -2
  726. package/extensions/copilot-proxy/package.json +4 -4
  727. package/extensions/diagnostics-otel/index.ts +2 -2
  728. package/extensions/diagnostics-otel/package.json +4 -4
  729. package/extensions/diagnostics-otel/src/service.test.ts +12 -12
  730. package/extensions/diagnostics-otel/src/service.ts +84 -84
  731. package/extensions/discord/index.ts +2 -2
  732. package/extensions/discord/package.json +4 -4
  733. package/extensions/google-antigravity-auth/index.ts +1 -8
  734. package/extensions/google-antigravity-auth/package.json +4 -4
  735. package/extensions/google-gemini-cli-auth/oauth.ts +2 -2
  736. package/extensions/google-gemini-cli-auth/package.json +4 -4
  737. package/extensions/googlechat/index.ts +3 -3
  738. package/extensions/googlechat/package.json +7 -7
  739. package/extensions/googlechat/src/accounts.ts +8 -8
  740. package/extensions/googlechat/src/actions.ts +6 -6
  741. package/extensions/googlechat/src/api.ts +1 -1
  742. package/extensions/googlechat/src/channel.ts +21 -21
  743. package/extensions/googlechat/src/monitor.ts +8 -8
  744. package/extensions/googlechat/src/onboarding.ts +10 -10
  745. package/extensions/imessage/index.ts +2 -2
  746. package/extensions/imessage/package.json +4 -4
  747. package/extensions/line/index.ts +2 -2
  748. package/extensions/line/package.json +6 -6
  749. package/extensions/line/src/card-command.ts +2 -2
  750. package/extensions/line/src/channel.logout.test.ts +4 -4
  751. package/extensions/line/src/channel.sendPayload.test.ts +8 -8
  752. package/extensions/line/src/channel.ts +4 -4
  753. package/extensions/llm-task/index.ts +2 -2
  754. package/extensions/llm-task/package.json +4 -4
  755. package/extensions/llm-task/src/llm-task-tool.ts +5 -5
  756. package/extensions/lobster/index.ts +2 -2
  757. package/extensions/lobster/package.json +3 -3
  758. package/extensions/lobster/src/lobster-tool.test.ts +6 -26
  759. package/extensions/lobster/src/lobster-tool.ts +6 -24
  760. package/extensions/matrix/CHANGELOG.md +9 -9
  761. package/extensions/matrix/index.ts +2 -2
  762. package/extensions/matrix/package.json +7 -7
  763. package/extensions/matrix/src/matrix/actions/messages.ts +1 -1
  764. package/extensions/matrix/src/matrix/actions/reactions.ts +1 -1
  765. package/extensions/matrix/src/matrix/actions/room.ts +3 -3
  766. package/extensions/matrix/src/matrix/actions/summary.ts +1 -1
  767. package/extensions/matrix/src/matrix/actions/types.ts +1 -1
  768. package/extensions/matrix/src/matrix/active-client.ts +1 -1
  769. package/extensions/matrix/src/matrix/client/config.ts +2 -2
  770. package/extensions/matrix/src/matrix/client/create-client.ts +2 -2
  771. package/extensions/matrix/src/matrix/client/logging.ts +1 -1
  772. package/extensions/matrix/src/matrix/client/shared.ts +3 -3
  773. package/extensions/matrix/src/matrix/deps.ts +4 -4
  774. package/extensions/matrix/src/matrix/monitor/auto-join.ts +2 -2
  775. package/extensions/matrix/src/matrix/monitor/direct.ts +1 -1
  776. package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
  777. package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
  778. package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
  779. package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
  780. package/extensions/matrix/src/matrix/monitor/media.test.ts +2 -2
  781. package/extensions/matrix/src/matrix/monitor/media.ts +3 -3
  782. package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
  783. package/extensions/matrix/src/matrix/monitor/room-info.ts +1 -1
  784. package/extensions/matrix/src/matrix/monitor/threads.ts +1 -1
  785. package/extensions/matrix/src/matrix/monitor/types.ts +1 -1
  786. package/extensions/matrix/src/matrix/probe.ts +1 -1
  787. package/extensions/matrix/src/matrix/send/client.ts +2 -2
  788. package/extensions/matrix/src/matrix/send/media.ts +1 -1
  789. package/extensions/matrix/src/matrix/send/targets.test.ts +1 -1
  790. package/extensions/matrix/src/matrix/send/targets.ts +1 -1
  791. package/extensions/matrix/src/matrix/send/types.ts +2 -2
  792. package/extensions/matrix/src/matrix/send.test.ts +2 -2
  793. package/extensions/matrix/src/matrix/send.ts +3 -3
  794. package/extensions/matrix/src/onboarding.ts +2 -2
  795. package/extensions/matrix/src/types.ts +1 -1
  796. package/extensions/mattermost/index.ts +2 -2
  797. package/extensions/mattermost/package.json +5 -5
  798. package/extensions/mattermost/src/mattermost/accounts.ts +8 -8
  799. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
  800. package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
  801. package/extensions/mattermost/src/onboarding-helpers.ts +3 -3
  802. package/extensions/mattermost/src/onboarding.ts +3 -3
  803. package/extensions/memory-core/index.ts +2 -2
  804. package/extensions/memory-core/package.json +5 -5
  805. package/extensions/memory-lancedb/index.test.ts +2 -2
  806. package/extensions/memory-lancedb/index.ts +3 -3
  807. package/extensions/memory-lancedb/package.json +4 -4
  808. package/extensions/msteams/CHANGELOG.md +7 -7
  809. package/extensions/msteams/index.ts +2 -2
  810. package/extensions/msteams/package.json +6 -6
  811. package/extensions/msteams/src/channel.directory.test.ts +2 -2
  812. package/extensions/msteams/src/channel.ts +2 -2
  813. package/extensions/msteams/src/conversation-store-fs.test.ts +1 -1
  814. package/extensions/msteams/src/graph-upload.ts +4 -4
  815. package/extensions/msteams/src/monitor-handler.ts +2 -2
  816. package/extensions/msteams/src/monitor.ts +2 -2
  817. package/extensions/msteams/src/onboarding.ts +9 -9
  818. package/extensions/msteams/src/policy.ts +3 -48
  819. package/extensions/msteams/src/polls-store.test.ts +1 -1
  820. package/extensions/msteams/src/polls.test.ts +2 -2
  821. package/extensions/msteams/src/polls.ts +8 -8
  822. package/extensions/msteams/src/reply-dispatcher.ts +35 -35
  823. package/extensions/msteams/src/send-context.ts +2 -2
  824. package/extensions/msteams/src/send.ts +4 -4
  825. package/extensions/nextcloud-talk/index.ts +2 -2
  826. package/extensions/nextcloud-talk/package.json +5 -5
  827. package/extensions/nextcloud-talk/src/channel.ts +7 -7
  828. package/extensions/nextcloud-talk/src/inbound.ts +7 -7
  829. package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
  830. package/extensions/nostr/CHANGELOG.md +4 -4
  831. package/extensions/nostr/index.ts +5 -5
  832. package/extensions/nostr/package.json +6 -6
  833. package/extensions/nostr/src/channel.ts +1 -1
  834. package/extensions/nostr/src/nostr-state-store.test.ts +1 -1
  835. package/extensions/nostr/src/types.ts +4 -4
  836. package/extensions/open-prose/index.ts +2 -2
  837. package/extensions/open-prose/package.json +3 -3
  838. package/extensions/open-prose/skills/prose/SKILL.md +5 -5
  839. package/extensions/open-prose/skills/prose/prose.md +4 -4
  840. package/extensions/signal/index.ts +2 -2
  841. package/extensions/signal/package.json +4 -4
  842. package/extensions/slack/index.ts +2 -2
  843. package/extensions/slack/package.json +4 -4
  844. package/extensions/telegram/index.ts +2 -2
  845. package/extensions/telegram/package.json +4 -4
  846. package/extensions/telegram/src/channel.ts +2 -2
  847. package/extensions/tlon/README.md +1 -1
  848. package/extensions/tlon/index.ts +2 -2
  849. package/extensions/tlon/package.json +5 -5
  850. package/extensions/tlon/src/channel.ts +13 -13
  851. package/extensions/tlon/src/monitor/index.ts +3 -3
  852. package/extensions/tlon/src/onboarding.ts +3 -3
  853. package/extensions/tlon/src/types.ts +3 -3
  854. package/extensions/tlon/src/urbit/send.ts +6 -19
  855. package/extensions/voice-call/CHANGELOG.md +12 -13
  856. package/extensions/voice-call/README.md +2 -3
  857. package/extensions/voice-call/clawdbot.plugin.json +3 -3
  858. package/extensions/voice-call/index.ts +9 -11
  859. package/extensions/voice-call/package.json +4 -4
  860. package/extensions/voice-call/src/cli.ts +1 -1
  861. package/extensions/voice-call/src/config.ts +4 -61
  862. package/extensions/voice-call/src/core-bridge.ts +8 -10
  863. package/extensions/voice-call/src/manager.test.ts +2 -2
  864. package/extensions/voice-call/src/providers/twilio/webhook.ts +1 -2
  865. package/extensions/voice-call/src/providers/twilio.ts +2 -2
  866. package/extensions/voice-call/src/response-generator.ts +1 -1
  867. package/extensions/voice-call/src/runtime.ts +15 -26
  868. package/extensions/voice-call/src/types.ts +0 -1
  869. package/extensions/voice-call/src/webhook-security.test.ts +0 -52
  870. package/extensions/voice-call/src/webhook-security.ts +5 -16
  871. package/extensions/voice-call/src/webhook.ts +0 -1
  872. package/extensions/whatsapp/index.ts +2 -2
  873. package/extensions/whatsapp/package.json +4 -4
  874. package/extensions/zalo/CHANGELOG.md +9 -9
  875. package/extensions/zalo/index.ts +2 -2
  876. package/extensions/zalo/package.json +6 -6
  877. package/extensions/zalo/src/accounts.ts +8 -8
  878. package/extensions/zalo/src/actions.ts +4 -4
  879. package/extensions/zalo/src/channel.directory.test.ts +2 -2
  880. package/extensions/zalo/src/channel.ts +18 -18
  881. package/extensions/zalo/src/monitor.ts +9 -9
  882. package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
  883. package/extensions/zalo/src/onboarding.ts +25 -25
  884. package/extensions/zalo/src/send.ts +2 -2
  885. package/extensions/zalouser/CHANGELOG.md +4 -4
  886. package/extensions/zalouser/index.ts +2 -2
  887. package/extensions/zalouser/package.json +6 -6
  888. package/extensions/zalouser/src/accounts.ts +9 -9
  889. package/extensions/zalouser/src/channel.ts +25 -25
  890. package/extensions/zalouser/src/monitor.ts +4 -4
  891. package/extensions/zalouser/src/onboarding.ts +30 -30
  892. package/extensions/zalouser/src/status-issues.ts +1 -1
  893. package/package.json +18 -17
  894. package/skills/1password/SKILL.md +3 -3
  895. package/skills/apple-notes/SKILL.md +2 -2
  896. package/skills/apple-reminders/SKILL.md +1 -1
  897. package/skills/bear-notes/SKILL.md +1 -1
  898. package/skills/bird/SKILL.md +1 -1
  899. package/skills/blogwatcher/SKILL.md +1 -1
  900. package/skills/blucli/SKILL.md +1 -1
  901. package/skills/bluebubbles/SKILL.md +1 -1
  902. package/skills/camsnap/SKILL.md +1 -1
  903. package/skills/canvas/SKILL.md +15 -15
  904. package/skills/clawdhub/SKILL.md +2 -2
  905. package/skills/coding-agent/SKILL.md +6 -6
  906. package/skills/discord/SKILL.md +5 -6
  907. package/skills/eightctl/SKILL.md +1 -1
  908. package/skills/food-order/SKILL.md +1 -1
  909. package/skills/gemini/SKILL.md +1 -1
  910. package/skills/gifgrep/SKILL.md +1 -1
  911. package/skills/github/SKILL.md +0 -1
  912. package/skills/gog/SKILL.md +1 -1
  913. package/skills/goplaces/SKILL.md +1 -1
  914. package/skills/himalaya/SKILL.md +1 -1
  915. package/skills/imsg/SKILL.md +1 -1
  916. package/skills/local-places/SKILL.md +1 -1
  917. package/skills/mcporter/SKILL.md +1 -1
  918. package/skills/model-usage/SKILL.md +1 -1
  919. package/skills/nano-banana-pro/SKILL.md +5 -10
  920. package/skills/nano-banana-pro/scripts/generate_image.py +27 -42
  921. package/skills/nano-pdf/SKILL.md +1 -1
  922. package/skills/notion/SKILL.md +1 -1
  923. package/skills/obsidian/SKILL.md +1 -1
  924. package/skills/openai-image-gen/SKILL.md +1 -1
  925. package/skills/openai-whisper/SKILL.md +1 -1
  926. package/skills/openai-whisper-api/SKILL.md +2 -2
  927. package/skills/openhue/SKILL.md +1 -1
  928. package/skills/oracle/SKILL.md +1 -1
  929. package/skills/ordercli/SKILL.md +1 -1
  930. package/skills/peekaboo/SKILL.md +1 -1
  931. package/skills/sag/SKILL.md +1 -1
  932. package/skills/session-logs/SKILL.md +1 -1
  933. package/skills/sherpa-onnx-tts/SKILL.md +2 -2
  934. package/skills/slack/SKILL.md +3 -4
  935. package/skills/songsee/SKILL.md +1 -1
  936. package/skills/sonoscli/SKILL.md +1 -1
  937. package/skills/spotify-player/SKILL.md +1 -1
  938. package/skills/summarize/SKILL.md +1 -1
  939. package/skills/things-mac/SKILL.md +3 -3
  940. package/skills/tmux/SKILL.md +7 -7
  941. package/skills/tmux/scripts/find-sessions.sh +1 -1
  942. package/skills/trello/SKILL.md +2 -2
  943. package/skills/video-frames/SKILL.md +1 -1
  944. package/skills/voice-call/SKILL.md +4 -4
  945. package/skills/wacli/SKILL.md +2 -2
  946. package/skills/weather/SKILL.md +1 -1
  947. package/LICENSE +0 -21
  948. package/dist/agents/moltbot-tools.js +0 -121
  949. package/dist/agents/pi-extensions/compaction-safeguard-runtime.js +0 -20
  950. package/dist/browser/control-service.js +0 -72
  951. package/dist/browser/routes/dispatcher.js +0 -86
  952. package/dist/browser/routes/types.js +0 -1
  953. package/dist/cli/cli-name.js +0 -26
  954. package/dist/compat/legacy-names.js +0 -5
  955. package/dist/control-ui/assets/index-CIRDm-Lu.css +0 -1
  956. package/dist/control-ui/assets/index-HlBhZmfj.js.map +0 -1
  957. package/dist/discord/monitor/presence-cache.js +0 -38
  958. package/dist/gateway/server-methods/browser.js +0 -204
  959. package/dist/infra/fs-safe.js +0 -76
  960. package/dist/infra/moltbot-root.js +0 -57
  961. package/dist/line/signature.js +0 -11
  962. package/dist/security/external-content.js +0 -143
  963. package/dist/security/windows-acl.js +0 -162
  964. package/dist/telegram/api-logging.js +0 -24
  965. package/dist/telegram/network-config.js +0 -23
  966. package/dist/telegram/network-errors.js +0 -103
  967. package/dist/telegram/sticker-cache.js +0 -202
  968. package/docs/channels/line.md +0 -183
  969. package/docs/channels/twitch.md +0 -366
  970. package/docs/gateway/security/formal-verification.md +0 -107
  971. package/docs/install/migrating.md +0 -190
  972. package/docs/northflank.mdx +0 -53
  973. package/docs/platforms/digitalocean.md +0 -243
  974. package/docs/platforms/gcp.md +0 -498
  975. package/docs/platforms/oracle.md +0 -291
  976. package/docs/platforms/raspberry-pi.md +0 -354
  977. package/docs/providers/claude-max-api-proxy.md +0 -145
  978. package/docs/render.mdx +0 -158
  979. package/docs/security/formal-verification.md +0 -107
  980. package/extensions/googlechat/node_modules/.bin/poolbot +0 -21
  981. package/extensions/line/node_modules/.bin/poolbot +0 -21
  982. package/extensions/matrix/node_modules/.bin/poolbot +0 -21
  983. package/extensions/memory-core/node_modules/.bin/poolbot +0 -21
  984. package/extensions/msteams/node_modules/.bin/poolbot +0 -21
  985. package/extensions/nostr/node_modules/.bin/poolbot +0 -21
  986. package/extensions/twitch/CHANGELOG.md +0 -21
  987. package/extensions/twitch/README.md +0 -89
  988. package/extensions/twitch/clawdbot.plugin.json +0 -9
  989. package/extensions/twitch/index.ts +0 -20
  990. package/extensions/twitch/node_modules/.bin/poolbot +0 -21
  991. package/extensions/twitch/package.json +0 -20
  992. package/extensions/twitch/src/access-control.test.ts +0 -489
  993. package/extensions/twitch/src/access-control.ts +0 -154
  994. package/extensions/twitch/src/actions.ts +0 -173
  995. package/extensions/twitch/src/client-manager-registry.ts +0 -115
  996. package/extensions/twitch/src/config-schema.ts +0 -82
  997. package/extensions/twitch/src/config.test.ts +0 -88
  998. package/extensions/twitch/src/config.ts +0 -116
  999. package/extensions/twitch/src/monitor.ts +0 -257
  1000. package/extensions/twitch/src/onboarding.test.ts +0 -311
  1001. package/extensions/twitch/src/onboarding.ts +0 -411
  1002. package/extensions/twitch/src/outbound.test.ts +0 -373
  1003. package/extensions/twitch/src/outbound.ts +0 -186
  1004. package/extensions/twitch/src/plugin.test.ts +0 -39
  1005. package/extensions/twitch/src/plugin.ts +0 -274
  1006. package/extensions/twitch/src/probe.test.ts +0 -198
  1007. package/extensions/twitch/src/probe.ts +0 -118
  1008. package/extensions/twitch/src/resolver.ts +0 -137
  1009. package/extensions/twitch/src/runtime.ts +0 -14
  1010. package/extensions/twitch/src/send.test.ts +0 -289
  1011. package/extensions/twitch/src/send.ts +0 -136
  1012. package/extensions/twitch/src/status.test.ts +0 -270
  1013. package/extensions/twitch/src/status.ts +0 -176
  1014. package/extensions/twitch/src/token.test.ts +0 -171
  1015. package/extensions/twitch/src/token.ts +0 -87
  1016. package/extensions/twitch/src/twitch-client.test.ts +0 -574
  1017. package/extensions/twitch/src/twitch-client.ts +0 -277
  1018. package/extensions/twitch/src/types.ts +0 -141
  1019. package/extensions/twitch/src/utils/markdown.ts +0 -92
  1020. package/extensions/twitch/src/utils/twitch.ts +0 -78
  1021. package/extensions/twitch/test/setup.ts +0 -7
  1022. package/extensions/voice-call/src/config.test.ts +0 -204
  1023. package/extensions/zalo/node_modules/.bin/poolbot +0 -21
  1024. package/extensions/zalouser/node_modules/.bin/poolbot +0 -21
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <title>Moltbot Canvas</title>
6
+ <title>PooL Canvas</title>
7
7
  <script>
8
8
  (() => {
9
9
  try {
@@ -81,7 +81,7 @@
81
81
  backface-visibility: hidden;
82
82
  opacity: 0.45;
83
83
  pointer-events: none;
84
- animation: moltbot-grid-drift 140s ease-in-out infinite alternate;
84
+ animation: clawdbot-grid-drift 140s ease-in-out infinite alternate;
85
85
  }
86
86
  :root[data-platform="android"] body::before {
87
87
  opacity: 0.8;
@@ -101,7 +101,7 @@
101
101
  backface-visibility: hidden;
102
102
  transform: translate3d(0, 0, 0);
103
103
  pointer-events: none;
104
- animation: moltbot-glow-drift 110s ease-in-out infinite alternate;
104
+ animation: clawdbot-glow-drift 110s ease-in-out infinite alternate;
105
105
  }
106
106
  :root[data-platform="android"] body::after {
107
107
  opacity: 0.85;
@@ -116,7 +116,7 @@
116
116
  opacity: 0.7;
117
117
  }
118
118
  }
119
- @keyframes moltbot-grid-drift {
119
+ @keyframes clawdbot-grid-drift {
120
120
  0% {
121
121
  transform: translate3d(-12px, 8px, 0) rotate(-7deg);
122
122
  opacity: 0.4;
@@ -130,7 +130,7 @@
130
130
  opacity: 0.42;
131
131
  }
132
132
  }
133
- @keyframes moltbot-glow-drift {
133
+ @keyframes clawdbot-glow-drift {
134
134
  0% {
135
135
  transform: translate3d(-18px, 12px, 0) scale(1.02);
136
136
  opacity: 0.4;
@@ -153,14 +153,14 @@
153
153
  touch-action: none;
154
154
  z-index: 1;
155
155
  }
156
- :root[data-platform="android"] #moltbot-canvas {
156
+ :root[data-platform="android"] #clawdbot-canvas {
157
157
  background:
158
158
  radial-gradient(1100px 800px at 20% 15%, rgba(42, 113, 255, 0.78), rgba(0, 0, 0, 0) 58%),
159
159
  radial-gradient(900px 650px at 82% 28%, rgba(255, 0, 138, 0.66), rgba(0, 0, 0, 0) 62%),
160
160
  radial-gradient(1000px 900px at 60% 88%, rgba(0, 209, 255, 0.58), rgba(0, 0, 0, 0) 62%),
161
161
  #141c33;
162
162
  }
163
- #moltbot-status {
163
+ #clawdbot-status {
164
164
  position: fixed;
165
165
  inset: 0;
166
166
  display: none;
@@ -172,7 +172,7 @@
172
172
  pointer-events: none;
173
173
  z-index: 3;
174
174
  }
175
- #moltbot-status .card {
175
+ #clawdbot-status .card {
176
176
  width: min(560px, 88vw);
177
177
  text-align: left;
178
178
  padding: 14px 16px 12px;
@@ -185,7 +185,7 @@
185
185
  -webkit-backdrop-filter: blur(18px) saturate(140%);
186
186
  backdrop-filter: blur(18px) saturate(140%);
187
187
  }
188
- #moltbot-status .title {
188
+ #clawdbot-status .title {
189
189
  font:
190
190
  600 12px/1.2 -apple-system,
191
191
  BlinkMacSystemFont,
@@ -196,7 +196,7 @@
196
196
  text-transform: uppercase;
197
197
  color: rgba(255, 255, 255, 0.7);
198
198
  }
199
- #moltbot-status .subtitle {
199
+ #clawdbot-status .subtitle {
200
200
  margin-top: 8px;
201
201
  font:
202
202
  500 13px/1.45 -apple-system,
@@ -208,39 +208,39 @@
208
208
  white-space: pre-wrap;
209
209
  overflow-wrap: anywhere;
210
210
  }
211
- moltbot-a2ui-host {
211
+ clawdbot-a2ui-host {
212
212
  display: block;
213
213
  height: 100%;
214
214
  position: fixed;
215
215
  inset: 0;
216
216
  z-index: 4;
217
- --moltbot-a2ui-inset-top: 28px;
218
- --moltbot-a2ui-inset-right: 0px;
219
- --moltbot-a2ui-inset-bottom: 0px;
220
- --moltbot-a2ui-inset-left: 0px;
221
- --moltbot-a2ui-scroll-pad-bottom: 0px;
222
- --moltbot-a2ui-status-top: calc(50% - 18px);
223
- --moltbot-a2ui-empty-top: 18px;
217
+ --clawdbot-a2ui-inset-top: 28px;
218
+ --clawdbot-a2ui-inset-right: 0px;
219
+ --clawdbot-a2ui-inset-bottom: 0px;
220
+ --clawdbot-a2ui-inset-left: 0px;
221
+ --clawdbot-a2ui-scroll-pad-bottom: 0px;
222
+ --clawdbot-a2ui-status-top: calc(50% - 18px);
223
+ --clawdbot-a2ui-empty-top: 18px;
224
224
  }
225
225
  </style>
226
226
  </head>
227
227
  <body>
228
- <canvas id="moltbot-canvas"></canvas>
229
- <div id="moltbot-status">
228
+ <canvas id="clawdbot-canvas"></canvas>
229
+ <div id="clawdbot-status">
230
230
  <div class="card">
231
- <div class="title" id="moltbot-status-title">Ready</div>
232
- <div class="subtitle" id="moltbot-status-subtitle">Waiting for agent</div>
231
+ <div class="title" id="clawdbot-status-title">Ready</div>
232
+ <div class="subtitle" id="clawdbot-status-subtitle">Waiting for agent</div>
233
233
  </div>
234
234
  </div>
235
- <moltbot-a2ui-host></moltbot-a2ui-host>
235
+ <clawdbot-a2ui-host></clawdbot-a2ui-host>
236
236
  <script src="a2ui.bundle.js"></script>
237
237
  <script>
238
238
  (() => {
239
- const canvas = document.getElementById("moltbot-canvas");
239
+ const canvas = document.getElementById("clawdbot-canvas");
240
240
  const ctx = canvas.getContext("2d");
241
- const statusEl = document.getElementById("moltbot-status");
242
- const titleEl = document.getElementById("moltbot-status-title");
243
- const subtitleEl = document.getElementById("moltbot-status-subtitle");
241
+ const statusEl = document.getElementById("clawdbot-status");
242
+ const titleEl = document.getElementById("clawdbot-status-title");
243
+ const subtitleEl = document.getElementById("clawdbot-status-subtitle");
244
244
  const debugStatusEnabledByQuery = (() => {
245
245
  try {
246
246
  const params = new URLSearchParams(window.location.search);
@@ -278,7 +278,7 @@
278
278
  statusEl.style.display = "none";
279
279
  }
280
280
 
281
- window.__moltbot = {
281
+ window.__clawdbot = {
282
282
  canvas,
283
283
  ctx,
284
284
  setDebugStatusEnabled,
@@ -1,11 +1,10 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
- import { LEGACY_CANVAS_HANDLER_NAME } from "../compat/legacy-names.js";
5
4
  import { detectMime } from "../media/mime.js";
6
- export const A2UI_PATH = "/__poolbot__/a2ui";
7
- export const CANVAS_HOST_PATH = "/__poolbot__/canvas";
8
- export const CANVAS_WS_PATH = "/__moltbot/ws";
5
+ export const A2UI_PATH = "/__clawdbot__/a2ui";
6
+ export const CANVAS_HOST_PATH = "/__clawdbot__/canvas";
7
+ export const CANVAS_WS_PATH = "/__clawdbot/ws";
9
8
  let cachedA2uiRootReal;
10
9
  let resolvingA2uiRoot = null;
11
10
  async function resolveA2uiRoot() {
@@ -86,30 +85,27 @@ async function resolveA2uiFilePath(rootReal, urlPath) {
86
85
  }
87
86
  }
88
87
  export function injectCanvasLiveReload(html) {
89
- const legacyHandlerName = LEGACY_CANVAS_HANDLER_NAME;
90
88
  const snippet = `
91
89
  <script>
92
90
  (() => {
93
91
  // Cross-platform action bridge helper.
94
92
  // Works on:
95
- // - iOS: window.webkit.messageHandlers.(current|legacy)CanvasA2UIAction.postMessage(...)
96
- // - Android: window.(current|legacy)CanvasA2UIAction.postMessage(...)
97
- const handlerNames = ["moltbotCanvasA2UIAction", "${legacyHandlerName}"];
93
+ // - iOS: window.webkit.messageHandlers.clawdbotCanvasA2UIAction.postMessage(...)
94
+ // - Android: window.clawdbotCanvasA2UIAction.postMessage(...)
95
+ const actionHandlerName = "clawdbotCanvasA2UIAction";
98
96
  function postToNode(payload) {
99
97
  try {
100
98
  const raw = typeof payload === "string" ? payload : JSON.stringify(payload);
101
- for (const name of handlerNames) {
102
- const iosHandler = globalThis.webkit?.messageHandlers?.[name];
103
- if (iosHandler && typeof iosHandler.postMessage === "function") {
104
- iosHandler.postMessage(raw);
105
- return true;
106
- }
107
- const androidHandler = globalThis[name];
108
- if (androidHandler && typeof androidHandler.postMessage === "function") {
109
- // Important: call as a method on the interface object (binding matters on Android WebView).
110
- androidHandler.postMessage(raw);
111
- return true;
112
- }
99
+ const iosHandler = globalThis.webkit?.messageHandlers?.[actionHandlerName];
100
+ if (iosHandler && typeof iosHandler.postMessage === "function") {
101
+ iosHandler.postMessage(raw);
102
+ return true;
103
+ }
104
+ const androidHandler = globalThis[actionHandlerName];
105
+ if (androidHandler && typeof androidHandler.postMessage === "function") {
106
+ // Important: call as a method on the interface object (binding matters on Android WebView).
107
+ androidHandler.postMessage(raw);
108
+ return true;
113
109
  }
114
110
  } catch {}
115
111
  return false;
@@ -121,11 +117,9 @@ export function injectCanvasLiveReload(html) {
121
117
  const action = { ...userAction, id };
122
118
  return postToNode({ userAction: action });
123
119
  }
124
- globalThis.Moltbot = globalThis.Moltbot ?? {};
125
- globalThis.Moltbot.postMessage = postToNode;
126
- globalThis.Moltbot.sendUserAction = sendUserAction;
127
- globalThis.moltbotPostMessage = postToNode;
128
- globalThis.moltbotSendUserAction = sendUserAction;
120
+ globalThis.Clawdbot = globalThis.Clawdbot ?? {};
121
+ globalThis.Clawdbot.postMessage = postToNode;
122
+ globalThis.Clawdbot.sendUserAction = sendUserAction;
129
123
  globalThis.clawdbotPostMessage = postToNode;
130
124
  globalThis.clawdbotSendUserAction = sendUserAction;
131
125
 
@@ -5,7 +5,6 @@ import path from "node:path";
5
5
  import chokidar from "chokidar";
6
6
  import { WebSocketServer } from "ws";
7
7
  import { isTruthyEnvValue } from "../infra/env.js";
8
- import { SafeOpenError, openFileWithinRoot } from "../infra/fs-safe.js";
9
8
  import { detectMime } from "../media/mime.js";
10
9
  import { ensureDir, resolveUserPath } from "../utils.js";
11
10
  import { CANVAS_HOST_PATH, CANVAS_WS_PATH, handleA2uiHttpRequest, injectCanvasLiveReload, } from "./a2ui.js";
@@ -13,7 +12,7 @@ function defaultIndexHTML() {
13
12
  return `<!doctype html>
14
13
  <meta charset="utf-8" />
15
14
  <meta name="viewport" content="width=device-width, initial-scale=1" />
16
- <title>Pool Bot Canvas</title>
15
+ <title>PooL Canvas</title>
17
16
  <style>
18
17
  html, body { height: 100%; margin: 0; background: #000; color: #fff; font: 16px/1.4 -apple-system, BlinkMacSystemFont, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif; }
19
18
  .wrap { min-height: 100%; display: grid; place-items: center; padding: 24px; }
@@ -31,7 +30,7 @@ function defaultIndexHTML() {
31
30
  <div class="wrap">
32
31
  <div class="card">
33
32
  <div class="title">
34
- <h1>Pool Bot Canvas</h1>
33
+ <h1>PooL Canvas</h1>
35
34
  <div class="sub">Interactive test page (auto-reload enabled)</div>
36
35
  </div>
37
36
 
@@ -52,51 +51,26 @@ function defaultIndexHTML() {
52
51
  const statusEl = document.getElementById("status");
53
52
  const log = (msg) => { logEl.textContent = String(msg); };
54
53
 
55
- const hasIOS = () =>
56
- !!(
57
- window.webkit &&
58
- window.webkit.messageHandlers &&
59
- (window.webkit.messageHandlers.moltbotCanvasA2UIAction ||
60
- window.webkit.messageHandlers.clawdbotCanvasA2UIAction)
61
- );
62
- const hasAndroid = () =>
63
- !!(
64
- (window.moltbotCanvasA2UIAction &&
65
- typeof window.moltbotCanvasA2UIAction.postMessage === "function") ||
66
- (window.clawdbotCanvasA2UIAction &&
67
- typeof window.clawdbotCanvasA2UIAction.postMessage === "function")
68
- );
69
- const legacySend = typeof window.clawdbotSendUserAction === "function" ? window.clawdbotSendUserAction : undefined;
70
- if (!window.moltbotSendUserAction && legacySend) {
71
- window.moltbotSendUserAction = legacySend;
72
- }
73
- if (!window.clawdbotSendUserAction && typeof window.moltbotSendUserAction === "function") {
74
- window.clawdbotSendUserAction = window.moltbotSendUserAction;
75
- }
76
- const hasHelper = () =>
77
- typeof window.moltbotSendUserAction === "function" ||
78
- typeof window.clawdbotSendUserAction === "function";
54
+ const hasIOS = () => !!(window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.clawdbotCanvasA2UIAction);
55
+ const hasAndroid = () => !!(window.clawdbotCanvasA2UIAction && typeof window.clawdbotCanvasA2UIAction.postMessage === "function");
56
+ const hasHelper = () => typeof window.clawdbotSendUserAction === "function";
79
57
  statusEl.innerHTML =
80
58
  "Bridge: " +
81
59
  (hasHelper() ? "<span class='ok'>ready</span>" : "<span class='bad'>missing</span>") +
82
60
  " · iOS=" + (hasIOS() ? "yes" : "no") +
83
61
  " · Android=" + (hasAndroid() ? "yes" : "no");
84
62
 
85
- window.addEventListener("moltbot:a2ui-action-status", (ev) => {
63
+ window.addEventListener("clawdbot:a2ui-action-status", (ev) => {
86
64
  const d = ev && ev.detail || {};
87
65
  log("Action status: id=" + (d.id || "?") + " ok=" + String(!!d.ok) + (d.error ? (" error=" + d.error) : ""));
88
66
  });
89
67
 
90
68
  function send(name, sourceComponentId) {
91
69
  if (!hasHelper()) {
92
- log("No action bridge found. Ensure you're viewing this on an iOS/Android Pool Bot node canvas.");
70
+ log("No action bridge found. Ensure you're viewing this on an iOS/Android PooL node canvas.");
93
71
  return;
94
72
  }
95
- const sendUserAction =
96
- typeof window.moltbotSendUserAction === "function"
97
- ? window.moltbotSendUserAction
98
- : window.clawdbotSendUserAction;
99
- const ok = sendUserAction({
73
+ const ok = window.clawdbotSendUserAction({
100
74
  name,
101
75
  surfaceId: "main",
102
76
  sourceComponentId,
@@ -123,32 +97,32 @@ async function resolveFilePath(rootReal, urlPath) {
123
97
  const rel = normalized.replace(/^\/+/, "");
124
98
  if (rel.split("/").some((p) => p === ".."))
125
99
  return null;
126
- const tryOpen = async (relative) => {
127
- try {
128
- return await openFileWithinRoot({ rootDir: rootReal, relativePath: relative });
129
- }
130
- catch (err) {
131
- if (err instanceof SafeOpenError)
132
- return null;
133
- throw err;
134
- }
135
- };
100
+ let candidate = path.join(rootReal, rel);
136
101
  if (normalized.endsWith("/")) {
137
- return await tryOpen(path.posix.join(rel, "index.html"));
102
+ candidate = path.join(candidate, "index.html");
138
103
  }
139
- const candidate = path.join(rootReal, rel);
140
104
  try {
141
- const st = await fs.lstat(candidate);
142
- if (st.isSymbolicLink())
143
- return null;
105
+ const st = await fs.stat(candidate);
144
106
  if (st.isDirectory()) {
145
- return await tryOpen(path.posix.join(rel, "index.html"));
107
+ candidate = path.join(candidate, "index.html");
146
108
  }
147
109
  }
148
110
  catch {
149
111
  // ignore
150
112
  }
151
- return await tryOpen(rel);
113
+ const rootPrefix = rootReal.endsWith(path.sep) ? rootReal : `${rootReal}${path.sep}`;
114
+ try {
115
+ const lstat = await fs.lstat(candidate);
116
+ if (lstat.isSymbolicLink())
117
+ return null;
118
+ const real = await fs.realpath(candidate);
119
+ if (!real.startsWith(rootPrefix))
120
+ return null;
121
+ return real;
122
+ }
123
+ catch {
124
+ return null;
125
+ }
152
126
  }
153
127
  function isDisabledByEnv() {
154
128
  if (isTruthyEnvValue(process.env.CLAWDBOT_SKIP_CANVAS_HOST))
@@ -288,12 +262,12 @@ export async function createCanvasHostHandler(opts) {
288
262
  res.end("Method Not Allowed");
289
263
  return true;
290
264
  }
291
- const opened = await resolveFilePath(rootReal, urlPath);
292
- if (!opened) {
265
+ const filePath = await resolveFilePath(rootReal, urlPath);
266
+ if (!filePath) {
293
267
  if (urlPath === "/" || urlPath.endsWith("/")) {
294
268
  res.statusCode = 404;
295
269
  res.setHeader("Content-Type", "text/html; charset=utf-8");
296
- res.end(`<!doctype html><meta charset="utf-8" /><title>Pool Bot Canvas</title><pre>Missing file.\nCreate ${rootDir}/index.html</pre>`);
270
+ res.end(`<!doctype html><meta charset="utf-8" /><title>PooL Canvas</title><pre>Missing file.\nCreate ${rootDir}/index.html</pre>`);
297
271
  return true;
298
272
  }
299
273
  res.statusCode = 404;
@@ -301,27 +275,19 @@ export async function createCanvasHostHandler(opts) {
301
275
  res.end("not found");
302
276
  return true;
303
277
  }
304
- const { handle, realPath } = opened;
305
- let data;
306
- try {
307
- data = await handle.readFile();
308
- }
309
- finally {
310
- await handle.close().catch(() => { });
311
- }
312
- const lower = realPath.toLowerCase();
278
+ const lower = filePath.toLowerCase();
313
279
  const mime = lower.endsWith(".html") || lower.endsWith(".htm")
314
280
  ? "text/html"
315
- : ((await detectMime({ filePath: realPath })) ?? "application/octet-stream");
281
+ : ((await detectMime({ filePath })) ?? "application/octet-stream");
316
282
  res.setHeader("Cache-Control", "no-store");
317
283
  if (mime === "text/html") {
318
- const html = data.toString("utf8");
284
+ const html = await fs.readFile(filePath, "utf8");
319
285
  res.setHeader("Content-Type", "text/html; charset=utf-8");
320
286
  res.end(liveReload ? injectCanvasLiveReload(html) : html);
321
287
  return true;
322
288
  }
323
289
  res.setHeader("Content-Type", mime);
324
- res.end(data);
290
+ res.end(await fs.readFile(filePath));
325
291
  return true;
326
292
  }
327
293
  catch (err) {
@@ -298,14 +298,10 @@ export async function tryHandleDiscordMessageActionGuildAdmin(params) {
298
298
  });
299
299
  const mediaUrl = readStringParam(actionParams, "media", { trim: false });
300
300
  const replyTo = readStringParam(actionParams, "replyTo");
301
- // `message.thread-reply` (tool) uses `threadId`, while the CLI historically used `to`/`channelId`.
302
- // Prefer `threadId` when present to avoid accidentally replying in the parent channel.
303
- const threadId = readStringParam(actionParams, "threadId");
304
- const channelId = threadId ?? resolveChannelId();
305
301
  return await handleDiscordAction({
306
302
  action: "threadReply",
307
303
  accountId: accountId ?? undefined,
308
- channelId,
304
+ channelId: resolveChannelId(),
309
305
  content,
310
306
  mediaUrl: mediaUrl ?? undefined,
311
307
  replyTo: replyTo ?? undefined,
@@ -1,4 +1,4 @@
1
- import { createActionGate, readNumberParam, readStringArrayParam, readStringOrNumberParam, readStringParam, } from "../../../agents/tools/common.js";
1
+ import { createActionGate, readStringOrNumberParam, readStringParam, } from "../../../agents/tools/common.js";
2
2
  import { handleTelegramAction } from "../../../agents/tools/telegram-actions.js";
3
3
  import { listEnabledTelegramAccounts } from "../../../telegram/accounts.js";
4
4
  import { isTelegramInlineButtonsEnabled } from "../../../telegram/inline-buttons.js";
@@ -6,14 +6,14 @@ const providerId = "telegram";
6
6
  function readTelegramSendParams(params) {
7
7
  const to = readStringParam(params, "to", { required: true });
8
8
  const mediaUrl = readStringParam(params, "media", { trim: false });
9
- const message = readStringParam(params, "message", { required: !mediaUrl, allowEmpty: true });
10
- const caption = readStringParam(params, "caption", { allowEmpty: true });
11
- const content = message || caption || "";
9
+ const content = readStringParam(params, "message", {
10
+ required: !mediaUrl,
11
+ allowEmpty: true,
12
+ }) ?? "";
12
13
  const replyTo = readStringParam(params, "replyTo");
13
14
  const threadId = readStringParam(params, "threadId");
14
15
  const buttons = params.buttons;
15
16
  const asVoice = typeof params.asVoice === "boolean" ? params.asVoice : undefined;
16
- const silent = typeof params.silent === "boolean" ? params.silent : undefined;
17
17
  return {
18
18
  to,
19
19
  content,
@@ -22,7 +22,6 @@ function readTelegramSendParams(params) {
22
22
  messageThreadId: threadId ?? undefined,
23
23
  buttons,
24
24
  asVoice,
25
- silent,
26
25
  };
27
26
  }
28
27
  export const telegramMessageActions = {
@@ -36,12 +35,6 @@ export const telegramMessageActions = {
36
35
  actions.add("react");
37
36
  if (gate("deleteMessage"))
38
37
  actions.add("delete");
39
- if (gate("editMessage"))
40
- actions.add("edit");
41
- if (gate("sticker", false)) {
42
- actions.add("sticker");
43
- actions.add("sticker-search");
44
- }
45
38
  return Array.from(actions);
46
39
  },
47
40
  supportsButtons: ({ cfg }) => {
@@ -88,59 +81,13 @@ export const telegramMessageActions = {
88
81
  const chatId = readStringOrNumberParam(params, "chatId") ??
89
82
  readStringOrNumberParam(params, "channelId") ??
90
83
  readStringParam(params, "to", { required: true });
91
- const messageId = readNumberParam(params, "messageId", {
84
+ const messageId = readStringParam(params, "messageId", {
92
85
  required: true,
93
- integer: true,
94
86
  });
95
87
  return await handleTelegramAction({
96
88
  action: "deleteMessage",
97
89
  chatId,
98
- messageId,
99
- accountId: accountId ?? undefined,
100
- }, cfg);
101
- }
102
- if (action === "edit") {
103
- const chatId = readStringOrNumberParam(params, "chatId") ??
104
- readStringOrNumberParam(params, "channelId") ??
105
- readStringParam(params, "to", { required: true });
106
- const messageId = readNumberParam(params, "messageId", {
107
- required: true,
108
- integer: true,
109
- });
110
- const message = readStringParam(params, "message", { required: true, allowEmpty: false });
111
- const buttons = params.buttons;
112
- return await handleTelegramAction({
113
- action: "editMessage",
114
- chatId,
115
- messageId,
116
- content: message,
117
- buttons,
118
- accountId: accountId ?? undefined,
119
- }, cfg);
120
- }
121
- if (action === "sticker") {
122
- const to = readStringParam(params, "to") ?? readStringParam(params, "target", { required: true });
123
- // Accept stickerId (array from shared schema) and use first element as fileId
124
- const stickerIds = readStringArrayParam(params, "stickerId");
125
- const fileId = stickerIds?.[0] ?? readStringParam(params, "fileId", { required: true });
126
- const replyToMessageId = readNumberParam(params, "replyTo", { integer: true });
127
- const messageThreadId = readNumberParam(params, "threadId", { integer: true });
128
- return await handleTelegramAction({
129
- action: "sendSticker",
130
- to,
131
- fileId,
132
- replyToMessageId: replyToMessageId ?? undefined,
133
- messageThreadId: messageThreadId ?? undefined,
134
- accountId: accountId ?? undefined,
135
- }, cfg);
136
- }
137
- if (action === "sticker-search") {
138
- const query = readStringParam(params, "query", { required: true });
139
- const limit = readNumberParam(params, "limit", { integer: true });
140
- return await handleTelegramAction({
141
- action: "searchSticker",
142
- query,
143
- limit: limit ?? undefined,
90
+ messageId: Number(messageId),
144
91
  accountId: accountId ?? undefined,
145
92
  }, cfg);
146
93
  }
@@ -1,7 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import { LEGACY_MANIFEST_KEY } from "../../compat/legacy-names.js";
4
- import { discoverPoolBotPlugins } from "../../plugins/discovery.js";
3
+ import { discoverClawdbotPlugins } from "../../plugins/discovery.js";
5
4
  import { CONFIG_DIR, resolveUserPath } from "../../utils.js";
6
5
  const ORIGIN_PRIORITY = {
7
6
  config: 0,
@@ -128,7 +127,7 @@ function resolveInstallInfo(params) {
128
127
  };
129
128
  }
130
129
  function buildCatalogEntry(candidate) {
131
- const manifest = candidate.packageMoltbot;
130
+ const manifest = candidate.packageClawdbot;
132
131
  if (!manifest?.channel)
133
132
  return null;
134
133
  const id = manifest.channel.id?.trim();
@@ -148,10 +147,9 @@ function buildCatalogEntry(candidate) {
148
147
  return { id, meta, install };
149
148
  }
150
149
  function buildExternalCatalogEntry(entry) {
151
- const manifest = entry.moltbot ?? entry[LEGACY_MANIFEST_KEY];
152
150
  return buildCatalogEntry({
153
151
  packageName: entry.name,
154
- packageMoltbot: manifest,
152
+ packageClawdbot: entry.clawdbot,
155
153
  });
156
154
  }
157
155
  export function buildChannelUiCatalog(plugins) {
@@ -180,7 +178,7 @@ export function buildChannelUiCatalog(plugins) {
180
178
  return { entries, order, labels, detailLabels, systemImages, byId };
181
179
  }
182
180
  export function listChannelPluginCatalogEntries(options = {}) {
183
- const discovery = discoverPoolBotPlugins({ workspaceDir: options.workspaceDir });
181
+ const discovery = discoverClawdbotPlugins({ workspaceDir: options.workspaceDir });
184
182
  const resolved = new Map();
185
183
  for (const candidate of discovery.candidates) {
186
184
  const entry = buildCatalogEntry(candidate);
@@ -1,4 +1,4 @@
1
- import { resolveChannelGroupRequireMention, resolveChannelGroupToolsPolicy, resolveToolsBySender, } from "../../config/group-policy.js";
1
+ import { resolveChannelGroupRequireMention, resolveChannelGroupToolsPolicy, } from "../../config/group-policy.js";
2
2
  import { resolveSlackAccount } from "../../slack/accounts.js";
3
3
  function normalizeDiscordSlug(value) {
4
4
  if (!value)
@@ -140,10 +140,6 @@ export function resolveGoogleChatGroupToolPolicy(params) {
140
140
  channel: "googlechat",
141
141
  groupId: params.groupId,
142
142
  accountId: params.accountId,
143
- senderId: params.senderId,
144
- senderName: params.senderName,
145
- senderUsername: params.senderUsername,
146
- senderE164: params.senderE164,
147
143
  });
148
144
  }
149
145
  export function resolveSlackGroupRequireMention(params) {
@@ -194,10 +190,6 @@ export function resolveTelegramGroupToolPolicy(params) {
194
190
  channel: "telegram",
195
191
  groupId: chatId ?? params.groupId,
196
192
  accountId: params.accountId,
197
- senderId: params.senderId,
198
- senderName: params.senderName,
199
- senderUsername: params.senderUsername,
200
- senderE164: params.senderE164,
201
193
  });
202
194
  }
203
195
  export function resolveWhatsAppGroupToolPolicy(params) {
@@ -206,10 +198,6 @@ export function resolveWhatsAppGroupToolPolicy(params) {
206
198
  channel: "whatsapp",
207
199
  groupId: params.groupId,
208
200
  accountId: params.accountId,
209
- senderId: params.senderId,
210
- senderName: params.senderName,
211
- senderUsername: params.senderUsername,
212
- senderE164: params.senderE164,
213
201
  });
214
202
  }
215
203
  export function resolveIMessageGroupToolPolicy(params) {
@@ -218,10 +206,6 @@ export function resolveIMessageGroupToolPolicy(params) {
218
206
  channel: "imessage",
219
207
  groupId: params.groupId,
220
208
  accountId: params.accountId,
221
- senderId: params.senderId,
222
- senderName: params.senderName,
223
- senderUsername: params.senderUsername,
224
- senderE164: params.senderE164,
225
209
  });
226
210
  }
227
211
  export function resolveDiscordGroupToolPolicy(params) {
@@ -235,27 +219,9 @@ export function resolveDiscordGroupToolPolicy(params) {
235
219
  ? (channelEntries[channelSlug] ?? channelEntries[`#${channelSlug}`])
236
220
  : undefined) ??
237
221
  (groupChannel ? channelEntries[normalizeDiscordSlug(groupChannel)] : undefined);
238
- const senderPolicy = resolveToolsBySender({
239
- toolsBySender: entry?.toolsBySender,
240
- senderId: params.senderId,
241
- senderName: params.senderName,
242
- senderUsername: params.senderUsername,
243
- senderE164: params.senderE164,
244
- });
245
- if (senderPolicy)
246
- return senderPolicy;
247
222
  if (entry?.tools)
248
223
  return entry.tools;
249
224
  }
250
- const guildSenderPolicy = resolveToolsBySender({
251
- toolsBySender: guildEntry?.toolsBySender,
252
- senderId: params.senderId,
253
- senderName: params.senderName,
254
- senderUsername: params.senderUsername,
255
- senderE164: params.senderE164,
256
- });
257
- if (guildSenderPolicy)
258
- return guildSenderPolicy;
259
225
  if (guildEntry?.tools)
260
226
  return guildEntry.tools;
261
227
  return undefined;
@@ -287,15 +253,6 @@ export function resolveSlackGroupToolPolicy(params) {
287
253
  }
288
254
  }
289
255
  const resolved = matched ?? channels["*"];
290
- const senderPolicy = resolveToolsBySender({
291
- toolsBySender: resolved?.toolsBySender,
292
- senderId: params.senderId,
293
- senderName: params.senderName,
294
- senderUsername: params.senderUsername,
295
- senderE164: params.senderE164,
296
- });
297
- if (senderPolicy)
298
- return senderPolicy;
299
256
  if (resolved?.tools)
300
257
  return resolved.tools;
301
258
  return undefined;
@@ -306,9 +263,5 @@ export function resolveBlueBubblesGroupToolPolicy(params) {
306
263
  channel: "bluebubbles",
307
264
  groupId: params.groupId,
308
265
  accountId: params.accountId,
309
- senderId: params.senderId,
310
- senderName: params.senderName,
311
- senderUsername: params.senderUsername,
312
- senderE164: params.senderE164,
313
266
  });
314
267
  }