@gguf/pigbot 0.0.6 → 0.0.7
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 +1206 -12
- package/LICENSE +2 -2
- package/README.md +347 -37
- package/assets/chrome-extension/README.md +5 -5
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -5
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +3 -3
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +6 -6
- package/dist/agents/agent-scope.js +1 -1
- package/dist/agents/anthropic-payload-log.js +2 -2
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cache-trace.js +5 -5
- package/dist/agents/channel-tools.js +31 -2
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +3 -3
- 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/live-auth-keys.js +2 -2
- package/dist/agents/memory-search.js +5 -0
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +2 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-selection.js +1 -1
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +40 -8
- package/dist/agents/{moltbot-tools.js → openclaw-tools.js} +1 -1
- package/dist/agents/pi-embedded-helpers/errors.js +20 -0
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-helpers.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/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
- package/dist/agents/pi-embedded-runner/run.js +31 -5
- package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
- package/dist/agents/pi-tools.js +5 -5
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/sandbox/browser.js +16 -11
- package/dist/agents/sandbox/constants.js +7 -7
- package/dist/agents/sandbox/docker.js +17 -14
- 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 +2 -2
- package/dist/agents/skills/bundled-dir.js +1 -1
- package/dist/agents/skills/config.js +2 -1
- package/dist/agents/skills/frontmatter.js +11 -3
- package/dist/agents/skills/workspace.js +6 -6
- package/dist/agents/synthetic-models.js +8 -0
- package/dist/agents/system-prompt.js +21 -21
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +2 -2
- package/dist/agents/tools/browser-tool.js +5 -5
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/memory-tool.js +1 -1
- package/dist/agents/tools/sessions-send-tool.js +2 -2
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/transcript-policy.js +2 -1
- package/dist/agents/workspace.js +3 -3
- package/dist/auto-reply/commands-registry.data.js +1 -1
- package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
- 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-session.js +4 -4
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +21 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply.js +1 -1
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/mentions.js +3 -2
- package/dist/auto-reply/reply/normalize-reply.js +12 -4
- package/dist/auto-reply/reply/reply-dispatcher.js +8 -1
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +2 -2
- package/dist/browser/chrome.js +13 -13
- package/dist/browser/chrome.profile-decoration.js +5 -5
- package/dist/browser/client-fetch.js +3 -3
- package/dist/browser/config.js +11 -11
- package/dist/browser/constants.js +3 -3
- package/dist/browser/control-service.js +1 -1
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/profiles.js +1 -1
- 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 +2 -2
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/server-context.js +9 -9
- package/dist/browser/server.js +2 -2
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +24 -19
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +14 -18
- package/dist/canvas-host/server.js +33 -35
- package/dist/channels/plugins/catalog.js +7 -7
- package/dist/channels/plugins/helpers.js +2 -2
- 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 +5 -5
- package/dist/channels/plugins/onboarding/telegram.js +3 -3
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- 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 +2 -2
- package/dist/cli/banner.js +10 -11
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +1 -1
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +5 -5
- package/dist/cli/browser-cli-manage.js +4 -4
- package/dist/cli/browser-cli.js +3 -3
- package/dist/cli/channel-options.js +1 -1
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +4 -8
- package/dist/cli/command-format.js +3 -3
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +2 -2
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +11 -13
- package/dist/cli/daemon-cli/status.gather.js +2 -5
- package/dist/cli/daemon-cli/status.print.js +9 -17
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +20 -13
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +7 -5
- package/dist/cli/gateway-cli/register.js +12 -6
- package/dist/cli/gateway-cli/run.js +15 -14
- package/dist/cli/gateway-cli/shared.js +5 -5
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +36 -5
- package/dist/cli/models-cli.js +1 -1
- package/dist/cli/node-cli/daemon.js +3 -3
- package/dist/cli/node-cli/register.js +1 -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 +9 -9
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +14 -11
- package/dist/cli/program/preaction.js +1 -1
- package/dist/cli/program/register.agent.js +15 -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 +3 -3
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/program/register.subclis.js +7 -2
- package/dist/cli/route.js +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +4 -4
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +11 -9
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +48 -45
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +1 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -2
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +10 -0
- package/dist/commands/auth-choice.apply.api-providers.js +49 -1
- package/dist/commands/auth-choice.apply.openai.js +1 -1
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/auth-choice.preferred-provider.js +1 -0
- 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 +2 -2
- package/dist/commands/configure.gateway.js +1 -1
- package/dist/commands/configure.wizard.js +21 -21
- package/dist/commands/daemon-install-helpers.js +2 -2
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +5 -5
- package/dist/commands/doctor-config-flow.js +64 -7
- package/dist/commands/doctor-format.js +5 -5
- package/dist/commands/doctor-gateway-daemon-flow.js +7 -4
- package/dist/commands/doctor-gateway-services.js +72 -65
- package/dist/commands/doctor-platform-notes.js +51 -9
- package/dist/commands/doctor-sandbox.js +4 -4
- package/dist/commands/doctor-security.js +7 -7
- package/dist/commands/doctor-state-integrity.js +9 -7
- package/dist/commands/doctor-state-migrations.js +1 -1
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +5 -5
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +5 -27
- package/dist/commands/doctor.js +11 -11
- package/dist/commands/gateway-status/helpers.js +2 -2
- package/dist/commands/gateway-status.js +9 -3
- package/dist/commands/health.js +2 -2
- package/dist/commands/models/auth.js +1 -1
- 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 +4 -4
- package/dist/commands/node-daemon-install-helpers.js +1 -1
- package/dist/commands/onboard-auth.config-core.js +65 -1
- package/dist/commands/onboard-auth.credentials.js +14 -2
- package/dist/commands/onboard-auth.js +2 -2
- package/dist/commands/onboard-channels.js +5 -5
- package/dist/commands/onboard-helpers.js +9 -8
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +21 -1
- 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 +7 -3
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +3 -3
- 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 +9 -7
- 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 +5 -5
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.gateway-probe.js +2 -2
- package/dist/commands/status.scan.js +2 -2
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +8 -6
- package/dist/config/config.js +1 -1
- package/dist/config/io.js +13 -14
- package/dist/config/paths.js +107 -33
- package/dist/config/schema.js +14 -12
- package/dist/config/sessions/store.js +1 -1
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-runtime.js +1 -0
- package/dist/config/zod-schema.js +3 -2
- package/dist/config/zod-schema.session.js +6 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-BKPyesll.css +1 -0
- package/dist/control-ui/assets/{index-CxLFx0Ae.js → index-DFDgq9AK.js} +397 -366
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +7 -5
- package/dist/daemon/constants.js +19 -25
- package/dist/daemon/inspect.js +64 -28
- package/dist/daemon/launchd.js +7 -7
- package/dist/daemon/node-service.js +14 -14
- package/dist/daemon/paths.js +3 -3
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/schtasks.js +6 -6
- package/dist/daemon/service-env.js +25 -21
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/daemon/systemd.js +6 -6
- package/dist/discord/send.outbound.js +4 -4
- package/dist/discord/send.shared.js +32 -1
- package/dist/discord/targets.js +79 -0
- package/dist/entry.js +9 -8
- package/dist/gateway/auth.js +6 -3
- package/dist/gateway/call.js +3 -1
- package/dist/gateway/control-ui.js +4 -4
- package/dist/gateway/hooks.js +3 -1
- package/dist/gateway/http-utils.js +5 -3
- 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/server/ws-connection/message-handler.js +1 -1
- package/dist/gateway/server-browser.js +2 -2
- package/dist/gateway/server-constants.js +2 -2
- package/dist/gateway/server-cron.js +1 -1
- package/dist/gateway/server-discovery-runtime.js +12 -4
- package/dist/gateway/server-discovery.js +7 -7
- package/dist/gateway/server-http.js +1 -1
- package/dist/gateway/server-methods/config.js +2 -2
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-reload-handlers.js +5 -5
- package/dist/gateway/server-runtime-config.js +3 -3
- package/dist/gateway/server-startup.js +6 -6
- package/dist/gateway/server.impl.js +8 -7
- package/dist/gateway/session-utils.fs.js +2 -1
- package/dist/gateway/test-helpers.mocks.js +8 -6
- package/dist/gateway/test-helpers.server.js +28 -28
- package/dist/gateway/tools-invoke-http.js +40 -4
- 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 +2 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +30 -7
- package/dist/hooks/bundled/session-memory/handler.js +19 -12
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +2 -2
- package/dist/hooks/config.js +1 -1
- package/dist/hooks/frontmatter.js +11 -3
- package/dist/hooks/gmail-ops.js +1 -1
- package/dist/hooks/gmail-watcher.js +1 -1
- package/dist/hooks/hooks-status.js +2 -2
- package/dist/hooks/install.js +8 -8
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +1 -1
- package/dist/hooks/plugin-hooks.js +2 -2
- package/dist/hooks/workspace.js +9 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/index.js +4 -4
- package/dist/infra/bonjour-discovery.js +21 -17
- package/dist/infra/bonjour.js +10 -9
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/diagnostic-flags.js +1 -1
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/gateway-lock.js +3 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/{moltbot-root.js → openclaw-root.js} +2 -2
- package/dist/infra/outbound/outbound-session.js +18 -0
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +10 -9
- package/dist/infra/ports-format.js +3 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +33 -0
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/provider-usage.load.js +6 -0
- package/dist/infra/provider-usage.shared.js +2 -0
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +4 -4
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +4 -4
- package/dist/infra/ssh-config.js +2 -1
- package/dist/infra/ssh-tunnel.js +8 -1
- package/dist/infra/state-migrations.js +165 -6
- package/dist/infra/system-presence.js +1 -1
- package/dist/infra/tailscale.js +1 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +56 -33
- package/dist/infra/update-check.js +1 -1
- package/dist/infra/update-global.js +21 -11
- package/dist/infra/update-runner.js +7 -7
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/voicewake.js +1 -1
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +31 -14
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +9 -6
- package/dist/macos/relay-smoke.js +1 -1
- package/dist/macos/relay.js +6 -6
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +3 -3
- package/dist/media/input-files.js +1 -1
- package/dist/media/mime.js +3 -0
- package/dist/media-understanding/apply.js +278 -1
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +1 -1
- package/dist/memory/batch-gemini.js +2 -2
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings-gemini.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/memory/internal.js +49 -16
- package/dist/memory/manager-cache-key.js +1 -0
- package/dist/memory/manager.js +62 -10
- package/dist/memory/sync-memory-files.js +1 -1
- package/dist/node-host/runner.js +6 -6
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugins/bundled-dir.js +1 -1
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/config-state.js +60 -0
- package/dist/plugins/discovery.js +14 -12
- package/dist/plugins/install.js +8 -8
- package/dist/plugins/loader.js +4 -7
- package/dist/plugins/manifest-registry.js +4 -4
- package/dist/plugins/manifest.js +4 -7
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +2 -2
- package/dist/plugins/runtime.js +1 -1
- 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/resolve-route.js +2 -0
- package/dist/routing/session-key.js +5 -0
- package/dist/security/audit-extra.js +2 -2
- package/dist/security/audit.js +7 -7
- package/dist/shared/text/reasoning-tags.js +44 -3
- package/dist/slack/monitor/commands.js +4 -3
- package/dist/slack/monitor/slash.js +62 -59
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/accounts.js +1 -1
- package/dist/telegram/bot/delivery.js +26 -3
- package/dist/telegram/bot/helpers.js +13 -2
- package/dist/telegram/bot-message-context.js +8 -4
- package/dist/telegram/bot-message-dispatch.js +36 -5
- package/dist/telegram/bot-native-commands.js +50 -11
- package/dist/telegram/bot.js +7 -5
- package/dist/telegram/download.js +1 -1
- package/dist/telegram/monitor.js +19 -1
- package/dist/telegram/network-config.js +2 -2
- package/dist/telegram/network-errors.js +4 -0
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +12 -6
- package/dist/tui/gateway-chat.js +3 -3
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +12 -3
- package/dist/version.js +3 -3
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/broadcast.js +2 -0
- 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 -1
- package/dist/wizard/onboarding.js +11 -11
- package/docs/CNAME +1 -1
- package/docs/_config.yml +3 -3
- package/docs/_layouts/default.html +9 -9
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +19 -19
- package/docs/automation/cron-vs-heartbeat.md +7 -7
- package/docs/automation/gmail-pubsub.md +25 -25
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +5 -5
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +6 -6
- package/docs/channels/bluebubbles.md +12 -12
- package/docs/channels/discord.md +15 -15
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/imessage.md +13 -13
- package/docs/channels/index.md +4 -4
- package/docs/channels/line.md +6 -6
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +14 -14
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +26 -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 +16 -16
- package/docs/channels/telegram.md +23 -23
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +14 -14
- package/docs/channels/whatsapp.md +26 -26
- 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 +12 -12
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +24 -24
- 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 -6
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +11 -11
- package/docs/cli/gateway.md +26 -26
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +35 -35
- package/docs/cli/index.md +42 -42
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +12 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +15 -15
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -7
- 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 +6 -6
- 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 +27 -27
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +2 -2
- package/docs/concepts/channel-routing.md +5 -5
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +7 -7
- package/docs/concepts/groups.md +5 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +41 -19
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +25 -24
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +31 -31
- package/docs/concepts/oauth.md +22 -22
- 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 +18 -16
- 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 +3 -3
- 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 +6 -6
- package/docs/debugging.md +18 -18
- package/docs/diagnostics/flags.md +7 -7
- package/docs/docs.json +21 -5
- package/docs/environment.md +7 -7
- 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 +12 -12
- package/docs/gateway/authentication.md +22 -22
- package/docs/gateway/background-process.md +2 -2
- package/docs/gateway/bonjour.md +25 -25
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +12 -12
- package/docs/gateway/configuration-examples.md +26 -25
- package/docs/gateway/configuration.md +155 -153
- package/docs/gateway/discovery.md +10 -10
- package/docs/gateway/doctor.md +27 -27
- 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 +63 -63
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +24 -24
- package/docs/gateway/openai-http-api.md +12 -12
- package/docs/gateway/openresponses-http-api.md +12 -12
- package/docs/gateway/pairing.md +9 -9
- package/docs/gateway/protocol.md +4 -4
- package/docs/gateway/remote-gateway-readme.md +10 -10
- package/docs/gateway/remote.md +4 -4
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -7
- package/docs/gateway/sandboxing.md +6 -6
- package/docs/gateway/security/formal-verification.md +67 -14
- package/docs/gateway/security/index.md +56 -59
- package/docs/gateway/tailscale.md +10 -10
- package/docs/gateway/tools-invoke-http-api.md +5 -5
- package/docs/gateway/troubleshooting.md +112 -112
- package/docs/help/faq.md +338 -338
- package/docs/help/troubleshooting.md +16 -16
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +62 -62
- package/docs/index.md +45 -36
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +45 -45
- package/docs/install/index.md +33 -33
- package/docs/install/installer.md +24 -24
- package/docs/install/migrating.md +36 -36
- package/docs/install/nix.md +18 -18
- package/docs/install/node.md +4 -4
- package/docs/install/uninstall.md +29 -29
- package/docs/install/updating.md +51 -51
- package/docs/logging.md +59 -59
- package/docs/multi-agent-sandbox-tools.md +15 -15
- 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 +57 -57
- 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 +3 -3
- package/docs/northflank.mdx +9 -9
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +14 -14
- package/docs/platforms/digitalocean.md +26 -26
- package/docs/platforms/exe-dev.md +68 -130
- package/docs/platforms/fly.md +33 -33
- package/docs/platforms/gcp.md +58 -58
- package/docs/platforms/hetzner.md +45 -45
- package/docs/platforms/index.md +8 -8
- 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 +5 -5
- package/docs/platforms/mac/dev-setup.md +10 -10
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +4 -4
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +1 -1
- package/docs/platforms/mac/release.md +18 -18
- 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/webchat.md +1 -1
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +16 -16
- package/docs/platforms/oracle.md +35 -35
- package/docs/platforms/raspberry-pi.md +22 -22
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +65 -65
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +12 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +16 -16
- package/docs/providers/claude-max-api-proxy.md +4 -4
- 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 +4 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +15 -4
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +6 -6
- 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 +23 -23
- package/docs/providers/vercel-ai-gateway.md +4 -4
- package/docs/providers/xiaomi.md +62 -0
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +8 -8
- 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 +17 -17
- package/docs/reference/RELEASING.md +29 -29
- 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/IDENTITY.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 +13 -13
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +66 -13
- package/docs/start/getting-started.md +29 -29
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +14 -14
- package/docs/start/onboarding.md +7 -7
- package/docs/start/{clawd.md → openclaw.md} +35 -35
- package/docs/start/pairing.md +10 -10
- package/docs/start/setup.md +22 -22
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +30 -30
- package/docs/testing.md +56 -56
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +16 -16
- package/docs/tools/browser-login.md +6 -6
- package/docs/tools/browser.md +126 -126
- package/docs/tools/chrome-extension.md +17 -17
- package/docs/tools/clawdhub.md +7 -7
- package/docs/tools/creating-skills.md +6 -6
- package/docs/tools/exec-approvals.md +5 -5
- package/docs/tools/exec.md +4 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +13 -13
- package/docs/tools/llm-task.md +2 -2
- package/docs/tools/lobster.md +13 -13
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +31 -31
- package/docs/tools/slash-commands.md +8 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +1 -1
- package/docs/web/control-ui.md +8 -8
- package/docs/web/dashboard.md +6 -6
- package/docs/web/index.md +5 -5
- 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 +48 -48
- package/extensions/bluebubbles/src/monitor.ts +6 -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 +3 -3
- 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 +3 -3
- package/extensions/google-antigravity-auth/index.ts +2 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +5 -5
- package/extensions/google-gemini-cli-auth/index.ts +3 -3
- package/extensions/google-gemini-cli-auth/oauth.ts +4 -4
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/node_modules/.bin/openclaw +16 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.ps1 +28 -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/openclaw +16 -0
- package/extensions/line/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/line/node_modules/.bin/openclaw.ps1 +28 -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 +4 -4
- 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 +6 -6
- package/extensions/lobster/README.md +7 -7
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +7 -7
- package/extensions/lobster/src/lobster-tool.ts +2 -2
- package/extensions/matrix/CHANGELOG.md +14 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +0 -13
- package/extensions/matrix/node_modules/.bin/openclaw +16 -0
- package/extensions/matrix/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/matrix/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/matrix/package.json +6 -6
- 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/client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +1 -1
- package/extensions/matrix/src/matrix/deps.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +1 -1
- package/extensions/matrix/src/matrix/send.test.ts +1 -1
- package/extensions/matrix/src/matrix/send.ts +1 -1
- package/extensions/matrix/src/onboarding.ts +2 -2
- 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/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/openclaw +16 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/memory-core/package.json +6 -6
- package/extensions/memory-lancedb/config.ts +26 -2
- package/extensions/memory-lancedb/index.test.ts +3 -3
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +0 -13
- package/extensions/memory-lancedb/{clawdbot.plugin.json → openclaw.plugin.json} +1 -1
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/msteams/CHANGELOG.md +12 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/node_modules/.bin/openclaw +16 -0
- package/extensions/msteams/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/msteams/node_modules/.bin/openclaw.ps1 +28 -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 +6 -5
- 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 +2 -2
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +6 -5
- package/extensions/msteams/src/polls.ts +9 -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 +3 -3
- 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 +2 -2
- 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 +9 -4
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/node_modules/.bin/openclaw +16 -0
- package/extensions/nostr/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/nostr/node_modules/.bin/openclaw.ps1 +28 -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 +9 -8
- 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 +3 -3
- 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 +3 -3
- 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/twitch/CHANGELOG.md +6 -1
- package/extensions/twitch/README.md +8 -8
- package/extensions/twitch/index.ts +3 -3
- package/extensions/twitch/node_modules/.bin/openclaw +16 -0
- package/extensions/twitch/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/twitch/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/twitch/package.json +5 -5
- package/extensions/twitch/src/actions.ts +1 -1
- package/extensions/twitch/src/config-schema.ts +1 -1
- package/extensions/twitch/src/config.ts +3 -3
- package/extensions/twitch/src/monitor.ts +3 -3
- package/extensions/twitch/src/onboarding.test.ts +1 -1
- package/extensions/twitch/src/onboarding.ts +13 -13
- package/extensions/twitch/src/outbound.test.ts +2 -2
- package/extensions/twitch/src/outbound.ts +2 -2
- package/extensions/twitch/src/plugin.test.ts +2 -2
- package/extensions/twitch/src/plugin.ts +9 -9
- package/extensions/twitch/src/runtime.ts +1 -1
- package/extensions/twitch/src/send.test.ts +2 -2
- package/extensions/twitch/src/send.ts +5 -5
- package/extensions/twitch/src/token.test.ts +12 -12
- package/extensions/twitch/src/token.ts +7 -7
- package/extensions/twitch/src/twitch-client.ts +4 -4
- package/extensions/twitch/src/types.ts +3 -3
- package/extensions/twitch/src/utils/markdown.ts +1 -1
- package/extensions/voice-call/CHANGELOG.md +16 -11
- package/extensions/voice-call/README.md +16 -16
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/src/cli.ts +16 -4
- package/extensions/voice-call/src/core-bridge.ts +5 -5
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/manager.ts +17 -5
- package/extensions/voice-call/src/response-generator.ts +1 -1
- 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 +14 -9
- package/extensions/zalo/README.md +4 -4
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/node_modules/.bin/openclaw +16 -0
- package/extensions/zalo/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalo/node_modules/.bin/openclaw.ps1 +28 -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 +9 -4
- package/extensions/zalouser/README.md +18 -18
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/node_modules/.bin/openclaw +16 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.ps1 +28 -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/openclaw.mjs +14 -0
- package/package.json +35 -25
- package/scripts/postinstall.js +1 -0
- 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 +1 -1
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +6 -6
- package/skills/clawdhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +5 -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 -1
- 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 +3 -3
- package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
- 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/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +1 -1
- package/skills/sherpa-onnx-tts/SKILL.md +2 -2
- package/skills/slack/SKILL.md +4 -4
- 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/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/assets/images/icon.png +0 -0
- package/dist/control-ui/assets/index-BAFzd9IE.css +0 -1
- package/dist/control-ui/assets/index-CxLFx0Ae.js.map +0 -1
- package/dist/control-ui/pixel_pig_icon.png +0 -0
- package/dist/daemon/legacy.js +0 -44
- package/dist/extension.js +0 -70
- /package/dist/config/{types.clawdbot.js → types.openclaw.js} +0 -0
- /package/docs/{whatsapp-clawd.jpg → whatsapp-openclaw.jpg} +0 -0
- /package/extensions/bluebubbles/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/discord/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/googlechat/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/imessage/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/line/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/llm-task/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/lobster/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/matrix/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/mattermost/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/memory-core/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/msteams/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nostr/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/open-prose/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/signal/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/slack/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/telegram/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/tlon/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/twitch/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/voice-call/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/whatsapp/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalo/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalouser/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
package/docs/channels/msteams.md
CHANGED
|
@@ -21,23 +21,23 @@ Explainable: keeps core installs lighter and lets MS Teams dependencies update i
|
|
|
21
21
|
|
|
22
22
|
Install via CLI (npm registry):
|
|
23
23
|
```bash
|
|
24
|
-
|
|
24
|
+
openclaw plugins install @openclaw/msteams
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Local checkout (when running from a git repo):
|
|
28
28
|
```bash
|
|
29
|
-
|
|
29
|
+
openclaw plugins install ./extensions/msteams
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
If you choose Teams during configure/onboarding and a git checkout is detected,
|
|
33
|
-
|
|
33
|
+
OpenClaw will offer the local install path automatically.
|
|
34
34
|
|
|
35
35
|
Details: [Plugins](/plugin)
|
|
36
36
|
|
|
37
37
|
## Quick setup (beginner)
|
|
38
38
|
1) Install the Microsoft Teams plugin.
|
|
39
39
|
2) Create an **Azure Bot** (App ID + client secret + tenant ID).
|
|
40
|
-
3) Configure
|
|
40
|
+
3) Configure OpenClaw with those credentials.
|
|
41
41
|
4) Expose `/api/messages` (port 3978 by default) via a public URL or tunnel.
|
|
42
42
|
5) Install the Teams app package and start the gateway.
|
|
43
43
|
|
|
@@ -58,7 +58,7 @@ Minimal config:
|
|
|
58
58
|
Note: group chats are blocked by default (`channels.msteams.groupPolicy: "allowlist"`). To allow group replies, set `channels.msteams.groupAllowFrom` (or use `groupPolicy: "open"` to allow any member, mention-gated).
|
|
59
59
|
|
|
60
60
|
## Goals
|
|
61
|
-
- Talk to
|
|
61
|
+
- Talk to OpenClaw via Teams DMs, group chats, or channels.
|
|
62
62
|
- Keep routing deterministic: replies always go back to the channel they arrived on.
|
|
63
63
|
- Default to safe channel behavior (mentions required unless configured otherwise).
|
|
64
64
|
|
|
@@ -101,7 +101,7 @@ Example:
|
|
|
101
101
|
- Keys can be team IDs or names; channel keys can be conversation IDs or names.
|
|
102
102
|
- When `groupPolicy="allowlist"` and a teams allowlist is present, only listed teams/channels are accepted (mention‑gated).
|
|
103
103
|
- The configure wizard accepts `Team/Channel` entries and stores them for you.
|
|
104
|
-
- On startup,
|
|
104
|
+
- On startup, OpenClaw resolves team/channel and user allowlist names to IDs (when Graph permissions allow)
|
|
105
105
|
and logs the mapping; unresolved entries are kept as typed.
|
|
106
106
|
|
|
107
107
|
Example:
|
|
@@ -127,12 +127,12 @@ Example:
|
|
|
127
127
|
2. Create an **Azure Bot** (App ID + secret + tenant ID).
|
|
128
128
|
3. Build a **Teams app package** that references the bot and includes the RSC permissions below.
|
|
129
129
|
4. Upload/install the Teams app into a team (or personal scope for DMs).
|
|
130
|
-
5. Configure `msteams` in `~/.
|
|
130
|
+
5. Configure `msteams` in `~/.openclaw/openclaw.json` (or env vars) and start the gateway.
|
|
131
131
|
6. The gateway listens for Bot Framework webhook traffic on `/api/messages` by default.
|
|
132
132
|
|
|
133
133
|
## Azure Bot Setup (Prerequisites)
|
|
134
134
|
|
|
135
|
-
Before configuring
|
|
135
|
+
Before configuring OpenClaw, you need to create an Azure Bot resource.
|
|
136
136
|
|
|
137
137
|
### Step 1: Create Azure Bot
|
|
138
138
|
|
|
@@ -141,7 +141,7 @@ Before configuring Moltbot, you need to create an Azure Bot resource.
|
|
|
141
141
|
|
|
142
142
|
| Field | Value |
|
|
143
143
|
|-------|-------|
|
|
144
|
-
| **Bot handle** | Your bot name, e.g., `
|
|
144
|
+
| **Bot handle** | Your bot name, e.g., `openclaw-msteams` (must be unique) |
|
|
145
145
|
| **Subscription** | Select your Azure subscription |
|
|
146
146
|
| **Resource group** | Create new or use existing |
|
|
147
147
|
| **Pricing tier** | **Free** for dev/testing |
|
|
@@ -218,8 +218,8 @@ This is often easier than hand-editing JSON manifests.
|
|
|
218
218
|
|
|
219
219
|
## Setup (minimal text-only)
|
|
220
220
|
1. **Install the Microsoft Teams plugin**
|
|
221
|
-
- From npm: `
|
|
222
|
-
- From a local checkout: `
|
|
221
|
+
- From npm: `openclaw plugins install @openclaw/msteams`
|
|
222
|
+
- From a local checkout: `openclaw plugins install ./extensions/msteams`
|
|
223
223
|
|
|
224
224
|
2. **Bot registration**
|
|
225
225
|
- Create an Azure Bot (see above) and note:
|
|
@@ -235,7 +235,7 @@ This is often easier than hand-editing JSON manifests.
|
|
|
235
235
|
- Create icons: `outline.png` (32x32) and `color.png` (192x192).
|
|
236
236
|
- Zip all three files together: `manifest.json`, `outline.png`, `color.png`.
|
|
237
237
|
|
|
238
|
-
4. **Configure
|
|
238
|
+
4. **Configure OpenClaw**
|
|
239
239
|
```json
|
|
240
240
|
{
|
|
241
241
|
"msteams": {
|
|
@@ -289,14 +289,14 @@ Minimal, valid example with the required fields. Replace IDs and URLs.
|
|
|
289
289
|
"manifestVersion": "1.23",
|
|
290
290
|
"version": "1.0.0",
|
|
291
291
|
"id": "00000000-0000-0000-0000-000000000000",
|
|
292
|
-
"name": { "short": "
|
|
292
|
+
"name": { "short": "OpenClaw" },
|
|
293
293
|
"developer": {
|
|
294
294
|
"name": "Your Org",
|
|
295
295
|
"websiteUrl": "https://example.com",
|
|
296
296
|
"privacyUrl": "https://example.com/privacy",
|
|
297
297
|
"termsOfUseUrl": "https://example.com/terms"
|
|
298
298
|
},
|
|
299
|
-
"description": { "short": "
|
|
299
|
+
"description": { "short": "OpenClaw in Teams", "full": "OpenClaw in Teams" },
|
|
300
300
|
"icons": { "outline": "outline.png", "color": "color.png" },
|
|
301
301
|
"accentColor": "#5B6DEF",
|
|
302
302
|
"bots": [
|
|
@@ -397,7 +397,7 @@ Teams delivers messages via HTTP webhook. If processing takes too long (e.g., sl
|
|
|
397
397
|
- Teams retrying the message (causing duplicates)
|
|
398
398
|
- Dropped replies
|
|
399
399
|
|
|
400
|
-
|
|
400
|
+
OpenClaw handles this by returning quickly and sending replies proactively, but very slow responses may still cause issues.
|
|
401
401
|
|
|
402
402
|
### Formatting
|
|
403
403
|
Teams markdown is more limited than Slack or Discord:
|
|
@@ -475,7 +475,7 @@ Teams recently introduced two channel UI styles over the same underlying data mo
|
|
|
475
475
|
- **Channels/groups:** Attachments live in M365 storage (SharePoint/OneDrive). The webhook payload only includes an HTML stub, not the actual file bytes. **Graph API permissions are required** to download channel attachments.
|
|
476
476
|
|
|
477
477
|
Without Graph permissions, channel messages with images will be received as text-only (the image content is not accessible to the bot).
|
|
478
|
-
By default,
|
|
478
|
+
By default, OpenClaw only downloads media from Microsoft/Teams hostnames. Override with `channels.msteams.mediaAllowHosts` (use `["*"]` to allow any host).
|
|
479
479
|
|
|
480
480
|
## Sending files in group chats
|
|
481
481
|
|
|
@@ -512,7 +512,7 @@ Bots don't have a personal OneDrive drive (the `/me/drive` Graph API endpoint do
|
|
|
512
512
|
# Response includes: "id": "contoso.sharepoint.com,guid1,guid2"
|
|
513
513
|
```
|
|
514
514
|
|
|
515
|
-
4. **Configure
|
|
515
|
+
4. **Configure OpenClaw:**
|
|
516
516
|
```json5
|
|
517
517
|
{
|
|
518
518
|
channels: {
|
|
@@ -544,13 +544,13 @@ Per-user sharing is more secure as only the chat participants can access the fil
|
|
|
544
544
|
|
|
545
545
|
### Files stored location
|
|
546
546
|
|
|
547
|
-
Uploaded files are stored in a `/
|
|
547
|
+
Uploaded files are stored in a `/OpenClawShared/` folder in the configured SharePoint site's default document library.
|
|
548
548
|
|
|
549
549
|
## Polls (Adaptive Cards)
|
|
550
|
-
|
|
550
|
+
OpenClaw sends Teams polls as Adaptive Cards (there is no native Teams poll API).
|
|
551
551
|
|
|
552
|
-
- CLI: `
|
|
553
|
-
- Votes are recorded by the gateway in `~/.
|
|
552
|
+
- CLI: `openclaw message poll --channel msteams --target conversation:<id> ...`
|
|
553
|
+
- Votes are recorded by the gateway in `~/.openclaw/msteams-polls.json`.
|
|
554
554
|
- The gateway must stay online to record votes.
|
|
555
555
|
- Polls do not auto-post result summaries yet (inspect the store file if needed).
|
|
556
556
|
|
|
@@ -575,7 +575,7 @@ The `card` parameter accepts an Adaptive Card JSON object. When `card` is provid
|
|
|
575
575
|
|
|
576
576
|
**CLI:**
|
|
577
577
|
```bash
|
|
578
|
-
|
|
578
|
+
openclaw message send --channel msteams \
|
|
579
579
|
--target "conversation:19:abc...@thread.tacv2" \
|
|
580
580
|
--card '{"type":"AdaptiveCard","version":"1.5","body":[{"type":"TextBlock","text":"Hello!"}]}'
|
|
581
581
|
```
|
|
@@ -596,16 +596,16 @@ MSTeams targets use prefixes to distinguish between users and conversations:
|
|
|
596
596
|
**CLI examples:**
|
|
597
597
|
```bash
|
|
598
598
|
# Send to a user by ID
|
|
599
|
-
|
|
599
|
+
openclaw message send --channel msteams --target "user:40a1a0ed-..." --message "Hello"
|
|
600
600
|
|
|
601
601
|
# Send to a user by display name (triggers Graph API lookup)
|
|
602
|
-
|
|
602
|
+
openclaw message send --channel msteams --target "user:John Smith" --message "Hello"
|
|
603
603
|
|
|
604
604
|
# Send to a group chat or channel
|
|
605
|
-
|
|
605
|
+
openclaw message send --channel msteams --target "conversation:19:abc...@thread.tacv2" --message "Hello"
|
|
606
606
|
|
|
607
607
|
# Send an Adaptive Card to a conversation
|
|
608
|
-
|
|
608
|
+
openclaw message send --channel msteams --target "conversation:19:abc...@thread.tacv2" \
|
|
609
609
|
--card '{"type":"AdaptiveCard","version":"1.5","body":[{"type":"TextBlock","text":"Hello"}]}'
|
|
610
610
|
```
|
|
611
611
|
|
|
@@ -12,16 +12,16 @@ Nextcloud Talk ships as a plugin and is not bundled with the core install.
|
|
|
12
12
|
|
|
13
13
|
Install via CLI (npm registry):
|
|
14
14
|
```bash
|
|
15
|
-
|
|
15
|
+
openclaw plugins install @openclaw/nextcloud-talk
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
Local checkout (when running from a git repo):
|
|
19
19
|
```bash
|
|
20
|
-
|
|
20
|
+
openclaw plugins install ./extensions/nextcloud-talk
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
If you choose Nextcloud Talk during configure/onboarding and a git checkout is detected,
|
|
24
|
-
|
|
24
|
+
OpenClaw will offer the local install path automatically.
|
|
25
25
|
|
|
26
26
|
Details: [Plugins](/plugin)
|
|
27
27
|
|
|
@@ -29,10 +29,10 @@ Details: [Plugins](/plugin)
|
|
|
29
29
|
1) Install the Nextcloud Talk plugin.
|
|
30
30
|
2) On your Nextcloud server, create a bot:
|
|
31
31
|
```bash
|
|
32
|
-
./occ talk:bot:install "
|
|
32
|
+
./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
|
|
33
33
|
```
|
|
34
34
|
3) Enable the bot in the target room settings.
|
|
35
|
-
4) Configure
|
|
35
|
+
4) Configure OpenClaw:
|
|
36
36
|
- Config: `channels.nextcloud-talk.baseUrl` + `channels.nextcloud-talk.botSecret`
|
|
37
37
|
- Or env: `NEXTCLOUD_TALK_BOT_SECRET` (default account only)
|
|
38
38
|
5) Restart the gateway (or finish onboarding).
|
|
@@ -60,8 +60,8 @@ Minimal config:
|
|
|
60
60
|
## Access control (DMs)
|
|
61
61
|
- Default: `channels.nextcloud-talk.dmPolicy = "pairing"`. Unknown senders get a pairing code.
|
|
62
62
|
- Approve via:
|
|
63
|
-
- `
|
|
64
|
-
- `
|
|
63
|
+
- `openclaw pairing list nextcloud-talk`
|
|
64
|
+
- `openclaw pairing approve nextcloud-talk <CODE>`
|
|
65
65
|
- Public DMs: `channels.nextcloud-talk.dmPolicy="open"` plus `channels.nextcloud-talk.allowFrom=["*"]`.
|
|
66
66
|
|
|
67
67
|
## Rooms (groups)
|
package/docs/channels/nostr.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
summary: "Nostr DM channel via NIP-04 encrypted messages"
|
|
3
3
|
read_when:
|
|
4
|
-
- You want
|
|
4
|
+
- You want OpenClaw to receive DMs via Nostr
|
|
5
5
|
- You're setting up decentralized messaging
|
|
6
6
|
---
|
|
7
7
|
# Nostr
|
|
8
8
|
|
|
9
9
|
**Status:** Optional plugin (disabled by default).
|
|
10
10
|
|
|
11
|
-
Nostr is a decentralized protocol for social networking. This channel enables
|
|
11
|
+
Nostr is a decentralized protocol for social networking. This channel enables OpenClaw to receive and respond to encrypted direct messages (DMs) via NIP-04.
|
|
12
12
|
|
|
13
13
|
## Install (on demand)
|
|
14
14
|
|
|
15
15
|
### Onboarding (recommended)
|
|
16
16
|
|
|
17
|
-
- The onboarding wizard (`
|
|
17
|
+
- The onboarding wizard (`openclaw onboard`) and `openclaw channels add` list optional channel plugins.
|
|
18
18
|
- Selecting Nostr prompts you to install the plugin on demand.
|
|
19
19
|
|
|
20
20
|
Install defaults:
|
|
@@ -27,13 +27,13 @@ You can always override the choice in the prompt.
|
|
|
27
27
|
### Manual install
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
|
|
30
|
+
openclaw plugins install @openclaw/nostr
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Use a local checkout (dev workflows):
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
|
|
36
|
+
openclaw plugins install --link <path-to-openclaw>/extensions/nostr
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
Restart the Gateway after installing or enabling plugins.
|
|
@@ -91,14 +91,14 @@ Example:
|
|
|
91
91
|
"nostr": {
|
|
92
92
|
"privateKey": "${NOSTR_PRIVATE_KEY}",
|
|
93
93
|
"profile": {
|
|
94
|
-
"name": "
|
|
95
|
-
"displayName": "
|
|
94
|
+
"name": "openclaw",
|
|
95
|
+
"displayName": "OpenClaw",
|
|
96
96
|
"about": "Personal assistant DM bot",
|
|
97
97
|
"picture": "https://example.com/avatar.png",
|
|
98
98
|
"banner": "https://example.com/banner.png",
|
|
99
99
|
"website": "https://example.com",
|
|
100
|
-
"nip05": "
|
|
101
|
-
"lud16": "
|
|
100
|
+
"nip05": "openclaw@example.com",
|
|
101
|
+
"lud16": "openclaw@example.com"
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
package/docs/channels/signal.md
CHANGED
|
@@ -13,8 +13,8 @@ Status: external CLI integration. Gateway talks to `signal-cli` over HTTP JSON-R
|
|
|
13
13
|
1) Use a **separate Signal number** for the bot (recommended).
|
|
14
14
|
2) Install `signal-cli` (Java required).
|
|
15
15
|
3) Link the bot device and start the daemon:
|
|
16
|
-
- `signal-cli link -n "
|
|
17
|
-
4) Configure
|
|
16
|
+
- `signal-cli link -n "OpenClaw"`
|
|
17
|
+
4) Configure OpenClaw and start the gateway.
|
|
18
18
|
|
|
19
19
|
Minimal config:
|
|
20
20
|
```json5
|
|
@@ -54,7 +54,7 @@ Disable with:
|
|
|
54
54
|
## Setup (fast path)
|
|
55
55
|
1) Install `signal-cli` (Java required).
|
|
56
56
|
2) Link a bot account:
|
|
57
|
-
- `signal-cli link -n "
|
|
57
|
+
- `signal-cli link -n "OpenClaw"` then scan the QR in Signal.
|
|
58
58
|
3) Configure Signal and start the gateway.
|
|
59
59
|
|
|
60
60
|
Example:
|
|
@@ -75,7 +75,7 @@ Example:
|
|
|
75
75
|
Multi-account support: use `channels.signal.accounts` with per-account config and optional `name`. See [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) for the shared pattern.
|
|
76
76
|
|
|
77
77
|
## External daemon mode (httpUrl)
|
|
78
|
-
If you want to manage `signal-cli` yourself (slow JVM cold starts, container init, or shared CPUs), run the daemon separately and point
|
|
78
|
+
If you want to manage `signal-cli` yourself (slow JVM cold starts, container init, or shared CPUs), run the daemon separately and point OpenClaw at it:
|
|
79
79
|
|
|
80
80
|
```json5
|
|
81
81
|
{
|
|
@@ -88,15 +88,15 @@ If you want to manage `signal-cli` yourself (slow JVM cold starts, container ini
|
|
|
88
88
|
}
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
This skips auto-spawn and the startup wait inside
|
|
91
|
+
This skips auto-spawn and the startup wait inside OpenClaw. For slow starts when auto-spawning, set `channels.signal.startupTimeoutMs`.
|
|
92
92
|
|
|
93
93
|
## Access control (DMs + groups)
|
|
94
94
|
DMs:
|
|
95
95
|
- Default: `channels.signal.dmPolicy = "pairing"`.
|
|
96
96
|
- Unknown senders receive a pairing code; messages are ignored until approved (codes expire after 1 hour).
|
|
97
97
|
- Approve via:
|
|
98
|
-
- `
|
|
99
|
-
- `
|
|
98
|
+
- `openclaw pairing list signal`
|
|
99
|
+
- `openclaw pairing approve signal <CODE>`
|
|
100
100
|
- Pairing is the default token exchange for Signal DMs. Details: [Pairing](/start/pairing)
|
|
101
101
|
- UUID-only senders (from `sourceUuid`) are stored as `uuid:<id>` in `channels.signal.allowFrom`.
|
|
102
102
|
|
|
@@ -118,8 +118,8 @@ Groups:
|
|
|
118
118
|
- Group history context uses `channels.signal.historyLimit` (or `channels.signal.accounts.*.historyLimit`), falling back to `messages.groupChat.historyLimit`. Set `0` to disable (default 50).
|
|
119
119
|
|
|
120
120
|
## Typing + read receipts
|
|
121
|
-
- **Typing indicators**:
|
|
122
|
-
- **Read receipts**: when `channels.signal.sendReadReceipts` is true,
|
|
121
|
+
- **Typing indicators**: OpenClaw sends typing signals via `signal-cli sendTyping` and refreshes them while a reply is running.
|
|
122
|
+
- **Read receipts**: when `channels.signal.sendReadReceipts` is true, OpenClaw forwards read receipts for allowed DMs.
|
|
123
123
|
- Signal-cli does not expose read receipts for groups.
|
|
124
124
|
|
|
125
125
|
## Reactions (message tool)
|
package/docs/channels/slack.md
CHANGED
|
@@ -10,7 +10,7 @@ read_when: "Setting up Slack or debugging Slack socket/HTTP mode"
|
|
|
10
10
|
### Quick setup (beginner)
|
|
11
11
|
1) Create a Slack app and enable **Socket Mode**.
|
|
12
12
|
2) Create an **App Token** (`xapp-...`) and **Bot Token** (`xoxb-...`).
|
|
13
|
-
3) Set tokens for
|
|
13
|
+
3) Set tokens for OpenClaw and start the gateway.
|
|
14
14
|
|
|
15
15
|
Minimal config:
|
|
16
16
|
```json5
|
|
@@ -38,14 +38,14 @@ Minimal config:
|
|
|
38
38
|
- `channel_rename`
|
|
39
39
|
- `pin_added`, `pin_removed`
|
|
40
40
|
6) Invite the bot to channels you want it to read.
|
|
41
|
-
7) Slash Commands → create `/
|
|
41
|
+
7) Slash Commands → create `/openclaw` if you use `channels.slack.slashCommand`. If you enable native commands, add one slash command per built-in command (same names as `/help`). Native defaults to off for Slack unless you set `channels.slack.commands.native: true` (global `commands.native` is `"auto"` which leaves Slack off).
|
|
42
42
|
8) App Home → enable the **Messages Tab** so users can DM the bot.
|
|
43
43
|
|
|
44
44
|
Use the manifest below so scopes and events stay in sync.
|
|
45
45
|
|
|
46
46
|
Multi-account support: use `channels.slack.accounts` with per-account tokens and optional `name`. See [`gateway/configuration`](/gateway/configuration#telegramaccounts--discordaccounts--slackaccounts--signalaccounts--imessageaccounts) for the shared pattern.
|
|
47
47
|
|
|
48
|
-
###
|
|
48
|
+
### OpenClaw config (minimal)
|
|
49
49
|
|
|
50
50
|
Set tokens via env vars (recommended):
|
|
51
51
|
- `SLACK_APP_TOKEN=xapp-...`
|
|
@@ -66,7 +66,7 @@ Or via config:
|
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
### User token (optional)
|
|
69
|
-
|
|
69
|
+
OpenClaw can use a Slack user token (`xoxp-...`) for read operations (history,
|
|
70
70
|
pins, reactions, emoji, member info). By default this stays read-only: reads
|
|
71
71
|
prefer the user token when present, and writes still use the bot token unless
|
|
72
72
|
you explicitly opt in. Even with `userTokenReadOnly: false`, the bot token stays
|
|
@@ -109,7 +109,7 @@ Example with userTokenReadOnly explicitly set (allow user token writes):
|
|
|
109
109
|
search) prefer the user token when configured, otherwise the bot token.
|
|
110
110
|
- Write operations (send/edit/delete messages, add/remove reactions, pin/unpin,
|
|
111
111
|
file uploads) use the bot token by default. If `userTokenReadOnly: false` and
|
|
112
|
-
no bot token is available,
|
|
112
|
+
no bot token is available, OpenClaw falls back to the user token.
|
|
113
113
|
|
|
114
114
|
### History context
|
|
115
115
|
- `channels.slack.historyLimit` (or `channels.slack.accounts.*.historyLimit`) controls how many recent channel/group messages are wrapped into the prompt.
|
|
@@ -130,7 +130,7 @@ HTTP mode uses the Events API + Interactivity + Slash Commands with a shared req
|
|
|
130
130
|
Example request URL:
|
|
131
131
|
`https://gateway-host/slack/events`
|
|
132
132
|
|
|
133
|
-
###
|
|
133
|
+
### OpenClaw config (minimal)
|
|
134
134
|
```json5
|
|
135
135
|
{
|
|
136
136
|
channels: {
|
|
@@ -155,12 +155,12 @@ user scopes if you plan to configure a user token.
|
|
|
155
155
|
```json
|
|
156
156
|
{
|
|
157
157
|
"display_information": {
|
|
158
|
-
"name": "
|
|
159
|
-
"description": "Slack connector for
|
|
158
|
+
"name": "OpenClaw",
|
|
159
|
+
"description": "Slack connector for OpenClaw"
|
|
160
160
|
},
|
|
161
161
|
"features": {
|
|
162
162
|
"bot_user": {
|
|
163
|
-
"display_name": "
|
|
163
|
+
"display_name": "OpenClaw",
|
|
164
164
|
"always_online": false
|
|
165
165
|
},
|
|
166
166
|
"app_home": {
|
|
@@ -169,8 +169,8 @@ user scopes if you plan to configure a user token.
|
|
|
169
169
|
},
|
|
170
170
|
"slash_commands": [
|
|
171
171
|
{
|
|
172
|
-
"command": "/
|
|
173
|
-
"description": "Send a message to
|
|
172
|
+
"command": "/openclaw",
|
|
173
|
+
"description": "Send a message to OpenClaw",
|
|
174
174
|
"should_escape": false
|
|
175
175
|
}
|
|
176
176
|
]
|
|
@@ -329,7 +329,7 @@ Slack uses Socket Mode only (no HTTP webhook server). Provide both tokens:
|
|
|
329
329
|
},
|
|
330
330
|
"slashCommand": {
|
|
331
331
|
"enabled": true,
|
|
332
|
-
"name": "
|
|
332
|
+
"name": "openclaw",
|
|
333
333
|
"sessionPrefix": "slack:slash",
|
|
334
334
|
"ephemeral": true
|
|
335
335
|
},
|
|
@@ -353,7 +353,7 @@ ack reaction after the bot replies.
|
|
|
353
353
|
- Media uploads are capped by `channels.slack.mediaMaxMb` (default 20).
|
|
354
354
|
|
|
355
355
|
## Reply threading
|
|
356
|
-
By default,
|
|
356
|
+
By default, OpenClaw replies in the main channel. Use `channels.slack.replyToMode` to control automatic threading:
|
|
357
357
|
|
|
358
358
|
| Mode | Behavior |
|
|
359
359
|
| --- | --- |
|
|
@@ -439,13 +439,13 @@ For fine-grained control, use these tags in agent responses:
|
|
|
439
439
|
- DMs share the `main` session (like WhatsApp/Telegram).
|
|
440
440
|
- Channels map to `agent:<agentId>:slack:channel:<channelId>` sessions.
|
|
441
441
|
- Slash commands use `agent:<agentId>:slack:slash:<userId>` sessions (prefix configurable via `channels.slack.slashCommand.sessionPrefix`).
|
|
442
|
-
- If Slack doesn’t provide `channel_type`,
|
|
442
|
+
- If Slack doesn’t provide `channel_type`, OpenClaw infers it from the channel ID prefix (`D`, `C`, `G`) and defaults to `channel` to keep session keys stable.
|
|
443
443
|
- Native command registration uses `commands.native` (global default `"auto"` → Slack off) and can be overridden per-workspace with `channels.slack.commands.native`. Text commands require standalone `/...` messages and can be disabled with `commands.text: false`. Slack slash commands are managed in the Slack app and are not removed automatically. Use `commands.useAccessGroups: false` to bypass access-group checks for commands.
|
|
444
444
|
- Full command list + config: [Slash commands](/tools/slash-commands)
|
|
445
445
|
|
|
446
446
|
## DM security (pairing)
|
|
447
447
|
- Default: `channels.slack.dm.policy="pairing"` — unknown DM senders get a pairing code (expires after 1 hour).
|
|
448
|
-
- Approve via: `
|
|
448
|
+
- Approve via: `openclaw pairing approve slack <code>`.
|
|
449
449
|
- To allow anyone: set `channels.slack.dm.policy="open"` and `channels.slack.dm.allowFrom=["*"]`.
|
|
450
450
|
- `channels.slack.dm.allowFrom` accepts user IDs, @handles, or emails (resolved at startup when tokens allow). The wizard accepts usernames and resolves them to ids during setup when tokens allow.
|
|
451
451
|
|
|
@@ -457,7 +457,7 @@ For fine-grained control, use these tags in agent responses:
|
|
|
457
457
|
`channels.defaults.groupPolicy`, or a channel allowlist to lock it down.
|
|
458
458
|
- The configure wizard accepts `#channel` names and resolves them to IDs when possible
|
|
459
459
|
(public + private); if multiple matches exist, it prefers the active channel.
|
|
460
|
-
- On startup,
|
|
460
|
+
- On startup, OpenClaw resolves channel/user names in allowlists to IDs (when tokens allow)
|
|
461
461
|
and logs the mapping; unresolved entries are kept as typed.
|
|
462
462
|
- To allow **no channels**, set `channels.slack.groupPolicy: "disabled"` (or keep an empty allowlist).
|
|
463
463
|
|
|
@@ -101,10 +101,10 @@ group messages, so use admin if you need full visibility.
|
|
|
101
101
|
- Outbound Telegram text uses `parse_mode: "HTML"` (Telegram’s supported tag subset).
|
|
102
102
|
- Markdown-ish input is rendered into **Telegram-safe HTML** (bold/italic/strike/code/links); block elements are flattened to text with newlines/bullets.
|
|
103
103
|
- Raw HTML from models is escaped to avoid Telegram parse errors.
|
|
104
|
-
- If Telegram rejects the HTML payload,
|
|
104
|
+
- If Telegram rejects the HTML payload, OpenClaw retries the same message as plain text.
|
|
105
105
|
|
|
106
106
|
## Commands (native + custom)
|
|
107
|
-
|
|
107
|
+
OpenClaw registers native commands (like `/status`, `/reset`, `/model`) with Telegram’s bot menu on startup.
|
|
108
108
|
You can add custom commands to the menu via config:
|
|
109
109
|
|
|
110
110
|
```json5
|
|
@@ -128,7 +128,7 @@ You can add custom commands to the menu via config:
|
|
|
128
128
|
More help: [Channel troubleshooting](/channels/troubleshooting).
|
|
129
129
|
|
|
130
130
|
Notes:
|
|
131
|
-
- Custom commands are **menu entries only**;
|
|
131
|
+
- Custom commands are **menu entries only**; OpenClaw does not implement them unless you handle them elsewhere.
|
|
132
132
|
- Command names are normalized (leading `/` stripped, lowercased) and must match `a-z`, `0-9`, `_` (1–32 chars).
|
|
133
133
|
- Custom commands **cannot override native commands**. Conflicts are ignored and logged.
|
|
134
134
|
- If `commands.native` is disabled, only custom commands are registered (or cleared if none).
|
|
@@ -202,13 +202,13 @@ Forward any message from the group to `@userinfobot` or `@getidsbot` on Telegram
|
|
|
202
202
|
|
|
203
203
|
**Tip:** For your own user ID, DM the bot and it will reply with your user ID (pairing message), or use `/whoami` once commands are enabled.
|
|
204
204
|
|
|
205
|
-
**Privacy note:** `@userinfobot` is a third-party bot. If you prefer, add the bot to the group, send a message, and use `
|
|
205
|
+
**Privacy note:** `@userinfobot` is a third-party bot. If you prefer, add the bot to the group, send a message, and use `openclaw logs --follow` to read `chat.id`, or use the Bot API `getUpdates`.
|
|
206
206
|
|
|
207
207
|
## Config writes
|
|
208
208
|
By default, Telegram is allowed to write config updates triggered by channel events or `/config set|unset`.
|
|
209
209
|
|
|
210
210
|
This happens when:
|
|
211
|
-
- A group is upgraded to a supergroup and Telegram emits `migrate_to_chat_id` (chat ID changes).
|
|
211
|
+
- A group is upgraded to a supergroup and Telegram emits `migrate_to_chat_id` (chat ID changes). OpenClaw can migrate `channels.telegram.groups` automatically.
|
|
212
212
|
- You run `/config set` or `/config unset` in a Telegram chat (requires `commands.config: true`).
|
|
213
213
|
|
|
214
214
|
Disable with:
|
|
@@ -219,7 +219,7 @@ Disable with:
|
|
|
219
219
|
```
|
|
220
220
|
|
|
221
221
|
## Topics (forum supergroups)
|
|
222
|
-
Telegram forum topics include a `message_thread_id` per message.
|
|
222
|
+
Telegram forum topics include a `message_thread_id` per message. OpenClaw:
|
|
223
223
|
- Appends `:topic:<threadId>` to the Telegram group session key so each topic is isolated.
|
|
224
224
|
- Sends typing indicators and replies with `message_thread_id` so responses stay in the topic.
|
|
225
225
|
- General topic (thread id `1`) is special: message sends omit `message_thread_id` (Telegram rejects it), but typing indicators still include it.
|
|
@@ -227,7 +227,7 @@ Telegram forum topics include a `message_thread_id` per message. Moltbot:
|
|
|
227
227
|
- Topic-specific configuration is available under `channels.telegram.groups.<chatId>.topics.<threadId>` (skills, allowlists, auto-reply, system prompts, disable).
|
|
228
228
|
- Topic configs inherit group settings (requireMention, allowlists, skills, prompts, enabled) unless overridden per topic.
|
|
229
229
|
|
|
230
|
-
Private chats can include `message_thread_id` in some edge cases.
|
|
230
|
+
Private chats can include `message_thread_id` in some edge cases. OpenClaw keeps the DM session key unchanged, but still uses the thread id for replies/draft streaming when it is present.
|
|
231
231
|
|
|
232
232
|
## Inline Buttons
|
|
233
233
|
|
|
@@ -310,15 +310,15 @@ Use the global setting when all Telegram bots/accounts should behave the same. U
|
|
|
310
310
|
### DM access
|
|
311
311
|
- Default: `channels.telegram.dmPolicy = "pairing"`. Unknown senders receive a pairing code; messages are ignored until approved (codes expire after 1 hour).
|
|
312
312
|
- Approve via:
|
|
313
|
-
- `
|
|
314
|
-
- `
|
|
313
|
+
- `openclaw pairing list telegram`
|
|
314
|
+
- `openclaw pairing approve telegram <CODE>`
|
|
315
315
|
- Pairing is the default token exchange used for Telegram DMs. Details: [Pairing](/start/pairing)
|
|
316
316
|
- `channels.telegram.allowFrom` accepts numeric user IDs (recommended) or `@username` entries. It is **not** the bot username; use the human sender’s ID. The wizard accepts `@username` and resolves it to the numeric ID when possible.
|
|
317
317
|
|
|
318
318
|
#### Finding your Telegram user ID
|
|
319
319
|
Safer (no third-party bot):
|
|
320
320
|
1) Start the gateway and DM your bot.
|
|
321
|
-
2) Run `
|
|
321
|
+
2) Run `openclaw logs --follow` and look for `from.id`.
|
|
322
322
|
|
|
323
323
|
Alternate (official Bot API):
|
|
324
324
|
1) DM your bot.
|
|
@@ -363,7 +363,7 @@ Controlled by `channels.telegram.replyToMode`:
|
|
|
363
363
|
|
|
364
364
|
## Audio messages (voice vs file)
|
|
365
365
|
Telegram distinguishes **voice notes** (round bubble) from **audio files** (metadata card).
|
|
366
|
-
|
|
366
|
+
OpenClaw defaults to audio files for backward compatibility.
|
|
367
367
|
|
|
368
368
|
To force a voice note bubble in agent replies, include this tag anywhere in the reply:
|
|
369
369
|
- `[[audio_as_voice]]` — send audio as a voice note instead of a file.
|
|
@@ -385,11 +385,11 @@ For message tool sends, set `asVoice: true` with a voice-compatible audio `media
|
|
|
385
385
|
|
|
386
386
|
## Stickers
|
|
387
387
|
|
|
388
|
-
|
|
388
|
+
OpenClaw supports receiving and sending Telegram stickers with intelligent caching.
|
|
389
389
|
|
|
390
390
|
### Receiving stickers
|
|
391
391
|
|
|
392
|
-
When a user sends a sticker,
|
|
392
|
+
When a user sends a sticker, OpenClaw handles it based on the sticker type:
|
|
393
393
|
|
|
394
394
|
- **Static stickers (WEBP):** Downloaded and processed through vision. The sticker appears as a `<media:sticker>` placeholder in the message content.
|
|
395
395
|
- **Animated stickers (TGS):** Skipped (Lottie format not supported for processing).
|
|
@@ -405,7 +405,7 @@ Template context field available when receiving stickers:
|
|
|
405
405
|
|
|
406
406
|
### Sticker cache
|
|
407
407
|
|
|
408
|
-
Stickers are processed through the AI's vision capabilities to generate descriptions. Since the same stickers are often sent repeatedly,
|
|
408
|
+
Stickers are processed through the AI's vision capabilities to generate descriptions. Since the same stickers are often sent repeatedly, OpenClaw caches these descriptions to avoid redundant API calls.
|
|
409
409
|
|
|
410
410
|
**How it works:**
|
|
411
411
|
|
|
@@ -413,7 +413,7 @@ Stickers are processed through the AI's vision capabilities to generate descript
|
|
|
413
413
|
2. **Cache storage:** The description is saved along with the sticker's file ID, emoji, and set name.
|
|
414
414
|
3. **Subsequent encounters:** When the same sticker is seen again, the cached description is used directly. The image is not sent to the AI.
|
|
415
415
|
|
|
416
|
-
**Cache location:** `~/.
|
|
416
|
+
**Cache location:** `~/.openclaw/telegram/sticker-cache.json`
|
|
417
417
|
|
|
418
418
|
**Cache entry format:**
|
|
419
419
|
```json
|
|
@@ -512,7 +512,7 @@ The search uses fuzzy matching across description text, emoji characters, and se
|
|
|
512
512
|
|
|
513
513
|
## Streaming (drafts)
|
|
514
514
|
Telegram can stream **draft bubbles** while the agent is generating a response.
|
|
515
|
-
|
|
515
|
+
OpenClaw uses Bot API `sendMessageDraft` (not real messages) and then sends the
|
|
516
516
|
final reply as a normal message.
|
|
517
517
|
|
|
518
518
|
Requirements (Telegram Bot API 9.3+):
|
|
@@ -552,7 +552,7 @@ Outbound Telegram API calls retry on transient network/429 errors with exponenti
|
|
|
552
552
|
## Reaction notifications
|
|
553
553
|
|
|
554
554
|
**How reactions work:**
|
|
555
|
-
Telegram reactions arrive as **separate `message_reaction` events**, not as properties in message payloads. When a user adds a reaction,
|
|
555
|
+
Telegram reactions arrive as **separate `message_reaction` events**, not as properties in message payloads. When a user adds a reaction, OpenClaw:
|
|
556
556
|
|
|
557
557
|
1. Receives the `message_reaction` update from Telegram API
|
|
558
558
|
2. Converts it to a **system event** with format: `"Telegram reaction added: {emoji} by {user} on msg {id}"`
|
|
@@ -588,28 +588,28 @@ The agent sees reactions as **system notifications** in the conversation history
|
|
|
588
588
|
```
|
|
589
589
|
|
|
590
590
|
**Requirements:**
|
|
591
|
-
- Telegram bots must explicitly request `message_reaction` in `allowed_updates` (configured automatically by
|
|
591
|
+
- Telegram bots must explicitly request `message_reaction` in `allowed_updates` (configured automatically by OpenClaw)
|
|
592
592
|
- For webhook mode, reactions are included in the webhook `allowed_updates`
|
|
593
593
|
- For polling mode, reactions are included in the `getUpdates` `allowed_updates`
|
|
594
594
|
|
|
595
595
|
## Delivery targets (CLI/cron)
|
|
596
596
|
- Use a chat id (`123456789`) or a username (`@name`) as the target.
|
|
597
|
-
- Example: `
|
|
597
|
+
- Example: `openclaw message send --channel telegram --target 123456789 --message "hi"`.
|
|
598
598
|
|
|
599
599
|
## Troubleshooting
|
|
600
600
|
|
|
601
601
|
**Bot doesn’t respond to non-mention messages in a group:**
|
|
602
602
|
- If you set `channels.telegram.groups.*.requireMention=false`, Telegram’s Bot API **privacy mode** must be disabled.
|
|
603
603
|
- BotFather: `/setprivacy` → **Disable** (then remove + re-add the bot to the group)
|
|
604
|
-
- `
|
|
605
|
-
- `
|
|
604
|
+
- `openclaw channels status` shows a warning when config expects unmentioned group messages.
|
|
605
|
+
- `openclaw channels status --probe` can additionally check membership for explicit numeric group IDs (it can’t audit wildcard `"*"` rules).
|
|
606
606
|
- Quick test: `/activation always` (session-only; use config for persistence)
|
|
607
607
|
|
|
608
608
|
**Bot not seeing group messages at all:**
|
|
609
609
|
- If `channels.telegram.groups` is set, the group must be listed or use `"*"`
|
|
610
610
|
- Check Privacy Settings in @BotFather → "Group Privacy" should be **OFF**
|
|
611
611
|
- Verify bot is actually a member (not just an admin with no read access)
|
|
612
|
-
- Check gateway logs: `
|
|
612
|
+
- Check gateway logs: `openclaw logs --follow` (look for "skipping group message")
|
|
613
613
|
|
|
614
614
|
**Bot responds to mentions but not `/activation always`:**
|
|
615
615
|
- The `/activation` command updates session state but doesn't persist to config
|
|
@@ -621,7 +621,7 @@ The agent sees reactions as **system notifications** in the conversation history
|
|
|
621
621
|
|
|
622
622
|
**Long-polling aborts immediately on Node 22+ (often with proxies/custom fetch):**
|
|
623
623
|
- Node 22+ is stricter about `AbortSignal` instances; foreign signals can abort `fetch` calls right away.
|
|
624
|
-
- Upgrade to a
|
|
624
|
+
- Upgrade to a OpenClaw build that normalizes abort signals, or run the gateway on Node 20 until you can upgrade.
|
|
625
625
|
|
|
626
626
|
**Bot starts, then silently stops responding (or logs `HttpError: Network request ... failed`):**
|
|
627
627
|
- Some hosts resolve `api.telegram.org` to IPv6 first. If your server does not have working IPv6 egress, grammY can get stuck on IPv6-only requests.
|