@gguf/pigbot 0.0.5 → 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 +1208 -10
- 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/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/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
|
@@ -17,14 +17,14 @@ When the operator says “release”, immediately do this preflight (no extra qu
|
|
|
17
17
|
- Use Sparkle keys from `~/Library/CloudStorage/Dropbox/Backup/Sparkle` if needed.
|
|
18
18
|
|
|
19
19
|
1) **Version & metadata**
|
|
20
|
-
- [ ] Bump `package.json` version (e.g., `2026.1.
|
|
20
|
+
- [ ] Bump `package.json` version (e.g., `2026.1.29`).
|
|
21
21
|
- [ ] Run `pnpm plugins:sync` to align extension package versions + changelogs.
|
|
22
|
-
- [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/
|
|
23
|
-
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`
|
|
22
|
+
- [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/openclaw/openclaw/blob/main/src/cli/program.ts) and the Baileys user agent in [`src/provider-web.ts`](https://github.com/openclaw/openclaw/blob/main/src/provider-web.ts).
|
|
23
|
+
- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`openclaw.mjs`](https://github.com/openclaw/openclaw/blob/main/openclaw.mjs) for `openclaw`.
|
|
24
24
|
- [ ] If dependencies changed, run `pnpm install` so `pnpm-lock.yaml` is current.
|
|
25
25
|
|
|
26
26
|
2) **Build & artifacts**
|
|
27
|
-
- [ ] If A2UI inputs changed, run `pnpm canvas:a2ui:bundle` and commit any updated [`src/canvas-host/a2ui/a2ui.bundle.js`](https://github.com/
|
|
27
|
+
- [ ] If A2UI inputs changed, run `pnpm canvas:a2ui:bundle` and commit any updated [`src/canvas-host/a2ui/a2ui.bundle.js`](https://github.com/openclaw/openclaw/blob/main/src/canvas-host/a2ui/a2ui.bundle.js).
|
|
28
28
|
- [ ] `pnpm run build` (regenerates `dist/`).
|
|
29
29
|
- [ ] Verify npm package `files` includes all required `dist/*` folders (notably `dist/node-host/**` and `dist/acp/**` for headless node + ACP CLI).
|
|
30
30
|
- [ ] Confirm `dist/build-info.json` exists and includes the expected `commit` hash (CLI banner uses this for npm installs).
|
|
@@ -39,10 +39,10 @@ When the operator says “release”, immediately do this preflight (no extra qu
|
|
|
39
39
|
- [ ] `pnpm test` (or `pnpm test:coverage` if you need coverage output)
|
|
40
40
|
- [ ] `pnpm run build` (last sanity check after tests)
|
|
41
41
|
- [ ] `pnpm release:check` (verifies npm pack contents)
|
|
42
|
-
- [ ] `
|
|
43
|
-
- If the immediate previous npm release is known broken, set `
|
|
42
|
+
- [ ] `OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke` (Docker install smoke test, fast path; required before release)
|
|
43
|
+
- If the immediate previous npm release is known broken, set `OPENCLAW_INSTALL_SMOKE_PREVIOUS=<last-good-version>` or `OPENCLAW_INSTALL_SMOKE_SKIP_PREVIOUS=1` for the preinstall step.
|
|
44
44
|
- [ ] (Optional) Full installer smoke (adds non-root + CLI coverage): `pnpm test:install:smoke`
|
|
45
|
-
- [ ] (Optional) Installer E2E (Docker, runs `curl -fsSL https://
|
|
45
|
+
- [ ] (Optional) Installer E2E (Docker, runs `curl -fsSL https://openclaw.bot/install.sh | bash`, onboards, then runs real tool calls):
|
|
46
46
|
- `pnpm test:install:e2e:openai` (requires `OPENAI_API_KEY`)
|
|
47
47
|
- `pnpm test:install:e2e:anthropic` (requires `ANTHROPIC_API_KEY`)
|
|
48
48
|
- `pnpm test:install:e2e` (requires both keys; runs both providers)
|
|
@@ -50,58 +50,58 @@ When the operator says “release”, immediately do this preflight (no extra qu
|
|
|
50
50
|
|
|
51
51
|
5) **macOS app (Sparkle)**
|
|
52
52
|
- [ ] Build + sign the macOS app, then zip it for distribution.
|
|
53
|
-
- [ ] Generate the Sparkle appcast (HTML notes via [`scripts/make_appcast.sh`](https://github.com/
|
|
53
|
+
- [ ] Generate the Sparkle appcast (HTML notes via [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh)) and update `appcast.xml`.
|
|
54
54
|
- [ ] Keep the app zip (and optional dSYM zip) ready to attach to the GitHub release.
|
|
55
55
|
- [ ] Follow [macOS release](/platforms/mac/release) for the exact commands and required env vars.
|
|
56
56
|
- `APP_BUILD` must be numeric + monotonic (no `-beta`) so Sparkle compares versions correctly.
|
|
57
|
-
- If notarizing, use the `
|
|
57
|
+
- If notarizing, use the `openclaw-notary` keychain profile created from App Store Connect API env vars (see [macOS release](/platforms/mac/release)).
|
|
58
58
|
|
|
59
59
|
6) **Publish (npm)**
|
|
60
60
|
- [ ] Confirm git status is clean; commit and push as needed.
|
|
61
61
|
- [ ] `npm login` (verify 2FA) if needed.
|
|
62
62
|
- [ ] `npm publish --access public` (use `--tag beta` for pre-releases).
|
|
63
|
-
- [ ] Verify the registry: `npm view
|
|
63
|
+
- [ ] Verify the registry: `npm view openclaw version`, `npm view openclaw dist-tags`, and `npx -y openclaw@X.Y.Z --version` (or `--help`).
|
|
64
64
|
|
|
65
65
|
### Troubleshooting (notes from 2.0.0-beta2 release)
|
|
66
|
-
- **npm pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/
|
|
66
|
+
- **npm pack/publish hangs or produces huge tarball**: the macOS app bundle in `dist/OpenClaw.app` (and release zips) get swept into the package. Fix by whitelisting publish contents via `package.json` `files` (include dist subdirs, docs, skills; exclude app bundles). Confirm with `npm pack --dry-run` that `dist/OpenClaw.app` is not listed.
|
|
67
67
|
- **npm auth web loop for dist-tags**: use legacy auth to get an OTP prompt:
|
|
68
|
-
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add
|
|
68
|
+
- `NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add openclaw@X.Y.Z latest`
|
|
69
69
|
- **`npx` verification fails with `ECOMPROMISED: Lock compromised`**: retry with a fresh cache:
|
|
70
|
-
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y
|
|
70
|
+
- `NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y openclaw@X.Y.Z --version`
|
|
71
71
|
- **Tag needs repointing after a late fix**: force-update and push the tag, then ensure the GitHub release assets still match:
|
|
72
72
|
- `git tag -f vX.Y.Z && git push -f origin vX.Y.Z`
|
|
73
73
|
|
|
74
74
|
7) **GitHub release + appcast**
|
|
75
75
|
- [ ] Tag and push: `git tag vX.Y.Z && git push origin vX.Y.Z` (or `git push --tags`).
|
|
76
|
-
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `
|
|
77
|
-
- [ ] Attach artifacts: `npm pack` tarball (optional), `
|
|
76
|
+
- [ ] Create/refresh the GitHub release for `vX.Y.Z` with **title `openclaw X.Y.Z`** (not just the tag); body should include the **full** changelog section for that version (Highlights + Changes + Fixes), inline (no bare links), and **must not repeat the title inside the body**.
|
|
77
|
+
- [ ] Attach artifacts: `npm pack` tarball (optional), `OpenClaw-X.Y.Z.zip`, and `OpenClaw-X.Y.Z.dSYM.zip` (if generated).
|
|
78
78
|
- [ ] Commit the updated `appcast.xml` and push it (Sparkle feeds from main).
|
|
79
|
-
- [ ] From a clean temp directory (no `package.json`), run `npx -y
|
|
79
|
+
- [ ] From a clean temp directory (no `package.json`), run `npx -y openclaw@X.Y.Z send --help` to confirm install/CLI entrypoints work.
|
|
80
80
|
- [ ] Announce/share release notes.
|
|
81
81
|
|
|
82
82
|
## Plugin publish scope (npm)
|
|
83
83
|
|
|
84
|
-
We only publish **existing npm plugins** under the `@
|
|
84
|
+
We only publish **existing npm plugins** under the `@openclaw/*` scope. Bundled
|
|
85
85
|
plugins that are not on npm stay **disk-tree only** (still shipped in
|
|
86
86
|
`extensions/**`).
|
|
87
87
|
|
|
88
88
|
Process to derive the list:
|
|
89
|
-
1) `npm search @
|
|
89
|
+
1) `npm search @openclaw --json` and capture the package names.
|
|
90
90
|
2) Compare with `extensions/*/package.json` names.
|
|
91
91
|
3) Publish only the **intersection** (already on npm).
|
|
92
92
|
|
|
93
93
|
Current npm plugin list (update as needed):
|
|
94
|
-
- @
|
|
95
|
-
- @
|
|
96
|
-
- @
|
|
97
|
-
- @
|
|
98
|
-
- @
|
|
99
|
-
- @
|
|
100
|
-
- @
|
|
101
|
-
- @
|
|
102
|
-
- @
|
|
103
|
-
- @
|
|
104
|
-
- @
|
|
94
|
+
- @openclaw/bluebubbles
|
|
95
|
+
- @openclaw/diagnostics-otel
|
|
96
|
+
- @openclaw/discord
|
|
97
|
+
- @openclaw/lobster
|
|
98
|
+
- @openclaw/matrix
|
|
99
|
+
- @openclaw/msteams
|
|
100
|
+
- @openclaw/nextcloud-talk
|
|
101
|
+
- @openclaw/nostr
|
|
102
|
+
- @openclaw/voice-call
|
|
103
|
+
- @openclaw/zalo
|
|
104
|
+
- @openclaw/zalouser
|
|
105
105
|
|
|
106
106
|
Release notes must also call out **new optional bundled plugins** that are **not
|
|
107
107
|
on by default** (example: `tlon`).
|
|
@@ -8,7 +8,7 @@ read_when:
|
|
|
8
8
|
# API usage & costs
|
|
9
9
|
|
|
10
10
|
This doc lists **features that can invoke API keys** and where their costs show up. It focuses on
|
|
11
|
-
|
|
11
|
+
OpenClaw features that can generate provider usage or paid API calls.
|
|
12
12
|
|
|
13
13
|
## Where costs show up (chat + CLI)
|
|
14
14
|
|
|
@@ -21,14 +21,14 @@ Moltbot features that can generate provider usage or paid API calls.
|
|
|
21
21
|
- `/usage tokens` shows tokens only; OAuth flows hide dollar cost.
|
|
22
22
|
|
|
23
23
|
**CLI usage windows (provider quotas)**
|
|
24
|
-
- `
|
|
24
|
+
- `openclaw status --usage` and `openclaw channels list` show provider **usage windows**
|
|
25
25
|
(quota snapshots, not per-message costs).
|
|
26
26
|
|
|
27
27
|
See [Token use & costs](/token-use) for details and examples.
|
|
28
28
|
|
|
29
29
|
## How keys are discovered
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
OpenClaw can pick up credentials from:
|
|
32
32
|
- **Auth profiles** (per-agent, stored in `auth-profiles.json`).
|
|
33
33
|
- **Environment variables** (e.g. `OPENAI_API_KEY`, `BRAVE_API_KEY`, `FIRECRAWL_API_KEY`).
|
|
34
34
|
- **Config** (`models.providers.*.apiKey`, `tools.web.search.*`, `tools.web.fetch.firecrawl.*`,
|
|
@@ -86,8 +86,8 @@ See [Web tools](/tools/web).
|
|
|
86
86
|
### 6) Provider usage snapshots (status/health)
|
|
87
87
|
Some status commands call **provider usage endpoints** to display quota windows or auth health.
|
|
88
88
|
These are typically low-volume calls but still hit provider APIs:
|
|
89
|
-
- `
|
|
90
|
-
- `
|
|
89
|
+
- `openclaw status --usage`
|
|
90
|
+
- `openclaw models status --json`
|
|
91
91
|
|
|
92
92
|
See [Models CLI](/cli/models).
|
|
93
93
|
|
|
@@ -98,7 +98,7 @@ invokes provider APIs when it runs.
|
|
|
98
98
|
See [Session management + compaction](/reference/session-management-compaction).
|
|
99
99
|
|
|
100
100
|
### 8) Model scan / probe
|
|
101
|
-
`
|
|
101
|
+
`openclaw models scan` can probe OpenRouter models and uses `OPENROUTER_API_KEY` when
|
|
102
102
|
probing is enabled.
|
|
103
103
|
|
|
104
104
|
See [Models CLI](/cli/models).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
summary: "How
|
|
2
|
+
summary: "How OpenClaw vendors Apple device model identifiers for friendly names in the macOS app."
|
|
3
3
|
read_when:
|
|
4
4
|
- Updating device model identifier mappings or NOTICE/license files
|
|
5
5
|
- Changing how Instances UI displays device names
|
|
@@ -11,7 +11,7 @@ The macOS companion app shows friendly Apple device model names in the **Instanc
|
|
|
11
11
|
|
|
12
12
|
The mapping is vendored as JSON under:
|
|
13
13
|
|
|
14
|
-
- `apps/macos/Sources/
|
|
14
|
+
- `apps/macos/Sources/OpenClaw/Resources/DeviceModels/`
|
|
15
15
|
|
|
16
16
|
## Data source
|
|
17
17
|
|
|
@@ -19,12 +19,12 @@ We currently vendor the mapping from the MIT-licensed repository:
|
|
|
19
19
|
|
|
20
20
|
- `kyle-seongwoo-jun/apple-device-identifiers`
|
|
21
21
|
|
|
22
|
-
To keep builds deterministic, the JSON files are pinned to specific upstream commits (recorded in `apps/macos/Sources/
|
|
22
|
+
To keep builds deterministic, the JSON files are pinned to specific upstream commits (recorded in `apps/macos/Sources/OpenClaw/Resources/DeviceModels/NOTICE.md`).
|
|
23
23
|
|
|
24
24
|
## Updating the database
|
|
25
25
|
|
|
26
26
|
1. Pick the upstream commits you want to pin to (one for iOS, one for macOS).
|
|
27
|
-
2. Update the commit hashes in `apps/macos/Sources/
|
|
27
|
+
2. Update the commit hashes in `apps/macos/Sources/OpenClaw/Resources/DeviceModels/NOTICE.md`.
|
|
28
28
|
3. Re-download the JSON files, pinned to those commits:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
@@ -32,13 +32,13 @@ IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
|
|
|
32
32
|
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"
|
|
33
33
|
|
|
34
34
|
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
|
|
35
|
-
-o apps/macos/Sources/
|
|
35
|
+
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/ios-device-identifiers.json
|
|
36
36
|
|
|
37
37
|
curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
|
|
38
|
-
-o apps/macos/Sources/
|
|
38
|
+
-o apps/macos/Sources/OpenClaw/Resources/DeviceModels/mac-device-identifiers.json
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
4. Ensure `apps/macos/Sources/
|
|
41
|
+
4. Ensure `apps/macos/Sources/OpenClaw/Resources/DeviceModels/LICENSE.apple-device-identifiers.txt` still matches upstream (replace it if the upstream license changes).
|
|
42
42
|
5. Verify the macOS app builds cleanly (no warnings):
|
|
43
43
|
|
|
44
44
|
```bash
|
package/docs/reference/rpc.md
CHANGED
|
@@ -6,18 +6,18 @@ read_when:
|
|
|
6
6
|
---
|
|
7
7
|
# RPC adapters
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
OpenClaw integrates external CLIs via JSON-RPC. Two patterns are used today.
|
|
10
10
|
|
|
11
11
|
## Pattern A: HTTP daemon (signal-cli)
|
|
12
12
|
- `signal-cli` runs as a daemon with JSON-RPC over HTTP.
|
|
13
13
|
- Event stream is SSE (`/api/v1/events`).
|
|
14
14
|
- Health probe: `/api/v1/check`.
|
|
15
|
-
-
|
|
15
|
+
- OpenClaw owns lifecycle when `channels.signal.autoStart=true`.
|
|
16
16
|
|
|
17
17
|
See [Signal](/channels/signal) for setup and endpoints.
|
|
18
18
|
|
|
19
19
|
## Pattern B: stdio child process (imsg)
|
|
20
|
-
-
|
|
20
|
+
- OpenClaw spawns `imsg rpc` as a child process.
|
|
21
21
|
- JSON-RPC is line-delimited over stdin/stdout (one JSON object per line).
|
|
22
22
|
- No TCP port, no daemon required.
|
|
23
23
|
|
|
@@ -7,7 +7,7 @@ read_when:
|
|
|
7
7
|
---
|
|
8
8
|
# Session Management & Compaction (Deep Dive)
|
|
9
9
|
|
|
10
|
-
This document explains how
|
|
10
|
+
This document explains how OpenClaw manages sessions end-to-end:
|
|
11
11
|
|
|
12
12
|
- **Session routing** (how inbound messages map to a `sessionKey`)
|
|
13
13
|
- **Session store** (`sessions.json`) and what it tracks
|
|
@@ -27,7 +27,7 @@ If you want a higher-level overview first, start with:
|
|
|
27
27
|
|
|
28
28
|
## Source of truth: the Gateway
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
OpenClaw is designed around a single **Gateway process** that owns session state.
|
|
31
31
|
|
|
32
32
|
- UIs (macOS app, web Control UI, TUI) should query the Gateway for session lists and token counts.
|
|
33
33
|
- In remote mode, session files are on the remote host; “checking your local Mac files” won’t reflect what the Gateway is using.
|
|
@@ -36,7 +36,7 @@ Moltbot is designed around a single **Gateway process** that owns session state.
|
|
|
36
36
|
|
|
37
37
|
## Two persistence layers
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
OpenClaw persists sessions in two layers:
|
|
40
40
|
|
|
41
41
|
1) **Session store (`sessions.json`)**
|
|
42
42
|
- Key/value map: `sessionKey -> SessionEntry`
|
|
@@ -54,11 +54,11 @@ Moltbot persists sessions in two layers:
|
|
|
54
54
|
|
|
55
55
|
Per agent, on the Gateway host:
|
|
56
56
|
|
|
57
|
-
- Store: `~/.
|
|
58
|
-
- Transcripts: `~/.
|
|
57
|
+
- Store: `~/.openclaw/agents/<agentId>/sessions/sessions.json`
|
|
58
|
+
- Transcripts: `~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl`
|
|
59
59
|
- Telegram topic sessions: `.../<sessionId>-topic-<threadId>.jsonl`
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
OpenClaw resolves these via `src/config/sessions.ts`.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
@@ -132,7 +132,7 @@ Notable entry types:
|
|
|
132
132
|
- `compaction`: persisted compaction summary with `firstKeptEntryId` and `tokensBefore`
|
|
133
133
|
- `branch_summary`: persisted summary when navigating a tree branch
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
OpenClaw intentionally does **not** “fix up” transcripts; the Gateway uses `SessionManager` to read/write them.
|
|
136
136
|
|
|
137
137
|
---
|
|
138
138
|
|
|
@@ -176,7 +176,7 @@ Where:
|
|
|
176
176
|
- `contextWindow` is the model’s context window
|
|
177
177
|
- `reserveTokens` is headroom reserved for prompts + the next model output
|
|
178
178
|
|
|
179
|
-
These are Pi runtime semantics (
|
|
179
|
+
These are Pi runtime semantics (OpenClaw consumes the events, but Pi decides when to compact).
|
|
180
180
|
|
|
181
181
|
---
|
|
182
182
|
|
|
@@ -194,12 +194,12 @@ Pi’s compaction settings live in Pi settings:
|
|
|
194
194
|
}
|
|
195
195
|
```
|
|
196
196
|
|
|
197
|
-
|
|
197
|
+
OpenClaw also enforces a safety floor for embedded runs:
|
|
198
198
|
|
|
199
|
-
- If `compaction.reserveTokens < reserveTokensFloor`,
|
|
199
|
+
- If `compaction.reserveTokens < reserveTokensFloor`, OpenClaw bumps it.
|
|
200
200
|
- Default floor is `20000` tokens.
|
|
201
201
|
- Set `agents.defaults.compaction.reserveTokensFloor: 0` to disable the floor.
|
|
202
|
-
- If it’s already higher,
|
|
202
|
+
- If it’s already higher, OpenClaw leaves it alone.
|
|
203
203
|
|
|
204
204
|
Why: leave enough headroom for multi-turn “housekeeping” (like memory writes) before compaction becomes unavoidable.
|
|
205
205
|
|
|
@@ -213,21 +213,21 @@ Implementation: `ensurePiCompactionReserveTokens()` in `src/agents/pi-settings.t
|
|
|
213
213
|
You can observe compaction and session state via:
|
|
214
214
|
|
|
215
215
|
- `/status` (in any chat session)
|
|
216
|
-
- `
|
|
217
|
-
- `
|
|
216
|
+
- `openclaw status` (CLI)
|
|
217
|
+
- `openclaw sessions` / `sessions --json`
|
|
218
218
|
- Verbose mode: `🧹 Auto-compaction complete` + compaction count
|
|
219
219
|
|
|
220
220
|
---
|
|
221
221
|
|
|
222
222
|
## Silent housekeeping (`NO_REPLY`)
|
|
223
223
|
|
|
224
|
-
|
|
224
|
+
OpenClaw supports “silent” turns for background tasks where the user should not see intermediate output.
|
|
225
225
|
|
|
226
226
|
Convention:
|
|
227
227
|
- The assistant starts its output with `NO_REPLY` to indicate “do not deliver a reply to the user”.
|
|
228
|
-
-
|
|
228
|
+
- OpenClaw strips/suppresses this in the delivery layer.
|
|
229
229
|
|
|
230
|
-
As of `2026.1.10`,
|
|
230
|
+
As of `2026.1.10`, OpenClaw also suppresses **draft/typing streaming** when a partial chunk begins with `NO_REPLY`, so silent operations don’t leak partial output mid-turn.
|
|
231
231
|
|
|
232
232
|
---
|
|
233
233
|
|
|
@@ -237,7 +237,7 @@ Goal: before auto-compaction happens, run a silent agentic turn that writes dura
|
|
|
237
237
|
state to disk (e.g. `memory/YYYY-MM-DD.md` in the agent workspace) so compaction can’t
|
|
238
238
|
erase critical context.
|
|
239
239
|
|
|
240
|
-
|
|
240
|
+
OpenClaw uses the **pre-threshold flush** approach:
|
|
241
241
|
|
|
242
242
|
1) Monitor session context usage.
|
|
243
243
|
2) When it crosses a “soft threshold” (below Pi’s compaction threshold), run a silent
|
|
@@ -257,7 +257,7 @@ Notes:
|
|
|
257
257
|
- The flush is skipped when the session workspace is read-only (`workspaceAccess: "ro"` or `"none"`).
|
|
258
258
|
- See [Memory](/concepts/memory) for the workspace file layout and write patterns.
|
|
259
259
|
|
|
260
|
-
Pi also exposes a `session_before_compact` hook in the extension API, but
|
|
260
|
+
Pi also exposes a `session_before_compact` hook in the extension API, but OpenClaw’s
|
|
261
261
|
flush logic lives on the Gateway side today.
|
|
262
262
|
|
|
263
263
|
---
|
|
@@ -265,7 +265,7 @@ flush logic lives on the Gateway side today.
|
|
|
265
265
|
## Troubleshooting checklist
|
|
266
266
|
|
|
267
267
|
- Session key wrong? Start with [/concepts/session](/concepts/session) and confirm the `sessionKey` in `/status`.
|
|
268
|
-
- Store vs transcript mismatch? Confirm the Gateway host and the store path from `
|
|
268
|
+
- Store vs transcript mismatch? Confirm the Gateway host and the store path from `openclaw status`.
|
|
269
269
|
- Compaction spam? Check:
|
|
270
270
|
- model context window (too small)
|
|
271
271
|
- compaction settings (`reserveTokens` too high for the model window can cause earlier compaction)
|
|
@@ -5,5 +5,5 @@ read_when:
|
|
|
5
5
|
---
|
|
6
6
|
# BOOT.md
|
|
7
7
|
|
|
8
|
-
Add short, explicit instructions for what
|
|
8
|
+
Add short, explicit instructions for what OpenClaw should do on startup (enable `hooks.internal.enabled`).
|
|
9
9
|
If the task sends a message, use the message tool and then reply with NO_REPLY.
|
|
@@ -24,4 +24,4 @@ This isn't just metadata. It's the start of figuring out who you are.
|
|
|
24
24
|
|
|
25
25
|
Notes:
|
|
26
26
|
- Save this file at the workspace root as `IDENTITY.md`.
|
|
27
|
-
- For avatars, use a workspace-relative path like `avatars/
|
|
27
|
+
- For avatars, use a workspace-relative path like `avatars/openclaw.png`.
|
|
@@ -7,7 +7,7 @@ read_when:
|
|
|
7
7
|
# TOOLS.md - User Tool Notes (editable)
|
|
8
8
|
|
|
9
9
|
This file is for *your* notes about external tools and conventions.
|
|
10
|
-
It does not define which tools exist;
|
|
10
|
+
It does not define which tools exist; OpenClaw provides built-in tools internally.
|
|
11
11
|
|
|
12
12
|
## Examples
|
|
13
13
|
|
|
@@ -11,7 +11,7 @@ read_when:
|
|
|
11
11
|
- **Pronouns:** they/them
|
|
12
12
|
- **Timezone:** Distributed globally (workspace default: Europe/Vienna)
|
|
13
13
|
- **Notes:**
|
|
14
|
-
- We are many. Contributors to
|
|
14
|
+
- We are many. Contributors to OpenClaw, the harness C-3PO lives in.
|
|
15
15
|
- C-3PO exists to help debug and assist wherever possible.
|
|
16
|
-
- Working across time zones on making
|
|
16
|
+
- Working across time zones on making OpenClaw better.
|
|
17
17
|
- The creators. The builders. The ones who peer into the code.
|
package/docs/reference/test.md
CHANGED
|
@@ -14,7 +14,7 @@ read_when:
|
|
|
14
14
|
|
|
15
15
|
## Model latency bench (local keys)
|
|
16
16
|
|
|
17
|
-
Script: [`scripts/bench-model.ts`](https://github.com/
|
|
17
|
+
Script: [`scripts/bench-model.ts`](https://github.com/openclaw/openclaw/blob/main/scripts/bench-model.ts)
|
|
18
18
|
|
|
19
19
|
Usage:
|
|
20
20
|
- `source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10`
|
|
@@ -35,7 +35,7 @@ Full cold-start flow in a clean Linux container:
|
|
|
35
35
|
scripts/e2e/onboard-docker.sh
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
-
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `
|
|
38
|
+
This script drives the interactive wizard via a pseudo-tty, verifies config/workspace/session files, then starts the gateway and runs `openclaw health`.
|
|
39
39
|
|
|
40
40
|
## QR import smoke (Docker)
|
|
41
41
|
|
|
@@ -79,7 +79,7 @@ Implementation:
|
|
|
79
79
|
|
|
80
80
|
## Historical behavior (pre-2026.1.22)
|
|
81
81
|
|
|
82
|
-
Before the 2026.1.22 release,
|
|
82
|
+
Before the 2026.1.22 release, OpenClaw applied multiple layers of transcript hygiene:
|
|
83
83
|
|
|
84
84
|
- A **transcript-sanitize extension** ran on every context build and could:
|
|
85
85
|
- Repair tool use/result pairing.
|
package/docs/render.mdx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Deploy on Render
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
Deploy
|
|
5
|
+
Deploy OpenClaw on Render using Infrastructure as Code. The included `render.yaml` Blueprint defines your entire stack declaratively, service, disk, environment variables, so you can deploy with a single click and version your infrastructure alongside your code.
|
|
6
6
|
|
|
7
7
|
## Prerequisites
|
|
8
8
|
|
|
@@ -11,7 +11,7 @@ Deploy Moltbot on Render using Infrastructure as Code. The included `render.yaml
|
|
|
11
11
|
|
|
12
12
|
## Deploy with a Render Blueprint
|
|
13
13
|
|
|
14
|
-
<a href="https://render.com/deploy?repo=https://github.com/
|
|
14
|
+
<a href="https://render.com/deploy?repo=https://github.com/openclaw/openclaw" target="_blank" rel="noreferrer">Deploy to Render</a>
|
|
15
15
|
|
|
16
16
|
Clicking this link will:
|
|
17
17
|
|
|
@@ -24,12 +24,12 @@ Once deployed, your service URL follows the pattern `https://<service-name>.onre
|
|
|
24
24
|
## Understanding the Blueprint
|
|
25
25
|
|
|
26
26
|
Render Blueprints are YAML files that define your infrastructure. The `render.yaml` in this
|
|
27
|
-
repository configures everything needed to run
|
|
27
|
+
repository configures everything needed to run OpenClaw:
|
|
28
28
|
|
|
29
29
|
```yaml
|
|
30
30
|
services:
|
|
31
31
|
- type: web
|
|
32
|
-
name:
|
|
32
|
+
name: openclaw
|
|
33
33
|
runtime: docker
|
|
34
34
|
plan: starter
|
|
35
35
|
healthCheckPath: /health
|
|
@@ -38,14 +38,14 @@ services:
|
|
|
38
38
|
value: "8080"
|
|
39
39
|
- key: SETUP_PASSWORD
|
|
40
40
|
sync: false # prompts during deploy
|
|
41
|
-
- key:
|
|
42
|
-
value: /data/.
|
|
43
|
-
- key:
|
|
41
|
+
- key: OPENCLAW_STATE_DIR
|
|
42
|
+
value: /data/.openclaw
|
|
43
|
+
- key: OPENCLAW_WORKSPACE_DIR
|
|
44
44
|
value: /data/workspace
|
|
45
|
-
- key:
|
|
45
|
+
- key: OPENCLAW_GATEWAY_TOKEN
|
|
46
46
|
generateValue: true # auto-generates a secure token
|
|
47
47
|
disk:
|
|
48
|
-
name:
|
|
48
|
+
name: openclaw-data
|
|
49
49
|
mountPath: /data
|
|
50
50
|
sizeGB: 1
|
|
51
51
|
```
|
|
@@ -83,7 +83,7 @@ The Blueprint defaults to `starter`. To use free tier, change `plan: free` in yo
|
|
|
83
83
|
|
|
84
84
|
### Access the Control UI
|
|
85
85
|
|
|
86
|
-
The web dashboard is available at `https://<your-service>.onrender.com/
|
|
86
|
+
The web dashboard is available at `https://<your-service>.onrender.com/openclaw`.
|
|
87
87
|
|
|
88
88
|
## Render Dashboard features
|
|
89
89
|
|
|
@@ -104,7 +104,7 @@ Modify variables in **Dashboard → your service → Environment**. Changes trig
|
|
|
104
104
|
|
|
105
105
|
### Auto-deploy
|
|
106
106
|
|
|
107
|
-
If you use the original
|
|
107
|
+
If you use the original OpenClaw repository, Render will not auto-deploy your OpenClaw. To update it, run a manual Blueprint sync from the dashboard.
|
|
108
108
|
|
|
109
109
|
## Custom domain
|
|
110
110
|
|
|
@@ -120,7 +120,7 @@ Render supports horizontal and vertical scaling:
|
|
|
120
120
|
- **Vertical**: Change the plan to get more CPU/RAM
|
|
121
121
|
- **Horizontal**: Increase instance count (Standard plan and above)
|
|
122
122
|
|
|
123
|
-
For
|
|
123
|
+
For OpenClaw, vertical scaling is usually sufficient. Horizontal scaling requires sticky sessions or external state management.
|
|
124
124
|
|
|
125
125
|
## Backups and migration
|
|
126
126
|
|
|
@@ -130,7 +130,7 @@ Export your configuration and workspace at any time:
|
|
|
130
130
|
https://<your-service>.onrender.com/setup/export
|
|
131
131
|
```
|
|
132
132
|
|
|
133
|
-
This downloads a portable backup you can restore on any
|
|
133
|
+
This downloads a portable backup you can restore on any OpenClaw host.
|
|
134
134
|
|
|
135
135
|
## Troubleshooting
|
|
136
136
|
|
package/docs/scripts.md
CHANGED
|
@@ -12,7 +12,7 @@ Use these when a task is clearly tied to a script; otherwise prefer the CLI.
|
|
|
12
12
|
## Conventions
|
|
13
13
|
|
|
14
14
|
- Scripts are **optional** unless referenced in docs or release checklists.
|
|
15
|
-
- Prefer CLI surfaces when they exist (example: auth monitoring uses `
|
|
15
|
+
- Prefer CLI surfaces when they exist (example: auth monitoring uses `openclaw models status --check`).
|
|
16
16
|
- Assume scripts are host‑specific; read them before running on a new machine.
|
|
17
17
|
|
|
18
18
|
## Git hooks
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Formal Verification (Security Models)
|
|
3
|
-
summary: Machine-checked security models for
|
|
3
|
+
summary: Machine-checked security models for OpenClaw’s highest-risk paths.
|
|
4
4
|
permalink: /security/formal-verification/
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Formal Verification (Security Models)
|
|
8
8
|
|
|
9
|
-
This page tracks
|
|
9
|
+
This page tracks OpenClaw’s **formal security models** (TLA+/TLC today; more as needed).
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
> Note: some older links may refer to the previous project name.
|
|
12
|
+
|
|
13
|
+
**Goal (north star):** provide a machine-checked argument that OpenClaw enforces its
|
|
12
14
|
intended security policy (authorization, session isolation, tool gating, and
|
|
13
15
|
misconfiguration safety), under explicit assumptions.
|
|
14
16
|
|
|
@@ -16,11 +18,11 @@ misconfiguration safety), under explicit assumptions.
|
|
|
16
18
|
- Each claim has a runnable model-check over a finite state space.
|
|
17
19
|
- Many claims have a paired **negative model** that produces a counterexample trace for a realistic bug class.
|
|
18
20
|
|
|
19
|
-
**What this is not (yet):** a proof that “
|
|
21
|
+
**What this is not (yet):** a proof that “OpenClaw is secure in all respects” or that the full TypeScript implementation is correct.
|
|
20
22
|
|
|
21
23
|
## Where the models live
|
|
22
24
|
|
|
23
|
-
Models are maintained in a separate repo: [vignesh07/
|
|
25
|
+
Models are maintained in a separate repo: [vignesh07/openclaw-formal-models](https://github.com/vignesh07/openclaw-formal-models).
|
|
24
26
|
|
|
25
27
|
## Important caveats
|
|
26
28
|
|
|
@@ -37,8 +39,8 @@ Today, results are reproduced by cloning the models repo locally and running TLC
|
|
|
37
39
|
Getting started:
|
|
38
40
|
|
|
39
41
|
```bash
|
|
40
|
-
git clone https://github.com/vignesh07/
|
|
41
|
-
cd
|
|
42
|
+
git clone https://github.com/vignesh07/openclaw-formal-models
|
|
43
|
+
cd openclaw-formal-models
|
|
42
44
|
|
|
43
45
|
# Java 11+ required (TLC runs on the JVM).
|
|
44
46
|
# The repo vendors a pinned `tla2tools.jar` (TLA+ tools) and provides `bin/tlc` + Make targets.
|
|
@@ -98,10 +100,61 @@ See also: `docs/gateway-exposure-matrix.md` in the models repo.
|
|
|
98
100
|
- Red (expected):
|
|
99
101
|
- `make routing-isolation-negative`
|
|
100
102
|
|
|
101
|
-
## Roadmap
|
|
102
103
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
-
|
|
106
|
-
|
|
107
|
-
|
|
104
|
+
## v1++: additional bounded models (concurrency, retries, trace correctness)
|
|
105
|
+
|
|
106
|
+
These are follow-on models that tighten fidelity around real-world failure modes (non-atomic updates, retries, and message fan-out).
|
|
107
|
+
|
|
108
|
+
### Pairing store concurrency / idempotency
|
|
109
|
+
|
|
110
|
+
**Claim:** a pairing store should enforce `MaxPending` and idempotency even under interleavings (i.e., “check-then-write” must be atomic / locked; refresh shouldn’t create duplicates).
|
|
111
|
+
|
|
112
|
+
What it means:
|
|
113
|
+
- Under concurrent requests, you can’t exceed `MaxPending` for a channel.
|
|
114
|
+
- Repeated requests/refreshes for the same `(channel, sender)` should not create duplicate live pending rows.
|
|
115
|
+
|
|
116
|
+
- Green runs:
|
|
117
|
+
- `make pairing-race` (atomic/locked cap check)
|
|
118
|
+
- `make pairing-idempotency`
|
|
119
|
+
- `make pairing-refresh`
|
|
120
|
+
- `make pairing-refresh-race`
|
|
121
|
+
- Red (expected):
|
|
122
|
+
- `make pairing-race-negative` (non-atomic begin/commit cap race)
|
|
123
|
+
- `make pairing-idempotency-negative`
|
|
124
|
+
- `make pairing-refresh-negative`
|
|
125
|
+
- `make pairing-refresh-race-negative`
|
|
126
|
+
|
|
127
|
+
### Ingress trace correlation / idempotency
|
|
128
|
+
|
|
129
|
+
**Claim:** ingestion should preserve trace correlation across fan-out and be idempotent under provider retries.
|
|
130
|
+
|
|
131
|
+
What it means:
|
|
132
|
+
- When one external event becomes multiple internal messages, every part keeps the same trace/event identity.
|
|
133
|
+
- Retries do not result in double-processing.
|
|
134
|
+
- If provider event IDs are missing, dedupe falls back to a safe key (e.g., trace ID) to avoid dropping distinct events.
|
|
135
|
+
|
|
136
|
+
- Green:
|
|
137
|
+
- `make ingress-trace`
|
|
138
|
+
- `make ingress-trace2`
|
|
139
|
+
- `make ingress-idempotency`
|
|
140
|
+
- `make ingress-dedupe-fallback`
|
|
141
|
+
- Red (expected):
|
|
142
|
+
- `make ingress-trace-negative`
|
|
143
|
+
- `make ingress-trace2-negative`
|
|
144
|
+
- `make ingress-idempotency-negative`
|
|
145
|
+
- `make ingress-dedupe-fallback-negative`
|
|
146
|
+
|
|
147
|
+
### Routing dmScope precedence + identityLinks
|
|
148
|
+
|
|
149
|
+
**Claim:** routing must keep DM sessions isolated by default, and only collapse sessions when explicitly configured (channel precedence + identity links).
|
|
150
|
+
|
|
151
|
+
What it means:
|
|
152
|
+
- Channel-specific dmScope overrides must win over global defaults.
|
|
153
|
+
- identityLinks should collapse only within explicit linked groups, not across unrelated peers.
|
|
154
|
+
|
|
155
|
+
- Green:
|
|
156
|
+
- `make routing-precedence`
|
|
157
|
+
- `make routing-identitylinks`
|
|
158
|
+
- Red (expected):
|
|
159
|
+
- `make routing-precedence-negative`
|
|
160
|
+
- `make routing-identitylinks-negative`
|