mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-09 15:59:30 +00:00
feat(plugins): externalize additional official plugins (#95683)
This commit is contained in:
parent
4e9dc6b5d5
commit
f2eca94391
78 changed files with 1695 additions and 116 deletions
|
|
@ -63,9 +63,9 @@ If `plugins.allow` is a non-empty restrictive list, explicitly selecting
|
|||
ClickClack in channel setup or running `openclaw plugins enable clickclack`
|
||||
appends `clickclack` to that list. Onboarding installation uses the same
|
||||
explicit-selection behavior. These paths do not override `plugins.deny` or a
|
||||
global `plugins.enabled: false` setting. Direct `openclaw plugins install
|
||||
clickclack` follows the normal plugin-install policy and also records ClickClack
|
||||
in an existing allowlist.
|
||||
global `plugins.enabled: false` setting. Direct
|
||||
`openclaw plugins install @openclaw/clickclack` follows the normal
|
||||
plugin-install policy and also records ClickClack in an existing allowlist.
|
||||
|
||||
## Multiple bots
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ Text is supported everywhere; media and reactions vary by channel.
|
|||
- [Raft](/channels/raft) - Raft CLI wake bridge for human and agent collaboration (external plugin).
|
||||
- [Signal](/channels/signal) - signal-cli; privacy-focused.
|
||||
- [Slack](/channels/slack) - Bolt SDK; workspace apps.
|
||||
- [SMS](/channels/sms) - Twilio-backed SMS through the Gateway webhook (bundled plugin).
|
||||
- [SMS](/channels/sms) - Twilio-backed SMS through the Gateway webhook (official plugin).
|
||||
- [Synology Chat](/channels/synology-chat) - Synology NAS Chat via outgoing+incoming webhooks (bundled plugin).
|
||||
- [Telegram](/channels/telegram) - Bot API via grammY; supports groups.
|
||||
- [Tlon](/channels/tlon) - Urbit-based messenger (bundled plugin).
|
||||
|
|
|
|||
|
|
@ -7,12 +7,18 @@ read_when:
|
|||
---
|
||||
|
||||
Use IRC when you want OpenClaw in classic channels (`#room`) and direct messages.
|
||||
IRC ships as a bundled plugin, but it is configured in the main config under `channels.irc`.
|
||||
Install the official IRC plugin, then configure it under `channels.irc`.
|
||||
|
||||
## Quick start
|
||||
|
||||
1. Enable IRC config in `~/.openclaw/openclaw.json`.
|
||||
2. Set at least:
|
||||
1. Install the plugin:
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/irc
|
||||
```
|
||||
|
||||
2. Enable IRC config in `~/.openclaw/openclaw.json`.
|
||||
3. Set at least:
|
||||
|
||||
```json5
|
||||
{
|
||||
|
|
@ -31,7 +37,7 @@ IRC ships as a bundled plugin, but it is configured in the main config under `ch
|
|||
|
||||
Prefer a private IRC server for bot coordination. If you intentionally use a public IRC network, common choices include Libera.Chat, OFTC, and Snoonet. Avoid predictable public channels for bot or swarm backchannel traffic.
|
||||
|
||||
3. Start/restart gateway:
|
||||
4. Start/restart gateway:
|
||||
|
||||
```bash
|
||||
openclaw gateway run
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ Details: [Plugins](/tools/plugin)
|
|||
|
||||
<Steps>
|
||||
<Step title="Ensure plugin is available">
|
||||
Current packaged OpenClaw releases already bundle it. Older/custom installs can add it manually with the commands above.
|
||||
Install `@openclaw/mattermost` with the command above, then restart the Gateway if it is already running.
|
||||
</Step>
|
||||
<Step title="Create a Mattermost bot">
|
||||
Create a Mattermost bot account and copy the **bot token**.
|
||||
|
|
|
|||
|
|
@ -20,12 +20,18 @@ Status: external CLI integration. Gateway talks to `signal-cli` over HTTP — ei
|
|||
## Quick setup (beginner)
|
||||
|
||||
1. Use a **separate Signal number** for the bot (recommended).
|
||||
2. Install `signal-cli` (Java required if you use the JVM build).
|
||||
3. Choose one setup path:
|
||||
2. Install the OpenClaw plugin:
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/signal
|
||||
```
|
||||
|
||||
3. Install `signal-cli` (Java required if you use the JVM build).
|
||||
4. Choose one setup path:
|
||||
- **Path A (QR link):** `signal-cli link -n "OpenClaw"` and scan with Signal.
|
||||
- **Path B (SMS register):** register a dedicated number with captcha + SMS verification.
|
||||
4. Configure OpenClaw and restart the gateway.
|
||||
5. Send a first DM and approve pairing (`openclaw pairing approve signal <CODE>`).
|
||||
5. Configure OpenClaw and restart the gateway.
|
||||
6. Send a first DM and approve pairing (`openclaw pairing approve signal <CODE>`).
|
||||
|
||||
Minimal config:
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ OpenClaw can receive and send SMS through a Twilio phone number or Messaging Ser
|
|||
|
||||
You need:
|
||||
|
||||
- The official SMS plugin installed with `openclaw plugins install @openclaw/sms`.
|
||||
- A Twilio account with an SMS-capable phone number, or a Twilio Messaging Service.
|
||||
- The Twilio Account SID and Auth Token.
|
||||
- A public HTTPS URL that reaches your OpenClaw Gateway.
|
||||
|
|
@ -34,6 +35,11 @@ Use one Twilio number for both SMS and Voice Call if the number has both capabil
|
|||
## Quick Setup
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/sms
|
||||
```
|
||||
</Step>
|
||||
<Step title="Create or choose a Twilio sender">
|
||||
In Twilio, open **Phone Numbers > Manage > Active numbers** and choose an SMS-capable number. Save:
|
||||
|
||||
|
|
|
|||
|
|
@ -333,7 +333,7 @@ Gateway model capability checks also read explicit `models.providers.<id>.models
|
|||
|
||||
### Moonshot AI (Kimi)
|
||||
|
||||
Moonshot ships as a bundled provider plugin. Use the built-in provider by default, and add an explicit `models.providers.moonshot` entry only when you need to override the base URL or model metadata:
|
||||
Install `@openclaw/moonshot-provider` before onboarding. Add an explicit `models.providers.moonshot` entry only when you need to override the base URL or model metadata:
|
||||
|
||||
- Provider: `moonshot`
|
||||
- Auth: `MOONSHOT_API_KEY`
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
## Core npm package
|
||||
|
||||
72 plugins
|
||||
59 plugins
|
||||
|
||||
- **[admin-http-rpc](/plugins/reference/admin-http-rpc)** (`@openclaw/admin-http-rpc`) - included in OpenClaw. OpenClaw admin HTTP RPC endpoint.
|
||||
|
||||
|
|
@ -69,8 +69,6 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[canvas](/plugins/reference/canvas)** (`@openclaw/canvas-plugin`) - included in OpenClaw. Experimental Canvas control and A2UI rendering surfaces for paired nodes.
|
||||
|
||||
- **[clickclack](/plugins/reference/clickclack)** (`@openclaw/clickclack`) - included in OpenClaw. Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[codex-supervisor](/plugins/reference/codex-supervisor)** (`@openclaw/codex-supervisor`) - included in OpenClaw. Supervise Codex app-server sessions from OpenClaw.
|
||||
|
||||
- **[cohere](/plugins/reference/cohere)** (`@openclaw/cohere-provider`) - included in OpenClaw; npm; ClawHub: `clawhub:@openclaw/cohere-provider`. OpenClaw Cohere provider plugin.
|
||||
|
|
@ -91,8 +89,6 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[file-transfer](/plugins/reference/file-transfer)** (`@openclaw/file-transfer`) - included in OpenClaw. Fetch, list, and write files on paired nodes via dedicated node commands. Bypasses bash stdout truncation by using base64 over node.invoke for binaries up to 16 MB.
|
||||
|
||||
- **[fireworks](/plugins/reference/fireworks)** (`@openclaw/fireworks-provider`) - included in OpenClaw. Adds Fireworks model provider support to OpenClaw.
|
||||
|
||||
- **[github-copilot](/plugins/reference/github-copilot)** (`@openclaw/github-copilot-provider`) - included in OpenClaw. Adds GitHub Copilot model provider support to OpenClaw.
|
||||
|
||||
- **[google](/plugins/reference/google)** (`@openclaw/google-plugin`) - included in OpenClaw. Adds Google, Google Gemini CLI, Google Vertex model provider support to OpenClaw.
|
||||
|
|
@ -101,16 +97,12 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[imessage](/plugins/reference/imessage)** (`@openclaw/imessage`) - included in OpenClaw. Adds the iMessage channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[irc](/plugins/reference/irc)** (`@openclaw/irc`) - included in OpenClaw. Adds the IRC channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[litellm](/plugins/reference/litellm)** (`@openclaw/litellm-provider`) - included in OpenClaw. Adds LiteLLM model provider support to OpenClaw.
|
||||
|
||||
- **[llm-task](/plugins/reference/llm-task)** (`@openclaw/llm-task`) - included in OpenClaw. Generic JSON-only LLM tool for structured tasks callable from workflows.
|
||||
|
||||
- **[lmstudio](/plugins/reference/lmstudio)** (`@openclaw/lmstudio-provider`) - included in OpenClaw. Adds LM Studio model provider support to OpenClaw.
|
||||
|
||||
- **[mattermost](/plugins/reference/mattermost)** (`@openclaw/mattermost`) - included in OpenClaw. Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[memory-core](/plugins/reference/memory-core)** (`@openclaw/memory-core`) - included in OpenClaw. Adds agent-callable tools.
|
||||
|
||||
- **[memory-wiki](/plugins/reference/memory-wiki)** (`@openclaw/memory-wiki`) - included in OpenClaw. Persistent wiki compiler and Obsidian-friendly knowledge vault for OpenClaw.
|
||||
|
|
@ -127,8 +119,6 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[mistral](/plugins/reference/mistral)** (`@openclaw/mistral-provider`) - included in OpenClaw. Adds Mistral model provider support to OpenClaw.
|
||||
|
||||
- **[moonshot](/plugins/reference/moonshot)** (`@openclaw/moonshot-provider`) - included in OpenClaw. Adds Moonshot model provider support to OpenClaw.
|
||||
|
||||
- **[novita](/plugins/reference/novita)** (`@openclaw/novita-provider`) - included in OpenClaw. Adds Novita, Novita AI, Novitaai model provider support to OpenClaw.
|
||||
|
||||
- **[nvidia](/plugins/reference/nvidia)** (`@openclaw/nvidia-provider`) - included in OpenClaw. Adds NVIDIA model provider support to OpenClaw.
|
||||
|
|
@ -151,32 +141,18 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[runway](/plugins/reference/runway)** (`@openclaw/runway-provider`) - included in OpenClaw. Adds video generation provider support.
|
||||
|
||||
- **[searxng](/plugins/reference/searxng)** (`@openclaw/searxng-plugin`) - included in OpenClaw. Adds web search provider support.
|
||||
|
||||
- **[senseaudio](/plugins/reference/senseaudio)** (`@openclaw/senseaudio-provider`) - included in OpenClaw. Adds media understanding provider support.
|
||||
|
||||
- **[sglang](/plugins/reference/sglang)** (`@openclaw/sglang-provider`) - included in OpenClaw. Adds SGLang model provider support to OpenClaw.
|
||||
|
||||
- **[signal](/plugins/reference/signal)** (`@openclaw/signal`) - included in OpenClaw. Adds the Signal channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[sms](/plugins/reference/sms)** (`@openclaw/sms`) - included in OpenClaw. Twilio SMS channel plugin for OpenClaw text messages.
|
||||
|
||||
- **[synthetic](/plugins/reference/synthetic)** (`@openclaw/synthetic-provider`) - included in OpenClaw. Adds Synthetic model provider support to OpenClaw.
|
||||
|
||||
- **[tavily](/plugins/reference/tavily)** (`@openclaw/tavily-plugin`) - included in OpenClaw. Adds agent-callable tools. Adds web search provider support.
|
||||
|
||||
- **[telegram](/plugins/reference/telegram)** (`@openclaw/telegram`) - included in OpenClaw. Adds the Telegram channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[tencent](/plugins/reference/tencent)** (`@openclaw/tencent-provider`) - included in OpenClaw. Adds Tencent TokenHub model provider support to OpenClaw.
|
||||
|
||||
- **[together](/plugins/reference/together)** (`@openclaw/together-provider`) - included in OpenClaw. Adds Together model provider support to OpenClaw.
|
||||
|
||||
- **[tts-local-cli](/plugins/reference/tts-local-cli)** (`@openclaw/tts-local-cli`) - included in OpenClaw. Adds text-to-speech provider support.
|
||||
|
||||
- **[venice](/plugins/reference/venice)** (`@openclaw/venice-provider`) - included in OpenClaw. Adds Venice model provider support to OpenClaw.
|
||||
|
||||
- **[vercel-ai-gateway](/plugins/reference/vercel-ai-gateway)** (`@openclaw/vercel-ai-gateway-provider`) - included in OpenClaw. Adds Vercel AI Gateway model provider support to OpenClaw.
|
||||
|
||||
- **[vllm](/plugins/reference/vllm)** (`@openclaw/vllm-provider`) - included in OpenClaw. Adds vLLM model provider support to OpenClaw.
|
||||
|
||||
- **[volcengine](/plugins/reference/volcengine)** (`@openclaw/volcengine-provider`) - included in OpenClaw. Adds Volcengine, Volcengine Plan model provider support to OpenClaw.
|
||||
|
|
@ -195,11 +171,9 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[xiaomi](/plugins/reference/xiaomi)** (`@openclaw/xiaomi-provider`) - included in OpenClaw. Adds Xiaomi, Xiaomi Token Plan model provider support to OpenClaw.
|
||||
|
||||
- **[zai](/plugins/reference/zai)** (`@openclaw/zai-provider`) - included in OpenClaw. Adds Z.AI model provider support to OpenClaw.
|
||||
|
||||
## Official external packages
|
||||
|
||||
55 plugins
|
||||
68 plugins
|
||||
|
||||
- **[acpx](/plugins/reference/acpx)** (`@openclaw/acpx`) - npm; ClawHub. OpenClaw ACP runtime backend with plugin-owned session and transport management.
|
||||
|
||||
|
|
@ -217,6 +191,8 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[chutes](/plugins/reference/chutes)** (`@openclaw/chutes-provider`) - npm; ClawHub: `clawhub:@openclaw/chutes-provider`. Adds Chutes model provider support to OpenClaw.
|
||||
|
||||
- **[clickclack](/plugins/reference/clickclack)** (`@openclaw/clickclack`) - npm; ClawHub: `clawhub:@openclaw/clickclack`. Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[cloudflare-ai-gateway](/plugins/reference/cloudflare-ai-gateway)** (`@openclaw/cloudflare-ai-gateway-provider`) - npm; ClawHub: `clawhub:@openclaw/cloudflare-ai-gateway-provider`. Adds Cloudflare AI Gateway model provider support to OpenClaw.
|
||||
|
||||
- **[codex](/plugins/reference/codex)** (`@openclaw/codex`) - npm; ClawHub. OpenClaw Codex app-server harness and model provider plugin with a Codex-managed GPT catalog.
|
||||
|
|
@ -243,6 +219,8 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[firecrawl](/plugins/reference/firecrawl)** (`@openclaw/firecrawl-plugin`) - npm; ClawHub: `clawhub:@openclaw/firecrawl-plugin`. Adds agent-callable tools. Adds web fetch provider support. Adds web search provider support.
|
||||
|
||||
- **[fireworks](/plugins/reference/fireworks)** (`@openclaw/fireworks-provider`) - npm; ClawHub: `clawhub:@openclaw/fireworks-provider`. Adds Fireworks model provider support to OpenClaw.
|
||||
|
||||
- **[gmi](/plugins/reference/gmi)** (`@openclaw/gmi-provider`) - npm; ClawHub: `clawhub:@openclaw/gmi-provider`. OpenClaw GMI Cloud provider plugin.
|
||||
|
||||
- **[google-meet](/plugins/reference/google-meet)** (`@openclaw/google-meet`) - npm; ClawHub. OpenClaw Google Meet participant plugin for joining calls through Chrome or Twilio transports.
|
||||
|
|
@ -255,6 +233,8 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[inworld](/plugins/reference/inworld)** (`@openclaw/inworld-speech`) - npm; ClawHub: `clawhub:@openclaw/inworld-speech`. Inworld streaming text-to-speech (MP3, OGG_OPUS, PCM telephony).
|
||||
|
||||
- **[irc](/plugins/reference/irc)** (`@openclaw/irc`) - npm; ClawHub: `clawhub:@openclaw/irc`. Adds the IRC channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[kilocode](/plugins/reference/kilocode)** (`@openclaw/kilocode-provider`) - npm; ClawHub: `clawhub:@openclaw/kilocode-provider`. Adds Kilocode model provider support to OpenClaw.
|
||||
|
||||
- **[kimi](/plugins/reference/kimi)** (`@openclaw/kimi-provider`) - npm; ClawHub: `clawhub:@openclaw/kimi-provider`. Adds Kimi, Kimi Coding model provider support to OpenClaw.
|
||||
|
|
@ -267,8 +247,12 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[matrix](/plugins/reference/matrix)** (`@openclaw/matrix`) - ClawHub: `clawhub:@openclaw/matrix`; npm. OpenClaw Matrix channel plugin for rooms and direct messages.
|
||||
|
||||
- **[mattermost](/plugins/reference/mattermost)** (`@openclaw/mattermost`) - npm; ClawHub: `clawhub:@openclaw/mattermost`. Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[memory-lancedb](/plugins/reference/memory-lancedb)** (`@openclaw/memory-lancedb`) - npm; ClawHub. OpenClaw LanceDB-backed long-term memory plugin with auto-recall, auto-capture, and vector search.
|
||||
|
||||
- **[moonshot](/plugins/reference/moonshot)** (`@openclaw/moonshot-provider`) - npm; ClawHub: `clawhub:@openclaw/moonshot-provider`. Adds Moonshot model provider support to OpenClaw.
|
||||
|
||||
- **[msteams](/plugins/reference/msteams)** (`@openclaw/msteams`) - npm; ClawHub. OpenClaw Microsoft Teams channel plugin for bot conversations.
|
||||
|
||||
- **[nextcloud-talk](/plugins/reference/nextcloud-talk)** (`@openclaw/nextcloud-talk`) - npm; ClawHub. OpenClaw Nextcloud Talk channel plugin for conversations.
|
||||
|
|
@ -291,22 +275,38 @@ Each entry lists the package, distribution route, and description.
|
|||
|
||||
- **[raft](/plugins/reference/raft)** (`@openclaw/raft`) - npm; ClawHub. OpenClaw Raft channel plugin for secure CLI wake bridges.
|
||||
|
||||
- **[searxng](/plugins/reference/searxng)** (`@openclaw/searxng-plugin`) - npm; ClawHub: `clawhub:@openclaw/searxng-plugin`. Adds web search provider support.
|
||||
|
||||
- **[signal](/plugins/reference/signal)** (`@openclaw/signal`) - npm; ClawHub: `clawhub:@openclaw/signal`. Adds the Signal channel surface for sending and receiving OpenClaw messages.
|
||||
|
||||
- **[slack](/plugins/reference/slack)** (`@openclaw/slack`) - npm; ClawHub. OpenClaw Slack channel plugin for channels, DMs, commands, and app events.
|
||||
|
||||
- **[sms](/plugins/reference/sms)** (`@openclaw/sms`) - npm; ClawHub: `clawhub:@openclaw/sms`. Twilio SMS channel plugin for OpenClaw text messages.
|
||||
|
||||
- **[stepfun](/plugins/reference/stepfun)** (`@openclaw/stepfun-provider`) - npm; ClawHub: `clawhub:@openclaw/stepfun-provider`. Adds StepFun, StepFun Plan model provider support to OpenClaw.
|
||||
|
||||
- **[synology-chat](/plugins/reference/synology-chat)** (`@openclaw/synology-chat`) - npm; ClawHub. Synology Chat channel plugin for OpenClaw channels and direct messages.
|
||||
|
||||
- **[tavily](/plugins/reference/tavily)** (`@openclaw/tavily-plugin`) - npm; ClawHub: `clawhub:@openclaw/tavily-plugin`. Adds agent-callable tools. Adds web search provider support.
|
||||
|
||||
- **[tencent](/plugins/reference/tencent)** (`@openclaw/tencent-provider`) - npm; ClawHub: `clawhub:@openclaw/tencent-provider`. Adds Tencent TokenHub model provider support to OpenClaw.
|
||||
|
||||
- **[tlon](/plugins/reference/tlon)** (`@openclaw/tlon`) - npm; ClawHub. OpenClaw Tlon/Urbit channel plugin for chat workflows.
|
||||
|
||||
- **[tokenjuice](/plugins/reference/tokenjuice)** (`@openclaw/tokenjuice`) - npm; ClawHub: `clawhub:@openclaw/tokenjuice`. Compacts exec and bash tool results with tokenjuice reducers.
|
||||
|
||||
- **[twitch](/plugins/reference/twitch)** (`@openclaw/twitch`) - npm; ClawHub. OpenClaw Twitch channel plugin for chat and moderation workflows.
|
||||
|
||||
- **[venice](/plugins/reference/venice)** (`@openclaw/venice-provider`) - npm; ClawHub: `clawhub:@openclaw/venice-provider`. Adds Venice model provider support to OpenClaw.
|
||||
|
||||
- **[vercel-ai-gateway](/plugins/reference/vercel-ai-gateway)** (`@openclaw/vercel-ai-gateway-provider`) - npm; ClawHub: `clawhub:@openclaw/vercel-ai-gateway-provider`. Adds Vercel AI Gateway model provider support to OpenClaw.
|
||||
|
||||
- **[voice-call](/plugins/reference/voice-call)** (`@openclaw/voice-call`) - npm; ClawHub. OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls.
|
||||
|
||||
- **[whatsapp](/plugins/reference/whatsapp)** (`@openclaw/whatsapp`) - ClawHub: `clawhub:@openclaw/whatsapp`; npm. OpenClaw WhatsApp channel plugin for WhatsApp Web chats.
|
||||
|
||||
- **[zai](/plugins/reference/zai)** (`@openclaw/zai-provider`) - npm; ClawHub: `clawhub:@openclaw/zai-provider`. Adds Z.AI model provider support to OpenClaw.
|
||||
|
||||
- **[zalo](/plugins/reference/zalo)** (`@openclaw/zalo`) - npm; ClawHub. OpenClaw Zalo channel plugin for bot and webhook chats.
|
||||
|
||||
- **[zalouser](/plugins/reference/zalouser)** (`@openclaw/zalouser`) - npm; ClawHub. OpenClaw Zalo Personal Account plugin via native zca-js integration.
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/clickclack`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/clickclack`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Fireworks model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/fireworks-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/fireworks-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds the IRC channel surface for sending and receiving OpenClaw messages.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/irc`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/irc`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/mattermost`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/mattermost`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Moonshot model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/moonshot-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/moonshot-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds web search provider support.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/searxng-plugin`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/searxng-plugin`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds the Signal channel surface for sending and receiving OpenClaw messages.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/signal`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/signal`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Twilio SMS channel plugin for OpenClaw text messages.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/sms`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/sms`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds agent-callable tools. Adds web search provider support.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/tavily-plugin`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/tavily-plugin`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Tencent TokenHub model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/tencent-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/tencent-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Venice model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/venice-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/venice-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Vercel AI Gateway model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/vercel-ai-gateway-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/vercel-ai-gateway-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Adds Z.AI model provider support to OpenClaw.
|
|||
## Distribution
|
||||
|
||||
- Package: `@openclaw/zai-provider`
|
||||
- Install route: included in OpenClaw
|
||||
- Install route: npm; ClawHub: `clawhub:@openclaw/zai-provider`
|
||||
|
||||
## Surface
|
||||
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ read_when:
|
|||
- You are debugging Kimi thinking-off behavior on Fireworks
|
||||
---
|
||||
|
||||
[Fireworks](https://fireworks.ai) exposes open-weight and routed models through an OpenAI-compatible API. OpenClaw includes a bundled Fireworks provider plugin that ships with two pre-cataloged Kimi models and accepts any Fireworks model or router id at runtime.
|
||||
[Fireworks](https://fireworks.ai) exposes open-weight and routed models through an OpenAI-compatible API. Install the official Fireworks provider plugin to use two pre-cataloged Kimi models and any Fireworks model or router id at runtime.
|
||||
|
||||
| Property | Value |
|
||||
| --------------- | ------------------------------------------------------ |
|
||||
| Provider id | `fireworks` (alias: `fireworks-ai`) |
|
||||
| Plugin | bundled, `enabledByDefault: true` |
|
||||
| Package | `@openclaw/fireworks-provider` |
|
||||
| Auth env var | `FIREWORKS_API_KEY` |
|
||||
| Onboarding flag | `--auth-choice fireworks-api-key` |
|
||||
| Direct CLI flag | `--fireworks-api-key <key>` |
|
||||
|
|
@ -24,6 +24,11 @@ read_when:
|
|||
## Getting started
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/fireworks-provider
|
||||
```
|
||||
</Step>
|
||||
<Step title="Set the Fireworks API key">
|
||||
<CodeGroup>
|
||||
|
||||
|
|
@ -108,7 +113,7 @@ OpenClaw accepts any Fireworks model or router id at runtime. Use the exact id s
|
|||
</Accordion>
|
||||
|
||||
<Accordion title="Why thinking is forced off for Kimi">
|
||||
Fireworks K2.6 returns a 400 if the request carries `reasoning_*` parameters even though Kimi supports thinking through Moonshot's own API. The bundled policy (`extensions/fireworks/thinking-policy.ts`) advertises only the `off` thinking level for Kimi model ids, so manual `/think` switches and provider-policy surfaces stay aligned with the runtime contract.
|
||||
Fireworks K2.6 returns a 400 if the request carries `reasoning_*` parameters even though Kimi supports thinking through Moonshot's own API. The provider policy (`extensions/fireworks/thinking-policy.ts`) advertises only the `off` thinking level for Kimi model ids, so manual `/think` switches and provider-policy surfaces stay aligned with the runtime contract.
|
||||
|
||||
To use Kimi reasoning end-to-end, configure the [Moonshot provider](/providers/moonshot) and route the same model through it.
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ Moonshot and Kimi Coding are **separate providers**. Keys are not interchangeabl
|
|||
|
||||
[//]: # "moonshot-kimi-k2-ids:end"
|
||||
|
||||
Bundled cost estimates for current Moonshot-hosted K2 models use Moonshot's
|
||||
Catalog cost estimates for current Moonshot-hosted K2 models use Moonshot's
|
||||
published pay-as-you-go rates: Kimi K2.7 Code is $0.19/MTok cache hit,
|
||||
$0.95/MTok input, and $4.00/MTok output; Kimi K2.6 is $0.16/MTok cache hit,
|
||||
$0.95/MTok input, and $4.00/MTok output; Kimi K2.5 is $0.10/MTok cache hit,
|
||||
|
|
@ -213,6 +213,11 @@ Choose your provider and follow the setup steps.
|
|||
</Note>
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/kimi-provider
|
||||
```
|
||||
</Step>
|
||||
<Step title="Run onboarding">
|
||||
```bash
|
||||
openclaw onboard --auth-choice kimi-code-api-key
|
||||
|
|
@ -257,8 +262,7 @@ Choose your provider and follow the setup steps.
|
|||
|
||||
## Kimi web search
|
||||
|
||||
OpenClaw also ships **Kimi** as a `web_search` provider, backed by Moonshot web
|
||||
search.
|
||||
The Moonshot plugin also registers **Kimi** as a `web_search` provider, backed by Moonshot web search.
|
||||
|
||||
<Steps>
|
||||
<Step title="Run interactive web search setup">
|
||||
|
|
@ -405,7 +409,7 @@ Config lives under `plugins.entries.moonshot.config.webSearch`:
|
|||
capabilities, so compatible custom provider ids targeting the same native
|
||||
Moonshot hosts inherit the same streaming-usage behavior.
|
||||
|
||||
With the bundled K2.6 pricing, streamed usage that includes input, output,
|
||||
With the catalog K2.6 pricing, streamed usage that includes input, output,
|
||||
and cache-read tokens is also converted into local estimated USD cost for
|
||||
`/status`, `/usage full`, `/usage cost`, and transcript-backed session
|
||||
accounting.
|
||||
|
|
|
|||
|
|
@ -6,12 +6,12 @@ read_when:
|
|||
- You need the TokenHub API key setup
|
||||
---
|
||||
|
||||
Tencent Cloud ships as a bundled provider plugin in OpenClaw. It gives access to Tencent Hy3 preview through the TokenHub endpoint (`tencent-tokenhub`) using an OpenAI-compatible API.
|
||||
Install the official Tencent Cloud provider plugin to access Tencent Hy3 preview through the TokenHub endpoint (`tencent-tokenhub`) using an OpenAI-compatible API.
|
||||
|
||||
| Property | Value |
|
||||
| ---------------- | ----------------------------------------------------- |
|
||||
| Provider id | `tencent-tokenhub` |
|
||||
| Plugin | bundled, `enabledByDefault: true` |
|
||||
| Package | `@openclaw/tencent-provider` |
|
||||
| Auth env var | `TOKENHUB_API_KEY` |
|
||||
| Onboarding flag | `--auth-choice tokenhub-api-key` |
|
||||
| Direct CLI flag | `--tokenhub-api-key <key>` |
|
||||
|
|
@ -23,6 +23,11 @@ Tencent Cloud ships as a bundled provider plugin in OpenClaw. It gives access to
|
|||
## Quick start
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/tencent-provider
|
||||
```
|
||||
</Step>
|
||||
<Step title="Create a TokenHub API key">
|
||||
Create an API key in Tencent Cloud TokenHub. If you choose a limited access scope for the key, include **Hy3 preview** in the allowed models.
|
||||
</Step>
|
||||
|
|
@ -78,7 +83,7 @@ Hy3 preview is Tencent Hunyuan's large MoE language model for reasoning, long-co
|
|||
|
||||
## Tiered pricing
|
||||
|
||||
The bundled catalog ships tiered cost metadata that scales with input window length, so cost estimates are populated without manual overrides.
|
||||
The provider catalog ships tiered cost metadata that scales with input window length, so cost estimates are populated without manual overrides.
|
||||
|
||||
| Input tokens range | Input rate | Output rate | Cache read |
|
||||
| ------------------ | ---------- | ----------- | ---------- |
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@ Anonymized models are **not** fully private. Venice strips metadata before forwa
|
|||
## Getting started
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/venice-provider
|
||||
```
|
||||
</Step>
|
||||
<Step title="Get your API key">
|
||||
1. Sign up at [venice.ai](https://venice.ai)
|
||||
2. Go to **Settings > API Keys > Create new key**
|
||||
|
|
|
|||
|
|
@ -9,12 +9,13 @@ read_when:
|
|||
The [Vercel AI Gateway](https://vercel.com/ai-gateway) provides a unified API to
|
||||
access hundreds of models through a single endpoint.
|
||||
|
||||
| Property | Value |
|
||||
| ------------- | -------------------------------- |
|
||||
| Provider | `vercel-ai-gateway` |
|
||||
| Auth | `AI_GATEWAY_API_KEY` |
|
||||
| API | Anthropic Messages compatible |
|
||||
| Model catalog | Auto-discovered via `/v1/models` |
|
||||
| Property | Value |
|
||||
| ------------- | -------------------------------------- |
|
||||
| Provider | `vercel-ai-gateway` |
|
||||
| Package | `@openclaw/vercel-ai-gateway-provider` |
|
||||
| Auth | `AI_GATEWAY_API_KEY` |
|
||||
| API | Anthropic Messages compatible |
|
||||
| Model catalog | Auto-discovered via `/v1/models` |
|
||||
|
||||
<Tip>
|
||||
OpenClaw auto-discovers the Gateway `/v1/models` catalog, so
|
||||
|
|
@ -26,6 +27,11 @@ OpenClaw auto-discovers the Gateway `/v1/models` catalog, so
|
|||
## Getting started
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/vercel-ai-gateway-provider
|
||||
```
|
||||
</Step>
|
||||
<Step title="Set the API key">
|
||||
Run onboarding and choose the AI Gateway auth option:
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ OpenClaw uses the `zai` provider with a Z.AI API key.
|
|||
| Property | Value |
|
||||
| -------- | -------------------------------------------- |
|
||||
| Provider | `zai` |
|
||||
| Package | `@openclaw/zai-provider` |
|
||||
| Auth | `ZAI_API_KEY` (legacy alias: `Z_AI_API_KEY`) |
|
||||
| API | Z.AI Chat Completions (Bearer auth) |
|
||||
|
||||
|
|
@ -23,6 +24,12 @@ refs such as `zai/glm-5.2`: provider `zai`, model id `glm-5.2`.
|
|||
|
||||
## Getting started
|
||||
|
||||
Install the provider plugin first:
|
||||
|
||||
```bash
|
||||
openclaw plugins install @openclaw/zai-provider
|
||||
```
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Auto-detect endpoint">
|
||||
**Best for:** most users. OpenClaw probes supported Z.AI endpoints with your API key and applies the correct base URL automatically.
|
||||
|
|
@ -96,7 +103,7 @@ you want to force a specific Coding Plan or general API surface.
|
|||
|
||||
## Built-in catalog
|
||||
|
||||
OpenClaw ships the bundled `zai` provider catalog in the plugin manifest, so read-only
|
||||
The `zai` provider plugin ships its catalog in the plugin manifest, so read-only
|
||||
listing can show known GLM rows without loading provider runtime:
|
||||
|
||||
```bash
|
||||
|
|
@ -143,7 +150,7 @@ known to your installed version.
|
|||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Forward-resolving unknown GLM-5 models">
|
||||
Unknown `glm-5*` ids still forward-resolve on the bundled provider path by
|
||||
Unknown `glm-5*` ids still forward-resolve on the provider path by
|
||||
synthesizing provider-owned metadata from the `glm-4.7` template when the id
|
||||
matches the current GLM-5 family shape.
|
||||
</Accordion>
|
||||
|
|
@ -200,7 +207,7 @@ known to your installed version.
|
|||
</Accordion>
|
||||
|
||||
<Accordion title="Image understanding">
|
||||
The bundled Z.AI plugin registers image understanding.
|
||||
The Z.AI plugin registers image understanding.
|
||||
|
||||
| Property | Value |
|
||||
| ------------- | ----------- |
|
||||
|
|
|
|||
|
|
@ -20,6 +20,11 @@ Advantages:
|
|||
## Setup
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/searxng-plugin
|
||||
```
|
||||
</Step>
|
||||
<Step title="Run a SearXNG instance">
|
||||
```bash
|
||||
docker run -d -p 8888:8080 searxng/searxng
|
||||
|
|
|
|||
|
|
@ -15,16 +15,22 @@ title: "Tavily"
|
|||
|
||||
Tavily returns structured results optimized for LLM consumption with configurable search depth, topic filtering, domain filters, AI-generated answer summaries, and content extraction from URLs (including JavaScript-rendered pages).
|
||||
|
||||
| Property | Value |
|
||||
| ------------- | ----------------------------------- |
|
||||
| Plugin id | `tavily` |
|
||||
| Auth | `TAVILY_API_KEY` or config `apiKey` |
|
||||
| Base URL | `https://api.tavily.com` (default) |
|
||||
| Bundled tools | `tavily_search`, `tavily_extract` |
|
||||
| Property | Value |
|
||||
| --------- | ----------------------------------- |
|
||||
| Plugin id | `tavily` |
|
||||
| Package | `@openclaw/tavily-plugin` |
|
||||
| Auth | `TAVILY_API_KEY` or config `apiKey` |
|
||||
| Base URL | `https://api.tavily.com` (default) |
|
||||
| Tools | `tavily_search`, `tavily_extract` |
|
||||
|
||||
## Getting started
|
||||
|
||||
<Steps>
|
||||
<Step title="Install the plugin">
|
||||
```bash
|
||||
openclaw plugins install @openclaw/tavily-plugin
|
||||
```
|
||||
</Step>
|
||||
<Step title="Get an API key">
|
||||
Create a Tavily account at [tavily.com](https://tavily.com), then generate an API key in the dashboard.
|
||||
</Step>
|
||||
|
|
@ -60,7 +66,7 @@ Tavily returns structured results optimized for LLM consumption with configurabl
|
|||
</Steps>
|
||||
|
||||
<Tip>
|
||||
Choosing Tavily in onboarding or `openclaw configure --section web` enables the bundled Tavily plugin automatically.
|
||||
Choosing Tavily in onboarding or `openclaw configure --section web` installs and enables the official Tavily plugin when needed.
|
||||
</Tip>
|
||||
|
||||
## Tool reference
|
||||
|
|
|
|||
13
extensions/clickclack/README.md
Normal file
13
extensions/clickclack/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# ClickClack OpenClaw channel
|
||||
|
||||
Official OpenClaw channel plugin for ClickClack.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/clickclack
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/channels/clickclack.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/clickclack`.
|
||||
54
extensions/clickclack/npm-shrinkwrap.json
generated
Normal file
54
extensions/clickclack/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"name": "@openclaw/clickclack",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/clickclack",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"ws": "8.21.0",
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"openclaw": ">=2026.6.9"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"openclaw": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.21.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
|
||||
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": ">=5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "4.4.3",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
|
||||
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,13 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/clickclack",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw ClickClack channel plugin",
|
||||
"type": "module",
|
||||
"exports": {
|
||||
".": "./index.ts",
|
||||
"./api.js": "./api.ts",
|
||||
"./runtime-api.js": "./runtime-api.ts"
|
||||
".": "./dist/index.js",
|
||||
"./api.js": "./dist/api.js",
|
||||
"./runtime-api.js": "./dist/runtime-api.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"ws": "8.21.0",
|
||||
|
|
@ -45,6 +44,28 @@
|
|||
"nativeCommandsAutoEnabled": false,
|
||||
"nativeSkillsAutoEnabled": false
|
||||
}
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/clickclack",
|
||||
"npmSpec": "@openclaw/clickclack",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/fireworks/README.md
Normal file
13
extensions/fireworks/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Fireworks OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Fireworks.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/fireworks-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/fireworks.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/fireworks`.
|
||||
12
extensions/fireworks/npm-shrinkwrap.json
generated
Normal file
12
extensions/fireworks/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/fireworks-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/fireworks-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/fireworks-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Fireworks provider plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/fireworks-provider",
|
||||
"npmSpec": "@openclaw/fireworks-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/irc/README.md
Normal file
13
extensions/irc/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# IRC OpenClaw channel
|
||||
|
||||
Official OpenClaw channel plugin for IRC.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/irc
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/channels/irc.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/irc`.
|
||||
24
extensions/irc/npm-shrinkwrap.json
generated
Normal file
24
extensions/irc/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "@openclaw/irc",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/irc",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"zod": "4.4.3"
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "4.4.3",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
|
||||
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,11 @@
|
|||
"./index.ts"
|
||||
],
|
||||
"install": {
|
||||
"minHostVersion": ">=2026.4.10"
|
||||
"clawhubSpec": "clawhub:@openclaw/irc",
|
||||
"npmSpec": "@openclaw/irc",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"setupEntry": "./setup-entry.ts",
|
||||
"channel": {
|
||||
|
|
@ -36,9 +40,24 @@
|
|||
"specifier": "./configured-state",
|
||||
"exportName": "hasIrcConfiguredState"
|
||||
}
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/mattermost/README.md
Normal file
13
extensions/mattermost/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Mattermost OpenClaw channel
|
||||
|
||||
Official OpenClaw channel plugin for Mattermost.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/mattermost
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/channels/mattermost.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/mattermost`.
|
||||
54
extensions/mattermost/npm-shrinkwrap.json
generated
Normal file
54
extensions/mattermost/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"name": "@openclaw/mattermost",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/mattermost",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"ws": "8.21.0",
|
||||
"zod": "4.4.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"openclaw": ">=2026.6.9"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"openclaw": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.21.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
|
||||
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": ">=5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "4.4.3",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
|
||||
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -38,7 +38,22 @@
|
|||
"order": 65
|
||||
},
|
||||
"install": {
|
||||
"minHostVersion": ">=2026.4.10"
|
||||
"clawhubSpec": "clawhub:@openclaw/mattermost",
|
||||
"npmSpec": "@openclaw/mattermost",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/moonshot/README.md
Normal file
13
extensions/moonshot/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Moonshot OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Moonshot.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/moonshot-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/moonshot.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/moonshot`.
|
||||
12
extensions/moonshot/npm-shrinkwrap.json
generated
Normal file
12
extensions/moonshot/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/moonshot-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/moonshot-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/moonshot-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Moonshot provider plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/moonshot-provider",
|
||||
"npmSpec": "@openclaw/moonshot-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/searxng/README.md
Normal file
13
extensions/searxng/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# SearXNG OpenClaw plugin
|
||||
|
||||
Official OpenClaw plugin for SearXNG.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/searxng-plugin
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/tools/searxng-search.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/tools/searxng-search`.
|
||||
12
extensions/searxng/npm-shrinkwrap.json
generated
Normal file
12
extensions/searxng/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/searxng-plugin",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/searxng-plugin",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/searxng-plugin",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw SearXNG plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,28 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/searxng-plugin",
|
||||
"npmSpec": "@openclaw/searxng-plugin",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/signal/README.md
Normal file
13
extensions/signal/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Signal OpenClaw channel
|
||||
|
||||
Official OpenClaw channel plugin for Signal.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/signal
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/channels/signal.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/signal`.
|
||||
36
extensions/signal/npm-shrinkwrap.json
generated
Normal file
36
extensions/signal/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"name": "@openclaw/signal",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/signal",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"ws": "8.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.21.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
|
||||
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bufferutil": "^4.0.1",
|
||||
"utf-8-validate": ">=5.0.2"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bufferutil": {
|
||||
"optional": true
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/signal",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Signal channel plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
|
|
@ -39,6 +38,28 @@
|
|||
"description": "Signal HTTP daemon port"
|
||||
}
|
||||
]
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/signal",
|
||||
"npmSpec": "@openclaw/signal",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/sms/README.md
Normal file
13
extensions/sms/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# SMS OpenClaw channel
|
||||
|
||||
Official OpenClaw channel plugin for SMS.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/sms
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/channels/sms.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/sms`.
|
||||
24
extensions/sms/npm-shrinkwrap.json
generated
Normal file
24
extensions/sms/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "@openclaw/sms",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/sms",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"zod": "4.4.3"
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "4.4.3",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
|
||||
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,6 @@
|
|||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
},
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"zod": "4.4.3"
|
||||
|
|
@ -33,7 +32,19 @@
|
|||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9"
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/sms",
|
||||
"npmSpec": "@openclaw/sms",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/tavily/README.md
Normal file
13
extensions/tavily/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Tavily OpenClaw plugin
|
||||
|
||||
Official OpenClaw plugin for Tavily.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/tavily-plugin
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/tools/tavily.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/tools/tavily`.
|
||||
21
extensions/tavily/npm-shrinkwrap.json
generated
Normal file
21
extensions/tavily/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "@openclaw/tavily-plugin",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/tavily-plugin",
|
||||
"version": "2026.6.9",
|
||||
"dependencies": {
|
||||
"typebox": "1.1.39"
|
||||
}
|
||||
},
|
||||
"node_modules/typebox": {
|
||||
"version": "1.1.39",
|
||||
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.39.tgz",
|
||||
"integrity": "sha512-vj0afVtOfLQvv0GR0VxVagYxsXN64btL7Z9XoaG0ZggH3mruMMkOO6hXdgMsjCY3shZgEvooAWVeznQVs5c43w==",
|
||||
"license": "MIT"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/tavily-plugin",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Tavily plugin",
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
|
|
@ -13,6 +12,28 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/tavily-plugin",
|
||||
"npmSpec": "@openclaw/tavily-plugin",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/tencent/README.md
Normal file
13
extensions/tencent/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Tencent Cloud OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Tencent Cloud.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/tencent-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/tencent.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/tencent`.
|
||||
12
extensions/tencent/npm-shrinkwrap.json
generated
Normal file
12
extensions/tencent/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/tencent-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/tencent-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/tencent-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/tencent-provider",
|
||||
"npmSpec": "@openclaw/tencent-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/venice/README.md
Normal file
13
extensions/venice/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Venice OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Venice.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/venice-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/venice.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/venice`.
|
||||
12
extensions/venice/npm-shrinkwrap.json
generated
Normal file
12
extensions/venice/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/venice-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/venice-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/venice-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Venice provider plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/venice-provider",
|
||||
"npmSpec": "@openclaw/venice-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/vercel-ai-gateway/README.md
Normal file
13
extensions/vercel-ai-gateway/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Vercel AI Gateway OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Vercel AI Gateway.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/vercel-ai-gateway-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/vercel-ai-gateway.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/vercel-ai-gateway`.
|
||||
12
extensions/vercel-ai-gateway/npm-shrinkwrap.json
generated
Normal file
12
extensions/vercel-ai-gateway/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/vercel-ai-gateway-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/vercel-ai-gateway-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/vercel-ai-gateway-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Vercel AI Gateway provider plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/vercel-ai-gateway-provider",
|
||||
"npmSpec": "@openclaw/vercel-ai-gateway-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
extensions/zai/README.md
Normal file
13
extensions/zai/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Z.AI OpenClaw provider
|
||||
|
||||
Official OpenClaw provider plugin for Z.AI.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
openclaw plugins install @openclaw/zai-provider
|
||||
```
|
||||
|
||||
## Docs
|
||||
|
||||
See `docs/providers/zai.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/zai`.
|
||||
12
extensions/zai/npm-shrinkwrap.json
generated
Normal file
12
extensions/zai/npm-shrinkwrap.json
generated
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "@openclaw/zai-provider",
|
||||
"version": "2026.6.9",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@openclaw/zai-provider",
|
||||
"version": "2026.6.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"name": "@openclaw/zai-provider",
|
||||
"version": "2026.6.9",
|
||||
"private": true,
|
||||
"description": "OpenClaw Z.AI provider plugin",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
|
|
@ -10,6 +9,27 @@
|
|||
"openclaw": {
|
||||
"extensions": [
|
||||
"./index.ts"
|
||||
]
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/zai-provider",
|
||||
"npmSpec": "@openclaw/zai-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
},
|
||||
"compat": {
|
||||
"pluginApi": ">=2026.6.9"
|
||||
},
|
||||
"build": {
|
||||
"openclawVersion": "2026.6.9",
|
||||
"bundledDist": false
|
||||
},
|
||||
"release": {
|
||||
"publishToClawHub": true,
|
||||
"publishToNpm": true
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/openclaw/openclaw"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
13
package.json
13
package.json
|
|
@ -85,6 +85,7 @@
|
|||
"!dist/extensions/brave/**",
|
||||
"!dist/extensions/cerebras/**",
|
||||
"!dist/extensions/chutes/**",
|
||||
"!dist/extensions/clickclack/**",
|
||||
"!dist/extensions/cloudflare-ai-gateway/**",
|
||||
"!dist/extensions/codex/**",
|
||||
"!dist/extensions/copilot/**",
|
||||
|
|
@ -98,19 +99,23 @@
|
|||
"!dist/extensions/exa/**",
|
||||
"!dist/extensions/feishu/**",
|
||||
"!dist/extensions/firecrawl/**",
|
||||
"!dist/extensions/fireworks/**",
|
||||
"!dist/extensions/google-meet/**",
|
||||
"!dist/extensions/googlechat/**",
|
||||
"!dist/extensions/gmi/**",
|
||||
"!dist/extensions/gradium/**",
|
||||
"!dist/extensions/groq/**",
|
||||
"!dist/extensions/inworld/**",
|
||||
"!dist/extensions/irc/**",
|
||||
"!dist/extensions/kilocode/**",
|
||||
"!dist/extensions/kimi-coding/**",
|
||||
"!dist/extensions/line/**",
|
||||
"!dist/extensions/llama-cpp/**",
|
||||
"!dist/extensions/lobster/**",
|
||||
"!dist/extensions/mattermost/**",
|
||||
"!dist/extensions/memory-lancedb/**",
|
||||
"!dist/extensions/matrix/**",
|
||||
"!dist/extensions/moonshot/**",
|
||||
"!dist/extensions/msteams/**",
|
||||
"!dist/extensions/nextcloud-talk/**",
|
||||
"!dist/extensions/nostr/**",
|
||||
|
|
@ -125,14 +130,22 @@
|
|||
"!dist/extensions/qa-matrix/**",
|
||||
"!dist/extensions/openshell/**",
|
||||
"!dist/extensions/qwen/**",
|
||||
"!dist/extensions/searxng/**",
|
||||
"!dist/extensions/signal/**",
|
||||
"!dist/extensions/slack/**",
|
||||
"!dist/extensions/sms/**",
|
||||
"!dist/extensions/stepfun/**",
|
||||
"!dist/extensions/synology-chat/**",
|
||||
"!dist/extensions/tavily/**",
|
||||
"!dist/extensions/tencent/**",
|
||||
"!dist/extensions/tokenjuice/**",
|
||||
"!dist/extensions/tlon/**",
|
||||
"!dist/extensions/twitch/**",
|
||||
"!dist/extensions/venice/**",
|
||||
"!dist/extensions/vercel-ai-gateway/**",
|
||||
"!dist/extensions/voice-call/**",
|
||||
"!dist/extensions/whatsapp/**",
|
||||
"!dist/extensions/zai/**",
|
||||
"!dist/extensions/zalo/**",
|
||||
"!dist/extensions/zalouser/**",
|
||||
"!dist/plugin-sdk/extensions/qa-channel/**",
|
||||
|
|
|
|||
|
|
@ -1,20 +1,15 @@
|
|||
[
|
||||
"dist/extensions/browser/runtime-api.js",
|
||||
"dist/extensions/canvas/runtime-api.js",
|
||||
"dist/extensions/clickclack/runtime-api.js",
|
||||
"dist/extensions/copilot-proxy/runtime-api.js",
|
||||
"dist/extensions/google/runtime-api.js",
|
||||
"dist/extensions/imessage/runtime-api.js",
|
||||
"dist/extensions/irc/runtime-api.js",
|
||||
"dist/extensions/lmstudio/runtime-api.js",
|
||||
"dist/extensions/mattermost/runtime-api.js",
|
||||
"dist/extensions/memory-core/runtime-api.js",
|
||||
"dist/extensions/ollama/runtime-api.js",
|
||||
"dist/extensions/open-prose/runtime-api.js",
|
||||
"dist/extensions/signal/runtime-api.js",
|
||||
"dist/extensions/telegram/runtime-api.js",
|
||||
"dist/extensions/telegram/runtime-setter-api.js",
|
||||
"dist/extensions/webhooks/runtime-api.js",
|
||||
"dist/extensions/workboard/runtime-api.js",
|
||||
"dist/extensions/zai/runtime-api.js"
|
||||
"dist/extensions/workboard/runtime-api.js"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -160,6 +160,41 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/clickclack",
|
||||
"description": "OpenClaw ClickClack channel plugin",
|
||||
"source": "official",
|
||||
"kind": "channel",
|
||||
"openclaw": {
|
||||
"channel": {
|
||||
"id": "clickclack",
|
||||
"label": "ClickClack",
|
||||
"selectionLabel": "ClickClack",
|
||||
"detailLabel": "ClickClack Bot",
|
||||
"docsPath": "/channels/clickclack",
|
||||
"docsLabel": "clickclack",
|
||||
"blurb": "self-hosted chat via first-class ClickClack bot tokens.",
|
||||
"envVars": [
|
||||
"CLICKCLACK_BOT_TOKEN"
|
||||
],
|
||||
"systemImage": "bubble.left.and.bubble.right",
|
||||
"markdownCapable": true,
|
||||
"preferSessionLookupForAnnounceTarget": true,
|
||||
"order": 85,
|
||||
"commands": {
|
||||
"nativeCommandsAutoEnabled": false,
|
||||
"nativeSkillsAutoEnabled": false
|
||||
}
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/clickclack",
|
||||
"npmSpec": "@openclaw/clickclack",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/discord",
|
||||
"description": "OpenClaw Discord channel plugin",
|
||||
|
|
@ -260,6 +295,46 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/irc",
|
||||
"description": "OpenClaw IRC channel plugin",
|
||||
"source": "official",
|
||||
"kind": "channel",
|
||||
"openclaw": {
|
||||
"channel": {
|
||||
"id": "irc",
|
||||
"label": "IRC",
|
||||
"selectionLabel": "IRC (Server + Nick)",
|
||||
"detailLabel": "IRC",
|
||||
"docsPath": "/channels/irc",
|
||||
"docsLabel": "irc",
|
||||
"blurb": "classic IRC networks with DM/channel routing and pairing controls.",
|
||||
"aliases": [
|
||||
"internet-relay-chat"
|
||||
],
|
||||
"envVars": [
|
||||
"IRC_HOST",
|
||||
"IRC_PORT",
|
||||
"IRC_TLS",
|
||||
"IRC_NICK",
|
||||
"IRC_USERNAME",
|
||||
"IRC_REALNAME",
|
||||
"IRC_PASSWORD",
|
||||
"IRC_CHANNELS",
|
||||
"IRC_NICKSERV_PASSWORD",
|
||||
"IRC_NICKSERV_REGISTER_EMAIL"
|
||||
],
|
||||
"systemImage": "network"
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/irc",
|
||||
"npmSpec": "@openclaw/irc",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/line",
|
||||
"description": "OpenClaw LINE channel plugin",
|
||||
|
|
@ -285,6 +360,34 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/mattermost",
|
||||
"description": "OpenClaw Mattermost channel plugin",
|
||||
"source": "official",
|
||||
"kind": "channel",
|
||||
"openclaw": {
|
||||
"channel": {
|
||||
"id": "mattermost",
|
||||
"label": "Mattermost",
|
||||
"selectionLabel": "Mattermost (plugin)",
|
||||
"docsPath": "/channels/mattermost",
|
||||
"docsLabel": "mattermost",
|
||||
"blurb": "self-hosted Slack-style chat; install the plugin to enable.",
|
||||
"envVars": [
|
||||
"MATTERMOST_BOT_TOKEN",
|
||||
"MATTERMOST_URL"
|
||||
],
|
||||
"order": 65
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/mattermost",
|
||||
"npmSpec": "@openclaw/mattermost",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/matrix",
|
||||
"description": "OpenClaw Matrix channel plugin",
|
||||
|
|
@ -432,6 +535,46 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/signal",
|
||||
"description": "OpenClaw Signal channel plugin",
|
||||
"source": "official",
|
||||
"kind": "channel",
|
||||
"openclaw": {
|
||||
"channel": {
|
||||
"id": "signal",
|
||||
"label": "Signal",
|
||||
"selectionLabel": "Signal (signal-cli)",
|
||||
"detailLabel": "Signal REST",
|
||||
"docsPath": "/channels/signal",
|
||||
"docsLabel": "signal",
|
||||
"blurb": "signal-cli linked device with extra setup for the local REST bridge.",
|
||||
"systemImage": "antenna.radiowaves.left.and.right",
|
||||
"markdownCapable": true,
|
||||
"cliAddOptions": [
|
||||
{
|
||||
"flags": "--signal-number <e164>",
|
||||
"description": "Signal account number (E.164)"
|
||||
},
|
||||
{
|
||||
"flags": "--http-host <host>",
|
||||
"description": "Signal HTTP daemon host"
|
||||
},
|
||||
{
|
||||
"flags": "--http-port <port>",
|
||||
"description": "Signal HTTP daemon port"
|
||||
}
|
||||
]
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/signal",
|
||||
"npmSpec": "@openclaw/signal",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/slack",
|
||||
"description": "OpenClaw Slack channel plugin",
|
||||
|
|
@ -467,6 +610,42 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/sms",
|
||||
"description": "OpenClaw SMS channel plugin for Twilio text messages.",
|
||||
"source": "official",
|
||||
"kind": "channel",
|
||||
"openclaw": {
|
||||
"channel": {
|
||||
"id": "sms",
|
||||
"label": "SMS",
|
||||
"selectionLabel": "SMS (Twilio)",
|
||||
"detailLabel": "Twilio SMS",
|
||||
"docsPath": "/channels/sms",
|
||||
"docsLabel": "sms",
|
||||
"blurb": "Twilio-backed SMS with inbound webhooks and outbound replies.",
|
||||
"envVars": [
|
||||
"TWILIO_ACCOUNT_SID",
|
||||
"TWILIO_AUTH_TOKEN",
|
||||
"TWILIO_PHONE_NUMBER",
|
||||
"TWILIO_SMS_FROM",
|
||||
"TWILIO_MESSAGING_SERVICE_SID",
|
||||
"SMS_PUBLIC_WEBHOOK_URL",
|
||||
"SMS_WEBHOOK_PATH",
|
||||
"SMS_ALLOWED_USERS"
|
||||
],
|
||||
"order": 88,
|
||||
"quickstartAllowFrom": true
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/sms",
|
||||
"npmSpec": "@openclaw/sms",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/synology-chat",
|
||||
"description": "Synology Chat channel plugin for OpenClaw",
|
||||
|
|
|
|||
|
|
@ -482,6 +482,97 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/searxng-plugin",
|
||||
"description": "OpenClaw SearXNG plugin",
|
||||
"source": "official",
|
||||
"kind": "plugin",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "searxng",
|
||||
"label": "SearXNG"
|
||||
},
|
||||
"contracts": {
|
||||
"webSearchProviders": [
|
||||
"searxng"
|
||||
]
|
||||
},
|
||||
"webSearchProviders": [
|
||||
{
|
||||
"id": "searxng",
|
||||
"label": "SearXNG Search",
|
||||
"hint": "Self-hosted meta-search with no API key required",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
],
|
||||
"requiresCredential": true,
|
||||
"credentialLabel": "SearXNG Base URL",
|
||||
"envVars": [
|
||||
"SEARXNG_BASE_URL"
|
||||
],
|
||||
"placeholder": "http://localhost:8080",
|
||||
"signupUrl": "https://docs.searxng.org/",
|
||||
"docsUrl": "https://docs.openclaw.ai/tools/searxng-search",
|
||||
"credentialPath": "plugins.entries.searxng.config.webSearch.baseUrl",
|
||||
"autoDetectOrder": 200
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/searxng-plugin",
|
||||
"npmSpec": "@openclaw/searxng-plugin",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/tavily-plugin",
|
||||
"description": "OpenClaw Tavily plugin",
|
||||
"source": "official",
|
||||
"kind": "plugin",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "tavily",
|
||||
"label": "Tavily"
|
||||
},
|
||||
"contracts": {
|
||||
"webSearchProviders": [
|
||||
"tavily"
|
||||
],
|
||||
"tools": [
|
||||
"tavily_search",
|
||||
"tavily_extract"
|
||||
]
|
||||
},
|
||||
"webSearchProviders": [
|
||||
{
|
||||
"id": "tavily",
|
||||
"label": "Tavily Search",
|
||||
"hint": "Structured results with domain filters and AI answer summaries",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
],
|
||||
"credentialLabel": "Tavily API key",
|
||||
"envVars": [
|
||||
"TAVILY_API_KEY"
|
||||
],
|
||||
"placeholder": "tvly-...",
|
||||
"signupUrl": "https://tavily.com/",
|
||||
"docsUrl": "https://docs.openclaw.ai/tools/tavily",
|
||||
"credentialPath": "plugins.entries.tavily.config.webSearch.apiKey",
|
||||
"autoDetectOrder": 70
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/tavily-plugin",
|
||||
"npmSpec": "@openclaw/tavily-plugin",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9",
|
||||
"allowInvalidConfigRecovery": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/tokenjuice",
|
||||
"description": "OpenClaw tokenjuice exec output compaction plugin",
|
||||
|
|
|
|||
|
|
@ -952,6 +952,431 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/fireworks-provider",
|
||||
"description": "OpenClaw Fireworks provider plugin",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "fireworks",
|
||||
"label": "Fireworks"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "fireworks",
|
||||
"aliases": [
|
||||
"fireworks-ai"
|
||||
],
|
||||
"name": "Fireworks",
|
||||
"docs": "/providers/fireworks",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"FIREWORKS_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "fireworks-api-key",
|
||||
"choiceLabel": "Fireworks API key",
|
||||
"choiceHint": "API key",
|
||||
"groupId": "fireworks",
|
||||
"groupLabel": "Fireworks",
|
||||
"groupHint": "API key",
|
||||
"optionKey": "fireworksApiKey",
|
||||
"cliFlag": "--fireworks-api-key",
|
||||
"cliOption": "--fireworks-api-key <key>",
|
||||
"cliDescription": "Fireworks API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/fireworks-provider",
|
||||
"npmSpec": "@openclaw/fireworks-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/moonshot-provider",
|
||||
"description": "OpenClaw Moonshot provider plugin",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "moonshot",
|
||||
"label": "Moonshot"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "moonshot",
|
||||
"aliases": [
|
||||
"moonshotai",
|
||||
"moonshot-ai"
|
||||
],
|
||||
"name": "Moonshot",
|
||||
"docs": "/providers/moonshot",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"MOONSHOT_API_KEY",
|
||||
"KIMI_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "moonshot-api-key",
|
||||
"choiceLabel": "Moonshot API key (.ai)",
|
||||
"choiceHint": "Kimi K2.6 + Kimi",
|
||||
"groupId": "moonshot",
|
||||
"groupLabel": "Moonshot AI (Kimi K2.6)",
|
||||
"groupHint": "Kimi K2.6",
|
||||
"optionKey": "moonshotApiKey",
|
||||
"cliFlag": "--moonshot-api-key",
|
||||
"cliOption": "--moonshot-api-key <key>",
|
||||
"cliDescription": "Moonshot API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "api-key-cn",
|
||||
"choiceId": "moonshot-api-key-cn",
|
||||
"choiceLabel": "Moonshot API key (.cn)",
|
||||
"choiceHint": "Kimi K2.6 + Kimi",
|
||||
"groupId": "moonshot",
|
||||
"groupLabel": "Moonshot AI (Kimi K2.6)",
|
||||
"groupHint": "Kimi K2.6",
|
||||
"optionKey": "moonshotApiKey",
|
||||
"cliFlag": "--moonshot-api-key",
|
||||
"cliOption": "--moonshot-api-key <key>",
|
||||
"cliDescription": "Moonshot API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": {
|
||||
"mediaUnderstandingProviders": [
|
||||
"moonshot"
|
||||
],
|
||||
"webSearchProviders": [
|
||||
"kimi"
|
||||
]
|
||||
},
|
||||
"webSearchProviders": [
|
||||
{
|
||||
"id": "kimi",
|
||||
"label": "Kimi (Moonshot)",
|
||||
"hint": "Requires Moonshot / Kimi API key · Moonshot web search",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
],
|
||||
"credentialLabel": "Moonshot / Kimi API key",
|
||||
"envVars": [
|
||||
"KIMI_API_KEY",
|
||||
"MOONSHOT_API_KEY"
|
||||
],
|
||||
"placeholder": "sk-...",
|
||||
"signupUrl": "https://platform.moonshot.cn/",
|
||||
"docsUrl": "https://docs.openclaw.ai/tools/web",
|
||||
"credentialPath": "plugins.entries.moonshot.config.webSearch.apiKey",
|
||||
"autoDetectOrder": 40
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/moonshot-provider",
|
||||
"npmSpec": "@openclaw/moonshot-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/tencent-provider",
|
||||
"description": "OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "tencent",
|
||||
"label": "Tencent Cloud"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "tencent-tokenhub",
|
||||
"name": "Tencent TokenHub",
|
||||
"docs": "/providers/tencent",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"TOKENHUB_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "tokenhub-api-key",
|
||||
"choiceLabel": "Tencent TokenHub",
|
||||
"choiceHint": "Hy via Tencent TokenHub Gateway",
|
||||
"groupId": "tencent",
|
||||
"groupLabel": "Tencent Cloud",
|
||||
"groupHint": "Tencent TokenHub",
|
||||
"optionKey": "tokenhubApiKey",
|
||||
"cliFlag": "--tokenhub-api-key",
|
||||
"cliOption": "--tokenhub-api-key <key>",
|
||||
"cliDescription": "Tencent TokenHub API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/tencent-provider",
|
||||
"npmSpec": "@openclaw/tencent-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/venice-provider",
|
||||
"description": "OpenClaw Venice provider plugin",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "venice",
|
||||
"label": "Venice"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "venice",
|
||||
"name": "Venice",
|
||||
"docs": "/providers/venice",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"VENICE_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "venice-api-key",
|
||||
"choiceLabel": "Venice AI API key",
|
||||
"choiceHint": "Privacy-focused (uncensored models)",
|
||||
"groupId": "venice",
|
||||
"groupLabel": "Venice AI",
|
||||
"groupHint": "Privacy-focused (uncensored models)",
|
||||
"optionKey": "veniceApiKey",
|
||||
"cliFlag": "--venice-api-key",
|
||||
"cliOption": "--venice-api-key <key>",
|
||||
"cliDescription": "Venice API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/venice-provider",
|
||||
"npmSpec": "@openclaw/venice-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/vercel-ai-gateway-provider",
|
||||
"description": "OpenClaw Vercel AI Gateway provider plugin",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "vercel-ai-gateway",
|
||||
"label": "Vercel AI Gateway"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "vercel-ai-gateway",
|
||||
"name": "Vercel AI Gateway",
|
||||
"docs": "/providers/vercel-ai-gateway",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"AI_GATEWAY_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "ai-gateway-api-key",
|
||||
"choiceLabel": "Vercel AI Gateway API key",
|
||||
"choiceHint": "API key",
|
||||
"groupId": "ai-gateway",
|
||||
"groupLabel": "Vercel AI Gateway",
|
||||
"groupHint": "API key",
|
||||
"optionKey": "aiGatewayApiKey",
|
||||
"cliFlag": "--ai-gateway-api-key",
|
||||
"cliOption": "--ai-gateway-api-key <key>",
|
||||
"cliDescription": "Vercel AI Gateway API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/vercel-ai-gateway-provider",
|
||||
"npmSpec": "@openclaw/vercel-ai-gateway-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/zai-provider",
|
||||
"description": "OpenClaw Z.AI provider plugin",
|
||||
"source": "official",
|
||||
"kind": "provider",
|
||||
"openclaw": {
|
||||
"plugin": {
|
||||
"id": "zai",
|
||||
"label": "Z.AI"
|
||||
},
|
||||
"providers": [
|
||||
{
|
||||
"id": "zai",
|
||||
"aliases": [
|
||||
"z-ai",
|
||||
"z.ai"
|
||||
],
|
||||
"name": "Z.AI",
|
||||
"docs": "/providers/zai",
|
||||
"categories": [
|
||||
"cloud",
|
||||
"llm"
|
||||
],
|
||||
"envVars": [
|
||||
"ZAI_API_KEY",
|
||||
"Z_AI_API_KEY"
|
||||
],
|
||||
"authChoices": [
|
||||
{
|
||||
"method": "api-key",
|
||||
"choiceId": "zai-api-key",
|
||||
"choiceLabel": "Z.AI API key",
|
||||
"groupId": "zai",
|
||||
"groupLabel": "Z.AI",
|
||||
"groupHint": "GLM Coding Plan / Global / CN",
|
||||
"optionKey": "zaiApiKey",
|
||||
"cliFlag": "--zai-api-key",
|
||||
"cliOption": "--zai-api-key <key>",
|
||||
"cliDescription": "Z.AI API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "coding-global",
|
||||
"choiceId": "zai-coding-global",
|
||||
"choiceLabel": "Coding-Plan-Global",
|
||||
"choiceHint": "GLM Coding Plan Global (api.z.ai)",
|
||||
"groupId": "zai",
|
||||
"groupLabel": "Z.AI",
|
||||
"groupHint": "GLM Coding Plan / Global / CN",
|
||||
"optionKey": "zaiApiKey",
|
||||
"cliFlag": "--zai-api-key",
|
||||
"cliOption": "--zai-api-key <key>",
|
||||
"cliDescription": "Z.AI API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "coding-cn",
|
||||
"choiceId": "zai-coding-cn",
|
||||
"choiceLabel": "Coding-Plan-CN",
|
||||
"choiceHint": "GLM Coding Plan CN (open.bigmodel.cn)",
|
||||
"groupId": "zai",
|
||||
"groupLabel": "Z.AI",
|
||||
"groupHint": "GLM Coding Plan / Global / CN",
|
||||
"optionKey": "zaiApiKey",
|
||||
"cliFlag": "--zai-api-key",
|
||||
"cliOption": "--zai-api-key <key>",
|
||||
"cliDescription": "Z.AI API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "global",
|
||||
"choiceId": "zai-global",
|
||||
"choiceLabel": "Global",
|
||||
"choiceHint": "Z.AI Global (api.z.ai)",
|
||||
"groupId": "zai",
|
||||
"groupLabel": "Z.AI",
|
||||
"groupHint": "GLM Coding Plan / Global / CN",
|
||||
"optionKey": "zaiApiKey",
|
||||
"cliFlag": "--zai-api-key",
|
||||
"cliOption": "--zai-api-key <key>",
|
||||
"cliDescription": "Z.AI API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
},
|
||||
{
|
||||
"method": "cn",
|
||||
"choiceId": "zai-cn",
|
||||
"choiceLabel": "CN",
|
||||
"choiceHint": "Z.AI CN (open.bigmodel.cn)",
|
||||
"groupId": "zai",
|
||||
"groupLabel": "Z.AI",
|
||||
"groupHint": "GLM Coding Plan / Global / CN",
|
||||
"optionKey": "zaiApiKey",
|
||||
"cliFlag": "--zai-api-key",
|
||||
"cliOption": "--zai-api-key <key>",
|
||||
"cliDescription": "Z.AI API key",
|
||||
"onboardingScopes": [
|
||||
"text-inference"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": {
|
||||
"mediaUnderstandingProviders": [
|
||||
"zai"
|
||||
]
|
||||
},
|
||||
"install": {
|
||||
"clawhubSpec": "clawhub:@openclaw/zai-provider",
|
||||
"npmSpec": "@openclaw/zai-provider",
|
||||
"defaultChoice": "npm",
|
||||
"minHostVersion": ">=2026.6.9"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "@openclaw/stepfun-provider",
|
||||
"description": "OpenClaw StepFun provider plugin.",
|
||||
|
|
|
|||
|
|
@ -100,6 +100,25 @@ describe("config presence", () => {
|
|||
).toEqual([{ channelId: "matrix", source: "env" }]);
|
||||
});
|
||||
|
||||
it("detects official external channel env vars", () => {
|
||||
const env = {
|
||||
MATTERMOST_URL: "https://mattermost.example.test",
|
||||
MATTERMOST_BOT_TOKEN: "token",
|
||||
} as NodeJS.ProcessEnv;
|
||||
|
||||
expectPotentialConfiguredChannelCase({
|
||||
cfg: {},
|
||||
env,
|
||||
expectedIds: ["mattermost"],
|
||||
options: { includePersistedAuthState: false },
|
||||
});
|
||||
expect(
|
||||
listPotentialConfiguredChannelPresenceSignals({}, env, {
|
||||
includePersistedAuthState: false,
|
||||
}),
|
||||
).toEqual([{ channelId: "mattermost", source: "env" }]);
|
||||
});
|
||||
|
||||
it("detects persisted Matrix credentials without config or env", () => {
|
||||
const stateDir = makeTempStateDir().replace(
|
||||
"openclaw-channel-config-presence-",
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import { resolveStateDir } from "../config/paths.js";
|
|||
import type { OpenClawConfig } from "../config/types.openclaw.js";
|
||||
import { hasNonEmptyString } from "../infra/outbound/channel-target.js";
|
||||
import type { PluginDiscoveryResult } from "../plugins/discovery.js";
|
||||
import { listOfficialExternalChannelEnvVars } from "../plugins/official-external-plugin-catalog.js";
|
||||
import { isRecord } from "../utils.js";
|
||||
import { listBundledChannelIds } from "./plugins/bundled-ids.js";
|
||||
|
||||
|
|
@ -146,6 +147,16 @@ export function listPotentialConfiguredChannelPresenceSignals(
|
|||
const configuredChannelIds = new Set<string>();
|
||||
const channelIds = options.channelIds ?? listBundledChannelIds(env, options.discovery);
|
||||
const channelEnvPrefixes = listChannelEnvPrefixes(channelIds);
|
||||
const scopedChannelIds = options.channelIds
|
||||
? new Set(
|
||||
options.channelIds
|
||||
.map((channelId) => normalizeOptionalLowercaseString(channelId))
|
||||
.filter((channelId): channelId is string => Boolean(channelId)),
|
||||
)
|
||||
: undefined;
|
||||
const officialExternalChannelEnvVars = listOfficialExternalChannelEnvVars().filter(
|
||||
({ channelId }) => !scopedChannelIds || scopedChannelIds.has(channelId),
|
||||
);
|
||||
const channels = isRecord(cfg.channels) ? cfg.channels : null;
|
||||
if (channels) {
|
||||
for (const [key, value] of Object.entries(channels)) {
|
||||
|
|
@ -171,6 +182,12 @@ export function listPotentialConfiguredChannelPresenceSignals(
|
|||
addSignal(channelId, "env");
|
||||
}
|
||||
}
|
||||
for (const { channelId, envVars } of officialExternalChannelEnvVars) {
|
||||
if (envVars.includes(key)) {
|
||||
configuredChannelIds.add(channelId);
|
||||
addSignal(channelId, "env");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (options.includePersistedAuthState !== false && hasPersistedChannelState(env)) {
|
||||
|
|
|
|||
|
|
@ -42,6 +42,21 @@ describe("official external plugin catalog", () => {
|
|||
["parallel", "@openclaw/parallel-plugin"],
|
||||
["perplexity", "@openclaw/perplexity-plugin"],
|
||||
] as const;
|
||||
const newlyExternalized = [
|
||||
["clickclack", "@openclaw/clickclack"],
|
||||
["fireworks", "@openclaw/fireworks-provider"],
|
||||
["irc", "@openclaw/irc"],
|
||||
["mattermost", "@openclaw/mattermost"],
|
||||
["moonshot", "@openclaw/moonshot-provider"],
|
||||
["searxng", "@openclaw/searxng-plugin"],
|
||||
["signal", "@openclaw/signal"],
|
||||
["sms", "@openclaw/sms"],
|
||||
["tavily", "@openclaw/tavily-plugin"],
|
||||
["tencent", "@openclaw/tencent-provider"],
|
||||
["venice", "@openclaw/venice-provider"],
|
||||
["vercel-ai-gateway", "@openclaw/vercel-ai-gateway-provider"],
|
||||
["zai", "@openclaw/zai-provider"],
|
||||
] as const;
|
||||
|
||||
for (const [id, npmSpec] of [...providers, ...plugins]) {
|
||||
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry(id))).toEqual({
|
||||
|
|
@ -51,6 +66,14 @@ describe("official external plugin catalog", () => {
|
|||
minHostVersion: ">=2026.6.8",
|
||||
});
|
||||
}
|
||||
for (const [id, npmSpec] of newlyExternalized) {
|
||||
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry(id))).toMatchObject({
|
||||
clawhubSpec: `clawhub:${npmSpec}`,
|
||||
npmSpec,
|
||||
defaultChoice: "npm",
|
||||
minHostVersion: ">=2026.6.9",
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
it("advertises StepFun with its ClawHub package and plugin API floor", () => {
|
||||
|
|
@ -150,9 +173,9 @@ describe("official external plugin catalog", () => {
|
|||
expect(
|
||||
resolveOfficialExternalProviderContractPluginIds({
|
||||
contract: "mediaUnderstandingProviders",
|
||||
providerIds: new Set(["groq"]),
|
||||
providerIds: new Set(["groq", "moonshot", "zai"]),
|
||||
}),
|
||||
).toEqual(["groq"]);
|
||||
).toEqual(["groq", "moonshot", "zai"]);
|
||||
});
|
||||
|
||||
it("maps env-only web-fetch credentials to external plugin owners", () => {
|
||||
|
|
@ -190,9 +213,16 @@ describe("official external plugin catalog", () => {
|
|||
GROQ_API_KEY: "groq-key",
|
||||
KILOCODE_API_KEY: "kilocode-key",
|
||||
KIMICODE_API_KEY: "kimi-key",
|
||||
KIMI_API_KEY: "moonshot-kimi-key",
|
||||
MOONSHOT_API_KEY: "moonshot-key",
|
||||
QIANFAN_API_KEY: "qianfan-key",
|
||||
MODELSTUDIO_API_KEY: "qwen-key",
|
||||
STEPFUN_API_KEY: "stepfun-key",
|
||||
FIREWORKS_API_KEY: "fireworks-key",
|
||||
TOKENHUB_API_KEY: "tokenhub-key",
|
||||
VENICE_API_KEY: "venice-key",
|
||||
AI_GATEWAY_API_KEY: "gateway-key",
|
||||
ZAI_API_KEY: "zai-key",
|
||||
}),
|
||||
).toEqual([
|
||||
"arcee",
|
||||
|
|
@ -201,12 +231,18 @@ describe("official external plugin catalog", () => {
|
|||
"cloudflare-ai-gateway",
|
||||
"deepinfra",
|
||||
"deepseek",
|
||||
"fireworks",
|
||||
"groq",
|
||||
"kilocode",
|
||||
"kimi",
|
||||
"moonshot",
|
||||
"qianfan",
|
||||
"qwen",
|
||||
"stepfun",
|
||||
"tencent",
|
||||
"venice",
|
||||
"vercel-ai-gateway",
|
||||
"zai",
|
||||
]);
|
||||
expect(resolveOfficialExternalProviderPluginIdsForEnv({ GROQ_API_KEY: " " })).toEqual([]);
|
||||
});
|
||||
|
|
@ -237,6 +273,14 @@ describe("official external plugin catalog", () => {
|
|||
npmSpec: "@openclaw/discord",
|
||||
allowInvalidConfigRecovery: true,
|
||||
});
|
||||
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("mattermost"))).toMatchObject({
|
||||
npmSpec: "@openclaw/mattermost",
|
||||
allowInvalidConfigRecovery: true,
|
||||
});
|
||||
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("tavily"))).toMatchObject({
|
||||
npmSpec: "@openclaw/tavily-plugin",
|
||||
allowInvalidConfigRecovery: true,
|
||||
});
|
||||
});
|
||||
|
||||
it("lists Matrix as an official external ClawHub channel after cutover", () => {
|
||||
|
|
@ -249,7 +293,7 @@ describe("official external plugin catalog", () => {
|
|||
}
|
||||
|
||||
expect(ids.has("matrix")).toBe(true);
|
||||
expect(ids.has("mattermost")).toBe(false);
|
||||
expect(ids.has("mattermost")).toBe(true);
|
||||
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("matrix"))).toEqual({
|
||||
clawhubSpec: "clawhub:@openclaw/matrix",
|
||||
npmSpec: "@openclaw/matrix",
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ export type OfficialExternalPluginCatalogManifest = {
|
|||
channel?: {
|
||||
id?: string;
|
||||
label?: string;
|
||||
envVars?: readonly string[];
|
||||
};
|
||||
providers?: readonly OfficialExternalProviderCatalogProvider[];
|
||||
webSearchProviders?: readonly OfficialExternalWebSearchProvider[];
|
||||
|
|
@ -320,6 +321,22 @@ export function listOfficialExternalChannelCatalogEntries(): OfficialExternalPlu
|
|||
);
|
||||
}
|
||||
|
||||
export function listOfficialExternalChannelEnvVars(): Array<{
|
||||
channelId: string;
|
||||
envVars: readonly string[];
|
||||
}> {
|
||||
return listOfficialExternalChannelCatalogEntries().flatMap((entry) => {
|
||||
const channel = getOfficialExternalPluginCatalogManifest(entry)?.channel;
|
||||
const channelId = normalizeOptionalString(channel?.id)?.toLowerCase();
|
||||
const envVars = uniqueStrings(
|
||||
(channel?.envVars ?? [])
|
||||
.map((envVar) => normalizeOptionalString(envVar))
|
||||
.filter((envVar): envVar is string => Boolean(envVar)),
|
||||
);
|
||||
return channelId && envVars.length > 0 ? [{ channelId, envVars }] : [];
|
||||
});
|
||||
}
|
||||
|
||||
export function listOfficialExternalProviderCatalogEntries(): OfficialExternalPluginCatalogEntry[] {
|
||||
return listOfficialExternalPluginCatalogEntries().filter(
|
||||
(entry) => (getOfficialExternalPluginCatalogManifest(entry)?.providers?.length ?? 0) > 0,
|
||||
|
|
|
|||
|
|
@ -38,9 +38,12 @@ describe("web-search install catalog", () => {
|
|||
resolveWebSearchInstallCatalogEntriesForEnv({
|
||||
EXA_API_KEY: "exa-key",
|
||||
FIRECRAWL_API_KEY: "firecrawl-key",
|
||||
KIMI_API_KEY: "kimi-key",
|
||||
OPENROUTER_API_KEY: "openrouter-key",
|
||||
PARALLEL_API_KEY: "parallel-key",
|
||||
SEARXNG_BASE_URL: "http://search.local",
|
||||
TAVILY_API_KEY: "tavily-key",
|
||||
}).map((entry) => entry.pluginId),
|
||||
).toEqual(["exa", "firecrawl", "parallel", "perplexity"]);
|
||||
).toEqual(["exa", "firecrawl", "moonshot", "parallel", "perplexity", "searxng", "tavily"]);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue