@gguf/pigbot 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1206 -12
- package/LICENSE +2 -2
- package/README.md +347 -37
- package/assets/chrome-extension/README.md +5 -5
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -5
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +3 -3
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +6 -6
- package/dist/agents/agent-scope.js +1 -1
- package/dist/agents/anthropic-payload-log.js +2 -2
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cache-trace.js +5 -5
- package/dist/agents/channel-tools.js +31 -2
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +3 -3
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/identity.js +1 -1
- package/dist/agents/live-auth-keys.js +2 -2
- package/dist/agents/memory-search.js +5 -0
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +2 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-selection.js +1 -1
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +40 -8
- package/dist/agents/{moltbot-tools.js → openclaw-tools.js} +1 -1
- package/dist/agents/pi-embedded-helpers/errors.js +20 -0
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-helpers.js +1 -1
- package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
- package/dist/agents/pi-embedded-runner/run.js +31 -5
- package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
- package/dist/agents/pi-tools.js +5 -5
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/sandbox/browser.js +16 -11
- package/dist/agents/sandbox/constants.js +7 -7
- package/dist/agents/sandbox/docker.js +17 -14
- package/dist/agents/sandbox/runtime-status.js +1 -1
- package/dist/agents/session-transcript-repair.js +1 -1
- package/dist/agents/session-write-lock.js +2 -2
- package/dist/agents/skills/bundled-dir.js +1 -1
- package/dist/agents/skills/config.js +2 -1
- package/dist/agents/skills/frontmatter.js +11 -3
- package/dist/agents/skills/workspace.js +6 -6
- package/dist/agents/synthetic-models.js +8 -0
- package/dist/agents/system-prompt.js +21 -21
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +2 -2
- package/dist/agents/tools/browser-tool.js +5 -5
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/memory-tool.js +1 -1
- package/dist/agents/tools/sessions-send-tool.js +2 -2
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/transcript-policy.js +2 -1
- package/dist/agents/workspace.js +3 -3
- package/dist/auto-reply/commands-registry.data.js +1 -1
- package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
- package/dist/auto-reply/reply/bash-command.js +2 -2
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-session.js +4 -4
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +21 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply.js +1 -1
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/mentions.js +3 -2
- package/dist/auto-reply/reply/normalize-reply.js +12 -4
- package/dist/auto-reply/reply/reply-dispatcher.js +8 -1
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +2 -2
- package/dist/browser/chrome.js +13 -13
- package/dist/browser/chrome.profile-decoration.js +5 -5
- package/dist/browser/client-fetch.js +3 -3
- package/dist/browser/config.js +11 -11
- package/dist/browser/constants.js +3 -3
- package/dist/browser/control-service.js +1 -1
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/profiles.js +1 -1
- package/dist/browser/pw-tools-core.downloads.js +1 -1
- package/dist/browser/pw-tools-core.interactions.js +5 -5
- package/dist/browser/pw-tools-core.responses.js +1 -1
- package/dist/browser/routes/agent.act.js +2 -2
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/server-context.js +9 -9
- package/dist/browser/server.js +2 -2
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +24 -19
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +14 -18
- package/dist/canvas-host/server.js +33 -35
- package/dist/channels/plugins/catalog.js +7 -7
- package/dist/channels/plugins/helpers.js +2 -2
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +2 -2
- package/dist/channels/plugins/onboarding/slack.js +5 -5
- package/dist/channels/plugins/onboarding/telegram.js +3 -3
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
- package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
- package/dist/channels/registry.js +1 -1
- package/dist/cli/acp-cli.js +2 -2
- package/dist/cli/argv.js +2 -2
- package/dist/cli/banner.js +10 -11
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +1 -1
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +5 -5
- package/dist/cli/browser-cli-manage.js +4 -4
- package/dist/cli/browser-cli.js +3 -3
- package/dist/cli/channel-options.js +1 -1
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +4 -8
- package/dist/cli/command-format.js +3 -3
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +2 -2
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +11 -13
- package/dist/cli/daemon-cli/status.gather.js +2 -5
- package/dist/cli/daemon-cli/status.print.js +9 -17
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +20 -13
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +7 -5
- package/dist/cli/gateway-cli/register.js +12 -6
- package/dist/cli/gateway-cli/run.js +15 -14
- package/dist/cli/gateway-cli/shared.js +5 -5
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +36 -5
- package/dist/cli/models-cli.js +1 -1
- package/dist/cli/node-cli/daemon.js +3 -3
- package/dist/cli/node-cli/register.js +1 -1
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/nodes-cli/register.js +1 -1
- package/dist/cli/nodes-screen.js +1 -1
- package/dist/cli/pairing-cli.js +3 -3
- package/dist/cli/plugin-registry.js +2 -2
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/profile.js +9 -9
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +14 -11
- package/dist/cli/program/preaction.js +1 -1
- package/dist/cli/program/register.agent.js +15 -12
- package/dist/cli/program/register.configure.js +1 -1
- package/dist/cli/program/register.maintenance.js +4 -4
- package/dist/cli/program/register.message.js +5 -5
- package/dist/cli/program/register.onboard.js +5 -3
- package/dist/cli/program/register.setup.js +3 -3
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/program/register.subclis.js +7 -2
- package/dist/cli/route.js +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +4 -4
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +11 -9
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +48 -45
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +1 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -2
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +10 -0
- package/dist/commands/auth-choice.apply.api-providers.js +49 -1
- package/dist/commands/auth-choice.apply.openai.js +1 -1
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/auth-choice.preferred-provider.js +1 -0
- package/dist/commands/channels/shared.js +1 -1
- package/dist/commands/channels/status.js +1 -1
- package/dist/commands/chutes-oauth.js +1 -1
- package/dist/commands/configure.channels.js +2 -2
- package/dist/commands/configure.gateway.js +1 -1
- package/dist/commands/configure.wizard.js +21 -21
- package/dist/commands/daemon-install-helpers.js +2 -2
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +5 -5
- package/dist/commands/doctor-config-flow.js +64 -7
- package/dist/commands/doctor-format.js +5 -5
- package/dist/commands/doctor-gateway-daemon-flow.js +7 -4
- package/dist/commands/doctor-gateway-services.js +72 -65
- package/dist/commands/doctor-platform-notes.js +51 -9
- package/dist/commands/doctor-sandbox.js +4 -4
- package/dist/commands/doctor-security.js +7 -7
- package/dist/commands/doctor-state-integrity.js +9 -7
- package/dist/commands/doctor-state-migrations.js +1 -1
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +5 -5
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +5 -27
- package/dist/commands/doctor.js +11 -11
- package/dist/commands/gateway-status/helpers.js +2 -2
- package/dist/commands/gateway-status.js +9 -3
- package/dist/commands/health.js +2 -2
- package/dist/commands/models/auth.js +1 -1
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +4 -4
- package/dist/commands/node-daemon-install-helpers.js +1 -1
- package/dist/commands/onboard-auth.config-core.js +65 -1
- package/dist/commands/onboard-auth.credentials.js +14 -2
- package/dist/commands/onboard-auth.js +2 -2
- package/dist/commands/onboard-channels.js +5 -5
- package/dist/commands/onboard-helpers.js +9 -8
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +21 -1
- package/dist/commands/onboard-non-interactive/local.js +1 -1
- package/dist/commands/onboard-non-interactive/remote.js +1 -1
- package/dist/commands/onboard-non-interactive.js +1 -1
- package/dist/commands/onboard-remote.js +7 -3
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/reset.js +3 -3
- package/dist/commands/sandbox-display.js +1 -1
- package/dist/commands/sandbox-explain.js +2 -2
- package/dist/commands/setup.js +9 -7
- package/dist/commands/signal-install.js +2 -2
- package/dist/commands/status-all/diagnosis.js +1 -1
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status-all.js +5 -5
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.gateway-probe.js +2 -2
- package/dist/commands/status.scan.js +2 -2
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +8 -6
- package/dist/config/config.js +1 -1
- package/dist/config/io.js +13 -14
- package/dist/config/paths.js +107 -33
- package/dist/config/schema.js +14 -12
- package/dist/config/sessions/store.js +1 -1
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-runtime.js +1 -0
- package/dist/config/zod-schema.js +3 -2
- package/dist/config/zod-schema.session.js +6 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-BKPyesll.css +1 -0
- package/dist/control-ui/assets/{index-CxLFx0Ae.js → index-DFDgq9AK.js} +397 -366
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +7 -5
- package/dist/daemon/constants.js +19 -25
- package/dist/daemon/inspect.js +64 -28
- package/dist/daemon/launchd.js +7 -7
- package/dist/daemon/node-service.js +14 -14
- package/dist/daemon/paths.js +3 -3
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/schtasks.js +6 -6
- package/dist/daemon/service-env.js +25 -21
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/daemon/systemd.js +6 -6
- package/dist/discord/send.outbound.js +4 -4
- package/dist/discord/send.shared.js +32 -1
- package/dist/discord/targets.js +79 -0
- package/dist/entry.js +9 -8
- package/dist/gateway/auth.js +6 -3
- package/dist/gateway/call.js +3 -1
- package/dist/gateway/control-ui.js +4 -4
- package/dist/gateway/hooks.js +3 -1
- package/dist/gateway/http-utils.js +5 -3
- package/dist/gateway/openai-http.js +3 -3
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/protocol/client-info.js +5 -5
- package/dist/gateway/server/ws-connection/message-handler.js +1 -1
- package/dist/gateway/server-browser.js +2 -2
- package/dist/gateway/server-constants.js +2 -2
- package/dist/gateway/server-cron.js +1 -1
- package/dist/gateway/server-discovery-runtime.js +12 -4
- package/dist/gateway/server-discovery.js +7 -7
- package/dist/gateway/server-http.js +1 -1
- package/dist/gateway/server-methods/config.js +2 -2
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-reload-handlers.js +5 -5
- package/dist/gateway/server-runtime-config.js +3 -3
- package/dist/gateway/server-startup.js +6 -6
- package/dist/gateway/server.impl.js +8 -7
- package/dist/gateway/session-utils.fs.js +2 -1
- package/dist/gateway/test-helpers.mocks.js +8 -6
- package/dist/gateway/test-helpers.server.js +28 -28
- package/dist/gateway/tools-invoke-http.js +40 -4
- package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
- package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
- package/dist/hooks/bundled/command-logger/handler.js +2 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +30 -7
- package/dist/hooks/bundled/session-memory/handler.js +19 -12
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +2 -2
- package/dist/hooks/config.js +1 -1
- package/dist/hooks/frontmatter.js +11 -3
- package/dist/hooks/gmail-ops.js +1 -1
- package/dist/hooks/gmail-watcher.js +1 -1
- package/dist/hooks/hooks-status.js +2 -2
- package/dist/hooks/install.js +8 -8
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +1 -1
- package/dist/hooks/plugin-hooks.js +2 -2
- package/dist/hooks/workspace.js +9 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/index.js +4 -4
- package/dist/infra/bonjour-discovery.js +21 -17
- package/dist/infra/bonjour.js +10 -9
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/diagnostic-flags.js +1 -1
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/gateway-lock.js +3 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/{moltbot-root.js → openclaw-root.js} +2 -2
- package/dist/infra/outbound/outbound-session.js +18 -0
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +10 -9
- package/dist/infra/ports-format.js +3 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +33 -0
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/provider-usage.load.js +6 -0
- package/dist/infra/provider-usage.shared.js +2 -0
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +4 -4
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +4 -4
- package/dist/infra/ssh-config.js +2 -1
- package/dist/infra/ssh-tunnel.js +8 -1
- package/dist/infra/state-migrations.js +165 -6
- package/dist/infra/system-presence.js +1 -1
- package/dist/infra/tailscale.js +1 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +56 -33
- package/dist/infra/update-check.js +1 -1
- package/dist/infra/update-global.js +21 -11
- package/dist/infra/update-runner.js +7 -7
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/voicewake.js +1 -1
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +31 -14
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +9 -6
- package/dist/macos/relay-smoke.js +1 -1
- package/dist/macos/relay.js +6 -6
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +3 -3
- package/dist/media/input-files.js +1 -1
- package/dist/media/mime.js +3 -0
- package/dist/media-understanding/apply.js +278 -1
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +1 -1
- package/dist/memory/batch-gemini.js +2 -2
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings-gemini.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/memory/internal.js +49 -16
- package/dist/memory/manager-cache-key.js +1 -0
- package/dist/memory/manager.js +62 -10
- package/dist/memory/sync-memory-files.js +1 -1
- package/dist/node-host/runner.js +6 -6
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugins/bundled-dir.js +1 -1
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/config-state.js +60 -0
- package/dist/plugins/discovery.js +14 -12
- package/dist/plugins/install.js +8 -8
- package/dist/plugins/loader.js +4 -7
- package/dist/plugins/manifest-registry.js +4 -4
- package/dist/plugins/manifest.js +4 -7
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +2 -2
- package/dist/plugins/runtime.js +1 -1
- package/dist/plugins/status.js +2 -2
- package/dist/plugins/tools.js +2 -2
- package/dist/plugins/update.js +3 -3
- package/dist/providers/qwen-portal-oauth.js +1 -1
- package/dist/routing/resolve-route.js +2 -0
- package/dist/routing/session-key.js +5 -0
- package/dist/security/audit-extra.js +2 -2
- package/dist/security/audit.js +7 -7
- package/dist/shared/text/reasoning-tags.js +44 -3
- package/dist/slack/monitor/commands.js +4 -3
- package/dist/slack/monitor/slash.js +62 -59
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/accounts.js +1 -1
- package/dist/telegram/bot/delivery.js +26 -3
- package/dist/telegram/bot/helpers.js +13 -2
- package/dist/telegram/bot-message-context.js +8 -4
- package/dist/telegram/bot-message-dispatch.js +36 -5
- package/dist/telegram/bot-native-commands.js +50 -11
- package/dist/telegram/bot.js +7 -5
- package/dist/telegram/download.js +1 -1
- package/dist/telegram/monitor.js +19 -1
- package/dist/telegram/network-config.js +2 -2
- package/dist/telegram/network-errors.js +4 -0
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +12 -6
- package/dist/tui/gateway-chat.js +3 -3
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +12 -3
- package/dist/version.js +3 -3
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/broadcast.js +2 -0
- package/dist/web/auto-reply/monitor/process-message.js +1 -1
- package/dist/web/auto-reply/monitor.js +1 -1
- package/dist/web/login.js +1 -1
- package/dist/web/session.js +2 -2
- package/dist/wizard/onboarding.finalize.js +24 -21
- package/dist/wizard/onboarding.gateway-config.js +1 -1
- package/dist/wizard/onboarding.js +11 -11
- package/docs/CNAME +1 -1
- package/docs/_config.yml +3 -3
- package/docs/_layouts/default.html +9 -9
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +19 -19
- package/docs/automation/cron-vs-heartbeat.md +7 -7
- package/docs/automation/gmail-pubsub.md +25 -25
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +5 -5
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +6 -6
- package/docs/channels/bluebubbles.md +12 -12
- package/docs/channels/discord.md +15 -15
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/imessage.md +13 -13
- package/docs/channels/index.md +4 -4
- package/docs/channels/line.md +6 -6
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +14 -14
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +26 -26
- package/docs/channels/nextcloud-talk.md +7 -7
- package/docs/channels/nostr.md +9 -9
- package/docs/channels/signal.md +9 -9
- package/docs/channels/slack.md +16 -16
- package/docs/channels/telegram.md +23 -23
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +14 -14
- package/docs/channels/whatsapp.md +26 -26
- package/docs/channels/zalo.md +8 -8
- package/docs/channels/zalouser.md +12 -12
- package/docs/cli/acp.md +24 -24
- package/docs/cli/agent.md +6 -6
- package/docs/cli/agents.md +12 -12
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +24 -24
- package/docs/cli/channels.md +21 -21
- package/docs/cli/config.md +15 -15
- package/docs/cli/configure.md +6 -6
- package/docs/cli/cron.md +5 -5
- package/docs/cli/dashboard.md +4 -4
- package/docs/cli/devices.md +13 -13
- package/docs/cli/directory.md +12 -12
- package/docs/cli/dns.md +5 -6
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +11 -11
- package/docs/cli/gateway.md +26 -26
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +35 -35
- package/docs/cli/index.md +42 -42
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +12 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +15 -15
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -7
- package/docs/cli/pairing.md +4 -4
- package/docs/cli/plugins.md +16 -16
- package/docs/cli/reset.md +5 -5
- package/docs/cli/sandbox.md +28 -28
- package/docs/cli/security.md +6 -6
- package/docs/cli/sessions.md +5 -5
- package/docs/cli/setup.md +6 -6
- package/docs/cli/skills.md +6 -6
- package/docs/cli/status.md +7 -7
- package/docs/cli/system.md +6 -6
- package/docs/cli/tui.md +5 -5
- package/docs/cli/uninstall.md +5 -5
- package/docs/cli/update.md +20 -20
- package/docs/cli/voicecall.md +9 -9
- package/docs/cli/webhooks.md +5 -5
- package/docs/concepts/agent-loop.md +5 -5
- package/docs/concepts/agent-workspace.md +27 -27
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +2 -2
- package/docs/concepts/channel-routing.md +5 -5
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +7 -7
- package/docs/concepts/groups.md +5 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +41 -19
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +25 -24
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +31 -31
- package/docs/concepts/oauth.md +22 -22
- package/docs/concepts/presence.md +2 -2
- package/docs/concepts/retry.md +1 -1
- package/docs/concepts/session-pruning.md +1 -1
- package/docs/concepts/session-tool.md +4 -4
- package/docs/concepts/session.md +18 -16
- package/docs/concepts/streaming.md +3 -3
- package/docs/concepts/system-prompt.md +11 -11
- package/docs/concepts/timezone.md +2 -2
- package/docs/concepts/typebox.md +3 -3
- package/docs/concepts/typing-indicators.md +2 -2
- package/docs/concepts/usage-tracking.md +3 -3
- package/docs/date-time.md +2 -2
- package/docs/debug/node-issue.md +6 -6
- package/docs/debugging.md +18 -18
- package/docs/diagnostics/flags.md +7 -7
- package/docs/docs.json +21 -5
- package/docs/environment.md +7 -7
- package/docs/experiments/plans/cron-add-hardening.md +1 -1
- package/docs/experiments/plans/openresponses-gateway.md +2 -2
- package/docs/experiments/research/memory.md +12 -12
- package/docs/gateway/authentication.md +22 -22
- package/docs/gateway/background-process.md +2 -2
- package/docs/gateway/bonjour.md +25 -25
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +12 -12
- package/docs/gateway/configuration-examples.md +26 -25
- package/docs/gateway/configuration.md +155 -153
- package/docs/gateway/discovery.md +10 -10
- package/docs/gateway/doctor.md +27 -27
- package/docs/gateway/gateway-lock.md +1 -1
- package/docs/gateway/health.md +11 -11
- package/docs/gateway/heartbeat.md +5 -5
- package/docs/gateway/index.md +63 -63
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +24 -24
- package/docs/gateway/openai-http-api.md +12 -12
- package/docs/gateway/openresponses-http-api.md +12 -12
- package/docs/gateway/pairing.md +9 -9
- package/docs/gateway/protocol.md +4 -4
- package/docs/gateway/remote-gateway-readme.md +10 -10
- package/docs/gateway/remote.md +4 -4
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -7
- package/docs/gateway/sandboxing.md +6 -6
- package/docs/gateway/security/formal-verification.md +67 -14
- package/docs/gateway/security/index.md +56 -59
- package/docs/gateway/tailscale.md +10 -10
- package/docs/gateway/tools-invoke-http-api.md +5 -5
- package/docs/gateway/troubleshooting.md +112 -112
- package/docs/help/faq.md +338 -338
- package/docs/help/troubleshooting.md +16 -16
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +62 -62
- package/docs/index.md +45 -36
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +45 -45
- package/docs/install/index.md +33 -33
- package/docs/install/installer.md +24 -24
- package/docs/install/migrating.md +36 -36
- package/docs/install/nix.md +18 -18
- package/docs/install/node.md +4 -4
- package/docs/install/uninstall.md +29 -29
- package/docs/install/updating.md +51 -51
- package/docs/logging.md +59 -59
- package/docs/multi-agent-sandbox-tools.md +15 -15
- package/docs/network.md +1 -1
- package/docs/nodes/audio.md +2 -2
- package/docs/nodes/camera.md +18 -18
- package/docs/nodes/images.md +4 -4
- package/docs/nodes/index.md +57 -57
- package/docs/nodes/location-command.md +2 -2
- package/docs/nodes/media-understanding.md +5 -5
- package/docs/nodes/talk.md +1 -1
- package/docs/nodes/voicewake.md +3 -3
- package/docs/northflank.mdx +9 -9
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +14 -14
- package/docs/platforms/digitalocean.md +26 -26
- package/docs/platforms/exe-dev.md +68 -130
- package/docs/platforms/fly.md +33 -33
- package/docs/platforms/gcp.md +58 -58
- package/docs/platforms/hetzner.md +45 -45
- package/docs/platforms/index.md +8 -8
- package/docs/platforms/ios.md +13 -13
- package/docs/platforms/linux.md +11 -11
- package/docs/platforms/mac/bundled-gateway.md +14 -14
- package/docs/platforms/mac/canvas.md +14 -14
- package/docs/platforms/mac/child-process.md +5 -5
- package/docs/platforms/mac/dev-setup.md +10 -10
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +4 -4
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +1 -1
- package/docs/platforms/mac/release.md +18 -18
- package/docs/platforms/mac/remote.md +14 -14
- package/docs/platforms/mac/signing.md +7 -7
- package/docs/platforms/mac/skills.md +4 -4
- package/docs/platforms/mac/webchat.md +1 -1
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +16 -16
- package/docs/platforms/oracle.md +35 -35
- package/docs/platforms/raspberry-pi.md +22 -22
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +65 -65
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +12 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +16 -16
- package/docs/providers/claude-max-api-proxy.md +4 -4
- package/docs/providers/deepgram.md +2 -2
- package/docs/providers/github-copilot.md +11 -11
- package/docs/providers/glm.md +4 -4
- package/docs/providers/index.md +4 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +15 -4
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +6 -6
- package/docs/providers/opencode.md +3 -3
- package/docs/providers/openrouter.md +3 -3
- package/docs/providers/qwen.md +6 -6
- package/docs/providers/synthetic.md +4 -4
- package/docs/providers/venice.md +23 -23
- package/docs/providers/vercel-ai-gateway.md +4 -4
- package/docs/providers/xiaomi.md +62 -0
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +8 -8
- package/docs/refactor/exec-host.md +5 -5
- package/docs/refactor/plugin-sdk.md +12 -12
- package/docs/refactor/strict-config.md +11 -11
- package/docs/reference/AGENTS.default.md +17 -17
- package/docs/reference/RELEASING.md +29 -29
- package/docs/reference/api-usage-costs.md +6 -6
- package/docs/reference/device-models.md +7 -7
- package/docs/reference/rpc.md +3 -3
- package/docs/reference/session-management-compaction.md +19 -19
- package/docs/reference/templates/AGENTS.dev.md +1 -1
- package/docs/reference/templates/BOOT.md +1 -1
- package/docs/reference/templates/IDENTITY.md +1 -1
- package/docs/reference/templates/TOOLS.dev.md +1 -1
- package/docs/reference/templates/USER.dev.md +2 -2
- package/docs/reference/test.md +2 -2
- package/docs/reference/transcript-hygiene.md +1 -1
- package/docs/render.mdx +13 -13
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +66 -13
- package/docs/start/getting-started.md +29 -29
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +14 -14
- package/docs/start/onboarding.md +7 -7
- package/docs/start/{clawd.md → openclaw.md} +35 -35
- package/docs/start/pairing.md +10 -10
- package/docs/start/setup.md +22 -22
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +30 -30
- package/docs/testing.md +56 -56
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +16 -16
- package/docs/tools/browser-login.md +6 -6
- package/docs/tools/browser.md +126 -126
- package/docs/tools/chrome-extension.md +17 -17
- package/docs/tools/clawdhub.md +7 -7
- package/docs/tools/creating-skills.md +6 -6
- package/docs/tools/exec-approvals.md +5 -5
- package/docs/tools/exec.md +4 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +13 -13
- package/docs/tools/llm-task.md +2 -2
- package/docs/tools/lobster.md +13 -13
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +31 -31
- package/docs/tools/slash-commands.md +8 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +1 -1
- package/docs/web/control-ui.md +8 -8
- package/docs/web/dashboard.md +6 -6
- package/docs/web/index.md +5 -5
- package/extensions/bluebubbles/index.ts +3 -3
- package/extensions/bluebubbles/package.json +5 -5
- package/extensions/bluebubbles/src/accounts.ts +9 -9
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +6 -6
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +17 -17
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/config-schema.ts +1 -1
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +48 -48
- package/extensions/bluebubbles/src/monitor.ts +6 -6
- package/extensions/bluebubbles/src/onboarding.ts +9 -9
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/runtime.ts +1 -1
- package/extensions/bluebubbles/src/send.ts +2 -2
- package/extensions/copilot-proxy/README.md +3 -3
- package/extensions/copilot-proxy/index.ts +1 -1
- package/extensions/copilot-proxy/package.json +4 -4
- package/extensions/diagnostics-otel/index.ts +3 -3
- package/extensions/diagnostics-otel/package.json +4 -4
- package/extensions/diagnostics-otel/src/service.test.ts +15 -15
- package/extensions/diagnostics-otel/src/service.ts +85 -85
- package/extensions/discord/index.ts +3 -3
- package/extensions/discord/package.json +4 -4
- package/extensions/discord/src/channel.ts +1 -1
- package/extensions/discord/src/runtime.ts +1 -1
- package/extensions/google-antigravity-auth/README.md +3 -3
- package/extensions/google-antigravity-auth/index.ts +2 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +5 -5
- package/extensions/google-gemini-cli-auth/index.ts +3 -3
- package/extensions/google-gemini-cli-auth/oauth.ts +4 -4
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/node_modules/.bin/openclaw +16 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/googlechat/package.json +7 -7
- package/extensions/googlechat/src/accounts.ts +9 -9
- package/extensions/googlechat/src/actions.ts +8 -8
- package/extensions/googlechat/src/api.ts +1 -1
- package/extensions/googlechat/src/channel.ts +23 -23
- package/extensions/googlechat/src/monitor.ts +9 -9
- package/extensions/googlechat/src/onboarding.ts +11 -11
- package/extensions/googlechat/src/runtime.ts +1 -1
- package/extensions/googlechat/src/types.config.ts +1 -1
- package/extensions/imessage/index.ts +3 -3
- package/extensions/imessage/package.json +4 -4
- package/extensions/imessage/src/channel.ts +1 -1
- package/extensions/imessage/src/runtime.ts +1 -1
- package/extensions/line/index.ts +3 -3
- package/extensions/line/node_modules/.bin/openclaw +16 -0
- package/extensions/line/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/line/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/line/package.json +6 -6
- package/extensions/line/src/card-command.ts +3 -3
- package/extensions/line/src/channel.logout.test.ts +4 -4
- package/extensions/line/src/channel.sendPayload.test.ts +8 -8
- package/extensions/line/src/channel.ts +5 -5
- package/extensions/line/src/runtime.ts +1 -1
- package/extensions/llm-task/README.md +4 -4
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +4 -4
- package/extensions/llm-task/src/llm-task-tool.ts +6 -6
- package/extensions/lobster/README.md +7 -7
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +7 -7
- package/extensions/lobster/src/lobster-tool.ts +2 -2
- package/extensions/matrix/CHANGELOG.md +14 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +0 -13
- package/extensions/matrix/node_modules/.bin/openclaw +16 -0
- package/extensions/matrix/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/matrix/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/matrix/package.json +6 -6
- package/extensions/matrix/src/actions.ts +1 -1
- package/extensions/matrix/src/channel.directory.test.ts +1 -1
- package/extensions/matrix/src/channel.ts +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -1
- package/extensions/matrix/src/directory-live.ts +1 -1
- package/extensions/matrix/src/group-mentions.ts +1 -1
- package/extensions/matrix/src/matrix/accounts.ts +1 -1
- package/extensions/matrix/src/matrix/actions/client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +1 -1
- package/extensions/matrix/src/matrix/deps.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +1 -1
- package/extensions/matrix/src/matrix/send.test.ts +1 -1
- package/extensions/matrix/src/matrix/send.ts +1 -1
- package/extensions/matrix/src/onboarding.ts +2 -2
- package/extensions/matrix/src/outbound.ts +1 -1
- package/extensions/matrix/src/resolve-targets.ts +1 -1
- package/extensions/matrix/src/runtime.ts +1 -1
- package/extensions/matrix/src/tool-actions.ts +1 -1
- package/extensions/mattermost/index.ts +3 -3
- package/extensions/mattermost/package.json +5 -5
- package/extensions/mattermost/src/channel.ts +1 -1
- package/extensions/mattermost/src/config-schema.ts +1 -1
- package/extensions/mattermost/src/group-mentions.ts +1 -1
- package/extensions/mattermost/src/mattermost/accounts.ts +9 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
- package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
- package/extensions/mattermost/src/onboarding-helpers.ts +4 -4
- package/extensions/mattermost/src/onboarding.ts +4 -4
- package/extensions/mattermost/src/runtime.ts +1 -1
- package/extensions/mattermost/src/types.ts +1 -1
- package/extensions/memory-core/index.ts +3 -3
- package/extensions/memory-core/node_modules/.bin/openclaw +16 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/memory-core/package.json +6 -6
- package/extensions/memory-lancedb/config.ts +26 -2
- package/extensions/memory-lancedb/index.test.ts +3 -3
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +0 -13
- package/extensions/memory-lancedb/{clawdbot.plugin.json → openclaw.plugin.json} +1 -1
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/msteams/CHANGELOG.md +12 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/node_modules/.bin/openclaw +16 -0
- package/extensions/msteams/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/msteams/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/msteams/package.json +6 -6
- package/extensions/msteams/src/attachments.test.ts +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +3 -3
- package/extensions/msteams/src/conversation-store-fs.test.ts +6 -5
- package/extensions/msteams/src/directory-live.ts +1 -1
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/media-helpers.ts +1 -1
- package/extensions/msteams/src/messenger.test.ts +1 -1
- package/extensions/msteams/src/messenger.ts +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +3 -3
- package/extensions/msteams/src/onboarding.ts +11 -11
- package/extensions/msteams/src/outbound.ts +1 -1
- package/extensions/msteams/src/policy.test.ts +1 -1
- package/extensions/msteams/src/policy.ts +2 -2
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +6 -5
- package/extensions/msteams/src/polls.ts +9 -8
- package/extensions/msteams/src/probe.test.ts +1 -1
- package/extensions/msteams/src/probe.ts +1 -1
- package/extensions/msteams/src/reply-dispatcher.ts +3 -3
- package/extensions/msteams/src/runtime.ts +1 -1
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +5 -5
- package/extensions/msteams/src/token.ts +1 -1
- package/extensions/nextcloud-talk/index.ts +3 -3
- package/extensions/nextcloud-talk/package.json +5 -5
- package/extensions/nextcloud-talk/src/accounts.ts +2 -2
- package/extensions/nextcloud-talk/src/channel.ts +8 -8
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
- package/extensions/nextcloud-talk/src/inbound.ts +8 -8
- package/extensions/nextcloud-talk/src/monitor.ts +1 -1
- package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
- package/extensions/nextcloud-talk/src/policy.ts +2 -2
- package/extensions/nextcloud-talk/src/room-info.ts +1 -1
- package/extensions/nextcloud-talk/src/runtime.ts +1 -1
- package/extensions/nextcloud-talk/src/types.ts +1 -1
- package/extensions/nostr/CHANGELOG.md +9 -4
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/node_modules/.bin/openclaw +16 -0
- package/extensions/nostr/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/nostr/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/nostr/package.json +6 -6
- package/extensions/nostr/src/channel.ts +2 -2
- package/extensions/nostr/src/config-schema.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +9 -8
- package/extensions/nostr/src/runtime.ts +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/open-prose/package.json +3 -3
- package/extensions/open-prose/skills/prose/SKILL.md +5 -5
- package/extensions/open-prose/skills/prose/prose.md +4 -4
- package/extensions/qwen-portal-auth/README.md +3 -3
- package/extensions/qwen-portal-auth/index.ts +1 -1
- package/extensions/signal/index.ts +3 -3
- package/extensions/signal/package.json +4 -4
- package/extensions/signal/src/channel.ts +1 -1
- package/extensions/signal/src/runtime.ts +1 -1
- package/extensions/slack/index.ts +3 -3
- package/extensions/slack/package.json +4 -4
- package/extensions/slack/src/channel.ts +1 -1
- package/extensions/slack/src/runtime.ts +1 -1
- package/extensions/telegram/index.ts +3 -3
- package/extensions/telegram/package.json +4 -4
- package/extensions/telegram/src/channel.ts +3 -3
- package/extensions/telegram/src/runtime.ts +1 -1
- package/extensions/tlon/README.md +3 -3
- package/extensions/tlon/index.ts +3 -3
- package/extensions/tlon/package.json +5 -5
- package/extensions/tlon/src/channel.ts +15 -15
- package/extensions/tlon/src/config-schema.ts +1 -1
- package/extensions/tlon/src/monitor/discovery.ts +1 -1
- package/extensions/tlon/src/monitor/history.ts +1 -1
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +4 -4
- package/extensions/tlon/src/runtime.ts +1 -1
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/twitch/CHANGELOG.md +6 -1
- package/extensions/twitch/README.md +8 -8
- package/extensions/twitch/index.ts +3 -3
- package/extensions/twitch/node_modules/.bin/openclaw +16 -0
- package/extensions/twitch/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/twitch/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/twitch/package.json +5 -5
- package/extensions/twitch/src/actions.ts +1 -1
- package/extensions/twitch/src/config-schema.ts +1 -1
- package/extensions/twitch/src/config.ts +3 -3
- package/extensions/twitch/src/monitor.ts +3 -3
- package/extensions/twitch/src/onboarding.test.ts +1 -1
- package/extensions/twitch/src/onboarding.ts +13 -13
- package/extensions/twitch/src/outbound.test.ts +2 -2
- package/extensions/twitch/src/outbound.ts +2 -2
- package/extensions/twitch/src/plugin.test.ts +2 -2
- package/extensions/twitch/src/plugin.ts +9 -9
- package/extensions/twitch/src/runtime.ts +1 -1
- package/extensions/twitch/src/send.test.ts +2 -2
- package/extensions/twitch/src/send.ts +5 -5
- package/extensions/twitch/src/token.test.ts +12 -12
- package/extensions/twitch/src/token.ts +7 -7
- package/extensions/twitch/src/twitch-client.ts +4 -4
- package/extensions/twitch/src/types.ts +3 -3
- package/extensions/twitch/src/utils/markdown.ts +1 -1
- package/extensions/voice-call/CHANGELOG.md +16 -11
- package/extensions/voice-call/README.md +16 -16
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/src/cli.ts +16 -4
- package/extensions/voice-call/src/core-bridge.ts +5 -5
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/manager.ts +17 -5
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/whatsapp/index.ts +3 -3
- package/extensions/whatsapp/package.json +4 -4
- package/extensions/whatsapp/src/channel.ts +1 -1
- package/extensions/whatsapp/src/runtime.ts +1 -1
- package/extensions/zalo/CHANGELOG.md +14 -9
- package/extensions/zalo/README.md +4 -4
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/node_modules/.bin/openclaw +16 -0
- package/extensions/zalo/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalo/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalo/package.json +6 -6
- package/extensions/zalo/src/accounts.ts +9 -9
- package/extensions/zalo/src/actions.ts +6 -6
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +20 -20
- package/extensions/zalo/src/config-schema.ts +1 -1
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +27 -27
- package/extensions/zalo/src/runtime.ts +1 -1
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalo/src/status-issues.ts +1 -1
- package/extensions/zalo/src/token.ts +1 -1
- package/extensions/zalouser/CHANGELOG.md +9 -4
- package/extensions/zalouser/README.md +18 -18
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/node_modules/.bin/openclaw +16 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalouser/package.json +6 -6
- package/extensions/zalouser/src/accounts.ts +10 -10
- package/extensions/zalouser/src/channel.ts +27 -27
- package/extensions/zalouser/src/config-schema.ts +1 -1
- package/extensions/zalouser/src/monitor.ts +5 -5
- package/extensions/zalouser/src/onboarding.ts +32 -32
- package/extensions/zalouser/src/runtime.ts +1 -1
- package/extensions/zalouser/src/status-issues.ts +2 -2
- package/openclaw.mjs +14 -0
- package/package.json +35 -25
- package/scripts/postinstall.js +1 -0
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +1 -1
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/bird/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +1 -1
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +6 -6
- package/skills/clawdhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +5 -5
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/food-order/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +1 -1
- package/skills/local-places/SKILL.md +1 -1
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-banana-pro/SKILL.md +3 -3
- package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +1 -1
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +1 -1
- package/skills/sherpa-onnx-tts/SKILL.md +2 -2
- package/skills/slack/SKILL.md +4 -4
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +7 -7
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/assets/images/icon.png +0 -0
- package/dist/control-ui/assets/index-BAFzd9IE.css +0 -1
- package/dist/control-ui/assets/index-CxLFx0Ae.js.map +0 -1
- package/dist/control-ui/pixel_pig_icon.png +0 -0
- package/dist/daemon/legacy.js +0 -44
- package/dist/extension.js +0 -70
- /package/dist/config/{types.clawdbot.js → types.openclaw.js} +0 -0
- /package/docs/{whatsapp-clawd.jpg → whatsapp-openclaw.jpg} +0 -0
- /package/extensions/bluebubbles/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/discord/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/googlechat/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/imessage/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/line/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/llm-task/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/lobster/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/matrix/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/mattermost/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/memory-core/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/msteams/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nostr/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/open-prose/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/signal/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/slack/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/telegram/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/tlon/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/twitch/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/voice-call/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/whatsapp/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalo/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalouser/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
package/dist/infra/tailscale.js
CHANGED
|
@@ -263,7 +263,7 @@ export async function ensureFunnel(port, exec = runExec, runtime = defaultRuntim
|
|
|
263
263
|
console.error(warn("Tailscale client/server version mismatch detected; try updating tailscale/tailscaled."));
|
|
264
264
|
}
|
|
265
265
|
runtime.error("Failed to enable Tailscale Funnel. Is it allowed on your tailnet?");
|
|
266
|
-
runtime.error(info(`Tip: Funnel is optional for
|
|
266
|
+
runtime.error(info(`Tip: Funnel is optional for OpenClaw. You can keep running the web gateway without it: \`${formatCliCommand("openclaw gateway")}\``));
|
|
267
267
|
if (shouldLogVerbose()) {
|
|
268
268
|
const rich = isRich();
|
|
269
269
|
if (stdout.trim()) {
|
|
@@ -36,7 +36,7 @@ async function generateSelfSignedCert(params) {
|
|
|
36
36
|
"-out",
|
|
37
37
|
params.certPath,
|
|
38
38
|
"-subj",
|
|
39
|
-
"/CN=
|
|
39
|
+
"/CN=openclaw-gateway",
|
|
40
40
|
]);
|
|
41
41
|
await fs.chmod(params.keyPath, 0o600).catch(() => { });
|
|
42
42
|
await fs.chmod(params.certPath, 0o600).catch(() => { });
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import process from "node:process";
|
|
2
|
-
import { formatUncaughtError } from "./errors.js";
|
|
2
|
+
import { extractErrorCode, formatUncaughtError } from "./errors.js";
|
|
3
3
|
const handlers = new Set();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (name === "AbortError")
|
|
13
|
-
return true;
|
|
14
|
-
// Check for "This operation was aborted" message from Node's undici
|
|
15
|
-
const message = "message" in err && typeof err.message === "string" ? err.message : "";
|
|
16
|
-
if (message === "This operation was aborted")
|
|
17
|
-
return true;
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
4
|
+
const FATAL_ERROR_CODES = new Set([
|
|
5
|
+
"ERR_OUT_OF_MEMORY",
|
|
6
|
+
"ERR_SCRIPT_EXECUTION_TIMEOUT",
|
|
7
|
+
"ERR_WORKER_OUT_OF_MEMORY",
|
|
8
|
+
"ERR_WORKER_UNCAUGHT_EXCEPTION",
|
|
9
|
+
"ERR_WORKER_INITIALIZATION_FAILED",
|
|
10
|
+
]);
|
|
11
|
+
const CONFIG_ERROR_CODES = new Set(["INVALID_CONFIG", "MISSING_API_KEY", "MISSING_CREDENTIALS"]);
|
|
20
12
|
// Network error codes that indicate transient failures (shouldn't crash the gateway)
|
|
21
13
|
const TRANSIENT_NETWORK_CODES = new Set([
|
|
22
14
|
"ECONNRESET",
|
|
@@ -30,21 +22,47 @@ const TRANSIENT_NETWORK_CODES = new Set([
|
|
|
30
22
|
"ENETUNREACH",
|
|
31
23
|
"EAI_AGAIN",
|
|
32
24
|
"UND_ERR_CONNECT_TIMEOUT",
|
|
25
|
+
"UND_ERR_DNS_RESOLVE_FAILED",
|
|
26
|
+
"UND_ERR_CONNECT",
|
|
33
27
|
"UND_ERR_SOCKET",
|
|
34
28
|
"UND_ERR_HEADERS_TIMEOUT",
|
|
35
29
|
"UND_ERR_BODY_TIMEOUT",
|
|
36
30
|
]);
|
|
37
|
-
function getErrorCode(err) {
|
|
38
|
-
if (!err || typeof err !== "object")
|
|
39
|
-
return undefined;
|
|
40
|
-
const code = err.code;
|
|
41
|
-
return typeof code === "string" ? code : undefined;
|
|
42
|
-
}
|
|
43
31
|
function getErrorCause(err) {
|
|
44
32
|
if (!err || typeof err !== "object")
|
|
45
33
|
return undefined;
|
|
46
34
|
return err.cause;
|
|
47
35
|
}
|
|
36
|
+
function extractErrorCodeWithCause(err) {
|
|
37
|
+
const direct = extractErrorCode(err);
|
|
38
|
+
if (direct)
|
|
39
|
+
return direct;
|
|
40
|
+
return extractErrorCode(getErrorCause(err));
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Checks if an error is an AbortError.
|
|
44
|
+
* These are typically intentional cancellations (e.g., during shutdown) and shouldn't crash.
|
|
45
|
+
*/
|
|
46
|
+
export function isAbortError(err) {
|
|
47
|
+
if (!err || typeof err !== "object")
|
|
48
|
+
return false;
|
|
49
|
+
const name = "name" in err ? String(err.name) : "";
|
|
50
|
+
if (name === "AbortError")
|
|
51
|
+
return true;
|
|
52
|
+
// Check for "This operation was aborted" message from Node's undici
|
|
53
|
+
const message = "message" in err && typeof err.message === "string" ? err.message : "";
|
|
54
|
+
if (message === "This operation was aborted")
|
|
55
|
+
return true;
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
function isFatalError(err) {
|
|
59
|
+
const code = extractErrorCodeWithCause(err);
|
|
60
|
+
return code !== undefined && FATAL_ERROR_CODES.has(code);
|
|
61
|
+
}
|
|
62
|
+
function isConfigError(err) {
|
|
63
|
+
const code = extractErrorCodeWithCause(err);
|
|
64
|
+
return code !== undefined && CONFIG_ERROR_CODES.has(code);
|
|
65
|
+
}
|
|
48
66
|
/**
|
|
49
67
|
* Checks if an error is a transient network error that shouldn't crash the gateway.
|
|
50
68
|
* These are typically temporary connectivity issues that will resolve on their own.
|
|
@@ -52,17 +70,14 @@ function getErrorCause(err) {
|
|
|
52
70
|
export function isTransientNetworkError(err) {
|
|
53
71
|
if (!err)
|
|
54
72
|
return false;
|
|
55
|
-
|
|
56
|
-
const code = getErrorCode(err);
|
|
73
|
+
const code = extractErrorCodeWithCause(err);
|
|
57
74
|
if (code && TRANSIENT_NETWORK_CODES.has(code))
|
|
58
75
|
return true;
|
|
59
76
|
// "fetch failed" TypeError from undici (Node's native fetch)
|
|
60
77
|
if (err instanceof TypeError && err.message === "fetch failed") {
|
|
61
78
|
const cause = getErrorCause(err);
|
|
62
|
-
// The cause often contains the actual network error
|
|
63
79
|
if (cause)
|
|
64
80
|
return isTransientNetworkError(cause);
|
|
65
|
-
// Even without a cause, "fetch failed" is typically a network issue
|
|
66
81
|
return true;
|
|
67
82
|
}
|
|
68
83
|
// Check the cause chain recursively
|
|
@@ -89,7 +104,7 @@ export function isUnhandledRejectionHandled(reason) {
|
|
|
89
104
|
return true;
|
|
90
105
|
}
|
|
91
106
|
catch (err) {
|
|
92
|
-
console.error("[
|
|
107
|
+
console.error("[openclaw] Unhandled rejection handler failed:", err instanceof Error ? (err.stack ?? err.message) : err);
|
|
93
108
|
}
|
|
94
109
|
}
|
|
95
110
|
return false;
|
|
@@ -101,16 +116,24 @@ export function installUnhandledRejectionHandler() {
|
|
|
101
116
|
// AbortError is typically an intentional cancellation (e.g., during shutdown)
|
|
102
117
|
// Log it but don't crash - these are expected during graceful shutdown
|
|
103
118
|
if (isAbortError(reason)) {
|
|
104
|
-
console.warn("[
|
|
119
|
+
console.warn("[openclaw] Suppressed AbortError:", formatUncaughtError(reason));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (isFatalError(reason)) {
|
|
123
|
+
console.error("[openclaw] FATAL unhandled rejection:", formatUncaughtError(reason));
|
|
124
|
+
process.exit(1);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
if (isConfigError(reason)) {
|
|
128
|
+
console.error("[openclaw] CONFIGURATION ERROR - requires fix:", formatUncaughtError(reason));
|
|
129
|
+
process.exit(1);
|
|
105
130
|
return;
|
|
106
131
|
}
|
|
107
|
-
// Transient network errors (fetch failed, connection reset, etc.) shouldn't crash
|
|
108
|
-
// These are temporary connectivity issues that will resolve on their own
|
|
109
132
|
if (isTransientNetworkError(reason)) {
|
|
110
|
-
console.
|
|
133
|
+
console.warn("[openclaw] Non-fatal unhandled rejection (continuing):", formatUncaughtError(reason));
|
|
111
134
|
return;
|
|
112
135
|
}
|
|
113
|
-
console.error("[
|
|
136
|
+
console.error("[openclaw] Unhandled promise rejection:", formatUncaughtError(reason));
|
|
114
137
|
process.exit(1);
|
|
115
138
|
});
|
|
116
139
|
}
|
|
@@ -214,7 +214,7 @@ export async function fetchNpmTagVersion(params) {
|
|
|
214
214
|
const timeoutMs = params?.timeoutMs ?? 3500;
|
|
215
215
|
const tag = params.tag;
|
|
216
216
|
try {
|
|
217
|
-
const res = await fetchWithTimeout(`https://registry.npmjs.org/
|
|
217
|
+
const res = await fetchWithTimeout(`https://registry.npmjs.org/openclaw/${encodeURIComponent(tag)}`, timeoutMs);
|
|
218
218
|
if (!res.ok) {
|
|
219
219
|
return { tag, version: null, error: `HTTP ${res.status}` };
|
|
220
220
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
const PRIMARY_PACKAGE_NAME = "openclaw";
|
|
5
|
+
const ALL_PACKAGE_NAMES = [PRIMARY_PACKAGE_NAME];
|
|
4
6
|
async function pathExists(targetPath) {
|
|
5
7
|
try {
|
|
6
8
|
await fs.access(targetPath);
|
|
@@ -36,7 +38,7 @@ export async function resolveGlobalPackageRoot(manager, runCommand, timeoutMs) {
|
|
|
36
38
|
const root = await resolveGlobalRoot(manager, runCommand, timeoutMs);
|
|
37
39
|
if (!root)
|
|
38
40
|
return null;
|
|
39
|
-
return path.join(root,
|
|
41
|
+
return path.join(root, PRIMARY_PACKAGE_NAME);
|
|
40
42
|
}
|
|
41
43
|
export async function detectGlobalInstallManagerForRoot(runCommand, pkgRoot, timeoutMs) {
|
|
42
44
|
const pkgReal = await tryRealpath(pkgRoot);
|
|
@@ -52,15 +54,19 @@ export async function detectGlobalInstallManagerForRoot(runCommand, pkgRoot, tim
|
|
|
52
54
|
if (!globalRoot)
|
|
53
55
|
continue;
|
|
54
56
|
const globalReal = await tryRealpath(globalRoot);
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
for (const name of ALL_PACKAGE_NAMES) {
|
|
58
|
+
const expected = path.join(globalReal, name);
|
|
59
|
+
if (path.resolve(expected) === path.resolve(pkgReal))
|
|
60
|
+
return manager;
|
|
61
|
+
}
|
|
58
62
|
}
|
|
59
63
|
const bunGlobalRoot = resolveBunGlobalRoot();
|
|
60
64
|
const bunGlobalReal = await tryRealpath(bunGlobalRoot);
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
65
|
+
for (const name of ALL_PACKAGE_NAMES) {
|
|
66
|
+
const bunExpected = path.join(bunGlobalReal, name);
|
|
67
|
+
if (path.resolve(bunExpected) === path.resolve(pkgReal))
|
|
68
|
+
return "bun";
|
|
69
|
+
}
|
|
64
70
|
return null;
|
|
65
71
|
}
|
|
66
72
|
export async function detectGlobalInstallManagerByPresence(runCommand, timeoutMs) {
|
|
@@ -68,12 +74,16 @@ export async function detectGlobalInstallManagerByPresence(runCommand, timeoutMs
|
|
|
68
74
|
const root = await resolveGlobalRoot(manager, runCommand, timeoutMs);
|
|
69
75
|
if (!root)
|
|
70
76
|
continue;
|
|
71
|
-
|
|
72
|
-
|
|
77
|
+
for (const name of ALL_PACKAGE_NAMES) {
|
|
78
|
+
if (await pathExists(path.join(root, name)))
|
|
79
|
+
return manager;
|
|
80
|
+
}
|
|
73
81
|
}
|
|
74
82
|
const bunRoot = resolveBunGlobalRoot();
|
|
75
|
-
|
|
76
|
-
|
|
83
|
+
for (const name of ALL_PACKAGE_NAMES) {
|
|
84
|
+
if (await pathExists(path.join(bunRoot, name)))
|
|
85
|
+
return "bun";
|
|
86
|
+
}
|
|
77
87
|
return null;
|
|
78
88
|
}
|
|
79
89
|
export function globalInstallArgs(manager, spec) {
|
|
@@ -10,8 +10,8 @@ const DEFAULT_TIMEOUT_MS = 20 * 60_000;
|
|
|
10
10
|
const MAX_LOG_CHARS = 8000;
|
|
11
11
|
const PREFLIGHT_MAX_COMMITS = 10;
|
|
12
12
|
const START_DIRS = ["cwd", "argv1", "process"];
|
|
13
|
-
const DEFAULT_PACKAGE_NAME = "
|
|
14
|
-
const CORE_PACKAGE_NAMES = new Set([DEFAULT_PACKAGE_NAME
|
|
13
|
+
const DEFAULT_PACKAGE_NAME = "openclaw";
|
|
14
|
+
const CORE_PACKAGE_NAMES = new Set([DEFAULT_PACKAGE_NAME]);
|
|
15
15
|
function normalizeDir(value) {
|
|
16
16
|
if (!value)
|
|
17
17
|
return null;
|
|
@@ -212,8 +212,8 @@ function normalizeTag(tag) {
|
|
|
212
212
|
const trimmed = tag?.trim();
|
|
213
213
|
if (!trimmed)
|
|
214
214
|
return "latest";
|
|
215
|
-
if (trimmed.startsWith("
|
|
216
|
-
return trimmed.slice("
|
|
215
|
+
if (trimmed.startsWith("openclaw@"))
|
|
216
|
+
return trimmed.slice("openclaw@".length);
|
|
217
217
|
if (trimmed.startsWith(`${DEFAULT_PACKAGE_NAME}@`)) {
|
|
218
218
|
return trimmed.slice(`${DEFAULT_PACKAGE_NAME}@`.length);
|
|
219
219
|
}
|
|
@@ -257,7 +257,7 @@ export async function runGatewayUpdate(opts = {}) {
|
|
|
257
257
|
status: "error",
|
|
258
258
|
mode: "unknown",
|
|
259
259
|
root: gitRoot,
|
|
260
|
-
reason: "not-
|
|
260
|
+
reason: "not-openclaw-root",
|
|
261
261
|
steps: [],
|
|
262
262
|
durationMs: Date.now() - startedAt,
|
|
263
263
|
};
|
|
@@ -370,7 +370,7 @@ export async function runGatewayUpdate(opts = {}) {
|
|
|
370
370
|
};
|
|
371
371
|
}
|
|
372
372
|
const manager = await detectPackageManager(gitRoot);
|
|
373
|
-
const preflightRoot = await fs.mkdtemp(path.join(os.tmpdir(), "
|
|
373
|
+
const preflightRoot = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-update-preflight-"));
|
|
374
374
|
const worktreeDir = path.join(preflightRoot, "worktree");
|
|
375
375
|
const worktreeStep = await runStep(step("preflight worktree", ["git", "-C", gitRoot, "worktree", "add", "--detach", worktreeDir, upstreamSha], gitRoot));
|
|
376
376
|
steps.push(worktreeStep);
|
|
@@ -508,7 +508,7 @@ export async function runGatewayUpdate(opts = {}) {
|
|
|
508
508
|
// (ui:build regenerates assets with new hashes, which would block future updates)
|
|
509
509
|
const restoreUiStep = await runStep(step("restore control-ui", ["git", "-C", gitRoot, "checkout", "--", "dist/control-ui/"], gitRoot));
|
|
510
510
|
steps.push(restoreUiStep);
|
|
511
|
-
const doctorStep = await runStep(step("
|
|
511
|
+
const doctorStep = await runStep(step("openclaw doctor", managerScriptArgs(manager, "openclaw", ["doctor", "--non-interactive"]), gitRoot, { OPENCLAW_UPDATE_IN_PROGRESS: "1" }));
|
|
512
512
|
steps.push(doctorStep);
|
|
513
513
|
const failedStep = steps.find((s) => s.exitCode !== 0);
|
|
514
514
|
const afterShaStep = await runStep(step("git rev-parse HEAD (after)", ["git", "-C", gitRoot, "rev-parse", "HEAD"], gitRoot));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { resolveStateDir } from "../config/paths.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveOpenClawPackageRoot } from "./openclaw-root.js";
|
|
5
5
|
import { compareSemverStrings, resolveNpmChannelTag, checkUpdateStatus } from "./update-check.js";
|
|
6
6
|
import { normalizeUpdateChannel, DEFAULT_PACKAGE_CHANNEL } from "./update-channels.js";
|
|
7
7
|
import { VERSION } from "../version.js";
|
|
@@ -44,7 +44,7 @@ export async function runGatewayUpdateCheck(params) {
|
|
|
44
44
|
if (now - lastCheckedAt < UPDATE_CHECK_INTERVAL_MS)
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
|
-
const root = await
|
|
47
|
+
const root = await resolveOpenClawPackageRoot({
|
|
48
48
|
moduleUrl: import.meta.url,
|
|
49
49
|
argv1: process.argv[1],
|
|
50
50
|
cwd: process.cwd(),
|
|
@@ -74,7 +74,7 @@ export async function runGatewayUpdateCheck(params) {
|
|
|
74
74
|
if (cmp != null && cmp < 0) {
|
|
75
75
|
const shouldNotify = state.lastNotifiedVersion !== resolved.version || state.lastNotifiedTag !== tag;
|
|
76
76
|
if (shouldNotify) {
|
|
77
|
-
params.log.info(`update available (${tag}): v${resolved.version} (current v${VERSION}). Run: ${formatCliCommand("
|
|
77
|
+
params.log.info(`update available (${tag}): v${resolved.version} (current v${VERSION}). Run: ${formatCliCommand("openclaw update")}`);
|
|
78
78
|
nextState.lastNotifiedVersion = resolved.version;
|
|
79
79
|
nextState.lastNotifiedTag = tag;
|
|
80
80
|
}
|
package/dist/infra/voicewake.js
CHANGED
|
@@ -2,7 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { resolveStateDir } from "../config/paths.js";
|
|
5
|
-
const DEFAULT_TRIGGERS = ["
|
|
5
|
+
const DEFAULT_TRIGGERS = ["openclaw", "claude", "computer"];
|
|
6
6
|
function resolvePath(baseDir) {
|
|
7
7
|
const root = baseDir ?? resolveStateDir();
|
|
8
8
|
return path.join(root, "settings", "voicewake.json");
|
package/dist/infra/warnings.js
CHANGED
|
@@ -2,10 +2,22 @@ import fs from "node:fs";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { CONFIG_DIR, ensureDir } from "../utils.js";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export function normalizeWideAreaDomain(raw) {
|
|
6
|
+
const trimmed = raw?.trim();
|
|
7
|
+
if (!trimmed)
|
|
8
|
+
return null;
|
|
9
|
+
return trimmed.endsWith(".") ? trimmed : `${trimmed}.`;
|
|
10
|
+
}
|
|
11
|
+
export function resolveWideAreaDiscoveryDomain(params) {
|
|
12
|
+
const env = params?.env ?? process.env;
|
|
13
|
+
const candidate = params?.configDomain ?? env.OPENCLAW_WIDE_AREA_DOMAIN ?? null;
|
|
14
|
+
return normalizeWideAreaDomain(candidate);
|
|
15
|
+
}
|
|
16
|
+
function zoneFilenameForDomain(domain) {
|
|
17
|
+
return `${domain.replace(/\.$/, "")}.db`;
|
|
18
|
+
}
|
|
19
|
+
export function getWideAreaZonePath(domain) {
|
|
20
|
+
return path.join(CONFIG_DIR, "dns", zoneFilenameForDomain(domain));
|
|
9
21
|
}
|
|
10
22
|
function dnsLabel(raw, fallback) {
|
|
11
23
|
const normalized = raw
|
|
@@ -45,7 +57,7 @@ function extractSerial(zoneText) {
|
|
|
45
57
|
return Number.isFinite(parsed) ? parsed : null;
|
|
46
58
|
}
|
|
47
59
|
function extractContentHash(zoneText) {
|
|
48
|
-
const match = zoneText.match(/^\s*;\s*
|
|
60
|
+
const match = zoneText.match(/^\s*;\s*openclaw-content-hash:\s*(\S+)\s*$/m);
|
|
49
61
|
return match?.[1] ?? null;
|
|
50
62
|
}
|
|
51
63
|
function computeContentHash(body) {
|
|
@@ -58,9 +70,10 @@ function computeContentHash(body) {
|
|
|
58
70
|
return (h >>> 0).toString(16).padStart(8, "0");
|
|
59
71
|
}
|
|
60
72
|
function renderZone(opts) {
|
|
61
|
-
const hostname = os.hostname().split(".")[0] ?? "
|
|
62
|
-
const hostLabel = dnsLabel(opts.hostLabel ?? hostname, "
|
|
63
|
-
const instanceLabel = dnsLabel(opts.instanceLabel ?? `${hostname}-gateway`, "
|
|
73
|
+
const hostname = os.hostname().split(".")[0] ?? "openclaw";
|
|
74
|
+
const hostLabel = dnsLabel(opts.hostLabel ?? hostname, "openclaw");
|
|
75
|
+
const instanceLabel = dnsLabel(opts.instanceLabel ?? `${hostname}-gateway`, "openclaw-gw");
|
|
76
|
+
const domain = normalizeWideAreaDomain(opts.domain) ?? "local.";
|
|
64
77
|
const txt = [
|
|
65
78
|
`displayName=${opts.displayName.trim() || hostname}`,
|
|
66
79
|
`role=gateway`,
|
|
@@ -83,7 +96,7 @@ function renderZone(opts) {
|
|
|
83
96
|
txt.push(`cliPath=${opts.cliPath.trim()}`);
|
|
84
97
|
}
|
|
85
98
|
const records = [];
|
|
86
|
-
records.push(`$ORIGIN ${
|
|
99
|
+
records.push(`$ORIGIN ${domain}`);
|
|
87
100
|
records.push(`$TTL 60`);
|
|
88
101
|
const soaLine = `@ IN SOA ns1 hostmaster ${opts.serial} 7200 3600 1209600 60`;
|
|
89
102
|
records.push(soaLine);
|
|
@@ -93,21 +106,25 @@ function renderZone(opts) {
|
|
|
93
106
|
if (opts.tailnetIPv6) {
|
|
94
107
|
records.push(`${hostLabel} IN AAAA ${opts.tailnetIPv6}`);
|
|
95
108
|
}
|
|
96
|
-
records.push(`
|
|
97
|
-
records.push(`${instanceLabel}.
|
|
98
|
-
records.push(`${instanceLabel}.
|
|
109
|
+
records.push(`_openclaw-gw._tcp IN PTR ${instanceLabel}._openclaw-gw._tcp`);
|
|
110
|
+
records.push(`${instanceLabel}._openclaw-gw._tcp IN SRV 0 0 ${opts.gatewayPort} ${hostLabel}`);
|
|
111
|
+
records.push(`${instanceLabel}._openclaw-gw._tcp IN TXT ${txt.map(txtQuote).join(" ")}`);
|
|
99
112
|
const contentBody = `${records.join("\n")}\n`;
|
|
100
113
|
const hashBody = `${records
|
|
101
114
|
.map((line) => line === soaLine ? `@ IN SOA ns1 hostmaster SERIAL 7200 3600 1209600 60` : line)
|
|
102
115
|
.join("\n")}\n`;
|
|
103
116
|
const contentHash = computeContentHash(hashBody);
|
|
104
|
-
return `;
|
|
117
|
+
return `; openclaw-content-hash: ${contentHash}\n${contentBody}`;
|
|
105
118
|
}
|
|
106
119
|
export function renderWideAreaGatewayZoneText(opts) {
|
|
107
120
|
return renderZone(opts);
|
|
108
121
|
}
|
|
109
122
|
export async function writeWideAreaGatewayZone(opts) {
|
|
110
|
-
const
|
|
123
|
+
const domain = normalizeWideAreaDomain(opts.domain);
|
|
124
|
+
if (!domain) {
|
|
125
|
+
throw new Error("wide-area discovery domain is required");
|
|
126
|
+
}
|
|
127
|
+
const zonePath = getWideAreaZonePath(domain);
|
|
111
128
|
await ensureDir(path.dirname(zonePath));
|
|
112
129
|
const existing = (() => {
|
|
113
130
|
try {
|
package/dist/logging/logger.js
CHANGED
|
@@ -7,9 +7,9 @@ import { readLoggingConfig } from "./config.js";
|
|
|
7
7
|
import { loggingState } from "./state.js";
|
|
8
8
|
// Pin to /tmp so mac Debug UI and docs match; os.tmpdir() can be a per-user
|
|
9
9
|
// randomized path on macOS which made the “Open log” button a no-op.
|
|
10
|
-
export const DEFAULT_LOG_DIR = "/tmp/
|
|
11
|
-
export const DEFAULT_LOG_FILE = path.join(DEFAULT_LOG_DIR, "
|
|
12
|
-
const LOG_PREFIX = "
|
|
10
|
+
export const DEFAULT_LOG_DIR = "/tmp/openclaw";
|
|
11
|
+
export const DEFAULT_LOG_FILE = path.join(DEFAULT_LOG_DIR, "openclaw.log"); // legacy single-file path
|
|
12
|
+
const LOG_PREFIX = "openclaw";
|
|
13
13
|
const LOG_SUFFIX = ".log";
|
|
14
14
|
const MAX_LOG_AGE_MS = 24 * 60 * 60 * 1000; // 24h
|
|
15
15
|
const requireConfig = createRequire(import.meta.url);
|
|
@@ -61,7 +61,7 @@ function buildLogger(settings) {
|
|
|
61
61
|
pruneOldRollingLogs(path.dirname(settings.file));
|
|
62
62
|
}
|
|
63
63
|
const logger = new TsLogger({
|
|
64
|
-
name: "
|
|
64
|
+
name: "openclaw",
|
|
65
65
|
minLevel: levelToMinLevel(settings.level),
|
|
66
66
|
type: "hidden", // no ansi formatting
|
|
67
67
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
const BUNDLED_VERSION = (typeof
|
|
4
|
-
process.env.
|
|
3
|
+
const BUNDLED_VERSION = (typeof __OPENCLAW_VERSION__ === "string" && __OPENCLAW_VERSION__) ||
|
|
4
|
+
process.env.OPENCLAW_BUNDLED_VERSION ||
|
|
5
5
|
"0.0.0";
|
|
6
6
|
function argValue(args, flag) {
|
|
7
7
|
const idx = args.indexOf(flag);
|
|
@@ -16,7 +16,7 @@ function hasFlag(args, flag) {
|
|
|
16
16
|
const args = process.argv.slice(2);
|
|
17
17
|
async function main() {
|
|
18
18
|
if (hasFlag(args, "--version") || hasFlag(args, "-v")) {
|
|
19
|
-
// Match `
|
|
19
|
+
// Match `openclaw --version` behavior for Swift env/version checks.
|
|
20
20
|
// Keep output a single line.
|
|
21
21
|
console.log(BUNDLED_VERSION);
|
|
22
22
|
process.exit(0);
|
|
@@ -47,6 +47,7 @@ async function main() {
|
|
|
47
47
|
setGatewayWsLogStyle(wsLogStyle);
|
|
48
48
|
const cfg = loadConfig();
|
|
49
49
|
const portRaw = argValue(args, "--port") ??
|
|
50
|
+
process.env.OPENCLAW_GATEWAY_PORT ??
|
|
50
51
|
process.env.CLAWDBOT_GATEWAY_PORT ??
|
|
51
52
|
(typeof cfg.gateway?.port === "number" ? String(cfg.gateway.port) : "") ??
|
|
52
53
|
"18789";
|
|
@@ -56,6 +57,7 @@ async function main() {
|
|
|
56
57
|
process.exit(1);
|
|
57
58
|
}
|
|
58
59
|
const bindRaw = argValue(args, "--bind") ??
|
|
60
|
+
process.env.OPENCLAW_GATEWAY_BIND ??
|
|
59
61
|
process.env.CLAWDBOT_GATEWAY_BIND ??
|
|
60
62
|
cfg.gateway?.bind ??
|
|
61
63
|
"loopback";
|
|
@@ -71,8 +73,9 @@ async function main() {
|
|
|
71
73
|
process.exit(1);
|
|
72
74
|
}
|
|
73
75
|
const token = argValue(args, "--token");
|
|
74
|
-
if (token)
|
|
75
|
-
process.env.
|
|
76
|
+
if (token) {
|
|
77
|
+
process.env.OPENCLAW_GATEWAY_TOKEN = token;
|
|
78
|
+
}
|
|
76
79
|
let server = null;
|
|
77
80
|
let lock = null;
|
|
78
81
|
let shuttingDown = false;
|
|
@@ -173,6 +176,6 @@ async function main() {
|
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
void main().catch((err) => {
|
|
176
|
-
console.error("[
|
|
179
|
+
console.error("[openclaw] Gateway daemon failed:", err instanceof Error ? (err.stack ?? err.message) : err);
|
|
177
180
|
process.exit(1);
|
|
178
181
|
});
|
|
@@ -13,7 +13,7 @@ export function parseRelaySmokeTest(args, env) {
|
|
|
13
13
|
return "qr";
|
|
14
14
|
// Back-compat: only run env-based smoke mode when no CLI args are present,
|
|
15
15
|
// to avoid surprising early-exit when users set env vars globally.
|
|
16
|
-
if (args.length === 0 && (env.
|
|
16
|
+
if (args.length === 0 && (env.OPENCLAW_SMOKE_QR === "1" || env.OPENCLAW_SMOKE === "qr")) {
|
|
17
17
|
return "qr";
|
|
18
18
|
}
|
|
19
19
|
return null;
|
package/dist/macos/relay.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import process from "node:process";
|
|
3
|
-
const BUNDLED_VERSION = (typeof
|
|
4
|
-
process.env.
|
|
3
|
+
const BUNDLED_VERSION = (typeof __OPENCLAW_VERSION__ === "string" && __OPENCLAW_VERSION__) ||
|
|
4
|
+
process.env.OPENCLAW_BUNDLED_VERSION ||
|
|
5
5
|
"0.0.0";
|
|
6
6
|
function hasFlag(args, flag) {
|
|
7
7
|
return args.includes(flag);
|
|
@@ -37,8 +37,8 @@ async function main() {
|
|
|
37
37
|
await patchBunLongForProtobuf();
|
|
38
38
|
const { loadDotEnv } = await import("../infra/dotenv.js");
|
|
39
39
|
loadDotEnv({ quiet: true });
|
|
40
|
-
const {
|
|
41
|
-
|
|
40
|
+
const { ensureOpenClawCliOnPath } = await import("../infra/path-env.js");
|
|
41
|
+
ensureOpenClawCliOnPath();
|
|
42
42
|
const { enableConsoleCapture } = await import("../logging.js");
|
|
43
43
|
enableConsoleCapture();
|
|
44
44
|
const { assertSupportedRuntime } = await import("../infra/runtime-guard.js");
|
|
@@ -49,12 +49,12 @@ async function main() {
|
|
|
49
49
|
const program = buildProgram();
|
|
50
50
|
installUnhandledRejectionHandler();
|
|
51
51
|
process.on("uncaughtException", (error) => {
|
|
52
|
-
console.error("[
|
|
52
|
+
console.error("[openclaw] Uncaught exception:", formatUncaughtError(error));
|
|
53
53
|
process.exit(1);
|
|
54
54
|
});
|
|
55
55
|
await program.parseAsync(process.argv);
|
|
56
56
|
}
|
|
57
57
|
void main().catch((err) => {
|
|
58
|
-
console.error("[
|
|
58
|
+
console.error("[openclaw] Relay failed:", err instanceof Error ? (err.stack ?? err.message) : err);
|
|
59
59
|
process.exit(1);
|
|
60
60
|
});
|
package/dist/media/host.js
CHANGED
|
@@ -18,7 +18,7 @@ export async function ensureMediaHosted(source, opts = {}) {
|
|
|
18
18
|
const needsServerStart = await isPortFree(port);
|
|
19
19
|
if (needsServerStart && !opts.startServer) {
|
|
20
20
|
await fs.rm(saved.path).catch(() => { });
|
|
21
|
-
throw new Error(`Media hosting requires the webhook/Funnel server. Start \`${formatCliCommand("
|
|
21
|
+
throw new Error(`Media hosting requires the webhook/Funnel server. Start \`${formatCliCommand("openclaw webhook")}\`/\`${formatCliCommand("openclaw up")}\` or re-run with --serve-media.`);
|
|
22
22
|
}
|
|
23
23
|
if (needsServerStart && opts.startServer) {
|
|
24
24
|
if (!mediaServer) {
|
package/dist/media/image-ops.js
CHANGED
|
@@ -6,8 +6,8 @@ function isBun() {
|
|
|
6
6
|
return typeof process.versions.bun === "string";
|
|
7
7
|
}
|
|
8
8
|
function prefersSips() {
|
|
9
|
-
return (process.env.
|
|
10
|
-
(process.env.
|
|
9
|
+
return (process.env.OPENCLAW_IMAGE_BACKEND === "sips" ||
|
|
10
|
+
(process.env.OPENCLAW_IMAGE_BACKEND !== "sharp" && isBun() && process.platform === "darwin"));
|
|
11
11
|
}
|
|
12
12
|
async function loadSharp() {
|
|
13
13
|
const mod = (await import("sharp"));
|
|
@@ -91,7 +91,7 @@ function readJpegExifOrientation(buffer) {
|
|
|
91
91
|
return null;
|
|
92
92
|
}
|
|
93
93
|
async function withTempDir(fn) {
|
|
94
|
-
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "
|
|
94
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-img-"));
|
|
95
95
|
try {
|
|
96
96
|
return await fn(dir);
|
|
97
97
|
}
|
|
@@ -78,7 +78,7 @@ export async function fetchWithGuard(params) {
|
|
|
78
78
|
try {
|
|
79
79
|
const response = await fetch(parsedUrl, {
|
|
80
80
|
signal: controller.signal,
|
|
81
|
-
headers: { "User-Agent": "
|
|
81
|
+
headers: { "User-Agent": "OpenClaw-Gateway/1.0" },
|
|
82
82
|
redirect: "manual",
|
|
83
83
|
dispatcher,
|
|
84
84
|
});
|
package/dist/media/mime.js
CHANGED
|
@@ -11,7 +11,10 @@ const EXT_BY_MIME = {
|
|
|
11
11
|
"image/gif": ".gif",
|
|
12
12
|
"audio/ogg": ".ogg",
|
|
13
13
|
"audio/mpeg": ".mp3",
|
|
14
|
+
"audio/x-m4a": ".m4a",
|
|
15
|
+
"audio/mp4": ".m4a",
|
|
14
16
|
"video/mp4": ".mp4",
|
|
17
|
+
"video/quicktime": ".mov",
|
|
15
18
|
"application/pdf": ".pdf",
|
|
16
19
|
"application/json": ".json",
|
|
17
20
|
"application/zip": ".zip",
|