@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,161 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Plugin Entry Points"
|
|
3
|
+
sidebarTitle: "Entry Points"
|
|
4
|
+
summary: "Reference for definePluginEntry, defineChannelPluginEntry, and defineSetupPluginEntry"
|
|
5
|
+
read_when:
|
|
6
|
+
- You need the exact type signature of definePluginEntry or defineChannelPluginEntry
|
|
7
|
+
- You want to understand registration mode (full vs setup)
|
|
8
|
+
- You are looking up entry point options
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Plugin Entry Points
|
|
12
|
+
|
|
13
|
+
Every plugin exports a default entry object. The SDK provides three helpers for
|
|
14
|
+
creating them.
|
|
15
|
+
|
|
16
|
+
<Tip>
|
|
17
|
+
**Looking for a walkthrough?** See [Channel Plugins](/plugins/sdk-channel-plugins)
|
|
18
|
+
or [Provider Plugins](/plugins/sdk-provider-plugins) for step-by-step guides.
|
|
19
|
+
</Tip>
|
|
20
|
+
|
|
21
|
+
## `definePluginEntry`
|
|
22
|
+
|
|
23
|
+
**Import:** `quantumclaw/plugin-sdk/plugin-entry`
|
|
24
|
+
|
|
25
|
+
For provider plugins, tool plugins, hook plugins, and anything that is **not**
|
|
26
|
+
a messaging channel.
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { definePluginEntry } from "quantumclaw/plugin-sdk/plugin-entry";
|
|
30
|
+
|
|
31
|
+
export default definePluginEntry({
|
|
32
|
+
id: "my-plugin",
|
|
33
|
+
name: "My Plugin",
|
|
34
|
+
description: "Short summary",
|
|
35
|
+
register(api) {
|
|
36
|
+
api.registerProvider({
|
|
37
|
+
/* ... */
|
|
38
|
+
});
|
|
39
|
+
api.registerTool({
|
|
40
|
+
/* ... */
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Channel entry options
|
|
47
|
+
|
|
48
|
+
| Field | Type | Required | Default |
|
|
49
|
+
| -------------- | ---------------------------------------------------------------- | -------- | ------------------- |
|
|
50
|
+
| `id` | `string` | Yes | — |
|
|
51
|
+
| `name` | `string` | Yes | — |
|
|
52
|
+
| `description` | `string` | Yes | — |
|
|
53
|
+
| `kind` | `string` | No | — |
|
|
54
|
+
| `configSchema` | `QuantumClawPluginConfigSchema \| () => QuantumClawPluginConfigSchema` | No | Empty object schema |
|
|
55
|
+
| `register` | `(api: QuantumClawPluginApi) => void` | Yes | — |
|
|
56
|
+
|
|
57
|
+
- `id` must match your `quantumclaw.plugin.json` manifest.
|
|
58
|
+
- `kind` is for exclusive slots: `"memory"` or `"context-engine"`.
|
|
59
|
+
- `configSchema` can be a function for lazy evaluation.
|
|
60
|
+
|
|
61
|
+
## `defineChannelPluginEntry`
|
|
62
|
+
|
|
63
|
+
**Import:** `quantumclaw/plugin-sdk/core`
|
|
64
|
+
|
|
65
|
+
Wraps `definePluginEntry` with channel-specific wiring. Automatically calls
|
|
66
|
+
`api.registerChannel({ plugin })` and gates `registerFull` on registration mode.
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { defineChannelPluginEntry } from "quantumclaw/plugin-sdk/core";
|
|
70
|
+
|
|
71
|
+
export default defineChannelPluginEntry({
|
|
72
|
+
id: "my-channel",
|
|
73
|
+
name: "My Channel",
|
|
74
|
+
description: "Short summary",
|
|
75
|
+
plugin: myChannelPlugin,
|
|
76
|
+
setRuntime: setMyRuntime,
|
|
77
|
+
registerFull(api) {
|
|
78
|
+
api.registerCli(/* ... */);
|
|
79
|
+
api.registerGatewayMethod(/* ... */);
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Options
|
|
85
|
+
|
|
86
|
+
| Field | Type | Required | Default |
|
|
87
|
+
| -------------- | ---------------------------------------------------------------- | -------- | ------------------- |
|
|
88
|
+
| `id` | `string` | Yes | — |
|
|
89
|
+
| `name` | `string` | Yes | — |
|
|
90
|
+
| `description` | `string` | Yes | — |
|
|
91
|
+
| `plugin` | `ChannelPlugin` | Yes | — |
|
|
92
|
+
| `configSchema` | `QuantumClawPluginConfigSchema \| () => QuantumClawPluginConfigSchema` | No | Empty object schema |
|
|
93
|
+
| `setRuntime` | `(runtime: PluginRuntime) => void` | No | — |
|
|
94
|
+
| `registerFull` | `(api: QuantumClawPluginApi) => void` | No | — |
|
|
95
|
+
|
|
96
|
+
- `setRuntime` is called during registration so you can store the runtime reference
|
|
97
|
+
(typically via `createPluginRuntimeStore`).
|
|
98
|
+
- `registerFull` only runs when `api.registrationMode === "full"`. It is skipped
|
|
99
|
+
during setup-only loading.
|
|
100
|
+
|
|
101
|
+
## `defineSetupPluginEntry`
|
|
102
|
+
|
|
103
|
+
**Import:** `quantumclaw/plugin-sdk/core`
|
|
104
|
+
|
|
105
|
+
For the lightweight `setup-entry.ts` file. Returns just `{ plugin }` with no
|
|
106
|
+
runtime or CLI wiring.
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import { defineSetupPluginEntry } from "quantumclaw/plugin-sdk/core";
|
|
110
|
+
|
|
111
|
+
export default defineSetupPluginEntry(myChannelPlugin);
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
QuantumClaw loads this instead of the full entry when a channel is disabled,
|
|
115
|
+
unconfigured, or when deferred loading is enabled. See
|
|
116
|
+
[Setup and Config](/plugins/sdk-setup#setup-entry) for when this matters.
|
|
117
|
+
|
|
118
|
+
## Registration mode
|
|
119
|
+
|
|
120
|
+
`api.registrationMode` tells your plugin how it was loaded:
|
|
121
|
+
|
|
122
|
+
| Mode | When | What to register |
|
|
123
|
+
| ----------------- | --------------------------------- | ----------------------------- |
|
|
124
|
+
| `"full"` | Normal gateway startup | Everything |
|
|
125
|
+
| `"setup-only"` | Disabled/unconfigured channel | Channel registration only |
|
|
126
|
+
| `"setup-runtime"` | Setup flow with runtime available | Channel + lightweight runtime |
|
|
127
|
+
|
|
128
|
+
`defineChannelPluginEntry` handles this split automatically. If you use
|
|
129
|
+
`definePluginEntry` directly for a channel, check mode yourself:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
register(api) {
|
|
133
|
+
api.registerChannel({ plugin: myPlugin });
|
|
134
|
+
if (api.registrationMode !== "full") return;
|
|
135
|
+
|
|
136
|
+
// Heavy runtime-only registrations
|
|
137
|
+
api.registerCli(/* ... */);
|
|
138
|
+
api.registerService(/* ... */);
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Plugin shapes
|
|
143
|
+
|
|
144
|
+
QuantumClaw classifies loaded plugins by their registration behavior:
|
|
145
|
+
|
|
146
|
+
| Shape | Description |
|
|
147
|
+
| --------------------- | -------------------------------------------------- |
|
|
148
|
+
| **plain-capability** | One capability type (e.g. provider-only) |
|
|
149
|
+
| **hybrid-capability** | Multiple capability types (e.g. provider + speech) |
|
|
150
|
+
| **hook-only** | Only hooks, no capabilities |
|
|
151
|
+
| **non-capability** | Tools/commands/services but no capabilities |
|
|
152
|
+
|
|
153
|
+
Use `quantumclaw plugins inspect <id>` to see a plugin's shape.
|
|
154
|
+
|
|
155
|
+
## Related
|
|
156
|
+
|
|
157
|
+
- [SDK Overview](/plugins/sdk-overview) — registration API and subpath reference
|
|
158
|
+
- [Runtime Helpers](/plugins/sdk-runtime) — `api.runtime` and `createPluginRuntimeStore`
|
|
159
|
+
- [Setup and Config](/plugins/sdk-setup) — manifest, setup entry, deferred loading
|
|
160
|
+
- [Channel Plugins](/plugins/sdk-channel-plugins) — building the `ChannelPlugin` object
|
|
161
|
+
- [Provider Plugins](/plugins/sdk-provider-plugins) — provider registration and hooks
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Plugin SDK Migration"
|
|
3
|
+
sidebarTitle: "Migrate to SDK"
|
|
4
|
+
summary: "Migrate from the legacy backwards-compatibility layer to the modern plugin SDK"
|
|
5
|
+
read_when:
|
|
6
|
+
- You see the QUANTUMCLAW_PLUGIN_SDK_COMPAT_DEPRECATED warning
|
|
7
|
+
- You see the QUANTUMCLAW_EXTENSION_API_DEPRECATED warning
|
|
8
|
+
- You are updating a plugin to the modern plugin architecture
|
|
9
|
+
- You maintain an external QuantumClaw plugin
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Plugin SDK Migration
|
|
13
|
+
|
|
14
|
+
QuantumClaw has moved from a broad backwards-compatibility layer to a modern plugin
|
|
15
|
+
architecture with focused, documented imports. If your plugin was built before
|
|
16
|
+
the new architecture, this guide helps you migrate.
|
|
17
|
+
|
|
18
|
+
## What is changing
|
|
19
|
+
|
|
20
|
+
The old plugin system provided two wide-open surfaces that let plugins import
|
|
21
|
+
anything they needed from a single entry point:
|
|
22
|
+
|
|
23
|
+
- **`quantumclaw/plugin-sdk/compat`** — a single import that re-exported dozens of
|
|
24
|
+
helpers. It was introduced to keep older hook-based plugins working while the
|
|
25
|
+
new plugin architecture was being built.
|
|
26
|
+
- **`quantumclaw/extension-api`** — a bridge that gave plugins direct access to
|
|
27
|
+
host-side helpers like the embedded agent runner.
|
|
28
|
+
|
|
29
|
+
Both surfaces are now **deprecated**. They still work at runtime, but new
|
|
30
|
+
plugins must not use them, and existing plugins should migrate before the next
|
|
31
|
+
major release removes them.
|
|
32
|
+
|
|
33
|
+
<Warning>
|
|
34
|
+
The backwards-compatibility layer will be removed in a future major release.
|
|
35
|
+
Plugins that still import from these surfaces will break when that happens.
|
|
36
|
+
</Warning>
|
|
37
|
+
|
|
38
|
+
## Why this changed
|
|
39
|
+
|
|
40
|
+
The old approach caused problems:
|
|
41
|
+
|
|
42
|
+
- **Slow startup** — importing one helper loaded dozens of unrelated modules
|
|
43
|
+
- **Circular dependencies** — broad re-exports made it easy to create import cycles
|
|
44
|
+
- **Unclear API surface** — no way to tell which exports were stable vs internal
|
|
45
|
+
|
|
46
|
+
The modern plugin SDK fixes this: each import path (`quantumclaw/plugin-sdk/\<subpath\>`)
|
|
47
|
+
is a small, self-contained module with a clear purpose and documented contract.
|
|
48
|
+
|
|
49
|
+
## How to migrate
|
|
50
|
+
|
|
51
|
+
<Steps>
|
|
52
|
+
<Step title="Find deprecated imports">
|
|
53
|
+
Search your plugin for imports from either deprecated surface:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
grep -r "plugin-sdk/compat" my-plugin/
|
|
57
|
+
grep -r "quantumclaw/extension-api" my-plugin/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
</Step>
|
|
61
|
+
|
|
62
|
+
<Step title="Replace with focused imports">
|
|
63
|
+
Each export from the old surface maps to a specific modern import path:
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// Before (deprecated backwards-compatibility layer)
|
|
67
|
+
import {
|
|
68
|
+
createChannelReplyPipeline,
|
|
69
|
+
createPluginRuntimeStore,
|
|
70
|
+
resolveControlCommandGate,
|
|
71
|
+
} from "quantumclaw/plugin-sdk/compat";
|
|
72
|
+
|
|
73
|
+
// After (modern focused imports)
|
|
74
|
+
import { createChannelReplyPipeline } from "quantumclaw/plugin-sdk/channel-reply-pipeline";
|
|
75
|
+
import { createPluginRuntimeStore } from "quantumclaw/plugin-sdk/runtime-store";
|
|
76
|
+
import { resolveControlCommandGate } from "quantumclaw/plugin-sdk/command-auth";
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For host-side helpers, use the injected plugin runtime instead of importing
|
|
80
|
+
directly:
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
// Before (deprecated extension-api bridge)
|
|
84
|
+
import { runEmbeddedPiAgent } from "quantumclaw/extension-api";
|
|
85
|
+
const result = await runEmbeddedPiAgent({ sessionId, prompt });
|
|
86
|
+
|
|
87
|
+
// After (injected runtime)
|
|
88
|
+
const result = await api.runtime.agent.runEmbeddedPiAgent({ sessionId, prompt });
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The same pattern applies to other legacy bridge helpers:
|
|
92
|
+
|
|
93
|
+
| Old import | Modern equivalent |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| `resolveAgentDir` | `api.runtime.agent.resolveAgentDir` |
|
|
96
|
+
| `resolveAgentWorkspaceDir` | `api.runtime.agent.resolveAgentWorkspaceDir` |
|
|
97
|
+
| `resolveAgentIdentity` | `api.runtime.agent.resolveAgentIdentity` |
|
|
98
|
+
| `resolveThinkingDefault` | `api.runtime.agent.resolveThinkingDefault` |
|
|
99
|
+
| `resolveAgentTimeoutMs` | `api.runtime.agent.resolveAgentTimeoutMs` |
|
|
100
|
+
| `ensureAgentWorkspace` | `api.runtime.agent.ensureAgentWorkspace` |
|
|
101
|
+
| session store helpers | `api.runtime.agent.session.*` |
|
|
102
|
+
|
|
103
|
+
</Step>
|
|
104
|
+
|
|
105
|
+
<Step title="Build and test">
|
|
106
|
+
```bash
|
|
107
|
+
pnpm build
|
|
108
|
+
pnpm test -- my-plugin/
|
|
109
|
+
```
|
|
110
|
+
</Step>
|
|
111
|
+
</Steps>
|
|
112
|
+
|
|
113
|
+
## Import path reference
|
|
114
|
+
|
|
115
|
+
<Accordion title="Full import path table">
|
|
116
|
+
| Import path | Purpose | Key exports |
|
|
117
|
+
| --- | --- | --- |
|
|
118
|
+
| `plugin-sdk/plugin-entry` | Canonical plugin entry helper | `definePluginEntry` |
|
|
119
|
+
| `plugin-sdk/core` | Channel entry definitions, channel builders, base types | `defineChannelPluginEntry`, `createChatChannelPlugin` |
|
|
120
|
+
| `plugin-sdk/channel-setup` | Setup wizard adapters | `createOptionalChannelSetupSurface` |
|
|
121
|
+
| `plugin-sdk/channel-pairing` | DM pairing primitives | `createChannelPairingController` |
|
|
122
|
+
| `plugin-sdk/channel-reply-pipeline` | Reply prefix + typing wiring | `createChannelReplyPipeline` |
|
|
123
|
+
| `plugin-sdk/channel-config-helpers` | Config adapter factories | `createHybridChannelConfigAdapter` |
|
|
124
|
+
| `plugin-sdk/channel-config-schema` | Config schema builders | Channel config schema types |
|
|
125
|
+
| `plugin-sdk/channel-policy` | Group/DM policy resolution | `resolveChannelGroupRequireMention` |
|
|
126
|
+
| `plugin-sdk/channel-lifecycle` | Account status tracking | `createAccountStatusSink` |
|
|
127
|
+
| `plugin-sdk/channel-runtime` | Runtime wiring helpers | Channel runtime utilities |
|
|
128
|
+
| `plugin-sdk/channel-send-result` | Send result types | Reply result types |
|
|
129
|
+
| `plugin-sdk/runtime-store` | Persistent plugin storage | `createPluginRuntimeStore` |
|
|
130
|
+
| `plugin-sdk/allow-from` | Allowlist formatting | `formatAllowFromLowercase` |
|
|
131
|
+
| `plugin-sdk/allowlist-resolution` | Allowlist input mapping | `mapAllowlistResolutionInputs` |
|
|
132
|
+
| `plugin-sdk/command-auth` | Command gating | `resolveControlCommandGate` |
|
|
133
|
+
| `plugin-sdk/secret-input` | Secret input parsing | Secret input helpers |
|
|
134
|
+
| `plugin-sdk/webhook-ingress` | Webhook request helpers | Webhook target utilities |
|
|
135
|
+
| `plugin-sdk/reply-payload` | Message reply types | Reply payload types |
|
|
136
|
+
| `plugin-sdk/provider-onboard` | Provider onboarding patches | Onboarding config helpers |
|
|
137
|
+
| `plugin-sdk/keyed-async-queue` | Ordered async queue | `KeyedAsyncQueue` |
|
|
138
|
+
| `plugin-sdk/testing` | Test utilities | Test helpers and mocks |
|
|
139
|
+
</Accordion>
|
|
140
|
+
|
|
141
|
+
Use the narrowest import that matches the job. If you cannot find an export,
|
|
142
|
+
check the source at `src/plugin-sdk/` or ask in Discord.
|
|
143
|
+
|
|
144
|
+
## Removal timeline
|
|
145
|
+
|
|
146
|
+
| When | What happens |
|
|
147
|
+
| ---------------------- | ----------------------------------------------------------------------- |
|
|
148
|
+
| **Now** | Deprecated surfaces emit runtime warnings |
|
|
149
|
+
| **Next major release** | Deprecated surfaces will be removed; plugins still using them will fail |
|
|
150
|
+
|
|
151
|
+
All core plugins have already been migrated. External plugins should migrate
|
|
152
|
+
before the next major release.
|
|
153
|
+
|
|
154
|
+
## Suppressing the warnings temporarily
|
|
155
|
+
|
|
156
|
+
Set these environment variables while you work on migrating:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
QUANTUMCLAW_SUPPRESS_PLUGIN_SDK_COMPAT_WARNING=1 quantumclaw gateway run
|
|
160
|
+
QUANTUMCLAW_SUPPRESS_EXTENSION_API_WARNING=1 quantumclaw gateway run
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
This is a temporary escape hatch, not a permanent solution.
|
|
164
|
+
|
|
165
|
+
## Related
|
|
166
|
+
|
|
167
|
+
- [Getting Started](/plugins/building-plugins) — build your first plugin
|
|
168
|
+
- [SDK Overview](/plugins/sdk-overview) — full subpath import reference
|
|
169
|
+
- [Channel Plugins](/plugins/sdk-channel-plugins) — building channel plugins
|
|
170
|
+
- [Provider Plugins](/plugins/sdk-provider-plugins) — building provider plugins
|
|
171
|
+
- [Plugin Internals](/plugins/architecture) — architecture deep dive
|
|
172
|
+
- [Plugin Manifest](/plugins/manifest) — manifest schema reference
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Plugin SDK Overview"
|
|
3
|
+
sidebarTitle: "SDK Overview"
|
|
4
|
+
summary: "Import map, registration API reference, and SDK architecture"
|
|
5
|
+
read_when:
|
|
6
|
+
- You need to know which SDK subpath to import from
|
|
7
|
+
- You want a reference for all registration methods on QuantumClawPluginApi
|
|
8
|
+
- You are looking up a specific SDK export
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Plugin SDK Overview
|
|
12
|
+
|
|
13
|
+
The plugin SDK is the typed contract between plugins and core. This page is the
|
|
14
|
+
reference for **what to import** and **what you can register**.
|
|
15
|
+
|
|
16
|
+
<Tip>
|
|
17
|
+
**Looking for a how-to guide?**
|
|
18
|
+
- First plugin? Start with [Getting Started](/plugins/building-plugins)
|
|
19
|
+
- Channel plugin? See [Channel Plugins](/plugins/sdk-channel-plugins)
|
|
20
|
+
- Provider plugin? See [Provider Plugins](/plugins/sdk-provider-plugins)
|
|
21
|
+
</Tip>
|
|
22
|
+
|
|
23
|
+
## Import convention
|
|
24
|
+
|
|
25
|
+
Always import from a specific subpath:
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
import { definePluginEntry } from "quantumclaw/plugin-sdk/plugin-entry";
|
|
29
|
+
import { defineChannelPluginEntry } from "quantumclaw/plugin-sdk/core";
|
|
30
|
+
|
|
31
|
+
// Deprecated — will be removed in the next major release
|
|
32
|
+
import { definePluginEntry } from "quantumclaw/plugin-sdk";
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Each subpath is a small, self-contained module. This keeps startup fast and
|
|
36
|
+
prevents circular dependency issues.
|
|
37
|
+
|
|
38
|
+
## Subpath reference
|
|
39
|
+
|
|
40
|
+
The most commonly used subpaths, grouped by purpose. The full list of 100+
|
|
41
|
+
subpaths is in `scripts/lib/plugin-sdk-entrypoints.json`.
|
|
42
|
+
|
|
43
|
+
### Plugin entry
|
|
44
|
+
|
|
45
|
+
| Subpath | Key exports |
|
|
46
|
+
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
47
|
+
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
|
48
|
+
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
|
49
|
+
|
|
50
|
+
<AccordionGroup>
|
|
51
|
+
<Accordion title="Channel subpaths">
|
|
52
|
+
| Subpath | Key exports |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface` |
|
|
55
|
+
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
|
|
56
|
+
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
|
|
57
|
+
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
|
58
|
+
| `plugin-sdk/channel-config-schema` | Channel config schema types |
|
|
59
|
+
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
|
60
|
+
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
|
|
61
|
+
| `plugin-sdk/channel-inbound` | Debounce, mention matching, envelope helpers |
|
|
62
|
+
| `plugin-sdk/channel-send-result` | Reply result types |
|
|
63
|
+
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
|
|
64
|
+
| `plugin-sdk/channel-targets` | Target parsing/matching helpers |
|
|
65
|
+
| `plugin-sdk/channel-contract` | Channel contract types |
|
|
66
|
+
| `plugin-sdk/channel-feedback` | Feedback/reaction wiring |
|
|
67
|
+
</Accordion>
|
|
68
|
+
|
|
69
|
+
<Accordion title="Provider subpaths">
|
|
70
|
+
| Subpath | Key exports |
|
|
71
|
+
| --- | --- |
|
|
72
|
+
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile` |
|
|
73
|
+
| `plugin-sdk/provider-models` | `normalizeModelCompat` |
|
|
74
|
+
| `plugin-sdk/provider-catalog` | Catalog type re-exports |
|
|
75
|
+
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` and similar |
|
|
76
|
+
| `plugin-sdk/provider-stream` | Stream wrapper types |
|
|
77
|
+
| `plugin-sdk/provider-onboard` | Onboarding config patch helpers |
|
|
78
|
+
</Accordion>
|
|
79
|
+
|
|
80
|
+
<Accordion title="Auth and security subpaths">
|
|
81
|
+
| Subpath | Key exports |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| `plugin-sdk/command-auth` | `resolveControlCommandGate` |
|
|
84
|
+
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
|
85
|
+
| `plugin-sdk/secret-input` | Secret input parsing helpers |
|
|
86
|
+
| `plugin-sdk/webhook-ingress` | Webhook request/target helpers |
|
|
87
|
+
</Accordion>
|
|
88
|
+
|
|
89
|
+
<Accordion title="Runtime and storage subpaths">
|
|
90
|
+
| Subpath | Key exports |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
|
93
|
+
| `plugin-sdk/config-runtime` | Config load/write helpers |
|
|
94
|
+
| `plugin-sdk/infra-runtime` | System event/heartbeat helpers |
|
|
95
|
+
| `plugin-sdk/agent-runtime` | Agent dir/identity/workspace helpers |
|
|
96
|
+
| `plugin-sdk/directory-runtime` | Config-backed directory query/dedup |
|
|
97
|
+
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
|
98
|
+
</Accordion>
|
|
99
|
+
|
|
100
|
+
<Accordion title="Capability and testing subpaths">
|
|
101
|
+
| Subpath | Key exports |
|
|
102
|
+
| --- | --- |
|
|
103
|
+
| `plugin-sdk/image-generation` | Image generation provider types |
|
|
104
|
+
| `plugin-sdk/media-understanding` | Media understanding provider types |
|
|
105
|
+
| `plugin-sdk/speech` | Speech provider types |
|
|
106
|
+
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
|
|
107
|
+
</Accordion>
|
|
108
|
+
</AccordionGroup>
|
|
109
|
+
|
|
110
|
+
## Registration API
|
|
111
|
+
|
|
112
|
+
The `register(api)` callback receives an `QuantumClawPluginApi` object with these
|
|
113
|
+
methods:
|
|
114
|
+
|
|
115
|
+
### Capability registration
|
|
116
|
+
|
|
117
|
+
| Method | What it registers |
|
|
118
|
+
| --------------------------------------------- | ------------------------------ |
|
|
119
|
+
| `api.registerProvider(...)` | Text inference (LLM) |
|
|
120
|
+
| `api.registerChannel(...)` | Messaging channel |
|
|
121
|
+
| `api.registerSpeechProvider(...)` | Text-to-speech / STT synthesis |
|
|
122
|
+
| `api.registerMediaUnderstandingProvider(...)` | Image/audio/video analysis |
|
|
123
|
+
| `api.registerImageGenerationProvider(...)` | Image generation |
|
|
124
|
+
| `api.registerWebSearchProvider(...)` | Web search |
|
|
125
|
+
|
|
126
|
+
### Tools and commands
|
|
127
|
+
|
|
128
|
+
| Method | What it registers |
|
|
129
|
+
| ------------------------------- | --------------------------------------------- |
|
|
130
|
+
| `api.registerTool(tool, opts?)` | Agent tool (required or `{ optional: true }`) |
|
|
131
|
+
| `api.registerCommand(def)` | Custom command (bypasses the LLM) |
|
|
132
|
+
|
|
133
|
+
### Infrastructure
|
|
134
|
+
|
|
135
|
+
| Method | What it registers |
|
|
136
|
+
| ---------------------------------------------- | --------------------- |
|
|
137
|
+
| `api.registerHook(events, handler, opts?)` | Event hook |
|
|
138
|
+
| `api.registerHttpRoute(params)` | Gateway HTTP endpoint |
|
|
139
|
+
| `api.registerGatewayMethod(name, handler)` | Gateway RPC method |
|
|
140
|
+
| `api.registerCli(registrar, opts?)` | CLI subcommand |
|
|
141
|
+
| `api.registerService(service)` | Background service |
|
|
142
|
+
| `api.registerInteractiveHandler(registration)` | Interactive handler |
|
|
143
|
+
|
|
144
|
+
### Exclusive slots
|
|
145
|
+
|
|
146
|
+
| Method | What it registers |
|
|
147
|
+
| ------------------------------------------ | ------------------------------------- |
|
|
148
|
+
| `api.registerContextEngine(id, factory)` | Context engine (one active at a time) |
|
|
149
|
+
| `api.registerMemoryPromptSection(builder)` | Memory prompt section builder |
|
|
150
|
+
|
|
151
|
+
### Events and lifecycle
|
|
152
|
+
|
|
153
|
+
| Method | What it does |
|
|
154
|
+
| -------------------------------------------- | ----------------------------- |
|
|
155
|
+
| `api.on(hookName, handler, opts?)` | Typed lifecycle hook |
|
|
156
|
+
| `api.onConversationBindingResolved(handler)` | Conversation binding callback |
|
|
157
|
+
|
|
158
|
+
### API object fields
|
|
159
|
+
|
|
160
|
+
| Field | Type | Description |
|
|
161
|
+
| ------------------------ | ------------------------- | --------------------------------------------------------- |
|
|
162
|
+
| `api.id` | `string` | Plugin id |
|
|
163
|
+
| `api.name` | `string` | Display name |
|
|
164
|
+
| `api.config` | `QuantumClawConfig` | Current config snapshot |
|
|
165
|
+
| `api.pluginConfig` | `Record<string, unknown>` | Plugin-specific config from `plugins.entries.<id>.config` |
|
|
166
|
+
| `api.runtime` | `PluginRuntime` | [Runtime helpers](/plugins/sdk-runtime) |
|
|
167
|
+
| `api.logger` | `PluginLogger` | Scoped logger (`debug`, `info`, `warn`, `error`) |
|
|
168
|
+
| `api.registrationMode` | `PluginRegistrationMode` | `"full"`, `"setup-only"`, or `"setup-runtime"` |
|
|
169
|
+
| `api.resolvePath(input)` | `(string) => string` | Resolve path relative to plugin root |
|
|
170
|
+
|
|
171
|
+
## Internal module convention
|
|
172
|
+
|
|
173
|
+
Within your plugin, use local barrel files for internal imports:
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
my-plugin/
|
|
177
|
+
api.ts # Public exports for external consumers
|
|
178
|
+
runtime-api.ts # Internal-only runtime exports
|
|
179
|
+
index.ts # Plugin entry point
|
|
180
|
+
setup-entry.ts # Lightweight setup-only entry (optional)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
<Warning>
|
|
184
|
+
Never import your own plugin through `quantumclaw/plugin-sdk/<your-plugin>`
|
|
185
|
+
from production code. Route internal imports through `./api.ts` or
|
|
186
|
+
`./runtime-api.ts`. The SDK path is the external contract only.
|
|
187
|
+
</Warning>
|
|
188
|
+
|
|
189
|
+
## Related
|
|
190
|
+
|
|
191
|
+
- [Entry Points](/plugins/sdk-entrypoints) — `definePluginEntry` and `defineChannelPluginEntry` options
|
|
192
|
+
- [Runtime Helpers](/plugins/sdk-runtime) — full `api.runtime` namespace reference
|
|
193
|
+
- [Setup and Config](/plugins/sdk-setup) — packaging, manifests, config schemas
|
|
194
|
+
- [Testing](/plugins/sdk-testing) — test utilities and lint rules
|
|
195
|
+
- [SDK Migration](/plugins/sdk-migration) — migrating from deprecated surfaces
|
|
196
|
+
- [Plugin Internals](/plugins/architecture) — deep architecture and capability model
|