@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
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# OpenClaw Chrome Extension (Browser Relay)
|
|
2
2
|
|
|
3
|
-
Purpose: attach
|
|
3
|
+
Purpose: attach OpenClaw to an existing Chrome tab so the Gateway can automate it (via the local CDP relay server).
|
|
4
4
|
|
|
5
5
|
## Dev / load unpacked
|
|
6
6
|
|
|
7
|
-
1. Build/run
|
|
7
|
+
1. Build/run OpenClaw Gateway with browser control enabled.
|
|
8
8
|
2. Ensure the relay server is reachable at `http://127.0.0.1:18792/` (default).
|
|
9
9
|
3. Install the extension to a stable path:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
openclaw browser extension install
|
|
13
|
+
openclaw browser extension path
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
4. Chrome → `chrome://extensions` → enable “Developer mode”.
|
|
@@ -114,7 +114,7 @@ function onRelayClosed(reason) {
|
|
|
114
114
|
setBadge(tabId, 'connecting')
|
|
115
115
|
void chrome.action.setTitle({
|
|
116
116
|
tabId,
|
|
117
|
-
title: '
|
|
117
|
+
title: 'OpenClaw Browser Relay: disconnected (click to re-attach)',
|
|
118
118
|
})
|
|
119
119
|
}
|
|
120
120
|
tabs.clear()
|
|
@@ -225,7 +225,7 @@ async function attachTab(tabId, opts = {}) {
|
|
|
225
225
|
tabBySession.set(sessionId, tabId)
|
|
226
226
|
void chrome.action.setTitle({
|
|
227
227
|
tabId,
|
|
228
|
-
title: '
|
|
228
|
+
title: 'OpenClaw Browser Relay: attached (click to detach)',
|
|
229
229
|
})
|
|
230
230
|
|
|
231
231
|
if (!opts.skipAttachedEvent) {
|
|
@@ -278,7 +278,7 @@ async function detachTab(tabId, reason) {
|
|
|
278
278
|
setBadge(tabId, 'off')
|
|
279
279
|
void chrome.action.setTitle({
|
|
280
280
|
tabId,
|
|
281
|
-
title: '
|
|
281
|
+
title: 'OpenClaw Browser Relay (click to attach/detach)',
|
|
282
282
|
})
|
|
283
283
|
}
|
|
284
284
|
|
|
@@ -297,7 +297,7 @@ async function connectOrToggleForActiveTab() {
|
|
|
297
297
|
setBadge(tabId, 'connecting')
|
|
298
298
|
void chrome.action.setTitle({
|
|
299
299
|
tabId,
|
|
300
|
-
title: '
|
|
300
|
+
title: 'OpenClaw Browser Relay: connecting to local relay…',
|
|
301
301
|
})
|
|
302
302
|
|
|
303
303
|
try {
|
|
@@ -308,7 +308,7 @@ async function connectOrToggleForActiveTab() {
|
|
|
308
308
|
setBadge(tabId, 'error')
|
|
309
309
|
void chrome.action.setTitle({
|
|
310
310
|
tabId,
|
|
311
|
-
title: '
|
|
311
|
+
title: 'OpenClaw Browser Relay: relay not running (open options for setup)',
|
|
312
312
|
})
|
|
313
313
|
void maybeOpenHelpOnce()
|
|
314
314
|
// Extra breadcrumbs in chrome://extensions service worker logs.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifest_version": 3,
|
|
3
|
-
"name": "
|
|
3
|
+
"name": "OpenClaw Browser Relay",
|
|
4
4
|
"version": "0.1.0",
|
|
5
|
-
"description": "Attach
|
|
5
|
+
"description": "Attach OpenClaw to your existing Chrome tab via a local CDP relay server.",
|
|
6
6
|
"icons": {
|
|
7
7
|
"16": "icons/icon16.png",
|
|
8
8
|
"32": "icons/icon32.png",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"host_permissions": ["http://127.0.0.1/*", "http://localhost/*"],
|
|
14
14
|
"background": { "service_worker": "background.js", "type": "module" },
|
|
15
15
|
"action": {
|
|
16
|
-
"default_title": "
|
|
16
|
+
"default_title": "OpenClaw Browser Relay (click to attach/detach)",
|
|
17
17
|
"default_icon": {
|
|
18
18
|
"16": "icons/icon16.png",
|
|
19
19
|
"32": "icons/icon32.png",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<title>
|
|
6
|
+
<title>OpenClaw Browser Relay</title>
|
|
7
7
|
<style>
|
|
8
8
|
:root {
|
|
9
9
|
color-scheme: light dark;
|
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
<img src="icons/icon128.png" alt="" />
|
|
159
159
|
</div>
|
|
160
160
|
<div>
|
|
161
|
-
<h1>
|
|
161
|
+
<h1>OpenClaw Browser Relay</h1>
|
|
162
162
|
<p class="subtitle">Click the toolbar button on a tab to attach / detach.</p>
|
|
163
163
|
</div>
|
|
164
164
|
</header>
|
|
@@ -168,10 +168,10 @@
|
|
|
168
168
|
<h2>Getting started</h2>
|
|
169
169
|
<p>
|
|
170
170
|
If you see a red <code>!</code> badge on the extension icon, the relay server is not reachable.
|
|
171
|
-
Start
|
|
171
|
+
Start OpenClaw’s browser relay on this machine (Gateway or node host), then click the toolbar button again.
|
|
172
172
|
</p>
|
|
173
173
|
<p>
|
|
174
|
-
Full guide (install, remote Gateway, security): <a href="https://docs.
|
|
174
|
+
Full guide (install, remote Gateway, security): <a href="https://docs.openclaw.ai/tools/chrome-extension" target="_blank" rel="noreferrer">docs.openclaw.ai/tools/chrome-extension</a>
|
|
175
175
|
</p>
|
|
176
176
|
</div>
|
|
177
177
|
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
</div>
|
|
185
185
|
<div class="hint">
|
|
186
186
|
Default: <code>18792</code>. Extension connects to: <code id="relay-url">http://127.0.0.1:<port>/</code>.
|
|
187
|
-
Only change this if your
|
|
187
|
+
Only change this if your OpenClaw profile uses a different <code>cdpUrl</code> port.
|
|
188
188
|
</div>
|
|
189
189
|
<div class="status" id="status"></div>
|
|
190
190
|
</div>
|
|
@@ -31,7 +31,7 @@ async function checkRelayReachable(port) {
|
|
|
31
31
|
} catch {
|
|
32
32
|
setStatus(
|
|
33
33
|
'error',
|
|
34
|
-
`Relay not reachable at ${url}. Start
|
|
34
|
+
`Relay not reachable at ${url}. Start OpenClaw’s browser relay on this machine, then click the toolbar button again.`,
|
|
35
35
|
)
|
|
36
36
|
} finally {
|
|
37
37
|
clearTimeout(t)
|
package/dist/acp/client.js
CHANGED
|
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import * as readline from "node:readline";
|
|
3
3
|
import { Readable, Writable } from "node:stream";
|
|
4
4
|
import { ClientSideConnection, PROTOCOL_VERSION, ndJsonStream, } from "@agentclientprotocol/sdk";
|
|
5
|
-
import {
|
|
5
|
+
import { ensureOpenClawCliOnPath } from "../infra/path-env.js";
|
|
6
6
|
function toArgs(value) {
|
|
7
7
|
if (!value)
|
|
8
8
|
return [];
|
|
@@ -50,8 +50,8 @@ export async function createAcpClient(opts = {}) {
|
|
|
50
50
|
const cwd = opts.cwd ?? process.cwd();
|
|
51
51
|
const verbose = Boolean(opts.verbose);
|
|
52
52
|
const log = verbose ? (msg) => console.error(`[acp-client] ${msg}`) : () => { };
|
|
53
|
-
|
|
54
|
-
const serverCommand = opts.serverCommand ?? "
|
|
53
|
+
ensureOpenClawCliOnPath({ cwd });
|
|
54
|
+
const serverCommand = opts.serverCommand ?? "openclaw";
|
|
55
55
|
const serverArgs = buildServerArgs(opts);
|
|
56
56
|
log(`spawning: ${serverCommand} ${serverArgs.join(" ")}`);
|
|
57
57
|
const agent = spawn(serverCommand, serverArgs, {
|
|
@@ -88,7 +88,7 @@ export async function createAcpClient(opts = {}) {
|
|
|
88
88
|
fs: { readTextFile: true, writeTextFile: true },
|
|
89
89
|
terminal: true,
|
|
90
90
|
},
|
|
91
|
-
clientInfo: { name: "
|
|
91
|
+
clientInfo: { name: "openclaw-acp-client", version: "1.0.0" },
|
|
92
92
|
});
|
|
93
93
|
log("creating session");
|
|
94
94
|
const session = await client.newSession({
|
|
@@ -107,7 +107,7 @@ export async function runAcpClientInteractive(opts = {}) {
|
|
|
107
107
|
input: process.stdin,
|
|
108
108
|
output: process.stdout,
|
|
109
109
|
});
|
|
110
|
-
console.log("
|
|
110
|
+
console.log("OpenClaw ACP client");
|
|
111
111
|
console.log(`Session: ${sessionId}`);
|
|
112
112
|
console.log('Type a prompt, or "exit" to quit.\n');
|
|
113
113
|
const prompt = () => {
|
package/dist/acp/server.js
CHANGED
|
@@ -20,11 +20,11 @@ export function serveAcpGateway(opts = {}) {
|
|
|
20
20
|
const auth = resolveGatewayAuth({ authConfig: cfg.gateway?.auth, env: process.env });
|
|
21
21
|
const token = opts.gatewayToken ??
|
|
22
22
|
(isRemoteMode ? remote?.token?.trim() : undefined) ??
|
|
23
|
-
process.env.
|
|
23
|
+
process.env.OPENCLAW_GATEWAY_TOKEN ??
|
|
24
24
|
auth.token;
|
|
25
25
|
const password = opts.gatewayPassword ??
|
|
26
26
|
(isRemoteMode ? remote?.password?.trim() : undefined) ??
|
|
27
|
-
process.env.
|
|
27
|
+
process.env.OPENCLAW_GATEWAY_PASSWORD ??
|
|
28
28
|
auth.password;
|
|
29
29
|
let agent = null;
|
|
30
30
|
const gateway = new GatewayClient({
|
|
@@ -108,7 +108,7 @@ function parseArgs(args) {
|
|
|
108
108
|
return opts;
|
|
109
109
|
}
|
|
110
110
|
function printHelp() {
|
|
111
|
-
console.log(`Usage:
|
|
111
|
+
console.log(`Usage: openclaw acp [options]
|
|
112
112
|
|
|
113
113
|
Gateway-backed ACP server for IDE integration.
|
|
114
114
|
|
package/dist/acp/types.js
CHANGED
|
@@ -2,17 +2,17 @@ import path from "node:path";
|
|
|
2
2
|
import { resolveStateDir } from "../config/paths.js";
|
|
3
3
|
import { DEFAULT_AGENT_ID } from "../routing/session-key.js";
|
|
4
4
|
import { resolveUserPath } from "../utils.js";
|
|
5
|
-
export function
|
|
6
|
-
const override = process.env.
|
|
5
|
+
export function resolveOpenClawAgentDir() {
|
|
6
|
+
const override = process.env.OPENCLAW_AGENT_DIR?.trim() || process.env.PI_CODING_AGENT_DIR?.trim();
|
|
7
7
|
if (override)
|
|
8
8
|
return resolveUserPath(override);
|
|
9
9
|
const defaultAgentDir = path.join(resolveStateDir(), "agents", DEFAULT_AGENT_ID, "agent");
|
|
10
10
|
return resolveUserPath(defaultAgentDir);
|
|
11
11
|
}
|
|
12
|
-
export function
|
|
13
|
-
const dir =
|
|
14
|
-
if (!process.env.
|
|
15
|
-
process.env.
|
|
12
|
+
export function ensureOpenClawAgentEnv() {
|
|
13
|
+
const dir = resolveOpenClawAgentDir();
|
|
14
|
+
if (!process.env.OPENCLAW_AGENT_DIR)
|
|
15
|
+
process.env.OPENCLAW_AGENT_DIR = dir;
|
|
16
16
|
if (!process.env.PI_CODING_AGENT_DIR)
|
|
17
17
|
process.env.PI_CODING_AGENT_DIR = dir;
|
|
18
18
|
return dir;
|
|
@@ -106,7 +106,7 @@ export function resolveAgentWorkspaceDir(cfg, agentId) {
|
|
|
106
106
|
return resolveUserPath(fallback);
|
|
107
107
|
return DEFAULT_AGENT_WORKSPACE_DIR;
|
|
108
108
|
}
|
|
109
|
-
return path.join(os.homedir(), `
|
|
109
|
+
return path.join(os.homedir(), ".openclaw", `workspace-${id}`);
|
|
110
110
|
}
|
|
111
111
|
export function resolveAgentDir(cfg, agentId) {
|
|
112
112
|
const id = normalizeAgentId(agentId);
|
|
@@ -8,8 +8,8 @@ import { createSubsystemLogger } from "../logging/subsystem.js";
|
|
|
8
8
|
const writers = new Map();
|
|
9
9
|
const log = createSubsystemLogger("agent/anthropic-payload");
|
|
10
10
|
function resolvePayloadLogConfig(env) {
|
|
11
|
-
const enabled = parseBooleanValue(env.
|
|
12
|
-
const fileOverride = env.
|
|
11
|
+
const enabled = parseBooleanValue(env.OPENCLAW_ANTHROPIC_PAYLOAD_LOG) ?? false;
|
|
12
|
+
const fileOverride = env.OPENCLAW_ANTHROPIC_PAYLOAD_LOG_FILE?.trim();
|
|
13
13
|
const filePath = fileOverride
|
|
14
14
|
? resolveUserPath(fileOverride)
|
|
15
15
|
: path.join(resolveStateDir(env), "logs", "anthropic-payload.jsonl");
|
|
@@ -26,6 +26,6 @@ export function formatAuthDoctorHint(params) {
|
|
|
26
26
|
`- config: ${legacyProfileId}${cfgProvider || cfgMode ? ` (provider=${cfgProvider ?? "?"}, mode=${cfgMode ?? "?"})` : ""}`,
|
|
27
27
|
`- auth store oauth profiles: ${storeOauthProfiles || "(none)"}`,
|
|
28
28
|
`- suggested profile: ${suggested}`,
|
|
29
|
-
`Fix: run "${formatCliCommand("
|
|
29
|
+
`Fix: run "${formatCliCommand("openclaw doctor --yes")}"`,
|
|
30
30
|
].join("\n");
|
|
31
31
|
}
|
|
@@ -2,14 +2,14 @@ import fs from "node:fs";
|
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { saveJsonFile } from "../../infra/json-file.js";
|
|
4
4
|
import { resolveUserPath } from "../../utils.js";
|
|
5
|
-
import {
|
|
5
|
+
import { resolveOpenClawAgentDir } from "../agent-paths.js";
|
|
6
6
|
import { AUTH_PROFILE_FILENAME, AUTH_STORE_VERSION, LEGACY_AUTH_FILENAME } from "./constants.js";
|
|
7
7
|
export function resolveAuthStorePath(agentDir) {
|
|
8
|
-
const resolved = resolveUserPath(agentDir ??
|
|
8
|
+
const resolved = resolveUserPath(agentDir ?? resolveOpenClawAgentDir());
|
|
9
9
|
return path.join(resolved, AUTH_PROFILE_FILENAME);
|
|
10
10
|
}
|
|
11
11
|
export function resolveLegacyAuthStorePath(agentDir) {
|
|
12
|
-
const resolved = resolveUserPath(agentDir ??
|
|
12
|
+
const resolved = resolveUserPath(agentDir ?? resolveOpenClawAgentDir());
|
|
13
13
|
return path.join(resolved, LEGACY_AUTH_FILENAME);
|
|
14
14
|
}
|
|
15
15
|
export function resolveAuthStorePathForDisplay(agentDir) {
|
|
@@ -16,7 +16,7 @@ import { getShellConfig, sanitizeBinaryOutput } from "./shell-utils.js";
|
|
|
16
16
|
import { buildCursorPositionResponse, stripDsrRequests } from "./pty-dsr.js";
|
|
17
17
|
import { parseAgentSessionKey, resolveAgentIdFromSessionKey } from "../routing/session-key.js";
|
|
18
18
|
const DEFAULT_MAX_OUTPUT = clampNumber(readEnvInt("PI_BASH_MAX_OUTPUT_CHARS"), 200_000, 1_000, 200_000);
|
|
19
|
-
const DEFAULT_PENDING_MAX_OUTPUT = clampNumber(readEnvInt("
|
|
19
|
+
const DEFAULT_PENDING_MAX_OUTPUT = clampNumber(readEnvInt("OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS"), 200_000, 1_000, 200_000);
|
|
20
20
|
const DEFAULT_PATH = process.env.PATH ?? "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
|
|
21
21
|
const DEFAULT_NOTIFY_TAIL_CHARS = 400;
|
|
22
22
|
const DEFAULT_APPROVAL_TIMEOUT_MS = 120_000;
|
|
@@ -42,14 +42,14 @@ export function buildDockerExecArgs(params) {
|
|
|
42
42
|
const hasCustomPath = typeof params.env.PATH === "string" && params.env.PATH.length > 0;
|
|
43
43
|
if (hasCustomPath) {
|
|
44
44
|
// Avoid interpolating PATH into the shell command; pass it via env instead.
|
|
45
|
-
args.push("-e", `
|
|
45
|
+
args.push("-e", `OPENCLAW_PREPEND_PATH=${params.env.PATH}`);
|
|
46
46
|
}
|
|
47
47
|
// Login shell (-l) sources /etc/profile which resets PATH to a minimal set,
|
|
48
48
|
// overriding both Docker ENV and -e PATH=... environment variables.
|
|
49
49
|
// Prepend custom PATH after profile sourcing to ensure custom tools are accessible
|
|
50
50
|
// while preserving system paths that /etc/profile may have added.
|
|
51
51
|
const pathExport = hasCustomPath
|
|
52
|
-
? 'export PATH="${
|
|
52
|
+
? 'export PATH="${OPENCLAW_PREPEND_PATH}:$PATH"; unset OPENCLAW_PREPEND_PATH; '
|
|
53
53
|
: "";
|
|
54
54
|
args.push(params.containerName, "sh", "-lc", `${pathExport}${params.command}`);
|
|
55
55
|
return args;
|
|
@@ -8,15 +8,15 @@ const writers = new Map();
|
|
|
8
8
|
function resolveCacheTraceConfig(params) {
|
|
9
9
|
const env = params.env ?? process.env;
|
|
10
10
|
const config = params.cfg?.diagnostics?.cacheTrace;
|
|
11
|
-
const envEnabled = parseBooleanValue(env.
|
|
11
|
+
const envEnabled = parseBooleanValue(env.OPENCLAW_CACHE_TRACE);
|
|
12
12
|
const enabled = envEnabled ?? config?.enabled ?? false;
|
|
13
|
-
const fileOverride = config?.filePath?.trim() || env.
|
|
13
|
+
const fileOverride = config?.filePath?.trim() || env.OPENCLAW_CACHE_TRACE_FILE?.trim();
|
|
14
14
|
const filePath = fileOverride
|
|
15
15
|
? resolveUserPath(fileOverride)
|
|
16
16
|
: path.join(resolveStateDir(env), "logs", "cache-trace.jsonl");
|
|
17
|
-
const includeMessages = parseBooleanValue(env.
|
|
18
|
-
const includePrompt = parseBooleanValue(env.
|
|
19
|
-
const includeSystem = parseBooleanValue(env.
|
|
17
|
+
const includeMessages = parseBooleanValue(env.OPENCLAW_CACHE_TRACE_MESSAGES) ?? config?.includeMessages;
|
|
18
|
+
const includePrompt = parseBooleanValue(env.OPENCLAW_CACHE_TRACE_PROMPT) ?? config?.includePrompt;
|
|
19
|
+
const includeSystem = parseBooleanValue(env.OPENCLAW_CACHE_TRACE_SYSTEM) ?? config?.includeSystem;
|
|
20
20
|
return {
|
|
21
21
|
enabled,
|
|
22
22
|
filePath,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getChannelDock } from "../channels/dock.js";
|
|
2
2
|
import { getChannelPlugin, listChannelPlugins } from "../channels/plugins/index.js";
|
|
3
3
|
import { normalizeAnyChannelId } from "../channels/registry.js";
|
|
4
|
+
import { defaultRuntime } from "../runtime.js";
|
|
4
5
|
/**
|
|
5
6
|
* Get the list of supported message actions for a specific channel.
|
|
6
7
|
* Returns an empty array if channel is not found or has no actions configured.
|
|
@@ -12,7 +13,7 @@ export function listChannelSupportedActions(params) {
|
|
|
12
13
|
if (!plugin?.actions?.listActions)
|
|
13
14
|
return [];
|
|
14
15
|
const cfg = params.cfg ?? {};
|
|
15
|
-
return plugin
|
|
16
|
+
return runPluginListActions(plugin, cfg);
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Get the list of all supported message actions across all configured channels.
|
|
@@ -23,7 +24,7 @@ export function listAllChannelSupportedActions(params) {
|
|
|
23
24
|
if (!plugin.actions?.listActions)
|
|
24
25
|
continue;
|
|
25
26
|
const cfg = params.cfg ?? {};
|
|
26
|
-
const channelActions = plugin
|
|
27
|
+
const channelActions = runPluginListActions(plugin, cfg);
|
|
27
28
|
for (const action of channelActions) {
|
|
28
29
|
actions.add(action);
|
|
29
30
|
}
|
|
@@ -56,3 +57,31 @@ export function resolveChannelMessageToolHints(params) {
|
|
|
56
57
|
.map((entry) => entry.trim())
|
|
57
58
|
.filter(Boolean);
|
|
58
59
|
}
|
|
60
|
+
const loggedListActionErrors = new Set();
|
|
61
|
+
function runPluginListActions(plugin, cfg) {
|
|
62
|
+
if (!plugin.actions?.listActions)
|
|
63
|
+
return [];
|
|
64
|
+
try {
|
|
65
|
+
const listed = plugin.actions.listActions({ cfg });
|
|
66
|
+
return Array.isArray(listed) ? listed : [];
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
logListActionsError(plugin.id, err);
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function logListActionsError(pluginId, err) {
|
|
74
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
75
|
+
const key = `${pluginId}:${message}`;
|
|
76
|
+
if (loggedListActionErrors.has(key))
|
|
77
|
+
return;
|
|
78
|
+
loggedListActionErrors.add(key);
|
|
79
|
+
const stack = err instanceof Error && err.stack ? err.stack : null;
|
|
80
|
+
const details = stack ?? message;
|
|
81
|
+
defaultRuntime.error?.(`[channel-tools] ${pluginId}.actions.listActions failed: ${details}`);
|
|
82
|
+
}
|
|
83
|
+
export const __testing = {
|
|
84
|
+
resetLoggedListActionErrors() {
|
|
85
|
+
loggedListActionErrors.clear();
|
|
86
|
+
},
|
|
87
|
+
};
|
|
@@ -74,7 +74,7 @@ function tokenToRegex(token) {
|
|
|
74
74
|
return parts.join("\\S+");
|
|
75
75
|
}
|
|
76
76
|
/**
|
|
77
|
-
* Cleanup suspended
|
|
77
|
+
* Cleanup suspended OpenClaw CLI processes that have accumulated.
|
|
78
78
|
* Only cleans up if there are more than the threshold (default: 10).
|
|
79
79
|
*/
|
|
80
80
|
export async function cleanupSuspendedCliProcesses(backend, threshold = 10) {
|
|
@@ -152,7 +152,7 @@ export function buildSystemPrompt(params) {
|
|
|
152
152
|
workspaceDir: params.workspaceDir,
|
|
153
153
|
cwd: process.cwd(),
|
|
154
154
|
runtime: {
|
|
155
|
-
host: "
|
|
155
|
+
host: "openclaw",
|
|
156
156
|
os: `${os.type()} ${os.release()}`,
|
|
157
157
|
arch: os.arch(),
|
|
158
158
|
node: process.version,
|
|
@@ -355,7 +355,7 @@ export function appendImagePathsToPrompt(prompt, paths) {
|
|
|
355
355
|
return `${trimmed}${separator}${paths.join("\n")}`;
|
|
356
356
|
}
|
|
357
357
|
export async function writeCliImages(images) {
|
|
358
|
-
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "
|
|
358
|
+
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
|
|
359
359
|
const paths = [];
|
|
360
360
|
for (let i = 0; i < images.length; i += 1) {
|
|
361
361
|
const image = images[i];
|
|
@@ -4,7 +4,7 @@ import { shouldLogVerbose } from "../globals.js";
|
|
|
4
4
|
import { createSubsystemLogger } from "../logging/subsystem.js";
|
|
5
5
|
import { runCommandWithTimeout } from "../process/exec.js";
|
|
6
6
|
import { resolveUserPath } from "../utils.js";
|
|
7
|
-
import {
|
|
7
|
+
import { resolveOpenClawDocsPath } from "./docs-path.js";
|
|
8
8
|
import { resolveSessionAgentIds } from "./agent-scope.js";
|
|
9
9
|
import { makeBootstrapWarn, resolveBootstrapContextForRun } from "./bootstrap-files.js";
|
|
10
10
|
import { resolveCliBackendConfig } from "./cli-backends.js";
|
|
@@ -45,7 +45,7 @@ export async function runCliAgent(params) {
|
|
|
45
45
|
const heartbeatPrompt = sessionAgentId === defaultAgentId
|
|
46
46
|
? resolveHeartbeatPrompt(params.config?.agents?.defaults?.heartbeat?.prompt)
|
|
47
47
|
: undefined;
|
|
48
|
-
const docsPath = await
|
|
48
|
+
const docsPath = await resolveOpenClawDocsPath({
|
|
49
49
|
workspaceDir,
|
|
50
50
|
argv1: process.argv[1],
|
|
51
51
|
cwd: process.cwd(),
|
|
@@ -117,7 +117,7 @@ export async function runCliAgent(params) {
|
|
|
117
117
|
try {
|
|
118
118
|
const output = await enqueueCliRun(queueKey, async () => {
|
|
119
119
|
log.info(`cli exec: provider=${params.provider} model=${normalizedModel} promptChars=${params.prompt.length}`);
|
|
120
|
-
const logOutputText = isTruthyEnvValue(process.env.
|
|
120
|
+
const logOutputText = isTruthyEnvValue(process.env.OPENCLAW_CLAUDE_CLI_LOG_OUTPUT);
|
|
121
121
|
if (logOutputText) {
|
|
122
122
|
const logArgs = [];
|
|
123
123
|
for (let i = 0; i < args.length; i += 1) {
|
package/dist/agents/context.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Lazy-load pi-coding-agent model metadata so we can infer context windows when
|
|
2
2
|
// the agent reports a model id. This includes custom models.json entries.
|
|
3
3
|
import { loadConfig } from "../config/config.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { resolveOpenClawAgentDir } from "./agent-paths.js";
|
|
5
|
+
import { ensureOpenClawModelsJson } from "./models-config.js";
|
|
6
6
|
const MODEL_CACHE = new Map();
|
|
7
7
|
const loadPromise = (async () => {
|
|
8
8
|
try {
|
|
9
9
|
const { discoverAuthStorage, discoverModels } = await import("@mariozechner/pi-coding-agent");
|
|
10
10
|
const cfg = loadConfig();
|
|
11
|
-
await
|
|
12
|
-
const agentDir =
|
|
11
|
+
await ensureOpenClawModelsJson(cfg);
|
|
12
|
+
const agentDir = resolveOpenClawAgentDir();
|
|
13
13
|
const authStorage = discoverAuthStorage(agentDir);
|
|
14
14
|
const modelRegistry = discoverModels(authStorage, agentDir);
|
|
15
15
|
const models = modelRegistry.getAll();
|
package/dist/agents/docs-path.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import {
|
|
4
|
-
export async function
|
|
3
|
+
import { resolveOpenClawPackageRoot } from "../infra/openclaw-root.js";
|
|
4
|
+
export async function resolveOpenClawDocsPath(params) {
|
|
5
5
|
const workspaceDir = params.workspaceDir?.trim();
|
|
6
6
|
if (workspaceDir) {
|
|
7
7
|
const workspaceDocs = path.join(workspaceDir, "docs");
|
|
8
8
|
if (fs.existsSync(workspaceDocs))
|
|
9
9
|
return workspaceDocs;
|
|
10
10
|
}
|
|
11
|
-
const packageRoot = await
|
|
11
|
+
const packageRoot = await resolveOpenClawPackageRoot({
|
|
12
12
|
cwd: params.cwd,
|
|
13
13
|
argv1: params.argv1,
|
|
14
14
|
moduleUrl: params.moduleUrl,
|
package/dist/agents/identity.js
CHANGED
|
@@ -27,7 +27,7 @@ export function resolveMessagePrefix(cfg, agentId, opts) {
|
|
|
27
27
|
const hasAllowFrom = opts?.hasAllowFrom === true;
|
|
28
28
|
if (hasAllowFrom)
|
|
29
29
|
return "";
|
|
30
|
-
return resolveIdentityNamePrefix(cfg, agentId) ?? opts?.fallback ?? "[
|
|
30
|
+
return resolveIdentityNamePrefix(cfg, agentId) ?? opts?.fallback ?? "[openclaw]";
|
|
31
31
|
}
|
|
32
32
|
export function resolveResponsePrefix(cfg, agentId) {
|
|
33
33
|
const configured = cfg.messages?.responsePrefix;
|
|
@@ -20,10 +20,10 @@ function collectEnvPrefixedKeys(prefix) {
|
|
|
20
20
|
return keys;
|
|
21
21
|
}
|
|
22
22
|
export function collectAnthropicApiKeys() {
|
|
23
|
-
const forcedSingle = process.env.
|
|
23
|
+
const forcedSingle = process.env.OPENCLAW_LIVE_ANTHROPIC_KEY?.trim();
|
|
24
24
|
if (forcedSingle)
|
|
25
25
|
return [forcedSingle];
|
|
26
|
-
const fromList = parseKeyList(process.env.
|
|
26
|
+
const fromList = parseKeyList(process.env.OPENCLAW_LIVE_ANTHROPIC_KEYS);
|
|
27
27
|
const fromEnv = collectEnvPrefixedKeys("ANTHROPIC_API_KEY");
|
|
28
28
|
const primary = process.env.ANTHROPIC_API_KEY?.trim();
|
|
29
29
|
const seen = new Set();
|
|
@@ -79,6 +79,10 @@ function mergeConfig(defaults, overrides, agentId) {
|
|
|
79
79
|
modelCacheDir: overrides?.local?.modelCacheDir ?? defaults?.local?.modelCacheDir,
|
|
80
80
|
};
|
|
81
81
|
const sources = normalizeSources(overrides?.sources ?? defaults?.sources, sessionMemory);
|
|
82
|
+
const rawPaths = [...(defaults?.extraPaths ?? []), ...(overrides?.extraPaths ?? [])]
|
|
83
|
+
.map((value) => value.trim())
|
|
84
|
+
.filter(Boolean);
|
|
85
|
+
const extraPaths = Array.from(new Set(rawPaths));
|
|
82
86
|
const vector = {
|
|
83
87
|
enabled: overrides?.store?.vector?.enabled ?? defaults?.store?.vector?.enabled ?? true,
|
|
84
88
|
extensionPath: overrides?.store?.vector?.extensionPath ?? defaults?.store?.vector?.extensionPath,
|
|
@@ -144,6 +148,7 @@ function mergeConfig(defaults, overrides, agentId) {
|
|
|
144
148
|
return {
|
|
145
149
|
enabled,
|
|
146
150
|
sources,
|
|
151
|
+
extraPaths,
|
|
147
152
|
provider,
|
|
148
153
|
remote,
|
|
149
154
|
experimental: {
|
|
@@ -162,7 +162,7 @@ export async function resolveApiKeyForProvider(params) {
|
|
|
162
162
|
throw new Error([
|
|
163
163
|
`No API key found for provider "${provider}".`,
|
|
164
164
|
`Auth store: ${authStorePath} (agentDir: ${resolvedAgentDir}).`,
|
|
165
|
-
`Configure auth for this agent (${formatCliCommand("
|
|
165
|
+
`Configure auth for this agent (${formatCliCommand("openclaw agents add <id>")}) or copy auth-profiles.json from the main agentDir.`,
|
|
166
166
|
].join(" "));
|
|
167
167
|
}
|
|
168
168
|
export function resolveEnvApiKey(provider) {
|
|
@@ -211,6 +211,7 @@ export function resolveEnvApiKey(provider) {
|
|
|
211
211
|
moonshot: "MOONSHOT_API_KEY",
|
|
212
212
|
"kimi-code": "KIMICODE_API_KEY",
|
|
213
213
|
minimax: "MINIMAX_API_KEY",
|
|
214
|
+
xiaomi: "XIAOMI_API_KEY",
|
|
214
215
|
synthetic: "SYNTHETIC_API_KEY",
|
|
215
216
|
venice: "VENICE_API_KEY",
|
|
216
217
|
mistral: "MISTRAL_API_KEY",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { loadConfig } from "../config/config.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { resolveOpenClawAgentDir } from "./agent-paths.js";
|
|
3
|
+
import { ensureOpenClawModelsJson } from "./models-config.js";
|
|
4
4
|
let modelCatalogPromise = null;
|
|
5
5
|
let hasLoggedModelCatalogError = false;
|
|
6
6
|
const defaultImportPiSdk = () => import("@mariozechner/pi-coding-agent");
|
|
@@ -30,13 +30,13 @@ export async function loadModelCatalog(params) {
|
|
|
30
30
|
});
|
|
31
31
|
try {
|
|
32
32
|
const cfg = params?.config ?? loadConfig();
|
|
33
|
-
await
|
|
33
|
+
await ensureOpenClawModelsJson(cfg);
|
|
34
34
|
// IMPORTANT: keep the dynamic import *inside* the try/catch.
|
|
35
35
|
// If this fails once (e.g. during a pnpm install that temporarily swaps node_modules),
|
|
36
36
|
// we must not poison the cache with a rejected promise (otherwise all channel handlers
|
|
37
37
|
// will keep failing until restart).
|
|
38
38
|
const piSdk = await importPiSdk();
|
|
39
|
-
const agentDir =
|
|
39
|
+
const agentDir = resolveOpenClawAgentDir();
|
|
40
40
|
const authStorage = piSdk.discoverAuthStorage(agentDir);
|
|
41
41
|
const registry = piSdk.discoverModels(authStorage, agentDir);
|
|
42
42
|
const entries = Array.isArray(registry) ? registry : registry.getAll();
|
|
@@ -117,7 +117,7 @@ export function resolveConfiguredModelRef(params) {
|
|
|
117
117
|
if (aliasMatch)
|
|
118
118
|
return aliasMatch.ref;
|
|
119
119
|
// Default to anthropic if no provider is specified, but warn as this is deprecated.
|
|
120
|
-
console.warn(`[
|
|
120
|
+
console.warn(`[openclaw] Model "${trimmed}" specified without provider. Falling back to "anthropic/${trimmed}". Please use "anthropic/${trimmed}" in your config.`);
|
|
121
121
|
return { provider: "anthropic", model: trimmed };
|
|
122
122
|
}
|
|
123
123
|
const resolved = resolveModelRefFromString({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { loadConfig } from "../config/config.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveOpenClawAgentDir } from "./agent-paths.js";
|
|
5
5
|
import { normalizeProviders, resolveImplicitBedrockProvider, resolveImplicitCopilotProvider, resolveImplicitProviders, } from "./models-config.providers.js";
|
|
6
6
|
const DEFAULT_MODE = "merge";
|
|
7
7
|
function isRecord(value) {
|
|
@@ -57,9 +57,9 @@ async function readJson(pathname) {
|
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
export async function
|
|
60
|
+
export async function ensureOpenClawModelsJson(config, agentDirOverride) {
|
|
61
61
|
const cfg = config ?? loadConfig();
|
|
62
|
-
const agentDir = agentDirOverride?.trim() ? agentDirOverride.trim() :
|
|
62
|
+
const agentDir = agentDirOverride?.trim() ? agentDirOverride.trim() : resolveOpenClawAgentDir();
|
|
63
63
|
const explicitProviders = (cfg.models?.providers ?? {});
|
|
64
64
|
const implicitProviders = await resolveImplicitProviders({ agentDir });
|
|
65
65
|
const providers = mergeProviders({
|