@poolzin/pool-bot 2026.1.26 → 2026.1.29
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.
- package/CHANGELOG.md +50 -1118
- package/LICENSE +21 -0
- package/README.md +47 -37
- package/assets/chrome-extension/README.md +2 -2
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -6
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +1 -1
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +3 -3
- package/dist/agents/auth-health.js +2 -6
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/external-cli-sync.js +5 -150
- package/dist/agents/auth-profiles/oauth.js +26 -7
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/auth-profiles/store.js +5 -13
- package/dist/agents/bash-tools.shared.js +8 -1
- package/dist/agents/cli-backends.js +8 -0
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +2 -2
- package/dist/agents/compaction.js +3 -0
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/identity.js +1 -1
- package/dist/agents/memory-search.js +7 -2
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +1 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-fallback.js +22 -0
- package/dist/agents/model-selection.js +1 -1
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +4 -4
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/extensions.js +5 -0
- package/dist/agents/pi-embedded-runner/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +10 -6
- package/dist/agents/pi-embedded-runner/run.js +4 -4
- package/dist/agents/pi-embedded-runner/sandbox-info.js +1 -4
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-utils.js +7 -1
- package/dist/agents/pi-extensions/compaction-safeguard-runtime.js +20 -0
- package/dist/agents/pi-extensions/compaction-safeguard.js +32 -3
- package/dist/agents/pi-tools.js +25 -15
- package/dist/agents/pi-tools.policy.js +34 -1
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/{clawdbot-tools.js → poolbot-tools.js} +2 -5
- package/dist/agents/sandbox/browser.js +5 -7
- package/dist/agents/sandbox/config.js +0 -12
- package/dist/agents/sandbox/constants.js +8 -8
- package/dist/agents/sandbox/context.js +3 -3
- package/dist/agents/sandbox/docker.js +8 -8
- package/dist/agents/sandbox/runtime-status.js +1 -1
- package/dist/agents/session-transcript-repair.js +1 -1
- package/dist/agents/session-write-lock.js +68 -0
- package/dist/agents/skills/config.js +9 -8
- package/dist/agents/skills/env-overrides.js +1 -1
- package/dist/agents/skills/frontmatter.js +15 -14
- package/dist/agents/skills/workspace.js +7 -7
- package/dist/agents/skills-install.js +1 -1
- package/dist/agents/skills-status.js +12 -12
- package/dist/agents/subagent-registry.store.js +2 -2
- package/dist/agents/system-prompt.js +22 -33
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +8 -2
- package/dist/agents/tools/browser-tool.js +19 -79
- package/dist/agents/tools/browser-tool.schema.js +1 -2
- package/dist/agents/tools/cron-tool.js +44 -1
- package/dist/agents/tools/discord-actions-guild.js +5 -1
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/message-tool.js +1 -0
- package/dist/agents/tools/sessions-send-helpers.js +17 -2
- package/dist/agents/tools/telegram-actions.js +93 -1
- package/dist/agents/tools/web-fetch.js +123 -103
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/workspace.js +36 -0
- package/dist/auto-reply/commands-registry.data.js +68 -3
- package/dist/auto-reply/commands-registry.js +14 -11
- package/dist/auto-reply/reply/agent-runner-execution.js +21 -3
- package/dist/auto-reply/reply/agent-runner-memory.js +5 -0
- package/dist/auto-reply/reply/bash-command.js +2 -2
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-info.js +50 -5
- package/dist/auto-reply/reply/commands-session.js +4 -4
- package/dist/auto-reply/reply/commands-tts.js +61 -63
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +65 -1
- package/dist/auto-reply/reply/followup-runner.js +5 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply-run.js +4 -0
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/history.js +23 -0
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/session-updates.js +6 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +142 -50
- package/dist/browser/bridge-server.js +1 -3
- package/dist/browser/client-actions-core.js +13 -7
- package/dist/browser/client-actions-observe.js +14 -8
- package/dist/browser/client-actions-state.js +21 -15
- package/dist/browser/client-fetch.js +74 -61
- package/dist/browser/client.js +19 -21
- package/dist/browser/config.js +13 -26
- package/dist/browser/constants.js +1 -1
- package/dist/browser/control-service.js +72 -0
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/pw-session.js +41 -4
- package/dist/browser/pw-tools-core.downloads.js +1 -1
- package/dist/browser/pw-tools-core.interactions.js +5 -5
- package/dist/browser/pw-tools-core.responses.js +1 -1
- package/dist/browser/routes/agent.act.js +13 -0
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/routes/basic.js +0 -1
- package/dist/browser/routes/dispatcher.js +86 -0
- package/dist/browser/server-context.js +3 -3
- package/dist/browser/server.js +7 -9
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +1620 -1618
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +27 -21
- package/dist/canvas-host/server.js +66 -32
- package/dist/channels/plugins/actions/discord/handle-action.guild-admin.js +5 -1
- package/dist/channels/plugins/actions/telegram.js +60 -7
- package/dist/channels/plugins/catalog.js +6 -4
- package/dist/channels/plugins/group-mentions.js +48 -1
- package/dist/channels/plugins/helpers.js +2 -2
- package/dist/channels/plugins/message-action-names.js +1 -0
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +2 -2
- package/dist/channels/plugins/onboarding/slack.js +4 -4
- package/dist/channels/plugins/onboarding/telegram.js +17 -9
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- package/dist/channels/plugins/outbound/telegram.js +38 -0
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
- package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
- package/dist/channels/registry.js +1 -1
- package/dist/cli/acp-cli.js +2 -2
- package/dist/cli/argv.js +14 -7
- package/dist/cli/banner.js +3 -1
- package/dist/cli/browser-cli-actions-input/register.element.js +72 -44
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +55 -35
- package/dist/cli/browser-cli-actions-input/register.form-wait-eval.js +41 -28
- package/dist/cli/browser-cli-actions-input/register.navigation.js +23 -14
- package/dist/cli/browser-cli-actions-input/shared.js +10 -3
- package/dist/cli/browser-cli-actions-observe.js +29 -21
- package/dist/cli/browser-cli-debug.js +49 -35
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +8 -8
- package/dist/cli/browser-cli-inspect.js +23 -17
- package/dist/cli/browser-cli-manage.js +106 -56
- package/dist/cli/browser-cli-shared.js +34 -1
- package/dist/cli/browser-cli-state.cookies-storage.js +53 -39
- package/dist/cli/browser-cli-state.js +90 -64
- package/dist/cli/browser-cli.js +4 -5
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +26 -0
- package/dist/cli/command-format.js +11 -7
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +1 -1
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +5 -3
- package/dist/cli/daemon-cli/status.print.js +6 -6
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +7 -7
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +4 -4
- package/dist/cli/gateway-cli/register.js +1 -1
- package/dist/cli/gateway-cli/run.js +11 -8
- package/dist/cli/gateway-cli/shared.js +4 -4
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +1 -1
- package/dist/cli/models-cli.js +2 -2
- package/dist/cli/node-cli/daemon.js +2 -2
- package/dist/cli/node-cli/register.js +1 -1
- package/dist/cli/nodes-camera.js +3 -1
- package/dist/cli/nodes-canvas.js +3 -1
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/nodes-cli/register.js +1 -1
- package/dist/cli/nodes-screen.js +1 -1
- package/dist/cli/pairing-cli.js +3 -3
- package/dist/cli/plugin-registry.js +2 -2
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/profile.js +2 -2
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +15 -16
- package/dist/cli/program/message/register.send.js +2 -1
- package/dist/cli/program/preaction.js +4 -2
- package/dist/cli/program/register.agent.js +12 -12
- package/dist/cli/program/register.configure.js +1 -1
- package/dist/cli/program/register.maintenance.js +4 -4
- package/dist/cli/program/register.message.js +5 -5
- package/dist/cli/program/register.onboard.js +5 -3
- package/dist/cli/program/register.setup.js +2 -2
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/run-main.js +11 -4
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +18 -8
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +1 -1
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +58 -42
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +2 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -3
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +4 -54
- package/dist/commands/auth-choice.apply.anthropic.js +6 -109
- package/dist/commands/auth-choice.apply.openai.js +1 -33
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/channels/list.js +2 -2
- package/dist/commands/channels/shared.js +1 -1
- package/dist/commands/channels/status.js +1 -1
- package/dist/commands/chutes-oauth.js +1 -1
- package/dist/commands/configure.channels.js +4 -4
- package/dist/commands/configure.gateway-auth.js +1 -8
- package/dist/commands/configure.gateway.js +1 -10
- package/dist/commands/configure.wizard.js +11 -11
- package/dist/commands/daemon-install-helpers.js +1 -1
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +122 -3
- package/dist/commands/doctor-config-flow.js +7 -7
- package/dist/commands/doctor-format.js +2 -2
- package/dist/commands/doctor-gateway-daemon-flow.js +1 -1
- package/dist/commands/doctor-gateway-services.js +3 -3
- package/dist/commands/doctor-platform-notes.js +1 -1
- package/dist/commands/doctor-security.js +48 -1
- package/dist/commands/doctor-state-integrity.js +3 -3
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +4 -4
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +4 -4
- package/dist/commands/doctor.js +13 -12
- package/dist/commands/gateway-status.js +2 -2
- package/dist/commands/models/auth.js +23 -22
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +8 -9
- package/dist/commands/onboard-auth.credentials.js +2 -2
- package/dist/commands/onboard-channels.js +3 -3
- package/dist/commands/onboard-helpers.js +4 -4
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +38 -34
- package/dist/commands/onboard-non-interactive/local/gateway-config.js +7 -4
- package/dist/commands/onboard-non-interactive/local.js +1 -1
- package/dist/commands/onboard-non-interactive/remote.js +1 -1
- package/dist/commands/onboard-non-interactive.js +1 -1
- package/dist/commands/onboard-remote.js +2 -2
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +25 -4
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/reset.js +3 -3
- package/dist/commands/sandbox-display.js +1 -1
- package/dist/commands/sandbox-explain.js +2 -2
- package/dist/commands/setup.js +2 -2
- package/dist/commands/signal-install.js +2 -2
- package/dist/commands/status-all/diagnosis.js +1 -1
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status-all.js +3 -3
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +5 -0
- package/dist/config/config.js +1 -1
- package/dist/config/group-policy.js +69 -0
- package/dist/config/io.js +17 -5
- package/dist/config/legacy.migrations.part-3.js +3 -0
- package/dist/config/logging.js +3 -3
- package/dist/config/paths.js +44 -14
- package/dist/config/schema.js +23 -11
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/types.poolbot.js +1 -0
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-defaults.js +1 -0
- package/dist/config/zod-schema.agent-runtime.js +39 -7
- package/dist/config/zod-schema.hooks.js +2 -0
- package/dist/config/zod-schema.js +9 -3
- package/dist/config/zod-schema.providers-core.js +23 -0
- package/dist/config/zod-schema.providers-whatsapp.js +3 -0
- package/dist/control-ui/assets/index-CIRDm-Lu.css +1 -0
- package/dist/control-ui/assets/{index-Cl-Y9zqE.js → index-CmNMuoem.js} +620 -578
- package/dist/control-ui/assets/index-CmNMuoem.js.map +1 -0
- package/dist/control-ui/index.html +4 -4
- package/dist/cron/isolated-agent/run.js +38 -3
- package/dist/daemon/constants.js +16 -16
- package/dist/daemon/inspect.js +12 -12
- package/dist/daemon/paths.js +1 -1
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/discord/monitor/listeners.js +25 -1
- package/dist/discord/monitor/native-command.js +7 -5
- package/dist/discord/monitor/presence-cache.js +38 -0
- package/dist/discord/monitor/provider.js +21 -7
- package/dist/entry.js +4 -4
- package/dist/gateway/auth.js +52 -19
- package/dist/gateway/hooks-mapping.js +18 -4
- package/dist/gateway/hooks.js +5 -7
- package/dist/gateway/http-utils.js +3 -5
- package/dist/gateway/net.js +1 -1
- package/dist/gateway/openai-http.js +3 -3
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/protocol/client-info.js +5 -5
- package/dist/gateway/protocol/schema/logs-chat.js +1 -1
- package/dist/gateway/server/health-state.js +3 -3
- package/dist/gateway/server/hooks.js +1 -0
- package/dist/gateway/server/ws-connection/message-handler.js +44 -35
- package/dist/gateway/server-browser.js +14 -3
- package/dist/gateway/server-chat.js +28 -2
- package/dist/gateway/server-discovery-runtime.js +25 -17
- package/dist/gateway/server-discovery.js +5 -5
- package/dist/gateway/server-http.js +9 -3
- package/dist/gateway/server-methods/agent.js +2 -0
- package/dist/gateway/server-methods/browser.js +204 -0
- package/dist/gateway/server-methods/chat.js +5 -0
- package/dist/gateway/server-methods/config.js +8 -8
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/skills.js +3 -3
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-methods-list.js +1 -0
- package/dist/gateway/server-methods.js +3 -0
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-restart-sentinel.js +10 -5
- package/dist/gateway/server-runtime-config.js +5 -2
- package/dist/gateway/server.impl.js +7 -6
- package/dist/gateway/session-utils.fs.js +1 -1
- package/dist/gateway/session-utils.js +31 -11
- package/dist/gateway/test-helpers.mocks.js +5 -5
- package/dist/gateway/test-helpers.server.js +30 -11
- package/dist/gateway/tools-invoke-http.js +15 -8
- package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
- package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
- package/dist/hooks/bundled/command-logger/handler.js +1 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +4 -4
- package/dist/hooks/bundled/session-memory/handler.js +2 -2
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +1 -1
- package/dist/hooks/config.js +8 -7
- package/dist/hooks/frontmatter.js +16 -15
- package/dist/hooks/gmail-ops.js +4 -4
- package/dist/hooks/hooks-status.js +13 -13
- package/dist/hooks/install.js +8 -7
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +3 -3
- package/dist/hooks/plugin-hooks.js +8 -8
- package/dist/hooks/workspace.js +10 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/index.js +4 -4
- package/dist/infra/agent-events.js +3 -0
- package/dist/infra/bonjour-discovery.js +9 -9
- package/dist/infra/bonjour.js +19 -12
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/fs-safe.js +76 -0
- package/dist/infra/gateway-lock.js +1 -1
- package/dist/infra/heartbeat-visibility.js +14 -0
- package/dist/infra/heartbeat-wake.js +2 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/net/ssrf.js +77 -1
- package/dist/infra/outbound/message-action-spec.js +1 -0
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +7 -7
- package/dist/infra/{clawdbot-root.js → poolbot-root.js} +3 -2
- package/dist/infra/ports-format.js +2 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +2 -4
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +1 -1
- package/dist/infra/retry-policy.js +4 -1
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +1 -1
- package/dist/infra/skills-remote.js +3 -3
- package/dist/infra/tailscale.js +63 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +89 -2
- package/dist/infra/update-check.js +2 -4
- package/dist/infra/update-global.js +5 -5
- package/dist/infra/update-runner.js +32 -8
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +10 -10
- package/dist/line/monitor.js +1 -5
- package/dist/line/signature.js +11 -0
- package/dist/line/webhook.js +2 -6
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +2 -2
- package/dist/macos/relay.js +4 -4
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +1 -1
- package/dist/media/input-files.js +40 -32
- package/dist/media/server.js +39 -15
- package/dist/media/store.js +72 -52
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +33 -1
- package/dist/memory/batch-gemini.js +1 -1
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/node-host/runner.js +60 -56
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugin-sdk/index.js +1 -0
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/discovery.js +6 -5
- package/dist/plugins/install.js +8 -7
- package/dist/plugins/loader.js +10 -4
- package/dist/plugins/manifest-registry.js +2 -2
- package/dist/plugins/manifest.js +16 -1
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +5 -5
- package/dist/plugins/runtime.js +1 -1
- package/dist/plugins/services.js +3 -3
- package/dist/plugins/status.js +2 -2
- package/dist/plugins/tools.js +2 -2
- package/dist/plugins/update.js +3 -3
- package/dist/providers/qwen-portal-oauth.js +1 -1
- package/dist/routing/session-key.js +17 -12
- package/dist/security/audit-extra.js +116 -69
- package/dist/security/audit-fs.js +78 -0
- package/dist/security/audit.js +121 -88
- package/dist/security/external-content.js +143 -0
- package/dist/security/fix.js +93 -8
- package/dist/security/windows-acl.js +162 -0
- package/dist/slack/monitor/media.js +32 -4
- package/dist/slack/monitor/message-handler/dispatch.js +2 -1
- package/dist/slack/monitor/slash.js +3 -3
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/api-logging.js +24 -0
- package/dist/telegram/bot/delivery.js +139 -22
- package/dist/telegram/bot-handlers.js +70 -8
- package/dist/telegram/bot-message-context.js +79 -21
- package/dist/telegram/bot-message-dispatch.js +64 -0
- package/dist/telegram/bot-native-commands.js +244 -94
- package/dist/telegram/bot.js +18 -2
- package/dist/telegram/fetch.js +25 -1
- package/dist/telegram/monitor.js +11 -3
- package/dist/telegram/network-config.js +23 -0
- package/dist/telegram/network-errors.js +103 -0
- package/dist/telegram/send.js +148 -4
- package/dist/telegram/sticker-cache.js +202 -0
- package/dist/telegram/webhook-set.js +13 -6
- package/dist/telegram/webhook.js +8 -3
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +27 -22
- package/dist/tui/components/filterable-select-list.js +1 -1
- package/dist/tui/components/searchable-select-list.js +2 -1
- package/dist/tui/gateway-chat.js +1 -1
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +1 -1
- package/dist/version.js +1 -1
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/process-message.js +1 -1
- package/dist/web/auto-reply/monitor.js +1 -1
- package/dist/web/login.js +1 -1
- package/dist/web/session.js +2 -2
- package/dist/wizard/onboarding.finalize.js +24 -21
- package/dist/wizard/onboarding.gateway-config.js +1 -11
- package/dist/wizard/onboarding.js +22 -11
- package/docs/CNAME +1 -1
- package/docs/RELEASE_WORKFLOW.md +133 -0
- package/docs/RELEASE_WORKFOTS_COMPARISON.md +151 -0
- package/docs/WORKFOTS_OPTIMIZATION.md +138 -0
- package/docs/_config.yml +2 -2
- package/docs/_layouts/default.html +9 -9
- package/docs/adr/002-model-fallback-router.md +104 -0
- package/docs/assets/terminal.css +3 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +17 -17
- package/docs/automation/cron-vs-heartbeat.md +8 -8
- package/docs/automation/gmail-pubsub.md +23 -21
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +13 -8
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +4 -4
- package/docs/channels/bluebubbles.md +13 -12
- package/docs/channels/discord.md +21 -16
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/imessage.md +12 -12
- package/docs/channels/index.md +6 -4
- package/docs/channels/line.md +183 -0
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +15 -15
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +30 -26
- package/docs/channels/nextcloud-talk.md +7 -7
- package/docs/channels/nostr.md +9 -9
- package/docs/channels/signal.md +9 -9
- package/docs/channels/slack.md +15 -13
- package/docs/channels/telegram.md +149 -20
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +366 -0
- package/docs/channels/whatsapp.md +25 -25
- package/docs/channels/zalo.md +8 -8
- package/docs/channels/zalouser.md +12 -12
- package/docs/cli/acp.md +24 -24
- package/docs/cli/agent.md +6 -6
- package/docs/cli/agents.md +9 -9
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +33 -35
- package/docs/cli/channels.md +21 -21
- package/docs/cli/config.md +15 -15
- package/docs/cli/configure.md +6 -6
- package/docs/cli/cron.md +5 -5
- package/docs/cli/dashboard.md +4 -4
- package/docs/cli/devices.md +13 -13
- package/docs/cli/directory.md +12 -12
- package/docs/cli/dns.md +5 -5
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +6 -6
- package/docs/cli/gateway.md +24 -24
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +34 -34
- package/docs/cli/index.md +46 -52
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +11 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +17 -17
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -6
- package/docs/cli/pairing.md +4 -4
- package/docs/cli/plugins.md +16 -16
- package/docs/cli/reset.md +5 -5
- package/docs/cli/sandbox.md +28 -28
- package/docs/cli/security.md +5 -5
- package/docs/cli/sessions.md +5 -5
- package/docs/cli/setup.md +6 -6
- package/docs/cli/skills.md +6 -6
- package/docs/cli/status.md +7 -7
- package/docs/cli/system.md +6 -6
- package/docs/cli/tui.md +5 -5
- package/docs/cli/uninstall.md +5 -5
- package/docs/cli/update.md +20 -20
- package/docs/cli/voicecall.md +9 -9
- package/docs/cli/webhooks.md +5 -5
- package/docs/concepts/agent-loop.md +5 -5
- package/docs/concepts/agent-workspace.md +20 -20
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +1 -1
- package/docs/concepts/channel-routing.md +4 -4
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +6 -6
- package/docs/concepts/groups.md +41 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +14 -14
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +22 -22
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +18 -18
- package/docs/concepts/oauth.md +31 -58
- package/docs/concepts/presence.md +2 -2
- package/docs/concepts/retry.md +1 -1
- package/docs/concepts/session-pruning.md +1 -1
- package/docs/concepts/session-tool.md +4 -4
- package/docs/concepts/session.md +14 -14
- package/docs/concepts/streaming.md +3 -3
- package/docs/concepts/system-prompt.md +11 -11
- package/docs/concepts/timezone.md +2 -2
- package/docs/concepts/typebox.md +2 -2
- package/docs/concepts/typing-indicators.md +2 -2
- package/docs/concepts/usage-tracking.md +3 -3
- package/docs/date-time.md +2 -2
- package/docs/debug/node-issue.md +4 -4
- package/docs/debugging.md +14 -14
- package/docs/diagnostics/flags.md +5 -5
- package/docs/docs.json +37 -7
- package/docs/environment.md +4 -4
- package/docs/experiments/plans/cron-add-hardening.md +1 -1
- package/docs/experiments/plans/openresponses-gateway.md +2 -2
- package/docs/experiments/research/memory.md +6 -6
- package/docs/gateway/authentication.md +33 -57
- package/docs/gateway/background-process.md +1 -1
- package/docs/gateway/bonjour.md +21 -21
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +13 -12
- package/docs/gateway/configuration-examples.md +14 -14
- package/docs/gateway/configuration.md +145 -132
- package/docs/gateway/discovery.md +6 -6
- package/docs/gateway/doctor.md +26 -26
- package/docs/gateway/gateway-lock.md +1 -1
- package/docs/gateway/health.md +11 -11
- package/docs/gateway/heartbeat.md +5 -5
- package/docs/gateway/index.md +56 -56
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +23 -23
- package/docs/gateway/openai-http-api.md +10 -10
- package/docs/gateway/openresponses-http-api.md +10 -10
- package/docs/gateway/pairing.md +8 -8
- package/docs/gateway/protocol.md +5 -4
- package/docs/gateway/remote-gateway-readme.md +13 -13
- package/docs/gateway/remote.md +4 -4
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +10 -7
- package/docs/gateway/sandboxing.md +8 -6
- package/docs/gateway/security/formal-verification.md +107 -0
- package/docs/gateway/{security.md → security/index.md} +151 -71
- package/docs/gateway/tailscale.md +16 -35
- package/docs/gateway/tools-invoke-http-api.md +3 -3
- package/docs/gateway/troubleshooting.md +108 -113
- package/docs/help/faq.md +326 -335
- package/docs/help/troubleshooting.md +15 -15
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +60 -60
- package/docs/index.md +35 -35
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +31 -31
- package/docs/install/index.md +28 -27
- package/docs/install/installer.md +21 -21
- package/docs/install/migrating.md +190 -0
- package/docs/install/nix.md +17 -17
- package/docs/install/node.md +7 -6
- package/docs/install/uninstall.md +29 -29
- package/docs/install/updating.md +50 -49
- package/docs/logging.md +58 -58
- package/docs/multi-agent-sandbox-tools.md +7 -7
- package/docs/network.md +1 -1
- package/docs/nodes/audio.md +2 -2
- package/docs/nodes/camera.md +18 -18
- package/docs/nodes/images.md +4 -4
- package/docs/nodes/index.md +55 -55
- package/docs/nodes/location-command.md +2 -2
- package/docs/nodes/media-understanding.md +5 -5
- package/docs/nodes/talk.md +1 -1
- package/docs/nodes/voicewake.md +2 -2
- package/docs/northflank.mdx +53 -0
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +13 -13
- package/docs/platforms/digitalocean.md +243 -0
- package/docs/platforms/exe-dev.md +23 -23
- package/docs/platforms/fly.md +129 -18
- package/docs/platforms/gcp.md +498 -0
- package/docs/platforms/hetzner.md +30 -30
- package/docs/platforms/index.md +9 -9
- package/docs/platforms/ios.md +13 -13
- package/docs/platforms/linux.md +11 -11
- package/docs/platforms/mac/bundled-gateway.md +14 -14
- package/docs/platforms/mac/canvas.md +14 -14
- package/docs/platforms/mac/child-process.md +9 -9
- package/docs/platforms/mac/dev-setup.md +11 -11
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +7 -7
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +3 -3
- package/docs/platforms/mac/release.md +20 -20
- package/docs/platforms/mac/remote.md +14 -14
- package/docs/platforms/mac/signing.md +7 -7
- package/docs/platforms/mac/skills.md +4 -4
- package/docs/platforms/mac/voice-overlay.md +2 -2
- package/docs/platforms/mac/webchat.md +2 -2
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +20 -20
- package/docs/platforms/oracle.md +291 -0
- package/docs/platforms/raspberry-pi.md +354 -0
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +64 -64
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +15 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +23 -27
- package/docs/providers/claude-max-api-proxy.md +145 -0
- package/docs/providers/deepgram.md +2 -2
- package/docs/providers/github-copilot.md +11 -11
- package/docs/providers/glm.md +4 -4
- package/docs/providers/index.md +7 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +2 -2
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +9 -13
- package/docs/providers/opencode.md +3 -3
- package/docs/providers/openrouter.md +3 -3
- package/docs/providers/qwen.md +6 -6
- package/docs/providers/synthetic.md +4 -4
- package/docs/providers/venice.md +21 -21
- package/docs/providers/vercel-ai-gateway.md +5 -4
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +5 -5
- package/docs/refactor/exec-host.md +5 -5
- package/docs/refactor/plugin-sdk.md +12 -12
- package/docs/refactor/strict-config.md +11 -11
- package/docs/reference/AGENTS.default.md +10 -10
- package/docs/reference/RELEASING.md +27 -27
- package/docs/reference/api-usage-costs.md +6 -6
- package/docs/reference/device-models.md +7 -7
- package/docs/reference/rpc.md +3 -3
- package/docs/reference/session-management-compaction.md +19 -19
- package/docs/reference/templates/AGENTS.dev.md +1 -1
- package/docs/reference/templates/BOOT.md +1 -1
- package/docs/reference/templates/TOOLS.dev.md +1 -1
- package/docs/reference/templates/USER.dev.md +2 -2
- package/docs/reference/test.md +2 -2
- package/docs/reference/transcript-hygiene.md +1 -1
- package/docs/render.mdx +158 -0
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +107 -0
- package/docs/start/getting-started.md +31 -25
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +74 -38
- package/docs/start/onboarding.md +7 -7
- package/docs/start/pairing.md +10 -10
- package/docs/start/{clawd.md → poolbot.md} +29 -29
- package/docs/start/setup.md +30 -17
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +29 -26
- package/docs/testing.md +12 -12
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +10 -10
- package/docs/tools/browser-login.md +4 -4
- package/docs/tools/browser.md +135 -241
- package/docs/tools/chrome-extension.md +31 -48
- package/docs/tools/creating-skills.md +4 -4
- package/docs/tools/elevated.md +1 -0
- package/docs/tools/exec-approvals.md +8 -5
- package/docs/tools/exec.md +15 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +18 -15
- package/docs/tools/llm-task.md +1 -1
- package/docs/tools/lobster.md +23 -11
- package/docs/tools/{clawdhub.md → poolhub.md} +7 -7
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +39 -31
- package/docs/tools/slash-commands.md +10 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +6 -1
- package/docs/web/control-ui.md +13 -12
- package/docs/web/dashboard.md +8 -4
- package/docs/web/index.md +6 -5
- package/docs/web/webchat.md +1 -1
- package/extensions/bluebubbles/index.ts +3 -3
- package/extensions/bluebubbles/package.json +5 -5
- package/extensions/bluebubbles/src/accounts.ts +9 -9
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +6 -6
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +17 -17
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/config-schema.ts +1 -1
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +56 -50
- package/extensions/bluebubbles/src/monitor.ts +181 -6
- package/extensions/bluebubbles/src/onboarding.ts +9 -9
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/runtime.ts +1 -1
- package/extensions/bluebubbles/src/send.ts +2 -2
- package/extensions/copilot-proxy/README.md +2 -2
- package/extensions/copilot-proxy/index.ts +1 -1
- package/extensions/copilot-proxy/package.json +4 -4
- package/extensions/diagnostics-otel/index.ts +3 -3
- package/extensions/diagnostics-otel/package.json +4 -4
- package/extensions/diagnostics-otel/src/service.test.ts +15 -15
- package/extensions/diagnostics-otel/src/service.ts +85 -85
- package/extensions/discord/index.ts +3 -3
- package/extensions/discord/package.json +4 -4
- package/extensions/discord/src/channel.ts +1 -1
- package/extensions/discord/src/runtime.ts +1 -1
- package/extensions/google-antigravity-auth/README.md +2 -2
- package/extensions/google-antigravity-auth/index.ts +9 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +2 -2
- package/extensions/google-gemini-cli-auth/index.ts +1 -1
- package/extensions/google-gemini-cli-auth/oauth.ts +2 -2
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/node_modules/.bin/poolbot +21 -0
- package/extensions/googlechat/package.json +7 -7
- package/extensions/googlechat/src/accounts.ts +9 -9
- package/extensions/googlechat/src/actions.ts +8 -8
- package/extensions/googlechat/src/api.ts +1 -1
- package/extensions/googlechat/src/channel.ts +23 -23
- package/extensions/googlechat/src/monitor.ts +9 -9
- package/extensions/googlechat/src/onboarding.ts +11 -11
- package/extensions/googlechat/src/runtime.ts +1 -1
- package/extensions/googlechat/src/types.config.ts +1 -1
- package/extensions/imessage/index.ts +3 -3
- package/extensions/imessage/package.json +4 -4
- package/extensions/imessage/src/channel.ts +1 -1
- package/extensions/imessage/src/runtime.ts +1 -1
- package/extensions/line/index.ts +3 -3
- package/extensions/line/node_modules/.bin/poolbot +21 -0
- package/extensions/line/package.json +6 -6
- package/extensions/line/src/card-command.ts +3 -3
- package/extensions/line/src/channel.logout.test.ts +4 -4
- package/extensions/line/src/channel.sendPayload.test.ts +8 -8
- package/extensions/line/src/channel.ts +5 -5
- package/extensions/line/src/runtime.ts +1 -1
- package/extensions/llm-task/README.md +1 -1
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +4 -4
- package/extensions/llm-task/src/llm-task-tool.ts +5 -5
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +26 -6
- package/extensions/lobster/src/lobster-tool.ts +24 -6
- package/extensions/matrix/CHANGELOG.md +9 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -0
- package/extensions/matrix/node_modules/.bin/poolbot +21 -0
- package/extensions/matrix/package.json +7 -7
- package/extensions/matrix/src/actions.ts +1 -1
- package/extensions/matrix/src/channel.directory.test.ts +1 -1
- package/extensions/matrix/src/channel.ts +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -1
- package/extensions/matrix/src/directory-live.ts +1 -1
- package/extensions/matrix/src/group-mentions.ts +1 -1
- package/extensions/matrix/src/matrix/accounts.ts +1 -1
- package/extensions/matrix/src/matrix/actions/messages.ts +1 -1
- package/extensions/matrix/src/matrix/actions/reactions.ts +1 -1
- package/extensions/matrix/src/matrix/actions/room.ts +3 -3
- package/extensions/matrix/src/matrix/actions/summary.ts +1 -1
- package/extensions/matrix/src/matrix/actions/types.ts +1 -1
- package/extensions/matrix/src/matrix/active-client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +2 -2
- package/extensions/matrix/src/matrix/client/create-client.ts +2 -2
- package/extensions/matrix/src/matrix/client/logging.ts +1 -1
- package/extensions/matrix/src/matrix/client/shared.ts +3 -3
- package/extensions/matrix/src/matrix/deps.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +3 -3
- package/extensions/matrix/src/matrix/monitor/direct.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/handler.ts +8 -8
- package/extensions/matrix/src/matrix/monitor/index.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/location.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/media.test.ts +3 -3
- package/extensions/matrix/src/matrix/monitor/media.ts +3 -3
- package/extensions/matrix/src/matrix/monitor/replies.ts +2 -2
- package/extensions/matrix/src/matrix/monitor/room-info.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/threads.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/types.ts +1 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/probe.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +2 -2
- package/extensions/matrix/src/matrix/send/media.ts +1 -1
- package/extensions/matrix/src/matrix/send/targets.test.ts +1 -1
- package/extensions/matrix/src/matrix/send/targets.ts +1 -1
- package/extensions/matrix/src/matrix/send/types.ts +2 -2
- package/extensions/matrix/src/matrix/send.test.ts +3 -3
- package/extensions/matrix/src/matrix/send.ts +4 -4
- package/extensions/matrix/src/onboarding.ts +3 -3
- package/extensions/matrix/src/outbound.ts +1 -1
- package/extensions/matrix/src/resolve-targets.ts +1 -1
- package/extensions/matrix/src/runtime.ts +1 -1
- package/extensions/matrix/src/tool-actions.ts +1 -1
- package/extensions/matrix/src/types.ts +1 -1
- package/extensions/mattermost/index.ts +3 -3
- package/extensions/mattermost/package.json +5 -5
- package/extensions/mattermost/src/channel.ts +1 -1
- package/extensions/mattermost/src/config-schema.ts +1 -1
- package/extensions/mattermost/src/group-mentions.ts +1 -1
- package/extensions/mattermost/src/mattermost/accounts.ts +9 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
- package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
- package/extensions/mattermost/src/onboarding-helpers.ts +4 -4
- package/extensions/mattermost/src/onboarding.ts +4 -4
- package/extensions/mattermost/src/runtime.ts +1 -1
- package/extensions/mattermost/src/types.ts +1 -1
- package/extensions/memory-core/index.ts +3 -3
- package/extensions/memory-core/node_modules/.bin/poolbot +21 -0
- package/extensions/memory-core/package.json +5 -5
- package/extensions/memory-lancedb/config.ts +2 -2
- package/extensions/memory-lancedb/index.test.ts +2 -2
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -0
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/memory-lancedb/{clawdbot.plugin.json → poolbot.plugin.json} +1 -1
- package/extensions/msteams/CHANGELOG.md +7 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/node_modules/.bin/poolbot +21 -0
- package/extensions/msteams/package.json +6 -6
- package/extensions/msteams/src/attachments.test.ts +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +3 -3
- package/extensions/msteams/src/conversation-store-fs.test.ts +3 -3
- package/extensions/msteams/src/directory-live.ts +1 -1
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/media-helpers.ts +1 -1
- package/extensions/msteams/src/messenger.test.ts +1 -1
- package/extensions/msteams/src/messenger.ts +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +3 -3
- package/extensions/msteams/src/onboarding.ts +11 -11
- package/extensions/msteams/src/outbound.ts +1 -1
- package/extensions/msteams/src/policy.test.ts +1 -1
- package/extensions/msteams/src/policy.ts +50 -5
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +4 -4
- package/extensions/msteams/src/polls.ts +8 -8
- package/extensions/msteams/src/probe.test.ts +1 -1
- package/extensions/msteams/src/probe.ts +1 -1
- package/extensions/msteams/src/reply-dispatcher.ts +36 -36
- package/extensions/msteams/src/runtime.ts +1 -1
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +5 -5
- package/extensions/msteams/src/token.ts +1 -1
- package/extensions/nextcloud-talk/index.ts +3 -3
- package/extensions/nextcloud-talk/package.json +5 -5
- package/extensions/nextcloud-talk/src/accounts.ts +1 -1
- package/extensions/nextcloud-talk/src/channel.ts +8 -8
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
- package/extensions/nextcloud-talk/src/inbound.ts +8 -8
- package/extensions/nextcloud-talk/src/monitor.ts +1 -1
- package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
- package/extensions/nextcloud-talk/src/policy.ts +2 -2
- package/extensions/nextcloud-talk/src/room-info.ts +1 -1
- package/extensions/nextcloud-talk/src/runtime.ts +1 -1
- package/extensions/nextcloud-talk/src/types.ts +1 -1
- package/extensions/nostr/CHANGELOG.md +4 -4
- package/extensions/nostr/README.md +3 -3
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/node_modules/.bin/poolbot +21 -0
- package/extensions/nostr/package.json +6 -6
- package/extensions/nostr/src/channel.ts +2 -2
- package/extensions/nostr/src/config-schema.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +3 -3
- package/extensions/nostr/src/runtime.ts +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/open-prose/package.json +3 -3
- package/extensions/open-prose/skills/prose/SKILL.md +5 -5
- package/extensions/open-prose/skills/prose/prose.md +4 -4
- package/extensions/qwen-portal-auth/README.md +2 -2
- package/extensions/qwen-portal-auth/index.ts +1 -1
- package/extensions/signal/index.ts +3 -3
- package/extensions/signal/package.json +4 -4
- package/extensions/signal/src/channel.ts +1 -1
- package/extensions/signal/src/runtime.ts +1 -1
- package/extensions/slack/index.ts +3 -3
- package/extensions/slack/package.json +4 -4
- package/extensions/slack/src/channel.ts +1 -1
- package/extensions/slack/src/runtime.ts +1 -1
- package/extensions/telegram/index.ts +3 -3
- package/extensions/telegram/package.json +4 -4
- package/extensions/telegram/src/channel.ts +3 -3
- package/extensions/telegram/src/runtime.ts +1 -1
- package/extensions/tlon/README.md +1 -1
- package/extensions/tlon/index.ts +3 -3
- package/extensions/tlon/package.json +5 -5
- package/extensions/tlon/src/channel.ts +15 -15
- package/extensions/tlon/src/config-schema.ts +1 -1
- package/extensions/tlon/src/monitor/discovery.ts +1 -1
- package/extensions/tlon/src/monitor/history.ts +1 -1
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +4 -4
- package/extensions/tlon/src/runtime.ts +1 -1
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/tlon/src/urbit/send.ts +19 -6
- package/extensions/twitch/CHANGELOG.md +21 -0
- package/extensions/twitch/README.md +89 -0
- package/extensions/twitch/index.ts +20 -0
- package/extensions/twitch/node_modules/.bin/poolbot +21 -0
- package/extensions/twitch/package.json +20 -0
- package/extensions/twitch/poolbot.plugin.json +9 -0
- package/extensions/twitch/src/access-control.test.ts +489 -0
- package/extensions/twitch/src/access-control.ts +154 -0
- package/extensions/twitch/src/actions.ts +173 -0
- package/extensions/twitch/src/client-manager-registry.ts +115 -0
- package/extensions/twitch/src/config-schema.ts +82 -0
- package/extensions/twitch/src/config.test.ts +88 -0
- package/extensions/twitch/src/config.ts +116 -0
- package/extensions/twitch/src/monitor.ts +257 -0
- package/extensions/twitch/src/onboarding.test.ts +311 -0
- package/extensions/twitch/src/onboarding.ts +411 -0
- package/extensions/twitch/src/outbound.test.ts +373 -0
- package/extensions/twitch/src/outbound.ts +186 -0
- package/extensions/twitch/src/plugin.test.ts +39 -0
- package/extensions/twitch/src/plugin.ts +274 -0
- package/extensions/twitch/src/probe.test.ts +198 -0
- package/extensions/twitch/src/probe.ts +118 -0
- package/extensions/twitch/src/resolver.ts +137 -0
- package/extensions/twitch/src/runtime.ts +14 -0
- package/extensions/twitch/src/send.test.ts +289 -0
- package/extensions/twitch/src/send.ts +136 -0
- package/extensions/twitch/src/status.test.ts +270 -0
- package/extensions/twitch/src/status.ts +176 -0
- package/extensions/twitch/src/token.test.ts +171 -0
- package/extensions/twitch/src/token.ts +87 -0
- package/extensions/twitch/src/twitch-client.test.ts +574 -0
- package/extensions/twitch/src/twitch-client.ts +277 -0
- package/extensions/twitch/src/types.ts +141 -0
- package/extensions/twitch/src/utils/markdown.ts +92 -0
- package/extensions/twitch/src/utils/twitch.ts +78 -0
- package/extensions/twitch/test/setup.ts +7 -0
- package/extensions/voice-call/CHANGELOG.md +13 -12
- package/extensions/voice-call/README.md +15 -14
- package/extensions/voice-call/index.ts +11 -9
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/{clawdbot.plugin.json → poolbot.plugin.json} +3 -3
- package/extensions/voice-call/src/cli.ts +1 -1
- package/extensions/voice-call/src/config.test.ts +204 -0
- package/extensions/voice-call/src/config.ts +61 -4
- package/extensions/voice-call/src/core-bridge.ts +10 -8
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/providers/twilio/webhook.ts +2 -1
- package/extensions/voice-call/src/providers/twilio.ts +2 -2
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/voice-call/src/runtime.ts +26 -15
- package/extensions/voice-call/src/types.ts +1 -0
- package/extensions/voice-call/src/webhook-security.test.ts +52 -0
- package/extensions/voice-call/src/webhook-security.ts +16 -5
- package/extensions/voice-call/src/webhook.ts +1 -0
- package/extensions/whatsapp/index.ts +3 -3
- package/extensions/whatsapp/package.json +4 -4
- package/extensions/whatsapp/src/channel.ts +1 -1
- package/extensions/whatsapp/src/runtime.ts +1 -1
- package/extensions/zalo/CHANGELOG.md +9 -9
- package/extensions/zalo/README.md +3 -3
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/node_modules/.bin/poolbot +21 -0
- package/extensions/zalo/package.json +6 -6
- package/extensions/zalo/src/accounts.ts +9 -9
- package/extensions/zalo/src/actions.ts +6 -6
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +20 -20
- package/extensions/zalo/src/config-schema.ts +1 -1
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +27 -27
- package/extensions/zalo/src/runtime.ts +1 -1
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalo/src/status-issues.ts +1 -1
- package/extensions/zalo/src/token.ts +1 -1
- package/extensions/zalouser/CHANGELOG.md +4 -4
- package/extensions/zalouser/README.md +17 -17
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/node_modules/.bin/poolbot +21 -0
- package/extensions/zalouser/package.json +6 -6
- package/extensions/zalouser/src/accounts.ts +10 -10
- package/extensions/zalouser/src/channel.ts +27 -27
- package/extensions/zalouser/src/config-schema.ts +1 -1
- package/extensions/zalouser/src/monitor.ts +5 -5
- package/extensions/zalouser/src/onboarding.ts +32 -32
- package/extensions/zalouser/src/runtime.ts +1 -1
- package/extensions/zalouser/src/status-issues.ts +2 -2
- package/git-hooks/pre-commit +0 -0
- package/package.json +78 -89
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +1 -1
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/bird/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +2 -2
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +15 -15
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +6 -5
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/food-order/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -0
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +1 -1
- package/skills/local-places/SKILL.md +1 -1
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-banana-pro/SKILL.md +10 -5
- package/skills/nano-banana-pro/scripts/generate_image.py +42 -27
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +1 -1
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/{clawdhub → poolhub}/SKILL.md +2 -2
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +7 -7
- package/skills/sherpa-onnx-tts/SKILL.md +6 -6
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -0
- package/skills/slack/SKILL.md +4 -3
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +7 -7
- package/skills/tmux/scripts/find-sessions.sh +1 -1
- package/skills/tmux/scripts/wait-for-text.sh +0 -0
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/dist/cli/browser-cli-serve.js +0 -91
- package/dist/control-ui/assets/index-Cl-Y9zqE.js.map +0 -1
- package/dist/control-ui/assets/index-DEPfFcOb.css +0 -1
- package/docs/POOL-BOT.md +0 -119
- /package/dist/{config/types.clawdbot.js → browser/routes/types.js} +0 -0
- /package/docs/{whatsapp-clawd.jpg → whatsapp-poolbot.jpg} +0 -0
- /package/extensions/bluebubbles/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/discord/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/googlechat/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/imessage/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/line/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/llm-task/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/lobster/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/matrix/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/mattermost/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/memory-core/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/msteams/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/nostr/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/open-prose/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/signal/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/slack/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/telegram/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/tlon/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/whatsapp/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/zalo/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
- /package/extensions/zalouser/{clawdbot.plugin.json → poolbot.plugin.json} +0 -0
|
@@ -0,0 +1,498 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Run Pool Bot Gateway 24/7 on a GCP Compute Engine VM (Docker) with durable state"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want Pool Bot running 24/7 on GCP
|
|
5
|
+
- You want a production-grade, always-on Gateway on your own VM
|
|
6
|
+
- You want full control over persistence, binaries, and restart behavior
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Pool Bot on GCP Compute Engine (Docker, Production VPS Guide)
|
|
10
|
+
|
|
11
|
+
## Goal
|
|
12
|
+
|
|
13
|
+
Run a persistent Pool Bot Gateway on a GCP Compute Engine VM using Docker, with durable state, baked-in binaries, and safe restart behavior.
|
|
14
|
+
|
|
15
|
+
If you want "Pool Bot 24/7 for ~$5-12/mo", this is a reliable setup on Google Cloud.
|
|
16
|
+
Pricing varies by machine type and region; pick the smallest VM that fits your workload and scale up if you hit OOMs.
|
|
17
|
+
|
|
18
|
+
## What are we doing (simple terms)?
|
|
19
|
+
|
|
20
|
+
- Create a GCP project and enable billing
|
|
21
|
+
- Create a Compute Engine VM
|
|
22
|
+
- Install Docker (isolated app runtime)
|
|
23
|
+
- Start the Pool Bot Gateway in Docker
|
|
24
|
+
- Persist `~/.poolbot` + `~/clawd` on the host (survives restarts/rebuilds)
|
|
25
|
+
- Access the Control UI from your laptop via an SSH tunnel
|
|
26
|
+
|
|
27
|
+
The Gateway can be accessed via:
|
|
28
|
+
- SSH port forwarding from your laptop
|
|
29
|
+
- Direct port exposure if you manage firewalling and tokens yourself
|
|
30
|
+
|
|
31
|
+
This guide uses Debian on GCP Compute Engine.
|
|
32
|
+
Ubuntu also works; map packages accordingly.
|
|
33
|
+
For the generic Docker flow, see [Docker](/install/docker).
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Quick path (experienced operators)
|
|
38
|
+
|
|
39
|
+
1) Create GCP project + enable Compute Engine API
|
|
40
|
+
2) Create Compute Engine VM (e2-small, Debian 12, 20GB)
|
|
41
|
+
3) SSH into the VM
|
|
42
|
+
4) Install Docker
|
|
43
|
+
5) Clone Pool Bot repository
|
|
44
|
+
6) Create persistent host directories
|
|
45
|
+
7) Configure `.env` and `docker-compose.yml`
|
|
46
|
+
8) Bake required binaries, build, and launch
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## What you need
|
|
51
|
+
|
|
52
|
+
- GCP account (free tier eligible for e2-micro)
|
|
53
|
+
- gcloud CLI installed (or use Cloud Console)
|
|
54
|
+
- SSH access from your laptop
|
|
55
|
+
- Basic comfort with SSH + copy/paste
|
|
56
|
+
- ~20-30 minutes
|
|
57
|
+
- Docker and Docker Compose
|
|
58
|
+
- Model auth credentials
|
|
59
|
+
- Optional provider credentials
|
|
60
|
+
- WhatsApp QR
|
|
61
|
+
- Telegram bot token
|
|
62
|
+
- Gmail OAuth
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 1) Install gcloud CLI (or use Console)
|
|
67
|
+
|
|
68
|
+
**Option A: gcloud CLI** (recommended for automation)
|
|
69
|
+
|
|
70
|
+
Install from https://cloud.google.com/sdk/docs/install
|
|
71
|
+
|
|
72
|
+
Initialize and authenticate:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
gcloud init
|
|
76
|
+
gcloud auth login
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Option B: Cloud Console**
|
|
80
|
+
|
|
81
|
+
All steps can be done via the web UI at https://console.cloud.google.com
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 2) Create a GCP project
|
|
86
|
+
|
|
87
|
+
**CLI:**
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
gcloud projects create my-poolbot-project --name="Pool Bot Gateway"
|
|
91
|
+
gcloud config set project my-poolbot-project
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Enable billing at https://console.cloud.google.com/billing (required for Compute Engine).
|
|
95
|
+
|
|
96
|
+
Enable the Compute Engine API:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
gcloud services enable compute.googleapis.com
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Console:**
|
|
103
|
+
|
|
104
|
+
1. Go to IAM & Admin > Create Project
|
|
105
|
+
2. Name it and create
|
|
106
|
+
3. Enable billing for the project
|
|
107
|
+
4. Navigate to APIs & Services > Enable APIs > search "Compute Engine API" > Enable
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 3) Create the VM
|
|
112
|
+
|
|
113
|
+
**Machine types:**
|
|
114
|
+
|
|
115
|
+
| Type | Specs | Cost | Notes |
|
|
116
|
+
|------|-------|------|-------|
|
|
117
|
+
| e2-small | 2 vCPU, 2GB RAM | ~$12/mo | Recommended |
|
|
118
|
+
| e2-micro | 2 vCPU (shared), 1GB RAM | Free tier eligible | May OOM under load |
|
|
119
|
+
|
|
120
|
+
**CLI:**
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
gcloud compute instances create poolbot-gateway \
|
|
124
|
+
--zone=us-central1-a \
|
|
125
|
+
--machine-type=e2-small \
|
|
126
|
+
--boot-disk-size=20GB \
|
|
127
|
+
--image-family=debian-12 \
|
|
128
|
+
--image-project=debian-cloud
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Console:**
|
|
132
|
+
|
|
133
|
+
1. Go to Compute Engine > VM instances > Create instance
|
|
134
|
+
2. Name: `poolbot-gateway`
|
|
135
|
+
3. Region: `us-central1`, Zone: `us-central1-a`
|
|
136
|
+
4. Machine type: `e2-small`
|
|
137
|
+
5. Boot disk: Debian 12, 20GB
|
|
138
|
+
6. Create
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 4) SSH into the VM
|
|
143
|
+
|
|
144
|
+
**CLI:**
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
gcloud compute ssh poolbot-gateway --zone=us-central1-a
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Console:**
|
|
151
|
+
|
|
152
|
+
Click the "SSH" button next to your VM in the Compute Engine dashboard.
|
|
153
|
+
|
|
154
|
+
Note: SSH key propagation can take 1-2 minutes after VM creation. If connection is refused, wait and retry.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 5) Install Docker (on the VM)
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
sudo apt-get update
|
|
162
|
+
sudo apt-get install -y git curl ca-certificates
|
|
163
|
+
curl -fsSL https://get.docker.com | sudo sh
|
|
164
|
+
sudo usermod -aG docker $USER
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Log out and back in for the group change to take effect:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
exit
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Then SSH back in:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
gcloud compute ssh poolbot-gateway --zone=us-central1-a
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Verify:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
docker --version
|
|
183
|
+
docker compose version
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 6) Clone the Pool Bot repository
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
git clone https://github.com/poolbot/poolbot.git
|
|
192
|
+
cd poolbot
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
This guide assumes you will build a custom image to guarantee binary persistence.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 7) Create persistent host directories
|
|
200
|
+
|
|
201
|
+
Docker containers are ephemeral.
|
|
202
|
+
All long-lived state must live on the host.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
mkdir -p ~/.poolbot
|
|
206
|
+
mkdir -p ~/clawd
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 8) Configure environment variables
|
|
212
|
+
|
|
213
|
+
Create `.env` in the repository root.
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
CLAWDBOT_IMAGE=poolbot:latest
|
|
217
|
+
CLAWDBOT_GATEWAY_TOKEN=change-me-now
|
|
218
|
+
CLAWDBOT_GATEWAY_BIND=lan
|
|
219
|
+
CLAWDBOT_GATEWAY_PORT=18789
|
|
220
|
+
|
|
221
|
+
CLAWDBOT_CONFIG_DIR=/home/$USER/.poolbot
|
|
222
|
+
CLAWDBOT_WORKSPACE_DIR=/home/$USER/clawd
|
|
223
|
+
|
|
224
|
+
GOG_KEYRING_PASSWORD=change-me-now
|
|
225
|
+
XDG_CONFIG_HOME=/home/node/.poolbot
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Generate strong secrets:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
openssl rand -hex 32
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
**Do not commit this file.**
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 9) Docker Compose configuration
|
|
239
|
+
|
|
240
|
+
Create or update `docker-compose.yml`.
|
|
241
|
+
|
|
242
|
+
```yaml
|
|
243
|
+
services:
|
|
244
|
+
poolbot-gateway:
|
|
245
|
+
image: ${CLAWDBOT_IMAGE}
|
|
246
|
+
build: .
|
|
247
|
+
restart: unless-stopped
|
|
248
|
+
env_file:
|
|
249
|
+
- .env
|
|
250
|
+
environment:
|
|
251
|
+
- HOME=/home/node
|
|
252
|
+
- NODE_ENV=production
|
|
253
|
+
- TERM=xterm-256color
|
|
254
|
+
- CLAWDBOT_GATEWAY_BIND=${CLAWDBOT_GATEWAY_BIND}
|
|
255
|
+
- CLAWDBOT_GATEWAY_PORT=${CLAWDBOT_GATEWAY_PORT}
|
|
256
|
+
- CLAWDBOT_GATEWAY_TOKEN=${CLAWDBOT_GATEWAY_TOKEN}
|
|
257
|
+
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
|
|
258
|
+
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
|
259
|
+
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
260
|
+
volumes:
|
|
261
|
+
- ${CLAWDBOT_CONFIG_DIR}:/home/node/.poolbot
|
|
262
|
+
- ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
|
|
263
|
+
ports:
|
|
264
|
+
# Recommended: keep the Gateway loopback-only on the VM; access via SSH tunnel.
|
|
265
|
+
# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.
|
|
266
|
+
- "127.0.0.1:${CLAWDBOT_GATEWAY_PORT}:18789"
|
|
267
|
+
|
|
268
|
+
# Optional: only if you run iOS/Android nodes against this VM and need Canvas host.
|
|
269
|
+
# If you expose this publicly, read /gateway/security and firewall accordingly.
|
|
270
|
+
# - "18793:18793"
|
|
271
|
+
command:
|
|
272
|
+
[
|
|
273
|
+
"node",
|
|
274
|
+
"dist/index.js",
|
|
275
|
+
"gateway",
|
|
276
|
+
"--bind",
|
|
277
|
+
"${CLAWDBOT_GATEWAY_BIND}",
|
|
278
|
+
"--port",
|
|
279
|
+
"${CLAWDBOT_GATEWAY_PORT}"
|
|
280
|
+
]
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## 10) Bake required binaries into the image (critical)
|
|
286
|
+
|
|
287
|
+
Installing binaries inside a running container is a trap.
|
|
288
|
+
Anything installed at runtime will be lost on restart.
|
|
289
|
+
|
|
290
|
+
All external binaries required by skills must be installed at image build time.
|
|
291
|
+
|
|
292
|
+
The examples below show three common binaries only:
|
|
293
|
+
- `gog` for Gmail access
|
|
294
|
+
- `goplaces` for Google Places
|
|
295
|
+
- `wacli` for WhatsApp
|
|
296
|
+
|
|
297
|
+
These are examples, not a complete list.
|
|
298
|
+
You may install as many binaries as needed using the same pattern.
|
|
299
|
+
|
|
300
|
+
If you add new skills later that depend on additional binaries, you must:
|
|
301
|
+
1. Update the Dockerfile
|
|
302
|
+
2. Rebuild the image
|
|
303
|
+
3. Restart the containers
|
|
304
|
+
|
|
305
|
+
**Example Dockerfile**
|
|
306
|
+
|
|
307
|
+
```dockerfile
|
|
308
|
+
FROM node:22-bookworm
|
|
309
|
+
|
|
310
|
+
RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*
|
|
311
|
+
|
|
312
|
+
# Example binary 1: Gmail CLI
|
|
313
|
+
RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
|
|
314
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog
|
|
315
|
+
|
|
316
|
+
# Example binary 2: Google Places CLI
|
|
317
|
+
RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
|
|
318
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces
|
|
319
|
+
|
|
320
|
+
# Example binary 3: WhatsApp CLI
|
|
321
|
+
RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
|
|
322
|
+
| tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli
|
|
323
|
+
|
|
324
|
+
# Add more binaries below using the same pattern
|
|
325
|
+
|
|
326
|
+
WORKDIR /app
|
|
327
|
+
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./
|
|
328
|
+
COPY ui/package.json ./ui/package.json
|
|
329
|
+
COPY scripts ./scripts
|
|
330
|
+
|
|
331
|
+
RUN corepack enable
|
|
332
|
+
RUN pnpm install --frozen-lockfile
|
|
333
|
+
|
|
334
|
+
COPY . .
|
|
335
|
+
RUN pnpm build
|
|
336
|
+
RUN pnpm ui:install
|
|
337
|
+
RUN pnpm ui:build
|
|
338
|
+
|
|
339
|
+
ENV NODE_ENV=production
|
|
340
|
+
|
|
341
|
+
CMD ["node","dist/index.js"]
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 11) Build and launch
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
docker compose build
|
|
350
|
+
docker compose up -d poolbot-gateway
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
Verify binaries:
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
docker compose exec poolbot-gateway which gog
|
|
357
|
+
docker compose exec poolbot-gateway which goplaces
|
|
358
|
+
docker compose exec poolbot-gateway which wacli
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Expected output:
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
/usr/local/bin/gog
|
|
365
|
+
/usr/local/bin/goplaces
|
|
366
|
+
/usr/local/bin/wacli
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## 12) Verify Gateway
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
docker compose logs -f poolbot-gateway
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Success:
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
[gateway] listening on ws://0.0.0.0:18789
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
---
|
|
384
|
+
|
|
385
|
+
## 13) Access from your laptop
|
|
386
|
+
|
|
387
|
+
Create an SSH tunnel to forward the Gateway port:
|
|
388
|
+
|
|
389
|
+
```bash
|
|
390
|
+
gcloud compute ssh poolbot-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Open in your browser:
|
|
394
|
+
|
|
395
|
+
`http://127.0.0.1:18789/`
|
|
396
|
+
|
|
397
|
+
Paste your gateway token.
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## What persists where (source of truth)
|
|
402
|
+
|
|
403
|
+
Pool Bot runs in Docker, but Docker is not the source of truth.
|
|
404
|
+
All long-lived state must survive restarts, rebuilds, and reboots.
|
|
405
|
+
|
|
406
|
+
| Component | Location | Persistence mechanism | Notes |
|
|
407
|
+
|---|---|---|---|
|
|
408
|
+
| Gateway config | `/home/node/.poolbot/` | Host volume mount | Includes `poolbot.json`, tokens |
|
|
409
|
+
| Model auth profiles | `/home/node/.poolbot/` | Host volume mount | OAuth tokens, API keys |
|
|
410
|
+
| Skill configs | `/home/node/.poolbot/skills/` | Host volume mount | Skill-level state |
|
|
411
|
+
| Agent workspace | `/home/node/clawd/` | Host volume mount | Code and agent artifacts |
|
|
412
|
+
| WhatsApp session | `/home/node/.poolbot/` | Host volume mount | Preserves QR login |
|
|
413
|
+
| Gmail keyring | `/home/node/.poolbot/` | Host volume + password | Requires `GOG_KEYRING_PASSWORD` |
|
|
414
|
+
| External binaries | `/usr/local/bin/` | Docker image | Must be baked at build time |
|
|
415
|
+
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
|
|
416
|
+
| OS packages | Container filesystem | Docker image | Do not install at runtime |
|
|
417
|
+
| Docker container | Ephemeral | Restartable | Safe to destroy |
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## Updates
|
|
422
|
+
|
|
423
|
+
To update Pool Bot on the VM:
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
cd ~/poolbot
|
|
427
|
+
git pull
|
|
428
|
+
docker compose build
|
|
429
|
+
docker compose up -d
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
---
|
|
433
|
+
|
|
434
|
+
## Troubleshooting
|
|
435
|
+
|
|
436
|
+
**SSH connection refused**
|
|
437
|
+
|
|
438
|
+
SSH key propagation can take 1-2 minutes after VM creation. Wait and retry.
|
|
439
|
+
|
|
440
|
+
**OS Login issues**
|
|
441
|
+
|
|
442
|
+
Check your OS Login profile:
|
|
443
|
+
|
|
444
|
+
```bash
|
|
445
|
+
gcloud compute os-login describe-profile
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Ensure your account has the required IAM permissions (Compute OS Login or Compute OS Admin Login).
|
|
449
|
+
|
|
450
|
+
**Out of memory (OOM)**
|
|
451
|
+
|
|
452
|
+
If using e2-micro and hitting OOM, upgrade to e2-small or e2-medium:
|
|
453
|
+
|
|
454
|
+
```bash
|
|
455
|
+
# Stop the VM first
|
|
456
|
+
gcloud compute instances stop poolbot-gateway --zone=us-central1-a
|
|
457
|
+
|
|
458
|
+
# Change machine type
|
|
459
|
+
gcloud compute instances set-machine-type poolbot-gateway \
|
|
460
|
+
--zone=us-central1-a \
|
|
461
|
+
--machine-type=e2-small
|
|
462
|
+
|
|
463
|
+
# Start the VM
|
|
464
|
+
gcloud compute instances start poolbot-gateway --zone=us-central1-a
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Service accounts (security best practice)
|
|
470
|
+
|
|
471
|
+
For personal use, your default user account works fine.
|
|
472
|
+
|
|
473
|
+
For automation or CI/CD pipelines, create a dedicated service account with minimal permissions:
|
|
474
|
+
|
|
475
|
+
1. Create a service account:
|
|
476
|
+
```bash
|
|
477
|
+
gcloud iam service-accounts create poolbot-deploy \
|
|
478
|
+
--display-name="Pool Bot Deployment"
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
2. Grant Compute Instance Admin role (or narrower custom role):
|
|
482
|
+
```bash
|
|
483
|
+
gcloud projects add-iam-policy-binding my-poolbot-project \
|
|
484
|
+
--member="serviceAccount:poolbot-deploy@my-poolbot-project.iam.gserviceaccount.com" \
|
|
485
|
+
--role="roles/compute.instanceAdmin.v1"
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Avoid using the Owner role for automation. Use the principle of least privilege.
|
|
489
|
+
|
|
490
|
+
See https://cloud.google.com/iam/docs/understanding-roles for IAM role details.
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Next steps
|
|
495
|
+
|
|
496
|
+
- Set up messaging channels: [Channels](/channels)
|
|
497
|
+
- Pair local devices as nodes: [Nodes](/nodes)
|
|
498
|
+
- Configure the Gateway: [Gateway configuration](/gateway/configuration)
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
---
|
|
2
|
-
summary: "Run
|
|
2
|
+
summary: "Run Pool Bot Gateway 24/7 on a cheap Hetzner VPS (Docker) with durable state and baked-in binaries"
|
|
3
3
|
read_when:
|
|
4
|
-
- You want
|
|
4
|
+
- You want Pool Bot running 24/7 on a cloud VPS (not your laptop)
|
|
5
5
|
- You want a production-grade, always-on Gateway on your own VPS
|
|
6
6
|
- You want full control over persistence, binaries, and restart behavior
|
|
7
|
-
- You are running
|
|
7
|
+
- You are running Pool Bot in Docker on Hetzner or a similar provider
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
#
|
|
10
|
+
# Pool Bot on Hetzner (Docker, Production VPS Guide)
|
|
11
11
|
|
|
12
12
|
## Goal
|
|
13
|
-
Run a persistent
|
|
13
|
+
Run a persistent Pool Bot Gateway on a Hetzner VPS using Docker, with durable state, baked-in binaries, and safe restart behavior.
|
|
14
14
|
|
|
15
|
-
If you want “
|
|
15
|
+
If you want “Pool Bot 24/7 for ~$5”, this is the simplest reliable setup.
|
|
16
16
|
Hetzner pricing changes; pick the smallest Debian/Ubuntu VPS and scale up if you hit OOMs.
|
|
17
17
|
|
|
18
18
|
## What are we doing (simple terms)?
|
|
19
19
|
|
|
20
20
|
- Rent a small Linux server (Hetzner VPS)
|
|
21
21
|
- Install Docker (isolated app runtime)
|
|
22
|
-
- Start the
|
|
23
|
-
- Persist `~/.
|
|
22
|
+
- Start the Pool Bot Gateway in Docker
|
|
23
|
+
- Persist `~/.poolbot` + `~/clawd` on the host (survives restarts/rebuilds)
|
|
24
24
|
- Access the Control UI from your laptop via an SSH tunnel
|
|
25
25
|
|
|
26
26
|
The Gateway can be accessed via:
|
|
@@ -37,7 +37,7 @@ For the generic Docker flow, see [Docker](/install/docker).
|
|
|
37
37
|
|
|
38
38
|
1) Provision Hetzner VPS
|
|
39
39
|
2) Install Docker
|
|
40
|
-
3) Clone
|
|
40
|
+
3) Clone Pool Bot repository
|
|
41
41
|
4) Create persistent host directories
|
|
42
42
|
5) Configure `.env` and `docker-compose.yml`
|
|
43
43
|
6) Bake required binaries into the image
|
|
@@ -93,11 +93,11 @@ docker compose version
|
|
|
93
93
|
|
|
94
94
|
---
|
|
95
95
|
|
|
96
|
-
## 3) Clone the
|
|
96
|
+
## 3) Clone the Pool Bot repository
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
git clone https://github.com/
|
|
100
|
-
cd
|
|
99
|
+
git clone https://github.com/poolbot/poolbot.git
|
|
100
|
+
cd poolbot
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
This guide assumes you will build a custom image to guarantee binary persistence.
|
|
@@ -110,11 +110,11 @@ Docker containers are ephemeral.
|
|
|
110
110
|
All long-lived state must live on the host.
|
|
111
111
|
|
|
112
112
|
```bash
|
|
113
|
-
mkdir -p /root/.
|
|
113
|
+
mkdir -p /root/.poolbot
|
|
114
114
|
mkdir -p /root/clawd
|
|
115
115
|
|
|
116
116
|
# Set ownership to the container user (uid 1000):
|
|
117
|
-
chown -R 1000:1000 /root/.
|
|
117
|
+
chown -R 1000:1000 /root/.poolbot
|
|
118
118
|
chown -R 1000:1000 /root/clawd
|
|
119
119
|
```
|
|
120
120
|
|
|
@@ -125,16 +125,16 @@ chown -R 1000:1000 /root/clawd
|
|
|
125
125
|
Create `.env` in the repository root.
|
|
126
126
|
|
|
127
127
|
```bash
|
|
128
|
-
CLAWDBOT_IMAGE=
|
|
128
|
+
CLAWDBOT_IMAGE=poolbot:latest
|
|
129
129
|
CLAWDBOT_GATEWAY_TOKEN=change-me-now
|
|
130
130
|
CLAWDBOT_GATEWAY_BIND=lan
|
|
131
131
|
CLAWDBOT_GATEWAY_PORT=18789
|
|
132
132
|
|
|
133
|
-
CLAWDBOT_CONFIG_DIR=/root/.
|
|
133
|
+
CLAWDBOT_CONFIG_DIR=/root/.poolbot
|
|
134
134
|
CLAWDBOT_WORKSPACE_DIR=/root/clawd
|
|
135
135
|
|
|
136
136
|
GOG_KEYRING_PASSWORD=change-me-now
|
|
137
|
-
XDG_CONFIG_HOME=/home/node/.
|
|
137
|
+
XDG_CONFIG_HOME=/home/node/.poolbot
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
Generate strong secrets:
|
|
@@ -153,7 +153,7 @@ Create or update `docker-compose.yml`.
|
|
|
153
153
|
|
|
154
154
|
```yaml
|
|
155
155
|
services:
|
|
156
|
-
|
|
156
|
+
poolbot-gateway:
|
|
157
157
|
image: ${CLAWDBOT_IMAGE}
|
|
158
158
|
build: .
|
|
159
159
|
restart: unless-stopped
|
|
@@ -170,7 +170,7 @@ services:
|
|
|
170
170
|
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
|
|
171
171
|
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
172
172
|
volumes:
|
|
173
|
-
- ${CLAWDBOT_CONFIG_DIR}:/home/node/.
|
|
173
|
+
- ${CLAWDBOT_CONFIG_DIR}:/home/node/.poolbot
|
|
174
174
|
- ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
|
|
175
175
|
ports:
|
|
176
176
|
# Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.
|
|
@@ -259,15 +259,15 @@ CMD ["node","dist/index.js"]
|
|
|
259
259
|
|
|
260
260
|
```bash
|
|
261
261
|
docker compose build
|
|
262
|
-
docker compose up -d
|
|
262
|
+
docker compose up -d poolbot-gateway
|
|
263
263
|
```
|
|
264
264
|
|
|
265
265
|
Verify binaries:
|
|
266
266
|
|
|
267
267
|
```bash
|
|
268
|
-
docker compose exec
|
|
269
|
-
docker compose exec
|
|
270
|
-
docker compose exec
|
|
268
|
+
docker compose exec poolbot-gateway which gog
|
|
269
|
+
docker compose exec poolbot-gateway which goplaces
|
|
270
|
+
docker compose exec poolbot-gateway which wacli
|
|
271
271
|
```
|
|
272
272
|
|
|
273
273
|
Expected output:
|
|
@@ -283,7 +283,7 @@ Expected output:
|
|
|
283
283
|
## 9) Verify Gateway
|
|
284
284
|
|
|
285
285
|
```bash
|
|
286
|
-
docker compose logs -f
|
|
286
|
+
docker compose logs -f poolbot-gateway
|
|
287
287
|
```
|
|
288
288
|
|
|
289
289
|
Success:
|
|
@@ -308,17 +308,17 @@ Paste your gateway token.
|
|
|
308
308
|
|
|
309
309
|
## What persists where (source of truth)
|
|
310
310
|
|
|
311
|
-
|
|
311
|
+
Pool Bot runs in Docker, but Docker is not the source of truth.
|
|
312
312
|
All long-lived state must survive restarts, rebuilds, and reboots.
|
|
313
313
|
|
|
314
314
|
| Component | Location | Persistence mechanism | Notes |
|
|
315
315
|
|---|---|---|---|
|
|
316
|
-
| Gateway config | `/home/node/.
|
|
317
|
-
| Model auth profiles | `/home/node/.
|
|
318
|
-
| Skill configs | `/home/node/.
|
|
316
|
+
| Gateway config | `/home/node/.poolbot/` | Host volume mount | Includes `poolbot.json`, tokens |
|
|
317
|
+
| Model auth profiles | `/home/node/.poolbot/` | Host volume mount | OAuth tokens, API keys |
|
|
318
|
+
| Skill configs | `/home/node/.poolbot/skills/` | Host volume mount | Skill-level state |
|
|
319
319
|
| Agent workspace | `/home/node/clawd/` | Host volume mount | Code and agent artifacts |
|
|
320
|
-
| WhatsApp session | `/home/node/.
|
|
321
|
-
| Gmail keyring | `/home/node/.
|
|
320
|
+
| WhatsApp session | `/home/node/.poolbot/` | Host volume mount | Preserves QR login |
|
|
321
|
+
| Gmail keyring | `/home/node/.poolbot/` | Host volume + password | Requires `GOG_KEYRING_PASSWORD` |
|
|
322
322
|
| External binaries | `/usr/local/bin/` | Docker image | Must be baked at build time |
|
|
323
323
|
| Node runtime | Container filesystem | Docker image | Rebuilt every image build |
|
|
324
324
|
| OS packages | Container filesystem | Docker image | Do not install at runtime |
|
package/docs/platforms/index.md
CHANGED
|
@@ -6,7 +6,7 @@ read_when:
|
|
|
6
6
|
---
|
|
7
7
|
# Platforms
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Pool Bot core is written in TypeScript. **Node is the recommended runtime**.
|
|
10
10
|
Bun is not recommended for the Gateway (WhatsApp/Telegram bugs).
|
|
11
11
|
|
|
12
12
|
Companion apps exist for macOS (menu bar app) and mobile nodes (iOS/Android). Windows and
|
|
@@ -24,9 +24,9 @@ Native companion apps for Windows are also planned; the Gateway is recommended v
|
|
|
24
24
|
## VPS & hosting
|
|
25
25
|
|
|
26
26
|
- VPS hub: [VPS hosting](/vps)
|
|
27
|
-
- Railway (one-click): [Railway](/railway)
|
|
28
27
|
- Fly.io: [Fly.io](/platforms/fly)
|
|
29
28
|
- Hetzner (Docker): [Hetzner](/platforms/hetzner)
|
|
29
|
+
- GCP (Compute Engine): [GCP](/platforms/gcp)
|
|
30
30
|
- exe.dev (VM + HTTPS proxy): [exe.dev](/platforms/exe-dev)
|
|
31
31
|
|
|
32
32
|
## Common links
|
|
@@ -34,17 +34,17 @@ Native companion apps for Windows are also planned; the Gateway is recommended v
|
|
|
34
34
|
- Install guide: [Getting Started](/start/getting-started)
|
|
35
35
|
- Gateway runbook: [Gateway](/gateway)
|
|
36
36
|
- Gateway configuration: [Configuration](/gateway/configuration)
|
|
37
|
-
- Service status: `
|
|
37
|
+
- Service status: `poolbot gateway status`
|
|
38
38
|
|
|
39
39
|
## Gateway service install (CLI)
|
|
40
40
|
|
|
41
41
|
Use one of these (all supported):
|
|
42
42
|
|
|
43
|
-
- Wizard (recommended): `
|
|
44
|
-
- Direct: `
|
|
45
|
-
- Configure flow: `
|
|
46
|
-
- Repair/migrate: `
|
|
43
|
+
- Wizard (recommended): `poolbot onboard --install-daemon`
|
|
44
|
+
- Direct: `poolbot gateway install`
|
|
45
|
+
- Configure flow: `poolbot configure` → select **Gateway service**
|
|
46
|
+
- Repair/migrate: `poolbot doctor` (offers to install or fix the service)
|
|
47
47
|
|
|
48
48
|
The service target depends on OS:
|
|
49
|
-
- macOS: LaunchAgent (`com.
|
|
50
|
-
- Linux/WSL2: systemd user service (`
|
|
49
|
+
- macOS: LaunchAgent (`com.poolbot.gateway` or `com.poolbot.<profile>`)
|
|
50
|
+
- Linux/WSL2: systemd user service (`poolbot-gateway[-<profile>].service`)
|