@poolzin/pool-bot 2026.1.26 → 2026.1.30
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 +76 -1116
- package/LICENSE +21 -0
- package/README.md +58 -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 +24 -35
- 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/memory-tool.js +2 -1
- 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/command-registry.js +5 -0
- 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.completion.js +355 -0
- 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/index.js +53 -0
- package/dist/gateway/hooks/lifecycle-hooks-integration.js +256 -0
- package/dist/gateway/hooks/lifecycle-hooks.js +236 -0
- package/dist/gateway/hooks/progressive-disclosure-details.js +237 -0
- package/dist/gateway/hooks/progressive-disclosure-index.js +354 -0
- package/dist/gateway/hooks/progressive-disclosure-timeline.js +231 -0
- package/dist/gateway/hooks/progressive-disclosure-types.js +65 -0
- package/dist/gateway/hooks/progressive-disclosure.js +242 -0
- package/dist/gateway/hooks/tool-usage-capture.js +253 -0
- package/dist/gateway/hooks/tool-usage-storage.js +144 -0
- 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/nodes.js +2 -0
- 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 +11 -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 +16 -3
- 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 +109 -53
- 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/memory/index.js +5 -0
- package/dist/memory/manager.js +25 -2
- 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/WHATSAPP-HEARTBEAT-TROUBLESHOOTING.md +319 -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/skills/webgpu-threejs-tsl/REFERENCE.md +283 -0
- package/skills/webgpu-threejs-tsl/SKILL.md +91 -0
- package/skills/webgpu-threejs-tsl/docs/compute-shaders.md +404 -0
- package/skills/webgpu-threejs-tsl/docs/core-concepts.md +453 -0
- package/skills/webgpu-threejs-tsl/docs/materials.md +353 -0
- package/skills/webgpu-threejs-tsl/docs/post-processing.md +434 -0
- package/skills/webgpu-threejs-tsl/docs/wgsl-integration.md +324 -0
- package/skills/webgpu-threejs-tsl/examples/basic-setup.js +87 -0
- package/skills/webgpu-threejs-tsl/examples/custom-material.js +170 -0
- package/skills/webgpu-threejs-tsl/examples/earth-shader.js +292 -0
- package/skills/webgpu-threejs-tsl/examples/particle-system.js +259 -0
- package/skills/webgpu-threejs-tsl/examples/post-processing.js +199 -0
- package/skills/webgpu-threejs-tsl/templates/compute-shader.js +305 -0
- package/skills/webgpu-threejs-tsl/templates/webgpu-project.js +276 -0
- 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
package/docs/nodes/audio.md
CHANGED
|
@@ -6,7 +6,7 @@ read_when:
|
|
|
6
6
|
# Audio / Voice Notes — 2026-01-17
|
|
7
7
|
|
|
8
8
|
## What works
|
|
9
|
-
- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected),
|
|
9
|
+
- **Media understanding (audio)**: If audio understanding is enabled (or auto‑detected), Pool Bot:
|
|
10
10
|
1) Locates the first audio attachment (local path or URL) and downloads it if needed.
|
|
11
11
|
2) Enforces `maxBytes` before sending to each model entry.
|
|
12
12
|
3) Runs the first eligible model entry in order (provider or CLI).
|
|
@@ -17,7 +17,7 @@ read_when:
|
|
|
17
17
|
|
|
18
18
|
## Auto-detection (default)
|
|
19
19
|
If you **don’t configure models** and `tools.media.audio.enabled` is **not** set to `false`,
|
|
20
|
-
|
|
20
|
+
Pool Bot auto-detects in this order and stops at the first working option:
|
|
21
21
|
|
|
22
22
|
1) **Local CLIs** (if installed)
|
|
23
23
|
- `sherpa-onnx-offline` (requires `SHERPA_ONNX_MODEL_DIR` with encoder/decoder/joiner/tokens)
|
package/docs/nodes/camera.md
CHANGED
|
@@ -7,7 +7,7 @@ read_when:
|
|
|
7
7
|
|
|
8
8
|
# Camera capture (agent)
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Pool Bot supports **camera capture** for agent workflows:
|
|
11
11
|
|
|
12
12
|
- **iOS node** (paired via Gateway): capture a **photo** (`jpg`) or **short video clip** (`mp4`, with optional audio) via `node.invoke`.
|
|
13
13
|
- **Android node** (paired via Gateway): capture a **photo** (`jpg`) or **short video clip** (`mp4`, with optional audio) via `node.invoke`.
|
|
@@ -67,10 +67,10 @@ The easiest way to get attachments is via the CLI helper, which writes decoded m
|
|
|
67
67
|
Examples:
|
|
68
68
|
|
|
69
69
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
poolbot nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
|
|
71
|
+
poolbot nodes camera snap --node <id> --facing front
|
|
72
|
+
poolbot nodes camera clip --node <id> --duration 3000
|
|
73
|
+
poolbot nodes camera clip --node <id> --no-audio
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Notes:
|
|
@@ -108,30 +108,30 @@ Photos are recompressed to keep the base64 payload under 5 MB.
|
|
|
108
108
|
|
|
109
109
|
The macOS companion app exposes a checkbox:
|
|
110
110
|
|
|
111
|
-
- **Settings → General → Allow Camera** (`
|
|
111
|
+
- **Settings → General → Allow Camera** (`poolbot.cameraEnabled`)
|
|
112
112
|
- Default: **off**
|
|
113
113
|
- When off: camera requests return “Camera disabled by user”.
|
|
114
114
|
|
|
115
115
|
### CLI helper (node invoke)
|
|
116
116
|
|
|
117
|
-
Use the main `
|
|
117
|
+
Use the main `poolbot` CLI to invoke camera commands on the macOS node.
|
|
118
118
|
|
|
119
119
|
Examples:
|
|
120
120
|
|
|
121
121
|
```bash
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
122
|
+
poolbot nodes camera list --node <id> # list camera ids
|
|
123
|
+
poolbot nodes camera snap --node <id> # prints MEDIA:<path>
|
|
124
|
+
poolbot nodes camera snap --node <id> --max-width 1280
|
|
125
|
+
poolbot nodes camera snap --node <id> --delay-ms 2000
|
|
126
|
+
poolbot nodes camera snap --node <id> --device-id <id>
|
|
127
|
+
poolbot nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
|
|
128
|
+
poolbot nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
|
|
129
|
+
poolbot nodes camera clip --node <id> --device-id <id>
|
|
130
|
+
poolbot nodes camera clip --node <id> --no-audio
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
Notes:
|
|
134
|
-
- `
|
|
134
|
+
- `poolbot nodes camera snap` defaults to `maxWidth=1600` unless overridden.
|
|
135
135
|
- On macOS, `camera.snap` waits `delayMs` (default 2000ms) after warm-up/exposure settle before capturing.
|
|
136
136
|
- Photo payloads are recompressed to keep base64 under 5 MB.
|
|
137
137
|
|
|
@@ -145,7 +145,7 @@ Notes:
|
|
|
145
145
|
For *screen* video (not camera), use the macOS companion:
|
|
146
146
|
|
|
147
147
|
```bash
|
|
148
|
-
|
|
148
|
+
poolbot nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
Notes:
|
package/docs/nodes/images.md
CHANGED
|
@@ -8,12 +8,12 @@ read_when:
|
|
|
8
8
|
The WhatsApp channel runs via **Baileys Web**. This document captures the current media handling rules for send, gateway, and agent replies.
|
|
9
9
|
|
|
10
10
|
## Goals
|
|
11
|
-
- Send media with optional captions via `
|
|
11
|
+
- Send media with optional captions via `poolbot message send --media`.
|
|
12
12
|
- Allow auto-replies from the web inbox to include media alongside text.
|
|
13
13
|
- Keep per-type limits sane and predictable.
|
|
14
14
|
|
|
15
15
|
## CLI Surface
|
|
16
|
-
- `
|
|
16
|
+
- `poolbot message send --media <path-or-url> [--message <caption>]`
|
|
17
17
|
- `--media` optional; caption can be empty for media-only sends.
|
|
18
18
|
- `--dry-run` prints the resolved payload; `--json` emits `{ channel, to, messageId, mediaUrl, caption }`.
|
|
19
19
|
|
|
@@ -30,11 +30,11 @@ The WhatsApp channel runs via **Baileys Web**. This document captures the curren
|
|
|
30
30
|
|
|
31
31
|
## Auto-Reply Pipeline
|
|
32
32
|
- `getReplyFromConfig` returns `{ text?, mediaUrl?, mediaUrls? }`.
|
|
33
|
-
- When media is present, the web sender resolves local paths or URLs using the same pipeline as `
|
|
33
|
+
- When media is present, the web sender resolves local paths or URLs using the same pipeline as `poolbot message send`.
|
|
34
34
|
- Multiple media entries are sent sequentially if provided.
|
|
35
35
|
|
|
36
36
|
## Inbound Media to Commands (Pi)
|
|
37
|
-
- When inbound web messages include media,
|
|
37
|
+
- When inbound web messages include media, Pool Bot downloads to a temp file and exposes templating variables:
|
|
38
38
|
- `{{MediaUrl}}` pseudo-URL for the inbound media.
|
|
39
39
|
- `{{MediaPath}}` local temp path written before running the command.
|
|
40
40
|
- When a per-session Docker sandbox is enabled, inbound media is copied into the sandbox workspace and `MediaPath`/`MediaUrl` are rewritten to a relative path like `media/inbound/<filename>`.
|
package/docs/nodes/index.md
CHANGED
|
@@ -12,7 +12,7 @@ A **node** is a companion device (macOS/iOS/Android/headless) that connects to t
|
|
|
12
12
|
|
|
13
13
|
Legacy transport: [Bridge protocol](/gateway/bridge-protocol) (TCP JSONL; deprecated/removed for current nodes).
|
|
14
14
|
|
|
15
|
-
macOS can also run in **node mode**: the menubar app connects to the Gateway’s WS server and exposes its local canvas/camera commands as a node (so `
|
|
15
|
+
macOS can also run in **node mode**: the menubar app connects to the Gateway’s WS server and exposes its local canvas/camera commands as a node (so `poolbot nodes …` works against this Mac).
|
|
16
16
|
|
|
17
17
|
Notes:
|
|
18
18
|
- Nodes are **peripherals**, not gateways. They don’t run the gateway service.
|
|
@@ -26,16 +26,16 @@ creates a device pairing request for `role: node`. Approve via the devices CLI (
|
|
|
26
26
|
Quick CLI:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
poolbot devices list
|
|
30
|
+
poolbot devices approve <requestId>
|
|
31
|
+
poolbot devices reject <requestId>
|
|
32
|
+
poolbot nodes status
|
|
33
|
+
poolbot nodes describe --node <idOrNameOrIp>
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
Notes:
|
|
37
37
|
- `nodes status` marks a node as **paired** when its device pairing role includes `node`.
|
|
38
|
-
- `node.pair.*` (CLI: `
|
|
38
|
+
- `node.pair.*` (CLI: `poolbot nodes pending/approve/reject`) is a separate gateway-owned
|
|
39
39
|
node pairing store; it does **not** gate the WS `connect` handshake.
|
|
40
40
|
|
|
41
41
|
## Remote node host (system.run)
|
|
@@ -47,21 +47,21 @@ forwards `exec` calls to the **node host** when `host=node` is selected.
|
|
|
47
47
|
### What runs where
|
|
48
48
|
- **Gateway host**: receives messages, runs the model, routes tool calls.
|
|
49
49
|
- **Node host**: executes `system.run`/`system.which` on the node machine.
|
|
50
|
-
- **Approvals**: enforced on the node host via `~/.
|
|
50
|
+
- **Approvals**: enforced on the node host via `~/.poolbot/exec-approvals.json`.
|
|
51
51
|
|
|
52
52
|
### Start a node host (foreground)
|
|
53
53
|
|
|
54
54
|
On the node machine:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
|
|
57
|
+
poolbot node run --host <gateway-host> --port 18789 --display-name "Build Node"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
### Start a node host (service)
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
poolbot node install --host <gateway-host> --port 18789 --display-name "Build Node"
|
|
64
|
+
poolbot node restart
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
### Pair + name
|
|
@@ -69,34 +69,34 @@ clawdbot node restart
|
|
|
69
69
|
On the gateway host:
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
poolbot nodes pending
|
|
73
|
+
poolbot nodes approve <requestId>
|
|
74
|
+
poolbot nodes list
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Naming options:
|
|
78
|
-
- `--display-name` on `
|
|
79
|
-
- `
|
|
78
|
+
- `--display-name` on `poolbot node run` / `poolbot node install` (persists in `~/.poolbot/node.json` on the node).
|
|
79
|
+
- `poolbot nodes rename --node <id|name|ip> --name "Build Node"` (gateway override).
|
|
80
80
|
|
|
81
81
|
### Allowlist the commands
|
|
82
82
|
|
|
83
83
|
Exec approvals are **per node host**. Add allowlist entries from the gateway:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
poolbot approvals allowlist add --node <id|name|ip> "/usr/bin/uname"
|
|
87
|
+
poolbot approvals allowlist add --node <id|name|ip> "/usr/bin/sw_vers"
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Approvals live on the node host at `~/.
|
|
90
|
+
Approvals live on the node host at `~/.poolbot/exec-approvals.json`.
|
|
91
91
|
|
|
92
92
|
### Point exec at the node
|
|
93
93
|
|
|
94
94
|
Configure defaults (gateway config):
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
poolbot config set tools.exec.host node
|
|
98
|
+
poolbot config set tools.exec.security allowlist
|
|
99
|
+
poolbot config set tools.exec.node "<id-or-name>"
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
Or per session:
|
|
@@ -118,7 +118,7 @@ Related:
|
|
|
118
118
|
Low-level (raw RPC):
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
|
|
121
|
+
poolbot nodes invoke --node <idOrNameOrIp> --command canvas.eval --params '{"javaScript":"location.href"}'
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
Higher-level helpers exist for the common “give the agent a MEDIA attachment” workflows.
|
|
@@ -130,17 +130,17 @@ If the node is showing the Canvas (WebView), `canvas.snapshot` returns `{ format
|
|
|
130
130
|
CLI helper (writes to a temp file and prints `MEDIA:<path>`):
|
|
131
131
|
|
|
132
132
|
```bash
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
poolbot nodes canvas snapshot --node <idOrNameOrIp> --format png
|
|
134
|
+
poolbot nodes canvas snapshot --node <idOrNameOrIp> --format jpg --max-width 1200 --quality 0.9
|
|
135
135
|
```
|
|
136
136
|
|
|
137
137
|
### Canvas controls
|
|
138
138
|
|
|
139
139
|
```bash
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
140
|
+
poolbot nodes canvas present --node <idOrNameOrIp> --target https://example.com
|
|
141
|
+
poolbot nodes canvas hide --node <idOrNameOrIp>
|
|
142
|
+
poolbot nodes canvas navigate https://example.com --node <idOrNameOrIp>
|
|
143
|
+
poolbot nodes canvas eval --node <idOrNameOrIp> --js "document.title"
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
Notes:
|
|
@@ -150,9 +150,9 @@ Notes:
|
|
|
150
150
|
### A2UI (Canvas)
|
|
151
151
|
|
|
152
152
|
```bash
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
poolbot nodes canvas a2ui push --node <idOrNameOrIp> --text "Hello"
|
|
154
|
+
poolbot nodes canvas a2ui push --node <idOrNameOrIp> --jsonl ./payload.jsonl
|
|
155
|
+
poolbot nodes canvas a2ui reset --node <idOrNameOrIp>
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
Notes:
|
|
@@ -163,16 +163,16 @@ Notes:
|
|
|
163
163
|
Photos (`jpg`):
|
|
164
164
|
|
|
165
165
|
```bash
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
poolbot nodes camera list --node <idOrNameOrIp>
|
|
167
|
+
poolbot nodes camera snap --node <idOrNameOrIp> # default: both facings (2 MEDIA lines)
|
|
168
|
+
poolbot nodes camera snap --node <idOrNameOrIp> --facing front
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
Video clips (`mp4`):
|
|
172
172
|
|
|
173
173
|
```bash
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
poolbot nodes camera clip --node <idOrNameOrIp> --duration 10s
|
|
175
|
+
poolbot nodes camera clip --node <idOrNameOrIp> --duration 3000 --no-audio
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
Notes:
|
|
@@ -185,8 +185,8 @@ Notes:
|
|
|
185
185
|
Nodes expose `screen.record` (mp4). Example:
|
|
186
186
|
|
|
187
187
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
188
|
+
poolbot nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10
|
|
189
|
+
poolbot nodes screen record --node <idOrNameOrIp> --duration 10s --fps 10 --no-audio
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
Notes:
|
|
@@ -203,8 +203,8 @@ Nodes expose `location.get` when Location is enabled in settings.
|
|
|
203
203
|
CLI helper:
|
|
204
204
|
|
|
205
205
|
```bash
|
|
206
|
-
|
|
207
|
-
|
|
206
|
+
poolbot nodes location get --node <idOrNameOrIp>
|
|
207
|
+
poolbot nodes location get --node <idOrNameOrIp> --accuracy precise --max-age 15000 --location-timeout 10000
|
|
208
208
|
```
|
|
209
209
|
|
|
210
210
|
Notes:
|
|
@@ -219,7 +219,7 @@ Android nodes can expose `sms.send` when the user grants **SMS** permission and
|
|
|
219
219
|
Low-level invoke:
|
|
220
220
|
|
|
221
221
|
```bash
|
|
222
|
-
|
|
222
|
+
poolbot nodes invoke --node <idOrNameOrIp> --command sms.send --params '{"to":"+15555550123","message":"Hello from Pool Bot"}'
|
|
223
223
|
```
|
|
224
224
|
|
|
225
225
|
Notes:
|
|
@@ -234,8 +234,8 @@ The headless node host exposes `system.run`, `system.which`, and `system.execApp
|
|
|
234
234
|
Examples:
|
|
235
235
|
|
|
236
236
|
```bash
|
|
237
|
-
|
|
238
|
-
|
|
237
|
+
poolbot nodes run --node <idOrNameOrIp> -- echo "Hello from mac node"
|
|
238
|
+
poolbot nodes notify --node <idOrNameOrIp> --title "Ping" --body "Gateway ready"
|
|
239
239
|
```
|
|
240
240
|
|
|
241
241
|
Notes:
|
|
@@ -246,7 +246,7 @@ Notes:
|
|
|
246
246
|
- macOS nodes drop `PATH` overrides; headless node hosts only accept `PATH` when it prepends the node host PATH.
|
|
247
247
|
- On macOS node mode, `system.run` is gated by exec approvals in the macOS app (Settings → Exec approvals).
|
|
248
248
|
Ask/allowlist/full behave the same as the headless node host; denied prompts return `SYSTEM_RUN_DENIED`.
|
|
249
|
-
- On headless node host, `system.run` is gated by exec approvals (`~/.
|
|
249
|
+
- On headless node host, `system.run` is gated by exec approvals (`~/.poolbot/exec-approvals.json`).
|
|
250
250
|
|
|
251
251
|
## Exec node binding
|
|
252
252
|
|
|
@@ -256,21 +256,21 @@ This sets the default node for `exec host=node` (and can be overridden per agent
|
|
|
256
256
|
Global default:
|
|
257
257
|
|
|
258
258
|
```bash
|
|
259
|
-
|
|
259
|
+
poolbot config set tools.exec.node "node-id-or-name"
|
|
260
260
|
```
|
|
261
261
|
|
|
262
262
|
Per-agent override:
|
|
263
263
|
|
|
264
264
|
```bash
|
|
265
|
-
|
|
266
|
-
|
|
265
|
+
poolbot config get agents.list
|
|
266
|
+
poolbot config set agents.list[0].tools.exec.node "node-id-or-name"
|
|
267
267
|
```
|
|
268
268
|
|
|
269
269
|
Unset to allow any node:
|
|
270
270
|
|
|
271
271
|
```bash
|
|
272
|
-
|
|
273
|
-
|
|
272
|
+
poolbot config unset tools.exec.node
|
|
273
|
+
poolbot config unset agents.list[0].tools.exec.node
|
|
274
274
|
```
|
|
275
275
|
|
|
276
276
|
## Permissions map
|
|
@@ -279,20 +279,20 @@ Nodes may include a `permissions` map in `node.list` / `node.describe`, keyed by
|
|
|
279
279
|
|
|
280
280
|
## Headless node host (cross-platform)
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
Pool Bot can run a **headless node host** (no UI) that connects to the Gateway
|
|
283
283
|
WebSocket and exposes `system.run` / `system.which`. This is useful on Linux/Windows
|
|
284
284
|
or for running a minimal node alongside a server.
|
|
285
285
|
|
|
286
286
|
Start it:
|
|
287
287
|
|
|
288
288
|
```bash
|
|
289
|
-
|
|
289
|
+
poolbot node run --host <gateway-host> --port 18789
|
|
290
290
|
```
|
|
291
291
|
|
|
292
292
|
Notes:
|
|
293
293
|
- Pairing is still required (the Gateway will show a node approval prompt).
|
|
294
|
-
- The node host stores its node id, token, display name, and gateway connection info in `~/.
|
|
295
|
-
- Exec approvals are enforced locally via `~/.
|
|
294
|
+
- The node host stores its node id, token, display name, and gateway connection info in `~/.poolbot/node.json`.
|
|
295
|
+
- Exec approvals are enforced locally via `~/.poolbot/exec-approvals.json`
|
|
296
296
|
(see [Exec approvals](/tools/exec-approvals)).
|
|
297
297
|
- On macOS, the headless node host prefers the companion app exec host when reachable and falls
|
|
298
298
|
back to local execution if the app is unavailable. Set `CLAWDBOT_NODE_EXEC_HOST=app` to require
|
|
@@ -301,5 +301,5 @@ Notes:
|
|
|
301
301
|
|
|
302
302
|
## Mac node mode
|
|
303
303
|
|
|
304
|
-
- The macOS menubar app connects to the Gateway WS server as a node (so `
|
|
304
|
+
- The macOS menubar app connects to the Gateway WS server as a node (so `poolbot nodes …` works against this Mac).
|
|
305
305
|
- In remote mode, the app opens an SSH tunnel for the Gateway port and connects to `localhost`.
|
|
@@ -85,11 +85,11 @@ Notes:
|
|
|
85
85
|
|
|
86
86
|
## Model/tooling integration
|
|
87
87
|
- Tool surface: `nodes` tool adds `location_get` action (node required).
|
|
88
|
-
- CLI: `
|
|
88
|
+
- CLI: `poolbot nodes location get --node <id>`.
|
|
89
89
|
- Agent guidelines: only call when user enabled location and understands the scope.
|
|
90
90
|
|
|
91
91
|
## UX copy (suggested)
|
|
92
92
|
- Off: “Location sharing is disabled.”
|
|
93
|
-
- While Using: “Only when
|
|
93
|
+
- While Using: “Only when Pool Bot is open.”
|
|
94
94
|
- Always: “Allow background location. Requires system permission.”
|
|
95
95
|
- Precise: “Use precise GPS location. Toggle off to share approximate location.”
|
|
@@ -6,7 +6,7 @@ read_when:
|
|
|
6
6
|
---
|
|
7
7
|
# Media Understanding (Inbound) — 2026-01-17
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Pool Bot can **summarize inbound media** (image/audio/video) before the reply pipeline runs. It auto‑detects when local tools or provider keys are available, and can be disabled or customized. If understanding is off, models still receive the original files/URLs as usual.
|
|
10
10
|
|
|
11
11
|
## Goals
|
|
12
12
|
- Optional: pre‑digest inbound media into short text for faster routing + better command parsing.
|
|
@@ -106,12 +106,12 @@ Rules:
|
|
|
106
106
|
- If media exceeds `maxBytes`, that model is skipped and the **next model is tried**.
|
|
107
107
|
- If the model returns more than `maxChars`, output is trimmed.
|
|
108
108
|
- `prompt` defaults to simple “Describe the {media}.” plus the `maxChars` guidance (image/video only).
|
|
109
|
-
- If `<capability>.enabled: true` but no models are configured,
|
|
109
|
+
- If `<capability>.enabled: true` but no models are configured, Pool Bot tries the
|
|
110
110
|
**active reply model** when its provider supports the capability.
|
|
111
111
|
|
|
112
112
|
### Auto-detect media understanding (default)
|
|
113
113
|
If `tools.media.<capability>.enabled` is **not** set to `false` and you haven’t
|
|
114
|
-
configured models,
|
|
114
|
+
configured models, Pool Bot auto-detects in this order and **stops at the first
|
|
115
115
|
working option**:
|
|
116
116
|
|
|
117
117
|
1) **Local CLIs** (audio only; if installed)
|
|
@@ -140,7 +140,7 @@ Note: Binary detection is best-effort across macOS/Linux/Windows; ensure the CLI
|
|
|
140
140
|
|
|
141
141
|
## Capabilities (optional)
|
|
142
142
|
If you set `capabilities`, the entry only runs for those media types. For shared
|
|
143
|
-
lists,
|
|
143
|
+
lists, Pool Bot can infer defaults:
|
|
144
144
|
- `openai`, `anthropic`, `minimax`: **image**
|
|
145
145
|
- `google` (Gemini API): **image + audio + video**
|
|
146
146
|
- `groq`: **audio**
|
|
@@ -149,7 +149,7 @@ lists, Clawdbot can infer defaults:
|
|
|
149
149
|
For CLI entries, **set `capabilities` explicitly** to avoid surprising matches.
|
|
150
150
|
If you omit `capabilities`, the entry is eligible for the list it appears in.
|
|
151
151
|
|
|
152
|
-
## Provider support matrix (
|
|
152
|
+
## Provider support matrix (Pool Bot integrations)
|
|
153
153
|
| Capability | Provider integration | Notes |
|
|
154
154
|
|------------|----------------------|-------|
|
|
155
155
|
| Image | OpenAI / Anthropic / Google / others via `pi-ai` | Any image-capable model in the registry works. |
|
package/docs/nodes/talk.md
CHANGED
package/docs/nodes/voicewake.md
CHANGED
|
@@ -6,7 +6,7 @@ read_when:
|
|
|
6
6
|
---
|
|
7
7
|
# Voice Wake (Global Wake Words)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Pool Bot treats **wake words as a single global list** owned by the **Gateway**.
|
|
10
10
|
|
|
11
11
|
- There are **no per-node custom wake words**.
|
|
12
12
|
- **Any node/app UI may edit** the list; changes are persisted by the Gateway and broadcast to everyone.
|
|
@@ -16,7 +16,7 @@ Clawdbot treats **wake words as a single global list** owned by the **Gateway**.
|
|
|
16
16
|
|
|
17
17
|
Wake words are stored on the gateway machine at:
|
|
18
18
|
|
|
19
|
-
- `~/.
|
|
19
|
+
- `~/.poolbot/settings/voicewake.json`
|
|
20
20
|
|
|
21
21
|
Shape:
|
|
22
22
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Deploy on Northflank
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Deploy Moltbot on Northflank with a one-click template and finish setup in your browser.
|
|
6
|
+
This is the easiest “no terminal on the server” path: Northflank runs the Gateway for you,
|
|
7
|
+
and you configure everything via the `/setup` web wizard.
|
|
8
|
+
|
|
9
|
+
## How to get started
|
|
10
|
+
|
|
11
|
+
1. Click [Deploy Moltbot](https://northflank.com/stacks/deploy-moltbot) to open the template.
|
|
12
|
+
2. Create an [account on Northflank](https://app.northflank.com/signup) if you don’t already have one.
|
|
13
|
+
3. Click **Deploy Moltbot now**.
|
|
14
|
+
4. Set the required environment variable: `SETUP_PASSWORD`.
|
|
15
|
+
5. Click **Deploy stack** to build and run the Moltbot template.
|
|
16
|
+
6. Wait for the deployment to complete, then click **View resources**.
|
|
17
|
+
7. Open the Moltbot service.
|
|
18
|
+
8. Open the public Moltbot URL and complete setup at `/setup`.
|
|
19
|
+
9. Open the Control UI at `/moltbot`.
|
|
20
|
+
|
|
21
|
+
## What you get
|
|
22
|
+
|
|
23
|
+
- Hosted Moltbot Gateway + Control UI
|
|
24
|
+
- Web setup wizard at `/setup` (no terminal commands)
|
|
25
|
+
- Persistent storage via Northflank Volume (`/data`) so config/credentials/workspace survive redeploys
|
|
26
|
+
|
|
27
|
+
## Setup flow
|
|
28
|
+
|
|
29
|
+
1) Visit `https://<your-northflank-domain>/setup` and enter your `SETUP_PASSWORD`.
|
|
30
|
+
2) Choose a model/auth provider and paste your key.
|
|
31
|
+
3) (Optional) Add Telegram/Discord/Slack tokens.
|
|
32
|
+
4) Click **Run setup**.
|
|
33
|
+
5) Open the Control UI at `https://<your-northflank-domain>/moltbot`
|
|
34
|
+
|
|
35
|
+
If Telegram DMs are set to pairing, the setup wizard can approve the pairing code.
|
|
36
|
+
|
|
37
|
+
## Getting chat tokens
|
|
38
|
+
|
|
39
|
+
### Telegram bot token
|
|
40
|
+
|
|
41
|
+
1) Message `@BotFather` in Telegram
|
|
42
|
+
2) Run `/newbot`
|
|
43
|
+
3) Copy the token (looks like `123456789:AA...`)
|
|
44
|
+
4) Paste it into `/setup`
|
|
45
|
+
|
|
46
|
+
### Discord bot token
|
|
47
|
+
|
|
48
|
+
1) Go to https://discord.com/developers/applications
|
|
49
|
+
2) **New Application** → choose a name
|
|
50
|
+
3) **Bot** → **Add Bot**
|
|
51
|
+
4) **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)
|
|
52
|
+
5) Copy the **Bot Token** and paste into `/setup`
|
|
53
|
+
6) Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)
|
package/docs/perplexity.md
CHANGED
|
@@ -7,7 +7,7 @@ read_when:
|
|
|
7
7
|
|
|
8
8
|
# Perplexity Sonar
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Pool Bot can use Perplexity Sonar for the `web_search` tool. You can connect
|
|
11
11
|
through Perplexity’s direct API or via OpenRouter.
|
|
12
12
|
|
|
13
13
|
## API options
|
|
@@ -64,7 +64,7 @@ If both `PERPLEXITY_API_KEY` and `OPENROUTER_API_KEY` are set, set
|
|
|
64
64
|
`tools.web.search.perplexity.baseUrl` (or `tools.web.search.perplexity.apiKey`)
|
|
65
65
|
to disambiguate.
|
|
66
66
|
|
|
67
|
-
If no base URL is set,
|
|
67
|
+
If no base URL is set, Pool Bot chooses a default based on the API key source:
|
|
68
68
|
|
|
69
69
|
- `PERPLEXITY_API_KEY` or `pplx-...` → direct Perplexity (`https://api.perplexity.ai`)
|
|
70
70
|
- `OPENROUTER_API_KEY` or `sk-or-...` → OpenRouter (`https://openrouter.ai/api/v1`)
|
|
@@ -31,12 +31,12 @@ Android connects directly to the Gateway WebSocket (default `ws://<host>:18789`)
|
|
|
31
31
|
- Same LAN with mDNS/NSD, **or**
|
|
32
32
|
- Same Tailscale tailnet using Wide-Area Bonjour / unicast DNS-SD (see below), **or**
|
|
33
33
|
- Manual gateway host/port (fallback)
|
|
34
|
-
- You can run the CLI (`
|
|
34
|
+
- You can run the CLI (`poolbot`) on the gateway machine (or via SSH).
|
|
35
35
|
|
|
36
36
|
### 1) Start the Gateway
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
|
-
|
|
39
|
+
poolbot gateway --port 18789 --verbose
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Confirm in logs you see something like:
|
|
@@ -44,7 +44,7 @@ Confirm in logs you see something like:
|
|
|
44
44
|
|
|
45
45
|
For tailnet-only setups (recommended for Vienna ⇄ London), bind the gateway to the tailnet IP:
|
|
46
46
|
|
|
47
|
-
- Set `gateway.bind: "tailnet"` in `~/.
|
|
47
|
+
- Set `gateway.bind: "tailnet"` in `~/.poolbot/poolbot.json` on the gateway host.
|
|
48
48
|
- Restart the Gateway / macOS menubar app.
|
|
49
49
|
|
|
50
50
|
### 2) Verify discovery (optional)
|
|
@@ -52,7 +52,7 @@ For tailnet-only setups (recommended for Vienna ⇄ London), bind the gateway to
|
|
|
52
52
|
From the gateway machine:
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
dns-sd -B
|
|
55
|
+
dns-sd -B _poolbot-gw._tcp local.
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
More debugging notes: [Bonjour](/gateway/bonjour).
|
|
@@ -61,8 +61,8 @@ More debugging notes: [Bonjour](/gateway/bonjour).
|
|
|
61
61
|
|
|
62
62
|
Android NSD/mDNS discovery won’t cross networks. If your Android node and the gateway are on different networks but connected via Tailscale, use Wide-Area Bonjour / unicast DNS-SD instead:
|
|
63
63
|
|
|
64
|
-
1) Set up a DNS-SD zone (example `
|
|
65
|
-
2) Configure Tailscale split DNS for `
|
|
64
|
+
1) Set up a DNS-SD zone (example `poolbot.internal.`) on the gateway host and publish `_poolbot-gw._tcp` records.
|
|
65
|
+
2) Configure Tailscale split DNS for `poolbot.internal` pointing at that DNS server.
|
|
66
66
|
|
|
67
67
|
Details and example CoreDNS config: [Bonjour](/gateway/bonjour).
|
|
68
68
|
|
|
@@ -84,8 +84,8 @@ After the first successful pairing, Android auto-reconnects on launch:
|
|
|
84
84
|
On the gateway machine:
|
|
85
85
|
|
|
86
86
|
```bash
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
poolbot nodes pending
|
|
88
|
+
poolbot nodes approve <requestId>
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
Pairing details: [Gateway pairing](/gateway/pairing).
|
|
@@ -94,11 +94,11 @@ Pairing details: [Gateway pairing](/gateway/pairing).
|
|
|
94
94
|
|
|
95
95
|
- Via nodes status:
|
|
96
96
|
```bash
|
|
97
|
-
|
|
97
|
+
poolbot nodes status
|
|
98
98
|
```
|
|
99
99
|
- Via Gateway:
|
|
100
100
|
```bash
|
|
101
|
-
|
|
101
|
+
poolbot gateway call node.list --params "{}"
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
### 6) Chat + history
|
|
@@ -122,13 +122,13 @@ Note: nodes use the standalone canvas host on `canvasHost.port` (default `18793`
|
|
|
122
122
|
2) Navigate the node to it (LAN):
|
|
123
123
|
|
|
124
124
|
```bash
|
|
125
|
-
|
|
125
|
+
poolbot nodes invoke --node "<Android Node>" --command canvas.navigate --params '{"url":"http://<gateway-hostname>.local:18793/__poolbot__/canvas/"}'
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
Tailnet (optional): if both devices are on Tailscale, use a MagicDNS name or tailnet IP instead of `.local`, e.g. `http://<gateway-magicdns>:18793/
|
|
128
|
+
Tailnet (optional): if both devices are on Tailscale, use a MagicDNS name or tailnet IP instead of `.local`, e.g. `http://<gateway-magicdns>:18793/__poolbot__/canvas/`.
|
|
129
129
|
|
|
130
130
|
This server injects a live-reload client into HTML and reloads on file changes.
|
|
131
|
-
The A2UI host lives at `http://<gateway-host>:18793/
|
|
131
|
+
The A2UI host lives at `http://<gateway-host>:18793/__poolbot__/a2ui/`.
|
|
132
132
|
|
|
133
133
|
Canvas commands (foreground only):
|
|
134
134
|
- `canvas.eval`, `canvas.snapshot`, `canvas.navigate` (use `{"url":""}` or `{"url":"/"}` to return to the default scaffold). `canvas.snapshot` returns `{ format, base64 }` (default `format="jpeg"`).
|