@quantumclaw/quantumclaw 2026.3.22
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 +4601 -0
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/assets/avatar-placeholder.svg +19 -0
- package/assets/chrome-extension/icons/icon128.png +0 -0
- package/assets/chrome-extension/icons/icon16.png +0 -0
- package/assets/chrome-extension/icons/icon32.png +0 -0
- package/assets/chrome-extension/icons/icon48.png +0 -0
- package/assets/dmg-background-small.png +0 -0
- package/assets/dmg-background.png +0 -0
- package/docs/.i18n/README.md +31 -0
- package/docs/.i18n/glossary.ja-JP.json +14 -0
- package/docs/.i18n/glossary.zh-CN.json +302 -0
- package/docs/.i18n/ja-JP.tm.jsonl +0 -0
- package/docs/assets/install-script.svg +1 -0
- package/docs/assets/macos-onboarding/01-macos-warning.jpeg +0 -0
- package/docs/assets/macos-onboarding/02-local-networks.jpeg +0 -0
- package/docs/assets/macos-onboarding/03-security-notice.png +0 -0
- package/docs/assets/macos-onboarding/04-choose-gateway.png +0 -0
- package/docs/assets/macos-onboarding/05-permissions.png +0 -0
- package/docs/assets/pixel-lobster.svg +60 -0
- package/docs/assets/quantumclaw-logo-text-dark.png +0 -0
- package/docs/assets/quantumclaw-logo-text-dark.svg +418 -0
- package/docs/assets/quantumclaw-logo-text.png +0 -0
- package/docs/assets/quantumclaw-logo-text.svg +418 -0
- package/docs/assets/showcase/agents-ui.jpg +0 -0
- package/docs/assets/showcase/bambu-cli.png +0 -0
- package/docs/assets/showcase/codexmonitor.png +0 -0
- package/docs/assets/showcase/gohome-grafana.png +0 -0
- package/docs/assets/showcase/ios-testflight.jpg +0 -0
- package/docs/assets/showcase/oura-health.png +0 -0
- package/docs/assets/showcase/padel-cli.svg +11 -0
- package/docs/assets/showcase/padel-screenshot.jpg +0 -0
- package/docs/assets/showcase/papla-tts.jpg +0 -0
- package/docs/assets/showcase/pr-review-telegram.jpg +0 -0
- package/docs/assets/showcase/roborock-screenshot.jpg +0 -0
- package/docs/assets/showcase/roborock-status.svg +13 -0
- package/docs/assets/showcase/roof-camera-sky.jpg +0 -0
- package/docs/assets/showcase/snag.png +0 -0
- package/docs/assets/showcase/tesco-shop.jpg +0 -0
- package/docs/assets/showcase/wienerlinien.png +0 -0
- package/docs/assets/showcase/wine-cellar-skill.jpg +0 -0
- package/docs/assets/showcase/winix-air-purifier.jpg +0 -0
- package/docs/assets/showcase/xuezh-pronunciation.jpeg +0 -0
- package/docs/assets/sponsors/blacksmith.svg +14 -0
- package/docs/assets/sponsors/convex.svg +16 -0
- package/docs/assets/sponsors/openai.svg +3 -0
- package/docs/assets/sponsors/vercel.svg +5 -0
- package/docs/auth-credential-semantics.md +53 -0
- package/docs/automation/auth-monitoring.md +44 -0
- package/docs/automation/cron-jobs.md +727 -0
- package/docs/automation/cron-vs-heartbeat.md +286 -0
- package/docs/automation/gmail-pubsub.md +256 -0
- package/docs/automation/hooks.md +1056 -0
- package/docs/automation/poll.md +86 -0
- package/docs/automation/standing-orders.md +251 -0
- package/docs/automation/troubleshooting.md +122 -0
- package/docs/automation/webhook.md +217 -0
- package/docs/brave-search.md +93 -0
- package/docs/channels/bluebubbles.md +347 -0
- package/docs/channels/broadcast-groups.md +442 -0
- package/docs/channels/channel-routing.md +139 -0
- package/docs/channels/discord.md +1229 -0
- package/docs/channels/feishu.md +747 -0
- package/docs/channels/googlechat.md +261 -0
- package/docs/channels/group-messages.md +84 -0
- package/docs/channels/groups.md +379 -0
- package/docs/channels/imessage.md +367 -0
- package/docs/channels/index.md +47 -0
- package/docs/channels/irc.md +242 -0
- package/docs/channels/line.md +194 -0
- package/docs/channels/location.md +56 -0
- package/docs/channels/matrix.md +677 -0
- package/docs/channels/mattermost.md +427 -0
- package/docs/channels/msteams.md +780 -0
- package/docs/channels/nextcloud-talk.md +138 -0
- package/docs/channels/nostr.md +249 -0
- package/docs/channels/pairing.md +114 -0
- package/docs/channels/signal.md +329 -0
- package/docs/channels/slack.md +603 -0
- package/docs/channels/synology-chat.md +134 -0
- package/docs/channels/telegram.md +987 -0
- package/docs/channels/tlon.md +276 -0
- package/docs/channels/troubleshooting.md +118 -0
- package/docs/channels/twitch.md +379 -0
- package/docs/channels/whatsapp.md +460 -0
- package/docs/channels/zalo.md +243 -0
- package/docs/channels/zalouser.md +181 -0
- package/docs/ci.md +55 -0
- package/docs/cli/acp.md +288 -0
- package/docs/cli/agent.md +29 -0
- package/docs/cli/agents.md +123 -0
- package/docs/cli/approvals.md +50 -0
- package/docs/cli/backup.md +76 -0
- package/docs/cli/browser.md +106 -0
- package/docs/cli/channels.md +102 -0
- package/docs/cli/clawbot.md +21 -0
- package/docs/cli/completion.md +35 -0
- package/docs/cli/config.md +295 -0
- package/docs/cli/configure.md +36 -0
- package/docs/cli/cron.md +77 -0
- package/docs/cli/daemon.md +53 -0
- package/docs/cli/dashboard.md +22 -0
- package/docs/cli/devices.md +139 -0
- package/docs/cli/directory.md +63 -0
- package/docs/cli/dns.md +23 -0
- package/docs/cli/docs.md +15 -0
- package/docs/cli/doctor.md +48 -0
- package/docs/cli/gateway.md +235 -0
- package/docs/cli/health.md +21 -0
- package/docs/cli/hooks.md +329 -0
- package/docs/cli/index.md +1150 -0
- package/docs/cli/logs.md +28 -0
- package/docs/cli/memory.md +66 -0
- package/docs/cli/message.md +278 -0
- package/docs/cli/models.md +81 -0
- package/docs/cli/node.md +127 -0
- package/docs/cli/nodes.md +75 -0
- package/docs/cli/onboard.md +157 -0
- package/docs/cli/pairing.md +32 -0
- package/docs/cli/plugins.md +210 -0
- package/docs/cli/qr.md +46 -0
- package/docs/cli/reset.md +20 -0
- package/docs/cli/sandbox.md +197 -0
- package/docs/cli/secrets.md +188 -0
- package/docs/cli/security.md +79 -0
- package/docs/cli/sessions.md +110 -0
- package/docs/cli/setup.md +29 -0
- package/docs/cli/skills.md +36 -0
- package/docs/cli/status.md +30 -0
- package/docs/cli/system.md +60 -0
- package/docs/cli/tui.md +30 -0
- package/docs/cli/uninstall.md +20 -0
- package/docs/cli/update.md +103 -0
- package/docs/cli/voicecall.md +34 -0
- package/docs/cli/webhooks.md +25 -0
- package/docs/concepts/agent-loop.md +148 -0
- package/docs/concepts/agent-workspace.md +236 -0
- package/docs/concepts/agent.md +122 -0
- package/docs/concepts/architecture.md +137 -0
- package/docs/concepts/compaction.md +123 -0
- package/docs/concepts/context-engine.md +268 -0
- package/docs/concepts/context.md +172 -0
- package/docs/concepts/delegate-architecture.md +296 -0
- package/docs/concepts/features.md +73 -0
- package/docs/concepts/markdown-formatting.md +130 -0
- package/docs/concepts/memory.md +108 -0
- package/docs/concepts/messages.md +154 -0
- package/docs/concepts/model-failover.md +152 -0
- package/docs/concepts/model-providers.md +607 -0
- package/docs/concepts/models.md +225 -0
- package/docs/concepts/multi-agent.md +552 -0
- package/docs/concepts/oauth.md +158 -0
- package/docs/concepts/presence.md +102 -0
- package/docs/concepts/queue.md +89 -0
- package/docs/concepts/retry.md +69 -0
- package/docs/concepts/session-pruning.md +121 -0
- package/docs/concepts/session-tool.md +242 -0
- package/docs/concepts/session.md +310 -0
- package/docs/concepts/streaming.md +155 -0
- package/docs/concepts/system-prompt.md +132 -0
- package/docs/concepts/timezone.md +91 -0
- package/docs/concepts/typebox.md +291 -0
- package/docs/concepts/typing-indicators.md +68 -0
- package/docs/concepts/usage-tracking.md +35 -0
- package/docs/date-time.md +128 -0
- package/docs/debug/node-issue.md +85 -0
- package/docs/diagnostics/flags.md +91 -0
- package/docs/docs.json +2078 -0
- package/docs/gateway/authentication.md +179 -0
- package/docs/gateway/background-process.md +97 -0
- package/docs/gateway/bonjour.md +177 -0
- package/docs/gateway/bridge-protocol.md +91 -0
- package/docs/gateway/cli-backends.md +225 -0
- package/docs/gateway/configuration-examples.md +651 -0
- package/docs/gateway/configuration-reference.md +3123 -0
- package/docs/gateway/configuration.md +633 -0
- package/docs/gateway/discovery.md +123 -0
- package/docs/gateway/doctor.md +362 -0
- package/docs/gateway/gateway-lock.md +34 -0
- package/docs/gateway/health.md +44 -0
- package/docs/gateway/heartbeat.md +393 -0
- package/docs/gateway/index.md +261 -0
- package/docs/gateway/local-models.md +152 -0
- package/docs/gateway/logging.md +113 -0
- package/docs/gateway/multiple-gateways.md +112 -0
- package/docs/gateway/network-model.md +22 -0
- package/docs/gateway/openai-http-api.md +132 -0
- package/docs/gateway/openresponses-http-api.md +295 -0
- package/docs/gateway/openshell.md +307 -0
- package/docs/gateway/pairing.md +99 -0
- package/docs/gateway/protocol.md +267 -0
- package/docs/gateway/remote-gateway-readme.md +158 -0
- package/docs/gateway/remote.md +153 -0
- package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +134 -0
- package/docs/gateway/sandboxing.md +469 -0
- package/docs/gateway/secrets-plan-contract.md +116 -0
- package/docs/gateway/secrets.md +503 -0
- package/docs/gateway/security/index.md +1220 -0
- package/docs/gateway/tailscale.md +132 -0
- package/docs/gateway/tools-invoke-http-api.md +118 -0
- package/docs/gateway/troubleshooting.md +378 -0
- package/docs/gateway/trusted-proxy-auth.md +330 -0
- package/docs/help/debugging.md +168 -0
- package/docs/help/environment.md +163 -0
- package/docs/help/faq.md +2997 -0
- package/docs/help/index.md +28 -0
- package/docs/help/scripts.md +28 -0
- package/docs/help/testing.md +526 -0
- package/docs/help/troubleshooting.md +297 -0
- package/docs/images/configure-model-picker-unsearchable.png +0 -0
- package/docs/images/feishu-step2-create-app.png +0 -0
- package/docs/images/feishu-step3-credentials.png +0 -0
- package/docs/images/feishu-step4-permissions.png +0 -0
- package/docs/images/feishu-step5-bot-capability.png +0 -0
- package/docs/images/feishu-step6-event-subscription.png +0 -0
- package/docs/images/feishu-verification-token.png +0 -0
- package/docs/images/groups-flow.svg +52 -0
- package/docs/images/mobile-ui-screenshot.png +0 -0
- package/docs/index.md +196 -0
- package/docs/install/ansible.md +230 -0
- package/docs/install/azure.md +311 -0
- package/docs/install/bun.md +55 -0
- package/docs/install/development-channels.md +120 -0
- package/docs/install/digitalocean.md +129 -0
- package/docs/install/docker-vm-runtime.md +142 -0
- package/docs/install/docker.md +375 -0
- package/docs/install/exe-dev.md +126 -0
- package/docs/install/fly.md +501 -0
- package/docs/install/gcp.md +402 -0
- package/docs/install/hetzner.md +251 -0
- package/docs/install/index.md +183 -0
- package/docs/install/installer.md +415 -0
- package/docs/install/kubernetes.md +191 -0
- package/docs/install/macos-vm.md +281 -0
- package/docs/install/migrating-matrix.md +346 -0
- package/docs/install/migrating.md +110 -0
- package/docs/install/nix.md +89 -0
- package/docs/install/node.md +138 -0
- package/docs/install/northflank.mdx +54 -0
- package/docs/install/oracle.md +156 -0
- package/docs/install/podman.md +133 -0
- package/docs/install/railway.mdx +100 -0
- package/docs/install/raspberry-pi.md +159 -0
- package/docs/install/render.mdx +169 -0
- package/docs/install/uninstall.md +128 -0
- package/docs/install/updating.md +128 -0
- package/docs/ja-JP/index.md +186 -0
- package/docs/ja-JP/start/getting-started.md +125 -0
- package/docs/ja-JP/start/wizard.md +77 -0
- package/docs/logging.md +352 -0
- package/docs/nav-tabs-underline.js +100 -0
- package/docs/network.md +54 -0
- package/docs/nodes/audio.md +187 -0
- package/docs/nodes/camera.md +162 -0
- package/docs/nodes/images.md +72 -0
- package/docs/nodes/index.md +393 -0
- package/docs/nodes/location-command.md +98 -0
- package/docs/nodes/media-understanding.md +394 -0
- package/docs/nodes/talk.md +92 -0
- package/docs/nodes/troubleshooting.md +114 -0
- package/docs/nodes/voicewake.md +66 -0
- package/docs/perplexity.md +174 -0
- package/docs/pi-dev.md +80 -0
- package/docs/pi.md +567 -0
- package/docs/platforms/android.md +168 -0
- package/docs/platforms/digitalocean.md +266 -0
- package/docs/platforms/index.md +54 -0
- package/docs/platforms/ios.md +220 -0
- package/docs/platforms/linux.md +94 -0
- package/docs/platforms/mac/bundled-gateway.md +73 -0
- package/docs/platforms/mac/canvas.md +125 -0
- package/docs/platforms/mac/child-process.md +69 -0
- package/docs/platforms/mac/dev-setup.md +104 -0
- package/docs/platforms/mac/health.md +34 -0
- package/docs/platforms/mac/icon.md +31 -0
- package/docs/platforms/mac/logging.md +57 -0
- package/docs/platforms/mac/menu-bar.md +81 -0
- package/docs/platforms/mac/peekaboo.md +65 -0
- package/docs/platforms/mac/permissions.md +50 -0
- package/docs/platforms/mac/remote.md +84 -0
- package/docs/platforms/mac/signing.md +47 -0
- package/docs/platforms/mac/skills.md +33 -0
- package/docs/platforms/mac/voice-overlay.md +60 -0
- package/docs/platforms/mac/voicewake.md +67 -0
- package/docs/platforms/mac/webchat.md +43 -0
- package/docs/platforms/mac/xpc.md +61 -0
- package/docs/platforms/macos.md +226 -0
- package/docs/platforms/oracle.md +303 -0
- package/docs/platforms/raspberry-pi.md +412 -0
- package/docs/platforms/windows.md +241 -0
- package/docs/plugins/agent-tools.md +10 -0
- package/docs/plugins/architecture.md +1366 -0
- package/docs/plugins/building-extensions.md +10 -0
- package/docs/plugins/building-plugins.md +239 -0
- package/docs/plugins/bundles.md +181 -0
- package/docs/plugins/community.md +145 -0
- package/docs/plugins/manifest.md +241 -0
- package/docs/plugins/sdk-channel-plugins.md +370 -0
- package/docs/plugins/sdk-entrypoints.md +161 -0
- package/docs/plugins/sdk-migration.md +172 -0
- package/docs/plugins/sdk-overview.md +196 -0
- package/docs/plugins/sdk-provider-plugins.md +370 -0
- package/docs/plugins/sdk-runtime.md +345 -0
- package/docs/plugins/sdk-setup.md +331 -0
- package/docs/plugins/sdk-testing.md +263 -0
- package/docs/plugins/voice-call.md +380 -0
- package/docs/plugins/zalouser.md +77 -0
- package/docs/prose.md +134 -0
- package/docs/providers/anthropic.md +259 -0
- package/docs/providers/bedrock.md +176 -0
- package/docs/providers/claude-max-api-proxy.md +154 -0
- package/docs/providers/cloudflare-ai-gateway.md +71 -0
- package/docs/providers/deepgram.md +93 -0
- package/docs/providers/github-copilot.md +72 -0
- package/docs/providers/glm.md +43 -0
- package/docs/providers/google.md +78 -0
- package/docs/providers/groq.md +96 -0
- package/docs/providers/huggingface.md +209 -0
- package/docs/providers/index.md +69 -0
- package/docs/providers/kilocode.md +74 -0
- package/docs/providers/litellm.md +154 -0
- package/docs/providers/minimax.md +224 -0
- package/docs/providers/mistral.md +54 -0
- package/docs/providers/models.md +45 -0
- package/docs/providers/modelstudio.md +66 -0
- package/docs/providers/moonshot.md +175 -0
- package/docs/providers/nvidia.md +55 -0
- package/docs/providers/ollama.md +352 -0
- package/docs/providers/openai.md +303 -0
- package/docs/providers/opencode-go.md +45 -0
- package/docs/providers/opencode.md +64 -0
- package/docs/providers/openrouter.md +37 -0
- package/docs/providers/perplexity-provider.md +62 -0
- package/docs/providers/qianfan.md +38 -0
- package/docs/providers/qwen.md +53 -0
- package/docs/providers/sglang.md +104 -0
- package/docs/providers/synthetic.md +99 -0
- package/docs/providers/together.md +66 -0
- package/docs/providers/venice.md +282 -0
- package/docs/providers/vercel-ai-gateway.md +60 -0
- package/docs/providers/vllm.md +92 -0
- package/docs/providers/volcengine.md +74 -0
- package/docs/providers/xai.md +60 -0
- package/docs/providers/xiaomi.md +86 -0
- package/docs/providers/zai.md +46 -0
- package/docs/reference/AGENTS.default.md +126 -0
- package/docs/reference/RELEASING.md +42 -0
- package/docs/reference/api-usage-costs.md +144 -0
- package/docs/reference/credits.md +30 -0
- package/docs/reference/device-models.md +47 -0
- package/docs/reference/memory-config.md +711 -0
- package/docs/reference/prompt-caching.md +185 -0
- package/docs/reference/rpc.md +43 -0
- package/docs/reference/secretref-credential-surface.md +140 -0
- package/docs/reference/secretref-user-supplied-credentials-matrix.json +563 -0
- package/docs/reference/session-management-compaction.md +324 -0
- package/docs/reference/templates/AGENTS.dev.md +83 -0
- package/docs/reference/templates/AGENTS.md +219 -0
- package/docs/reference/templates/BOOT.md +11 -0
- package/docs/reference/templates/BOOTSTRAP.md +62 -0
- package/docs/reference/templates/HEARTBEAT.md +14 -0
- package/docs/reference/templates/IDENTITY.dev.md +47 -0
- package/docs/reference/templates/IDENTITY.md +29 -0
- package/docs/reference/templates/SOUL.dev.md +76 -0
- package/docs/reference/templates/SOUL.md +43 -0
- package/docs/reference/templates/TOOLS.dev.md +24 -0
- package/docs/reference/templates/TOOLS.md +47 -0
- package/docs/reference/templates/USER.dev.md +18 -0
- package/docs/reference/templates/USER.md +23 -0
- package/docs/reference/test.md +90 -0
- package/docs/reference/token-use.md +175 -0
- package/docs/reference/transcript-hygiene.md +151 -0
- package/docs/reference/wizard.md +235 -0
- package/docs/security/CONTRIBUTING-THREAT-MODEL.md +98 -0
- package/docs/security/THREAT-MODEL-ATLAS.md +611 -0
- package/docs/security/formal-verification.md +167 -0
- package/docs/start/bootstrapping.md +41 -0
- package/docs/start/docs-directory.md +66 -0
- package/docs/start/getting-started.md +116 -0
- package/docs/start/hubs.md +198 -0
- package/docs/start/lore.md +219 -0
- package/docs/start/onboarding-overview.md +67 -0
- package/docs/start/onboarding.md +91 -0
- package/docs/start/openclaw.md +221 -0
- package/docs/start/quickstart.md +22 -0
- package/docs/start/setup.md +164 -0
- package/docs/start/showcase.md +418 -0
- package/docs/start/wizard-cli-automation.md +215 -0
- package/docs/start/wizard-cli-reference.md +299 -0
- package/docs/start/wizard.md +125 -0
- package/docs/style.css +37 -0
- package/docs/tools/acp-agents.md +623 -0
- package/docs/tools/agent-send.md +100 -0
- package/docs/tools/apply-patch.md +51 -0
- package/docs/tools/brave-search.md +93 -0
- package/docs/tools/browser-linux-troubleshooting.md +138 -0
- package/docs/tools/browser-login.md +73 -0
- package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +211 -0
- package/docs/tools/browser.md +731 -0
- package/docs/tools/btw.md +142 -0
- package/docs/tools/capability-cookbook.md +119 -0
- package/docs/tools/clawhub.md +298 -0
- package/docs/tools/creating-skills.md +117 -0
- package/docs/tools/diffs.md +386 -0
- package/docs/tools/elevated.md +114 -0
- package/docs/tools/exec-approvals.md +430 -0
- package/docs/tools/exec.md +207 -0
- package/docs/tools/firecrawl.md +140 -0
- package/docs/tools/index.md +137 -0
- package/docs/tools/llm-task.md +119 -0
- package/docs/tools/lobster.md +340 -0
- package/docs/tools/loop-detection.md +100 -0
- package/docs/tools/multi-agent-sandbox-tools.md +364 -0
- package/docs/tools/pdf.md +156 -0
- package/docs/tools/perplexity-search.md +174 -0
- package/docs/tools/plugin.md +255 -0
- package/docs/tools/reactions.md +64 -0
- package/docs/tools/skills-config.md +86 -0
- package/docs/tools/skills.md +309 -0
- package/docs/tools/slash-commands.md +294 -0
- package/docs/tools/subagents.md +295 -0
- package/docs/tools/tavily.md +125 -0
- package/docs/tools/thinking.md +96 -0
- package/docs/tools/tts.md +406 -0
- package/docs/tools/web.md +516 -0
- package/docs/tts.md +406 -0
- package/docs/vps.md +112 -0
- package/docs/web/control-ui.md +275 -0
- package/docs/web/dashboard.md +54 -0
- package/docs/web/index.md +120 -0
- package/docs/web/tui.md +170 -0
- package/docs/web/webchat.md +61 -0
- package/docs/whatsapp-openclaw-ai-zh.jpg +0 -0
- package/docs/whatsapp-openclaw.jpg +0 -0
- package/docs/zh-CN/AGENTS.md +61 -0
- package/docs/zh-CN/automation/auth-monitoring.md +47 -0
- package/docs/zh-CN/automation/cron-jobs.md +435 -0
- package/docs/zh-CN/automation/cron-vs-heartbeat.md +286 -0
- package/docs/zh-CN/automation/gmail-pubsub.md +249 -0
- package/docs/zh-CN/automation/hooks.md +1051 -0
- package/docs/zh-CN/automation/poll.md +76 -0
- package/docs/zh-CN/automation/troubleshooting.md +8 -0
- package/docs/zh-CN/automation/webhook.md +163 -0
- package/docs/zh-CN/brave-search.md +60 -0
- package/docs/zh-CN/channels/bluebubbles.md +354 -0
- package/docs/zh-CN/channels/broadcast-groups.md +449 -0
- package/docs/zh-CN/channels/channel-routing.md +117 -0
- package/docs/zh-CN/channels/discord.md +468 -0
- package/docs/zh-CN/channels/feishu.md +728 -0
- package/docs/zh-CN/channels/googlechat.md +257 -0
- package/docs/zh-CN/channels/grammy.md +38 -0
- package/docs/zh-CN/channels/group-messages.md +91 -0
- package/docs/zh-CN/channels/groups.md +379 -0
- package/docs/zh-CN/channels/imessage.md +302 -0
- package/docs/zh-CN/channels/index.md +53 -0
- package/docs/zh-CN/channels/line.md +180 -0
- package/docs/zh-CN/channels/location.md +63 -0
- package/docs/zh-CN/channels/matrix.md +221 -0
- package/docs/zh-CN/channels/mattermost.md +144 -0
- package/docs/zh-CN/channels/msteams.md +775 -0
- package/docs/zh-CN/channels/nextcloud-talk.md +142 -0
- package/docs/zh-CN/channels/nostr.md +249 -0
- package/docs/zh-CN/channels/pairing.md +89 -0
- package/docs/zh-CN/channels/signal.md +209 -0
- package/docs/zh-CN/channels/slack.md +531 -0
- package/docs/zh-CN/channels/synology-chat.md +138 -0
- package/docs/zh-CN/channels/telegram.md +751 -0
- package/docs/zh-CN/channels/tlon.md +136 -0
- package/docs/zh-CN/channels/troubleshooting.md +36 -0
- package/docs/zh-CN/channels/twitch.md +385 -0
- package/docs/zh-CN/channels/whatsapp.md +411 -0
- package/docs/zh-CN/channels/zalo.md +196 -0
- package/docs/zh-CN/channels/zalouser.md +147 -0
- package/docs/zh-CN/cli/acp.md +173 -0
- package/docs/zh-CN/cli/agent.md +30 -0
- package/docs/zh-CN/cli/agents.md +82 -0
- package/docs/zh-CN/cli/approvals.md +57 -0
- package/docs/zh-CN/cli/browser.md +114 -0
- package/docs/zh-CN/cli/channels.md +86 -0
- package/docs/zh-CN/cli/config.md +57 -0
- package/docs/zh-CN/cli/configure.md +38 -0
- package/docs/zh-CN/cli/cron.md +43 -0
- package/docs/zh-CN/cli/dashboard.md +23 -0
- package/docs/zh-CN/cli/devices.md +74 -0
- package/docs/zh-CN/cli/directory.md +70 -0
- package/docs/zh-CN/cli/dns.md +30 -0
- package/docs/zh-CN/cli/docs.md +22 -0
- package/docs/zh-CN/cli/doctor.md +48 -0
- package/docs/zh-CN/cli/gateway.md +206 -0
- package/docs/zh-CN/cli/health.md +28 -0
- package/docs/zh-CN/cli/hooks.md +298 -0
- package/docs/zh-CN/cli/index.md +1143 -0
- package/docs/zh-CN/cli/logs.md +31 -0
- package/docs/zh-CN/cli/memory.md +52 -0
- package/docs/zh-CN/cli/message.md +246 -0
- package/docs/zh-CN/cli/models.md +85 -0
- package/docs/zh-CN/cli/node.md +115 -0
- package/docs/zh-CN/cli/nodes.md +80 -0
- package/docs/zh-CN/cli/onboard.md +164 -0
- package/docs/zh-CN/cli/pairing.md +28 -0
- package/docs/zh-CN/cli/plugins.md +66 -0
- package/docs/zh-CN/cli/reset.md +24 -0
- package/docs/zh-CN/cli/sandbox.md +158 -0
- package/docs/zh-CN/cli/security.md +33 -0
- package/docs/zh-CN/cli/sessions.md +23 -0
- package/docs/zh-CN/cli/setup.md +36 -0
- package/docs/zh-CN/cli/skills.md +33 -0
- package/docs/zh-CN/cli/status.md +33 -0
- package/docs/zh-CN/cli/system.md +63 -0
- package/docs/zh-CN/cli/tui.md +30 -0
- package/docs/zh-CN/cli/uninstall.md +24 -0
- package/docs/zh-CN/cli/update.md +101 -0
- package/docs/zh-CN/cli/voicecall.md +41 -0
- package/docs/zh-CN/cli/webhooks.md +32 -0
- package/docs/zh-CN/concepts/agent-loop.md +146 -0
- package/docs/zh-CN/concepts/agent-workspace.md +219 -0
- package/docs/zh-CN/concepts/agent.md +115 -0
- package/docs/zh-CN/concepts/architecture.md +123 -0
- package/docs/zh-CN/concepts/compaction.md +67 -0
- package/docs/zh-CN/concepts/context.md +168 -0
- package/docs/zh-CN/concepts/features.md +59 -0
- package/docs/zh-CN/concepts/markdown-formatting.md +117 -0
- package/docs/zh-CN/concepts/memory.md +412 -0
- package/docs/zh-CN/concepts/messages.md +141 -0
- package/docs/zh-CN/concepts/model-failover.md +145 -0
- package/docs/zh-CN/concepts/model-providers.md +606 -0
- package/docs/zh-CN/concepts/models.md +225 -0
- package/docs/zh-CN/concepts/multi-agent.md +372 -0
- package/docs/zh-CN/concepts/oauth.md +164 -0
- package/docs/zh-CN/concepts/presence.md +99 -0
- package/docs/zh-CN/concepts/queue.md +94 -0
- package/docs/zh-CN/concepts/retry.md +76 -0
- package/docs/zh-CN/concepts/session-pruning.md +129 -0
- package/docs/zh-CN/concepts/session-tool.md +200 -0
- package/docs/zh-CN/concepts/session.md +166 -0
- package/docs/zh-CN/concepts/streaming.md +133 -0
- package/docs/zh-CN/concepts/system-prompt.md +101 -0
- package/docs/zh-CN/concepts/timezone.md +96 -0
- package/docs/zh-CN/concepts/typebox.md +284 -0
- package/docs/zh-CN/concepts/typing-indicators.md +74 -0
- package/docs/zh-CN/concepts/usage-tracking.md +42 -0
- package/docs/zh-CN/date-time.md +129 -0
- package/docs/zh-CN/debug/node-issue.md +90 -0
- package/docs/zh-CN/diagnostics/flags.md +98 -0
- package/docs/zh-CN/gateway/authentication.md +184 -0
- package/docs/zh-CN/gateway/background-process.md +100 -0
- package/docs/zh-CN/gateway/bonjour.md +174 -0
- package/docs/zh-CN/gateway/bridge-protocol.md +86 -0
- package/docs/zh-CN/gateway/cli-backends.md +213 -0
- package/docs/zh-CN/gateway/configuration-examples.md +587 -0
- package/docs/zh-CN/gateway/configuration-reference.md +3103 -0
- package/docs/zh-CN/gateway/configuration.md +640 -0
- package/docs/zh-CN/gateway/discovery.md +123 -0
- package/docs/zh-CN/gateway/doctor.md +238 -0
- package/docs/zh-CN/gateway/gateway-lock.md +41 -0
- package/docs/zh-CN/gateway/health.md +42 -0
- package/docs/zh-CN/gateway/heartbeat.md +274 -0
- package/docs/zh-CN/gateway/index.md +335 -0
- package/docs/zh-CN/gateway/local-models.md +159 -0
- package/docs/zh-CN/gateway/logging.md +114 -0
- package/docs/zh-CN/gateway/multiple-gateways.md +119 -0
- package/docs/zh-CN/gateway/network-model.md +23 -0
- package/docs/zh-CN/gateway/openai-http-api.md +125 -0
- package/docs/zh-CN/gateway/openresponses-http-api.md +317 -0
- package/docs/zh-CN/gateway/pairing.md +99 -0
- package/docs/zh-CN/gateway/protocol.md +220 -0
- package/docs/zh-CN/gateway/remote-gateway-readme.md +164 -0
- package/docs/zh-CN/gateway/remote.md +133 -0
- package/docs/zh-CN/gateway/sandbox-vs-tool-policy-vs-elevated.md +135 -0
- package/docs/zh-CN/gateway/sandboxing.md +188 -0
- package/docs/zh-CN/gateway/security/index.md +777 -0
- package/docs/zh-CN/gateway/tailscale.md +124 -0
- package/docs/zh-CN/gateway/tools-invoke-http-api.md +92 -0
- package/docs/zh-CN/gateway/troubleshooting.md +771 -0
- package/docs/zh-CN/help/debugging.md +160 -0
- package/docs/zh-CN/help/environment.md +88 -0
- package/docs/zh-CN/help/faq.md +2640 -0
- package/docs/zh-CN/help/index.md +28 -0
- package/docs/zh-CN/help/scripts.md +35 -0
- package/docs/zh-CN/help/testing.md +375 -0
- package/docs/zh-CN/help/troubleshooting.md +104 -0
- package/docs/zh-CN/index.md +186 -0
- package/docs/zh-CN/install/ansible.md +215 -0
- package/docs/zh-CN/install/bun.md +65 -0
- package/docs/zh-CN/install/development-channels.md +81 -0
- package/docs/zh-CN/install/docker.md +532 -0
- package/docs/zh-CN/install/exe-dev.md +133 -0
- package/docs/zh-CN/install/fly.md +490 -0
- package/docs/zh-CN/install/gcp.md +510 -0
- package/docs/zh-CN/install/hetzner.md +337 -0
- package/docs/zh-CN/install/index.md +235 -0
- package/docs/zh-CN/install/installer.md +422 -0
- package/docs/zh-CN/install/macos-vm.md +288 -0
- package/docs/zh-CN/install/migrating.md +199 -0
- package/docs/zh-CN/install/nix.md +99 -0
- package/docs/zh-CN/install/node.md +8 -0
- package/docs/zh-CN/install/northflank.mdx +60 -0
- package/docs/zh-CN/install/railway.mdx +106 -0
- package/docs/zh-CN/install/render.mdx +169 -0
- package/docs/zh-CN/install/uninstall.md +135 -0
- package/docs/zh-CN/install/updating.md +233 -0
- package/docs/zh-CN/logging.md +329 -0
- package/docs/zh-CN/network.md +59 -0
- package/docs/zh-CN/nodes/audio.md +120 -0
- package/docs/zh-CN/nodes/camera.md +162 -0
- package/docs/zh-CN/nodes/images.md +79 -0
- package/docs/zh-CN/nodes/index.md +348 -0
- package/docs/zh-CN/nodes/location-command.md +120 -0
- package/docs/zh-CN/nodes/media-understanding.md +380 -0
- package/docs/zh-CN/nodes/talk.md +97 -0
- package/docs/zh-CN/nodes/troubleshooting.md +8 -0
- package/docs/zh-CN/nodes/voicewake.md +72 -0
- package/docs/zh-CN/perplexity.md +102 -0
- package/docs/zh-CN/pi-dev.md +77 -0
- package/docs/zh-CN/pi.md +619 -0
- package/docs/zh-CN/platforms/android.md +155 -0
- package/docs/zh-CN/platforms/digitalocean.md +273 -0
- package/docs/zh-CN/platforms/index.md +60 -0
- package/docs/zh-CN/platforms/ios.md +114 -0
- package/docs/zh-CN/platforms/linux.md +100 -0
- package/docs/zh-CN/platforms/mac/bundled-gateway.md +75 -0
- package/docs/zh-CN/platforms/mac/canvas.md +128 -0
- package/docs/zh-CN/platforms/mac/child-process.md +73 -0
- package/docs/zh-CN/platforms/mac/dev-setup.md +109 -0
- package/docs/zh-CN/platforms/mac/health.md +41 -0
- package/docs/zh-CN/platforms/mac/icon.md +38 -0
- package/docs/zh-CN/platforms/mac/logging.md +64 -0
- package/docs/zh-CN/platforms/mac/menu-bar.md +88 -0
- package/docs/zh-CN/platforms/mac/peekaboo.md +62 -0
- package/docs/zh-CN/platforms/mac/permissions.md +46 -0
- package/docs/zh-CN/platforms/mac/remote.md +90 -0
- package/docs/zh-CN/platforms/mac/signing.md +54 -0
- package/docs/zh-CN/platforms/mac/skills.md +40 -0
- package/docs/zh-CN/platforms/mac/voice-overlay.md +67 -0
- package/docs/zh-CN/platforms/mac/voicewake.md +74 -0
- package/docs/zh-CN/platforms/mac/webchat.md +43 -0
- package/docs/zh-CN/platforms/mac/xpc.md +68 -0
- package/docs/zh-CN/platforms/macos.md +193 -0
- package/docs/zh-CN/platforms/oracle.md +310 -0
- package/docs/zh-CN/platforms/raspberry-pi.md +416 -0
- package/docs/zh-CN/platforms/windows.md +247 -0
- package/docs/zh-CN/plugins/agent-tools.md +99 -0
- package/docs/zh-CN/plugins/manifest.md +68 -0
- package/docs/zh-CN/plugins/voice-call.md +250 -0
- package/docs/zh-CN/plugins/zalouser.md +88 -0
- package/docs/zh-CN/prose.md +141 -0
- package/docs/zh-CN/providers/anthropic.md +265 -0
- package/docs/zh-CN/providers/bedrock.md +170 -0
- package/docs/zh-CN/providers/claude-max-api-proxy.md +155 -0
- package/docs/zh-CN/providers/cloudflare-ai-gateway.md +78 -0
- package/docs/zh-CN/providers/deepgram.md +97 -0
- package/docs/zh-CN/providers/github-copilot.md +67 -0
- package/docs/zh-CN/providers/glm.md +50 -0
- package/docs/zh-CN/providers/huggingface.md +216 -0
- package/docs/zh-CN/providers/index.md +69 -0
- package/docs/zh-CN/providers/kilocode.md +80 -0
- package/docs/zh-CN/providers/litellm.md +160 -0
- package/docs/zh-CN/providers/minimax.md +222 -0
- package/docs/zh-CN/providers/mistral.md +61 -0
- package/docs/zh-CN/providers/models.md +51 -0
- package/docs/zh-CN/providers/moonshot.md +182 -0
- package/docs/zh-CN/providers/nvidia.md +62 -0
- package/docs/zh-CN/providers/ollama.md +359 -0
- package/docs/zh-CN/providers/openai.md +308 -0
- package/docs/zh-CN/providers/opencode-go.md +52 -0
- package/docs/zh-CN/providers/opencode.md +71 -0
- package/docs/zh-CN/providers/openrouter.md +44 -0
- package/docs/zh-CN/providers/qianfan.md +45 -0
- package/docs/zh-CN/providers/qwen.md +55 -0
- package/docs/zh-CN/providers/sglang.md +111 -0
- package/docs/zh-CN/providers/synthetic.md +106 -0
- package/docs/zh-CN/providers/together.md +72 -0
- package/docs/zh-CN/providers/venice.md +289 -0
- package/docs/zh-CN/providers/vercel-ai-gateway.md +66 -0
- package/docs/zh-CN/providers/xiaomi.md +93 -0
- package/docs/zh-CN/providers/zai.md +53 -0
- package/docs/zh-CN/reference/AGENTS.default.md +131 -0
- package/docs/zh-CN/reference/RELEASING.md +48 -0
- package/docs/zh-CN/reference/api-usage-costs.md +141 -0
- package/docs/zh-CN/reference/credits.md +34 -0
- package/docs/zh-CN/reference/device-models.md +54 -0
- package/docs/zh-CN/reference/rpc.md +48 -0
- package/docs/zh-CN/reference/session-management-compaction.md +287 -0
- package/docs/zh-CN/reference/templates/AGENTS.dev.md +89 -0
- package/docs/zh-CN/reference/templates/AGENTS.md +225 -0
- package/docs/zh-CN/reference/templates/BOOT.md +17 -0
- package/docs/zh-CN/reference/templates/BOOTSTRAP.md +68 -0
- package/docs/zh-CN/reference/templates/HEARTBEAT.md +18 -0
- package/docs/zh-CN/reference/templates/IDENTITY.dev.md +54 -0
- package/docs/zh-CN/reference/templates/IDENTITY.md +36 -0
- package/docs/zh-CN/reference/templates/SOUL.dev.md +83 -0
- package/docs/zh-CN/reference/templates/SOUL.md +49 -0
- package/docs/zh-CN/reference/templates/TOOLS.dev.md +31 -0
- package/docs/zh-CN/reference/templates/TOOLS.md +53 -0
- package/docs/zh-CN/reference/templates/USER.dev.md +25 -0
- package/docs/zh-CN/reference/templates/USER.md +30 -0
- package/docs/zh-CN/reference/test.md +57 -0
- package/docs/zh-CN/reference/token-use.md +119 -0
- package/docs/zh-CN/reference/transcript-hygiene.md +109 -0
- package/docs/zh-CN/reference/wizard.md +242 -0
- package/docs/zh-CN/security/formal-verification.md +171 -0
- package/docs/zh-CN/start/bootstrapping.md +9 -0
- package/docs/zh-CN/start/docs-directory.md +70 -0
- package/docs/zh-CN/start/getting-started.md +143 -0
- package/docs/zh-CN/start/hubs.md +194 -0
- package/docs/zh-CN/start/lore.md +226 -0
- package/docs/zh-CN/start/onboarding-overview.md +58 -0
- package/docs/zh-CN/start/onboarding.md +105 -0
- package/docs/zh-CN/start/openclaw.md +248 -0
- package/docs/zh-CN/start/quickstart.md +88 -0
- package/docs/zh-CN/start/setup.md +153 -0
- package/docs/zh-CN/start/showcase.md +423 -0
- package/docs/zh-CN/start/wizard-cli-automation.md +222 -0
- package/docs/zh-CN/start/wizard-cli-reference.md +306 -0
- package/docs/zh-CN/start/wizard.md +132 -0
- package/docs/zh-CN/tools/agent-send.md +59 -0
- package/docs/zh-CN/tools/apply-patch.md +57 -0
- package/docs/zh-CN/tools/browser-linux-troubleshooting.md +144 -0
- package/docs/zh-CN/tools/browser-login.md +75 -0
- package/docs/zh-CN/tools/browser.md +553 -0
- package/docs/zh-CN/tools/chrome-extension.md +183 -0
- package/docs/zh-CN/tools/clawhub.md +209 -0
- package/docs/zh-CN/tools/creating-skills.md +61 -0
- package/docs/zh-CN/tools/elevated.md +64 -0
- package/docs/zh-CN/tools/exec-approvals.md +234 -0
- package/docs/zh-CN/tools/exec.md +169 -0
- package/docs/zh-CN/tools/firecrawl.md +68 -0
- package/docs/zh-CN/tools/index.md +515 -0
- package/docs/zh-CN/tools/llm-task.md +117 -0
- package/docs/zh-CN/tools/lobster.md +349 -0
- package/docs/zh-CN/tools/multi-agent-sandbox-tools.md +401 -0
- package/docs/zh-CN/tools/plugin.md +1612 -0
- package/docs/zh-CN/tools/reactions.md +29 -0
- package/docs/zh-CN/tools/skills-config.md +78 -0
- package/docs/zh-CN/tools/skills.md +279 -0
- package/docs/zh-CN/tools/slash-commands.md +205 -0
- package/docs/zh-CN/tools/subagents.md +167 -0
- package/docs/zh-CN/tools/thinking.md +80 -0
- package/docs/zh-CN/tools/web.md +289 -0
- package/docs/zh-CN/tts.md +375 -0
- package/docs/zh-CN/vps.md +47 -0
- package/docs/zh-CN/web/control-ui.md +191 -0
- package/docs/zh-CN/web/dashboard.md +53 -0
- package/docs/zh-CN/web/index.md +118 -0
- package/docs/zh-CN/web/tui.md +166 -0
- package/docs/zh-CN/web/webchat.md +56 -0
- package/package.json +841 -0
- package/quantumclaw.mjs +135 -0
- package/skills/1password/SKILL.md +70 -0
- package/skills/1password/references/cli-examples.md +29 -0
- package/skills/1password/references/get-started.md +17 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/bear-notes/SKILL.md +107 -0
- package/skills/blogwatcher/SKILL.md +69 -0
- package/skills/blucli/SKILL.md +47 -0
- package/skills/bluebubbles/SKILL.md +131 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/canvas/SKILL.md +198 -0
- package/skills/clawhub/SKILL.md +77 -0
- package/skills/coding-agent/SKILL.md +295 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/eightctl/SKILL.md +50 -0
- package/skills/gemini/SKILL.md +43 -0
- package/skills/gh-issues/SKILL.md +865 -0
- package/skills/gifgrep/SKILL.md +79 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/gog/SKILL.md +116 -0
- package/skills/goplaces/SKILL.md +52 -0
- package/skills/healthcheck/SKILL.md +245 -0
- package/skills/himalaya/SKILL.md +257 -0
- package/skills/himalaya/references/configuration.md +184 -0
- package/skills/himalaya/references/message-composition.md +199 -0
- package/skills/imsg/SKILL.md +122 -0
- package/skills/mcporter/SKILL.md +61 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/nano-pdf/SKILL.md +38 -0
- package/skills/node-connect/SKILL.md +142 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/openai-image-gen/SKILL.md +92 -0
- package/skills/openai-image-gen/scripts/gen.py +328 -0
- package/skills/openai-image-gen/scripts/test_gen.py +140 -0
- package/skills/openai-whisper/SKILL.md +38 -0
- package/skills/openai-whisper-api/SKILL.md +52 -0
- package/skills/openai-whisper-api/scripts/transcribe.sh +85 -0
- package/skills/openhue/SKILL.md +112 -0
- package/skills/oracle/SKILL.md +125 -0
- package/skills/ordercli/SKILL.md +78 -0
- package/skills/peekaboo/SKILL.md +190 -0
- package/skills/sag/SKILL.md +87 -0
- package/skills/session-logs/SKILL.md +115 -0
- package/skills/sherpa-onnx-tts/SKILL.md +103 -0
- package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +178 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/songsee/SKILL.md +49 -0
- package/skills/sonoscli/SKILL.md +65 -0
- package/skills/spotify-player/SKILL.md +64 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +153 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +95 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/voice-call/SKILL.md +45 -0
- package/skills/wacli/SKILL.md +72 -0
- package/skills/weather/SKILL.md +112 -0
- package/skills/xurl/SKILL.md +461 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "WebSocket gateway architecture, components, and client flows"
|
|
3
|
+
read_when:
|
|
4
|
+
- Working on gateway protocol, clients, or transports
|
|
5
|
+
title: "Gateway Architecture"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Gateway architecture
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
- A single long‑lived **Gateway** owns all messaging surfaces (WhatsApp via
|
|
13
|
+
Baileys, Telegram via grammY, Slack, Discord, Signal, iMessage, WebChat).
|
|
14
|
+
- Control-plane clients (macOS app, CLI, web UI, automations) connect to the
|
|
15
|
+
Gateway over **WebSocket** on the configured bind host (default
|
|
16
|
+
`127.0.0.1:18789`).
|
|
17
|
+
- **Nodes** (macOS/iOS/Android/headless) also connect over **WebSocket**, but
|
|
18
|
+
declare `role: node` with explicit caps/commands.
|
|
19
|
+
- One Gateway per host; it is the only place that opens a WhatsApp session.
|
|
20
|
+
- The **canvas host** is served by the Gateway HTTP server under:
|
|
21
|
+
- `/__quantumclaw__/canvas/` (agent-editable HTML/CSS/JS)
|
|
22
|
+
- `/__quantumclaw__/a2ui/` (A2UI host)
|
|
23
|
+
It uses the same port as the Gateway (default `18789`).
|
|
24
|
+
|
|
25
|
+
## Components and flows
|
|
26
|
+
|
|
27
|
+
### Gateway (daemon)
|
|
28
|
+
|
|
29
|
+
- Maintains provider connections.
|
|
30
|
+
- Exposes a typed WS API (requests, responses, server‑push events).
|
|
31
|
+
- Validates inbound frames against JSON Schema.
|
|
32
|
+
- Emits events like `agent`, `chat`, `presence`, `health`, `heartbeat`, `cron`.
|
|
33
|
+
|
|
34
|
+
### Clients (mac app / CLI / web admin)
|
|
35
|
+
|
|
36
|
+
- One WS connection per client.
|
|
37
|
+
- Send requests (`health`, `status`, `send`, `agent`, `system-presence`).
|
|
38
|
+
- Subscribe to events (`tick`, `agent`, `presence`, `shutdown`).
|
|
39
|
+
|
|
40
|
+
### Nodes (macOS / iOS / Android / headless)
|
|
41
|
+
|
|
42
|
+
- Connect to the **same WS server** with `role: node`.
|
|
43
|
+
- Provide a device identity in `connect`; pairing is **device‑based** (role `node`) and
|
|
44
|
+
approval lives in the device pairing store.
|
|
45
|
+
- Expose commands like `canvas.*`, `camera.*`, `screen.record`, `location.get`.
|
|
46
|
+
|
|
47
|
+
Protocol details:
|
|
48
|
+
|
|
49
|
+
- [Gateway protocol](/gateway/protocol)
|
|
50
|
+
|
|
51
|
+
### WebChat
|
|
52
|
+
|
|
53
|
+
- Static UI that uses the Gateway WS API for chat history and sends.
|
|
54
|
+
- In remote setups, connects through the same SSH/Tailscale tunnel as other
|
|
55
|
+
clients.
|
|
56
|
+
|
|
57
|
+
## Connection lifecycle (single client)
|
|
58
|
+
|
|
59
|
+
```mermaid
|
|
60
|
+
sequenceDiagram
|
|
61
|
+
participant Client
|
|
62
|
+
participant Gateway
|
|
63
|
+
|
|
64
|
+
Client->>Gateway: req:connect
|
|
65
|
+
Gateway-->>Client: res (ok)
|
|
66
|
+
Note right of Gateway: or res error + close
|
|
67
|
+
Note left of Client: payload=hello-ok<br>snapshot: presence + health
|
|
68
|
+
|
|
69
|
+
Gateway-->>Client: event:presence
|
|
70
|
+
Gateway-->>Client: event:tick
|
|
71
|
+
|
|
72
|
+
Client->>Gateway: req:agent
|
|
73
|
+
Gateway-->>Client: res:agent<br>ack {runId, status:"accepted"}
|
|
74
|
+
Gateway-->>Client: event:agent<br>(streaming)
|
|
75
|
+
Gateway-->>Client: res:agent<br>final {runId, status, summary}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Wire protocol (summary)
|
|
79
|
+
|
|
80
|
+
- Transport: WebSocket, text frames with JSON payloads.
|
|
81
|
+
- First frame **must** be `connect`.
|
|
82
|
+
- After handshake:
|
|
83
|
+
- Requests: `{type:"req", id, method, params}` → `{type:"res", id, ok, payload|error}`
|
|
84
|
+
- Events: `{type:"event", event, payload, seq?, stateVersion?}`
|
|
85
|
+
- If `QUANTUMCLAW_GATEWAY_TOKEN` (or `--token`) is set, `connect.params.auth.token`
|
|
86
|
+
must match or the socket closes.
|
|
87
|
+
- Idempotency keys are required for side‑effecting methods (`send`, `agent`) to
|
|
88
|
+
safely retry; the server keeps a short‑lived dedupe cache.
|
|
89
|
+
- Nodes must include `role: "node"` plus caps/commands/permissions in `connect`.
|
|
90
|
+
|
|
91
|
+
## Pairing + local trust
|
|
92
|
+
|
|
93
|
+
- All WS clients (operators + nodes) include a **device identity** on `connect`.
|
|
94
|
+
- New device IDs require pairing approval; the Gateway issues a **device token**
|
|
95
|
+
for subsequent connects.
|
|
96
|
+
- **Local** connects (loopback or the gateway host’s own tailnet address) can be
|
|
97
|
+
auto‑approved to keep same‑host UX smooth.
|
|
98
|
+
- All connects must sign the `connect.challenge` nonce.
|
|
99
|
+
- Signature payload `v3` also binds `platform` + `deviceFamily`; the gateway
|
|
100
|
+
pins paired metadata on reconnect and requires repair pairing for metadata
|
|
101
|
+
changes.
|
|
102
|
+
- **Non‑local** connects still require explicit approval.
|
|
103
|
+
- Gateway auth (`gateway.auth.*`) still applies to **all** connections, local or
|
|
104
|
+
remote.
|
|
105
|
+
|
|
106
|
+
Details: [Gateway protocol](/gateway/protocol), [Pairing](/channels/pairing),
|
|
107
|
+
[Security](/gateway/security).
|
|
108
|
+
|
|
109
|
+
## Protocol typing and codegen
|
|
110
|
+
|
|
111
|
+
- TypeBox schemas define the protocol.
|
|
112
|
+
- JSON Schema is generated from those schemas.
|
|
113
|
+
- Swift models are generated from the JSON Schema.
|
|
114
|
+
|
|
115
|
+
## Remote access
|
|
116
|
+
|
|
117
|
+
- Preferred: Tailscale or VPN.
|
|
118
|
+
- Alternative: SSH tunnel
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
ssh -N -L 18789:127.0.0.1:18789 user@host
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- The same handshake + auth token apply over the tunnel.
|
|
125
|
+
- TLS + optional pinning can be enabled for WS in remote setups.
|
|
126
|
+
|
|
127
|
+
## Operations snapshot
|
|
128
|
+
|
|
129
|
+
- Start: `quantumclaw gateway` (foreground, logs to stdout).
|
|
130
|
+
- Health: `health` over WS (also included in `hello-ok`).
|
|
131
|
+
- Supervision: launchd/systemd for auto‑restart.
|
|
132
|
+
|
|
133
|
+
## Invariants
|
|
134
|
+
|
|
135
|
+
- Exactly one Gateway controls a single Baileys session per host.
|
|
136
|
+
- Handshake is mandatory; any non‑JSON or non‑connect first frame is a hard close.
|
|
137
|
+
- Events are not replayed; clients must refresh on gaps.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Context window + compaction: how QuantumClaw keeps sessions under model limits"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to understand auto-compaction and /compact
|
|
5
|
+
- You are debugging long sessions hitting context limits
|
|
6
|
+
title: "Compaction"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Context Window & Compaction
|
|
10
|
+
|
|
11
|
+
Every model has a **context window** (max tokens it can see). Long-running chats accumulate messages and tool results; once the window is tight, QuantumClaw **compacts** older history to stay within limits.
|
|
12
|
+
|
|
13
|
+
## What compaction is
|
|
14
|
+
|
|
15
|
+
Compaction **summarizes older conversation** into a compact summary entry and keeps recent messages intact. The summary is stored in the session history, so future requests use:
|
|
16
|
+
|
|
17
|
+
- The compaction summary
|
|
18
|
+
- Recent messages after the compaction point
|
|
19
|
+
|
|
20
|
+
Compaction **persists** in the session’s JSONL history.
|
|
21
|
+
|
|
22
|
+
## Configuration
|
|
23
|
+
|
|
24
|
+
Use the `agents.defaults.compaction` setting in your `quantumclaw.json` to configure compaction behavior (mode, target tokens, etc.).
|
|
25
|
+
Compaction summarization preserves opaque identifiers by default (`identifierPolicy: "strict"`). You can override this with `identifierPolicy: "off"` or provide custom text with `identifierPolicy: "custom"` and `identifierInstructions`.
|
|
26
|
+
|
|
27
|
+
You can optionally specify a different model for compaction summarization via `agents.defaults.compaction.model`. This is useful when your primary model is a local or small model and you want compaction summaries produced by a more capable model. The override accepts any `provider/model-id` string:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"agents": {
|
|
32
|
+
"defaults": {
|
|
33
|
+
"compaction": {
|
|
34
|
+
"model": "openrouter/anthropic/claude-sonnet-4-6"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
This also works with local models, for example a second Ollama model dedicated to summarization or a fine-tuned compaction specialist:
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"agents": {
|
|
46
|
+
"defaults": {
|
|
47
|
+
"compaction": {
|
|
48
|
+
"model": "ollama/llama3.1:8b"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
When unset, compaction uses the agent's primary model.
|
|
56
|
+
|
|
57
|
+
## Auto-compaction (default on)
|
|
58
|
+
|
|
59
|
+
When a session nears or exceeds the model’s context window, QuantumClaw triggers auto-compaction and may retry the original request using the compacted context.
|
|
60
|
+
|
|
61
|
+
You’ll see:
|
|
62
|
+
|
|
63
|
+
- `🧹 Auto-compaction complete` in verbose mode
|
|
64
|
+
- `/status` showing `🧹 Compactions: <count>`
|
|
65
|
+
|
|
66
|
+
Before compaction, QuantumClaw can run a **silent memory flush** turn to store
|
|
67
|
+
durable notes to disk. See [Memory](/concepts/memory) for details and config.
|
|
68
|
+
|
|
69
|
+
## Manual compaction
|
|
70
|
+
|
|
71
|
+
Use `/compact` (optionally with instructions) to force a compaction pass:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/compact Focus on decisions and open questions
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Context window source
|
|
78
|
+
|
|
79
|
+
Context window is model-specific. QuantumClaw uses the model definition from the configured provider catalog to determine limits.
|
|
80
|
+
|
|
81
|
+
## Compaction vs pruning
|
|
82
|
+
|
|
83
|
+
- **Compaction**: summarises and **persists** in JSONL.
|
|
84
|
+
- **Session pruning**: trims old **tool results** only, **in-memory**, per request.
|
|
85
|
+
|
|
86
|
+
See [/concepts/session-pruning](/concepts/session-pruning) for pruning details.
|
|
87
|
+
|
|
88
|
+
## OpenAI server-side compaction
|
|
89
|
+
|
|
90
|
+
QuantumClaw also supports OpenAI Responses server-side compaction hints for
|
|
91
|
+
compatible direct OpenAI models. This is separate from local QuantumClaw
|
|
92
|
+
compaction and can run alongside it.
|
|
93
|
+
|
|
94
|
+
- Local compaction: QuantumClaw summarizes and persists into session JSONL.
|
|
95
|
+
- Server-side compaction: OpenAI compacts context on the provider side when
|
|
96
|
+
`store` + `context_management` are enabled.
|
|
97
|
+
|
|
98
|
+
See [OpenAI provider](/providers/openai) for model params and overrides.
|
|
99
|
+
|
|
100
|
+
## Custom context engines
|
|
101
|
+
|
|
102
|
+
Compaction behavior is owned by the active
|
|
103
|
+
[context engine](/concepts/context-engine). The legacy engine uses the built-in
|
|
104
|
+
summarization described above. Plugin engines (selected via
|
|
105
|
+
`plugins.slots.contextEngine`) can implement any compaction strategy — DAG
|
|
106
|
+
summaries, vector retrieval, incremental condensation, etc.
|
|
107
|
+
|
|
108
|
+
When a plugin engine sets `ownsCompaction: true`, QuantumClaw delegates all
|
|
109
|
+
compaction decisions to the engine and does not run built-in auto-compaction.
|
|
110
|
+
|
|
111
|
+
When `ownsCompaction` is `false` or unset, QuantumClaw may still use Pi's
|
|
112
|
+
built-in in-attempt auto-compaction, but the active engine's `compact()` method
|
|
113
|
+
still handles `/compact` and overflow recovery. There is no automatic fallback
|
|
114
|
+
to the legacy engine's compaction path.
|
|
115
|
+
|
|
116
|
+
If you are building a non-owning context engine, implement `compact()` by
|
|
117
|
+
calling `delegateCompactionToRuntime(...)` from `quantumclaw/plugin-sdk/core`.
|
|
118
|
+
|
|
119
|
+
## Tips
|
|
120
|
+
|
|
121
|
+
- Use `/compact` when sessions feel stale or context is bloated.
|
|
122
|
+
- Large tool outputs are already truncated; pruning can further reduce tool-result buildup.
|
|
123
|
+
- If you need a fresh slate, `/new` or `/reset` starts a new session id.
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Context engine: pluggable context assembly, compaction, and subagent lifecycle"
|
|
3
|
+
read_when:
|
|
4
|
+
- You want to understand how QuantumClaw assembles model context
|
|
5
|
+
- You are switching between the legacy engine and a plugin engine
|
|
6
|
+
- You are building a context engine plugin
|
|
7
|
+
title: "Context Engine"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Context Engine
|
|
11
|
+
|
|
12
|
+
A **context engine** controls how QuantumClaw builds model context for each run.
|
|
13
|
+
It decides which messages to include, how to summarize older history, and how
|
|
14
|
+
to manage context across subagent boundaries.
|
|
15
|
+
|
|
16
|
+
QuantumClaw ships with a built-in `legacy` engine. Plugins can register
|
|
17
|
+
alternative engines that replace the active context-engine lifecycle.
|
|
18
|
+
|
|
19
|
+
## Quick start
|
|
20
|
+
|
|
21
|
+
Check which engine is active:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
quantumclaw doctor
|
|
25
|
+
# or inspect config directly:
|
|
26
|
+
cat ~/.quantumclaw/quantumclaw.json | jq '.plugins.slots.contextEngine'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Installing a context engine plugin
|
|
30
|
+
|
|
31
|
+
Context engine plugins are installed like any other QuantumClaw plugin. Install
|
|
32
|
+
first, then select the engine in the slot:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Install from npm
|
|
36
|
+
quantumclaw plugins install @martian-engineering/lossless-claw
|
|
37
|
+
|
|
38
|
+
# Or install from a local path (for development)
|
|
39
|
+
quantumclaw plugins install -l ./my-context-engine
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Then enable the plugin and select it as the active engine in your config:
|
|
43
|
+
|
|
44
|
+
```json5
|
|
45
|
+
// quantumclaw.json
|
|
46
|
+
{
|
|
47
|
+
plugins: {
|
|
48
|
+
slots: {
|
|
49
|
+
contextEngine: "lossless-claw", // must match the plugin's registered engine id
|
|
50
|
+
},
|
|
51
|
+
entries: {
|
|
52
|
+
"lossless-claw": {
|
|
53
|
+
enabled: true,
|
|
54
|
+
// Plugin-specific config goes here (see the plugin's docs)
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Restart the gateway after installing and configuring.
|
|
62
|
+
|
|
63
|
+
To switch back to the built-in engine, set `contextEngine` to `"legacy"` (or
|
|
64
|
+
remove the key entirely — `"legacy"` is the default).
|
|
65
|
+
|
|
66
|
+
## How it works
|
|
67
|
+
|
|
68
|
+
Every time QuantumClaw runs a model prompt, the context engine participates at
|
|
69
|
+
four lifecycle points:
|
|
70
|
+
|
|
71
|
+
1. **Ingest** — called when a new message is added to the session. The engine
|
|
72
|
+
can store or index the message in its own data store.
|
|
73
|
+
2. **Assemble** — called before each model run. The engine returns an ordered
|
|
74
|
+
set of messages (and an optional `systemPromptAddition`) that fit within
|
|
75
|
+
the token budget.
|
|
76
|
+
3. **Compact** — called when the context window is full, or when the user runs
|
|
77
|
+
`/compact`. The engine summarizes older history to free space.
|
|
78
|
+
4. **After turn** — called after a run completes. The engine can persist state,
|
|
79
|
+
trigger background compaction, or update indexes.
|
|
80
|
+
|
|
81
|
+
### Subagent lifecycle (optional)
|
|
82
|
+
|
|
83
|
+
QuantumClaw currently calls one subagent lifecycle hook:
|
|
84
|
+
|
|
85
|
+
- **onSubagentEnded** — clean up when a subagent session completes or is swept.
|
|
86
|
+
|
|
87
|
+
The `prepareSubagentSpawn` hook is part of the interface for future use, but
|
|
88
|
+
the runtime does not invoke it yet.
|
|
89
|
+
|
|
90
|
+
### System prompt addition
|
|
91
|
+
|
|
92
|
+
The `assemble` method can return a `systemPromptAddition` string. QuantumClaw
|
|
93
|
+
prepends this to the system prompt for the run. This lets engines inject
|
|
94
|
+
dynamic recall guidance, retrieval instructions, or context-aware hints
|
|
95
|
+
without requiring static workspace files.
|
|
96
|
+
|
|
97
|
+
## The legacy engine
|
|
98
|
+
|
|
99
|
+
The built-in `legacy` engine preserves QuantumClaw's original behavior:
|
|
100
|
+
|
|
101
|
+
- **Ingest**: no-op (the session manager handles message persistence directly).
|
|
102
|
+
- **Assemble**: pass-through (the existing sanitize → validate → limit pipeline
|
|
103
|
+
in the runtime handles context assembly).
|
|
104
|
+
- **Compact**: delegates to the built-in summarization compaction, which creates
|
|
105
|
+
a single summary of older messages and keeps recent messages intact.
|
|
106
|
+
- **After turn**: no-op.
|
|
107
|
+
|
|
108
|
+
The legacy engine does not register tools or provide a `systemPromptAddition`.
|
|
109
|
+
|
|
110
|
+
When no `plugins.slots.contextEngine` is set (or it's set to `"legacy"`), this
|
|
111
|
+
engine is used automatically.
|
|
112
|
+
|
|
113
|
+
## Plugin engines
|
|
114
|
+
|
|
115
|
+
A plugin can register a context engine using the plugin API:
|
|
116
|
+
|
|
117
|
+
```ts
|
|
118
|
+
export default function register(api) {
|
|
119
|
+
api.registerContextEngine("my-engine", () => ({
|
|
120
|
+
info: {
|
|
121
|
+
id: "my-engine",
|
|
122
|
+
name: "My Context Engine",
|
|
123
|
+
ownsCompaction: true,
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
async ingest({ sessionId, message, isHeartbeat }) {
|
|
127
|
+
// Store the message in your data store
|
|
128
|
+
return { ingested: true };
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
async assemble({ sessionId, messages, tokenBudget }) {
|
|
132
|
+
// Return messages that fit the budget
|
|
133
|
+
return {
|
|
134
|
+
messages: buildContext(messages, tokenBudget),
|
|
135
|
+
estimatedTokens: countTokens(messages),
|
|
136
|
+
systemPromptAddition: "Use lcm_grep to search history...",
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
async compact({ sessionId, force }) {
|
|
141
|
+
// Summarize older context
|
|
142
|
+
return { ok: true, compacted: true };
|
|
143
|
+
},
|
|
144
|
+
}));
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Then enable it in config:
|
|
149
|
+
|
|
150
|
+
```json5
|
|
151
|
+
{
|
|
152
|
+
plugins: {
|
|
153
|
+
slots: {
|
|
154
|
+
contextEngine: "my-engine",
|
|
155
|
+
},
|
|
156
|
+
entries: {
|
|
157
|
+
"my-engine": {
|
|
158
|
+
enabled: true,
|
|
159
|
+
},
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### The ContextEngine interface
|
|
166
|
+
|
|
167
|
+
Required members:
|
|
168
|
+
|
|
169
|
+
| Member | Kind | Purpose |
|
|
170
|
+
| ------------------ | -------- | -------------------------------------------------------- |
|
|
171
|
+
| `info` | Property | Engine id, name, version, and whether it owns compaction |
|
|
172
|
+
| `ingest(params)` | Method | Store a single message |
|
|
173
|
+
| `assemble(params)` | Method | Build context for a model run (returns `AssembleResult`) |
|
|
174
|
+
| `compact(params)` | Method | Summarize/reduce context |
|
|
175
|
+
|
|
176
|
+
`assemble` returns an `AssembleResult` with:
|
|
177
|
+
|
|
178
|
+
- `messages` — the ordered messages to send to the model.
|
|
179
|
+
- `estimatedTokens` (required, `number`) — the engine's estimate of total
|
|
180
|
+
tokens in the assembled context. QuantumClaw uses this for compaction threshold
|
|
181
|
+
decisions and diagnostic reporting.
|
|
182
|
+
- `systemPromptAddition` (optional, `string`) — prepended to the system prompt.
|
|
183
|
+
|
|
184
|
+
Optional members:
|
|
185
|
+
|
|
186
|
+
| Member | Kind | Purpose |
|
|
187
|
+
| ------------------------------ | ------ | --------------------------------------------------------------------------------------------------------------- |
|
|
188
|
+
| `bootstrap(params)` | Method | Initialize engine state for a session. Called once when the engine first sees a session (e.g., import history). |
|
|
189
|
+
| `ingestBatch(params)` | Method | Ingest a completed turn as a batch. Called after a run completes, with all messages from that turn at once. |
|
|
190
|
+
| `afterTurn(params)` | Method | Post-run lifecycle work (persist state, trigger background compaction). |
|
|
191
|
+
| `prepareSubagentSpawn(params)` | Method | Set up shared state for a child session. |
|
|
192
|
+
| `onSubagentEnded(params)` | Method | Clean up after a subagent ends. |
|
|
193
|
+
| `dispose()` | Method | Release resources. Called during gateway shutdown or plugin reload — not per-session. |
|
|
194
|
+
|
|
195
|
+
### ownsCompaction
|
|
196
|
+
|
|
197
|
+
`ownsCompaction` controls whether Pi's built-in in-attempt auto-compaction stays
|
|
198
|
+
enabled for the run:
|
|
199
|
+
|
|
200
|
+
- `true` — the engine owns compaction behavior. QuantumClaw disables Pi's built-in
|
|
201
|
+
auto-compaction for that run, and the engine's `compact()` implementation is
|
|
202
|
+
responsible for `/compact`, overflow recovery compaction, and any proactive
|
|
203
|
+
compaction it wants to do in `afterTurn()`.
|
|
204
|
+
- `false` or unset — Pi's built-in auto-compaction may still run during prompt
|
|
205
|
+
execution, but the active engine's `compact()` method is still called for
|
|
206
|
+
`/compact` and overflow recovery.
|
|
207
|
+
|
|
208
|
+
`ownsCompaction: false` does **not** mean QuantumClaw automatically falls back to
|
|
209
|
+
the legacy engine's compaction path.
|
|
210
|
+
|
|
211
|
+
That means there are two valid plugin patterns:
|
|
212
|
+
|
|
213
|
+
- **Owning mode** — implement your own compaction algorithm and set
|
|
214
|
+
`ownsCompaction: true`.
|
|
215
|
+
- **Delegating mode** — set `ownsCompaction: false` and have `compact()` call
|
|
216
|
+
`delegateCompactionToRuntime(...)` from `quantumclaw/plugin-sdk/core` to use
|
|
217
|
+
QuantumClaw's built-in compaction behavior.
|
|
218
|
+
|
|
219
|
+
A no-op `compact()` is unsafe for an active non-owning engine because it
|
|
220
|
+
disables the normal `/compact` and overflow-recovery compaction path for that
|
|
221
|
+
engine slot.
|
|
222
|
+
|
|
223
|
+
## Configuration reference
|
|
224
|
+
|
|
225
|
+
```json5
|
|
226
|
+
{
|
|
227
|
+
plugins: {
|
|
228
|
+
slots: {
|
|
229
|
+
// Select the active context engine. Default: "legacy".
|
|
230
|
+
// Set to a plugin id to use a plugin engine.
|
|
231
|
+
contextEngine: "legacy",
|
|
232
|
+
},
|
|
233
|
+
},
|
|
234
|
+
}
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
The slot is exclusive at run time — only one registered context engine is
|
|
238
|
+
resolved for a given run or compaction operation. Other enabled
|
|
239
|
+
`kind: "context-engine"` plugins can still load and run their registration
|
|
240
|
+
code; `plugins.slots.contextEngine` only selects which registered engine id
|
|
241
|
+
QuantumClaw resolves when it needs a context engine.
|
|
242
|
+
|
|
243
|
+
## Relationship to compaction and memory
|
|
244
|
+
|
|
245
|
+
- **Compaction** is one responsibility of the context engine. The legacy engine
|
|
246
|
+
delegates to QuantumClaw's built-in summarization. Plugin engines can implement
|
|
247
|
+
any compaction strategy (DAG summaries, vector retrieval, etc.).
|
|
248
|
+
- **Memory plugins** (`plugins.slots.memory`) are separate from context engines.
|
|
249
|
+
Memory plugins provide search/retrieval; context engines control what the
|
|
250
|
+
model sees. They can work together — a context engine might use memory
|
|
251
|
+
plugin data during assembly.
|
|
252
|
+
- **Session pruning** (trimming old tool results in-memory) still runs
|
|
253
|
+
regardless of which context engine is active.
|
|
254
|
+
|
|
255
|
+
## Tips
|
|
256
|
+
|
|
257
|
+
- Use `quantumclaw doctor` to verify your engine is loading correctly.
|
|
258
|
+
- If switching engines, existing sessions continue with their current history.
|
|
259
|
+
The new engine takes over for future runs.
|
|
260
|
+
- Engine errors are logged and surfaced in diagnostics. If a plugin engine
|
|
261
|
+
fails to register or the selected engine id cannot be resolved, QuantumClaw
|
|
262
|
+
does not fall back automatically; runs fail until you fix the plugin or
|
|
263
|
+
switch `plugins.slots.contextEngine` back to `"legacy"`.
|
|
264
|
+
- For development, use `quantumclaw plugins install -l ./my-engine` to link a
|
|
265
|
+
local plugin directory without copying.
|
|
266
|
+
|
|
267
|
+
See also: [Compaction](/concepts/compaction), [Context](/concepts/context),
|
|
268
|
+
[Plugins](/tools/plugin), [Plugin manifest](/plugins/manifest).
|