Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ jobs:
node-version: 24
- run: npm ci
- run: npm run check
- name: Check vocabulary covers the latest OpenClaw release
env:
GH_TOKEN: ${{ github.token }}
run: |
release_tag="$(gh api repos/openclaw/openclaw/releases/latest --jq .tag_name)"
release_sha="$(gh api "repos/openclaw/openclaw/commits/$release_tag" --jq .sha)"
npm run vocabulary:check -- --release-revision "$release_sha"
- run: npx wrangler deploy --dry-run

deploy:
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Unreleased

- Preserve all reported public channel, provider, and plugin names instead of truncating each list to 32 before validation; keep upload and Analytics Engine byte limits covered by regression tests.
- Refresh retained public names from OpenClaw 2026.9.7, including GitHub, QuickJS Code Mode, and Session Share; require a reviewed snapshot for the latest published release in the existing CI check.
- Accept strictly validated, identifier-free update outcomes in a separate, explicitly configured dataset; add a side-effect-free capability check while keeping production collection unbound. Thanks @roboclaw-bot, @fuller-stack-dev, and @vincentkoc.
- Refresh Wrangler, Cloudflare Worker types, and Vitest with the matching workerd runtime and npm lockfile.
- Discard malformed UTF-8 feature-statistics uploads instead of repairing and recording them, while preserving update responses.
Expand Down
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,10 @@ npm run dev # local worker at http://localhost:8787
npm run deploy # requires Cloudflare credentials for the OpenClaw account
```

Pull requests run the typecheck, tests, and a Wrangler dry-run build using the committed lockfile.
Pull requests run the typecheck, tests, a public-vocabulary release check, and a Wrangler dry-run build
using the committed lockfile. The release check resolves the latest published OpenClaw release tag
to its commit and fails if that commit has no reviewed vocabulary snapshot. GitHub lookup failures
fail the check; they do not report the vocabulary as fresh.
Deploys run from GitHub Actions on pushes to `main` (see
[`.github/workflows/deploy.yml`](.github/workflows/deploy.yml)), using the `CLOUDFLARE_API_TOKEN`
repository secret.
Expand All @@ -254,19 +257,24 @@ OpenClaw Git repository containing the candidate commit and its history:
npm run vocabulary:check -- --source <openclaw-repository> --revision <full-public-commit-sha>
npm run vocabulary:update -- --source <openclaw-repository> --revision <full-public-commit-sha>
npm run vocabulary:check -- --source <openclaw-repository>
npm run vocabulary:check -- --release-revision <full-released-commit-sha>
npm run check
```

The first command fails when the candidate is not recorded. Review the generated diff, commit both
metadata and generated source, and deploy through the normal PR workflow. Do not edit the generated
names by hand. Plain `npm run vocabulary:check` runs offline in CI and detects metadata/output drift;
`--source` also reproduces every snapshot from immutable Git objects. It never changes the source
checkout, runs an install, or uses its uncommitted files.
`--source` also reproduces every snapshot from immutable Git objects. `--release-revision` additionally
requires a snapshot for the independently resolved release commit. This check is read-only and does
not automatically admit new names. Neither check changes the source checkout, runs an install, or
uses its uncommitted files.

The generator calls upstream `listBundledPluginPackArtifacts` with the default packaging environment,
then reads the selected plugin manifests, public provider overlays, and three official catalogs.
Packaging exclusions remain owned by OpenClaw. A changed upstream metadata contract fails generation
and needs review rather than silently falling back to a partial vocabulary.
The generator supports the provider-metadata location and shared packaging policy used by release
`v2026.9.7` (`c074824a27c96d3983043f9eeb33823cd1772d8c`), while preserving replay of older snapshots.

The initial snapshot includes all catalog revisions on the public main history since commit
`844e781ca40952c98ee997b016e3cc5d2f12f9f3`, before name allowlisting began in August 2026.
Expand Down
314 changes: 314 additions & 0 deletions data/public-vocabulary.json
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,320 @@
"zalouser",
"zoom-meetings"
]
},
{
"repository": "openclaw/openclaw",
"revision": "c074824a27c96d3983043f9eeb33823cd1772d8c",
"catalogHistoryStart": "844e781ca40952c98ee997b016e3cc5d2f12f9f3",
"catalogRevisions": [
"0229a108fee749327b2cc60c4d228299dfe2f889",
"0a4bb73bdfa59ebad95e0498ea5801930dec099c",
"1605dbd3efef1c10da95c4a9bbb51a19a9d07865",
"1f2e99832b4239aa63a4007e211f80f390c1d9bd",
"2bbd9403b7c2c4fe01565401d535a3dd2bc38d03",
"3a5cb3847c77a0e021fdc90da8cdce0005e99d46",
"4b5f39fd6d4e093f3bdad3739059d180498a12dc",
"4d31905e39652fab7d6a323fa30581025a49648f",
"56fb8872ed77595bdb50ec3e62968d8966a5a69b",
"58fcf69cadd0be59ecee41b21b655f195ccda7b2",
"5acfb83d9fe84d5741343d85d5e3d99243bafd39",
"64bf824613261007a3f452974d63f83d6db7f512",
"74ad6ba4f2e9f9f462e66f6a6663c1dcd8d7928f",
"7a6a7945cecb4eb1a0eae8d0274cb8ee9462cf1e",
"7f0547293863a6ee80f28c15808505bd5e9d12b9",
"7f41da0c7e42ca8818615272d62977f677a1e482",
"80ae248de1c050d2508f378245b2f1add18f47ed",
"844e781ca40952c98ee997b016e3cc5d2f12f9f3",
"88c56ec432a8e9149987db99dbbec25874aec266",
"89f7971fc8e9c48f8b849bdff51533d39051d00e",
"8f82ec8ad2c6f76106d98b4fe4690150e7af1bf6",
"914530a9577b92d723effae0afa231196ef17d78",
"9b2831afd5f7f1540130872b7be9b61b568c4ba0",
"9b77c06bbde9bd9cf3d280ef1d515d8a824a1582",
"a26af89910e21c51d53b9f1720e31a231f20417e",
"a94a7b2768dec4799314c1c2058c26f231d282f7",
"a980c88c8876fbf5187731f5031b8ee7e8103353",
"b076a15e510374bbc73750d0d58bcc4e4025648a",
"b4653c7debb79d1e6e17fcb89299a4e8817cbf2a",
"b4d088531754d71af3d3446e2c37e7aafd0eddc4",
"bb8c04d53778d6c7ccf438a6d7a876c6ddaa979d",
"c074824a27c96d3983043f9eeb33823cd1772d8c",
"c432db8665317d377d9e1763253dcbcacac62dd2",
"c677baebc93f4de4ed323580fda0f85895512a3d",
"d7b0e07f4ca00f9646958a2bba63b600f11bc77a",
"e1a9f086e4e6d49508fdae9209129c28e426188e",
"e1d457ede625bddec7b02b7b0939e597a0730c64",
"e545da46f6d895c13dd7c3a2ee28e048e524fa92",
"f9358275abe0c8d76367f14c7b98b4bf6786bee6",
"f99d9620017f20a2fa781650e871592ce1d0f138",
"fd141ddb2777528f28abb647aa71412cf8c9d45d"
],
"bundledPlugins": [
"a2a",
"active-memory",
"admin-http-rpc",
"agentsapi",
"alibaba",
"anthropic",
"apple-fm",
"azure-speech",
"beam",
"bonjour",
"browser",
"canvas",
"clawrouter",
"code-mode-quickjs",
"copilot-proxy",
"crabbox",
"cua-computer",
"deepgram",
"device-pair",
"document-extract",
"elevenlabs",
"fal",
"file-transfer",
"geolocation",
"github",
"github-copilot",
"google",
"huggingface",
"imap",
"kie",
"linux-node",
"litellm",
"llm-task",
"lmstudio",
"logbook",
"memory-core",
"memory-wiki",
"microsoft",
"microsoft-foundry",
"migrate-claude",
"migrate-hermes",
"minimax",
"nvidia",
"oc-path",
"ollama",
"onepassword",
"openai",
"opencode-go",
"openrouter",
"policy",
"reef",
"runway",
"senseaudio",
"session-share",
"sglang",
"talk-voice",
"telegram",
"together",
"tts-local-cli",
"vault",
"vllm",
"web-readability",
"workboard",
"xai"
],
"names": [
"a2a",
"acpx",
"active-memory",
"admin-http-rpc",
"agentmail",
"agentsapi",
"alibaba",
"amazon-bedrock",
"amazon-bedrock-mantle",
"anthropic",
"anthropic-vertex",
"apple-fm",
"arcee",
"azure-openai-responses",
"azure-speech",
"bailian-token-plan",
"baseten",
"beam",
"bonjour",
"brave",
"browser",
"buzz",
"byteplus",
"byteplus-plan",
"canvas",
"cerebras",
"chutes",
"claude-cli",
"clawrouter",
"clickclack",
"cloudflare-ai-gateway",
"code-mode-quickjs",
"codex",
"cohere",
"comfy",
"copilot",
"copilot-proxy",
"crabbox",
"cua-computer",
"dashscope",
"daytona",
"deepgram",
"deepinfra",
"deepseek",
"device-pair",
"diagnostics-otel",
"diagnostics-prometheus",
"diffs",
"diffs-language-pack",
"discord",
"document-extract",
"duckduckgo",
"elevenlabs",
"exa",
"facetime",
"fal",
"featherless",
"feishu",
"file-transfer",
"firecrawl",
"fireworks",
"fish-audio-speech",
"geolocation",
"github",
"github-copilot",
"gmi",
"gmi-cloud",
"gmicloud",
"google",
"google-antigravity",
"google-gemini-cli",
"google-meet",
"google-vertex",
"googlechat",
"gradium",
"groq",
"huggingface",
"imap",
"imessage",
"inworld",
"irc",
"kie",
"kilocode",
"kimi",
"kimi-coding",
"line",
"linux-node",
"litellm",
"llama-cpp",
"llm-task",
"lmstudio",
"lobster",
"logbook",
"longcat",
"matrix",
"mattermost",
"memory-core",
"memory-lancedb",
"memory-wiki",
"meta",
"microsoft",
"microsoft-foundry",
"migrate-claude",
"migrate-hermes",
"minimax",
"minimax-portal",
"mistral",
"modelstudio",
"moonshot",
"moonshot-ai",
"moonshotai",
"msteams",
"mxc",
"nextcloud-talk",
"nostr",
"novita",
"novita-ai",
"novitaai",
"nvidia",
"oc-path",
"ollama",
"ollama-cloud",
"onepassword",
"onnx",
"openai",
"openclaw-plugin-yuanbao",
"openclaw-qqbot",
"openclaw-weixin",
"openclaw-zaloclawbot",
"opencode",
"opencode-go",
"openrouter",
"openshell",
"parallel",
"perplexity",
"pixverse",
"policy",
"qianfan",
"qqbot",
"qwen",
"qwen-token-plan",
"qwencloud",
"radius",
"raft",
"reef",
"runway",
"searxng",
"senseaudio",
"session-share",
"sglang",
"signal",
"slack",
"slack-huddles",
"sms",
"stepfun",
"stepfun-plan",
"synology-chat",
"synthetic",
"talk-voice",
"tavily",
"team-reports",
"teams-meetings",
"telegram",
"telnyx",
"tencent",
"tencent-tokenhub",
"tencent-tokenplan",
"tlon",
"together",
"tokenjuice",
"tts-local-cli",
"twitch",
"typesafe",
"vault",
"venice",
"vercel-ai-gateway",
"vllm",
"voice-call",
"volcengine",
"volcengine-plan",
"voyage",
"vydra",
"web-readability",
"wecom",
"wecom-openclaw-plugin",
"whatsapp",
"workboard",
"x-ai",
"xai",
"xiaomi",
"xiaomi-token-plan",
"yuanbao",
"z-ai",
"z.ai",
"zai",
"zalo",
"zalouser",
"zoom-meetings"
]
}
]
}
Loading
Loading