@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 @@ import type { IncomingMessage, ServerResponse } from "node:http";
3
3
  import { EventEmitter } from "node:events";
4
4
 
5
5
  import { removeAckReactionAfterReply, shouldAckReaction } from "clawdbot/plugin-sdk";
6
- import type { MoltbotConfig, PluginRuntime } from "clawdbot/plugin-sdk";
6
+ import type { ClawdbotConfig, PluginRuntime } from "clawdbot/plugin-sdk";
7
7
  import {
8
8
  handleBlueBubblesWebhookRequest,
9
9
  registerBlueBubblesWebhookTarget,
@@ -146,14 +146,8 @@ function createMockRuntime(): PluginRuntime {
146
146
  resolveRequireMention: mockResolveRequireMention as unknown as PluginRuntime["channel"]["groups"]["resolveRequireMention"],
147
147
  },
148
148
  debounce: {
149
- // Create a pass-through debouncer that immediately calls onFlush
150
- createInboundDebouncer: vi.fn((params: { onFlush: (items: unknown[]) => Promise<void> }) => ({
151
- enqueue: async (item: unknown) => {
152
- await params.onFlush([item]);
153
- },
154
- flushKey: vi.fn(),
155
- })) as unknown as PluginRuntime["channel"]["debounce"]["createInboundDebouncer"],
156
- resolveInboundDebounceMs: vi.fn(() => 0) as unknown as PluginRuntime["channel"]["debounce"]["resolveInboundDebounceMs"],
149
+ createInboundDebouncer: vi.fn() as unknown as PluginRuntime["channel"]["debounce"]["createInboundDebouncer"],
150
+ resolveInboundDebounceMs: vi.fn() as unknown as PluginRuntime["channel"]["debounce"]["resolveInboundDebounceMs"],
157
151
  },
158
152
  commands: {
159
153
  resolveCommandAuthorizedFromAuthorizers: mockResolveCommandAuthorizedFromAuthorizers as unknown as PluginRuntime["channel"]["commands"]["resolveCommandAuthorizedFromAuthorizers"],
@@ -178,7 +172,7 @@ function createMockRuntime(): PluginRuntime {
178
172
  })) as unknown as PluginRuntime["logging"]["getChildLogger"],
179
173
  },
180
174
  state: {
181
- resolveStateDir: vi.fn(() => "/tmp/moltbot") as unknown as PluginRuntime["state"]["resolveStateDir"],
175
+ resolveStateDir: vi.fn(() => "/tmp/clawdbot") as unknown as PluginRuntime["state"]["resolveStateDir"],
182
176
  },
183
177
  };
184
178
  }
@@ -264,7 +258,7 @@ describe("BlueBubbles webhook monitor", () => {
264
258
  describe("webhook parsing + auth handling", () => {
265
259
  it("rejects non-POST requests", async () => {
266
260
  const account = createMockAccount();
267
- const config: MoltbotConfig = {};
261
+ const config: ClawdbotConfig = {};
268
262
  const core = createMockRuntime();
269
263
  setBlueBubblesRuntime(core);
270
264
 
@@ -287,7 +281,7 @@ describe("BlueBubbles webhook monitor", () => {
287
281
 
288
282
  it("accepts POST requests with valid JSON payload", async () => {
289
283
  const account = createMockAccount();
290
- const config: MoltbotConfig = {};
284
+ const config: ClawdbotConfig = {};
291
285
  const core = createMockRuntime();
292
286
  setBlueBubblesRuntime(core);
293
287
 
@@ -323,7 +317,7 @@ describe("BlueBubbles webhook monitor", () => {
323
317
 
324
318
  it("rejects requests with invalid JSON", async () => {
325
319
  const account = createMockAccount();
326
- const config: MoltbotConfig = {};
320
+ const config: ClawdbotConfig = {};
327
321
  const core = createMockRuntime();
328
322
  setBlueBubblesRuntime(core);
329
323
 
@@ -346,7 +340,7 @@ describe("BlueBubbles webhook monitor", () => {
346
340
 
347
341
  it("authenticates via password query parameter", async () => {
348
342
  const account = createMockAccount({ password: "secret-token" });
349
- const config: MoltbotConfig = {};
343
+ const config: ClawdbotConfig = {};
350
344
  const core = createMockRuntime();
351
345
  setBlueBubblesRuntime(core);
352
346
 
@@ -380,7 +374,7 @@ describe("BlueBubbles webhook monitor", () => {
380
374
 
381
375
  it("authenticates via x-password header", async () => {
382
376
  const account = createMockAccount({ password: "secret-token" });
383
- const config: MoltbotConfig = {};
377
+ const config: ClawdbotConfig = {};
384
378
  const core = createMockRuntime();
385
379
  setBlueBubblesRuntime(core);
386
380
 
@@ -418,7 +412,7 @@ describe("BlueBubbles webhook monitor", () => {
418
412
 
419
413
  it("rejects unauthorized requests with wrong password", async () => {
420
414
  const account = createMockAccount({ password: "secret-token" });
421
- const config: MoltbotConfig = {};
415
+ const config: ClawdbotConfig = {};
422
416
  const core = createMockRuntime();
423
417
  setBlueBubblesRuntime(core);
424
418
 
@@ -451,7 +445,7 @@ describe("BlueBubbles webhook monitor", () => {
451
445
 
452
446
  it("allows localhost requests without authentication", async () => {
453
447
  const account = createMockAccount({ password: "secret-token" });
454
- const config: MoltbotConfig = {};
448
+ const config: ClawdbotConfig = {};
455
449
  const core = createMockRuntime();
456
450
  setBlueBubblesRuntime(core);
457
451
 
@@ -497,7 +491,7 @@ describe("BlueBubbles webhook monitor", () => {
497
491
  vi.mocked(resolveChatGuidForTarget).mockClear();
498
492
 
499
493
  const account = createMockAccount({ groupPolicy: "open" });
500
- const config: MoltbotConfig = {};
494
+ const config: ClawdbotConfig = {};
501
495
  const core = createMockRuntime();
502
496
  setBlueBubblesRuntime(core);
503
497
 
@@ -545,7 +539,7 @@ describe("BlueBubbles webhook monitor", () => {
545
539
  });
546
540
 
547
541
  const account = createMockAccount({ groupPolicy: "open" });
548
- const config: MoltbotConfig = {};
542
+ const config: ClawdbotConfig = {};
549
543
  const core = createMockRuntime();
550
544
  setBlueBubblesRuntime(core);
551
545
 
@@ -591,7 +585,7 @@ describe("BlueBubbles webhook monitor", () => {
591
585
  dmPolicy: "allowlist",
592
586
  allowFrom: ["+15551234567"],
593
587
  });
594
- const config: MoltbotConfig = {};
588
+ const config: ClawdbotConfig = {};
595
589
  const core = createMockRuntime();
596
590
  setBlueBubblesRuntime(core);
597
591
 
@@ -632,7 +626,7 @@ describe("BlueBubbles webhook monitor", () => {
632
626
  dmPolicy: "allowlist",
633
627
  allowFrom: ["+15559999999"], // Different number
634
628
  });
635
- const config: MoltbotConfig = {};
629
+ const config: ClawdbotConfig = {};
636
630
  const core = createMockRuntime();
637
631
  setBlueBubblesRuntime(core);
638
632
 
@@ -673,7 +667,7 @@ describe("BlueBubbles webhook monitor", () => {
673
667
  dmPolicy: "pairing",
674
668
  allowFrom: ["+15559999999"], // Different number than sender
675
669
  });
676
- const config: MoltbotConfig = {};
670
+ const config: ClawdbotConfig = {};
677
671
  const core = createMockRuntime();
678
672
  setBlueBubblesRuntime(core);
679
673
 
@@ -716,7 +710,7 @@ describe("BlueBubbles webhook monitor", () => {
716
710
  dmPolicy: "pairing",
717
711
  allowFrom: ["+15559999999"], // Different number than sender
718
712
  });
719
- const config: MoltbotConfig = {};
713
+ const config: ClawdbotConfig = {};
720
714
  const core = createMockRuntime();
721
715
  setBlueBubblesRuntime(core);
722
716
 
@@ -757,7 +751,7 @@ describe("BlueBubbles webhook monitor", () => {
757
751
  dmPolicy: "open",
758
752
  allowFrom: [],
759
753
  });
760
- const config: MoltbotConfig = {};
754
+ const config: ClawdbotConfig = {};
761
755
  const core = createMockRuntime();
762
756
  setBlueBubblesRuntime(core);
763
757
 
@@ -794,7 +788,7 @@ describe("BlueBubbles webhook monitor", () => {
794
788
  const account = createMockAccount({
795
789
  dmPolicy: "disabled",
796
790
  });
797
- const config: MoltbotConfig = {};
791
+ const config: ClawdbotConfig = {};
798
792
  const core = createMockRuntime();
799
793
  setBlueBubblesRuntime(core);
800
794
 
@@ -833,7 +827,7 @@ describe("BlueBubbles webhook monitor", () => {
833
827
  const account = createMockAccount({
834
828
  groupPolicy: "open",
835
829
  });
836
- const config: MoltbotConfig = {};
830
+ const config: ClawdbotConfig = {};
837
831
  const core = createMockRuntime();
838
832
  setBlueBubblesRuntime(core);
839
833
 
@@ -871,7 +865,7 @@ describe("BlueBubbles webhook monitor", () => {
871
865
  const account = createMockAccount({
872
866
  groupPolicy: "disabled",
873
867
  });
874
- const config: MoltbotConfig = {};
868
+ const config: ClawdbotConfig = {};
875
869
  const core = createMockRuntime();
876
870
  setBlueBubblesRuntime(core);
877
871
 
@@ -910,7 +904,7 @@ describe("BlueBubbles webhook monitor", () => {
910
904
  groupPolicy: "allowlist",
911
905
  dmPolicy: "open",
912
906
  });
913
- const config: MoltbotConfig = {};
907
+ const config: ClawdbotConfig = {};
914
908
  const core = createMockRuntime();
915
909
  setBlueBubblesRuntime(core);
916
910
 
@@ -949,7 +943,7 @@ describe("BlueBubbles webhook monitor", () => {
949
943
  groupPolicy: "allowlist",
950
944
  groupAllowFrom: ["chat_guid:iMessage;+;chat123456"],
951
945
  });
952
- const config: MoltbotConfig = {};
946
+ const config: ClawdbotConfig = {};
953
947
  const core = createMockRuntime();
954
948
  setBlueBubblesRuntime(core);
955
949
 
@@ -990,7 +984,7 @@ describe("BlueBubbles webhook monitor", () => {
990
984
  mockMatchesMentionPatterns.mockReturnValue(true);
991
985
 
992
986
  const account = createMockAccount({ groupPolicy: "open" });
993
- const config: MoltbotConfig = {};
987
+ const config: ClawdbotConfig = {};
994
988
  const core = createMockRuntime();
995
989
  setBlueBubblesRuntime(core);
996
990
 
@@ -1031,7 +1025,7 @@ describe("BlueBubbles webhook monitor", () => {
1031
1025
  mockMatchesMentionPatterns.mockReturnValue(false);
1032
1026
 
1033
1027
  const account = createMockAccount({ groupPolicy: "open" });
1034
- const config: MoltbotConfig = {};
1028
+ const config: ClawdbotConfig = {};
1035
1029
  const core = createMockRuntime();
1036
1030
  setBlueBubblesRuntime(core);
1037
1031
 
@@ -1069,7 +1063,7 @@ describe("BlueBubbles webhook monitor", () => {
1069
1063
  mockResolveRequireMention.mockReturnValue(false);
1070
1064
 
1071
1065
  const account = createMockAccount({ groupPolicy: "open" });
1072
- const config: MoltbotConfig = {};
1066
+ const config: ClawdbotConfig = {};
1073
1067
  const core = createMockRuntime();
1074
1068
  setBlueBubblesRuntime(core);
1075
1069
 
@@ -1107,7 +1101,7 @@ describe("BlueBubbles webhook monitor", () => {
1107
1101
  describe("group metadata", () => {
1108
1102
  it("includes group subject + members in ctx", async () => {
1109
1103
  const account = createMockAccount({ groupPolicy: "open" });
1110
- const config: MoltbotConfig = {};
1104
+ const config: ClawdbotConfig = {};
1111
1105
  const core = createMockRuntime();
1112
1106
  setBlueBubblesRuntime(core);
1113
1107
 
@@ -1153,7 +1147,7 @@ describe("BlueBubbles webhook monitor", () => {
1153
1147
  describe("reply metadata", () => {
1154
1148
  it("surfaces reply fields in ctx when provided", async () => {
1155
1149
  const account = createMockAccount({ dmPolicy: "open" });
1156
- const config: MoltbotConfig = {};
1150
+ const config: ClawdbotConfig = {};
1157
1151
  const core = createMockRuntime();
1158
1152
  setBlueBubblesRuntime(core);
1159
1153
 
@@ -1201,7 +1195,7 @@ describe("BlueBubbles webhook monitor", () => {
1201
1195
 
1202
1196
  it("preserves part index prefixes in reply tags when short IDs are unavailable", async () => {
1203
1197
  const account = createMockAccount({ dmPolicy: "open" });
1204
- const config: MoltbotConfig = {};
1198
+ const config: ClawdbotConfig = {};
1205
1199
  const core = createMockRuntime();
1206
1200
  setBlueBubblesRuntime(core);
1207
1201
 
@@ -1246,7 +1240,7 @@ describe("BlueBubbles webhook monitor", () => {
1246
1240
 
1247
1241
  it("hydrates missing reply sender/body from the recent-message cache", async () => {
1248
1242
  const account = createMockAccount({ dmPolicy: "open", groupPolicy: "open" });
1249
- const config: MoltbotConfig = {};
1243
+ const config: ClawdbotConfig = {};
1250
1244
  const core = createMockRuntime();
1251
1245
  setBlueBubblesRuntime(core);
1252
1246
 
@@ -1316,7 +1310,7 @@ describe("BlueBubbles webhook monitor", () => {
1316
1310
 
1317
1311
  it("falls back to threadOriginatorGuid when reply metadata is absent", async () => {
1318
1312
  const account = createMockAccount({ dmPolicy: "open" });
1319
- const config: MoltbotConfig = {};
1313
+ const config: ClawdbotConfig = {};
1320
1314
  const core = createMockRuntime();
1321
1315
  setBlueBubblesRuntime(core);
1322
1316
 
@@ -1357,7 +1351,7 @@ describe("BlueBubbles webhook monitor", () => {
1357
1351
  describe("tapback text parsing", () => {
1358
1352
  it("does not rewrite tapback-like text without metadata", async () => {
1359
1353
  const account = createMockAccount({ dmPolicy: "open" });
1360
- const config: MoltbotConfig = {};
1354
+ const config: ClawdbotConfig = {};
1361
1355
  const core = createMockRuntime();
1362
1356
  setBlueBubblesRuntime(core);
1363
1357
 
@@ -1397,7 +1391,7 @@ describe("BlueBubbles webhook monitor", () => {
1397
1391
 
1398
1392
  it("parses tapback text with custom emoji when metadata is present", async () => {
1399
1393
  const account = createMockAccount({ dmPolicy: "open" });
1400
- const config: MoltbotConfig = {};
1394
+ const config: ClawdbotConfig = {};
1401
1395
  const core = createMockRuntime();
1402
1396
  setBlueBubblesRuntime(core);
1403
1397
 
@@ -1442,7 +1436,7 @@ describe("BlueBubbles webhook monitor", () => {
1442
1436
  vi.mocked(sendBlueBubblesReaction).mockClear();
1443
1437
 
1444
1438
  const account = createMockAccount({ dmPolicy: "open" });
1445
- const config: MoltbotConfig = {
1439
+ const config: ClawdbotConfig = {
1446
1440
  messages: {
1447
1441
  ackReaction: "❤️",
1448
1442
  ackReactionScope: "direct",
@@ -1500,7 +1494,7 @@ describe("BlueBubbles webhook monitor", () => {
1500
1494
  groupPolicy: "open",
1501
1495
  allowFrom: ["+15551234567"],
1502
1496
  });
1503
- const config: MoltbotConfig = {};
1497
+ const config: ClawdbotConfig = {};
1504
1498
  const core = createMockRuntime();
1505
1499
  setBlueBubblesRuntime(core);
1506
1500
 
@@ -1543,7 +1537,7 @@ describe("BlueBubbles webhook monitor", () => {
1543
1537
  groupPolicy: "open",
1544
1538
  allowFrom: [], // No one authorized
1545
1539
  });
1546
- const config: MoltbotConfig = {};
1540
+ const config: ClawdbotConfig = {};
1547
1541
  const core = createMockRuntime();
1548
1542
  setBlueBubblesRuntime(core);
1549
1543
 
@@ -1586,7 +1580,7 @@ describe("BlueBubbles webhook monitor", () => {
1586
1580
  const account = createMockAccount({
1587
1581
  sendReadReceipts: true,
1588
1582
  });
1589
- const config: MoltbotConfig = {};
1583
+ const config: ClawdbotConfig = {};
1590
1584
  const core = createMockRuntime();
1591
1585
  setBlueBubblesRuntime(core);
1592
1586
 
@@ -1627,7 +1621,7 @@ describe("BlueBubbles webhook monitor", () => {
1627
1621
  const account = createMockAccount({
1628
1622
  sendReadReceipts: false,
1629
1623
  });
1630
- const config: MoltbotConfig = {};
1624
+ const config: ClawdbotConfig = {};
1631
1625
  const core = createMockRuntime();
1632
1626
  setBlueBubblesRuntime(core);
1633
1627
 
@@ -1666,7 +1660,7 @@ describe("BlueBubbles webhook monitor", () => {
1666
1660
  vi.mocked(sendBlueBubblesTyping).mockClear();
1667
1661
 
1668
1662
  const account = createMockAccount();
1669
- const config: MoltbotConfig = {};
1663
+ const config: ClawdbotConfig = {};
1670
1664
  const core = createMockRuntime();
1671
1665
  setBlueBubblesRuntime(core);
1672
1666
 
@@ -1714,7 +1708,7 @@ describe("BlueBubbles webhook monitor", () => {
1714
1708
  vi.mocked(sendBlueBubblesTyping).mockClear();
1715
1709
 
1716
1710
  const account = createMockAccount();
1717
- const config: MoltbotConfig = {};
1711
+ const config: ClawdbotConfig = {};
1718
1712
  const core = createMockRuntime();
1719
1713
  setBlueBubblesRuntime(core);
1720
1714
 
@@ -1763,7 +1757,7 @@ describe("BlueBubbles webhook monitor", () => {
1763
1757
  vi.mocked(sendBlueBubblesTyping).mockClear();
1764
1758
 
1765
1759
  const account = createMockAccount();
1766
- const config: MoltbotConfig = {};
1760
+ const config: ClawdbotConfig = {};
1767
1761
  const core = createMockRuntime();
1768
1762
  setBlueBubblesRuntime(core);
1769
1763
 
@@ -1813,7 +1807,7 @@ describe("BlueBubbles webhook monitor", () => {
1813
1807
  });
1814
1808
 
1815
1809
  const account = createMockAccount();
1816
- const config: MoltbotConfig = {};
1810
+ const config: ClawdbotConfig = {};
1817
1811
  const core = createMockRuntime();
1818
1812
  setBlueBubblesRuntime(core);
1819
1813
 
@@ -1859,7 +1853,7 @@ describe("BlueBubbles webhook monitor", () => {
1859
1853
  mockEnqueueSystemEvent.mockClear();
1860
1854
 
1861
1855
  const account = createMockAccount();
1862
- const config: MoltbotConfig = {};
1856
+ const config: ClawdbotConfig = {};
1863
1857
  const core = createMockRuntime();
1864
1858
  setBlueBubblesRuntime(core);
1865
1859
 
@@ -1899,7 +1893,7 @@ describe("BlueBubbles webhook monitor", () => {
1899
1893
  mockEnqueueSystemEvent.mockClear();
1900
1894
 
1901
1895
  const account = createMockAccount();
1902
- const config: MoltbotConfig = {};
1896
+ const config: ClawdbotConfig = {};
1903
1897
  const core = createMockRuntime();
1904
1898
  setBlueBubblesRuntime(core);
1905
1899
 
@@ -1939,7 +1933,7 @@ describe("BlueBubbles webhook monitor", () => {
1939
1933
  mockEnqueueSystemEvent.mockClear();
1940
1934
 
1941
1935
  const account = createMockAccount();
1942
- const config: MoltbotConfig = {};
1936
+ const config: ClawdbotConfig = {};
1943
1937
  const core = createMockRuntime();
1944
1938
  setBlueBubblesRuntime(core);
1945
1939
 
@@ -1976,7 +1970,7 @@ describe("BlueBubbles webhook monitor", () => {
1976
1970
  mockEnqueueSystemEvent.mockClear();
1977
1971
 
1978
1972
  const account = createMockAccount();
1979
- const config: MoltbotConfig = {};
1973
+ const config: ClawdbotConfig = {};
1980
1974
  const core = createMockRuntime();
1981
1975
  setBlueBubblesRuntime(core);
1982
1976
 
@@ -2017,7 +2011,7 @@ describe("BlueBubbles webhook monitor", () => {
2017
2011
  describe("short message ID mapping", () => {
2018
2012
  it("assigns sequential short IDs to messages", async () => {
2019
2013
  const account = createMockAccount({ dmPolicy: "open" });
2020
- const config: MoltbotConfig = {};
2014
+ const config: ClawdbotConfig = {};
2021
2015
  const core = createMockRuntime();
2022
2016
  setBlueBubblesRuntime(core);
2023
2017
 
@@ -2057,7 +2051,7 @@ describe("BlueBubbles webhook monitor", () => {
2057
2051
 
2058
2052
  it("resolves short ID back to UUID", async () => {
2059
2053
  const account = createMockAccount({ dmPolicy: "open" });
2060
- const config: MoltbotConfig = {};
2054
+ const config: ClawdbotConfig = {};
2061
2055
  const core = createMockRuntime();
2062
2056
  setBlueBubblesRuntime(core);
2063
2057
 
@@ -2110,7 +2104,7 @@ describe("BlueBubbles webhook monitor", () => {
2110
2104
  describe("fromMe messages", () => {
2111
2105
  it("ignores messages from self (fromMe=true)", async () => {
2112
2106
  const account = createMockAccount();
2113
- const config: MoltbotConfig = {};
2107
+ const config: ClawdbotConfig = {};
2114
2108
  const core = createMockRuntime();
2115
2109
  setBlueBubblesRuntime(core);
2116
2110
 
@@ -1,6 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
2
 
3
- import type { MoltbotConfig } from "clawdbot/plugin-sdk";
3
+ import type { ClawdbotConfig } from "clawdbot/plugin-sdk";
4
4
  import {
5
5
  logAckFailure,
6
6
  logInboundDrop,
@@ -26,7 +26,7 @@ export type BlueBubblesRuntimeEnv = {
26
26
 
27
27
  export type BlueBubblesMonitorOptions = {
28
28
  account: ResolvedBlueBubblesAccount;
29
- config: MoltbotConfig;
29
+ config: ClawdbotConfig;
30
30
  runtime: BlueBubblesRuntimeEnv;
31
31
  abortSignal: AbortSignal;
32
32
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
@@ -243,185 +243,15 @@ function logGroupAllowlistHint(params: {
243
243
 
244
244
  type WebhookTarget = {
245
245
  account: ResolvedBlueBubblesAccount;
246
- config: MoltbotConfig;
246
+ config: ClawdbotConfig;
247
247
  runtime: BlueBubblesRuntimeEnv;
248
248
  core: BlueBubblesCoreRuntime;
249
249
  path: string;
250
250
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
251
251
  };
252
252
 
253
- /**
254
- * Entry type for debouncing inbound messages.
255
- * Captures the normalized message and its target for later combined processing.
256
- */
257
- type BlueBubblesDebounceEntry = {
258
- message: NormalizedWebhookMessage;
259
- target: WebhookTarget;
260
- };
261
-
262
- /**
263
- * Default debounce window for inbound message coalescing (ms).
264
- * This helps combine URL text + link preview balloon messages that BlueBubbles
265
- * sends as separate webhook events when no explicit inbound debounce config exists.
266
- */
267
- const DEFAULT_INBOUND_DEBOUNCE_MS = 350;
268
-
269
- /**
270
- * Combines multiple debounced messages into a single message for processing.
271
- * Used when multiple webhook events arrive within the debounce window.
272
- */
273
- function combineDebounceEntries(entries: BlueBubblesDebounceEntry[]): NormalizedWebhookMessage {
274
- if (entries.length === 0) {
275
- throw new Error("Cannot combine empty entries");
276
- }
277
- if (entries.length === 1) {
278
- return entries[0].message;
279
- }
280
-
281
- // Use the first message as the base (typically the text message)
282
- const first = entries[0].message;
283
-
284
- // Combine text from all entries, filtering out duplicates and empty strings
285
- const seenTexts = new Set<string>();
286
- const textParts: string[] = [];
287
-
288
- for (const entry of entries) {
289
- const text = entry.message.text.trim();
290
- if (!text) continue;
291
- // Skip duplicate text (URL might be in both text message and balloon)
292
- const normalizedText = text.toLowerCase();
293
- if (seenTexts.has(normalizedText)) continue;
294
- seenTexts.add(normalizedText);
295
- textParts.push(text);
296
- }
297
-
298
- // Merge attachments from all entries
299
- const allAttachments = entries.flatMap((e) => e.message.attachments ?? []);
300
-
301
- // Use the latest timestamp
302
- const timestamps = entries
303
- .map((e) => e.message.timestamp)
304
- .filter((t): t is number => typeof t === "number");
305
- const latestTimestamp = timestamps.length > 0 ? Math.max(...timestamps) : first.timestamp;
306
-
307
- // Collect all message IDs for reference
308
- const messageIds = entries
309
- .map((e) => e.message.messageId)
310
- .filter((id): id is string => Boolean(id));
311
-
312
- // Prefer reply context from any entry that has it
313
- const entryWithReply = entries.find((e) => e.message.replyToId);
314
-
315
- return {
316
- ...first,
317
- text: textParts.join(" "),
318
- attachments: allAttachments.length > 0 ? allAttachments : first.attachments,
319
- timestamp: latestTimestamp,
320
- // Use first message's ID as primary (for reply reference), but we've coalesced others
321
- messageId: messageIds[0] ?? first.messageId,
322
- // Preserve reply context if present
323
- replyToId: entryWithReply?.message.replyToId ?? first.replyToId,
324
- replyToBody: entryWithReply?.message.replyToBody ?? first.replyToBody,
325
- replyToSender: entryWithReply?.message.replyToSender ?? first.replyToSender,
326
- // Clear balloonBundleId since we've combined (the combined message is no longer just a balloon)
327
- balloonBundleId: undefined,
328
- };
329
- }
330
-
331
253
  const webhookTargets = new Map<string, WebhookTarget[]>();
332
254
 
333
- /**
334
- * Maps webhook targets to their inbound debouncers.
335
- * Each target gets its own debouncer keyed by a unique identifier.
336
- */
337
- const targetDebouncers = new Map<
338
- WebhookTarget,
339
- ReturnType<BlueBubblesCoreRuntime["channel"]["debounce"]["createInboundDebouncer"]>
340
- >();
341
-
342
- function resolveBlueBubblesDebounceMs(
343
- config: MoltbotConfig,
344
- core: BlueBubblesCoreRuntime,
345
- ): number {
346
- const inbound = config.messages?.inbound;
347
- const hasExplicitDebounce =
348
- typeof inbound?.debounceMs === "number" || typeof inbound?.byChannel?.bluebubbles === "number";
349
- if (!hasExplicitDebounce) return DEFAULT_INBOUND_DEBOUNCE_MS;
350
- return core.channel.debounce.resolveInboundDebounceMs({ cfg: config, channel: "bluebubbles" });
351
- }
352
-
353
- /**
354
- * Creates or retrieves a debouncer for a webhook target.
355
- */
356
- function getOrCreateDebouncer(target: WebhookTarget) {
357
- const existing = targetDebouncers.get(target);
358
- if (existing) return existing;
359
-
360
- const { account, config, runtime, core } = target;
361
-
362
- const debouncer = core.channel.debounce.createInboundDebouncer<BlueBubblesDebounceEntry>({
363
- debounceMs: resolveBlueBubblesDebounceMs(config, core),
364
- buildKey: (entry) => {
365
- const msg = entry.message;
366
- // Build key from account + chat + sender to coalesce messages from same source
367
- const chatKey =
368
- msg.chatGuid?.trim() ??
369
- msg.chatIdentifier?.trim() ??
370
- (msg.chatId ? String(msg.chatId) : "dm");
371
- return `bluebubbles:${account.accountId}:${chatKey}:${msg.senderId}`;
372
- },
373
- shouldDebounce: (entry) => {
374
- const msg = entry.message;
375
- // Skip debouncing for messages with attachments - process immediately
376
- if (msg.attachments && msg.attachments.length > 0) return false;
377
- // Skip debouncing for from-me messages (they're just cached, not processed)
378
- if (msg.fromMe) return false;
379
- // Skip debouncing for control commands - process immediately
380
- if (core.channel.text.hasControlCommand(msg.text, config)) return false;
381
- // Debounce normal text messages and URL balloon messages
382
- return true;
383
- },
384
- onFlush: async (entries) => {
385
- if (entries.length === 0) return;
386
-
387
- // Use target from first entry (all entries have same target due to key structure)
388
- const flushTarget = entries[0].target;
389
-
390
- if (entries.length === 1) {
391
- // Single message - process normally
392
- await processMessage(entries[0].message, flushTarget);
393
- return;
394
- }
395
-
396
- // Multiple messages - combine and process
397
- const combined = combineDebounceEntries(entries);
398
-
399
- if (core.logging.shouldLogVerbose()) {
400
- const count = entries.length;
401
- const preview = combined.text.slice(0, 50);
402
- runtime.log?.(
403
- `[bluebubbles] coalesced ${count} messages: "${preview}${combined.text.length > 50 ? "..." : ""}"`,
404
- );
405
- }
406
-
407
- await processMessage(combined, flushTarget);
408
- },
409
- onError: (err) => {
410
- runtime.error?.(`[${account.accountId}] [bluebubbles] debounce flush failed: ${String(err)}`);
411
- },
412
- });
413
-
414
- targetDebouncers.set(target, debouncer);
415
- return debouncer;
416
- }
417
-
418
- /**
419
- * Removes a debouncer for a target (called during unregistration).
420
- */
421
- function removeDebouncer(target: WebhookTarget): void {
422
- targetDebouncers.delete(target);
423
- }
424
-
425
255
  function normalizeWebhookPath(raw: string): string {
426
256
  const trimmed = raw.trim();
427
257
  if (!trimmed) return "/";
@@ -445,8 +275,6 @@ export function registerBlueBubblesWebhookTarget(target: WebhookTarget): () => v
445
275
  } else {
446
276
  webhookTargets.delete(key);
447
277
  }
448
- // Clean up debouncer when target is unregistered
449
- removeDebouncer(normalizedTarget);
450
278
  };
451
279
  }
452
280
 
@@ -940,7 +768,7 @@ function maskSecret(value: string): string {
940
768
  }
941
769
 
942
770
  function resolveBlueBubblesAckReaction(params: {
943
- cfg: MoltbotConfig;
771
+ cfg: ClawdbotConfig;
944
772
  agentId: string;
945
773
  core: BlueBubblesCoreRuntime;
946
774
  runtime: BlueBubblesRuntimeEnv;
@@ -1377,10 +1205,7 @@ export async function handleBlueBubblesWebhookRequest(
1377
1205
  );
1378
1206
  });
1379
1207
  } else if (message) {
1380
- // Route messages through debouncer to coalesce rapid-fire events
1381
- // (e.g., text message + URL balloon arriving as separate webhooks)
1382
- const debouncer = getOrCreateDebouncer(target);
1383
- debouncer.enqueue({ message, target }).catch((err) => {
1208
+ processMessage(message, target).catch((err) => {
1384
1209
  target.runtime.error?.(
1385
1210
  `[${target.account.accountId}] BlueBubbles webhook failed: ${String(err)}`,
1386
1211
  );