@poolzin/pool-bot 2026.1.39 → 2026.2.1

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 (511) hide show
  1. package/assets/chrome-extension/README.md +3 -3
  2. package/assets/chrome-extension/background.js +5 -5
  3. package/assets/chrome-extension/manifest.json +3 -3
  4. package/assets/chrome-extension/options.html +4 -4
  5. package/assets/chrome-extension/options.js +1 -1
  6. package/dist/acp/client.js +3 -3
  7. package/dist/acp/types.js +1 -1
  8. package/dist/agents/agent-paths.js +3 -3
  9. package/dist/agents/auth-profiles/paths.js +3 -3
  10. package/dist/agents/bash-tools.exec.js +76 -25
  11. package/dist/agents/cli-runner/helpers.js +10 -12
  12. package/dist/agents/cli-runner.js +2 -2
  13. package/dist/agents/cloudflare-ai-gateway.js +31 -0
  14. package/dist/agents/compaction.js +16 -2
  15. package/dist/agents/context-window-guard.js +13 -10
  16. package/dist/agents/context.js +4 -4
  17. package/dist/agents/docs-path.js +1 -1
  18. package/dist/agents/identity.js +47 -7
  19. package/dist/agents/memory-search.js +25 -8
  20. package/dist/agents/minimax-vlm.js +1 -1
  21. package/dist/agents/model-auth.js +12 -1
  22. package/dist/agents/model-catalog.js +4 -4
  23. package/dist/agents/model-selection.js +31 -4
  24. package/dist/agents/models-config.js +3 -3
  25. package/dist/agents/models-config.providers.js +147 -39
  26. package/dist/agents/pi-embedded-block-chunker.js +117 -42
  27. package/dist/agents/pi-embedded-helpers/errors.js +183 -78
  28. package/dist/agents/pi-embedded-helpers/openai.js +1 -1
  29. package/dist/agents/pi-embedded-helpers.js +1 -1
  30. package/dist/agents/pi-embedded-runner/compact.js +9 -8
  31. package/dist/agents/pi-embedded-runner/model.js +63 -4
  32. package/dist/agents/pi-embedded-runner/run/attempt.js +27 -17
  33. package/dist/agents/pi-embedded-runner/run.js +203 -50
  34. package/dist/agents/pi-embedded-runner/system-prompt.js +10 -2
  35. package/dist/agents/pi-embedded-runner/tool-result-truncation.js +275 -0
  36. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  37. package/dist/agents/pi-embedded-subscribe.js +118 -29
  38. package/dist/agents/pi-model-discovery.js +10 -0
  39. package/dist/agents/pi-tool-definition-adapter.js +50 -9
  40. package/dist/agents/pi-tools.before-tool-call.js +67 -0
  41. package/dist/agents/pi-tools.js +20 -10
  42. package/dist/agents/pi-tools.read.js +2 -2
  43. package/dist/agents/poolbot-tools.js +15 -10
  44. package/dist/agents/sandbox-paths.js +31 -0
  45. package/dist/agents/session-file-repair.js +83 -0
  46. package/dist/agents/session-tool-result-guard.js +94 -15
  47. package/dist/agents/session-transcript-repair.js +68 -0
  48. package/dist/agents/shell-utils.js +51 -0
  49. package/dist/agents/skills/bundled-context.js +23 -0
  50. package/dist/agents/skills/bundled-dir.js +41 -7
  51. package/dist/agents/skills/frontmatter.js +1 -1
  52. package/dist/agents/skills/workspace.js +2 -2
  53. package/dist/agents/skills-install.js +60 -23
  54. package/dist/agents/subagent-announce.js +79 -34
  55. package/dist/agents/system-prompt.js +28 -4
  56. package/dist/agents/together-models.js +127 -0
  57. package/dist/agents/tool-images.js +1 -1
  58. package/dist/agents/tool-policy.conformance.js +14 -0
  59. package/dist/agents/tool-policy.js +25 -1
  60. package/dist/agents/tools/browser-tool.js +3 -3
  61. package/dist/agents/tools/cron-tool.js +166 -19
  62. package/dist/agents/tools/discord-actions-presence.js +78 -0
  63. package/dist/agents/tools/image-tool.js +2 -2
  64. package/dist/agents/tools/memory-tool.js +93 -5
  65. package/dist/agents/tools/message-tool.js +56 -2
  66. package/dist/agents/tools/sessions-history-tool.js +69 -1
  67. package/dist/agents/tools/web-search.js +211 -42
  68. package/dist/agents/usage.js +23 -1
  69. package/dist/agents/workspace-run.js +67 -0
  70. package/dist/agents/workspace-templates.js +44 -0
  71. package/dist/auto-reply/command-auth.js +121 -6
  72. package/dist/auto-reply/commands-registry.data.js +1 -1
  73. package/dist/auto-reply/envelope.js +50 -72
  74. package/dist/auto-reply/reply/commands-compact.js +1 -0
  75. package/dist/auto-reply/reply/commands-context-report.js +3 -2
  76. package/dist/auto-reply/reply/commands-context.js +1 -0
  77. package/dist/auto-reply/reply/commands-models.js +107 -60
  78. package/dist/auto-reply/reply/commands-ptt.js +171 -0
  79. package/dist/auto-reply/reply/commands-session.js +2 -2
  80. package/dist/auto-reply/reply/get-reply-run.js +16 -5
  81. package/dist/auto-reply/reply/groups.js +1 -1
  82. package/dist/auto-reply/reply/inbound-context.js +9 -1
  83. package/dist/auto-reply/reply/inbound-meta.js +130 -0
  84. package/dist/auto-reply/reply/model-selection.js +3 -3
  85. package/dist/auto-reply/reply/untrusted-context.js +15 -0
  86. package/dist/auto-reply/status.js +1 -1
  87. package/dist/auto-reply/thinking.js +88 -43
  88. package/dist/browser/bridge-server.js +13 -0
  89. package/dist/browser/cdp.helpers.js +38 -24
  90. package/dist/browser/client-fetch.js +51 -8
  91. package/dist/browser/config.js +2 -11
  92. package/dist/browser/extension-relay.js +104 -43
  93. package/dist/browser/pw-ai.js +1 -1
  94. package/dist/browser/pw-session.js +143 -8
  95. package/dist/browser/pw-tools-core.interactions.js +125 -27
  96. package/dist/browser/pw-tools-core.responses.js +1 -1
  97. package/dist/browser/pw-tools-core.state.js +1 -1
  98. package/dist/browser/routes/agent.act.js +86 -41
  99. package/dist/browser/routes/dispatcher.js +4 -4
  100. package/dist/browser/screenshot.js +1 -1
  101. package/dist/browser/server-context.js +2 -2
  102. package/dist/browser/server.js +13 -0
  103. package/dist/build-info.json +3 -3
  104. package/dist/canvas-host/a2ui.js +3 -3
  105. package/dist/channels/plugins/catalog.js +2 -2
  106. package/dist/channels/plugins/onboarding/imessage.js +1 -1
  107. package/dist/channels/plugins/onboarding/signal.js +1 -1
  108. package/dist/channels/plugins/onboarding/slack.js +4 -4
  109. package/dist/channels/plugins/onboarding/whatsapp.js +3 -3
  110. package/dist/channels/plugins/pairing-message.js +1 -1
  111. package/dist/channels/reply-prefix.js +8 -1
  112. package/dist/cli/browser-cli-extension.js +2 -2
  113. package/dist/cli/cron-cli/register.cron-add.js +61 -40
  114. package/dist/cli/cron-cli/register.cron-edit.js +60 -34
  115. package/dist/cli/cron-cli/shared.js +56 -41
  116. package/dist/cli/dns-cli.js +26 -14
  117. package/dist/cli/docs-cli.js +1 -1
  118. package/dist/cli/gateway-cli/dev.js +1 -1
  119. package/dist/cli/gateway-cli/register.js +37 -19
  120. package/dist/cli/memory-cli.js +30 -20
  121. package/dist/cli/nodes-cli/register.canvas.js +1 -1
  122. package/dist/cli/parse-bytes.js +37 -0
  123. package/dist/cli/plugins-cli.js +1 -1
  124. package/dist/cli/run-main.js +2 -2
  125. package/dist/cli/security-cli.js +1 -1
  126. package/dist/cli/tagline.js +1 -1
  127. package/dist/cli/update-cli.js +173 -52
  128. package/dist/cli/webhooks-cli.js +5 -5
  129. package/dist/commands/agent.js +1 -0
  130. package/dist/commands/agents.commands.add.js +1 -1
  131. package/dist/commands/auth-choice.apply.api-providers.js +305 -17
  132. package/dist/commands/auth-choice.apply.js +4 -1
  133. package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
  134. package/dist/commands/auth-choice.apply.xai.js +63 -0
  135. package/dist/commands/auth-choice.preferred-provider.js +7 -1
  136. package/dist/commands/configure.wizard.js +1 -1
  137. package/dist/commands/dashboard.js +1 -1
  138. package/dist/commands/docs.js +1 -1
  139. package/dist/commands/doctor-config-flow.js +61 -5
  140. package/dist/commands/doctor-gateway-services.js +3 -3
  141. package/dist/commands/doctor-state-migrations.js +1 -1
  142. package/dist/commands/doctor-update.js +3 -3
  143. package/dist/commands/doctor.js +1 -1
  144. package/dist/commands/health.js +1 -1
  145. package/dist/commands/model-allowlist.js +29 -0
  146. package/dist/commands/model-picker.js +2 -1
  147. package/dist/commands/models/list.probe.js +2 -2
  148. package/dist/commands/models/list.registry.js +4 -4
  149. package/dist/commands/models/list.status-command.js +44 -24
  150. package/dist/commands/models/shared.js +15 -0
  151. package/dist/commands/onboard-auth.config-core.js +366 -28
  152. package/dist/commands/onboard-auth.credentials.js +71 -9
  153. package/dist/commands/onboard-auth.js +3 -3
  154. package/dist/commands/onboard-auth.models.js +26 -24
  155. package/dist/commands/onboard-custom.js +384 -0
  156. package/dist/commands/onboard-non-interactive/local/auth-choice-inference.js +35 -0
  157. package/dist/commands/onboard-non-interactive/local/auth-choice.js +146 -9
  158. package/dist/commands/onboard-skills.js +63 -38
  159. package/dist/commands/openai-model-default.js +41 -0
  160. package/dist/commands/status-all/report-lines.js +1 -1
  161. package/dist/commands/status.command.js +1 -1
  162. package/dist/commands/uninstall.js +3 -3
  163. package/dist/compat/legacy-names.js +1 -1
  164. package/dist/config/defaults.js +3 -2
  165. package/dist/config/io.js +3 -3
  166. package/dist/config/paths.js +136 -35
  167. package/dist/config/plugin-auto-enable.js +21 -5
  168. package/dist/config/redact-snapshot.js +153 -0
  169. package/dist/config/schema.field-metadata.js +590 -0
  170. package/dist/config/schema.js +3 -3
  171. package/dist/config/sessions/store.js +291 -23
  172. package/dist/config/types.memory.js +1 -0
  173. package/dist/config/version.js +4 -4
  174. package/dist/config/zod-schema.agent-defaults.js +3 -0
  175. package/dist/config/zod-schema.agent-runtime.js +13 -2
  176. package/dist/config/zod-schema.providers-core.js +142 -0
  177. package/dist/config/zod-schema.session.js +3 -0
  178. package/dist/cron/delivery.js +57 -0
  179. package/dist/cron/isolated-agent/delivery-target.js +18 -3
  180. package/dist/cron/isolated-agent/helpers.js +22 -5
  181. package/dist/cron/isolated-agent/run.js +171 -63
  182. package/dist/cron/isolated-agent/session.js +2 -0
  183. package/dist/cron/normalize.js +356 -28
  184. package/dist/cron/parse.js +10 -5
  185. package/dist/cron/run-log.js +35 -10
  186. package/dist/cron/schedule.js +41 -6
  187. package/dist/cron/service/jobs.js +208 -35
  188. package/dist/cron/service/ops.js +72 -16
  189. package/dist/cron/service/state.js +2 -0
  190. package/dist/cron/service/store.js +386 -14
  191. package/dist/cron/service/timer.js +390 -147
  192. package/dist/cron/session-reaper.js +86 -0
  193. package/dist/cron/store.js +23 -8
  194. package/dist/cron/validate-timestamp.js +43 -0
  195. package/dist/daemon/constants.js +7 -7
  196. package/dist/daemon/inspect.js +6 -6
  197. package/dist/daemon/systemd-unit.js +1 -1
  198. package/dist/discord/monitor/agent-components.js +438 -0
  199. package/dist/discord/monitor/allow-list.js +28 -5
  200. package/dist/discord/monitor/gateway-registry.js +29 -0
  201. package/dist/discord/monitor/native-command.js +44 -23
  202. package/dist/discord/monitor/sender-identity.js +45 -0
  203. package/dist/discord/pluralkit.js +27 -0
  204. package/dist/discord/send.outbound.js +92 -5
  205. package/dist/discord/send.shared.js +60 -23
  206. package/dist/discord/targets.js +84 -1
  207. package/dist/entry.js +15 -9
  208. package/dist/extensionAPI.js +8 -0
  209. package/dist/gateway/control-ui.js +8 -1
  210. package/dist/gateway/hooks-mapping.js +3 -0
  211. package/dist/gateway/hooks.js +65 -0
  212. package/dist/gateway/live-image-probe.js +1 -66
  213. package/dist/gateway/net.js +96 -31
  214. package/dist/gateway/node-command-policy.js +50 -15
  215. package/dist/gateway/openai-http.js +2 -2
  216. package/dist/gateway/openresponses-http.js +4 -4
  217. package/dist/gateway/origin-check.js +56 -0
  218. package/dist/gateway/protocol/client-info.js +9 -0
  219. package/dist/gateway/protocol/index.js +9 -2
  220. package/dist/gateway/protocol/schema/agents-models-skills.js +71 -1
  221. package/dist/gateway/protocol/schema/cron.js +22 -10
  222. package/dist/gateway/protocol/schema/protocol-schemas.js +16 -2
  223. package/dist/gateway/protocol/schema/sessions.js +12 -0
  224. package/dist/gateway/server/hooks.js +1 -1
  225. package/dist/gateway/server-broadcast.js +26 -9
  226. package/dist/gateway/server-chat.js +112 -23
  227. package/dist/gateway/server-discovery-runtime.js +10 -2
  228. package/dist/gateway/server-discovery.js +2 -2
  229. package/dist/gateway/server-http.js +110 -12
  230. package/dist/gateway/server-methods/agent-timestamp.js +60 -0
  231. package/dist/gateway/server-methods/agents.js +321 -2
  232. package/dist/gateway/server-methods/usage.js +559 -16
  233. package/dist/gateway/server-runtime-state.js +22 -8
  234. package/dist/gateway/server-startup-memory.js +16 -0
  235. package/dist/gateway/server.impl.js +7 -3
  236. package/dist/gateway/session-utils.fs.js +23 -25
  237. package/dist/gateway/session-utils.js +20 -10
  238. package/dist/gateway/sessions-patch.js +7 -22
  239. package/dist/gateway/test-helpers.server.js +35 -2
  240. package/dist/hooks/frontmatter.js +1 -1
  241. package/dist/hooks/hooks-status.js +1 -1
  242. package/dist/hooks/install.js +2 -2
  243. package/dist/hooks/loader.js +1 -1
  244. package/dist/hooks/workspace.js +3 -3
  245. package/dist/imessage/constants.js +2 -0
  246. package/dist/imessage/monitor/deliver.js +4 -1
  247. package/dist/imessage/monitor/monitor-provider.js +51 -1
  248. package/dist/index.js +2 -2
  249. package/dist/infra/bonjour-discovery.js +131 -70
  250. package/dist/infra/bonjour.js +3 -3
  251. package/dist/infra/control-ui-assets.js +134 -12
  252. package/dist/infra/errors.js +12 -0
  253. package/dist/infra/exec-approvals.js +266 -57
  254. package/dist/infra/format-time/format-datetime.js +79 -0
  255. package/dist/infra/format-time/format-duration.js +81 -0
  256. package/dist/infra/format-time/format-relative.js +80 -0
  257. package/dist/infra/heartbeat-runner.js +140 -49
  258. package/dist/infra/home-dir.js +54 -0
  259. package/dist/infra/net/fetch-guard.js +122 -0
  260. package/dist/infra/net/ssrf.js +65 -29
  261. package/dist/infra/outbound/abort.js +14 -0
  262. package/dist/infra/outbound/message-action-runner.js +77 -13
  263. package/dist/infra/outbound/outbound-session.js +143 -37
  264. package/dist/infra/path-env.js +3 -3
  265. package/dist/infra/poolbot-root.js +43 -1
  266. package/dist/infra/provider-usage.fetch.minimax.js +1 -1
  267. package/dist/infra/restart.js +1 -1
  268. package/dist/infra/session-cost-usage.js +631 -41
  269. package/dist/infra/state-migrations.js +317 -47
  270. package/dist/infra/tailscale.js +1 -1
  271. package/dist/infra/update-global.js +35 -0
  272. package/dist/infra/update-runner.js +149 -43
  273. package/dist/infra/warning-filter.js +65 -0
  274. package/dist/infra/widearea-dns.js +30 -9
  275. package/dist/logging/redact-identifier.js +12 -0
  276. package/dist/macos/relay.js +2 -2
  277. package/dist/media/fetch.js +81 -58
  278. package/dist/media/input-files.js +1 -1
  279. package/dist/media/mime.js +4 -0
  280. package/dist/media/png-encode.js +74 -0
  281. package/dist/media-understanding/apply.js +403 -3
  282. package/dist/media-understanding/attachments.js +38 -27
  283. package/dist/media-understanding/defaults.js +16 -0
  284. package/dist/media-understanding/providers/deepgram/audio.js +22 -14
  285. package/dist/media-understanding/providers/google/audio.js +24 -17
  286. package/dist/media-understanding/providers/google/video.js +24 -17
  287. package/dist/media-understanding/providers/image.js +4 -4
  288. package/dist/media-understanding/providers/index.js +4 -1
  289. package/dist/media-understanding/providers/openai/audio.js +22 -14
  290. package/dist/media-understanding/providers/shared.js +16 -11
  291. package/dist/media-understanding/providers/zai/index.js +6 -0
  292. package/dist/media-understanding/runner.js +158 -90
  293. package/dist/memory/backend-config.js +207 -0
  294. package/dist/memory/batch-voyage.js +277 -0
  295. package/dist/memory/embeddings-voyage.js +75 -0
  296. package/dist/memory/embeddings.js +29 -17
  297. package/dist/memory/internal.js +101 -18
  298. package/dist/memory/manager.js +155 -48
  299. package/dist/memory/search-manager.js +173 -0
  300. package/dist/memory/session-files.js +9 -3
  301. package/dist/memory/types.js +1 -0
  302. package/dist/node-host/runner.js +36 -26
  303. package/dist/node-host/with-timeout.js +27 -0
  304. package/dist/pairing/pairing-messages.js +1 -1
  305. package/dist/plugins/commands.js +5 -1
  306. package/dist/plugins/config-state.js +86 -7
  307. package/dist/plugins/discovery.js +1 -1
  308. package/dist/plugins/install.js +2 -2
  309. package/dist/plugins/source-display.js +51 -0
  310. package/dist/plugins/update.js +1 -1
  311. package/dist/process/exec.js +20 -2
  312. package/dist/routing/resolve-route.js +12 -0
  313. package/dist/routing/session-key.js +15 -0
  314. package/dist/runtime.js +2 -0
  315. package/dist/security/audit-extra.async.js +601 -0
  316. package/dist/security/audit-extra.js +2 -830
  317. package/dist/security/audit-extra.sync.js +505 -0
  318. package/dist/security/audit.js +2 -2
  319. package/dist/security/channel-metadata.js +34 -0
  320. package/dist/security/external-content.js +88 -6
  321. package/dist/security/skill-scanner.js +330 -0
  322. package/dist/sessions/session-key-utils.js +7 -0
  323. package/dist/shared/text/reasoning-tags.js +52 -7
  324. package/dist/signal/monitor/event-handler.js +80 -1
  325. package/dist/slack/monitor/media.js +85 -15
  326. package/dist/tailscale/detect.js +145 -0
  327. package/dist/telegram/bot/helpers.js +109 -28
  328. package/dist/telegram/bot-handlers.js +144 -3
  329. package/dist/telegram/bot-message-context.js +38 -11
  330. package/dist/telegram/bot-message-dispatch.js +48 -15
  331. package/dist/telegram/bot-native-commands.js +86 -29
  332. package/dist/telegram/bot.js +30 -29
  333. package/dist/telegram/model-buttons.js +163 -0
  334. package/dist/telegram/monitor.js +110 -85
  335. package/dist/telegram/send.js +129 -47
  336. package/dist/terminal/restore.js +45 -0
  337. package/dist/test-helpers/state-dir-env.js +16 -0
  338. package/dist/test-helpers/workspace.js +11 -0
  339. package/dist/test-utils/channel-plugins.js +82 -0
  340. package/dist/test-utils/ports.js +73 -0
  341. package/dist/tts/tts.js +12 -6
  342. package/dist/tui/tui-session-actions.js +166 -54
  343. package/dist/utils/fetch-timeout.js +20 -0
  344. package/dist/utils/normalize-secret-input.js +19 -0
  345. package/dist/utils/shell-argv.js +61 -0
  346. package/dist/utils/transcript-tools.js +58 -0
  347. package/dist/utils.js +55 -14
  348. package/dist/version.js +42 -5
  349. package/dist/web/qr-image.js +1 -61
  350. package/dist/wizard/onboarding.finalize.js +7 -7
  351. package/dist/wizard/onboarding.js +3 -3
  352. package/docs/RELEASE_WORKFOTS_COMPARISON.md +3 -3
  353. package/docs/_config.yml +2 -2
  354. package/docs/_layouts/default.html +9 -9
  355. package/docs/concepts/typebox.md +1 -1
  356. package/docs/docs.json +1 -1
  357. package/docs/northflank.mdx +7 -7
  358. package/docs/railway.mdx +3 -3
  359. package/docs/render.mdx +5 -5
  360. package/docs/start/lore.md +2 -2
  361. package/extensions/bluebubbles/index.ts +2 -2
  362. package/extensions/bluebubbles/package.json +1 -1
  363. package/extensions/bluebubbles/src/accounts.ts +8 -8
  364. package/extensions/bluebubbles/src/actions.test.ts +22 -22
  365. package/extensions/bluebubbles/src/actions.ts +5 -5
  366. package/extensions/bluebubbles/src/attachments.ts +2 -2
  367. package/extensions/bluebubbles/src/channel.ts +16 -16
  368. package/extensions/bluebubbles/src/chat.ts +2 -2
  369. package/extensions/bluebubbles/src/media-send.ts +2 -2
  370. package/extensions/bluebubbles/src/monitor.test.ts +46 -46
  371. package/extensions/bluebubbles/src/monitor.ts +5 -5
  372. package/extensions/bluebubbles/src/onboarding.ts +7 -7
  373. package/extensions/bluebubbles/src/reactions.ts +2 -2
  374. package/extensions/bluebubbles/src/send.ts +2 -2
  375. package/extensions/copilot-proxy/README.md +1 -1
  376. package/extensions/copilot-proxy/package.json +1 -1
  377. package/extensions/diagnostics-otel/index.ts +2 -2
  378. package/extensions/diagnostics-otel/package.json +1 -1
  379. package/extensions/diagnostics-otel/src/service.ts +3 -3
  380. package/extensions/discord/index.ts +2 -2
  381. package/extensions/discord/package.json +1 -1
  382. package/extensions/google-antigravity-auth/README.md +1 -1
  383. package/extensions/google-antigravity-auth/index.ts +1 -1
  384. package/extensions/google-antigravity-auth/package.json +1 -1
  385. package/extensions/google-gemini-cli-auth/README.md +1 -1
  386. package/extensions/google-gemini-cli-auth/oauth.ts +1 -1
  387. package/extensions/google-gemini-cli-auth/package.json +1 -1
  388. package/extensions/googlechat/index.ts +3 -3
  389. package/extensions/googlechat/package.json +1 -1
  390. package/extensions/googlechat/src/accounts.ts +8 -8
  391. package/extensions/googlechat/src/actions.ts +6 -6
  392. package/extensions/googlechat/src/channel.ts +21 -21
  393. package/extensions/googlechat/src/monitor.ts +8 -8
  394. package/extensions/googlechat/src/onboarding.ts +10 -10
  395. package/extensions/imessage/index.ts +2 -2
  396. package/extensions/imessage/package.json +1 -1
  397. package/extensions/line/index.ts +2 -2
  398. package/extensions/line/package.json +1 -1
  399. package/extensions/line/src/card-command.ts +2 -2
  400. package/extensions/line/src/channel.logout.test.ts +4 -4
  401. package/extensions/line/src/channel.sendPayload.test.ts +8 -8
  402. package/extensions/line/src/channel.ts +3 -3
  403. package/extensions/llm-task/README.md +3 -3
  404. package/extensions/llm-task/index.ts +2 -2
  405. package/extensions/llm-task/package.json +1 -1
  406. package/extensions/llm-task/src/llm-task-tool.ts +4 -4
  407. package/extensions/lobster/README.md +6 -6
  408. package/extensions/lobster/index.ts +2 -2
  409. package/extensions/lobster/src/lobster-tool.test.ts +4 -4
  410. package/extensions/lobster/src/lobster-tool.ts +2 -2
  411. package/extensions/matrix/index.ts +2 -2
  412. package/extensions/matrix/package.json +1 -1
  413. package/extensions/matrix/src/matrix/client/config.ts +1 -1
  414. package/extensions/matrix/src/matrix/monitor/handler.ts +1 -1
  415. package/extensions/matrix/src/onboarding.ts +1 -1
  416. package/extensions/mattermost/index.ts +2 -2
  417. package/extensions/mattermost/package.json +1 -1
  418. package/extensions/mattermost/src/mattermost/accounts.ts +8 -8
  419. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
  420. package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
  421. package/extensions/mattermost/src/onboarding-helpers.ts +3 -3
  422. package/extensions/mattermost/src/onboarding.ts +2 -2
  423. package/extensions/memory-core/index.ts +2 -2
  424. package/extensions/memory-core/package.json +1 -1
  425. package/extensions/memory-lancedb/index.ts +3 -3
  426. package/extensions/memory-lancedb/package.json +1 -1
  427. package/extensions/msteams/index.ts +2 -2
  428. package/extensions/msteams/package.json +1 -1
  429. package/extensions/msteams/src/channel.directory.test.ts +2 -2
  430. package/extensions/msteams/src/channel.ts +2 -2
  431. package/extensions/msteams/src/graph-upload.ts +4 -4
  432. package/extensions/msteams/src/monitor-handler.ts +2 -2
  433. package/extensions/msteams/src/monitor.ts +2 -2
  434. package/extensions/msteams/src/onboarding.ts +9 -9
  435. package/extensions/msteams/src/reply-dispatcher.ts +2 -2
  436. package/extensions/msteams/src/send-context.ts +2 -2
  437. package/extensions/msteams/src/send.ts +4 -4
  438. package/extensions/nextcloud-talk/index.ts +2 -2
  439. package/extensions/nextcloud-talk/package.json +1 -1
  440. package/extensions/nextcloud-talk/src/channel.ts +7 -7
  441. package/extensions/nextcloud-talk/src/inbound.ts +7 -7
  442. package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
  443. package/extensions/nostr/README.md +2 -2
  444. package/extensions/nostr/index.ts +5 -5
  445. package/extensions/nostr/package.json +1 -1
  446. package/extensions/nostr/src/types.ts +4 -4
  447. package/extensions/open-prose/index.ts +2 -2
  448. package/extensions/qwen-portal-auth/README.md +1 -1
  449. package/extensions/signal/index.ts +2 -2
  450. package/extensions/signal/package.json +1 -1
  451. package/extensions/slack/index.ts +2 -2
  452. package/extensions/slack/package.json +1 -1
  453. package/extensions/telegram/index.ts +2 -2
  454. package/extensions/telegram/package.json +1 -1
  455. package/extensions/telegram/src/channel.ts +2 -2
  456. package/extensions/tlon/README.md +2 -2
  457. package/extensions/tlon/index.ts +2 -2
  458. package/extensions/tlon/package.json +1 -1
  459. package/extensions/tlon/src/channel.ts +13 -13
  460. package/extensions/tlon/src/monitor/index.ts +3 -3
  461. package/extensions/tlon/src/onboarding.ts +3 -3
  462. package/extensions/tlon/src/types.ts +3 -3
  463. package/extensions/twitch/README.md +1 -1
  464. package/extensions/twitch/index.ts +2 -2
  465. package/extensions/twitch/package.json +1 -1
  466. package/extensions/twitch/src/config.ts +3 -3
  467. package/extensions/twitch/src/monitor.ts +3 -3
  468. package/extensions/twitch/src/onboarding.ts +9 -9
  469. package/extensions/twitch/src/outbound.test.ts +2 -2
  470. package/extensions/twitch/src/plugin.test.ts +2 -2
  471. package/extensions/twitch/src/plugin.ts +8 -8
  472. package/extensions/twitch/src/send.test.ts +2 -2
  473. package/extensions/twitch/src/send.ts +4 -4
  474. package/extensions/twitch/src/token.test.ts +8 -8
  475. package/extensions/twitch/src/token.ts +3 -3
  476. package/extensions/twitch/src/twitch-client.ts +3 -3
  477. package/extensions/twitch/src/types.ts +3 -3
  478. package/extensions/twitch/src/utils/markdown.ts +1 -1
  479. package/extensions/voice-call/README.md +3 -3
  480. package/extensions/voice-call/package.json +1 -1
  481. package/extensions/voice-call/src/core-bridge.ts +2 -2
  482. package/extensions/voice-call/src/response-generator.ts +1 -1
  483. package/extensions/whatsapp/index.ts +2 -2
  484. package/extensions/whatsapp/package.json +1 -1
  485. package/extensions/zalo/README.md +1 -1
  486. package/extensions/zalo/index.ts +2 -2
  487. package/extensions/zalo/package.json +1 -1
  488. package/extensions/zalo/src/accounts.ts +8 -8
  489. package/extensions/zalo/src/actions.ts +4 -4
  490. package/extensions/zalo/src/channel.directory.test.ts +2 -2
  491. package/extensions/zalo/src/channel.ts +18 -18
  492. package/extensions/zalo/src/monitor.ts +9 -9
  493. package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
  494. package/extensions/zalo/src/onboarding.ts +24 -24
  495. package/extensions/zalo/src/send.ts +2 -2
  496. package/extensions/zalouser/README.md +2 -2
  497. package/extensions/zalouser/index.ts +2 -2
  498. package/extensions/zalouser/package.json +1 -1
  499. package/extensions/zalouser/src/accounts.ts +9 -9
  500. package/extensions/zalouser/src/channel.ts +24 -24
  501. package/extensions/zalouser/src/monitor.ts +4 -4
  502. package/extensions/zalouser/src/onboarding.ts +28 -28
  503. package/package.json +13 -251
  504. package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
  505. package/skills/tmux/scripts/find-sessions.sh +1 -1
  506. package/CHANGELOG.md +0 -102
  507. package/README-header.png +0 -0
  508. package/git-hooks/pre-commit +0 -4
  509. package/scripts/format-staged.js +0 -148
  510. package/scripts/postinstall.js +0 -300
  511. package/scripts/setup-git-hooks.js +0 -96
@@ -1,4 +1,4 @@
1
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
1
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
2
2
  import type { TwitchAccountConfig } from "./types.js";
3
3
 
4
4
  /**
@@ -24,7 +24,7 @@ export function getAccountConfig(
24
24
  return null;
25
25
  }
26
26
 
27
- const cfg = coreConfig as MoltbotConfig;
27
+ const cfg = coreConfig as PoolbotConfig;
28
28
  const twitch = cfg.channels?.twitch;
29
29
  // Access accounts via unknown to handle union type (single-account vs multi-account)
30
30
  const twitchRaw = twitch as Record<string, unknown> | undefined;
@@ -88,7 +88,7 @@ export function getAccountConfig(
88
88
  *
89
89
  * Includes both explicit accounts and implicit "default" from base-level config
90
90
  */
91
- export function listAccountIds(cfg: MoltbotConfig): string[] {
91
+ export function listAccountIds(cfg: PoolbotConfig): string[] {
92
92
  const twitch = cfg.channels?.twitch;
93
93
  // Access accounts via unknown to handle union type (single-account vs multi-account)
94
94
  const twitchRaw = twitch as Record<string, unknown> | undefined;
@@ -5,7 +5,7 @@
5
5
  * resolves agent routes, and handles replies.
6
6
  */
7
7
 
8
- import type { ReplyPayload, MoltbotConfig } from "poolbot/plugin-sdk";
8
+ import type { ReplyPayload, PoolbotConfig } from "poolbot/plugin-sdk";
9
9
  import type { TwitchAccountConfig, TwitchChatMessage } from "./types.js";
10
10
  import { checkTwitchAccessControl } from "./access-control.js";
11
11
  import { getTwitchRuntime } from "./runtime.js";
@@ -20,7 +20,7 @@ export type TwitchRuntimeEnv = {
20
20
  export type TwitchMonitorOptions = {
21
21
  account: TwitchAccountConfig;
22
22
  accountId: string;
23
- config: unknown; // MoltbotConfig
23
+ config: unknown; // PoolbotConfig
24
24
  runtime: TwitchRuntimeEnv;
25
25
  abortSignal: AbortSignal;
26
26
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
@@ -45,7 +45,7 @@ async function processTwitchMessage(params: {
45
45
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
46
46
  }): Promise<void> {
47
47
  const { message, account, accountId, config, runtime, core, statusSink } = params;
48
- const cfg = config as MoltbotConfig;
48
+ const cfg = config as PoolbotConfig;
49
49
 
50
50
  const route = core.channel.routing.resolveAgentRoute({
51
51
  cfg,
@@ -12,7 +12,7 @@ import {
12
12
  import { DEFAULT_ACCOUNT_ID, getAccountConfig } from "./config.js";
13
13
  import { isAccountConfigured } from "./utils/twitch.js";
14
14
  import type { TwitchAccountConfig, TwitchRole } from "./types.js";
15
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
15
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
16
16
 
17
17
  const channel = "twitch" as const;
18
18
 
@@ -20,9 +20,9 @@ const channel = "twitch" as const;
20
20
  * Set Twitch account configuration
21
21
  */
22
22
  function setTwitchAccount(
23
- cfg: MoltbotConfig,
23
+ cfg: PoolbotConfig,
24
24
  account: Partial<TwitchAccountConfig>,
25
- ): MoltbotConfig {
25
+ ): PoolbotConfig {
26
26
  const existing = getAccountConfig(cfg, DEFAULT_ACCOUNT_ID);
27
27
  const merged: TwitchAccountConfig = {
28
28
  username: account.username ?? existing?.username ?? "",
@@ -205,13 +205,13 @@ async function promptRefreshTokenSetup(
205
205
  * Configure with env token path (returns early if user chooses env token).
206
206
  */
207
207
  async function configureWithEnvToken(
208
- cfg: MoltbotConfig,
208
+ cfg: PoolbotConfig,
209
209
  prompter: WizardPrompter,
210
210
  account: TwitchAccountConfig | null,
211
211
  envToken: string,
212
212
  forceAllowFrom: boolean,
213
213
  dmPolicy: ChannelOnboardingDmPolicy,
214
- ): Promise<{ cfg: MoltbotConfig } | null> {
214
+ ): Promise<{ cfg: PoolbotConfig } | null> {
215
215
  const useEnv = await prompter.confirm({
216
216
  message: "Twitch env var CLAWDBOT_TWITCH_ACCESS_TOKEN detected. Use env token?",
217
217
  initialValue: true,
@@ -241,10 +241,10 @@ async function configureWithEnvToken(
241
241
  * Set Twitch access control (role-based)
242
242
  */
243
243
  function setTwitchAccessControl(
244
- cfg: MoltbotConfig,
244
+ cfg: PoolbotConfig,
245
245
  allowedRoles: TwitchRole[],
246
246
  requireMention: boolean,
247
- ): MoltbotConfig {
247
+ ): PoolbotConfig {
248
248
  const account = getAccountConfig(cfg, DEFAULT_ACCOUNT_ID);
249
249
  if (!account) {
250
250
  return cfg;
@@ -272,7 +272,7 @@ const dmPolicy: ChannelOnboardingDmPolicy = {
272
272
  setPolicy: (cfg, policy) => {
273
273
  const allowedRoles: TwitchRole[] =
274
274
  policy === "open" ? ["all"] : policy === "allowlist" ? [] : ["moderator"];
275
- return setTwitchAccessControl(cfg as MoltbotConfig, allowedRoles, true);
275
+ return setTwitchAccessControl(cfg as PoolbotConfig, allowedRoles, true);
276
276
  },
277
277
  promptAllowFrom: async ({ cfg, prompter }) => {
278
278
  const account = getAccountConfig(cfg, DEFAULT_ACCOUNT_ID);
@@ -289,7 +289,7 @@ const dmPolicy: ChannelOnboardingDmPolicy = {
289
289
  .map((s) => s.trim())
290
290
  .filter(Boolean);
291
291
 
292
- return setTwitchAccount(cfg as MoltbotConfig, {
292
+ return setTwitchAccount(cfg as PoolbotConfig, {
293
293
  ...(account ?? undefined),
294
294
  allowFrom,
295
295
  });
@@ -11,7 +11,7 @@
11
11
 
12
12
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
13
13
  import { twitchOutbound } from "./outbound.js";
14
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
14
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
15
15
 
16
16
  // Mock dependencies
17
17
  vi.mock("./config.js", () => ({
@@ -49,7 +49,7 @@ describe("outbound", () => {
49
49
  },
50
50
  },
51
51
  },
52
- } as unknown as MoltbotConfig;
52
+ } as unknown as PoolbotConfig;
53
53
 
54
54
  beforeEach(() => {
55
55
  vi.clearAllMocks();
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
2
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
3
3
  import { twitchPlugin } from "./plugin.js";
4
4
 
5
5
  describe("twitchPlugin.status.buildAccountSnapshot", () => {
@@ -27,7 +27,7 @@ describe("twitchPlugin.status.buildAccountSnapshot", () => {
27
27
  },
28
28
  },
29
29
  },
30
- } as MoltbotConfig;
30
+ } as PoolbotConfig;
31
31
 
32
32
  const snapshot = await twitchPlugin.status?.buildAccountSnapshot?.({
33
33
  account: secondary,
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Twitch channel plugin for Moltbot.
2
+ * Twitch channel plugin for Poolbot.
3
3
  *
4
4
  * Main plugin export combining all adapters (outbound, actions, status, gateway).
5
5
  * This is the primary entry point for the Twitch channel integration.
6
6
  */
7
7
 
8
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
8
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
9
9
  import { buildChannelConfigSchema } from "poolbot/plugin-sdk";
10
10
  import { twitchMessageActions } from "./actions.js";
11
11
  import { TwitchConfigSchema } from "./config-schema.js";
@@ -33,7 +33,7 @@ import type {
33
33
  * Twitch channel plugin.
34
34
  *
35
35
  * Implements the ChannelPlugin interface to provide Twitch chat integration
36
- * for Moltbot. Supports message sending, receiving, access control, and
36
+ * for Poolbot. Supports message sending, receiving, access control, and
37
37
  * status monitoring.
38
38
  */
39
39
  export const twitchPlugin: ChannelPlugin<TwitchAccountConfig> = {
@@ -75,10 +75,10 @@ export const twitchPlugin: ChannelPlugin<TwitchAccountConfig> = {
75
75
  /** Account configuration management */
76
76
  config: {
77
77
  /** List all configured account IDs */
78
- listAccountIds: (cfg: MoltbotConfig): string[] => listAccountIds(cfg),
78
+ listAccountIds: (cfg: PoolbotConfig): string[] => listAccountIds(cfg),
79
79
 
80
80
  /** Resolve an account config by ID */
81
- resolveAccount: (cfg: MoltbotConfig, accountId?: string | null): TwitchAccountConfig => {
81
+ resolveAccount: (cfg: PoolbotConfig, accountId?: string | null): TwitchAccountConfig => {
82
82
  const account = getAccountConfig(cfg, accountId ?? DEFAULT_ACCOUNT_ID);
83
83
  if (!account) {
84
84
  // Return a default/empty account if not configured
@@ -96,7 +96,7 @@ export const twitchPlugin: ChannelPlugin<TwitchAccountConfig> = {
96
96
  defaultAccountId: (): string => DEFAULT_ACCOUNT_ID,
97
97
 
98
98
  /** Check if an account is configured */
99
- isConfigured: (_account: unknown, cfg: MoltbotConfig): boolean => {
99
+ isConfigured: (_account: unknown, cfg: PoolbotConfig): boolean => {
100
100
  const account = getAccountConfig(cfg, DEFAULT_ACCOUNT_ID);
101
101
  const tokenResolution = resolveTwitchToken(cfg, { accountId: DEFAULT_ACCOUNT_ID });
102
102
  return account ? isAccountConfigured(account, tokenResolution.token) : false;
@@ -130,7 +130,7 @@ export const twitchPlugin: ChannelPlugin<TwitchAccountConfig> = {
130
130
  kind,
131
131
  runtime,
132
132
  }: {
133
- cfg: MoltbotConfig;
133
+ cfg: PoolbotConfig;
134
134
  accountId?: string | null;
135
135
  inputs: string[];
136
136
  kind: ChannelResolveKind;
@@ -198,7 +198,7 @@ export const twitchPlugin: ChannelPlugin<TwitchAccountConfig> = {
198
198
  probe,
199
199
  }: {
200
200
  account: TwitchAccountConfig;
201
- cfg: MoltbotConfig;
201
+ cfg: PoolbotConfig;
202
202
  runtime?: ChannelAccountSnapshot;
203
203
  probe?: unknown;
204
204
  }): ChannelAccountSnapshot => {
@@ -12,7 +12,7 @@
12
12
 
13
13
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
14
14
  import { sendMessageTwitchInternal } from "./send.js";
15
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
15
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
16
16
 
17
17
  // Mock dependencies
18
18
  vi.mock("./config.js", () => ({
@@ -57,7 +57,7 @@ describe("send", () => {
57
57
  },
58
58
  },
59
59
  },
60
- } as unknown as MoltbotConfig;
60
+ } as unknown as PoolbotConfig;
61
61
 
62
62
  beforeEach(() => {
63
63
  vi.clearAllMocks();
@@ -7,7 +7,7 @@
7
7
 
8
8
  import { DEFAULT_ACCOUNT_ID, getAccountConfig } from "./config.js";
9
9
  import { getClientManager as getRegistryClientManager } from "./client-manager-registry.js";
10
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
10
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
11
11
  import { resolveTwitchToken } from "./token.js";
12
12
  import { stripMarkdownForTwitch } from "./utils/markdown.js";
13
13
  import { generateMessageId, isAccountConfigured, normalizeTwitchChannel } from "./utils/twitch.js";
@@ -27,12 +27,12 @@ export interface SendMessageResult {
27
27
  /**
28
28
  * Internal send function used by the outbound adapter.
29
29
  *
30
- * This function has access to the full Moltbot config and handles
30
+ * This function has access to the full Poolbot config and handles
31
31
  * account resolution, markdown stripping, and actual message sending.
32
32
  *
33
33
  * @param channel - The channel name
34
34
  * @param text - The message text
35
- * @param cfg - Full Moltbot configuration
35
+ * @param cfg - Full Poolbot configuration
36
36
  * @param accountId - Account ID to use
37
37
  * @param stripMarkdown - Whether to strip markdown (default: true)
38
38
  * @param logger - Logger instance
@@ -51,7 +51,7 @@ export interface SendMessageResult {
51
51
  export async function sendMessageTwitchInternal(
52
52
  channel: string,
53
53
  text: string,
54
- cfg: MoltbotConfig,
54
+ cfg: PoolbotConfig,
55
55
  accountId: string = DEFAULT_ACCOUNT_ID,
56
56
  stripMarkdown: boolean = true,
57
57
  logger: Console = console,
@@ -10,7 +10,7 @@
10
10
 
11
11
  import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
12
12
  import { resolveTwitchToken, type TwitchTokenSource } from "./token.js";
13
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
13
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
14
14
 
15
15
  describe("token", () => {
16
16
  // Multi-account config for testing non-default accounts
@@ -29,7 +29,7 @@ describe("token", () => {
29
29
  },
30
30
  },
31
31
  },
32
- } as unknown as MoltbotConfig;
32
+ } as unknown as PoolbotConfig;
33
33
 
34
34
  // Simplified single-account config
35
35
  const mockSimplifiedConfig = {
@@ -39,7 +39,7 @@ describe("token", () => {
39
39
  accessToken: "oauth:config-token",
40
40
  },
41
41
  },
42
- } as unknown as MoltbotConfig;
42
+ } as unknown as PoolbotConfig;
43
43
 
44
44
  beforeEach(() => {
45
45
  vi.clearAllMocks();
@@ -85,7 +85,7 @@ describe("token", () => {
85
85
  accessToken: "",
86
86
  },
87
87
  },
88
- } as unknown as MoltbotConfig;
88
+ } as unknown as PoolbotConfig;
89
89
 
90
90
  const result = resolveTwitchToken(configWithEmptyToken, { accountId: "default" });
91
91
 
@@ -101,7 +101,7 @@ describe("token", () => {
101
101
  accessToken: "",
102
102
  },
103
103
  },
104
- } as unknown as MoltbotConfig;
104
+ } as unknown as PoolbotConfig;
105
105
 
106
106
  const result = resolveTwitchToken(configWithoutToken, { accountId: "default" });
107
107
 
@@ -123,7 +123,7 @@ describe("token", () => {
123
123
  },
124
124
  },
125
125
  },
126
- } as unknown as MoltbotConfig;
126
+ } as unknown as PoolbotConfig;
127
127
 
128
128
  const result = resolveTwitchToken(configWithoutToken, { accountId: "secondary" });
129
129
 
@@ -139,7 +139,7 @@ describe("token", () => {
139
139
  accounts: {},
140
140
  },
141
141
  },
142
- } as unknown as MoltbotConfig;
142
+ } as unknown as PoolbotConfig;
143
143
 
144
144
  const result = resolveTwitchToken(configWithoutAccount, { accountId: "nonexistent" });
145
145
 
@@ -150,7 +150,7 @@ describe("token", () => {
150
150
  it("should handle missing Twitch config section", () => {
151
151
  const configWithoutSection = {
152
152
  channels: {},
153
- } as unknown as MoltbotConfig;
153
+ } as unknown as PoolbotConfig;
154
154
 
155
155
  const result = resolveTwitchToken(configWithoutSection, { accountId: "default" });
156
156
 
@@ -9,7 +9,7 @@
9
9
  * 2. Environment variable: CLAWDBOT_TWITCH_ACCESS_TOKEN (default account only)
10
10
  */
11
11
 
12
- import type { MoltbotConfig } from "../../../src/config/config.js";
12
+ import type { PoolbotConfig } from "../../../src/config/config.js";
13
13
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../../../src/routing/session-key.js";
14
14
 
15
15
  export type TwitchTokenSource = "env" | "config" | "none";
@@ -40,12 +40,12 @@ function normalizeTwitchToken(raw?: string | null): string | undefined {
40
40
  * The getAccountConfig function handles merging base-level config with accounts.default,
41
41
  * so this logic works for both simplified and multi-account patterns.
42
42
  *
43
- * @param cfg - Moltbot config
43
+ * @param cfg - Poolbot config
44
44
  * @param opts - Options including accountId and optional envToken override
45
45
  * @returns Token resolution with source
46
46
  */
47
47
  export function resolveTwitchToken(
48
- cfg?: MoltbotConfig,
48
+ cfg?: PoolbotConfig,
49
49
  opts: { accountId?: string | null; envToken?: string | null } = {},
50
50
  ): TwitchTokenResolution {
51
51
  const accountId = normalizeAccountId(opts.accountId);
@@ -1,6 +1,6 @@
1
1
  import { RefreshingAuthProvider, StaticAuthProvider } from "@twurple/auth";
2
2
  import { ChatClient, LogLevel } from "@twurple/chat";
3
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
3
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
4
4
  import type { ChannelLogSink, TwitchAccountConfig, TwitchChatMessage } from "./types.js";
5
5
  import { resolveTwitchToken } from "./token.js";
6
6
  import { normalizeToken } from "./utils/twitch.js";
@@ -76,7 +76,7 @@ export class TwitchClientManager {
76
76
  */
77
77
  async getClient(
78
78
  account: TwitchAccountConfig,
79
- cfg?: MoltbotConfig,
79
+ cfg?: PoolbotConfig,
80
80
  accountId?: string,
81
81
  ): Promise<ChatClient> {
82
82
  const key = this.getAccountKey(account);
@@ -236,7 +236,7 @@ export class TwitchClientManager {
236
236
  account: TwitchAccountConfig,
237
237
  channel: string,
238
238
  message: string,
239
- cfg?: MoltbotConfig,
239
+ cfg?: PoolbotConfig,
240
240
  accountId?: string,
241
241
  ): Promise<{ ok: boolean; error?: string; messageId?: string }> {
242
242
  try {
@@ -2,7 +2,7 @@
2
2
  * Twitch channel plugin types.
3
3
  *
4
4
  * This file defines Twitch-specific types. Generic channel types are imported
5
- * from Moltbot core.
5
+ * from Poolbot core.
6
6
  */
7
7
 
8
8
  import type {
@@ -22,7 +22,7 @@ import type {
22
22
  ChannelResolveResult,
23
23
  ChannelStatusAdapter,
24
24
  } from "../../../src/channels/plugins/types.adapters.js";
25
- import type { MoltbotConfig } from "../../../src/config/config.js";
25
+ import type { PoolbotConfig } from "../../../src/config/config.js";
26
26
  import type { OutboundDeliveryResult } from "../../../src/infra/outbound/deliver.js";
27
27
  import type { RuntimeEnv } from "../../../src/runtime.js";
28
28
 
@@ -137,5 +137,5 @@ import type { TwitchConfigSchema } from "./config-schema.js";
137
137
  import type { z } from "zod";
138
138
  export type TwitchConfig = z.infer<typeof TwitchConfigSchema>;
139
139
 
140
- export type { MoltbotConfig };
140
+ export type { PoolbotConfig };
141
141
  export type { RuntimeEnv };
@@ -2,7 +2,7 @@
2
2
  * Markdown utilities for Twitch chat
3
3
  *
4
4
  * Twitch chat doesn't support markdown formatting, so we strip it before sending.
5
- * Based on Moltbot's markdownToText in src/agents/tools/web-fetch-utils.ts.
5
+ * Based on Poolbot's markdownToText in src/agents/tools/web-fetch-utils.ts.
6
6
  */
7
7
 
8
8
  /**
@@ -1,6 +1,6 @@
1
1
  # @poolbot/voice-call
2
2
 
3
- Official Voice Call plugin for **Clawdbot**.
3
+ Official Voice Call plugin for **Pool-Bot**.
4
4
 
5
5
  Providers:
6
6
  - **Twilio** (Programmable Voice + Media Streams)
@@ -13,7 +13,7 @@ Plugin system: `https://docs.molt.bot/plugin`
13
13
 
14
14
  ## Install (local dev)
15
15
 
16
- ### Option A: install via Clawdbot (recommended)
16
+ ### Option A: install via Pool-Bot (recommended)
17
17
 
18
18
  ```bash
19
19
  poolbot plugins install @poolbot/voice-call
@@ -100,7 +100,7 @@ Notes:
100
100
  ## CLI
101
101
 
102
102
  ```bash
103
- poolbot voicecall call --to "+15555550123" --message "Hello from Clawdbot"
103
+ poolbot voicecall call --to "+15555550123" --message "Hello from Pool-Bot"
104
104
  poolbot voicecall continue --call-id <id> --message "Any questions?"
105
105
  poolbot voicecall speak --call-id <id> --message "One moment"
106
106
  poolbot voicecall end --call-id <id>
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/voice-call",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot voice-call plugin",
5
+ "description": "Poolbot voice-call plugin",
6
6
  "dependencies": {
7
7
  "@sinclair/typebox": "0.34.47",
8
8
  "ws": "^8.19.0",
@@ -86,7 +86,7 @@ function findPackageRoot(startDir: string, name: string): string | null {
86
86
  }
87
87
  }
88
88
 
89
- function resolveMoltbotRoot(): string {
89
+ function resolvePoolbotRoot(): string {
90
90
  if (coreRootCache) return coreRootCache;
91
91
  const override = process.env.MOLTBOT_ROOT?.trim() || process.env.CLAWDBOT_ROOT?.trim();
92
92
  if (override) {
@@ -122,7 +122,7 @@ function resolveMoltbotRoot(): string {
122
122
  }
123
123
 
124
124
  async function importCoreModule<T>(relativePath: string): Promise<T> {
125
- const root = resolveMoltbotRoot();
125
+ const root = resolvePoolbotRoot();
126
126
  const distPath = path.join(root, "dist", relativePath);
127
127
  if (!fs.existsSync(distPath)) {
128
128
  throw new Error(
@@ -12,7 +12,7 @@ import type { VoiceCallConfig } from "./config.js";
12
12
  export type VoiceResponseParams = {
13
13
  /** Voice call config */
14
14
  voiceConfig: VoiceCallConfig;
15
- /** Core Moltbot config */
15
+ /** Core Poolbot config */
16
16
  coreConfig: CoreConfig;
17
17
  /** Call ID for session tracking */
18
18
  callId: string;
@@ -1,4 +1,4 @@
1
- import type { MoltbotPluginApi } from "poolbot/plugin-sdk";
1
+ import type { PoolbotPluginApi } from "poolbot/plugin-sdk";
2
2
  import { emptyPluginConfigSchema } from "poolbot/plugin-sdk";
3
3
 
4
4
  import { whatsappPlugin } from "./src/channel.js";
@@ -9,7 +9,7 @@ const plugin = {
9
9
  name: "WhatsApp",
10
10
  description: "WhatsApp channel plugin",
11
11
  configSchema: emptyPluginConfigSchema(),
12
- register(api: MoltbotPluginApi) {
12
+ register(api: PoolbotPluginApi) {
13
13
  setWhatsAppRuntime(api.runtime);
14
14
  api.registerChannel({ plugin: whatsappPlugin });
15
15
  },
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/whatsapp",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot WhatsApp channel plugin",
5
+ "description": "Poolbot WhatsApp channel plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -1,6 +1,6 @@
1
1
  # @poolbot/zalo
2
2
 
3
- Zalo channel plugin for Clawdbot (Bot API).
3
+ Zalo channel plugin for Pool-Bot (Bot API).
4
4
 
5
5
  ## Install (local checkout)
6
6
 
@@ -1,4 +1,4 @@
1
- import type { MoltbotPluginApi } from "poolbot/plugin-sdk";
1
+ import type { PoolbotPluginApi } from "poolbot/plugin-sdk";
2
2
  import { emptyPluginConfigSchema } from "poolbot/plugin-sdk";
3
3
 
4
4
  import { zaloDock, zaloPlugin } from "./src/channel.js";
@@ -10,7 +10,7 @@ const plugin = {
10
10
  name: "Zalo",
11
11
  description: "Zalo channel plugin (Bot API)",
12
12
  configSchema: emptyPluginConfigSchema(),
13
- register(api: MoltbotPluginApi) {
13
+ register(api: PoolbotPluginApi) {
14
14
  setZaloRuntime(api.runtime);
15
15
  api.registerChannel({ plugin: zaloPlugin, dock: zaloDock });
16
16
  api.registerHttpHandler(handleZaloWebhookRequest);
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/zalo",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot Zalo channel plugin",
5
+ "description": "Poolbot Zalo channel plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -1,22 +1,22 @@
1
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
1
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
2
2
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "poolbot/plugin-sdk";
3
3
 
4
4
  import type { ResolvedZaloAccount, ZaloAccountConfig, ZaloConfig } from "./types.js";
5
5
  import { resolveZaloToken } from "./token.js";
6
6
 
7
- function listConfiguredAccountIds(cfg: MoltbotConfig): string[] {
7
+ function listConfiguredAccountIds(cfg: PoolbotConfig): string[] {
8
8
  const accounts = (cfg.channels?.zalo as ZaloConfig | undefined)?.accounts;
9
9
  if (!accounts || typeof accounts !== "object") return [];
10
10
  return Object.keys(accounts).filter(Boolean);
11
11
  }
12
12
 
13
- export function listZaloAccountIds(cfg: MoltbotConfig): string[] {
13
+ export function listZaloAccountIds(cfg: PoolbotConfig): string[] {
14
14
  const ids = listConfiguredAccountIds(cfg);
15
15
  if (ids.length === 0) return [DEFAULT_ACCOUNT_ID];
16
16
  return ids.sort((a, b) => a.localeCompare(b));
17
17
  }
18
18
 
19
- export function resolveDefaultZaloAccountId(cfg: MoltbotConfig): string {
19
+ export function resolveDefaultZaloAccountId(cfg: PoolbotConfig): string {
20
20
  const zaloConfig = cfg.channels?.zalo as ZaloConfig | undefined;
21
21
  if (zaloConfig?.defaultAccount?.trim()) return zaloConfig.defaultAccount.trim();
22
22
  const ids = listZaloAccountIds(cfg);
@@ -25,7 +25,7 @@ export function resolveDefaultZaloAccountId(cfg: MoltbotConfig): string {
25
25
  }
26
26
 
27
27
  function resolveAccountConfig(
28
- cfg: MoltbotConfig,
28
+ cfg: PoolbotConfig,
29
29
  accountId: string,
30
30
  ): ZaloAccountConfig | undefined {
31
31
  const accounts = (cfg.channels?.zalo as ZaloConfig | undefined)?.accounts;
@@ -33,7 +33,7 @@ function resolveAccountConfig(
33
33
  return accounts[accountId] as ZaloAccountConfig | undefined;
34
34
  }
35
35
 
36
- function mergeZaloAccountConfig(cfg: MoltbotConfig, accountId: string): ZaloAccountConfig {
36
+ function mergeZaloAccountConfig(cfg: PoolbotConfig, accountId: string): ZaloAccountConfig {
37
37
  const raw = (cfg.channels?.zalo ?? {}) as ZaloConfig;
38
38
  const { accounts: _ignored, defaultAccount: _ignored2, ...base } = raw;
39
39
  const account = resolveAccountConfig(cfg, accountId) ?? {};
@@ -41,7 +41,7 @@ function mergeZaloAccountConfig(cfg: MoltbotConfig, accountId: string): ZaloAcco
41
41
  }
42
42
 
43
43
  export function resolveZaloAccount(params: {
44
- cfg: MoltbotConfig;
44
+ cfg: PoolbotConfig;
45
45
  accountId?: string | null;
46
46
  }): ResolvedZaloAccount {
47
47
  const accountId = normalizeAccountId(params.accountId);
@@ -64,7 +64,7 @@ export function resolveZaloAccount(params: {
64
64
  };
65
65
  }
66
66
 
67
- export function listEnabledZaloAccounts(cfg: MoltbotConfig): ResolvedZaloAccount[] {
67
+ export function listEnabledZaloAccounts(cfg: PoolbotConfig): ResolvedZaloAccount[] {
68
68
  return listZaloAccountIds(cfg)
69
69
  .map((accountId) => resolveZaloAccount({ cfg, accountId }))
70
70
  .filter((account) => account.enabled);
@@ -1,7 +1,7 @@
1
1
  import type {
2
2
  ChannelMessageActionAdapter,
3
3
  ChannelMessageActionName,
4
- MoltbotConfig,
4
+ PoolbotConfig,
5
5
  } from "poolbot/plugin-sdk";
6
6
  import { jsonResult, readStringParam } from "poolbot/plugin-sdk";
7
7
 
@@ -10,7 +10,7 @@ import { sendMessageZalo } from "./send.js";
10
10
 
11
11
  const providerId = "zalo";
12
12
 
13
- function listEnabledAccounts(cfg: MoltbotConfig) {
13
+ function listEnabledAccounts(cfg: PoolbotConfig) {
14
14
  return listEnabledZaloAccounts(cfg).filter(
15
15
  (account) => account.enabled && account.tokenSource !== "none",
16
16
  );
@@ -18,7 +18,7 @@ function listEnabledAccounts(cfg: MoltbotConfig) {
18
18
 
19
19
  export const zaloMessageActions: ChannelMessageActionAdapter = {
20
20
  listActions: ({ cfg }) => {
21
- const accounts = listEnabledAccounts(cfg as MoltbotConfig);
21
+ const accounts = listEnabledAccounts(cfg as PoolbotConfig);
22
22
  if (accounts.length === 0) return [];
23
23
  const actions = new Set<ChannelMessageActionName>(["send"]);
24
24
  return Array.from(actions);
@@ -44,7 +44,7 @@ export const zaloMessageActions: ChannelMessageActionAdapter = {
44
44
  const result = await sendMessageZalo(to ?? "", content ?? "", {
45
45
  accountId: accountId ?? undefined,
46
46
  mediaUrl: mediaUrl ?? undefined,
47
- cfg: cfg as MoltbotConfig,
47
+ cfg: cfg as PoolbotConfig,
48
48
  });
49
49
 
50
50
  if (!result.ok) {