@poolzin/pool-bot 2026.1.39 → 2026.2.0

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 (312) 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/cli-runner/helpers.js +1 -1
  11. package/dist/agents/cli-runner.js +2 -2
  12. package/dist/agents/cloudflare-ai-gateway.js +31 -0
  13. package/dist/agents/compaction.js +16 -2
  14. package/dist/agents/context-window-guard.js +13 -10
  15. package/dist/agents/context.js +4 -4
  16. package/dist/agents/docs-path.js +1 -1
  17. package/dist/agents/minimax-vlm.js +1 -1
  18. package/dist/agents/model-auth.js +12 -1
  19. package/dist/agents/model-catalog.js +4 -4
  20. package/dist/agents/model-selection.js +10 -4
  21. package/dist/agents/models-config.js +3 -3
  22. package/dist/agents/models-config.providers.js +147 -39
  23. package/dist/agents/pi-embedded-helpers/openai.js +1 -1
  24. package/dist/agents/pi-embedded-runner/compact.js +8 -8
  25. package/dist/agents/pi-embedded-runner/model.js +2 -2
  26. package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
  27. package/dist/agents/pi-embedded-runner/run.js +4 -4
  28. package/dist/agents/pi-embedded-runner/tool-result-truncation.js +275 -0
  29. package/dist/agents/pi-embedded-runner/utils.js +1 -1
  30. package/dist/agents/pi-model-discovery.js +10 -0
  31. package/dist/agents/pi-tool-definition-adapter.js +50 -9
  32. package/dist/agents/pi-tools.before-tool-call.js +67 -0
  33. package/dist/agents/pi-tools.js +10 -5
  34. package/dist/agents/pi-tools.read.js +2 -2
  35. package/dist/agents/session-file-repair.js +83 -0
  36. package/dist/agents/session-transcript-repair.js +68 -0
  37. package/dist/agents/skills/frontmatter.js +1 -1
  38. package/dist/agents/skills/workspace.js +2 -2
  39. package/dist/agents/system-prompt.js +28 -4
  40. package/dist/agents/together-models.js +127 -0
  41. package/dist/agents/tool-images.js +1 -1
  42. package/dist/agents/tool-policy.js +1 -1
  43. package/dist/agents/tools/browser-tool.js +3 -3
  44. package/dist/agents/tools/image-tool.js +2 -2
  45. package/dist/agents/tools/memory-tool.js +93 -5
  46. package/dist/agents/tools/web-search.js +1 -1
  47. package/dist/auto-reply/commands-registry.data.js +1 -1
  48. package/dist/auto-reply/reply/commands-context-report.js +2 -2
  49. package/dist/auto-reply/reply/commands-session.js +2 -2
  50. package/dist/auto-reply/reply/get-reply-run.js +14 -4
  51. package/dist/auto-reply/reply/groups.js +1 -1
  52. package/dist/auto-reply/reply/inbound-context.js +4 -0
  53. package/dist/auto-reply/reply/inbound-meta.js +130 -0
  54. package/dist/auto-reply/reply/untrusted-context.js +15 -0
  55. package/dist/auto-reply/status.js +1 -1
  56. package/dist/browser/client-fetch.js +1 -1
  57. package/dist/browser/config.js +1 -1
  58. package/dist/browser/extension-relay.js +3 -3
  59. package/dist/browser/server-context.js +2 -2
  60. package/dist/build-info.json +3 -3
  61. package/dist/canvas-host/a2ui.js +3 -3
  62. package/dist/channels/plugins/catalog.js +2 -2
  63. package/dist/channels/plugins/onboarding/imessage.js +1 -1
  64. package/dist/channels/plugins/onboarding/signal.js +1 -1
  65. package/dist/channels/plugins/onboarding/slack.js +4 -4
  66. package/dist/channels/plugins/onboarding/whatsapp.js +3 -3
  67. package/dist/channels/plugins/pairing-message.js +1 -1
  68. package/dist/cli/browser-cli-extension.js +2 -2
  69. package/dist/cli/docs-cli.js +1 -1
  70. package/dist/cli/gateway-cli/dev.js +1 -1
  71. package/dist/cli/memory-cli.js +25 -15
  72. package/dist/cli/nodes-cli/register.canvas.js +1 -1
  73. package/dist/cli/plugins-cli.js +1 -1
  74. package/dist/cli/run-main.js +2 -2
  75. package/dist/cli/security-cli.js +1 -1
  76. package/dist/cli/tagline.js +1 -1
  77. package/dist/cli/update-cli.js +4 -4
  78. package/dist/cli/webhooks-cli.js +5 -5
  79. package/dist/commands/agents.commands.add.js +1 -1
  80. package/dist/commands/auth-choice.apply.api-providers.js +305 -17
  81. package/dist/commands/auth-choice.apply.js +4 -1
  82. package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
  83. package/dist/commands/auth-choice.apply.xai.js +63 -0
  84. package/dist/commands/auth-choice.preferred-provider.js +7 -1
  85. package/dist/commands/configure.wizard.js +1 -1
  86. package/dist/commands/dashboard.js +1 -1
  87. package/dist/commands/docs.js +1 -1
  88. package/dist/commands/doctor-gateway-services.js +3 -3
  89. package/dist/commands/doctor-update.js +3 -3
  90. package/dist/commands/doctor.js +1 -1
  91. package/dist/commands/models/list.probe.js +2 -2
  92. package/dist/commands/models/list.registry.js +4 -4
  93. package/dist/commands/models/list.status-command.js +2 -2
  94. package/dist/commands/onboard-auth.config-core.js +366 -28
  95. package/dist/commands/onboard-auth.credentials.js +71 -9
  96. package/dist/commands/onboard-auth.js +3 -3
  97. package/dist/commands/onboard-auth.models.js +26 -24
  98. package/dist/commands/onboard-non-interactive/local/auth-choice.js +140 -6
  99. package/dist/commands/status-all/report-lines.js +1 -1
  100. package/dist/commands/status.command.js +1 -1
  101. package/dist/commands/uninstall.js +3 -3
  102. package/dist/compat/legacy-names.js +1 -1
  103. package/dist/config/io.js +3 -3
  104. package/dist/config/schema.js +1 -1
  105. package/dist/config/types.memory.js +1 -0
  106. package/dist/config/version.js +4 -4
  107. package/dist/daemon/constants.js +7 -7
  108. package/dist/daemon/inspect.js +6 -6
  109. package/dist/daemon/systemd-unit.js +1 -1
  110. package/dist/gateway/live-image-probe.js +1 -66
  111. package/dist/gateway/openai-http.js +2 -2
  112. package/dist/gateway/openresponses-http.js +4 -4
  113. package/dist/gateway/server-discovery.js +2 -2
  114. package/dist/gateway/server-http.js +1 -1
  115. package/dist/gateway/server.impl.js +2 -2
  116. package/dist/hooks/frontmatter.js +1 -1
  117. package/dist/hooks/hooks-status.js +1 -1
  118. package/dist/hooks/install.js +2 -2
  119. package/dist/hooks/loader.js +1 -1
  120. package/dist/hooks/workspace.js +3 -3
  121. package/dist/index.js +2 -2
  122. package/dist/infra/bonjour.js +3 -3
  123. package/dist/infra/path-env.js +3 -3
  124. package/dist/infra/provider-usage.fetch.minimax.js +1 -1
  125. package/dist/infra/restart.js +1 -1
  126. package/dist/infra/tailscale.js +1 -1
  127. package/dist/macos/relay.js +2 -2
  128. package/dist/media/input-files.js +1 -1
  129. package/dist/media/mime.js +4 -0
  130. package/dist/media/png-encode.js +74 -0
  131. package/dist/media-understanding/providers/image.js +2 -2
  132. package/dist/memory/backend-config.js +207 -0
  133. package/dist/memory/embeddings.js +1 -1
  134. package/dist/memory/manager.js +1 -0
  135. package/dist/memory/types.js +1 -0
  136. package/dist/node-host/runner.js +2 -2
  137. package/dist/pairing/pairing-messages.js +1 -1
  138. package/dist/plugins/discovery.js +1 -1
  139. package/dist/plugins/install.js +2 -2
  140. package/dist/plugins/update.js +1 -1
  141. package/dist/security/audit.js +2 -2
  142. package/dist/shared/text/reasoning-tags.js +52 -7
  143. package/dist/tailscale/detect.js +146 -0
  144. package/dist/telegram/bot-message-context.js +1 -1
  145. package/dist/test-helpers/workspace.js +11 -0
  146. package/dist/test-utils/channel-plugins.js +82 -0
  147. package/dist/test-utils/ports.js +73 -0
  148. package/dist/utils/shell-argv.js +61 -0
  149. package/dist/utils.js +10 -0
  150. package/dist/web/qr-image.js +1 -61
  151. package/dist/wizard/onboarding.finalize.js +7 -7
  152. package/dist/wizard/onboarding.js +3 -3
  153. package/docs/RELEASE_WORKFOTS_COMPARISON.md +3 -3
  154. package/docs/_config.yml +2 -2
  155. package/docs/_layouts/default.html +9 -9
  156. package/docs/concepts/typebox.md +1 -1
  157. package/docs/docs.json +1 -1
  158. package/docs/northflank.mdx +7 -7
  159. package/docs/railway.mdx +3 -3
  160. package/docs/render.mdx +5 -5
  161. package/docs/start/lore.md +2 -2
  162. package/extensions/bluebubbles/index.ts +2 -2
  163. package/extensions/bluebubbles/package.json +1 -1
  164. package/extensions/bluebubbles/src/accounts.ts +8 -8
  165. package/extensions/bluebubbles/src/actions.test.ts +22 -22
  166. package/extensions/bluebubbles/src/actions.ts +5 -5
  167. package/extensions/bluebubbles/src/attachments.ts +2 -2
  168. package/extensions/bluebubbles/src/channel.ts +16 -16
  169. package/extensions/bluebubbles/src/chat.ts +2 -2
  170. package/extensions/bluebubbles/src/media-send.ts +2 -2
  171. package/extensions/bluebubbles/src/monitor.test.ts +46 -46
  172. package/extensions/bluebubbles/src/monitor.ts +5 -5
  173. package/extensions/bluebubbles/src/onboarding.ts +7 -7
  174. package/extensions/bluebubbles/src/reactions.ts +2 -2
  175. package/extensions/bluebubbles/src/send.ts +2 -2
  176. package/extensions/copilot-proxy/README.md +1 -1
  177. package/extensions/copilot-proxy/package.json +1 -1
  178. package/extensions/diagnostics-otel/index.ts +2 -2
  179. package/extensions/diagnostics-otel/package.json +1 -1
  180. package/extensions/diagnostics-otel/src/service.ts +3 -3
  181. package/extensions/discord/index.ts +2 -2
  182. package/extensions/discord/package.json +1 -1
  183. package/extensions/google-antigravity-auth/README.md +1 -1
  184. package/extensions/google-antigravity-auth/index.ts +1 -1
  185. package/extensions/google-antigravity-auth/package.json +1 -1
  186. package/extensions/google-gemini-cli-auth/README.md +1 -1
  187. package/extensions/google-gemini-cli-auth/oauth.ts +1 -1
  188. package/extensions/google-gemini-cli-auth/package.json +1 -1
  189. package/extensions/googlechat/index.ts +3 -3
  190. package/extensions/googlechat/package.json +1 -1
  191. package/extensions/googlechat/src/accounts.ts +8 -8
  192. package/extensions/googlechat/src/actions.ts +6 -6
  193. package/extensions/googlechat/src/channel.ts +21 -21
  194. package/extensions/googlechat/src/monitor.ts +8 -8
  195. package/extensions/googlechat/src/onboarding.ts +10 -10
  196. package/extensions/imessage/index.ts +2 -2
  197. package/extensions/imessage/package.json +1 -1
  198. package/extensions/line/index.ts +2 -2
  199. package/extensions/line/package.json +1 -1
  200. package/extensions/line/src/card-command.ts +2 -2
  201. package/extensions/line/src/channel.logout.test.ts +4 -4
  202. package/extensions/line/src/channel.sendPayload.test.ts +8 -8
  203. package/extensions/line/src/channel.ts +3 -3
  204. package/extensions/llm-task/README.md +3 -3
  205. package/extensions/llm-task/index.ts +2 -2
  206. package/extensions/llm-task/package.json +1 -1
  207. package/extensions/llm-task/src/llm-task-tool.ts +4 -4
  208. package/extensions/lobster/README.md +6 -6
  209. package/extensions/lobster/index.ts +2 -2
  210. package/extensions/lobster/src/lobster-tool.test.ts +4 -4
  211. package/extensions/lobster/src/lobster-tool.ts +2 -2
  212. package/extensions/matrix/index.ts +2 -2
  213. package/extensions/matrix/package.json +1 -1
  214. package/extensions/matrix/src/matrix/client/config.ts +1 -1
  215. package/extensions/matrix/src/matrix/monitor/handler.ts +1 -1
  216. package/extensions/matrix/src/onboarding.ts +1 -1
  217. package/extensions/mattermost/index.ts +2 -2
  218. package/extensions/mattermost/package.json +1 -1
  219. package/extensions/mattermost/src/mattermost/accounts.ts +8 -8
  220. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
  221. package/extensions/mattermost/src/mattermost/monitor.ts +2 -2
  222. package/extensions/mattermost/src/onboarding-helpers.ts +3 -3
  223. package/extensions/mattermost/src/onboarding.ts +2 -2
  224. package/extensions/memory-core/index.ts +2 -2
  225. package/extensions/memory-core/package.json +1 -1
  226. package/extensions/memory-lancedb/index.ts +3 -3
  227. package/extensions/memory-lancedb/package.json +1 -1
  228. package/extensions/msteams/index.ts +2 -2
  229. package/extensions/msteams/package.json +1 -1
  230. package/extensions/msteams/src/channel.directory.test.ts +2 -2
  231. package/extensions/msteams/src/channel.ts +2 -2
  232. package/extensions/msteams/src/graph-upload.ts +4 -4
  233. package/extensions/msteams/src/monitor-handler.ts +2 -2
  234. package/extensions/msteams/src/monitor.ts +2 -2
  235. package/extensions/msteams/src/onboarding.ts +9 -9
  236. package/extensions/msteams/src/reply-dispatcher.ts +2 -2
  237. package/extensions/msteams/src/send-context.ts +2 -2
  238. package/extensions/msteams/src/send.ts +4 -4
  239. package/extensions/nextcloud-talk/index.ts +2 -2
  240. package/extensions/nextcloud-talk/package.json +1 -1
  241. package/extensions/nextcloud-talk/src/channel.ts +7 -7
  242. package/extensions/nextcloud-talk/src/inbound.ts +7 -7
  243. package/extensions/nextcloud-talk/src/onboarding.ts +1 -1
  244. package/extensions/nostr/README.md +2 -2
  245. package/extensions/nostr/index.ts +5 -5
  246. package/extensions/nostr/package.json +1 -1
  247. package/extensions/nostr/src/types.ts +4 -4
  248. package/extensions/open-prose/index.ts +2 -2
  249. package/extensions/qwen-portal-auth/README.md +1 -1
  250. package/extensions/signal/index.ts +2 -2
  251. package/extensions/signal/package.json +1 -1
  252. package/extensions/slack/index.ts +2 -2
  253. package/extensions/slack/package.json +1 -1
  254. package/extensions/telegram/index.ts +2 -2
  255. package/extensions/telegram/package.json +1 -1
  256. package/extensions/telegram/src/channel.ts +2 -2
  257. package/extensions/tlon/README.md +2 -2
  258. package/extensions/tlon/index.ts +2 -2
  259. package/extensions/tlon/package.json +1 -1
  260. package/extensions/tlon/src/channel.ts +13 -13
  261. package/extensions/tlon/src/monitor/index.ts +3 -3
  262. package/extensions/tlon/src/onboarding.ts +3 -3
  263. package/extensions/tlon/src/types.ts +3 -3
  264. package/extensions/twitch/README.md +1 -1
  265. package/extensions/twitch/index.ts +2 -2
  266. package/extensions/twitch/package.json +1 -1
  267. package/extensions/twitch/src/config.ts +3 -3
  268. package/extensions/twitch/src/monitor.ts +3 -3
  269. package/extensions/twitch/src/onboarding.ts +9 -9
  270. package/extensions/twitch/src/outbound.test.ts +2 -2
  271. package/extensions/twitch/src/plugin.test.ts +2 -2
  272. package/extensions/twitch/src/plugin.ts +8 -8
  273. package/extensions/twitch/src/send.test.ts +2 -2
  274. package/extensions/twitch/src/send.ts +4 -4
  275. package/extensions/twitch/src/token.test.ts +8 -8
  276. package/extensions/twitch/src/token.ts +3 -3
  277. package/extensions/twitch/src/twitch-client.ts +3 -3
  278. package/extensions/twitch/src/types.ts +3 -3
  279. package/extensions/twitch/src/utils/markdown.ts +1 -1
  280. package/extensions/voice-call/README.md +3 -3
  281. package/extensions/voice-call/package.json +1 -1
  282. package/extensions/voice-call/src/core-bridge.ts +2 -2
  283. package/extensions/voice-call/src/response-generator.ts +1 -1
  284. package/extensions/whatsapp/index.ts +2 -2
  285. package/extensions/whatsapp/package.json +1 -1
  286. package/extensions/zalo/README.md +1 -1
  287. package/extensions/zalo/index.ts +2 -2
  288. package/extensions/zalo/package.json +1 -1
  289. package/extensions/zalo/src/accounts.ts +8 -8
  290. package/extensions/zalo/src/actions.ts +4 -4
  291. package/extensions/zalo/src/channel.directory.test.ts +2 -2
  292. package/extensions/zalo/src/channel.ts +18 -18
  293. package/extensions/zalo/src/monitor.ts +9 -9
  294. package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
  295. package/extensions/zalo/src/onboarding.ts +24 -24
  296. package/extensions/zalo/src/send.ts +2 -2
  297. package/extensions/zalouser/README.md +2 -2
  298. package/extensions/zalouser/index.ts +2 -2
  299. package/extensions/zalouser/package.json +1 -1
  300. package/extensions/zalouser/src/accounts.ts +9 -9
  301. package/extensions/zalouser/src/channel.ts +24 -24
  302. package/extensions/zalouser/src/monitor.ts +4 -4
  303. package/extensions/zalouser/src/onboarding.ts +28 -28
  304. package/package.json +13 -251
  305. package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
  306. package/skills/tmux/scripts/find-sessions.sh +1 -1
  307. package/CHANGELOG.md +0 -102
  308. package/README-header.png +0 -0
  309. package/git-hooks/pre-commit +0 -4
  310. package/scripts/format-staged.js +0 -148
  311. package/scripts/postinstall.js +0 -300
  312. package/scripts/setup-git-hooks.js +0 -96
@@ -32,7 +32,7 @@ const RESPONSE_PAGE = `<!DOCTYPE html>
32
32
  <html lang="en">
33
33
  <head>
34
34
  <meta charset="utf-8" />
35
- <title>Moltbot Antigravity OAuth</title>
35
+ <title>Poolbot Antigravity OAuth</title>
36
36
  </head>
37
37
  <body>
38
38
  <main>
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/google-antigravity-auth",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot Google Antigravity OAuth provider plugin",
5
+ "description": "Poolbot Google Antigravity OAuth provider plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -1,4 +1,4 @@
1
- # Google Gemini CLI Auth (Clawdbot plugin)
1
+ # Google Gemini CLI Auth (Pool-Bot plugin)
2
2
 
3
3
  OAuth provider plugin for **Gemini CLI** (Google Code Assist).
4
4
 
@@ -262,7 +262,7 @@ async function waitForLocalCallback(params: {
262
262
  res.end(
263
263
  "<!doctype html><html><head><meta charset='utf-8'/></head>" +
264
264
  "<body><h2>Gemini CLI OAuth complete</h2>" +
265
- "<p>You can close this window and return to Moltbot.</p></body></html>",
265
+ "<p>You can close this window and return to Poolbot.</p></body></html>",
266
266
  );
267
267
 
268
268
  finish(undefined, { code, state });
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/google-gemini-cli-auth",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot Gemini CLI OAuth provider plugin",
5
+ "description": "Poolbot Gemini CLI OAuth provider plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -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 { googlechatDock, googlechatPlugin } from "./src/channel.js";
@@ -8,9 +8,9 @@ import { setGoogleChatRuntime } from "./src/runtime.js";
8
8
  const plugin = {
9
9
  id: "googlechat",
10
10
  name: "Google Chat",
11
- description: "Moltbot Google Chat channel plugin",
11
+ description: "Poolbot Google Chat channel plugin",
12
12
  configSchema: emptyPluginConfigSchema(),
13
- register(api: MoltbotPluginApi) {
13
+ register(api: PoolbotPluginApi) {
14
14
  setGoogleChatRuntime(api.runtime);
15
15
  api.registerChannel({ plugin: googlechatPlugin, dock: googlechatDock });
16
16
  api.registerHttpHandler(handleGoogleChatWebhookRequest);
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/googlechat",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot Google Chat channel plugin",
5
+ "description": "Poolbot Google Chat channel plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -1,4 +1,4 @@
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 { GoogleChatAccountConfig, GoogleChatConfig } from "./types.config.js";
@@ -18,19 +18,19 @@ export type ResolvedGoogleChatAccount = {
18
18
  const ENV_SERVICE_ACCOUNT = "GOOGLE_CHAT_SERVICE_ACCOUNT";
19
19
  const ENV_SERVICE_ACCOUNT_FILE = "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE";
20
20
 
21
- function listConfiguredAccountIds(cfg: MoltbotConfig): string[] {
21
+ function listConfiguredAccountIds(cfg: PoolbotConfig): string[] {
22
22
  const accounts = (cfg.channels?.["googlechat"] as GoogleChatConfig | undefined)?.accounts;
23
23
  if (!accounts || typeof accounts !== "object") return [];
24
24
  return Object.keys(accounts).filter(Boolean);
25
25
  }
26
26
 
27
- export function listGoogleChatAccountIds(cfg: MoltbotConfig): string[] {
27
+ export function listGoogleChatAccountIds(cfg: PoolbotConfig): string[] {
28
28
  const ids = listConfiguredAccountIds(cfg);
29
29
  if (ids.length === 0) return [DEFAULT_ACCOUNT_ID];
30
30
  return ids.sort((a, b) => a.localeCompare(b));
31
31
  }
32
32
 
33
- export function resolveDefaultGoogleChatAccountId(cfg: MoltbotConfig): string {
33
+ export function resolveDefaultGoogleChatAccountId(cfg: PoolbotConfig): string {
34
34
  const channel = cfg.channels?.["googlechat"] as GoogleChatConfig | undefined;
35
35
  if (channel?.defaultAccount?.trim()) return channel.defaultAccount.trim();
36
36
  const ids = listGoogleChatAccountIds(cfg);
@@ -39,7 +39,7 @@ export function resolveDefaultGoogleChatAccountId(cfg: MoltbotConfig): string {
39
39
  }
40
40
 
41
41
  function resolveAccountConfig(
42
- cfg: MoltbotConfig,
42
+ cfg: PoolbotConfig,
43
43
  accountId: string,
44
44
  ): GoogleChatAccountConfig | undefined {
45
45
  const accounts = (cfg.channels?.["googlechat"] as GoogleChatConfig | undefined)?.accounts;
@@ -48,7 +48,7 @@ function resolveAccountConfig(
48
48
  }
49
49
 
50
50
  function mergeGoogleChatAccountConfig(
51
- cfg: MoltbotConfig,
51
+ cfg: PoolbotConfig,
52
52
  accountId: string,
53
53
  ): GoogleChatAccountConfig {
54
54
  const raw = (cfg.channels?.["googlechat"] ?? {}) as GoogleChatConfig;
@@ -104,7 +104,7 @@ function resolveCredentialsFromConfig(params: {
104
104
  }
105
105
 
106
106
  export function resolveGoogleChatAccount(params: {
107
- cfg: MoltbotConfig;
107
+ cfg: PoolbotConfig;
108
108
  accountId?: string | null;
109
109
  }): ResolvedGoogleChatAccount {
110
110
  const accountId = normalizeAccountId(params.accountId);
@@ -126,7 +126,7 @@ export function resolveGoogleChatAccount(params: {
126
126
  };
127
127
  }
128
128
 
129
- export function listEnabledGoogleChatAccounts(cfg: MoltbotConfig): ResolvedGoogleChatAccount[] {
129
+ export function listEnabledGoogleChatAccounts(cfg: PoolbotConfig): ResolvedGoogleChatAccount[] {
130
130
  return listGoogleChatAccountIds(cfg)
131
131
  .map((accountId) => resolveGoogleChatAccount({ cfg, accountId }))
132
132
  .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 {
7
7
  createActionGate,
@@ -24,13 +24,13 @@ import { resolveGoogleChatOutboundSpace } from "./targets.js";
24
24
 
25
25
  const providerId = "googlechat";
26
26
 
27
- function listEnabledAccounts(cfg: MoltbotConfig) {
27
+ function listEnabledAccounts(cfg: PoolbotConfig) {
28
28
  return listEnabledGoogleChatAccounts(cfg).filter(
29
29
  (account) => account.enabled && account.credentialSource !== "none",
30
30
  );
31
31
  }
32
32
 
33
- function isReactionsEnabled(accounts: ReturnType<typeof listEnabledAccounts>, cfg: MoltbotConfig) {
33
+ function isReactionsEnabled(accounts: ReturnType<typeof listEnabledAccounts>, cfg: PoolbotConfig) {
34
34
  for (const account of accounts) {
35
35
  const gate = createActionGate(
36
36
  (account.config.actions ?? (cfg.channels?.["googlechat"] as { actions?: unknown })?.actions) as Record<
@@ -49,11 +49,11 @@ function resolveAppUserNames(account: { config: { botUser?: string | null } }) {
49
49
 
50
50
  export const googlechatMessageActions: ChannelMessageActionAdapter = {
51
51
  listActions: ({ cfg }) => {
52
- const accounts = listEnabledAccounts(cfg as MoltbotConfig);
52
+ const accounts = listEnabledAccounts(cfg as PoolbotConfig);
53
53
  if (accounts.length === 0) return [];
54
54
  const actions = new Set<ChannelMessageActionName>([]);
55
55
  actions.add("send");
56
- if (isReactionsEnabled(accounts, cfg as MoltbotConfig)) {
56
+ if (isReactionsEnabled(accounts, cfg as PoolbotConfig)) {
57
57
  actions.add("react");
58
58
  actions.add("reactions");
59
59
  }
@@ -69,7 +69,7 @@ export const googlechatMessageActions: ChannelMessageActionAdapter = {
69
69
  },
70
70
  handleAction: async ({ action, params, cfg, accountId }) => {
71
71
  const account = resolveGoogleChatAccount({
72
- cfg: cfg as MoltbotConfig,
72
+ cfg: cfg as PoolbotConfig,
73
73
  accountId,
74
74
  });
75
75
  if (account.credentialSource === "none") {
@@ -15,7 +15,7 @@ import {
15
15
  type ChannelDock,
16
16
  type ChannelMessageActionAdapter,
17
17
  type ChannelPlugin,
18
- type MoltbotConfig,
18
+ type PoolbotConfig,
19
19
  } from "poolbot/plugin-sdk";
20
20
  import { GoogleChatConfigSchema } from "poolbot/plugin-sdk";
21
21
 
@@ -59,7 +59,7 @@ export const googlechatDock: ChannelDock = {
59
59
  outbound: { textChunkLimit: 4000 },
60
60
  config: {
61
61
  resolveAllowFrom: ({ cfg, accountId }) =>
62
- (resolveGoogleChatAccount({ cfg: cfg as MoltbotConfig, accountId }).config.dm?.allowFrom ??
62
+ (resolveGoogleChatAccount({ cfg: cfg as PoolbotConfig, accountId }).config.dm?.allowFrom ??
63
63
  []
64
64
  ).map((entry) => String(entry)),
65
65
  formatAllowFrom: ({ allowFrom }) =>
@@ -103,7 +103,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
103
103
  idLabel: "googlechatUserId",
104
104
  normalizeAllowEntry: (entry) => formatAllowFromEntry(entry),
105
105
  notifyApproval: async ({ cfg, id }) => {
106
- const account = resolveGoogleChatAccount({ cfg: cfg as MoltbotConfig });
106
+ const account = resolveGoogleChatAccount({ cfg: cfg as PoolbotConfig });
107
107
  if (account.credentialSource === "none") return;
108
108
  const user = normalizeGoogleChatTarget(id) ?? id;
109
109
  const target = isGoogleChatUserTarget(user) ? user : `users/${user}`;
@@ -129,13 +129,13 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
129
129
  reload: { configPrefixes: ["channels.googlechat"] },
130
130
  configSchema: buildChannelConfigSchema(GoogleChatConfigSchema),
131
131
  config: {
132
- listAccountIds: (cfg) => listGoogleChatAccountIds(cfg as MoltbotConfig),
132
+ listAccountIds: (cfg) => listGoogleChatAccountIds(cfg as PoolbotConfig),
133
133
  resolveAccount: (cfg, accountId) =>
134
- resolveGoogleChatAccount({ cfg: cfg as MoltbotConfig, accountId }),
135
- defaultAccountId: (cfg) => resolveDefaultGoogleChatAccountId(cfg as MoltbotConfig),
134
+ resolveGoogleChatAccount({ cfg: cfg as PoolbotConfig, accountId }),
135
+ defaultAccountId: (cfg) => resolveDefaultGoogleChatAccountId(cfg as PoolbotConfig),
136
136
  setAccountEnabled: ({ cfg, accountId, enabled }) =>
137
137
  setAccountEnabledInConfigSection({
138
- cfg: cfg as MoltbotConfig,
138
+ cfg: cfg as PoolbotConfig,
139
139
  sectionKey: "googlechat",
140
140
  accountId,
141
141
  enabled,
@@ -143,7 +143,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
143
143
  }),
144
144
  deleteAccount: ({ cfg, accountId }) =>
145
145
  deleteAccountFromConfigSection({
146
- cfg: cfg as MoltbotConfig,
146
+ cfg: cfg as PoolbotConfig,
147
147
  sectionKey: "googlechat",
148
148
  accountId,
149
149
  clearBaseFields: [
@@ -167,7 +167,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
167
167
  }),
168
168
  resolveAllowFrom: ({ cfg, accountId }) =>
169
169
  (resolveGoogleChatAccount({
170
- cfg: cfg as MoltbotConfig,
170
+ cfg: cfg as PoolbotConfig,
171
171
  accountId,
172
172
  }).config.dm?.allowFrom ?? []
173
173
  ).map((entry) => String(entry)),
@@ -181,7 +181,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
181
181
  resolveDmPolicy: ({ cfg, accountId, account }) => {
182
182
  const resolvedAccountId = accountId ?? account.accountId ?? DEFAULT_ACCOUNT_ID;
183
183
  const useAccountPath = Boolean(
184
- (cfg as MoltbotConfig).channels?.["googlechat"]?.accounts?.[resolvedAccountId],
184
+ (cfg as PoolbotConfig).channels?.["googlechat"]?.accounts?.[resolvedAccountId],
185
185
  );
186
186
  const allowFromPath = useAccountPath
187
187
  ? `channels.googlechat.accounts.${resolvedAccountId}.dm.`
@@ -231,7 +231,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
231
231
  self: async () => null,
232
232
  listPeers: async ({ cfg, accountId, query, limit }) => {
233
233
  const account = resolveGoogleChatAccount({
234
- cfg: cfg as MoltbotConfig,
234
+ cfg: cfg as PoolbotConfig,
235
235
  accountId,
236
236
  });
237
237
  const q = query?.trim().toLowerCase() || "";
@@ -251,7 +251,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
251
251
  },
252
252
  listGroups: async ({ cfg, accountId, query, limit }) => {
253
253
  const account = resolveGoogleChatAccount({
254
- cfg: cfg as MoltbotConfig,
254
+ cfg: cfg as PoolbotConfig,
255
255
  accountId,
256
256
  });
257
257
  const groups = account.config.groups ?? {};
@@ -291,7 +291,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
291
291
  resolveAccountId: ({ accountId }) => normalizeAccountId(accountId),
292
292
  applyAccountName: ({ cfg, accountId, name }) =>
293
293
  applyAccountNameToChannelSection({
294
- cfg: cfg as MoltbotConfig,
294
+ cfg: cfg as PoolbotConfig,
295
295
  channelKey: "googlechat",
296
296
  accountId,
297
297
  name,
@@ -307,7 +307,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
307
307
  },
308
308
  applyAccountConfig: ({ cfg, accountId, input }) => {
309
309
  const namedConfig = applyAccountNameToChannelSection({
310
- cfg: cfg as MoltbotConfig,
310
+ cfg: cfg as PoolbotConfig,
311
311
  channelKey: "googlechat",
312
312
  accountId,
313
313
  name: input.name,
@@ -315,7 +315,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
315
315
  const next =
316
316
  accountId !== DEFAULT_ACCOUNT_ID
317
317
  ? migrateBaseNameToDefaultAccount({
318
- cfg: namedConfig as MoltbotConfig,
318
+ cfg: namedConfig as PoolbotConfig,
319
319
  channelKey: "googlechat",
320
320
  })
321
321
  : namedConfig;
@@ -348,7 +348,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
348
348
  ...configPatch,
349
349
  },
350
350
  },
351
- } as MoltbotConfig;
351
+ } as PoolbotConfig;
352
352
  }
353
353
  return {
354
354
  ...next,
@@ -367,7 +367,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
367
367
  },
368
368
  },
369
369
  },
370
- } as MoltbotConfig;
370
+ } as PoolbotConfig;
371
371
  },
372
372
  },
373
373
  outbound: {
@@ -414,7 +414,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
414
414
  },
415
415
  sendText: async ({ cfg, to, text, accountId, replyToId, threadId }) => {
416
416
  const account = resolveGoogleChatAccount({
417
- cfg: cfg as MoltbotConfig,
417
+ cfg: cfg as PoolbotConfig,
418
418
  accountId,
419
419
  });
420
420
  const space = await resolveGoogleChatOutboundSpace({ account, target: to });
@@ -436,14 +436,14 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
436
436
  throw new Error("Google Chat mediaUrl is required.");
437
437
  }
438
438
  const account = resolveGoogleChatAccount({
439
- cfg: cfg as MoltbotConfig,
439
+ cfg: cfg as PoolbotConfig,
440
440
  accountId,
441
441
  });
442
442
  const space = await resolveGoogleChatOutboundSpace({ account, target: to });
443
443
  const thread = (threadId ?? replyToId ?? undefined) as string | undefined;
444
444
  const runtime = getGoogleChatRuntime();
445
445
  const maxBytes = resolveChannelMediaMaxBytes({
446
- cfg: cfg as MoltbotConfig,
446
+ cfg: cfg as PoolbotConfig,
447
447
  resolveChannelLimitMb: ({ cfg, accountId }) =>
448
448
  (cfg.channels?.["googlechat"] as { accounts?: Record<string, { mediaMaxMb?: number }>; mediaMaxMb?: number } | undefined)
449
449
  ?.accounts?.[accountId]?.mediaMaxMb ??
@@ -560,7 +560,7 @@ export const googlechatPlugin: ChannelPlugin<ResolvedGoogleChatAccount> = {
560
560
  });
561
561
  const unregister = await startGoogleChatMonitor({
562
562
  account,
563
- config: ctx.cfg as MoltbotConfig,
563
+ config: ctx.cfg as PoolbotConfig,
564
564
  runtime: ctx.runtime,
565
565
  abortSignal: ctx.abortSignal,
566
566
  webhookPath: account.config.webhookPath,
@@ -1,6 +1,6 @@
1
1
  import type { IncomingMessage, ServerResponse } from "node:http";
2
2
 
3
- import type { MoltbotConfig } from "poolbot/plugin-sdk";
3
+ import type { PoolbotConfig } from "poolbot/plugin-sdk";
4
4
  import { resolveMentionGatingWithBypass } from "poolbot/plugin-sdk";
5
5
 
6
6
  import {
@@ -30,7 +30,7 @@ export type GoogleChatRuntimeEnv = {
30
30
 
31
31
  export type GoogleChatMonitorOptions = {
32
32
  account: ResolvedGoogleChatAccount;
33
- config: MoltbotConfig;
33
+ config: PoolbotConfig;
34
34
  runtime: GoogleChatRuntimeEnv;
35
35
  abortSignal: AbortSignal;
36
36
  webhookPath?: string;
@@ -42,7 +42,7 @@ type GoogleChatCoreRuntime = ReturnType<typeof getGoogleChatRuntime>;
42
42
 
43
43
  type WebhookTarget = {
44
44
  account: ResolvedGoogleChatAccount;
45
- config: MoltbotConfig;
45
+ config: PoolbotConfig;
46
46
  runtime: GoogleChatRuntimeEnv;
47
47
  core: GoogleChatCoreRuntime;
48
48
  path: string;
@@ -357,24 +357,24 @@ function extractMentionInfo(annotations: GoogleChatAnnotation[], botUser?: strin
357
357
  * Resolve bot display name with fallback chain:
358
358
  * 1. Account config name
359
359
  * 2. Agent name from config
360
- * 3. "Moltbot" as generic fallback
360
+ * 3. "Poolbot" as generic fallback
361
361
  */
362
362
  function resolveBotDisplayName(params: {
363
363
  accountName?: string;
364
364
  agentId: string;
365
- config: MoltbotConfig;
365
+ config: PoolbotConfig;
366
366
  }): string {
367
367
  const { accountName, agentId, config } = params;
368
368
  if (accountName?.trim()) return accountName.trim();
369
369
  const agent = config.agents?.list?.find((a) => a.id === agentId);
370
370
  if (agent?.name?.trim()) return agent.name.trim();
371
- return "Moltbot";
371
+ return "Poolbot";
372
372
  }
373
373
 
374
374
  async function processMessageWithPipeline(params: {
375
375
  event: GoogleChatEvent;
376
376
  account: ResolvedGoogleChatAccount;
377
- config: MoltbotConfig;
377
+ config: PoolbotConfig;
378
378
  runtime: GoogleChatRuntimeEnv;
379
379
  core: GoogleChatCoreRuntime;
380
380
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
@@ -726,7 +726,7 @@ async function deliverGoogleChatReply(params: {
726
726
  spaceId: string;
727
727
  runtime: GoogleChatRuntimeEnv;
728
728
  core: GoogleChatCoreRuntime;
729
- config: MoltbotConfig;
729
+ config: PoolbotConfig;
730
730
  statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
731
731
  typingMessageName?: string;
732
732
  }): Promise<void> {
@@ -1,4 +1,4 @@
1
- import type { MoltbotConfig, DmPolicy } from "poolbot/plugin-sdk";
1
+ import type { PoolbotConfig, DmPolicy } from "poolbot/plugin-sdk";
2
2
  import {
3
3
  addWildcardAllowFrom,
4
4
  formatDocsLink,
@@ -22,7 +22,7 @@ const channel = "googlechat" as const;
22
22
  const ENV_SERVICE_ACCOUNT = "GOOGLE_CHAT_SERVICE_ACCOUNT";
23
23
  const ENV_SERVICE_ACCOUNT_FILE = "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE";
24
24
 
25
- function setGoogleChatDmPolicy(cfg: MoltbotConfig, policy: DmPolicy) {
25
+ function setGoogleChatDmPolicy(cfg: PoolbotConfig, policy: DmPolicy) {
26
26
  const allowFrom =
27
27
  policy === "open"
28
28
  ? addWildcardAllowFrom(cfg.channels?.["googlechat"]?.dm?.allowFrom)
@@ -51,9 +51,9 @@ function parseAllowFromInput(raw: string): string[] {
51
51
  }
52
52
 
53
53
  async function promptAllowFrom(params: {
54
- cfg: MoltbotConfig;
54
+ cfg: PoolbotConfig;
55
55
  prompter: WizardPrompter;
56
- }): Promise<MoltbotConfig> {
56
+ }): Promise<PoolbotConfig> {
57
57
  const current = params.cfg.channels?.["googlechat"]?.dm?.allowFrom ?? [];
58
58
  const entry = await params.prompter.text({
59
59
  message: "Google Chat allowFrom (user id or email)",
@@ -91,10 +91,10 @@ const dmPolicy: ChannelOnboardingDmPolicy = {
91
91
  };
92
92
 
93
93
  function applyAccountConfig(params: {
94
- cfg: MoltbotConfig;
94
+ cfg: PoolbotConfig;
95
95
  accountId: string;
96
96
  patch: Record<string, unknown>;
97
- }): MoltbotConfig {
97
+ }): PoolbotConfig {
98
98
  const { cfg, accountId, patch } = params;
99
99
  if (accountId === DEFAULT_ACCOUNT_ID) {
100
100
  return {
@@ -130,10 +130,10 @@ function applyAccountConfig(params: {
130
130
  }
131
131
 
132
132
  async function promptCredentials(params: {
133
- cfg: MoltbotConfig;
133
+ cfg: PoolbotConfig;
134
134
  prompter: WizardPrompter;
135
135
  accountId: string;
136
- }): Promise<MoltbotConfig> {
136
+ }): Promise<PoolbotConfig> {
137
137
  const { cfg, prompter, accountId } = params;
138
138
  const envReady =
139
139
  accountId === DEFAULT_ACCOUNT_ID &&
@@ -184,10 +184,10 @@ async function promptCredentials(params: {
184
184
  }
185
185
 
186
186
  async function promptAudience(params: {
187
- cfg: MoltbotConfig;
187
+ cfg: PoolbotConfig;
188
188
  prompter: WizardPrompter;
189
189
  accountId: string;
190
- }): Promise<MoltbotConfig> {
190
+ }): Promise<PoolbotConfig> {
191
191
  const account = resolveGoogleChatAccount({
192
192
  cfg: params.cfg,
193
193
  accountId: params.accountId,
@@ -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 { imessagePlugin } from "./src/channel.js";
@@ -9,7 +9,7 @@ const plugin = {
9
9
  name: "iMessage",
10
10
  description: "iMessage channel plugin",
11
11
  configSchema: emptyPluginConfigSchema(),
12
- register(api: MoltbotPluginApi) {
12
+ register(api: PoolbotPluginApi) {
13
13
  setIMessageRuntime(api.runtime);
14
14
  api.registerChannel({ plugin: imessagePlugin });
15
15
  },
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/imessage",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot iMessage channel plugin",
5
+ "description": "Poolbot iMessage channel plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -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 { linePlugin } from "./src/channel.js";
@@ -10,7 +10,7 @@ const plugin = {
10
10
  name: "LINE",
11
11
  description: "LINE Messaging API channel plugin",
12
12
  configSchema: emptyPluginConfigSchema(),
13
- register(api: MoltbotPluginApi) {
13
+ register(api: PoolbotPluginApi) {
14
14
  setLineRuntime(api.runtime);
15
15
  api.registerChannel({ plugin: linePlugin });
16
16
  registerLineCardCommand(api);
@@ -2,7 +2,7 @@
2
2
  "name": "@poolbot/line",
3
3
  "version": "2026.1.26",
4
4
  "type": "module",
5
- "description": "Moltbot LINE channel plugin",
5
+ "description": "Poolbot LINE channel plugin",
6
6
  "poolbot": {
7
7
  "extensions": [
8
8
  "./index.ts"
@@ -1,4 +1,4 @@
1
- import type { MoltbotPluginApi, LineChannelData, ReplyPayload } from "poolbot/plugin-sdk";
1
+ import type { PoolbotPluginApi, LineChannelData, ReplyPayload } from "poolbot/plugin-sdk";
2
2
  import {
3
3
  createActionCard,
4
4
  createImageCard,
@@ -150,7 +150,7 @@ function parseCardArgs(argsStr: string): {
150
150
  return result;
151
151
  }
152
152
 
153
- export function registerLineCardCommand(api: MoltbotPluginApi): void {
153
+ export function registerLineCardCommand(api: PoolbotPluginApi): void {
154
154
  api.registerCommand({
155
155
  name: "card",
156
156
  description: "Send a rich card message (LINE).",
@@ -1,5 +1,5 @@
1
1
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import type { MoltbotConfig, PluginRuntime } from "poolbot/plugin-sdk";
2
+ import type { PoolbotConfig, PluginRuntime } from "poolbot/plugin-sdk";
3
3
  import { linePlugin } from "./channel.js";
4
4
  import { setLineRuntime } from "./runtime.js";
5
5
 
@@ -12,7 +12,7 @@ type LineRuntimeMocks = {
12
12
 
13
13
  function createRuntime(): { runtime: PluginRuntime; mocks: LineRuntimeMocks } {
14
14
  const writeConfigFile = vi.fn(async () => {});
15
- const resolveLineAccount = vi.fn(({ cfg, accountId }: { cfg: MoltbotConfig; accountId?: string }) => {
15
+ const resolveLineAccount = vi.fn(({ cfg, accountId }: { cfg: PoolbotConfig; accountId?: string }) => {
16
16
  const lineConfig = (cfg.channels?.line ?? {}) as {
17
17
  tokenFile?: string;
18
18
  secretFile?: string;
@@ -48,7 +48,7 @@ describe("linePlugin gateway.logoutAccount", () => {
48
48
  const { runtime, mocks } = createRuntime();
49
49
  setLineRuntime(runtime);
50
50
 
51
- const cfg: MoltbotConfig = {
51
+ const cfg: PoolbotConfig = {
52
52
  channels: {
53
53
  line: {
54
54
  tokenFile: "/tmp/token",
@@ -71,7 +71,7 @@ describe("linePlugin gateway.logoutAccount", () => {
71
71
  const { runtime, mocks } = createRuntime();
72
72
  setLineRuntime(runtime);
73
73
 
74
- const cfg: MoltbotConfig = {
74
+ const cfg: PoolbotConfig = {
75
75
  channels: {
76
76
  line: {
77
77
  accounts: {
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it, vi } from "vitest";
2
- import type { MoltbotConfig, PluginRuntime } from "poolbot/plugin-sdk";
2
+ import type { PoolbotConfig, PluginRuntime } from "poolbot/plugin-sdk";
3
3
  import { linePlugin } from "./channel.js";
4
4
  import { setLineRuntime } from "./runtime.js";
5
5
 
@@ -33,7 +33,7 @@ function createRuntime(): { runtime: PluginRuntime; mocks: LineRuntimeMocks } {
33
33
  const sendMessageLine = vi.fn(async () => ({ messageId: "m-media", chatId: "c1" }));
34
34
  const chunkMarkdownText = vi.fn((text: string) => [text]);
35
35
  const resolveTextChunkLimit = vi.fn(() => 123);
36
- const resolveLineAccount = vi.fn(({ cfg, accountId }: { cfg: MoltbotConfig; accountId?: string }) => {
36
+ const resolveLineAccount = vi.fn(({ cfg, accountId }: { cfg: PoolbotConfig; accountId?: string }) => {
37
37
  const resolved = accountId ?? "default";
38
38
  const lineConfig = (cfg.channels?.line ?? {}) as {
39
39
  accounts?: Record<string, Record<string, unknown>>;
@@ -90,7 +90,7 @@ describe("linePlugin outbound.sendPayload", () => {
90
90
  it("sends flex message without dropping text", async () => {
91
91
  const { runtime, mocks } = createRuntime();
92
92
  setLineRuntime(runtime);
93
- const cfg = { channels: { line: {} } } as MoltbotConfig;
93
+ const cfg = { channels: { line: {} } } as PoolbotConfig;
94
94
 
95
95
  const payload = {
96
96
  text: "Now playing:",
@@ -121,7 +121,7 @@ describe("linePlugin outbound.sendPayload", () => {
121
121
  it("sends template message without dropping text", async () => {
122
122
  const { runtime, mocks } = createRuntime();
123
123
  setLineRuntime(runtime);
124
- const cfg = { channels: { line: {} } } as MoltbotConfig;
124
+ const cfg = { channels: { line: {} } } as PoolbotConfig;
125
125
 
126
126
  const payload = {
127
127
  text: "Choose one:",
@@ -157,7 +157,7 @@ describe("linePlugin outbound.sendPayload", () => {
157
157
  it("attaches quick replies when no text chunks are present", async () => {
158
158
  const { runtime, mocks } = createRuntime();
159
159
  setLineRuntime(runtime);
160
- const cfg = { channels: { line: {} } } as MoltbotConfig;
160
+ const cfg = { channels: { line: {} } } as PoolbotConfig;
161
161
 
162
162
  const payload = {
163
163
  channelData: {
@@ -197,7 +197,7 @@ describe("linePlugin outbound.sendPayload", () => {
197
197
  it("sends media before quick-reply text so buttons stay visible", async () => {
198
198
  const { runtime, mocks } = createRuntime();
199
199
  setLineRuntime(runtime);
200
- const cfg = { channels: { line: {} } } as MoltbotConfig;
200
+ const cfg = { channels: { line: {} } } as PoolbotConfig;
201
201
 
202
202
  const payload = {
203
203
  text: "Hello",
@@ -235,7 +235,7 @@ describe("linePlugin outbound.sendPayload", () => {
235
235
  it("uses configured text chunk limit for payloads", async () => {
236
236
  const { runtime, mocks } = createRuntime();
237
237
  setLineRuntime(runtime);
238
- const cfg = { channels: { line: { textChunkLimit: 123 } } } as MoltbotConfig;
238
+ const cfg = { channels: { line: { textChunkLimit: 123 } } } as PoolbotConfig;
239
239
 
240
240
  const payload = {
241
241
  text: "Hello world",
@@ -295,7 +295,7 @@ describe("linePlugin groups.resolveRequireMention", () => {
295
295
  },
296
296
  },
297
297
  },
298
- } as MoltbotConfig;
298
+ } as PoolbotConfig;
299
299
 
300
300
  const requireMention = linePlugin.groups.resolveRequireMention({
301
301
  cfg,