@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
|
@@ -44,7 +44,7 @@ async function promptChannelMode(runtime) {
|
|
|
44
44
|
{
|
|
45
45
|
value: "remove",
|
|
46
46
|
label: "Remove channel config",
|
|
47
|
-
hint: "Delete channel tokens/settings from
|
|
47
|
+
hint: "Delete channel tokens/settings from openclaw.json",
|
|
48
48
|
},
|
|
49
49
|
],
|
|
50
50
|
initialValue: "configure",
|
|
@@ -57,7 +57,7 @@ async function promptWebToolsConfig(nextConfig, runtime) {
|
|
|
57
57
|
note([
|
|
58
58
|
"Web search lets your agent look things up online using the `web_search` tool.",
|
|
59
59
|
"It requires a Brave Search API key (you can store it in the config or set BRAVE_API_KEY in the Gateway environment).",
|
|
60
|
-
"Docs: https://docs.
|
|
60
|
+
"Docs: https://docs.openclaw.ai/tools/web",
|
|
61
61
|
].join("\n"), "Web search");
|
|
62
62
|
const enableSearch = guardCancel(await confirm({
|
|
63
63
|
message: "Enable web_search (Brave Search)?",
|
|
@@ -82,7 +82,7 @@ async function promptWebToolsConfig(nextConfig, runtime) {
|
|
|
82
82
|
note([
|
|
83
83
|
"No key stored yet, so web_search will stay unavailable.",
|
|
84
84
|
"Store a key here or set BRAVE_API_KEY in the Gateway environment.",
|
|
85
|
-
"Docs: https://docs.
|
|
85
|
+
"Docs: https://docs.openclaw.ai/tools/web",
|
|
86
86
|
].join("\n"), "Web search");
|
|
87
87
|
}
|
|
88
88
|
}
|
|
@@ -109,7 +109,7 @@ async function promptWebToolsConfig(nextConfig, runtime) {
|
|
|
109
109
|
export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
110
110
|
try {
|
|
111
111
|
printWizardHeader(runtime);
|
|
112
|
-
intro(opts.command === "update" ? "
|
|
112
|
+
intro(opts.command === "update" ? "OpenClaw update wizard" : "OpenClaw configure");
|
|
113
113
|
const prompter = createClackPrompter();
|
|
114
114
|
const snapshot = await readConfigFileSnapshot();
|
|
115
115
|
const baseConfig = snapshot.valid ? snapshot.config : {};
|
|
@@ -120,11 +120,11 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
120
120
|
note([
|
|
121
121
|
...snapshot.issues.map((iss) => `- ${iss.path}: ${iss.message}`),
|
|
122
122
|
"",
|
|
123
|
-
"Docs: https://docs.
|
|
123
|
+
"Docs: https://docs.openclaw.ai/gateway/configuration",
|
|
124
124
|
].join("\n"), "Config issues");
|
|
125
125
|
}
|
|
126
126
|
if (!snapshot.valid) {
|
|
127
|
-
outro(`Config invalid. Run \`${formatCliCommand("
|
|
127
|
+
outro(`Config invalid. Run \`${formatCliCommand("openclaw doctor")}\` to repair it, then re-run configure.`);
|
|
128
128
|
runtime.exit(1);
|
|
129
129
|
return;
|
|
130
130
|
}
|
|
@@ -132,8 +132,8 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
132
132
|
const localUrl = "ws://127.0.0.1:18789";
|
|
133
133
|
const localProbe = await probeGatewayReachable({
|
|
134
134
|
url: localUrl,
|
|
135
|
-
token: baseConfig.gateway?.auth?.token ?? process.env.
|
|
136
|
-
password: baseConfig.gateway?.auth?.password ?? process.env.
|
|
135
|
+
token: baseConfig.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN,
|
|
136
|
+
password: baseConfig.gateway?.auth?.password ?? process.env.OPENCLAW_GATEWAY_PASSWORD,
|
|
137
137
|
});
|
|
138
138
|
const remoteUrl = baseConfig.gateway?.remote?.url?.trim() ?? "";
|
|
139
139
|
const remoteProbe = remoteUrl
|
|
@@ -192,7 +192,7 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
192
192
|
let gatewayPort = resolveGatewayPort(baseConfig);
|
|
193
193
|
let gatewayToken = nextConfig.gateway?.auth?.token ??
|
|
194
194
|
baseConfig.gateway?.auth?.token ??
|
|
195
|
-
process.env.
|
|
195
|
+
process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
196
196
|
const persistConfig = async () => {
|
|
197
197
|
nextConfig = applyWizardMetadata(nextConfig, {
|
|
198
198
|
command: opts.command,
|
|
@@ -277,8 +277,8 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
277
277
|
});
|
|
278
278
|
const remoteUrl = nextConfig.gateway?.remote?.url?.trim();
|
|
279
279
|
const wsUrl = nextConfig.gateway?.mode === "remote" && remoteUrl ? remoteUrl : localLinks.wsUrl;
|
|
280
|
-
const token = nextConfig.gateway?.auth?.token ?? process.env.
|
|
281
|
-
const password = nextConfig.gateway?.auth?.password ?? process.env.
|
|
280
|
+
const token = nextConfig.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
281
|
+
const password = nextConfig.gateway?.auth?.password ?? process.env.OPENCLAW_GATEWAY_PASSWORD;
|
|
282
282
|
await waitForGatewayReachable({
|
|
283
283
|
url: wsUrl,
|
|
284
284
|
token,
|
|
@@ -292,8 +292,8 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
292
292
|
runtime.error(formatHealthCheckFailure(err));
|
|
293
293
|
note([
|
|
294
294
|
"Docs:",
|
|
295
|
-
"https://docs.
|
|
296
|
-
"https://docs.
|
|
295
|
+
"https://docs.openclaw.ai/gateway/health",
|
|
296
|
+
"https://docs.openclaw.ai/gateway/troubleshooting",
|
|
297
297
|
].join("\n"), "Health check help");
|
|
298
298
|
}
|
|
299
299
|
}
|
|
@@ -386,8 +386,8 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
386
386
|
});
|
|
387
387
|
const remoteUrl = nextConfig.gateway?.remote?.url?.trim();
|
|
388
388
|
const wsUrl = nextConfig.gateway?.mode === "remote" && remoteUrl ? remoteUrl : localLinks.wsUrl;
|
|
389
|
-
const token = nextConfig.gateway?.auth?.token ?? process.env.
|
|
390
|
-
const password = nextConfig.gateway?.auth?.password ?? process.env.
|
|
389
|
+
const token = nextConfig.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
390
|
+
const password = nextConfig.gateway?.auth?.password ?? process.env.OPENCLAW_GATEWAY_PASSWORD;
|
|
391
391
|
await waitForGatewayReachable({
|
|
392
392
|
url: wsUrl,
|
|
393
393
|
token,
|
|
@@ -401,8 +401,8 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
401
401
|
runtime.error(formatHealthCheckFailure(err));
|
|
402
402
|
note([
|
|
403
403
|
"Docs:",
|
|
404
|
-
"https://docs.
|
|
405
|
-
"https://docs.
|
|
404
|
+
"https://docs.openclaw.ai/gateway/health",
|
|
405
|
+
"https://docs.openclaw.ai/gateway/troubleshooting",
|
|
406
406
|
].join("\n"), "Health check help");
|
|
407
407
|
}
|
|
408
408
|
}
|
|
@@ -429,9 +429,9 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
429
429
|
basePath: nextConfig.gateway?.controlUi?.basePath,
|
|
430
430
|
});
|
|
431
431
|
// Try both new and old passwords since gateway may still have old config.
|
|
432
|
-
const newPassword = nextConfig.gateway?.auth?.password ?? process.env.
|
|
433
|
-
const oldPassword = baseConfig.gateway?.auth?.password ?? process.env.
|
|
434
|
-
const token = nextConfig.gateway?.auth?.token ?? process.env.
|
|
432
|
+
const newPassword = nextConfig.gateway?.auth?.password ?? process.env.OPENCLAW_GATEWAY_PASSWORD;
|
|
433
|
+
const oldPassword = baseConfig.gateway?.auth?.password ?? process.env.OPENCLAW_GATEWAY_PASSWORD;
|
|
434
|
+
const token = nextConfig.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
435
435
|
let gatewayProbe = await probeGatewayReachable({
|
|
436
436
|
url: links.wsUrl,
|
|
437
437
|
token,
|
|
@@ -452,7 +452,7 @@ export async function runConfigureWizard(opts, runtime = defaultRuntime) {
|
|
|
452
452
|
`Web UI: ${links.httpUrl}`,
|
|
453
453
|
`Gateway WS: ${links.wsUrl}`,
|
|
454
454
|
gatewayStatusLine,
|
|
455
|
-
"Docs: https://docs.
|
|
455
|
+
"Docs: https://docs.openclaw.ai/web/control-ui",
|
|
456
456
|
].join("\n"), "Control UI");
|
|
457
457
|
outro("Configure complete.");
|
|
458
458
|
}
|
|
@@ -33,7 +33,7 @@ export async function buildGatewayInstallPlan(params) {
|
|
|
33
33
|
port: params.port,
|
|
34
34
|
token: params.token,
|
|
35
35
|
launchdLabel: process.platform === "darwin"
|
|
36
|
-
? resolveGatewayLaunchAgentLabel(params.env.
|
|
36
|
+
? resolveGatewayLaunchAgentLabel(params.env.OPENCLAW_PROFILE)
|
|
37
37
|
: undefined,
|
|
38
38
|
});
|
|
39
39
|
// Merge config env vars into the service environment (vars + inline env keys).
|
|
@@ -47,5 +47,5 @@ export async function buildGatewayInstallPlan(params) {
|
|
|
47
47
|
export function gatewayInstallErrorHint(platform = process.platform) {
|
|
48
48
|
return platform === "win32"
|
|
49
49
|
? "Tip: rerun from an elevated PowerShell (Start → type PowerShell → right-click → Run as administrator) or skip service install."
|
|
50
|
-
: `Tip: rerun \`${formatCliCommand("
|
|
50
|
+
: `Tip: rerun \`${formatCliCommand("openclaw gateway install")}\` after fixing the error.`;
|
|
51
51
|
}
|
|
@@ -9,7 +9,7 @@ export async function dashboardCommand(runtime = defaultRuntime, options = {}) {
|
|
|
9
9
|
const bind = cfg.gateway?.bind ?? "loopback";
|
|
10
10
|
const basePath = cfg.gateway?.controlUi?.basePath;
|
|
11
11
|
const customBindHost = cfg.gateway?.customBindHost;
|
|
12
|
-
const token = cfg.gateway?.auth?.token ?? process.env.
|
|
12
|
+
const token = cfg.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN ?? "";
|
|
13
13
|
const links = resolveControlUiLinks({
|
|
14
14
|
port,
|
|
15
15
|
bind,
|
|
@@ -39,7 +39,7 @@ export async function dashboardCommand(runtime = defaultRuntime, options = {}) {
|
|
|
39
39
|
hint = "Browser launch disabled (--no-open). Use the URL above.";
|
|
40
40
|
}
|
|
41
41
|
if (opened) {
|
|
42
|
-
runtime.log("Opened in your browser. Keep that tab to control
|
|
42
|
+
runtime.log("Opened in your browser. Keep that tab to control OpenClaw.");
|
|
43
43
|
}
|
|
44
44
|
else if (hint) {
|
|
45
45
|
runtime.log(hint);
|
package/dist/commands/docs.js
CHANGED
|
@@ -3,7 +3,7 @@ import { runCommandWithTimeout } from "../process/exec.js";
|
|
|
3
3
|
import { formatDocsLink } from "../terminal/links.js";
|
|
4
4
|
import { isRich, theme } from "../terminal/theme.js";
|
|
5
5
|
import { formatCliCommand } from "../cli/command-format.js";
|
|
6
|
-
const SEARCH_TOOL = "https://docs.
|
|
6
|
+
const SEARCH_TOOL = "https://docs.openclaw.ai/mcp.SearchOpenClaw";
|
|
7
7
|
const SEARCH_TIMEOUT_MS = 30_000;
|
|
8
8
|
const DEFAULT_SNIPPET_MAX = 220;
|
|
9
9
|
function resolveNodeRunner() {
|
|
@@ -119,14 +119,14 @@ async function renderMarkdown(markdown, runtime) {
|
|
|
119
119
|
export async function docsSearchCommand(queryParts, runtime) {
|
|
120
120
|
const query = queryParts.join(" ").trim();
|
|
121
121
|
if (!query) {
|
|
122
|
-
const docs = formatDocsLink("/", "docs.
|
|
122
|
+
const docs = formatDocsLink("/", "docs.openclaw.ai");
|
|
123
123
|
if (isRich()) {
|
|
124
124
|
runtime.log(`${theme.muted("Docs:")} ${docs}`);
|
|
125
|
-
runtime.log(`${theme.muted("Search:")} ${formatCliCommand('
|
|
125
|
+
runtime.log(`${theme.muted("Search:")} ${formatCliCommand('openclaw docs "your query"')}`);
|
|
126
126
|
}
|
|
127
127
|
else {
|
|
128
|
-
runtime.log("Docs: https://docs.
|
|
129
|
-
runtime.log(`Search: ${formatCliCommand('
|
|
128
|
+
runtime.log("Docs: https://docs.openclaw.ai/");
|
|
129
|
+
runtime.log(`Search: ${formatCliCommand('openclaw docs "your query"')}`);
|
|
130
130
|
}
|
|
131
131
|
return;
|
|
132
132
|
}
|
|
@@ -82,10 +82,10 @@ export async function maybeRemoveDeprecatedCliAuthProfiles(cfg, prompter) {
|
|
|
82
82
|
return cfg;
|
|
83
83
|
const lines = ["Deprecated external CLI auth profiles detected (no longer supported):"];
|
|
84
84
|
if (deprecated.has(CLAUDE_CLI_PROFILE_ID)) {
|
|
85
|
-
lines.push(`- ${CLAUDE_CLI_PROFILE_ID} (Anthropic): use setup-token → ${formatCliCommand("
|
|
85
|
+
lines.push(`- ${CLAUDE_CLI_PROFILE_ID} (Anthropic): use setup-token → ${formatCliCommand("openclaw models auth setup-token")}`);
|
|
86
86
|
}
|
|
87
87
|
if (deprecated.has(CODEX_CLI_PROFILE_ID)) {
|
|
88
|
-
lines.push(`- ${CODEX_CLI_PROFILE_ID} (OpenAI Codex): use OAuth → ${formatCliCommand("
|
|
88
|
+
lines.push(`- ${CODEX_CLI_PROFILE_ID} (OpenAI Codex): use OAuth → ${formatCliCommand("openclaw models auth login --provider openai-codex")}`);
|
|
89
89
|
}
|
|
90
90
|
note(lines.join("\n"), "Auth profiles");
|
|
91
91
|
const shouldRemove = await prompter.confirmRepair({
|
|
@@ -142,12 +142,12 @@ export async function maybeRemoveDeprecatedCliAuthProfiles(cfg, prompter) {
|
|
|
142
142
|
}
|
|
143
143
|
function formatAuthIssueHint(issue) {
|
|
144
144
|
if (issue.provider === "anthropic" && issue.profileId === CLAUDE_CLI_PROFILE_ID) {
|
|
145
|
-
return `Deprecated profile. Use ${formatCliCommand("
|
|
145
|
+
return `Deprecated profile. Use ${formatCliCommand("openclaw models auth setup-token")} or ${formatCliCommand("openclaw configure")}.`;
|
|
146
146
|
}
|
|
147
147
|
if (issue.provider === "openai-codex" && issue.profileId === CODEX_CLI_PROFILE_ID) {
|
|
148
|
-
return `Deprecated profile. Use ${formatCliCommand("
|
|
148
|
+
return `Deprecated profile. Use ${formatCliCommand("openclaw models auth login --provider openai-codex")} or ${formatCliCommand("openclaw configure")}.`;
|
|
149
149
|
}
|
|
150
|
-
return `Re-auth via \`${formatCliCommand("
|
|
150
|
+
return `Re-auth via \`${formatCliCommand("openclaw configure")}\` or \`${formatCliCommand("openclaw onboard")}\`.`;
|
|
151
151
|
}
|
|
152
152
|
function formatAuthIssueLine(issue) {
|
|
153
153
|
const remaining = issue.remainingMs !== undefined ? ` (${formatRemainingShort(issue.remainingMs)})` : "";
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { OpenClawSchema, CONFIG_PATH, migrateLegacyConfig, readConfigFileSnapshot, } from "../config/config.js";
|
|
2
4
|
import { applyPluginAutoEnable } from "../config/plugin-auto-enable.js";
|
|
3
5
|
import { formatCliCommand } from "../cli/command-format.js";
|
|
4
6
|
import { note } from "../terminal/note.js";
|
|
5
7
|
import { normalizeLegacyConfigValues } from "./doctor-legacy-config.js";
|
|
8
|
+
import { autoMigrateLegacyStateDir } from "./doctor-state-migrations.js";
|
|
9
|
+
import { resolveHomeDir } from "../utils.js";
|
|
6
10
|
function isRecord(value) {
|
|
7
11
|
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
8
12
|
}
|
|
@@ -46,7 +50,7 @@ function resolvePathTarget(root, path) {
|
|
|
46
50
|
return current;
|
|
47
51
|
}
|
|
48
52
|
function stripUnknownConfigKeys(config) {
|
|
49
|
-
const parsed =
|
|
53
|
+
const parsed = OpenClawSchema.safeParse(config);
|
|
50
54
|
if (parsed.success) {
|
|
51
55
|
return { config, removed: [] };
|
|
52
56
|
}
|
|
@@ -96,9 +100,62 @@ function noteOpencodeProviderOverrides(cfg) {
|
|
|
96
100
|
lines.push("- Remove these entries to restore per-model API routing + costs (then re-run onboarding if needed).");
|
|
97
101
|
note(lines.join("\n"), "OpenCode Zen");
|
|
98
102
|
}
|
|
103
|
+
async function maybeMigrateLegacyConfig() {
|
|
104
|
+
const changes = [];
|
|
105
|
+
const home = resolveHomeDir();
|
|
106
|
+
if (!home)
|
|
107
|
+
return changes;
|
|
108
|
+
const targetDir = path.join(home, ".openclaw");
|
|
109
|
+
const targetPath = path.join(targetDir, "openclaw.json");
|
|
110
|
+
try {
|
|
111
|
+
await fs.access(targetPath);
|
|
112
|
+
return changes;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
// missing config
|
|
116
|
+
}
|
|
117
|
+
const legacyCandidates = [
|
|
118
|
+
path.join(home, ".clawdbot", "clawdbot.json"),
|
|
119
|
+
path.join(home, ".moltbot", "moltbot.json"),
|
|
120
|
+
path.join(home, ".moldbot", "moldbot.json"),
|
|
121
|
+
];
|
|
122
|
+
let legacyPath = null;
|
|
123
|
+
for (const candidate of legacyCandidates) {
|
|
124
|
+
try {
|
|
125
|
+
await fs.access(candidate);
|
|
126
|
+
legacyPath = candidate;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
// continue
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (!legacyPath)
|
|
134
|
+
return changes;
|
|
135
|
+
await fs.mkdir(targetDir, { recursive: true });
|
|
136
|
+
try {
|
|
137
|
+
await fs.copyFile(legacyPath, targetPath, fs.constants.COPYFILE_EXCL);
|
|
138
|
+
changes.push(`Migrated legacy config: ${legacyPath} -> ${targetPath}`);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// If it already exists, skip silently.
|
|
142
|
+
}
|
|
143
|
+
return changes;
|
|
144
|
+
}
|
|
99
145
|
export async function loadAndMaybeMigrateDoctorConfig(params) {
|
|
100
146
|
const shouldRepair = params.options.repair === true || params.options.yes === true;
|
|
101
|
-
const
|
|
147
|
+
const stateDirResult = await autoMigrateLegacyStateDir({ env: process.env });
|
|
148
|
+
if (stateDirResult.changes.length > 0) {
|
|
149
|
+
note(stateDirResult.changes.map((entry) => `- ${entry}`).join("\n"), "Doctor changes");
|
|
150
|
+
}
|
|
151
|
+
if (stateDirResult.warnings.length > 0) {
|
|
152
|
+
note(stateDirResult.warnings.map((entry) => `- ${entry}`).join("\n"), "Doctor warnings");
|
|
153
|
+
}
|
|
154
|
+
const legacyConfigChanges = await maybeMigrateLegacyConfig();
|
|
155
|
+
if (legacyConfigChanges.length > 0) {
|
|
156
|
+
note(legacyConfigChanges.map((entry) => `- ${entry}`).join("\n"), "Doctor changes");
|
|
157
|
+
}
|
|
158
|
+
let snapshot = await readConfigFileSnapshot();
|
|
102
159
|
const baseCfg = snapshot.config ?? {};
|
|
103
160
|
let cfg = baseCfg;
|
|
104
161
|
let candidate = structuredClone(baseCfg);
|
|
@@ -129,7 +186,7 @@ export async function loadAndMaybeMigrateDoctorConfig(params) {
|
|
|
129
186
|
cfg = migrated;
|
|
130
187
|
}
|
|
131
188
|
else {
|
|
132
|
-
fixHints.push(`Run "${formatCliCommand("
|
|
189
|
+
fixHints.push(`Run "${formatCliCommand("openclaw doctor --fix")}" to apply legacy migrations.`);
|
|
133
190
|
}
|
|
134
191
|
}
|
|
135
192
|
const normalized = normalizeLegacyConfigValues(candidate);
|
|
@@ -141,7 +198,7 @@ export async function loadAndMaybeMigrateDoctorConfig(params) {
|
|
|
141
198
|
cfg = normalized.config;
|
|
142
199
|
}
|
|
143
200
|
else {
|
|
144
|
-
fixHints.push(`Run "${formatCliCommand("
|
|
201
|
+
fixHints.push(`Run "${formatCliCommand("openclaw doctor --fix")}" to apply these changes.`);
|
|
145
202
|
}
|
|
146
203
|
}
|
|
147
204
|
const autoEnable = applyPluginAutoEnable({ config: candidate, env: process.env });
|
|
@@ -153,7 +210,7 @@ export async function loadAndMaybeMigrateDoctorConfig(params) {
|
|
|
153
210
|
cfg = autoEnable.config;
|
|
154
211
|
}
|
|
155
212
|
else {
|
|
156
|
-
fixHints.push(`Run "${formatCliCommand("
|
|
213
|
+
fixHints.push(`Run "${formatCliCommand("openclaw doctor --fix")}" to apply these changes.`);
|
|
157
214
|
}
|
|
158
215
|
}
|
|
159
216
|
const unknown = stripUnknownConfigKeys(candidate);
|
|
@@ -167,7 +224,7 @@ export async function loadAndMaybeMigrateDoctorConfig(params) {
|
|
|
167
224
|
}
|
|
168
225
|
else {
|
|
169
226
|
note(lines, "Unknown config keys");
|
|
170
|
-
fixHints.push('Run "
|
|
227
|
+
fixHints.push('Run "openclaw doctor --fix" to remove these keys.');
|
|
171
228
|
}
|
|
172
229
|
}
|
|
173
230
|
if (!shouldRepair && pendingChanges) {
|
|
@@ -53,12 +53,12 @@ export function buildGatewayRuntimeHints(runtime, options = {}) {
|
|
|
53
53
|
return hints;
|
|
54
54
|
}
|
|
55
55
|
if (runtime.cachedLabel && platform === "darwin") {
|
|
56
|
-
const label = resolveGatewayLaunchAgentLabel(env.
|
|
56
|
+
const label = resolveGatewayLaunchAgentLabel(env.OPENCLAW_PROFILE);
|
|
57
57
|
hints.push(`LaunchAgent label cached but plist missing. Clear with: launchctl bootout gui/$UID/${label}`);
|
|
58
|
-
hints.push(`Then reinstall: ${formatCliCommand("
|
|
58
|
+
hints.push(`Then reinstall: ${formatCliCommand("openclaw gateway install", env)}`);
|
|
59
59
|
}
|
|
60
60
|
if (runtime.missingUnit) {
|
|
61
|
-
hints.push(`Service not installed. Run: ${formatCliCommand("
|
|
61
|
+
hints.push(`Service not installed. Run: ${formatCliCommand("openclaw gateway install", env)}`);
|
|
62
62
|
if (fileLog)
|
|
63
63
|
hints.push(`File logs: ${fileLog}`);
|
|
64
64
|
return hints;
|
|
@@ -73,11 +73,11 @@ export function buildGatewayRuntimeHints(runtime, options = {}) {
|
|
|
73
73
|
hints.push(`Launchd stderr (if installed): ${logs.stderrPath}`);
|
|
74
74
|
}
|
|
75
75
|
else if (platform === "linux") {
|
|
76
|
-
const unit = resolveGatewaySystemdServiceName(env.
|
|
76
|
+
const unit = resolveGatewaySystemdServiceName(env.OPENCLAW_PROFILE);
|
|
77
77
|
hints.push(`Logs: journalctl --user -u ${unit}.service -n 200 --no-pager`);
|
|
78
78
|
}
|
|
79
79
|
else if (platform === "win32") {
|
|
80
|
-
const task = resolveGatewayWindowsTaskName(env.
|
|
80
|
+
const task = resolveGatewayWindowsTaskName(env.OPENCLAW_PROFILE);
|
|
81
81
|
hints.push(`Logs: schtasks /Query /TN "${task}" /V /FO LIST`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
@@ -72,7 +72,10 @@ export async function maybeRepairGatewayDaemon(params) {
|
|
|
72
72
|
prompter: params.prompter,
|
|
73
73
|
});
|
|
74
74
|
await maybeRepairLaunchAgentBootstrap({
|
|
75
|
-
env: {
|
|
75
|
+
env: {
|
|
76
|
+
...process.env,
|
|
77
|
+
OPENCLAW_LAUNCHD_LABEL: resolveNodeLaunchAgentLabel(),
|
|
78
|
+
},
|
|
76
79
|
title: "Node",
|
|
77
80
|
runtime: params.runtime,
|
|
78
81
|
prompter: params.prompter,
|
|
@@ -121,7 +124,7 @@ export async function maybeRepairGatewayDaemon(params) {
|
|
|
121
124
|
const { programArguments, workingDirectory, environment } = await buildGatewayInstallPlan({
|
|
122
125
|
env: process.env,
|
|
123
126
|
port,
|
|
124
|
-
token: params.cfg.gateway?.auth?.token ?? process.env.
|
|
127
|
+
token: params.cfg.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN,
|
|
125
128
|
runtime: daemonRuntime,
|
|
126
129
|
warn: (message, title) => note(message, title),
|
|
127
130
|
config: params.cfg,
|
|
@@ -169,8 +172,8 @@ export async function maybeRepairGatewayDaemon(params) {
|
|
|
169
172
|
}
|
|
170
173
|
}
|
|
171
174
|
if (process.platform === "darwin") {
|
|
172
|
-
const label = resolveGatewayLaunchAgentLabel(process.env.
|
|
173
|
-
note(`LaunchAgent loaded; stopping requires "${formatCliCommand("
|
|
175
|
+
const label = resolveGatewayLaunchAgentLabel(process.env.OPENCLAW_PROFILE);
|
|
176
|
+
note(`LaunchAgent loaded; stopping requires "${formatCliCommand("openclaw gateway stop")}" or launchctl bootout gui/$UID/${label}.`, "Gateway");
|
|
174
177
|
}
|
|
175
178
|
if (serviceRuntime?.status === "running") {
|
|
176
179
|
const restart = await params.prompter.confirmSkipInNonInteractive({
|
|
@@ -1,13 +1,17 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import os from "node:os";
|
|
1
4
|
import path from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
2
6
|
import { resolveGatewayPort, resolveIsNixMode } from "../config/paths.js";
|
|
3
7
|
import { findExtraGatewayServices, renderGatewayServiceCleanupHints } from "../daemon/inspect.js";
|
|
4
|
-
import { findLegacyGatewayServices, uninstallLegacyGatewayServices } from "../daemon/legacy.js";
|
|
5
8
|
import { renderSystemNodeWarning, resolveSystemNodeInfo } from "../daemon/runtime-paths.js";
|
|
6
9
|
import { resolveGatewayService } from "../daemon/service.js";
|
|
7
10
|
import { auditGatewayServiceConfig, needsNodeRuntimeMigration, SERVICE_AUDIT_CODES, } from "../daemon/service-audit.js";
|
|
8
11
|
import { note } from "../terminal/note.js";
|
|
9
|
-
import { buildGatewayInstallPlan
|
|
10
|
-
import { DEFAULT_GATEWAY_DAEMON_RUNTIME
|
|
12
|
+
import { buildGatewayInstallPlan } from "./daemon-install-helpers.js";
|
|
13
|
+
import { DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime.js";
|
|
14
|
+
const execFileAsync = promisify(execFile);
|
|
11
15
|
function detectGatewayRuntime(programArguments) {
|
|
12
16
|
const first = programArguments?.[0];
|
|
13
17
|
if (first) {
|
|
@@ -30,73 +34,36 @@ function findGatewayEntrypoint(programArguments) {
|
|
|
30
34
|
function normalizeExecutablePath(value) {
|
|
31
35
|
return path.resolve(value);
|
|
32
36
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
37
|
+
function extractDetailPath(detail, prefix) {
|
|
38
|
+
if (!detail.startsWith(prefix))
|
|
39
|
+
return null;
|
|
40
|
+
const value = detail.slice(prefix.length).trim();
|
|
41
|
+
return value.length > 0 ? value : null;
|
|
42
|
+
}
|
|
43
|
+
async function cleanupLegacyLaunchdService(params) {
|
|
44
|
+
const domain = typeof process.getuid === "function" ? `gui/${process.getuid()}` : "gui/501";
|
|
45
|
+
await execFileAsync("launchctl", ["bootout", domain, params.plistPath]).catch(() => undefined);
|
|
46
|
+
await execFileAsync("launchctl", ["unload", params.plistPath]).catch(() => undefined);
|
|
47
|
+
const trashDir = path.join(os.homedir(), ".Trash");
|
|
44
48
|
try {
|
|
45
|
-
await
|
|
46
|
-
env: process.env,
|
|
47
|
-
stdout: process.stdout,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
runtime.error(`Legacy service cleanup failed: ${String(err)}`);
|
|
52
|
-
return;
|
|
49
|
+
await fs.mkdir(trashDir, { recursive: true });
|
|
53
50
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return;
|
|
51
|
+
catch {
|
|
52
|
+
// ignore
|
|
57
53
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return;
|
|
54
|
+
try {
|
|
55
|
+
await fs.access(params.plistPath);
|
|
61
56
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (loaded) {
|
|
65
|
-
note(`Moltbot ${service.label} already ${service.loadedText}.`, "Gateway");
|
|
66
|
-
return;
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
67
59
|
}
|
|
68
|
-
const
|
|
69
|
-
message: "Install Moltbot gateway service now?",
|
|
70
|
-
initialValue: true,
|
|
71
|
-
});
|
|
72
|
-
if (!install)
|
|
73
|
-
return;
|
|
74
|
-
const daemonRuntime = await prompter.select({
|
|
75
|
-
message: "Gateway service runtime",
|
|
76
|
-
options: GATEWAY_DAEMON_RUNTIME_OPTIONS,
|
|
77
|
-
initialValue: DEFAULT_GATEWAY_DAEMON_RUNTIME,
|
|
78
|
-
}, DEFAULT_GATEWAY_DAEMON_RUNTIME);
|
|
79
|
-
const port = resolveGatewayPort(cfg, process.env);
|
|
80
|
-
const { programArguments, workingDirectory, environment } = await buildGatewayInstallPlan({
|
|
81
|
-
env: process.env,
|
|
82
|
-
port,
|
|
83
|
-
token: cfg.gateway?.auth?.token ?? process.env.CLAWDBOT_GATEWAY_TOKEN,
|
|
84
|
-
runtime: daemonRuntime,
|
|
85
|
-
warn: (message, title) => note(message, title),
|
|
86
|
-
config: cfg,
|
|
87
|
-
});
|
|
60
|
+
const dest = path.join(trashDir, `${params.label}-${Date.now()}.plist`);
|
|
88
61
|
try {
|
|
89
|
-
await
|
|
90
|
-
|
|
91
|
-
stdout: process.stdout,
|
|
92
|
-
programArguments,
|
|
93
|
-
workingDirectory,
|
|
94
|
-
environment,
|
|
95
|
-
});
|
|
62
|
+
await fs.rename(params.plistPath, dest);
|
|
63
|
+
return dest;
|
|
96
64
|
}
|
|
97
|
-
catch
|
|
98
|
-
|
|
99
|
-
note(gatewayInstallErrorHint(), "Gateway");
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
100
67
|
}
|
|
101
68
|
}
|
|
102
69
|
export async function maybeRepairGatewayServiceConfig(cfg, mode, runtime, prompter) {
|
|
@@ -138,7 +105,7 @@ export async function maybeRepairGatewayServiceConfig(cfg, mode, runtime, prompt
|
|
|
138
105
|
const { programArguments, workingDirectory, environment } = await buildGatewayInstallPlan({
|
|
139
106
|
env: process.env,
|
|
140
107
|
port,
|
|
141
|
-
token: cfg.gateway?.auth?.token ?? process.env.
|
|
108
|
+
token: cfg.gateway?.auth?.token ?? process.env.OPENCLAW_GATEWAY_TOKEN,
|
|
142
109
|
runtime: needsNodeRuntime && systemNodePath ? "node" : runtimeChoice,
|
|
143
110
|
nodePath: systemNodePath ?? undefined,
|
|
144
111
|
warn: (message, title) => note(message, title),
|
|
@@ -190,13 +157,53 @@ export async function maybeRepairGatewayServiceConfig(cfg, mode, runtime, prompt
|
|
|
190
157
|
runtime.error(`Gateway service update failed: ${String(err)}`);
|
|
191
158
|
}
|
|
192
159
|
}
|
|
193
|
-
export async function maybeScanExtraGatewayServices(options) {
|
|
160
|
+
export async function maybeScanExtraGatewayServices(options, runtime, prompter) {
|
|
194
161
|
const extraServices = await findExtraGatewayServices(process.env, {
|
|
195
162
|
deep: options.deep,
|
|
196
163
|
});
|
|
197
164
|
if (extraServices.length === 0)
|
|
198
165
|
return;
|
|
199
166
|
note(extraServices.map((svc) => `- ${svc.label} (${svc.scope}, ${svc.detail})`).join("\n"), "Other gateway-like services detected");
|
|
167
|
+
const legacyServices = extraServices.filter((svc) => svc.legacy === true);
|
|
168
|
+
if (legacyServices.length > 0) {
|
|
169
|
+
const shouldRemove = await prompter.confirmSkipInNonInteractive({
|
|
170
|
+
message: "Remove legacy gateway services (clawdbot/moltbot) now?",
|
|
171
|
+
initialValue: true,
|
|
172
|
+
});
|
|
173
|
+
if (shouldRemove) {
|
|
174
|
+
const removed = [];
|
|
175
|
+
const failed = [];
|
|
176
|
+
for (const svc of legacyServices) {
|
|
177
|
+
if (svc.platform !== "darwin") {
|
|
178
|
+
failed.push(`${svc.label} (${svc.platform})`);
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (svc.scope !== "user") {
|
|
182
|
+
failed.push(`${svc.label} (${svc.scope})`);
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const plistPath = extractDetailPath(svc.detail, "plist:");
|
|
186
|
+
if (!plistPath) {
|
|
187
|
+
failed.push(`${svc.label} (missing plist path)`);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
const dest = await cleanupLegacyLaunchdService({
|
|
191
|
+
label: svc.label,
|
|
192
|
+
plistPath,
|
|
193
|
+
});
|
|
194
|
+
removed.push(dest ? `${svc.label} -> ${dest}` : svc.label);
|
|
195
|
+
}
|
|
196
|
+
if (removed.length > 0) {
|
|
197
|
+
note(removed.map((line) => `- ${line}`).join("\n"), "Legacy gateway removed");
|
|
198
|
+
}
|
|
199
|
+
if (failed.length > 0) {
|
|
200
|
+
note(failed.map((line) => `- ${line}`).join("\n"), "Legacy gateway cleanup skipped");
|
|
201
|
+
}
|
|
202
|
+
if (removed.length > 0) {
|
|
203
|
+
runtime.log("Legacy gateway services removed. Installing OpenClaw gateway next.");
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
200
207
|
const cleanupHints = renderGatewayServiceCleanupHints();
|
|
201
208
|
if (cleanupHints.length > 0) {
|
|
202
209
|
note(cleanupHints.map((hint) => `- ${hint}`).join("\n"), "Cleanup hints");
|