@gguf/pigbot 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1208 -10
- package/LICENSE +2 -2
- package/README.md +347 -37
- package/assets/chrome-extension/README.md +5 -5
- package/assets/chrome-extension/background.js +5 -5
- package/assets/chrome-extension/manifest.json +3 -3
- package/assets/chrome-extension/options.html +5 -5
- package/assets/chrome-extension/options.js +1 -1
- package/dist/acp/client.js +5 -5
- package/dist/acp/server.js +3 -3
- package/dist/acp/types.js +2 -2
- package/dist/agents/agent-paths.js +6 -6
- package/dist/agents/agent-scope.js +1 -1
- package/dist/agents/anthropic-payload-log.js +2 -2
- package/dist/agents/auth-profiles/doctor.js +1 -1
- package/dist/agents/auth-profiles/paths.js +3 -3
- package/dist/agents/bash-tools.exec.js +1 -1
- package/dist/agents/bash-tools.shared.js +2 -2
- package/dist/agents/cache-trace.js +5 -5
- package/dist/agents/channel-tools.js +31 -2
- package/dist/agents/cli-runner/helpers.js +3 -3
- package/dist/agents/cli-runner.js +3 -3
- package/dist/agents/context.js +4 -4
- package/dist/agents/docs-path.js +3 -3
- package/dist/agents/identity.js +1 -1
- package/dist/agents/live-auth-keys.js +2 -2
- package/dist/agents/memory-search.js +5 -0
- package/dist/agents/minimax-vlm.js +1 -1
- package/dist/agents/model-auth.js +2 -1
- package/dist/agents/model-catalog.js +4 -4
- package/dist/agents/model-selection.js +1 -1
- package/dist/agents/models-config.js +3 -3
- package/dist/agents/models-config.providers.js +40 -8
- package/dist/agents/{moltbot-tools.js → openclaw-tools.js} +1 -1
- package/dist/agents/pi-embedded-helpers/errors.js +20 -0
- package/dist/agents/pi-embedded-helpers/openai.js +1 -1
- package/dist/agents/pi-embedded-helpers.js +1 -1
- package/dist/agents/pi-embedded-runner/cache-ttl.js +1 -1
- package/dist/agents/pi-embedded-runner/compact.js +8 -8
- package/dist/agents/pi-embedded-runner/model.js +2 -2
- package/dist/agents/pi-embedded-runner/run/attempt.js +6 -6
- package/dist/agents/pi-embedded-runner/run.js +31 -5
- package/dist/agents/pi-embedded-runner/session-manager-cache.js +1 -1
- package/dist/agents/pi-embedded-runner/utils.js +1 -1
- package/dist/agents/pi-embedded-subscribe.raw-stream.js +2 -2
- package/dist/agents/pi-tools.js +5 -5
- package/dist/agents/pi-tools.read.js +2 -2
- package/dist/agents/sandbox/browser.js +16 -11
- package/dist/agents/sandbox/constants.js +7 -7
- package/dist/agents/sandbox/docker.js +17 -14
- package/dist/agents/sandbox/runtime-status.js +1 -1
- package/dist/agents/session-transcript-repair.js +1 -1
- package/dist/agents/session-write-lock.js +2 -2
- package/dist/agents/skills/bundled-dir.js +1 -1
- package/dist/agents/skills/config.js +2 -1
- package/dist/agents/skills/frontmatter.js +11 -3
- package/dist/agents/skills/workspace.js +6 -6
- package/dist/agents/synthetic-models.js +8 -0
- package/dist/agents/system-prompt.js +21 -21
- package/dist/agents/tool-images.js +1 -1
- package/dist/agents/tool-policy.js +2 -2
- package/dist/agents/tools/browser-tool.js +5 -5
- package/dist/agents/tools/image-tool.js +2 -2
- package/dist/agents/tools/memory-tool.js +1 -1
- package/dist/agents/tools/sessions-send-tool.js +2 -2
- package/dist/agents/tools/web-search.js +7 -7
- package/dist/agents/transcript-policy.js +2 -1
- package/dist/agents/workspace.js +3 -3
- package/dist/auto-reply/commands-registry.data.js +1 -1
- package/dist/auto-reply/reply/agent-runner-execution.js +1 -1
- package/dist/auto-reply/reply/bash-command.js +2 -2
- package/dist/auto-reply/reply/commands-context-report.js +2 -2
- package/dist/auto-reply/reply/commands-session.js +4 -4
- package/dist/auto-reply/reply/directive-handling.shared.js +1 -1
- package/dist/auto-reply/reply/dispatch-from-config.js +21 -0
- package/dist/auto-reply/reply/get-reply-inline-actions.js +2 -2
- package/dist/auto-reply/reply/get-reply.js +1 -1
- package/dist/auto-reply/reply/groups.js +1 -1
- package/dist/auto-reply/reply/mentions.js +3 -2
- package/dist/auto-reply/reply/normalize-reply.js +12 -4
- package/dist/auto-reply/reply/reply-dispatcher.js +8 -1
- package/dist/auto-reply/reply/reply-elevated.js +1 -1
- package/dist/auto-reply/reply/stage-sandbox-media.js +1 -1
- package/dist/auto-reply/status.js +2 -2
- package/dist/browser/chrome.js +13 -13
- package/dist/browser/chrome.profile-decoration.js +5 -5
- package/dist/browser/client-fetch.js +3 -3
- package/dist/browser/config.js +11 -11
- package/dist/browser/constants.js +3 -3
- package/dist/browser/control-service.js +1 -1
- package/dist/browser/extension-relay.js +3 -3
- package/dist/browser/profiles-service.js +2 -2
- package/dist/browser/profiles.js +1 -1
- package/dist/browser/pw-tools-core.downloads.js +1 -1
- package/dist/browser/pw-tools-core.interactions.js +5 -5
- package/dist/browser/pw-tools-core.responses.js +1 -1
- package/dist/browser/routes/agent.act.js +2 -2
- package/dist/browser/routes/agent.debug.js +1 -1
- package/dist/browser/server-context.js +9 -9
- package/dist/browser/server.js +2 -2
- package/dist/build-info.json +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/canvas-host/a2ui/a2ui.bundle.js +24 -19
- package/dist/canvas-host/a2ui/index.html +28 -28
- package/dist/canvas-host/a2ui.js +14 -18
- package/dist/canvas-host/server.js +33 -35
- package/dist/channels/plugins/catalog.js +7 -7
- package/dist/channels/plugins/helpers.js +2 -2
- package/dist/channels/plugins/onboarding/imessage.js +1 -1
- package/dist/channels/plugins/onboarding/signal.js +2 -2
- package/dist/channels/plugins/onboarding/slack.js +5 -5
- package/dist/channels/plugins/onboarding/telegram.js +3 -3
- package/dist/channels/plugins/onboarding/whatsapp.js +4 -4
- package/dist/channels/plugins/pairing-message.js +1 -1
- package/dist/channels/plugins/status-issues/bluebubbles.js +1 -1
- package/dist/channels/plugins/status-issues/whatsapp.js +2 -2
- package/dist/channels/registry.js +1 -1
- package/dist/cli/acp-cli.js +2 -2
- package/dist/cli/argv.js +2 -2
- package/dist/cli/banner.js +10 -11
- package/dist/cli/browser-cli-actions-input/register.files-downloads.js +1 -1
- package/dist/cli/browser-cli-examples.js +29 -29
- package/dist/cli/browser-cli-extension.js +5 -5
- package/dist/cli/browser-cli-manage.js +4 -4
- package/dist/cli/browser-cli.js +3 -3
- package/dist/cli/channel-options.js +1 -1
- package/dist/cli/channels-cli.js +1 -1
- package/dist/cli/cli-name.js +4 -8
- package/dist/cli/command-format.js +3 -3
- package/dist/cli/config-cli.js +2 -2
- package/dist/cli/cron-cli/register.js +1 -1
- package/dist/cli/daemon-cli/install.js +2 -2
- package/dist/cli/daemon-cli/register.js +1 -1
- package/dist/cli/daemon-cli/shared.js +11 -13
- package/dist/cli/daemon-cli/status.gather.js +2 -5
- package/dist/cli/daemon-cli/status.print.js +9 -17
- package/dist/cli/directory-cli.js +1 -1
- package/dist/cli/dns-cli.js +20 -13
- package/dist/cli/docs-cli.js +2 -2
- package/dist/cli/exec-approvals-cli.js +2 -2
- package/dist/cli/gateway-cli/dev.js +7 -5
- package/dist/cli/gateway-cli/register.js +12 -6
- package/dist/cli/gateway-cli/run.js +15 -14
- package/dist/cli/gateway-cli/shared.js +5 -5
- package/dist/cli/hooks-cli.js +3 -3
- package/dist/cli/logs-cli.js +3 -3
- package/dist/cli/memory-cli.js +36 -5
- package/dist/cli/models-cli.js +1 -1
- package/dist/cli/node-cli/daemon.js +3 -3
- package/dist/cli/node-cli/register.js +1 -1
- package/dist/cli/nodes-cli/register.canvas.js +1 -1
- package/dist/cli/nodes-cli/register.js +1 -1
- package/dist/cli/nodes-screen.js +1 -1
- package/dist/cli/pairing-cli.js +3 -3
- package/dist/cli/plugin-registry.js +2 -2
- package/dist/cli/plugins-cli.js +3 -3
- package/dist/cli/profile.js +9 -9
- package/dist/cli/program/config-guard.js +1 -1
- package/dist/cli/program/help.js +14 -11
- package/dist/cli/program/preaction.js +1 -1
- package/dist/cli/program/register.agent.js +15 -12
- package/dist/cli/program/register.configure.js +1 -1
- package/dist/cli/program/register.maintenance.js +4 -4
- package/dist/cli/program/register.message.js +5 -5
- package/dist/cli/program/register.onboard.js +5 -3
- package/dist/cli/program/register.setup.js +3 -3
- package/dist/cli/program/register.status-health-sessions.js +13 -13
- package/dist/cli/program/register.subclis.js +7 -2
- package/dist/cli/route.js +1 -1
- package/dist/cli/run-main.js +3 -3
- package/dist/cli/sandbox-cli.js +19 -19
- package/dist/cli/security-cli.js +4 -4
- package/dist/cli/skills-cli.js +3 -3
- package/dist/cli/system-cli.js +1 -1
- package/dist/cli/tagline.js +11 -9
- package/dist/cli/tui-cli.js +1 -1
- package/dist/cli/update-cli.js +48 -45
- package/dist/cli/webhooks-cli.js +6 -6
- package/dist/commands/agent-via-gateway.js +1 -1
- package/dist/commands/agent.js +1 -1
- package/dist/commands/agents.command-shared.js +1 -1
- package/dist/commands/agents.commands.add.js +2 -2
- package/dist/commands/agents.commands.list.js +1 -1
- package/dist/commands/auth-choice-options.js +10 -0
- package/dist/commands/auth-choice.apply.api-providers.js +49 -1
- package/dist/commands/auth-choice.apply.openai.js +1 -1
- package/dist/commands/auth-choice.apply.plugin-provider.js +2 -2
- package/dist/commands/auth-choice.preferred-provider.js +1 -0
- package/dist/commands/channels/shared.js +1 -1
- package/dist/commands/channels/status.js +1 -1
- package/dist/commands/chutes-oauth.js +1 -1
- package/dist/commands/configure.channels.js +2 -2
- package/dist/commands/configure.gateway.js +1 -1
- package/dist/commands/configure.wizard.js +21 -21
- package/dist/commands/daemon-install-helpers.js +2 -2
- package/dist/commands/dashboard.js +2 -2
- package/dist/commands/docs.js +5 -5
- package/dist/commands/doctor-auth.js +5 -5
- package/dist/commands/doctor-config-flow.js +64 -7
- package/dist/commands/doctor-format.js +5 -5
- package/dist/commands/doctor-gateway-daemon-flow.js +7 -4
- package/dist/commands/doctor-gateway-services.js +72 -65
- package/dist/commands/doctor-platform-notes.js +51 -9
- package/dist/commands/doctor-sandbox.js +4 -4
- package/dist/commands/doctor-security.js +7 -7
- package/dist/commands/doctor-state-integrity.js +9 -7
- package/dist/commands/doctor-state-migrations.js +1 -1
- package/dist/commands/doctor-ui.js +2 -2
- package/dist/commands/doctor-update.js +5 -5
- package/dist/commands/doctor-workspace-status.js +2 -2
- package/dist/commands/doctor-workspace.js +5 -27
- package/dist/commands/doctor.js +11 -11
- package/dist/commands/gateway-status/helpers.js +2 -2
- package/dist/commands/gateway-status.js +9 -3
- package/dist/commands/health.js +2 -2
- package/dist/commands/models/auth.js +1 -1
- package/dist/commands/models/list.probe.js +2 -2
- package/dist/commands/models/list.registry.js +4 -4
- package/dist/commands/models/list.status-command.js +4 -4
- package/dist/commands/node-daemon-install-helpers.js +1 -1
- package/dist/commands/onboard-auth.config-core.js +65 -1
- package/dist/commands/onboard-auth.credentials.js +14 -2
- package/dist/commands/onboard-auth.js +2 -2
- package/dist/commands/onboard-channels.js +5 -5
- package/dist/commands/onboard-helpers.js +9 -8
- package/dist/commands/onboard-hooks.js +4 -4
- package/dist/commands/onboard-non-interactive/local/auth-choice.js +21 -1
- package/dist/commands/onboard-non-interactive/local.js +1 -1
- package/dist/commands/onboard-non-interactive/remote.js +1 -1
- package/dist/commands/onboard-non-interactive.js +1 -1
- package/dist/commands/onboard-remote.js +7 -3
- package/dist/commands/onboard-skills.js +2 -2
- package/dist/commands/onboard.js +3 -3
- package/dist/commands/onboarding/plugin-install.js +2 -2
- package/dist/commands/reset.js +3 -3
- package/dist/commands/sandbox-display.js +1 -1
- package/dist/commands/sandbox-explain.js +2 -2
- package/dist/commands/setup.js +9 -7
- package/dist/commands/signal-install.js +2 -2
- package/dist/commands/status-all/diagnosis.js +1 -1
- package/dist/commands/status-all/report-lines.js +1 -1
- package/dist/commands/status-all.js +5 -5
- package/dist/commands/status.command.js +9 -9
- package/dist/commands/status.gateway-probe.js +2 -2
- package/dist/commands/status.scan.js +2 -2
- package/dist/commands/status.update.js +3 -3
- package/dist/commands/uninstall.js +4 -4
- package/dist/compat/legacy-names.js +8 -6
- package/dist/config/config.js +1 -1
- package/dist/config/io.js +13 -14
- package/dist/config/paths.js +107 -33
- package/dist/config/schema.js +14 -12
- package/dist/config/sessions/store.js +1 -1
- package/dist/config/sessions/transcript.js +1 -1
- package/dist/config/types.js +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/version.js +4 -4
- package/dist/config/zod-schema.agent-runtime.js +1 -0
- package/dist/config/zod-schema.js +3 -2
- package/dist/config/zod-schema.session.js +6 -1
- package/dist/control-ui/apple-touch-icon.png +0 -0
- package/dist/control-ui/assets/index-BKPyesll.css +1 -0
- package/dist/control-ui/assets/{index-CxLFx0Ae.js → index-DFDgq9AK.js} +397 -366
- package/dist/control-ui/assets/index-DFDgq9AK.js.map +1 -0
- package/dist/control-ui/favicon-32.png +0 -0
- package/dist/control-ui/favicon.svg +22 -0
- package/dist/control-ui/index.html +7 -5
- package/dist/daemon/constants.js +19 -25
- package/dist/daemon/inspect.js +64 -28
- package/dist/daemon/launchd.js +7 -7
- package/dist/daemon/node-service.js +14 -14
- package/dist/daemon/paths.js +3 -3
- package/dist/daemon/program-args.js +1 -1
- package/dist/daemon/schtasks.js +6 -6
- package/dist/daemon/service-env.js +25 -21
- package/dist/daemon/systemd-hints.js +1 -1
- package/dist/daemon/systemd-unit.js +1 -1
- package/dist/daemon/systemd.js +6 -6
- package/dist/discord/send.outbound.js +4 -4
- package/dist/discord/send.shared.js +32 -1
- package/dist/discord/targets.js +79 -0
- package/dist/entry.js +9 -8
- package/dist/gateway/auth.js +6 -3
- package/dist/gateway/call.js +3 -1
- package/dist/gateway/control-ui.js +4 -4
- package/dist/gateway/hooks.js +3 -1
- package/dist/gateway/http-utils.js +5 -3
- package/dist/gateway/openai-http.js +3 -3
- package/dist/gateway/openresponses-http.js +4 -4
- package/dist/gateway/protocol/client-info.js +5 -5
- package/dist/gateway/server/ws-connection/message-handler.js +1 -1
- package/dist/gateway/server-browser.js +2 -2
- package/dist/gateway/server-constants.js +2 -2
- package/dist/gateway/server-cron.js +1 -1
- package/dist/gateway/server-discovery-runtime.js +12 -4
- package/dist/gateway/server-discovery.js +7 -7
- package/dist/gateway/server-http.js +1 -1
- package/dist/gateway/server-methods/config.js +2 -2
- package/dist/gateway/server-methods/logs.js +1 -1
- package/dist/gateway/server-methods/update.js +2 -2
- package/dist/gateway/server-plugins.js +2 -2
- package/dist/gateway/server-reload-handlers.js +5 -5
- package/dist/gateway/server-runtime-config.js +3 -3
- package/dist/gateway/server-startup.js +6 -6
- package/dist/gateway/server.impl.js +8 -7
- package/dist/gateway/session-utils.fs.js +2 -1
- package/dist/gateway/test-helpers.mocks.js +8 -6
- package/dist/gateway/test-helpers.server.js +28 -28
- package/dist/gateway/tools-invoke-http.js +40 -4
- package/dist/hooks/bundled/boot-md/HOOK.md +3 -3
- package/dist/hooks/bundled/command-logger/HOOK.md +12 -12
- package/dist/hooks/bundled/command-logger/handler.js +2 -1
- package/dist/hooks/bundled/session-memory/HOOK.md +30 -7
- package/dist/hooks/bundled/session-memory/handler.js +19 -12
- package/dist/hooks/bundled/soul-evil/HOOK.md +5 -5
- package/dist/hooks/bundled-dir.js +2 -2
- package/dist/hooks/config.js +1 -1
- package/dist/hooks/frontmatter.js +11 -3
- package/dist/hooks/gmail-ops.js +1 -1
- package/dist/hooks/gmail-watcher.js +1 -1
- package/dist/hooks/hooks-status.js +2 -2
- package/dist/hooks/install.js +8 -8
- package/dist/hooks/internal-hooks.js +1 -1
- package/dist/hooks/llm-slug-generator.js +1 -1
- package/dist/hooks/loader.js +1 -1
- package/dist/hooks/plugin-hooks.js +2 -2
- package/dist/hooks/workspace.js +9 -9
- package/dist/imessage/monitor/monitor-provider.js +2 -2
- package/dist/index.js +4 -4
- package/dist/infra/bonjour-discovery.js +21 -17
- package/dist/infra/bonjour.js +10 -9
- package/dist/infra/device-identity.js +1 -1
- package/dist/infra/diagnostic-flags.js +1 -1
- package/dist/infra/dotenv.js +1 -1
- package/dist/infra/exec-approvals.js +2 -2
- package/dist/infra/gateway-lock.js +3 -2
- package/dist/infra/machine-name.js +1 -1
- package/dist/infra/{moltbot-root.js → openclaw-root.js} +2 -2
- package/dist/infra/outbound/outbound-session.js +18 -0
- package/dist/infra/outbound/targets.js +1 -1
- package/dist/infra/path-env.js +10 -9
- package/dist/infra/ports-format.js +3 -2
- package/dist/infra/ports.js +2 -2
- package/dist/infra/provider-usage.auth.js +33 -0
- package/dist/infra/provider-usage.fetch.claude.js +1 -1
- package/dist/infra/provider-usage.fetch.minimax.js +1 -1
- package/dist/infra/provider-usage.load.js +6 -0
- package/dist/infra/provider-usage.shared.js +2 -0
- package/dist/infra/restart-sentinel.js +1 -1
- package/dist/infra/restart.js +4 -4
- package/dist/infra/runtime-guard.js +2 -2
- package/dist/infra/shell-env.js +4 -4
- package/dist/infra/ssh-config.js +2 -1
- package/dist/infra/ssh-tunnel.js +8 -1
- package/dist/infra/state-migrations.js +165 -6
- package/dist/infra/system-presence.js +1 -1
- package/dist/infra/tailscale.js +1 -1
- package/dist/infra/tls/gateway.js +1 -1
- package/dist/infra/unhandled-rejections.js +56 -33
- package/dist/infra/update-check.js +1 -1
- package/dist/infra/update-global.js +21 -11
- package/dist/infra/update-runner.js +7 -7
- package/dist/infra/update-startup.js +3 -3
- package/dist/infra/voicewake.js +1 -1
- package/dist/infra/warnings.js +1 -1
- package/dist/infra/widearea-dns.js +31 -14
- package/dist/logging/logger.js +4 -4
- package/dist/macos/gateway-daemon.js +9 -6
- package/dist/macos/relay-smoke.js +1 -1
- package/dist/macos/relay.js +6 -6
- package/dist/media/host.js +1 -1
- package/dist/media/image-ops.js +3 -3
- package/dist/media/input-files.js +1 -1
- package/dist/media/mime.js +3 -0
- package/dist/media-understanding/apply.js +278 -1
- package/dist/media-understanding/attachments.js +1 -1
- package/dist/media-understanding/providers/image.js +2 -2
- package/dist/media-understanding/runner.js +1 -1
- package/dist/memory/batch-gemini.js +2 -2
- package/dist/memory/batch-openai.js +1 -1
- package/dist/memory/embeddings-gemini.js +1 -1
- package/dist/memory/embeddings.js +1 -1
- package/dist/memory/internal.js +49 -16
- package/dist/memory/manager-cache-key.js +1 -0
- package/dist/memory/manager.js +62 -10
- package/dist/memory/sync-memory-files.js +1 -1
- package/dist/node-host/runner.js +6 -6
- package/dist/pairing/pairing-messages.js +2 -2
- package/dist/plugins/bundled-dir.js +1 -1
- package/dist/plugins/cli.js +2 -2
- package/dist/plugins/config-state.js +60 -0
- package/dist/plugins/discovery.js +14 -12
- package/dist/plugins/install.js +8 -8
- package/dist/plugins/loader.js +4 -7
- package/dist/plugins/manifest-registry.js +4 -4
- package/dist/plugins/manifest.js +4 -7
- package/dist/plugins/providers.js +2 -2
- package/dist/plugins/registry.js +2 -2
- package/dist/plugins/runtime.js +1 -1
- package/dist/plugins/status.js +2 -2
- package/dist/plugins/tools.js +2 -2
- package/dist/plugins/update.js +3 -3
- package/dist/providers/qwen-portal-oauth.js +1 -1
- package/dist/routing/resolve-route.js +2 -0
- package/dist/routing/session-key.js +5 -0
- package/dist/security/audit-extra.js +2 -2
- package/dist/security/audit.js +7 -7
- package/dist/shared/text/reasoning-tags.js +44 -3
- package/dist/slack/monitor/commands.js +4 -3
- package/dist/slack/monitor/slash.js +62 -59
- package/dist/slack/monitor.test-helpers.js +1 -1
- package/dist/telegram/accounts.js +1 -1
- package/dist/telegram/bot/delivery.js +26 -3
- package/dist/telegram/bot/helpers.js +13 -2
- package/dist/telegram/bot-message-context.js +8 -4
- package/dist/telegram/bot-message-dispatch.js +36 -5
- package/dist/telegram/bot-native-commands.js +50 -11
- package/dist/telegram/bot.js +7 -5
- package/dist/telegram/download.js +1 -1
- package/dist/telegram/monitor.js +19 -1
- package/dist/telegram/network-config.js +2 -2
- package/dist/telegram/network-errors.js +4 -0
- package/dist/terminal/links.js +1 -1
- package/dist/tts/tts.js +12 -6
- package/dist/tui/gateway-chat.js +3 -3
- package/dist/tui/tui.js +1 -1
- package/dist/utils.js +12 -3
- package/dist/version.js +3 -3
- package/dist/web/active-listener.js +1 -1
- package/dist/web/auth-store.js +1 -1
- package/dist/web/auto-reply/monitor/broadcast.js +2 -0
- package/dist/web/auto-reply/monitor/process-message.js +1 -1
- package/dist/web/auto-reply/monitor.js +1 -1
- package/dist/web/login.js +1 -1
- package/dist/web/session.js +2 -2
- package/dist/wizard/onboarding.finalize.js +24 -21
- package/dist/wizard/onboarding.gateway-config.js +1 -1
- package/dist/wizard/onboarding.js +11 -11
- package/docs/CNAME +1 -1
- package/docs/_config.yml +3 -3
- package/docs/_layouts/default.html +9 -9
- package/docs/assets/openclaw-logo-text-dark.png +0 -0
- package/docs/assets/openclaw-logo-text.png +0 -0
- package/docs/assets/theme.js +1 -1
- package/docs/automation/auth-monitoring.md +7 -7
- package/docs/automation/cron-jobs.md +19 -19
- package/docs/automation/cron-vs-heartbeat.md +7 -7
- package/docs/automation/gmail-pubsub.md +25 -25
- package/docs/automation/poll.md +7 -7
- package/docs/automation/webhook.md +5 -5
- package/docs/bedrock.md +10 -10
- package/docs/brave-search.md +1 -1
- package/docs/broadcast-groups.md +6 -6
- package/docs/channels/bluebubbles.md +12 -12
- package/docs/channels/discord.md +15 -15
- package/docs/channels/googlechat.md +16 -16
- package/docs/channels/imessage.md +13 -13
- package/docs/channels/index.md +4 -4
- package/docs/channels/line.md +6 -6
- package/docs/channels/location.md +1 -1
- package/docs/channels/matrix.md +14 -14
- package/docs/channels/mattermost.md +8 -8
- package/docs/channels/msteams.md +26 -26
- package/docs/channels/nextcloud-talk.md +7 -7
- package/docs/channels/nostr.md +9 -9
- package/docs/channels/signal.md +9 -9
- package/docs/channels/slack.md +16 -16
- package/docs/channels/telegram.md +23 -23
- package/docs/channels/tlon.md +5 -5
- package/docs/channels/troubleshooting.md +2 -2
- package/docs/channels/twitch.md +14 -14
- package/docs/channels/whatsapp.md +26 -26
- package/docs/channels/zalo.md +8 -8
- package/docs/channels/zalouser.md +12 -12
- package/docs/cli/acp.md +24 -24
- package/docs/cli/agent.md +6 -6
- package/docs/cli/agents.md +12 -12
- package/docs/cli/approvals.md +14 -14
- package/docs/cli/browser.md +24 -24
- package/docs/cli/channels.md +21 -21
- package/docs/cli/config.md +15 -15
- package/docs/cli/configure.md +6 -6
- package/docs/cli/cron.md +5 -5
- package/docs/cli/dashboard.md +4 -4
- package/docs/cli/devices.md +13 -13
- package/docs/cli/directory.md +12 -12
- package/docs/cli/dns.md +5 -6
- package/docs/cli/docs.md +5 -5
- package/docs/cli/doctor.md +11 -11
- package/docs/cli/gateway.md +26 -26
- package/docs/cli/health.md +5 -5
- package/docs/cli/hooks.md +35 -35
- package/docs/cli/index.md +42 -42
- package/docs/cli/logs.md +6 -6
- package/docs/cli/memory.md +12 -11
- package/docs/cli/message.md +11 -11
- package/docs/cli/models.md +15 -15
- package/docs/cli/node.md +14 -14
- package/docs/cli/nodes.md +14 -14
- package/docs/cli/onboard.md +7 -7
- package/docs/cli/pairing.md +4 -4
- package/docs/cli/plugins.md +16 -16
- package/docs/cli/reset.md +5 -5
- package/docs/cli/sandbox.md +28 -28
- package/docs/cli/security.md +6 -6
- package/docs/cli/sessions.md +5 -5
- package/docs/cli/setup.md +6 -6
- package/docs/cli/skills.md +6 -6
- package/docs/cli/status.md +7 -7
- package/docs/cli/system.md +6 -6
- package/docs/cli/tui.md +5 -5
- package/docs/cli/uninstall.md +5 -5
- package/docs/cli/update.md +20 -20
- package/docs/cli/voicecall.md +9 -9
- package/docs/cli/webhooks.md +5 -5
- package/docs/concepts/agent-loop.md +5 -5
- package/docs/concepts/agent-workspace.md +27 -27
- package/docs/concepts/agent.md +12 -12
- package/docs/concepts/architecture.md +2 -2
- package/docs/concepts/channel-routing.md +5 -5
- package/docs/concepts/compaction.md +5 -5
- package/docs/concepts/context.md +6 -6
- package/docs/concepts/group-messages.md +7 -7
- package/docs/concepts/groups.md +5 -5
- package/docs/concepts/markdown-formatting.md +3 -3
- package/docs/concepts/memory.md +41 -19
- package/docs/concepts/messages.md +4 -4
- package/docs/concepts/model-failover.md +14 -14
- package/docs/concepts/model-providers.md +25 -24
- package/docs/concepts/models.md +27 -27
- package/docs/concepts/multi-agent.md +31 -31
- package/docs/concepts/oauth.md +22 -22
- package/docs/concepts/presence.md +2 -2
- package/docs/concepts/retry.md +1 -1
- package/docs/concepts/session-pruning.md +1 -1
- package/docs/concepts/session-tool.md +4 -4
- package/docs/concepts/session.md +18 -16
- package/docs/concepts/streaming.md +3 -3
- package/docs/concepts/system-prompt.md +11 -11
- package/docs/concepts/timezone.md +2 -2
- package/docs/concepts/typebox.md +3 -3
- package/docs/concepts/typing-indicators.md +2 -2
- package/docs/concepts/usage-tracking.md +3 -3
- package/docs/date-time.md +2 -2
- package/docs/debug/node-issue.md +6 -6
- package/docs/debugging.md +18 -18
- package/docs/diagnostics/flags.md +7 -7
- package/docs/docs.json +21 -5
- package/docs/environment.md +7 -7
- package/docs/experiments/plans/cron-add-hardening.md +1 -1
- package/docs/experiments/plans/openresponses-gateway.md +2 -2
- package/docs/experiments/research/memory.md +12 -12
- package/docs/gateway/authentication.md +22 -22
- package/docs/gateway/background-process.md +2 -2
- package/docs/gateway/bonjour.md +25 -25
- package/docs/gateway/bridge-protocol.md +2 -2
- package/docs/gateway/cli-backends.md +12 -12
- package/docs/gateway/configuration-examples.md +26 -25
- package/docs/gateway/configuration.md +155 -153
- package/docs/gateway/discovery.md +10 -10
- package/docs/gateway/doctor.md +27 -27
- package/docs/gateway/gateway-lock.md +1 -1
- package/docs/gateway/health.md +11 -11
- package/docs/gateway/heartbeat.md +5 -5
- package/docs/gateway/index.md +63 -63
- package/docs/gateway/local-models.md +2 -2
- package/docs/gateway/logging.md +8 -8
- package/docs/gateway/multiple-gateways.md +24 -24
- package/docs/gateway/openai-http-api.md +12 -12
- package/docs/gateway/openresponses-http-api.md +12 -12
- package/docs/gateway/pairing.md +9 -9
- package/docs/gateway/protocol.md +4 -4
- package/docs/gateway/remote-gateway-readme.md +10 -10
- package/docs/gateway/remote.md +4 -4
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +7 -7
- package/docs/gateway/sandboxing.md +6 -6
- package/docs/gateway/security/formal-verification.md +67 -14
- package/docs/gateway/security/index.md +56 -59
- package/docs/gateway/tailscale.md +10 -10
- package/docs/gateway/tools-invoke-http-api.md +5 -5
- package/docs/gateway/troubleshooting.md +112 -112
- package/docs/help/faq.md +338 -338
- package/docs/help/troubleshooting.md +16 -16
- package/docs/hooks/soul-evil.md +2 -2
- package/docs/hooks.md +62 -62
- package/docs/index.md +45 -36
- package/docs/install/ansible.md +35 -35
- package/docs/install/development-channels.md +10 -10
- package/docs/install/docker.md +45 -45
- package/docs/install/index.md +33 -33
- package/docs/install/installer.md +24 -24
- package/docs/install/migrating.md +36 -36
- package/docs/install/nix.md +18 -18
- package/docs/install/node.md +4 -4
- package/docs/install/uninstall.md +29 -29
- package/docs/install/updating.md +51 -51
- package/docs/logging.md +59 -59
- package/docs/multi-agent-sandbox-tools.md +15 -15
- package/docs/network.md +1 -1
- package/docs/nodes/audio.md +2 -2
- package/docs/nodes/camera.md +18 -18
- package/docs/nodes/images.md +4 -4
- package/docs/nodes/index.md +57 -57
- package/docs/nodes/location-command.md +2 -2
- package/docs/nodes/media-understanding.md +5 -5
- package/docs/nodes/talk.md +1 -1
- package/docs/nodes/voicewake.md +3 -3
- package/docs/northflank.mdx +9 -9
- package/docs/perplexity.md +2 -2
- package/docs/platforms/android.md +14 -14
- package/docs/platforms/digitalocean.md +26 -26
- package/docs/platforms/exe-dev.md +68 -130
- package/docs/platforms/fly.md +33 -33
- package/docs/platforms/gcp.md +58 -58
- package/docs/platforms/hetzner.md +45 -45
- package/docs/platforms/index.md +8 -8
- package/docs/platforms/ios.md +13 -13
- package/docs/platforms/linux.md +11 -11
- package/docs/platforms/mac/bundled-gateway.md +14 -14
- package/docs/platforms/mac/canvas.md +14 -14
- package/docs/platforms/mac/child-process.md +5 -5
- package/docs/platforms/mac/dev-setup.md +10 -10
- package/docs/platforms/mac/health.md +2 -2
- package/docs/platforms/mac/icon.md +1 -1
- package/docs/platforms/mac/logging.md +4 -4
- package/docs/platforms/mac/menu-bar.md +1 -1
- package/docs/platforms/mac/peekaboo.md +9 -9
- package/docs/platforms/mac/permissions.md +1 -1
- package/docs/platforms/mac/release.md +18 -18
- package/docs/platforms/mac/remote.md +14 -14
- package/docs/platforms/mac/signing.md +7 -7
- package/docs/platforms/mac/skills.md +4 -4
- package/docs/platforms/mac/webchat.md +1 -1
- package/docs/platforms/mac/xpc.md +4 -4
- package/docs/platforms/macos-vm.md +27 -27
- package/docs/platforms/macos.md +16 -16
- package/docs/platforms/oracle.md +35 -35
- package/docs/platforms/raspberry-pi.md +22 -22
- package/docs/platforms/windows.md +11 -11
- package/docs/plugin.md +65 -65
- package/docs/plugins/agent-tools.md +1 -1
- package/docs/plugins/manifest.md +4 -4
- package/docs/plugins/voice-call.md +12 -12
- package/docs/plugins/zalouser.md +9 -9
- package/docs/prose.md +9 -9
- package/docs/providers/anthropic.md +16 -16
- package/docs/providers/claude-max-api-proxy.md +4 -4
- package/docs/providers/deepgram.md +2 -2
- package/docs/providers/github-copilot.md +11 -11
- package/docs/providers/glm.md +4 -4
- package/docs/providers/index.md +4 -3
- package/docs/providers/minimax.md +9 -9
- package/docs/providers/models.md +3 -3
- package/docs/providers/moonshot.md +15 -4
- package/docs/providers/ollama.md +11 -11
- package/docs/providers/openai.md +6 -6
- package/docs/providers/opencode.md +3 -3
- package/docs/providers/openrouter.md +3 -3
- package/docs/providers/qwen.md +6 -6
- package/docs/providers/synthetic.md +4 -4
- package/docs/providers/venice.md +23 -23
- package/docs/providers/vercel-ai-gateway.md +4 -4
- package/docs/providers/xiaomi.md +62 -0
- package/docs/providers/zai.md +5 -5
- package/docs/railway.mdx +8 -8
- package/docs/refactor/exec-host.md +5 -5
- package/docs/refactor/plugin-sdk.md +12 -12
- package/docs/refactor/strict-config.md +11 -11
- package/docs/reference/AGENTS.default.md +17 -17
- package/docs/reference/RELEASING.md +29 -29
- package/docs/reference/api-usage-costs.md +6 -6
- package/docs/reference/device-models.md +7 -7
- package/docs/reference/rpc.md +3 -3
- package/docs/reference/session-management-compaction.md +19 -19
- package/docs/reference/templates/AGENTS.dev.md +1 -1
- package/docs/reference/templates/BOOT.md +1 -1
- package/docs/reference/templates/IDENTITY.md +1 -1
- package/docs/reference/templates/TOOLS.dev.md +1 -1
- package/docs/reference/templates/USER.dev.md +2 -2
- package/docs/reference/test.md +2 -2
- package/docs/reference/transcript-hygiene.md +1 -1
- package/docs/render.mdx +13 -13
- package/docs/scripts.md +1 -1
- package/docs/security/formal-verification.md +66 -13
- package/docs/start/getting-started.md +29 -29
- package/docs/start/hubs.md +2 -2
- package/docs/start/lore.md +14 -14
- package/docs/start/onboarding.md +7 -7
- package/docs/start/{clawd.md → openclaw.md} +35 -35
- package/docs/start/pairing.md +10 -10
- package/docs/start/setup.md +22 -22
- package/docs/start/showcase.md +32 -32
- package/docs/start/wizard.md +30 -30
- package/docs/testing.md +56 -56
- package/docs/token-use.md +7 -7
- package/docs/tools/agent-send.md +10 -10
- package/docs/tools/browser-linux-troubleshooting.md +16 -16
- package/docs/tools/browser-login.md +6 -6
- package/docs/tools/browser.md +126 -126
- package/docs/tools/chrome-extension.md +17 -17
- package/docs/tools/clawdhub.md +7 -7
- package/docs/tools/creating-skills.md +6 -6
- package/docs/tools/exec-approvals.md +5 -5
- package/docs/tools/exec.md +4 -4
- package/docs/tools/firecrawl.md +2 -2
- package/docs/tools/index.md +13 -13
- package/docs/tools/llm-task.md +2 -2
- package/docs/tools/lobster.md +13 -13
- package/docs/tools/skills-config.md +2 -2
- package/docs/tools/skills.md +31 -31
- package/docs/tools/slash-commands.md +8 -8
- package/docs/tools/web.md +8 -8
- package/docs/tts.md +11 -11
- package/docs/tui.md +7 -7
- package/docs/vps.md +1 -1
- package/docs/web/control-ui.md +8 -8
- package/docs/web/dashboard.md +6 -6
- package/docs/web/index.md +5 -5
- package/extensions/bluebubbles/index.ts +3 -3
- package/extensions/bluebubbles/package.json +5 -5
- package/extensions/bluebubbles/src/accounts.ts +9 -9
- package/extensions/bluebubbles/src/actions.test.ts +22 -22
- package/extensions/bluebubbles/src/actions.ts +6 -6
- package/extensions/bluebubbles/src/attachments.ts +2 -2
- package/extensions/bluebubbles/src/channel.ts +17 -17
- package/extensions/bluebubbles/src/chat.ts +2 -2
- package/extensions/bluebubbles/src/config-schema.ts +1 -1
- package/extensions/bluebubbles/src/media-send.ts +2 -2
- package/extensions/bluebubbles/src/monitor.test.ts +48 -48
- package/extensions/bluebubbles/src/monitor.ts +6 -6
- package/extensions/bluebubbles/src/onboarding.ts +9 -9
- package/extensions/bluebubbles/src/reactions.ts +2 -2
- package/extensions/bluebubbles/src/runtime.ts +1 -1
- package/extensions/bluebubbles/src/send.ts +2 -2
- package/extensions/copilot-proxy/README.md +3 -3
- package/extensions/copilot-proxy/index.ts +1 -1
- package/extensions/copilot-proxy/package.json +4 -4
- package/extensions/diagnostics-otel/index.ts +3 -3
- package/extensions/diagnostics-otel/package.json +4 -4
- package/extensions/diagnostics-otel/src/service.test.ts +15 -15
- package/extensions/diagnostics-otel/src/service.ts +85 -85
- package/extensions/discord/index.ts +3 -3
- package/extensions/discord/package.json +4 -4
- package/extensions/discord/src/channel.ts +1 -1
- package/extensions/discord/src/runtime.ts +1 -1
- package/extensions/google-antigravity-auth/README.md +3 -3
- package/extensions/google-antigravity-auth/index.ts +2 -2
- package/extensions/google-antigravity-auth/package.json +4 -4
- package/extensions/google-gemini-cli-auth/README.md +5 -5
- package/extensions/google-gemini-cli-auth/index.ts +3 -3
- package/extensions/google-gemini-cli-auth/oauth.ts +4 -4
- package/extensions/google-gemini-cli-auth/package.json +4 -4
- package/extensions/googlechat/index.ts +4 -4
- package/extensions/googlechat/node_modules/.bin/openclaw +16 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/googlechat/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/googlechat/package.json +7 -7
- package/extensions/googlechat/src/accounts.ts +9 -9
- package/extensions/googlechat/src/actions.ts +8 -8
- package/extensions/googlechat/src/api.ts +1 -1
- package/extensions/googlechat/src/channel.ts +23 -23
- package/extensions/googlechat/src/monitor.ts +9 -9
- package/extensions/googlechat/src/onboarding.ts +11 -11
- package/extensions/googlechat/src/runtime.ts +1 -1
- package/extensions/googlechat/src/types.config.ts +1 -1
- package/extensions/imessage/index.ts +3 -3
- package/extensions/imessage/package.json +4 -4
- package/extensions/imessage/src/channel.ts +1 -1
- package/extensions/imessage/src/runtime.ts +1 -1
- package/extensions/line/index.ts +3 -3
- package/extensions/line/node_modules/.bin/openclaw +16 -0
- package/extensions/line/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/line/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/line/package.json +6 -6
- package/extensions/line/src/card-command.ts +3 -3
- package/extensions/line/src/channel.logout.test.ts +4 -4
- package/extensions/line/src/channel.sendPayload.test.ts +8 -8
- package/extensions/line/src/channel.ts +5 -5
- package/extensions/line/src/runtime.ts +1 -1
- package/extensions/llm-task/README.md +4 -4
- package/extensions/llm-task/index.ts +2 -2
- package/extensions/llm-task/package.json +4 -4
- package/extensions/llm-task/src/llm-task-tool.ts +6 -6
- package/extensions/lobster/README.md +7 -7
- package/extensions/lobster/index.ts +2 -2
- package/extensions/lobster/package.json +3 -3
- package/extensions/lobster/src/lobster-tool.test.ts +7 -7
- package/extensions/lobster/src/lobster-tool.ts +2 -2
- package/extensions/matrix/CHANGELOG.md +14 -9
- package/extensions/matrix/index.ts +3 -3
- package/extensions/matrix/node_modules/.bin/markdown-it +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.CMD +0 -5
- package/extensions/matrix/node_modules/.bin/markdown-it.ps1 +0 -13
- package/extensions/matrix/node_modules/.bin/openclaw +16 -0
- package/extensions/matrix/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/matrix/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/matrix/package.json +6 -6
- package/extensions/matrix/src/actions.ts +1 -1
- package/extensions/matrix/src/channel.directory.test.ts +1 -1
- package/extensions/matrix/src/channel.ts +1 -1
- package/extensions/matrix/src/config-schema.ts +1 -1
- package/extensions/matrix/src/directory-live.ts +1 -1
- package/extensions/matrix/src/group-mentions.ts +1 -1
- package/extensions/matrix/src/matrix/accounts.ts +1 -1
- package/extensions/matrix/src/matrix/actions/client.ts +1 -1
- package/extensions/matrix/src/matrix/client/config.ts +1 -1
- package/extensions/matrix/src/matrix/deps.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/allowlist.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/auto-join.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/events.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/handler.ts +5 -5
- package/extensions/matrix/src/matrix/monitor/index.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/location.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/media.test.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/replies.ts +1 -1
- package/extensions/matrix/src/matrix/monitor/rooms.ts +1 -1
- package/extensions/matrix/src/matrix/poll-types.ts +1 -1
- package/extensions/matrix/src/matrix/send/client.ts +1 -1
- package/extensions/matrix/src/matrix/send.test.ts +1 -1
- package/extensions/matrix/src/matrix/send.ts +1 -1
- package/extensions/matrix/src/onboarding.ts +2 -2
- package/extensions/matrix/src/outbound.ts +1 -1
- package/extensions/matrix/src/resolve-targets.ts +1 -1
- package/extensions/matrix/src/runtime.ts +1 -1
- package/extensions/matrix/src/tool-actions.ts +1 -1
- package/extensions/mattermost/index.ts +3 -3
- package/extensions/mattermost/package.json +5 -5
- package/extensions/mattermost/src/channel.ts +1 -1
- package/extensions/mattermost/src/config-schema.ts +1 -1
- package/extensions/mattermost/src/group-mentions.ts +1 -1
- package/extensions/mattermost/src/mattermost/accounts.ts +9 -9
- package/extensions/mattermost/src/mattermost/monitor-helpers.ts +5 -5
- package/extensions/mattermost/src/mattermost/monitor.ts +4 -4
- package/extensions/mattermost/src/onboarding-helpers.ts +4 -4
- package/extensions/mattermost/src/onboarding.ts +4 -4
- package/extensions/mattermost/src/runtime.ts +1 -1
- package/extensions/mattermost/src/types.ts +1 -1
- package/extensions/memory-core/index.ts +3 -3
- package/extensions/memory-core/node_modules/.bin/openclaw +16 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/memory-core/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/memory-core/package.json +6 -6
- package/extensions/memory-lancedb/config.ts +26 -2
- package/extensions/memory-lancedb/index.test.ts +3 -3
- package/extensions/memory-lancedb/index.ts +4 -4
- package/extensions/memory-lancedb/node_modules/.bin/openai +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.CMD +0 -5
- package/extensions/memory-lancedb/node_modules/.bin/openai.ps1 +0 -13
- package/extensions/memory-lancedb/{clawdbot.plugin.json → openclaw.plugin.json} +1 -1
- package/extensions/memory-lancedb/package.json +4 -4
- package/extensions/msteams/CHANGELOG.md +12 -7
- package/extensions/msteams/index.ts +3 -3
- package/extensions/msteams/node_modules/.bin/openclaw +16 -0
- package/extensions/msteams/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/msteams/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/msteams/package.json +6 -6
- package/extensions/msteams/src/attachments.test.ts +1 -1
- package/extensions/msteams/src/channel.directory.test.ts +2 -2
- package/extensions/msteams/src/channel.ts +3 -3
- package/extensions/msteams/src/conversation-store-fs.test.ts +6 -5
- package/extensions/msteams/src/directory-live.ts +1 -1
- package/extensions/msteams/src/graph-upload.ts +4 -4
- package/extensions/msteams/src/media-helpers.ts +1 -1
- package/extensions/msteams/src/messenger.test.ts +1 -1
- package/extensions/msteams/src/messenger.ts +1 -1
- package/extensions/msteams/src/monitor-handler/message-handler.ts +1 -1
- package/extensions/msteams/src/monitor-handler.ts +2 -2
- package/extensions/msteams/src/monitor.ts +3 -3
- package/extensions/msteams/src/onboarding.ts +11 -11
- package/extensions/msteams/src/outbound.ts +1 -1
- package/extensions/msteams/src/policy.test.ts +1 -1
- package/extensions/msteams/src/policy.ts +2 -2
- package/extensions/msteams/src/polls-store.test.ts +1 -1
- package/extensions/msteams/src/polls.test.ts +6 -5
- package/extensions/msteams/src/polls.ts +9 -8
- package/extensions/msteams/src/probe.test.ts +1 -1
- package/extensions/msteams/src/probe.ts +1 -1
- package/extensions/msteams/src/reply-dispatcher.ts +3 -3
- package/extensions/msteams/src/runtime.ts +1 -1
- package/extensions/msteams/src/send-context.ts +2 -2
- package/extensions/msteams/src/send.ts +5 -5
- package/extensions/msteams/src/token.ts +1 -1
- package/extensions/nextcloud-talk/index.ts +3 -3
- package/extensions/nextcloud-talk/package.json +5 -5
- package/extensions/nextcloud-talk/src/accounts.ts +2 -2
- package/extensions/nextcloud-talk/src/channel.ts +8 -8
- package/extensions/nextcloud-talk/src/config-schema.ts +1 -1
- package/extensions/nextcloud-talk/src/inbound.ts +8 -8
- package/extensions/nextcloud-talk/src/monitor.ts +1 -1
- package/extensions/nextcloud-talk/src/onboarding.ts +2 -2
- package/extensions/nextcloud-talk/src/policy.ts +2 -2
- package/extensions/nextcloud-talk/src/room-info.ts +1 -1
- package/extensions/nextcloud-talk/src/runtime.ts +1 -1
- package/extensions/nextcloud-talk/src/types.ts +1 -1
- package/extensions/nostr/CHANGELOG.md +9 -4
- package/extensions/nostr/README.md +5 -5
- package/extensions/nostr/index.ts +6 -6
- package/extensions/nostr/node_modules/.bin/openclaw +16 -0
- package/extensions/nostr/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/nostr/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/nostr/package.json +6 -6
- package/extensions/nostr/src/channel.ts +2 -2
- package/extensions/nostr/src/config-schema.ts +1 -1
- package/extensions/nostr/src/nostr-state-store.test.ts +9 -8
- package/extensions/nostr/src/runtime.ts +1 -1
- package/extensions/nostr/src/types.ts +4 -4
- package/extensions/open-prose/index.ts +2 -2
- package/extensions/open-prose/package.json +3 -3
- package/extensions/open-prose/skills/prose/SKILL.md +5 -5
- package/extensions/open-prose/skills/prose/prose.md +4 -4
- package/extensions/qwen-portal-auth/README.md +3 -3
- package/extensions/qwen-portal-auth/index.ts +1 -1
- package/extensions/signal/index.ts +3 -3
- package/extensions/signal/package.json +4 -4
- package/extensions/signal/src/channel.ts +1 -1
- package/extensions/signal/src/runtime.ts +1 -1
- package/extensions/slack/index.ts +3 -3
- package/extensions/slack/package.json +4 -4
- package/extensions/slack/src/channel.ts +1 -1
- package/extensions/slack/src/runtime.ts +1 -1
- package/extensions/telegram/index.ts +3 -3
- package/extensions/telegram/package.json +4 -4
- package/extensions/telegram/src/channel.ts +3 -3
- package/extensions/telegram/src/runtime.ts +1 -1
- package/extensions/tlon/README.md +3 -3
- package/extensions/tlon/index.ts +3 -3
- package/extensions/tlon/package.json +5 -5
- package/extensions/tlon/src/channel.ts +15 -15
- package/extensions/tlon/src/config-schema.ts +1 -1
- package/extensions/tlon/src/monitor/discovery.ts +1 -1
- package/extensions/tlon/src/monitor/history.ts +1 -1
- package/extensions/tlon/src/monitor/index.ts +3 -3
- package/extensions/tlon/src/onboarding.ts +4 -4
- package/extensions/tlon/src/runtime.ts +1 -1
- package/extensions/tlon/src/types.ts +3 -3
- package/extensions/twitch/CHANGELOG.md +6 -1
- package/extensions/twitch/README.md +8 -8
- package/extensions/twitch/index.ts +3 -3
- package/extensions/twitch/node_modules/.bin/openclaw +16 -0
- package/extensions/twitch/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/twitch/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/twitch/package.json +5 -5
- package/extensions/twitch/src/actions.ts +1 -1
- package/extensions/twitch/src/config-schema.ts +1 -1
- package/extensions/twitch/src/config.ts +3 -3
- package/extensions/twitch/src/monitor.ts +3 -3
- package/extensions/twitch/src/onboarding.test.ts +1 -1
- package/extensions/twitch/src/onboarding.ts +13 -13
- package/extensions/twitch/src/outbound.test.ts +2 -2
- package/extensions/twitch/src/outbound.ts +2 -2
- package/extensions/twitch/src/plugin.test.ts +2 -2
- package/extensions/twitch/src/plugin.ts +9 -9
- package/extensions/twitch/src/runtime.ts +1 -1
- package/extensions/twitch/src/send.test.ts +2 -2
- package/extensions/twitch/src/send.ts +5 -5
- package/extensions/twitch/src/token.test.ts +12 -12
- package/extensions/twitch/src/token.ts +7 -7
- package/extensions/twitch/src/twitch-client.ts +4 -4
- package/extensions/twitch/src/types.ts +3 -3
- package/extensions/twitch/src/utils/markdown.ts +1 -1
- package/extensions/voice-call/CHANGELOG.md +16 -11
- package/extensions/voice-call/README.md +16 -16
- package/extensions/voice-call/package.json +4 -4
- package/extensions/voice-call/src/cli.ts +16 -4
- package/extensions/voice-call/src/core-bridge.ts +5 -5
- package/extensions/voice-call/src/manager.test.ts +2 -2
- package/extensions/voice-call/src/manager.ts +17 -5
- package/extensions/voice-call/src/response-generator.ts +1 -1
- package/extensions/whatsapp/index.ts +3 -3
- package/extensions/whatsapp/package.json +4 -4
- package/extensions/whatsapp/src/channel.ts +1 -1
- package/extensions/whatsapp/src/runtime.ts +1 -1
- package/extensions/zalo/CHANGELOG.md +14 -9
- package/extensions/zalo/README.md +4 -4
- package/extensions/zalo/index.ts +3 -3
- package/extensions/zalo/node_modules/.bin/openclaw +16 -0
- package/extensions/zalo/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalo/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalo/package.json +6 -6
- package/extensions/zalo/src/accounts.ts +9 -9
- package/extensions/zalo/src/actions.ts +6 -6
- package/extensions/zalo/src/channel.directory.test.ts +2 -2
- package/extensions/zalo/src/channel.ts +20 -20
- package/extensions/zalo/src/config-schema.ts +1 -1
- package/extensions/zalo/src/monitor.ts +9 -9
- package/extensions/zalo/src/monitor.webhook.test.ts +2 -2
- package/extensions/zalo/src/onboarding.ts +27 -27
- package/extensions/zalo/src/runtime.ts +1 -1
- package/extensions/zalo/src/send.ts +2 -2
- package/extensions/zalo/src/status-issues.ts +1 -1
- package/extensions/zalo/src/token.ts +1 -1
- package/extensions/zalouser/CHANGELOG.md +9 -4
- package/extensions/zalouser/README.md +18 -18
- package/extensions/zalouser/index.ts +3 -3
- package/extensions/zalouser/node_modules/.bin/openclaw +16 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.CMD +7 -0
- package/extensions/zalouser/node_modules/.bin/openclaw.ps1 +28 -0
- package/extensions/zalouser/package.json +6 -6
- package/extensions/zalouser/src/accounts.ts +10 -10
- package/extensions/zalouser/src/channel.ts +27 -27
- package/extensions/zalouser/src/config-schema.ts +1 -1
- package/extensions/zalouser/src/monitor.ts +5 -5
- package/extensions/zalouser/src/onboarding.ts +32 -32
- package/extensions/zalouser/src/runtime.ts +1 -1
- package/extensions/zalouser/src/status-issues.ts +2 -2
- package/openclaw.mjs +14 -0
- package/package.json +35 -25
- package/scripts/postinstall.js +1 -0
- package/skills/1password/SKILL.md +3 -3
- package/skills/apple-notes/SKILL.md +2 -2
- package/skills/apple-reminders/SKILL.md +1 -1
- package/skills/bear-notes/SKILL.md +1 -1
- package/skills/bird/SKILL.md +1 -1
- package/skills/blogwatcher/SKILL.md +1 -1
- package/skills/blucli/SKILL.md +1 -1
- package/skills/bluebubbles/SKILL.md +1 -1
- package/skills/camsnap/SKILL.md +1 -1
- package/skills/canvas/SKILL.md +6 -6
- package/skills/clawdhub/SKILL.md +2 -2
- package/skills/coding-agent/SKILL.md +6 -6
- package/skills/discord/SKILL.md +5 -5
- package/skills/eightctl/SKILL.md +1 -1
- package/skills/food-order/SKILL.md +1 -1
- package/skills/gemini/SKILL.md +1 -1
- package/skills/gifgrep/SKILL.md +1 -1
- package/skills/github/SKILL.md +1 -1
- package/skills/gog/SKILL.md +1 -1
- package/skills/goplaces/SKILL.md +1 -1
- package/skills/himalaya/SKILL.md +1 -1
- package/skills/imsg/SKILL.md +1 -1
- package/skills/local-places/SKILL.md +1 -1
- package/skills/mcporter/SKILL.md +1 -1
- package/skills/model-usage/SKILL.md +1 -1
- package/skills/nano-banana-pro/SKILL.md +3 -3
- package/skills/nano-banana-pro/scripts/generate_image.py +1 -1
- package/skills/nano-pdf/SKILL.md +1 -1
- package/skills/notion/SKILL.md +1 -1
- package/skills/obsidian/SKILL.md +1 -1
- package/skills/openai-image-gen/SKILL.md +1 -1
- package/skills/openai-whisper/SKILL.md +1 -1
- package/skills/openai-whisper-api/SKILL.md +2 -2
- package/skills/openhue/SKILL.md +1 -1
- package/skills/oracle/SKILL.md +1 -1
- package/skills/ordercli/SKILL.md +1 -1
- package/skills/peekaboo/SKILL.md +1 -1
- package/skills/sag/SKILL.md +1 -1
- package/skills/session-logs/SKILL.md +1 -1
- package/skills/sherpa-onnx-tts/SKILL.md +2 -2
- package/skills/slack/SKILL.md +4 -4
- package/skills/songsee/SKILL.md +1 -1
- package/skills/sonoscli/SKILL.md +1 -1
- package/skills/spotify-player/SKILL.md +1 -1
- package/skills/summarize/SKILL.md +1 -1
- package/skills/things-mac/SKILL.md +3 -3
- package/skills/tmux/SKILL.md +7 -7
- package/skills/trello/SKILL.md +2 -2
- package/skills/video-frames/SKILL.md +1 -1
- package/skills/voice-call/SKILL.md +4 -4
- package/skills/wacli/SKILL.md +2 -2
- package/skills/weather/SKILL.md +1 -1
- package/dist/control-ui/assets/index-BAFzd9IE.css +0 -1
- package/dist/control-ui/assets/index-CxLFx0Ae.js.map +0 -1
- package/dist/control-ui/pixel_pig_icon.png +0 -0
- package/dist/daemon/legacy.js +0 -44
- /package/dist/config/{types.clawdbot.js → types.openclaw.js} +0 -0
- /package/docs/{whatsapp-clawd.jpg → whatsapp-openclaw.jpg} +0 -0
- /package/extensions/bluebubbles/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/copilot-proxy/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/diagnostics-otel/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/discord/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-antigravity-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/google-gemini-cli-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/googlechat/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/imessage/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/line/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/llm-task/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/lobster/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/matrix/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/mattermost/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/memory-core/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/msteams/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nextcloud-talk/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/nostr/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/open-prose/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/qwen-portal-auth/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/signal/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/slack/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/telegram/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/tlon/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/twitch/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/voice-call/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/whatsapp/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalo/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
- /package/extensions/zalouser/{clawdbot.plugin.json → openclaw.plugin.json} +0 -0
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<svg viewBox="0 0 120 120" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="lobster-gradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" stop-color="#ff4d4d"/>
|
|
5
|
+
<stop offset="100%" stop-color="#991b1b"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
</defs>
|
|
8
|
+
<!-- Body -->
|
|
9
|
+
<path d="M60 10 C30 10 15 35 15 55 C15 75 30 95 45 100 L45 110 L55 110 L55 100 C55 100 60 102 65 100 L65 110 L75 110 L75 100 C90 95 105 75 105 55 C105 35 90 10 60 10Z" fill="url(#lobster-gradient)"/>
|
|
10
|
+
<!-- Left Claw -->
|
|
11
|
+
<path d="M20 45 C5 40 0 50 5 60 C10 70 20 65 25 55 C28 48 25 45 20 45Z" fill="url(#lobster-gradient)"/>
|
|
12
|
+
<!-- Right Claw -->
|
|
13
|
+
<path d="M100 45 C115 40 120 50 115 60 C110 70 100 65 95 55 C92 48 95 45 100 45Z" fill="url(#lobster-gradient)"/>
|
|
14
|
+
<!-- Antenna -->
|
|
15
|
+
<path d="M45 15 Q35 5 30 8" stroke="#ff4d4d" stroke-width="3" stroke-linecap="round"/>
|
|
16
|
+
<path d="M75 15 Q85 5 90 8" stroke="#ff4d4d" stroke-width="3" stroke-linecap="round"/>
|
|
17
|
+
<!-- Eyes -->
|
|
18
|
+
<circle cx="45" cy="35" r="6" fill="#050810"/>
|
|
19
|
+
<circle cx="75" cy="35" r="6" fill="#050810"/>
|
|
20
|
+
<circle cx="46" cy="34" r="2.5" fill="#00e5cc"/>
|
|
21
|
+
<circle cx="76" cy="34" r="2.5" fill="#00e5cc"/>
|
|
22
|
+
</svg>
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>
|
|
6
|
+
<title>OpenClaw Control</title>
|
|
7
7
|
<meta name="color-scheme" content="dark light" />
|
|
8
|
-
<link rel="icon" href="./favicon.
|
|
9
|
-
<
|
|
10
|
-
<link rel="
|
|
8
|
+
<link rel="icon" type="image/svg+xml" href="./favicon.svg" />
|
|
9
|
+
<link rel="icon" type="image/png" sizes="32x32" href="./favicon-32.png" />
|
|
10
|
+
<link rel="apple-touch-icon" sizes="180x180" href="./apple-touch-icon.png" />
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-DFDgq9AK.js"></script>
|
|
12
|
+
<link rel="stylesheet" crossorigin href="./assets/index-BKPyesll.css">
|
|
11
13
|
</head>
|
|
12
14
|
<body>
|
|
13
|
-
<
|
|
15
|
+
<openclaw-app></openclaw-app>
|
|
14
16
|
</body>
|
|
15
17
|
</html>
|
package/dist/daemon/constants.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
// Default service labels (
|
|
2
|
-
export const GATEWAY_LAUNCH_AGENT_LABEL = "
|
|
3
|
-
export const GATEWAY_SYSTEMD_SERVICE_NAME = "
|
|
4
|
-
export const GATEWAY_WINDOWS_TASK_NAME = "
|
|
5
|
-
export const GATEWAY_SERVICE_MARKER = "
|
|
1
|
+
// Default service labels (canonical + legacy compatibility)
|
|
2
|
+
export const GATEWAY_LAUNCH_AGENT_LABEL = "ai.openclaw.gateway";
|
|
3
|
+
export const GATEWAY_SYSTEMD_SERVICE_NAME = "openclaw-gateway";
|
|
4
|
+
export const GATEWAY_WINDOWS_TASK_NAME = "OpenClaw Gateway";
|
|
5
|
+
export const GATEWAY_SERVICE_MARKER = "openclaw";
|
|
6
6
|
export const GATEWAY_SERVICE_KIND = "gateway";
|
|
7
|
-
export const NODE_LAUNCH_AGENT_LABEL = "
|
|
8
|
-
export const NODE_SYSTEMD_SERVICE_NAME = "
|
|
9
|
-
export const NODE_WINDOWS_TASK_NAME = "
|
|
10
|
-
export const NODE_SERVICE_MARKER = "
|
|
7
|
+
export const NODE_LAUNCH_AGENT_LABEL = "ai.openclaw.node";
|
|
8
|
+
export const NODE_SYSTEMD_SERVICE_NAME = "openclaw-node";
|
|
9
|
+
export const NODE_WINDOWS_TASK_NAME = "OpenClaw Node";
|
|
10
|
+
export const NODE_SERVICE_MARKER = "openclaw";
|
|
11
11
|
export const NODE_SERVICE_KIND = "node";
|
|
12
12
|
export const NODE_WINDOWS_TASK_SCRIPT_NAME = "node.cmd";
|
|
13
|
-
export const LEGACY_GATEWAY_LAUNCH_AGENT_LABELS = [
|
|
14
|
-
"com.clawdbot.gateway",
|
|
15
|
-
"com.steipete.clawdbot.gateway",
|
|
16
|
-
];
|
|
13
|
+
export const LEGACY_GATEWAY_LAUNCH_AGENT_LABELS = [];
|
|
17
14
|
export const LEGACY_GATEWAY_SYSTEMD_SERVICE_NAMES = [];
|
|
18
15
|
export const LEGACY_GATEWAY_WINDOWS_TASK_NAMES = [];
|
|
19
16
|
export function normalizeGatewayProfile(profile) {
|
|
@@ -31,26 +28,23 @@ export function resolveGatewayLaunchAgentLabel(profile) {
|
|
|
31
28
|
if (!normalized) {
|
|
32
29
|
return GATEWAY_LAUNCH_AGENT_LABEL;
|
|
33
30
|
}
|
|
34
|
-
return `
|
|
31
|
+
return `ai.openclaw.${normalized}`;
|
|
35
32
|
}
|
|
36
33
|
export function resolveLegacyGatewayLaunchAgentLabels(profile) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return [...LEGACY_GATEWAY_LAUNCH_AGENT_LABELS];
|
|
40
|
-
}
|
|
41
|
-
return [...LEGACY_GATEWAY_LAUNCH_AGENT_LABELS, `com.clawdbot.${normalized}`];
|
|
34
|
+
void profile;
|
|
35
|
+
return [];
|
|
42
36
|
}
|
|
43
37
|
export function resolveGatewaySystemdServiceName(profile) {
|
|
44
38
|
const suffix = resolveGatewayProfileSuffix(profile);
|
|
45
39
|
if (!suffix)
|
|
46
40
|
return GATEWAY_SYSTEMD_SERVICE_NAME;
|
|
47
|
-
return `
|
|
41
|
+
return `openclaw-gateway${suffix}`;
|
|
48
42
|
}
|
|
49
43
|
export function resolveGatewayWindowsTaskName(profile) {
|
|
50
44
|
const normalized = normalizeGatewayProfile(profile);
|
|
51
45
|
if (!normalized)
|
|
52
46
|
return GATEWAY_WINDOWS_TASK_NAME;
|
|
53
|
-
return `
|
|
47
|
+
return `OpenClaw Gateway (${normalized})`;
|
|
54
48
|
}
|
|
55
49
|
export function formatGatewayServiceDescription(params) {
|
|
56
50
|
const profile = normalizeGatewayProfile(params?.profile);
|
|
@@ -61,8 +55,8 @@ export function formatGatewayServiceDescription(params) {
|
|
|
61
55
|
if (version)
|
|
62
56
|
parts.push(`v${version}`);
|
|
63
57
|
if (parts.length === 0)
|
|
64
|
-
return "
|
|
65
|
-
return `
|
|
58
|
+
return "OpenClaw Gateway";
|
|
59
|
+
return `OpenClaw Gateway (${parts.join(", ")})`;
|
|
66
60
|
}
|
|
67
61
|
export function resolveNodeLaunchAgentLabel() {
|
|
68
62
|
return NODE_LAUNCH_AGENT_LABEL;
|
|
@@ -76,6 +70,6 @@ export function resolveNodeWindowsTaskName() {
|
|
|
76
70
|
export function formatNodeServiceDescription(params) {
|
|
77
71
|
const version = params?.version?.trim();
|
|
78
72
|
if (!version)
|
|
79
|
-
return "
|
|
80
|
-
return `
|
|
73
|
+
return "OpenClaw Node Host";
|
|
74
|
+
return `OpenClaw Node Host (v${version})`;
|
|
81
75
|
}
|
package/dist/daemon/inspect.js
CHANGED
|
@@ -2,11 +2,11 @@ import { execFile } from "node:child_process";
|
|
|
2
2
|
import fs from "node:fs/promises";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
|
-
import { GATEWAY_SERVICE_KIND, GATEWAY_SERVICE_MARKER,
|
|
6
|
-
const EXTRA_MARKERS = ["moltbot"];
|
|
5
|
+
import { GATEWAY_SERVICE_KIND, GATEWAY_SERVICE_MARKER, resolveGatewayLaunchAgentLabel, resolveGatewaySystemdServiceName, resolveGatewayWindowsTaskName, } from "./constants.js";
|
|
6
|
+
const EXTRA_MARKERS = ["openclaw", "clawdbot", "moltbot"];
|
|
7
7
|
const execFileAsync = promisify(execFile);
|
|
8
8
|
export function renderGatewayServiceCleanupHints(env = process.env) {
|
|
9
|
-
const profile = env.
|
|
9
|
+
const profile = env.OPENCLAW_PROFILE;
|
|
10
10
|
switch (process.platform) {
|
|
11
11
|
case "darwin": {
|
|
12
12
|
const label = resolveGatewayLaunchAgentLabel(profile);
|
|
@@ -33,38 +33,48 @@ function resolveHomeDir(env) {
|
|
|
33
33
|
throw new Error("Missing HOME");
|
|
34
34
|
return home;
|
|
35
35
|
}
|
|
36
|
-
function
|
|
36
|
+
function detectMarker(content) {
|
|
37
37
|
const lower = content.toLowerCase();
|
|
38
|
-
|
|
38
|
+
for (const marker of EXTRA_MARKERS) {
|
|
39
|
+
if (lower.includes(marker))
|
|
40
|
+
return marker;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
39
43
|
}
|
|
40
44
|
function hasGatewayServiceMarker(content) {
|
|
41
45
|
const lower = content.toLowerCase();
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
const markerKeys = ["openclaw_service_marker"];
|
|
47
|
+
const kindKeys = ["openclaw_service_kind"];
|
|
48
|
+
const markerValues = [GATEWAY_SERVICE_MARKER.toLowerCase()];
|
|
49
|
+
const hasMarkerKey = markerKeys.some((key) => lower.includes(key));
|
|
50
|
+
const hasKindKey = kindKeys.some((key) => lower.includes(key));
|
|
51
|
+
const hasMarkerValue = markerValues.some((value) => lower.includes(value));
|
|
52
|
+
return (hasMarkerKey &&
|
|
53
|
+
hasKindKey &&
|
|
54
|
+
hasMarkerValue &&
|
|
45
55
|
lower.includes(GATEWAY_SERVICE_KIND.toLowerCase()));
|
|
46
56
|
}
|
|
47
|
-
function
|
|
57
|
+
function isOpenClawGatewayLaunchdService(label, contents) {
|
|
48
58
|
if (hasGatewayServiceMarker(contents))
|
|
49
59
|
return true;
|
|
50
60
|
const lowerContents = contents.toLowerCase();
|
|
51
61
|
if (!lowerContents.includes("gateway"))
|
|
52
62
|
return false;
|
|
53
|
-
return label.startsWith("
|
|
63
|
+
return label.startsWith("ai.openclaw.");
|
|
54
64
|
}
|
|
55
|
-
function
|
|
65
|
+
function isOpenClawGatewaySystemdService(name, contents) {
|
|
56
66
|
if (hasGatewayServiceMarker(contents))
|
|
57
67
|
return true;
|
|
58
|
-
if (!name.startsWith("
|
|
68
|
+
if (!name.startsWith("openclaw-gateway"))
|
|
59
69
|
return false;
|
|
60
70
|
return contents.toLowerCase().includes("gateway");
|
|
61
71
|
}
|
|
62
|
-
function
|
|
72
|
+
function isOpenClawGatewayTaskName(name) {
|
|
63
73
|
const normalized = name.trim().toLowerCase();
|
|
64
74
|
if (!normalized)
|
|
65
75
|
return false;
|
|
66
76
|
const defaultName = resolveGatewayWindowsTaskName().toLowerCase();
|
|
67
|
-
return normalized === defaultName || normalized.startsWith("
|
|
77
|
+
return normalized === defaultName || normalized.startsWith("openclaw gateway");
|
|
68
78
|
}
|
|
69
79
|
function tryExtractPlistLabel(contents) {
|
|
70
80
|
const match = contents.match(/<key>Label<\/key>\s*<string>([\s\S]*?)<\/string>/i);
|
|
@@ -73,12 +83,14 @@ function tryExtractPlistLabel(contents) {
|
|
|
73
83
|
return match[1]?.trim() || null;
|
|
74
84
|
}
|
|
75
85
|
function isIgnoredLaunchdLabel(label) {
|
|
76
|
-
return
|
|
77
|
-
resolveLegacyGatewayLaunchAgentLabels(process.env.CLAWDBOT_PROFILE).includes(label));
|
|
86
|
+
return label === resolveGatewayLaunchAgentLabel();
|
|
78
87
|
}
|
|
79
88
|
function isIgnoredSystemdName(name) {
|
|
80
|
-
return
|
|
81
|
-
|
|
89
|
+
return name === resolveGatewaySystemdServiceName();
|
|
90
|
+
}
|
|
91
|
+
function isLegacyLabel(label) {
|
|
92
|
+
const lower = label.toLowerCase();
|
|
93
|
+
return lower.includes("clawdbot") || lower.includes("moltbot");
|
|
82
94
|
}
|
|
83
95
|
async function scanLaunchdDir(params) {
|
|
84
96
|
const results = [];
|
|
@@ -103,18 +115,33 @@ async function scanLaunchdDir(params) {
|
|
|
103
115
|
catch {
|
|
104
116
|
continue;
|
|
105
117
|
}
|
|
106
|
-
|
|
107
|
-
continue;
|
|
118
|
+
const marker = detectMarker(contents);
|
|
108
119
|
const label = tryExtractPlistLabel(contents) ?? labelFromName;
|
|
120
|
+
if (!marker) {
|
|
121
|
+
const legacyLabel = isLegacyLabel(labelFromName) || isLegacyLabel(label);
|
|
122
|
+
if (!legacyLabel)
|
|
123
|
+
continue;
|
|
124
|
+
results.push({
|
|
125
|
+
platform: "darwin",
|
|
126
|
+
label,
|
|
127
|
+
detail: `plist: ${fullPath}`,
|
|
128
|
+
scope: params.scope,
|
|
129
|
+
marker: isLegacyLabel(label) ? "clawdbot" : "moltbot",
|
|
130
|
+
legacy: true,
|
|
131
|
+
});
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
109
134
|
if (isIgnoredLaunchdLabel(label))
|
|
110
135
|
continue;
|
|
111
|
-
if (
|
|
136
|
+
if (marker === "openclaw" && isOpenClawGatewayLaunchdService(label, contents))
|
|
112
137
|
continue;
|
|
113
138
|
results.push({
|
|
114
139
|
platform: "darwin",
|
|
115
140
|
label,
|
|
116
141
|
detail: `plist: ${fullPath}`,
|
|
117
142
|
scope: params.scope,
|
|
143
|
+
marker,
|
|
144
|
+
legacy: marker !== "openclaw" || isLegacyLabel(label),
|
|
118
145
|
});
|
|
119
146
|
}
|
|
120
147
|
return results;
|
|
@@ -142,15 +169,18 @@ async function scanSystemdDir(params) {
|
|
|
142
169
|
catch {
|
|
143
170
|
continue;
|
|
144
171
|
}
|
|
145
|
-
|
|
172
|
+
const marker = detectMarker(contents);
|
|
173
|
+
if (!marker)
|
|
146
174
|
continue;
|
|
147
|
-
if (
|
|
175
|
+
if (marker === "openclaw" && isOpenClawGatewaySystemdService(name, contents))
|
|
148
176
|
continue;
|
|
149
177
|
results.push({
|
|
150
178
|
platform: "linux",
|
|
151
179
|
label: entry,
|
|
152
180
|
detail: `unit: ${fullPath}`,
|
|
153
181
|
scope: params.scope,
|
|
182
|
+
marker,
|
|
183
|
+
legacy: marker !== "openclaw",
|
|
154
184
|
});
|
|
155
185
|
}
|
|
156
186
|
return results;
|
|
@@ -292,20 +322,26 @@ export async function findExtraGatewayServices(env, opts = {}) {
|
|
|
292
322
|
const name = task.name.trim();
|
|
293
323
|
if (!name)
|
|
294
324
|
continue;
|
|
295
|
-
if (
|
|
296
|
-
continue;
|
|
297
|
-
if (LEGACY_GATEWAY_WINDOWS_TASK_NAMES.includes(name))
|
|
325
|
+
if (isOpenClawGatewayTaskName(name))
|
|
298
326
|
continue;
|
|
299
327
|
const lowerName = name.toLowerCase();
|
|
300
328
|
const lowerCommand = task.taskToRun?.toLowerCase() ?? "";
|
|
301
|
-
|
|
302
|
-
|
|
329
|
+
let marker = null;
|
|
330
|
+
for (const candidate of EXTRA_MARKERS) {
|
|
331
|
+
if (lowerName.includes(candidate) || lowerCommand.includes(candidate)) {
|
|
332
|
+
marker = candidate;
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
if (!marker)
|
|
303
337
|
continue;
|
|
304
338
|
push({
|
|
305
339
|
platform: "win32",
|
|
306
340
|
label: name,
|
|
307
341
|
detail: task.taskToRun ? `task: ${name}, run: ${task.taskToRun}` : name,
|
|
308
342
|
scope: "system",
|
|
343
|
+
marker,
|
|
344
|
+
legacy: marker !== "openclaw",
|
|
309
345
|
});
|
|
310
346
|
}
|
|
311
347
|
return results;
|
package/dist/daemon/launchd.js
CHANGED
|
@@ -14,10 +14,10 @@ const formatLine = (label, value) => {
|
|
|
14
14
|
return `${colorize(rich, theme.muted, `${label}:`)} ${colorize(rich, theme.command, value)}`;
|
|
15
15
|
};
|
|
16
16
|
function resolveLaunchAgentLabel(args) {
|
|
17
|
-
const envLabel = args?.env?.
|
|
17
|
+
const envLabel = args?.env?.OPENCLAW_LAUNCHD_LABEL?.trim();
|
|
18
18
|
if (envLabel)
|
|
19
19
|
return envLabel;
|
|
20
|
-
return resolveGatewayLaunchAgentLabel(args?.env?.
|
|
20
|
+
return resolveGatewayLaunchAgentLabel(args?.env?.OPENCLAW_PROFILE);
|
|
21
21
|
}
|
|
22
22
|
function resolveLaunchAgentPlistPathForLabel(env, label) {
|
|
23
23
|
const home = toPosixPath(resolveHomeDir(env));
|
|
@@ -30,7 +30,7 @@ export function resolveLaunchAgentPlistPath(env) {
|
|
|
30
30
|
export function resolveGatewayLogPaths(env) {
|
|
31
31
|
const stateDir = resolveGatewayStateDir(env);
|
|
32
32
|
const logDir = path.join(stateDir, "logs");
|
|
33
|
-
const prefix = env.
|
|
33
|
+
const prefix = env.OPENCLAW_LOG_PREFIX?.trim() || "gateway";
|
|
34
34
|
return {
|
|
35
35
|
logDir,
|
|
36
36
|
stdoutPath: path.join(logDir, `${prefix}.log`),
|
|
@@ -166,7 +166,7 @@ export async function repairLaunchAgentBootstrap(args) {
|
|
|
166
166
|
export async function findLegacyLaunchAgents(env) {
|
|
167
167
|
const domain = resolveGuiDomain();
|
|
168
168
|
const results = [];
|
|
169
|
-
for (const label of resolveLegacyGatewayLaunchAgentLabels(env.
|
|
169
|
+
for (const label of resolveLegacyGatewayLaunchAgentLabels(env.OPENCLAW_PROFILE)) {
|
|
170
170
|
const plistPath = resolveLaunchAgentPlistPathForLabel(env, label);
|
|
171
171
|
const res = await execLaunchctl(["print", `${domain}/${label}`]);
|
|
172
172
|
const loaded = res.code === 0;
|
|
@@ -262,7 +262,7 @@ export async function installLaunchAgent({ env, stdout, programArguments, workin
|
|
|
262
262
|
await fs.mkdir(logDir, { recursive: true });
|
|
263
263
|
const domain = resolveGuiDomain();
|
|
264
264
|
const label = resolveLaunchAgentLabel({ env });
|
|
265
|
-
for (const legacyLabel of resolveLegacyGatewayLaunchAgentLabels(env.
|
|
265
|
+
for (const legacyLabel of resolveLegacyGatewayLaunchAgentLabels(env.OPENCLAW_PROFILE)) {
|
|
266
266
|
const legacyPlistPath = resolveLaunchAgentPlistPathForLabel(env, legacyLabel);
|
|
267
267
|
await execLaunchctl(["bootout", domain, legacyPlistPath]);
|
|
268
268
|
await execLaunchctl(["unload", legacyPlistPath]);
|
|
@@ -277,8 +277,8 @@ export async function installLaunchAgent({ env, stdout, programArguments, workin
|
|
|
277
277
|
await fs.mkdir(path.dirname(plistPath), { recursive: true });
|
|
278
278
|
const serviceDescription = description ??
|
|
279
279
|
formatGatewayServiceDescription({
|
|
280
|
-
profile: env.
|
|
281
|
-
version: environment?.
|
|
280
|
+
profile: env.OPENCLAW_PROFILE,
|
|
281
|
+
version: environment?.OPENCLAW_SERVICE_VERSION ?? env.OPENCLAW_SERVICE_VERSION,
|
|
282
282
|
});
|
|
283
283
|
const plist = buildLaunchAgentPlist({
|
|
284
284
|
label,
|
|
@@ -3,13 +3,13 @@ import { NODE_SERVICE_KIND, NODE_SERVICE_MARKER, NODE_WINDOWS_TASK_SCRIPT_NAME,
|
|
|
3
3
|
function withNodeServiceEnv(env) {
|
|
4
4
|
return {
|
|
5
5
|
...env,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
OPENCLAW_LAUNCHD_LABEL: resolveNodeLaunchAgentLabel(),
|
|
7
|
+
OPENCLAW_SYSTEMD_UNIT: resolveNodeSystemdServiceName(),
|
|
8
|
+
OPENCLAW_WINDOWS_TASK_NAME: resolveNodeWindowsTaskName(),
|
|
9
|
+
OPENCLAW_TASK_SCRIPT_NAME: NODE_WINDOWS_TASK_SCRIPT_NAME,
|
|
10
|
+
OPENCLAW_LOG_PREFIX: "node",
|
|
11
|
+
OPENCLAW_SERVICE_MARKER: NODE_SERVICE_MARKER,
|
|
12
|
+
OPENCLAW_SERVICE_KIND: NODE_SERVICE_KIND,
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
15
|
function withNodeInstallEnv(args) {
|
|
@@ -18,13 +18,13 @@ function withNodeInstallEnv(args) {
|
|
|
18
18
|
env: withNodeServiceEnv(args.env),
|
|
19
19
|
environment: {
|
|
20
20
|
...args.environment,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
OPENCLAW_LAUNCHD_LABEL: resolveNodeLaunchAgentLabel(),
|
|
22
|
+
OPENCLAW_SYSTEMD_UNIT: resolveNodeSystemdServiceName(),
|
|
23
|
+
OPENCLAW_WINDOWS_TASK_NAME: resolveNodeWindowsTaskName(),
|
|
24
|
+
OPENCLAW_TASK_SCRIPT_NAME: NODE_WINDOWS_TASK_SCRIPT_NAME,
|
|
25
|
+
OPENCLAW_LOG_PREFIX: "node",
|
|
26
|
+
OPENCLAW_SERVICE_MARKER: NODE_SERVICE_MARKER,
|
|
27
|
+
OPENCLAW_SERVICE_KIND: NODE_SERVICE_KIND,
|
|
28
28
|
},
|
|
29
29
|
};
|
|
30
30
|
}
|
package/dist/daemon/paths.js
CHANGED
|
@@ -24,12 +24,12 @@ export function resolveUserPathWithHome(input, home) {
|
|
|
24
24
|
return path.resolve(trimmed);
|
|
25
25
|
}
|
|
26
26
|
export function resolveGatewayStateDir(env) {
|
|
27
|
-
const override = env.
|
|
27
|
+
const override = env.OPENCLAW_STATE_DIR?.trim();
|
|
28
28
|
if (override) {
|
|
29
29
|
const home = override.startsWith("~") ? resolveHomeDir(env) : undefined;
|
|
30
30
|
return resolveUserPathWithHome(override, home);
|
|
31
31
|
}
|
|
32
32
|
const home = resolveHomeDir(env);
|
|
33
|
-
const suffix = resolveGatewayProfileSuffix(env.
|
|
34
|
-
return path.join(home, `.
|
|
33
|
+
const suffix = resolveGatewayProfileSuffix(env.OPENCLAW_PROFILE);
|
|
34
|
+
return path.join(home, `.openclaw${suffix}`);
|
|
35
35
|
}
|
|
@@ -19,7 +19,7 @@ async function resolveCliEntrypointPathForService() {
|
|
|
19
19
|
await fs.access(resolvedPath);
|
|
20
20
|
// Prefer the original (possibly symlinked) path over the resolved realpath.
|
|
21
21
|
// This keeps LaunchAgent/systemd paths stable across package version updates,
|
|
22
|
-
// since symlinks like node_modules/
|
|
22
|
+
// since symlinks like node_modules/openclaw -> .pnpm/openclaw@X.Y.Z/...
|
|
23
23
|
// are automatically updated by pnpm, while the resolved path contains
|
|
24
24
|
// version-specific directories that break after updates.
|
|
25
25
|
const normalizedLooksLikeDist = /[/\\]dist[/\\].+\.(cjs|js|mjs)$/.test(normalized);
|
package/dist/daemon/schtasks.js
CHANGED
|
@@ -12,16 +12,16 @@ const formatLine = (label, value) => {
|
|
|
12
12
|
return `${colorize(rich, theme.muted, `${label}:`)} ${colorize(rich, theme.command, value)}`;
|
|
13
13
|
};
|
|
14
14
|
function resolveTaskName(env) {
|
|
15
|
-
const override = env.
|
|
15
|
+
const override = env.OPENCLAW_WINDOWS_TASK_NAME?.trim();
|
|
16
16
|
if (override)
|
|
17
17
|
return override;
|
|
18
|
-
return resolveGatewayWindowsTaskName(env.
|
|
18
|
+
return resolveGatewayWindowsTaskName(env.OPENCLAW_PROFILE);
|
|
19
19
|
}
|
|
20
20
|
export function resolveTaskScriptPath(env) {
|
|
21
|
-
const override = env.
|
|
21
|
+
const override = env.OPENCLAW_TASK_SCRIPT?.trim();
|
|
22
22
|
if (override)
|
|
23
23
|
return override;
|
|
24
|
-
const scriptName = env.
|
|
24
|
+
const scriptName = env.OPENCLAW_TASK_SCRIPT_NAME?.trim() || "gateway.cmd";
|
|
25
25
|
const stateDir = resolveGatewayStateDir(env);
|
|
26
26
|
return path.join(stateDir, scriptName);
|
|
27
27
|
}
|
|
@@ -185,8 +185,8 @@ export async function installScheduledTask({ env, stdout, programArguments, work
|
|
|
185
185
|
await fs.mkdir(path.dirname(scriptPath), { recursive: true });
|
|
186
186
|
const taskDescription = description ??
|
|
187
187
|
formatGatewayServiceDescription({
|
|
188
|
-
profile: env.
|
|
189
|
-
version: environment?.
|
|
188
|
+
profile: env.OPENCLAW_PROFILE,
|
|
189
|
+
version: environment?.OPENCLAW_SERVICE_VERSION ?? env.OPENCLAW_SERVICE_VERSION,
|
|
190
190
|
});
|
|
191
191
|
const script = buildTaskScript({
|
|
192
192
|
description: taskDescription,
|
|
@@ -90,39 +90,43 @@ export function buildMinimalServicePath(options = {}) {
|
|
|
90
90
|
}
|
|
91
91
|
export function buildServiceEnvironment(params) {
|
|
92
92
|
const { env, port, token, launchdLabel } = params;
|
|
93
|
-
const profile = env.
|
|
93
|
+
const profile = env.OPENCLAW_PROFILE;
|
|
94
94
|
const resolvedLaunchdLabel = launchdLabel ||
|
|
95
95
|
(process.platform === "darwin" ? resolveGatewayLaunchAgentLabel(profile) : undefined);
|
|
96
96
|
const systemdUnit = `${resolveGatewaySystemdServiceName(profile)}.service`;
|
|
97
|
+
const stateDir = env.OPENCLAW_STATE_DIR;
|
|
98
|
+
const configPath = env.OPENCLAW_CONFIG_PATH;
|
|
97
99
|
return {
|
|
98
100
|
HOME: env.HOME,
|
|
99
101
|
PATH: buildMinimalServicePath({ env }),
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
OPENCLAW_PROFILE: profile,
|
|
103
|
+
OPENCLAW_STATE_DIR: stateDir,
|
|
104
|
+
OPENCLAW_CONFIG_PATH: configPath,
|
|
105
|
+
OPENCLAW_GATEWAY_PORT: String(port),
|
|
106
|
+
OPENCLAW_GATEWAY_TOKEN: token,
|
|
107
|
+
OPENCLAW_LAUNCHD_LABEL: resolvedLaunchdLabel,
|
|
108
|
+
OPENCLAW_SYSTEMD_UNIT: systemdUnit,
|
|
109
|
+
OPENCLAW_SERVICE_MARKER: GATEWAY_SERVICE_MARKER,
|
|
110
|
+
OPENCLAW_SERVICE_KIND: GATEWAY_SERVICE_KIND,
|
|
111
|
+
OPENCLAW_SERVICE_VERSION: VERSION,
|
|
110
112
|
};
|
|
111
113
|
}
|
|
112
114
|
export function buildNodeServiceEnvironment(params) {
|
|
113
115
|
const { env } = params;
|
|
116
|
+
const stateDir = env.OPENCLAW_STATE_DIR;
|
|
117
|
+
const configPath = env.OPENCLAW_CONFIG_PATH;
|
|
114
118
|
return {
|
|
115
119
|
HOME: env.HOME,
|
|
116
120
|
PATH: buildMinimalServicePath({ env }),
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
121
|
+
OPENCLAW_STATE_DIR: stateDir,
|
|
122
|
+
OPENCLAW_CONFIG_PATH: configPath,
|
|
123
|
+
OPENCLAW_LAUNCHD_LABEL: resolveNodeLaunchAgentLabel(),
|
|
124
|
+
OPENCLAW_SYSTEMD_UNIT: resolveNodeSystemdServiceName(),
|
|
125
|
+
OPENCLAW_WINDOWS_TASK_NAME: resolveNodeWindowsTaskName(),
|
|
126
|
+
OPENCLAW_TASK_SCRIPT_NAME: NODE_WINDOWS_TASK_SCRIPT_NAME,
|
|
127
|
+
OPENCLAW_LOG_PREFIX: "node",
|
|
128
|
+
OPENCLAW_SERVICE_MARKER: NODE_SERVICE_MARKER,
|
|
129
|
+
OPENCLAW_SERVICE_KIND: NODE_SERVICE_KIND,
|
|
130
|
+
OPENCLAW_SERVICE_VERSION: VERSION,
|
|
127
131
|
};
|
|
128
132
|
}
|
|
@@ -19,6 +19,6 @@ export function renderSystemdUnavailableHints(options = {}) {
|
|
|
19
19
|
}
|
|
20
20
|
return [
|
|
21
21
|
"systemd user services are unavailable; install/enable systemd or run the gateway under your supervisor.",
|
|
22
|
-
`If you're in a container, run the gateway in the foreground instead of \`${formatCliCommand("
|
|
22
|
+
`If you're in a container, run the gateway in the foreground instead of \`${formatCliCommand("openclaw gateway")}\`.`,
|
|
23
23
|
];
|
|
24
24
|
}
|
|
@@ -13,7 +13,7 @@ function renderEnvLines(env) {
|
|
|
13
13
|
}
|
|
14
14
|
export function buildSystemdUnit({ description, programArguments, workingDirectory, environment, }) {
|
|
15
15
|
const execStart = programArguments.map(systemdEscapeArg).join(" ");
|
|
16
|
-
const descriptionLine = `Description=${description?.trim() || "
|
|
16
|
+
const descriptionLine = `Description=${description?.trim() || "OpenClaw Gateway"}`;
|
|
17
17
|
const workingDirLine = workingDirectory
|
|
18
18
|
? `WorkingDirectory=${systemdEscapeArg(workingDirectory)}`
|
|
19
19
|
: null;
|
package/dist/daemon/systemd.js
CHANGED
|
@@ -19,11 +19,11 @@ function resolveSystemdUnitPathForName(env, name) {
|
|
|
19
19
|
return path.posix.join(home, ".config", "systemd", "user", `${name}.service`);
|
|
20
20
|
}
|
|
21
21
|
function resolveSystemdServiceName(env) {
|
|
22
|
-
const override = env.
|
|
22
|
+
const override = env.OPENCLAW_SYSTEMD_UNIT?.trim();
|
|
23
23
|
if (override) {
|
|
24
24
|
return override.endsWith(".service") ? override.slice(0, -".service".length) : override;
|
|
25
25
|
}
|
|
26
|
-
return resolveGatewaySystemdServiceName(env.
|
|
26
|
+
return resolveGatewaySystemdServiceName(env.OPENCLAW_PROFILE);
|
|
27
27
|
}
|
|
28
28
|
function resolveSystemdUnitPath(env) {
|
|
29
29
|
return resolveSystemdUnitPathForName(env, resolveSystemdServiceName(env));
|
|
@@ -152,8 +152,8 @@ export async function installSystemdService({ env, stdout, programArguments, wor
|
|
|
152
152
|
await fs.mkdir(path.dirname(unitPath), { recursive: true });
|
|
153
153
|
const serviceDescription = description ??
|
|
154
154
|
formatGatewayServiceDescription({
|
|
155
|
-
profile: env.
|
|
156
|
-
version: environment?.
|
|
155
|
+
profile: env.OPENCLAW_PROFILE,
|
|
156
|
+
version: environment?.OPENCLAW_SERVICE_VERSION ?? env.OPENCLAW_SERVICE_VERSION,
|
|
157
157
|
});
|
|
158
158
|
const unit = buildSystemdUnit({
|
|
159
159
|
description: serviceDescription,
|
|
@@ -162,7 +162,7 @@ export async function installSystemdService({ env, stdout, programArguments, wor
|
|
|
162
162
|
environment,
|
|
163
163
|
});
|
|
164
164
|
await fs.writeFile(unitPath, unit, "utf8");
|
|
165
|
-
const serviceName = resolveGatewaySystemdServiceName(env.
|
|
165
|
+
const serviceName = resolveGatewaySystemdServiceName(env.OPENCLAW_PROFILE);
|
|
166
166
|
const unitName = `${serviceName}.service`;
|
|
167
167
|
const reload = await execSystemctl(["--user", "daemon-reload"]);
|
|
168
168
|
if (reload.code !== 0) {
|
|
@@ -183,7 +183,7 @@ export async function installSystemdService({ env, stdout, programArguments, wor
|
|
|
183
183
|
}
|
|
184
184
|
export async function uninstallSystemdService({ env, stdout, }) {
|
|
185
185
|
await assertSystemdAvailable();
|
|
186
|
-
const serviceName = resolveGatewaySystemdServiceName(env.
|
|
186
|
+
const serviceName = resolveGatewaySystemdServiceName(env.OPENCLAW_PROFILE);
|
|
187
187
|
const unitName = `${serviceName}.service`;
|
|
188
188
|
await execSystemctl(["--user", "disable", "--now", unitName]);
|
|
189
189
|
const unitPath = resolveSystemdUnitPath(env);
|
|
@@ -5,7 +5,7 @@ import { resolveMarkdownTableMode } from "../config/markdown-tables.js";
|
|
|
5
5
|
import { recordChannelActivity } from "../infra/channel-activity.js";
|
|
6
6
|
import { convertMarkdownTables } from "../markdown/tables.js";
|
|
7
7
|
import { resolveDiscordAccount } from "./accounts.js";
|
|
8
|
-
import { buildDiscordSendError, createDiscordClient, normalizeDiscordPollInput, normalizeStickerIds,
|
|
8
|
+
import { buildDiscordSendError, createDiscordClient, normalizeDiscordPollInput, normalizeStickerIds, parseAndResolveRecipient, resolveChannelId, sendDiscordMedia, sendDiscordText, } from "./send.shared.js";
|
|
9
9
|
export async function sendMessageDiscord(to, text, opts = {}) {
|
|
10
10
|
const cfg = loadConfig();
|
|
11
11
|
const accountInfo = resolveDiscordAccount({
|
|
@@ -20,7 +20,7 @@ export async function sendMessageDiscord(to, text, opts = {}) {
|
|
|
20
20
|
const chunkMode = resolveChunkMode(cfg, "discord", accountInfo.accountId);
|
|
21
21
|
const textWithTables = convertMarkdownTables(text ?? "", tableMode);
|
|
22
22
|
const { token, rest, request } = createDiscordClient(opts, cfg);
|
|
23
|
-
const recipient =
|
|
23
|
+
const recipient = await parseAndResolveRecipient(to, opts.accountId);
|
|
24
24
|
const { channelId } = await resolveChannelId(rest, recipient, request);
|
|
25
25
|
let result;
|
|
26
26
|
try {
|
|
@@ -52,7 +52,7 @@ export async function sendMessageDiscord(to, text, opts = {}) {
|
|
|
52
52
|
export async function sendStickerDiscord(to, stickerIds, opts = {}) {
|
|
53
53
|
const cfg = loadConfig();
|
|
54
54
|
const { rest, request } = createDiscordClient(opts, cfg);
|
|
55
|
-
const recipient =
|
|
55
|
+
const recipient = await parseAndResolveRecipient(to, opts.accountId);
|
|
56
56
|
const { channelId } = await resolveChannelId(rest, recipient, request);
|
|
57
57
|
const content = opts.content?.trim();
|
|
58
58
|
const stickers = normalizeStickerIds(stickerIds);
|
|
@@ -70,7 +70,7 @@ export async function sendStickerDiscord(to, stickerIds, opts = {}) {
|
|
|
70
70
|
export async function sendPollDiscord(to, poll, opts = {}) {
|
|
71
71
|
const cfg = loadConfig();
|
|
72
72
|
const { rest, request } = createDiscordClient(opts, cfg);
|
|
73
|
-
const recipient =
|
|
73
|
+
const recipient = await parseAndResolveRecipient(to, opts.accountId);
|
|
74
74
|
const { channelId } = await resolveChannelId(rest, recipient, request);
|
|
75
75
|
const content = opts.content?.trim();
|
|
76
76
|
const payload = normalizeDiscordPollInput(poll);
|