mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-24 11:25:50 -06:00
docs(plugins): show root CLI commands (#126621)
This commit is contained in:
committed by
GitHub
parent
b668a21f07
commit
6932897bf9
@@ -16,7 +16,7 @@ Adds agent-callable tools.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`; skills
|
||||
CLI commands: `openclaw browser`; contracts: `tools`; skills
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Codex app-server harness and native session catalog.
|
||||
|
||||
## Surface
|
||||
|
||||
commands: `/codex`; contracts: `mediaUnderstandingProviders`, `migrationProviders`, `tools`, `webSearchProviders`
|
||||
CLI commands: `openclaw codex`; slash commands: `/codex`; contracts: `mediaUnderstandingProviders`, `migrationProviders`, `tools`, `webSearchProviders`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,4 +16,4 @@ Generate setup codes and approve device pairing requests.
|
||||
|
||||
## Surface
|
||||
|
||||
commands: `/pair`
|
||||
slash commands: `/pair`
|
||||
|
||||
@@ -16,7 +16,7 @@ OpenClaw Google Meet participant plugin for joining calls through Chrome or Twil
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`, `transcriptSourceProviders`
|
||||
CLI commands: `openclaw googlemeet`; contracts: `tools`, `transcriptSourceProviders`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ OpenClaw Matrix channel plugin for rooms and direct messages.
|
||||
|
||||
## Surface
|
||||
|
||||
channels: `matrix`
|
||||
channels: `matrix`; CLI commands: `openclaw matrix`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,4 +16,4 @@ Adds agent-callable tools.
|
||||
|
||||
## Surface
|
||||
|
||||
commands: `/dreaming`; contracts: `tools`
|
||||
CLI commands: `openclaw memory`; slash commands: `/dreaming`; contracts: `tools`
|
||||
|
||||
@@ -16,7 +16,7 @@ OpenClaw LanceDB-backed long-term memory plugin with auto-recall, auto-capture,
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`
|
||||
CLI commands: `openclaw ltm`; contracts: `tools`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Persistent wiki compiler and Obsidian-friendly knowledge vault for OpenClaw.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`; skills
|
||||
CLI commands: `openclaw wiki`; contracts: `tools`; skills
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Adds the openclaw path CLI for oc:// workspace file addressing.
|
||||
|
||||
## Surface
|
||||
|
||||
plugin
|
||||
CLI commands: `openclaw path`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ title: "Onepassword plugin"
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`
|
||||
CLI commands: `openclaw onepassword`; contracts: `tools`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Adds policy-backed doctor checks for workspace conformance.
|
||||
|
||||
## Surface
|
||||
|
||||
plugin
|
||||
CLI commands: `openclaw policy`
|
||||
|
||||
<!-- openclaw-plugin-reference:manual-start -->
|
||||
|
||||
|
||||
@@ -16,4 +16,4 @@ OpenClaw QA lab plugin with private debugger UI and scenario runner.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`, `webSearchProviders`, `workerProviders`
|
||||
CLI commands: `openclaw qa`; contracts: `tools`, `webSearchProviders`, `workerProviders`
|
||||
|
||||
@@ -16,7 +16,7 @@ Guarded end-to-end encrypted claw channel.
|
||||
|
||||
## Surface
|
||||
|
||||
channels: `reef`
|
||||
channels: `reef`; CLI commands: `openclaw reef`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Manage Talk voice selection (list/set).
|
||||
|
||||
## Surface
|
||||
|
||||
commands: `/voice`
|
||||
slash commands: `/voice`
|
||||
|
||||
<!-- openclaw-plugin-reference:manual-start -->
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Join Microsoft Teams meetings as a Chrome browser guest.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`, `transcriptSourceProviders`
|
||||
CLI commands: `openclaw teamsmeetings`; contracts: `tools`, `transcriptSourceProviders`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ HashiCorp Vault SecretRef provider integration.
|
||||
|
||||
## Surface
|
||||
|
||||
plugin
|
||||
CLI commands: `openclaw vault`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`; skills
|
||||
CLI commands: `openclaw voicecall`; contracts: `tools`; skills
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Dashboard workboard for agent-owned issues and sessions.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`; dashboard data bindings: `workboard.cards.list`, `workboard.stats`, `workboard.boards.list`; dashboard action verbs: `workboard.dispatch`
|
||||
CLI commands: `openclaw workboard`; contracts: `tools`; dashboard data bindings: `workboard.cards.list`, `workboard.stats`, `workboard.boards.list`; dashboard action verbs: `workboard.dispatch`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Join Zoom meetings as a Chrome browser guest.
|
||||
|
||||
## Surface
|
||||
|
||||
contracts: `tools`, `transcriptSourceProviders`
|
||||
CLI commands: `openclaw zoommeetings`; contracts: `tools`, `transcriptSourceProviders`
|
||||
|
||||
## Related docs
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ type PluginSurfaceManifest = {
|
||||
id?: string;
|
||||
channels?: string[];
|
||||
providers?: string[];
|
||||
cliCommands?: Array<{ name?: string }>;
|
||||
commandAliases?: Array<{ name?: string; kind?: string }>;
|
||||
contracts?: Record<string, unknown>;
|
||||
dashboard?: Partial<Record<"actionVerbs" | "dataBindings", Array<{ id?: string }>>>;
|
||||
@@ -83,7 +84,17 @@ export function resolvePluginSurface(manifest: PluginSurfaceManifest) {
|
||||
if (Array.isArray(manifest.providers) && manifest.providers.length > 0) {
|
||||
parts.push(`providers: ${formatIdentifiers(manifest.providers)}`);
|
||||
}
|
||||
const commands = [
|
||||
const cliCommands = [
|
||||
...new Set(
|
||||
(manifest.cliCommands ?? [])
|
||||
.map((command) => command.name?.trim())
|
||||
.filter((name): name is string => Boolean(name)),
|
||||
),
|
||||
].toSorted((left, right) => left.localeCompare(right));
|
||||
if (cliCommands.length > 0) {
|
||||
parts.push(`CLI commands: ${formatIdentifiers(cliCommands.map((name) => `openclaw ${name}`))}`);
|
||||
}
|
||||
const slashCommands = [
|
||||
...new Set(
|
||||
(manifest.commandAliases ?? [])
|
||||
.filter((alias) => alias.kind === "runtime-slash")
|
||||
@@ -91,8 +102,8 @@ export function resolvePluginSurface(manifest: PluginSurfaceManifest) {
|
||||
.filter((name): name is string => Boolean(name)),
|
||||
),
|
||||
].toSorted((left, right) => left.localeCompare(right));
|
||||
if (commands.length > 0) {
|
||||
parts.push(`commands: ${formatIdentifiers(commands.map((name) => `/${name}`))}`);
|
||||
if (slashCommands.length > 0) {
|
||||
parts.push(`slash commands: ${formatIdentifiers(slashCommands.map((name) => `/${name}`))}`);
|
||||
}
|
||||
const contracts = Object.keys(manifest.contracts ?? {}).toSorted((left, right) =>
|
||||
left.localeCompare(right),
|
||||
|
||||
@@ -30,15 +30,23 @@ describe("resolvePluginSurface", () => {
|
||||
expect(resolvePluginSurface({})).toBe("plugin");
|
||||
});
|
||||
|
||||
it("renders only runtime slash command aliases", () => {
|
||||
it("renders root CLI commands separately from runtime slash command aliases", () => {
|
||||
expect(
|
||||
resolvePluginSurface({
|
||||
cliCommands: [
|
||||
{ name: " voicecall " },
|
||||
{ name: "browser" },
|
||||
{ name: "voicecall" },
|
||||
{ name: " " },
|
||||
],
|
||||
commandAliases: [
|
||||
{ name: "voice", kind: "runtime-slash" },
|
||||
{ name: " voice ", kind: "runtime-slash" },
|
||||
{ name: " ", kind: "runtime-slash" },
|
||||
{ name: "internal", kind: "activation-only" },
|
||||
],
|
||||
}),
|
||||
).toBe("commands: `/voice`");
|
||||
).toBe("CLI commands: `openclaw browser`, `openclaw voicecall`; slash commands: `/voice`");
|
||||
});
|
||||
|
||||
it("escapes dashboard plugin owner delimiters and literal escape markers", () => {
|
||||
|
||||
Reference in New Issue
Block a user