{ "generatedBy": "scripts/generate-config-doc-baseline.ts", "kind": "plugin", "entries": [ { "path": "plugins.entries.*", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.*.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Config", "help": "Plugin-defined configuration payload interpreted by that plugin's own schema and validation rules. Use only documented fields from the plugin to prevent ignored or invalid settings.", "hasChildren": true }, { "path": "plugins.entries.*.config.*", "kind": "plugin", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.*.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Enabled", "help": "Per-plugin enablement override for a specific entry, applied on top of global plugin policy (restart required). Use this to stage plugin rollout gradually across environments.", "hasChildren": false }, { "path": "plugins.entries.*.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.*.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.*.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.*.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.*.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.*.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.acpx", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "ACPX Runtime", "help": "ACP runtime backend powered by acpx with configurable command path and version policy. (plugin: acpx)", "hasChildren": true }, { "path": "plugins.entries.acpx.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "ACPX Runtime Config", "help": "Plugin-defined config payload for acpx.", "hasChildren": true }, { "path": "plugins.entries.acpx.config.command", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "acpx Command", "help": "Optional path/command override for acpx (for example /home/user/repos/acpx/dist/cli.js). Leave unset to use plugin-local bundled acpx.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.cwd", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Working Directory", "help": "Default cwd for ACP session operations when not set per session.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.expectedVersion", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Expected acpx Version", "help": "Exact version to enforce or \"any\" to skip strict version matching.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.mcpServers", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "MCP Servers", "help": "Named MCP server definitions to inject into ACPX-backed session bootstrap. Each entry needs a command and can include args and env.", "hasChildren": true }, { "path": "plugins.entries.acpx.config.mcpServers.*", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.acpx.config.mcpServers.*.args", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.acpx.config.mcpServers.*.args.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.acpx.config.mcpServers.*.command", "kind": "plugin", "type": "string", "required": true, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.acpx.config.mcpServers.*.env", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.acpx.config.mcpServers.*.env.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.acpx.config.nonInteractivePermissions", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "deny", "fail" ], "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Non-Interactive Permission Policy", "help": "acpx policy when interactive permission prompts are unavailable.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.permissionMode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "approve-all", "approve-reads", "deny-all" ], "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Permission Mode", "help": "Default acpx permission policy for runtime prompts.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.pluginToolsMcpBridge", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Tools MCP Bridge", "help": "Default off. When enabled, inject the built-in OpenClaw plugin-tools MCP server into ACPX sessions so ACP agents can call plugin-registered tools.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.queueOwnerTtlSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access", "advanced" ], "label": "Queue Owner TTL Seconds", "help": "Idle queue-owner TTL for acpx prompt turns. Keep this short in OpenClaw to avoid delayed completion after each turn.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.strictWindowsCmdWrapper", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Strict Windows cmd Wrapper", "help": "Enabled by default. On Windows, reject unresolved .cmd/.bat wrappers instead of shell fallback. Disable only for compatibility with non-standard wrappers.", "hasChildren": false }, { "path": "plugins.entries.acpx.config.timeoutSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "performance" ], "label": "Prompt Timeout Seconds", "help": "Optional acpx timeout for each runtime turn.", "hasChildren": false }, { "path": "plugins.entries.acpx.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable ACPX Runtime", "hasChildren": false }, { "path": "plugins.entries.acpx.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.acpx.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.acpx.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.acpx.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.acpx.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.acpx.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/amazon-bedrock-provider", "help": "OpenClaw Amazon Bedrock provider plugin (plugin: amazon-bedrock)", "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/amazon-bedrock-provider Config", "help": "Plugin-defined config payload for amazon-bedrock.", "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.config.guardrail", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.config.guardrail.guardrailIdentifier", "kind": "plugin", "type": "string", "required": true, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.config.guardrail.guardrailVersion", "kind": "plugin", "type": "string", "required": true, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.config.guardrail.streamProcessingMode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "sync", "async" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.config.guardrail.trace", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "enabled", "disabled", "enabled_full" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/amazon-bedrock-provider", "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.amazon-bedrock.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.amazon-bedrock.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.anthropic", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/anthropic-provider", "help": "OpenClaw Anthropic provider plugin (plugin: anthropic)", "hasChildren": true }, { "path": "plugins.entries.anthropic-vertex", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/anthropic-vertex-provider", "help": "OpenClaw Anthropic Vertex provider plugin (plugin: anthropic-vertex)", "hasChildren": true }, { "path": "plugins.entries.anthropic-vertex.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/anthropic-vertex-provider Config", "help": "Plugin-defined config payload for anthropic-vertex.", "hasChildren": false }, { "path": "plugins.entries.anthropic-vertex.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/anthropic-vertex-provider", "hasChildren": false }, { "path": "plugins.entries.anthropic-vertex.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.anthropic-vertex.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.anthropic-vertex.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.anthropic-vertex.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.anthropic-vertex.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.anthropic-vertex.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.anthropic.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/anthropic-provider Config", "help": "Plugin-defined config payload for anthropic.", "hasChildren": false }, { "path": "plugins.entries.anthropic.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/anthropic-provider", "hasChildren": false }, { "path": "plugins.entries.anthropic.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.anthropic.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.anthropic.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.anthropic.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.anthropic.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.anthropic.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.bluebubbles", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/bluebubbles", "help": "OpenClaw BlueBubbles channel plugin (plugin: bluebubbles)", "hasChildren": true }, { "path": "plugins.entries.bluebubbles.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/bluebubbles Config", "help": "Plugin-defined config payload for bluebubbles.", "hasChildren": false }, { "path": "plugins.entries.bluebubbles.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/bluebubbles", "hasChildren": false }, { "path": "plugins.entries.bluebubbles.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.bluebubbles.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.bluebubbles.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.bluebubbles.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.bluebubbles.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.bluebubbles.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.brave", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/brave-plugin", "help": "OpenClaw Brave plugin (plugin: brave)", "hasChildren": true }, { "path": "plugins.entries.brave.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/brave-plugin Config", "help": "Plugin-defined config payload for brave.", "hasChildren": true }, { "path": "plugins.entries.brave.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.brave.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Brave Search API Key", "help": "Brave Search API key (fallback: BRAVE_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.brave.config.webSearch.mode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "web", "llm-context" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Brave Search Mode", "help": "Brave Search mode: web or llm-context.", "hasChildren": false }, { "path": "plugins.entries.brave.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/brave-plugin", "hasChildren": false }, { "path": "plugins.entries.brave.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.brave.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.brave.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.brave.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.brave.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.brave.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.browser", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/browser-plugin", "help": "OpenClaw browser tool plugin (plugin: browser)", "hasChildren": true }, { "path": "plugins.entries.browser.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/browser-plugin Config", "help": "Plugin-defined config payload for browser.", "hasChildren": false }, { "path": "plugins.entries.browser.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/browser-plugin", "hasChildren": false }, { "path": "plugins.entries.browser.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.browser.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.browser.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.browser.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.browser.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.browser.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.byteplus", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/byteplus-provider", "help": "OpenClaw BytePlus provider plugin (plugin: byteplus)", "hasChildren": true }, { "path": "plugins.entries.byteplus.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/byteplus-provider Config", "help": "Plugin-defined config payload for byteplus.", "hasChildren": false }, { "path": "plugins.entries.byteplus.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/byteplus-provider", "hasChildren": false }, { "path": "plugins.entries.byteplus.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.byteplus.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.byteplus.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.byteplus.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.byteplus.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.byteplus.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.chutes", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/chutes-provider", "help": "OpenClaw Chutes.ai provider plugin (plugin: chutes)", "hasChildren": true }, { "path": "plugins.entries.chutes.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/chutes-provider Config", "help": "Plugin-defined config payload for chutes.", "hasChildren": false }, { "path": "plugins.entries.chutes.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/chutes-provider", "hasChildren": false }, { "path": "plugins.entries.chutes.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.chutes.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.chutes.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.chutes.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.chutes.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.chutes.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.cloudflare-ai-gateway", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/cloudflare-ai-gateway-provider", "help": "OpenClaw Cloudflare AI Gateway provider plugin (plugin: cloudflare-ai-gateway)", "hasChildren": true }, { "path": "plugins.entries.cloudflare-ai-gateway.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/cloudflare-ai-gateway-provider Config", "help": "Plugin-defined config payload for cloudflare-ai-gateway.", "hasChildren": false }, { "path": "plugins.entries.cloudflare-ai-gateway.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/cloudflare-ai-gateway-provider", "hasChildren": false }, { "path": "plugins.entries.cloudflare-ai-gateway.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.cloudflare-ai-gateway.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.cloudflare-ai-gateway.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.cloudflare-ai-gateway.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.cloudflare-ai-gateway.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.cloudflare-ai-gateway.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.copilot-proxy", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/copilot-proxy", "help": "OpenClaw Copilot Proxy provider plugin (plugin: copilot-proxy)", "hasChildren": true }, { "path": "plugins.entries.copilot-proxy.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/copilot-proxy Config", "help": "Plugin-defined config payload for copilot-proxy.", "hasChildren": false }, { "path": "plugins.entries.copilot-proxy.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/copilot-proxy", "hasChildren": false }, { "path": "plugins.entries.copilot-proxy.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.copilot-proxy.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.copilot-proxy.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.copilot-proxy.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.copilot-proxy.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.copilot-proxy.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.deepgram", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/deepgram-provider", "help": "OpenClaw Deepgram media-understanding provider (plugin: deepgram)", "hasChildren": true }, { "path": "plugins.entries.deepgram.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/deepgram-provider Config", "help": "Plugin-defined config payload for deepgram.", "hasChildren": false }, { "path": "plugins.entries.deepgram.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/deepgram-provider", "hasChildren": false }, { "path": "plugins.entries.deepgram.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.deepgram.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.deepgram.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.deepgram.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.deepgram.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.deepgram.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.deepseek", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/deepseek-provider", "help": "OpenClaw DeepSeek provider plugin (plugin: deepseek)", "hasChildren": true }, { "path": "plugins.entries.deepseek.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/deepseek-provider Config", "help": "Plugin-defined config payload for deepseek.", "hasChildren": false }, { "path": "plugins.entries.deepseek.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/deepseek-provider", "hasChildren": false }, { "path": "plugins.entries.deepseek.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.deepseek.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.deepseek.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.deepseek.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.deepseek.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.deepseek.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.device-pair", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Device Pairing", "help": "Generate setup codes and approve device pairing requests. (plugin: device-pair)", "hasChildren": true }, { "path": "plugins.entries.device-pair.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Device Pairing Config", "help": "Plugin-defined config payload for device-pair.", "hasChildren": true }, { "path": "plugins.entries.device-pair.config.publicUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Gateway URL", "help": "Public WebSocket URL used for /pair setup codes (ws/wss or http/https).", "hasChildren": false }, { "path": "plugins.entries.device-pair.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Device Pairing", "hasChildren": false }, { "path": "plugins.entries.device-pair.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.device-pair.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.device-pair.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.device-pair.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.device-pair.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.device-pair.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.diagnostics-otel", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "observability" ], "label": "@openclaw/diagnostics-otel", "help": "OpenClaw diagnostics OpenTelemetry exporter (plugin: diagnostics-otel)", "hasChildren": true }, { "path": "plugins.entries.diagnostics-otel.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "observability" ], "label": "@openclaw/diagnostics-otel Config", "help": "Plugin-defined config payload for diagnostics-otel.", "hasChildren": false }, { "path": "plugins.entries.diagnostics-otel.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "observability" ], "label": "Enable @openclaw/diagnostics-otel", "hasChildren": false }, { "path": "plugins.entries.diagnostics-otel.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.diagnostics-otel.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.diagnostics-otel.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.diagnostics-otel.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.diagnostics-otel.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diagnostics-otel.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.diffs", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Diffs", "help": "Read-only diff viewer and file renderer for agents. (plugin: diffs)", "hasChildren": true }, { "path": "plugins.entries.diffs.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Diffs Config", "help": "Plugin-defined config payload for diffs.", "hasChildren": true }, { "path": "plugins.entries.diffs.config.defaults", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.diffs.config.defaults.background", "kind": "plugin", "type": "boolean", "required": false, "defaultValue": true, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Background Highlights", "help": "Show added/removed background highlights by default.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.diffIndicators", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "bars", "classic", "none" ], "defaultValue": "bars", "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Diff Indicator Style", "help": "Choose added/removed indicators style.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fileFormat", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "png", "pdf" ], "defaultValue": "png", "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Default File Format", "help": "Rendered file format for file mode (PNG or PDF).", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fileMaxWidth", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance", "storage" ], "label": "Default File Max Width", "help": "Maximum file render width in CSS pixels.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fileQuality", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "standard", "hq", "print" ], "defaultValue": "standard", "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Default File Quality", "help": "Quality preset for PNG/PDF rendering.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fileScale", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Default File Scale", "help": "Device scale factor used while rendering file artifacts.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fontFamily", "kind": "plugin", "type": "string", "required": false, "defaultValue": "Fira Code", "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Font", "help": "Preferred font family name for diff content and headers.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.fontSize", "kind": "plugin", "type": "number", "required": false, "defaultValue": 15, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Font Size", "help": "Base diff font size in pixels.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.format", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "png", "pdf" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.imageFormat", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "png", "pdf" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.imageMaxWidth", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.imageQuality", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "standard", "hq", "print" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.imageScale", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.layout", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "unified", "split" ], "defaultValue": "unified", "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Layout", "help": "Initial diff layout shown in the viewer.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.lineSpacing", "kind": "plugin", "type": "number", "required": false, "defaultValue": 1.6, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Line Spacing", "help": "Line-height multiplier applied to diff rows.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.mode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "view", "image", "file", "both" ], "defaultValue": "both", "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Output Mode", "help": "Tool default when mode is omitted. Use view for canvas/gateway viewer, file for PNG/PDF, or both.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.showLineNumbers", "kind": "plugin", "type": "boolean", "required": false, "defaultValue": true, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Show Line Numbers", "help": "Show line numbers by default.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.theme", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "light", "dark" ], "defaultValue": "dark", "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Theme", "help": "Initial viewer theme.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.defaults.wordWrap", "kind": "plugin", "type": "boolean", "required": false, "defaultValue": true, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Word Wrap", "help": "Wrap long lines by default.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.security", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.diffs.config.security.allowRemoteViewer", "kind": "plugin", "type": "boolean", "required": false, "defaultValue": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Remote Viewer", "help": "Allow non-loopback access to diff viewer URLs when the token path is known.", "hasChildren": false }, { "path": "plugins.entries.diffs.config.viewerBaseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Viewer Base URL", "help": "Persistent gateway base URL used for returned viewer links when a tool call does not pass baseUrl.", "hasChildren": false }, { "path": "plugins.entries.diffs.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Diffs", "hasChildren": false }, { "path": "plugins.entries.diffs.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.diffs.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.diffs.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.diffs.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.diffs.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.diffs.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.discord", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/discord", "help": "OpenClaw Discord channel plugin (plugin: discord)", "hasChildren": true }, { "path": "plugins.entries.discord.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/discord Config", "help": "Plugin-defined config payload for discord.", "hasChildren": false }, { "path": "plugins.entries.discord.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/discord", "hasChildren": false }, { "path": "plugins.entries.discord.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.discord.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.discord.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.discord.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.discord.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.discord.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.duckduckgo", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/duckduckgo-plugin", "help": "OpenClaw DuckDuckGo plugin (plugin: duckduckgo)", "hasChildren": true }, { "path": "plugins.entries.duckduckgo.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/duckduckgo-plugin Config", "help": "Plugin-defined config payload for duckduckgo.", "hasChildren": true }, { "path": "plugins.entries.duckduckgo.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.duckduckgo.config.webSearch.region", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "DuckDuckGo Region", "help": "Optional DuckDuckGo region code such as us-en, uk-en, or de-de.", "hasChildren": false }, { "path": "plugins.entries.duckduckgo.config.webSearch.safeSearch", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "strict", "moderate", "off" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "DuckDuckGo SafeSearch", "help": "SafeSearch level for DuckDuckGo results.", "hasChildren": false }, { "path": "plugins.entries.duckduckgo.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/duckduckgo-plugin", "hasChildren": false }, { "path": "plugins.entries.duckduckgo.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.duckduckgo.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.duckduckgo.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.duckduckgo.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.duckduckgo.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.duckduckgo.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.elevenlabs", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/elevenlabs-speech", "help": "OpenClaw ElevenLabs speech plugin (plugin: elevenlabs)", "hasChildren": true }, { "path": "plugins.entries.elevenlabs.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/elevenlabs-speech Config", "help": "Plugin-defined config payload for elevenlabs.", "hasChildren": false }, { "path": "plugins.entries.elevenlabs.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/elevenlabs-speech", "hasChildren": false }, { "path": "plugins.entries.elevenlabs.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.elevenlabs.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.elevenlabs.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.elevenlabs.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.elevenlabs.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.elevenlabs.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.exa", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/exa-plugin", "help": "OpenClaw Exa plugin (plugin: exa)", "hasChildren": true }, { "path": "plugins.entries.exa.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/exa-plugin Config", "help": "Plugin-defined config payload for exa.", "hasChildren": true }, { "path": "plugins.entries.exa.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.exa.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Exa API Key", "help": "Exa Search API key (fallback: EXA_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.exa.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/exa-plugin", "hasChildren": false }, { "path": "plugins.entries.exa.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.exa.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.exa.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.exa.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.exa.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.exa.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.fal", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/fal-provider", "help": "OpenClaw fal provider plugin (plugin: fal)", "hasChildren": true }, { "path": "plugins.entries.fal.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/fal-provider Config", "help": "Plugin-defined config payload for fal.", "hasChildren": false }, { "path": "plugins.entries.fal.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/fal-provider", "hasChildren": false }, { "path": "plugins.entries.fal.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.fal.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.fal.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.fal.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.fal.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.fal.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.feishu", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/feishu", "help": "OpenClaw Feishu/Lark channel plugin (community maintained by @m1heng) (plugin: feishu)", "hasChildren": true }, { "path": "plugins.entries.feishu.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/feishu Config", "help": "Plugin-defined config payload for feishu.", "hasChildren": false }, { "path": "plugins.entries.feishu.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/feishu", "hasChildren": false }, { "path": "plugins.entries.feishu.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.feishu.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.feishu.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.feishu.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.feishu.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.feishu.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.firecrawl", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/firecrawl-plugin", "help": "OpenClaw Firecrawl plugin (plugin: firecrawl)", "hasChildren": true }, { "path": "plugins.entries.firecrawl.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/firecrawl-plugin Config", "help": "Plugin-defined config payload for firecrawl.", "hasChildren": true }, { "path": "plugins.entries.firecrawl.config.webFetch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.firecrawl.config.webFetch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Firecrawl Fetch API Key", "help": "Firecrawl API key for web fetch fallback (fallback: FIRECRAWL_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webFetch.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "Firecrawl Fetch Base URL", "help": "Firecrawl Fetch base URL override.", "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webFetch.maxAgeMs", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webFetch.onlyMainContent", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webFetch.timeoutSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.firecrawl.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Firecrawl Search API Key", "help": "Firecrawl API key for web search (fallback: FIRECRAWL_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.firecrawl.config.webSearch.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "Firecrawl Search Base URL", "help": "Firecrawl Search base URL override.", "hasChildren": false }, { "path": "plugins.entries.firecrawl.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/firecrawl-plugin", "hasChildren": false }, { "path": "plugins.entries.firecrawl.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.firecrawl.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.firecrawl.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.firecrawl.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.firecrawl.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.firecrawl.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.github-copilot", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/github-copilot-provider", "help": "OpenClaw GitHub Copilot provider plugin (plugin: github-copilot)", "hasChildren": true }, { "path": "plugins.entries.github-copilot.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/github-copilot-provider Config", "help": "Plugin-defined config payload for github-copilot.", "hasChildren": false }, { "path": "plugins.entries.github-copilot.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/github-copilot-provider", "hasChildren": false }, { "path": "plugins.entries.github-copilot.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.github-copilot.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.github-copilot.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.github-copilot.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.github-copilot.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.github-copilot.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.google", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/google-plugin", "help": "OpenClaw Google plugin (plugin: google)", "hasChildren": true }, { "path": "plugins.entries.google.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/google-plugin Config", "help": "Plugin-defined config payload for google.", "hasChildren": true }, { "path": "plugins.entries.google.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.google.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Gemini Search API Key", "help": "Gemini API key for Google Search grounding (fallback: GEMINI_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.google.config.webSearch.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "Gemini Search Model", "help": "Gemini model override for web search grounding.", "hasChildren": false }, { "path": "plugins.entries.google.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/google-plugin", "hasChildren": false }, { "path": "plugins.entries.google.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.google.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.google.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.google.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.google.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.google.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.googlechat", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/googlechat", "help": "OpenClaw Google Chat channel plugin (plugin: googlechat)", "hasChildren": true }, { "path": "plugins.entries.googlechat.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/googlechat Config", "help": "Plugin-defined config payload for googlechat.", "hasChildren": false }, { "path": "plugins.entries.googlechat.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/googlechat", "hasChildren": false }, { "path": "plugins.entries.googlechat.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.googlechat.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.googlechat.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.googlechat.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.googlechat.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.googlechat.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.groq", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/groq-provider", "help": "OpenClaw Groq media-understanding provider (plugin: groq)", "hasChildren": true }, { "path": "plugins.entries.groq.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/groq-provider Config", "help": "Plugin-defined config payload for groq.", "hasChildren": false }, { "path": "plugins.entries.groq.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/groq-provider", "hasChildren": false }, { "path": "plugins.entries.groq.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.groq.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.groq.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.groq.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.groq.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.groq.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.huggingface", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/huggingface-provider", "help": "OpenClaw Hugging Face provider plugin (plugin: huggingface)", "hasChildren": true }, { "path": "plugins.entries.huggingface.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/huggingface-provider Config", "help": "Plugin-defined config payload for huggingface.", "hasChildren": false }, { "path": "plugins.entries.huggingface.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/huggingface-provider", "hasChildren": false }, { "path": "plugins.entries.huggingface.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.huggingface.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.huggingface.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.huggingface.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.huggingface.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.huggingface.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.imessage", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/imessage", "help": "OpenClaw iMessage channel plugin (plugin: imessage)", "hasChildren": true }, { "path": "plugins.entries.imessage.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/imessage Config", "help": "Plugin-defined config payload for imessage.", "hasChildren": false }, { "path": "plugins.entries.imessage.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/imessage", "hasChildren": false }, { "path": "plugins.entries.imessage.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.imessage.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.imessage.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.imessage.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.imessage.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.imessage.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.irc", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/irc", "help": "OpenClaw IRC channel plugin (plugin: irc)", "hasChildren": true }, { "path": "plugins.entries.irc.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/irc Config", "help": "Plugin-defined config payload for irc.", "hasChildren": false }, { "path": "plugins.entries.irc.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/irc", "hasChildren": false }, { "path": "plugins.entries.irc.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.irc.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.irc.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.irc.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.irc.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.irc.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.kilocode", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/kilocode-provider", "help": "OpenClaw Kilo Gateway provider plugin (plugin: kilocode)", "hasChildren": true }, { "path": "plugins.entries.kilocode.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/kilocode-provider Config", "help": "Plugin-defined config payload for kilocode.", "hasChildren": false }, { "path": "plugins.entries.kilocode.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/kilocode-provider", "hasChildren": false }, { "path": "plugins.entries.kilocode.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.kilocode.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.kilocode.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.kilocode.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.kilocode.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.kilocode.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.kimi", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/kimi-provider", "help": "OpenClaw Kimi provider plugin (plugin: kimi)", "hasChildren": true }, { "path": "plugins.entries.kimi.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/kimi-provider Config", "help": "Plugin-defined config payload for kimi.", "hasChildren": false }, { "path": "plugins.entries.kimi.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/kimi-provider", "hasChildren": false }, { "path": "plugins.entries.kimi.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.kimi.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.kimi.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.kimi.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.kimi.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.kimi.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.line", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/line", "help": "OpenClaw LINE channel plugin (plugin: line)", "hasChildren": true }, { "path": "plugins.entries.line.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/line Config", "help": "Plugin-defined config payload for line.", "hasChildren": false }, { "path": "plugins.entries.line.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/line", "hasChildren": false }, { "path": "plugins.entries.line.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.line.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.line.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.line.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.line.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.line.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.litellm", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/litellm-provider", "help": "OpenClaw LiteLLM provider plugin (plugin: litellm)", "hasChildren": true }, { "path": "plugins.entries.litellm.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/litellm-provider Config", "help": "Plugin-defined config payload for litellm.", "hasChildren": false }, { "path": "plugins.entries.litellm.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/litellm-provider", "hasChildren": false }, { "path": "plugins.entries.litellm.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.litellm.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.litellm.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.litellm.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.litellm.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.litellm.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.llm-task", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "LLM Task", "help": "Generic JSON-only LLM tool for structured tasks callable from workflows. (plugin: llm-task)", "hasChildren": true }, { "path": "plugins.entries.llm-task.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "LLM Task Config", "help": "Plugin-defined config payload for llm-task.", "hasChildren": true }, { "path": "plugins.entries.llm-task.config.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.llm-task.config.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.config.defaultAuthProfileId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.config.defaultModel", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.config.defaultProvider", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.config.maxTokens", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.config.timeoutMs", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable LLM Task", "hasChildren": false }, { "path": "plugins.entries.llm-task.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.llm-task.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.llm-task.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.llm-task.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.llm-task.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.llm-task.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.lobster", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Lobster", "help": "Typed workflow tool with resumable approvals. (plugin: lobster)", "hasChildren": true }, { "path": "plugins.entries.lobster.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Lobster Config", "help": "Plugin-defined config payload for lobster.", "hasChildren": false }, { "path": "plugins.entries.lobster.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Lobster", "hasChildren": false }, { "path": "plugins.entries.lobster.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.lobster.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.lobster.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.lobster.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.lobster.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.lobster.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.matrix", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/matrix", "help": "OpenClaw Matrix channel plugin (plugin: matrix)", "hasChildren": true }, { "path": "plugins.entries.matrix.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/matrix Config", "help": "Plugin-defined config payload for matrix.", "hasChildren": false }, { "path": "plugins.entries.matrix.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/matrix", "hasChildren": false }, { "path": "plugins.entries.matrix.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.matrix.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.matrix.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.matrix.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.matrix.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.matrix.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.mattermost", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/mattermost", "help": "OpenClaw Mattermost channel plugin (plugin: mattermost)", "hasChildren": true }, { "path": "plugins.entries.mattermost.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/mattermost Config", "help": "Plugin-defined config payload for mattermost.", "hasChildren": false }, { "path": "plugins.entries.mattermost.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/mattermost", "hasChildren": false }, { "path": "plugins.entries.mattermost.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.mattermost.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.mattermost.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.mattermost.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.mattermost.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.mattermost.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.memory-core", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/memory-core", "help": "OpenClaw core memory search plugin (plugin: memory-core)", "hasChildren": true }, { "path": "plugins.entries.memory-core.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/memory-core Config", "help": "Plugin-defined config payload for memory-core.", "hasChildren": false }, { "path": "plugins.entries.memory-core.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/memory-core", "hasChildren": false }, { "path": "plugins.entries.memory-core.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.memory-core.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.memory-core.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.memory-core.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.memory-core.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.memory-core.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "@openclaw/memory-lancedb", "help": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture (plugin: memory-lancedb)", "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "@openclaw/memory-lancedb Config", "help": "Plugin-defined config payload for memory-lancedb.", "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.config.autoCapture", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Auto-Capture", "help": "Automatically capture important information from conversations", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.autoRecall", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Auto-Recall", "help": "Automatically inject relevant memories into context", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.captureMaxChars", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "performance", "storage" ], "label": "Capture Max Chars", "help": "Maximum message length eligible for auto-capture", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.dbPath", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Database Path", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.embedding", "kind": "plugin", "type": "object", "required": true, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.config.embedding.apiKey", "kind": "plugin", "type": "string", "required": true, "deprecated": false, "sensitive": true, "tags": [ "auth", "security", "storage" ], "label": "OpenAI API Key", "help": "API key for OpenAI embeddings (or use ${OPENAI_API_KEY})", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.embedding.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage", "url-secret" ], "label": "Base URL", "help": "Base URL for compatible providers (e.g. http://localhost:11434/v1)", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.embedding.dimensions", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Dimensions", "help": "Vector dimensions for custom models (required for non-standard models)", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.config.embedding.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models", "storage" ], "label": "Embedding Model", "help": "OpenAI embedding model to use", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Enable @openclaw/memory-lancedb", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.memory-lancedb.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.memory-lancedb.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.microsoft", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/microsoft-speech", "help": "OpenClaw Microsoft speech plugin (plugin: microsoft)", "hasChildren": true }, { "path": "plugins.entries.microsoft-foundry", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/microsoft-foundry", "help": "OpenClaw Microsoft Foundry provider plugin (plugin: microsoft-foundry)", "hasChildren": true }, { "path": "plugins.entries.microsoft-foundry.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/microsoft-foundry Config", "help": "Plugin-defined config payload for microsoft-foundry.", "hasChildren": false }, { "path": "plugins.entries.microsoft-foundry.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/microsoft-foundry", "hasChildren": false }, { "path": "plugins.entries.microsoft-foundry.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.microsoft-foundry.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.microsoft-foundry.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.microsoft-foundry.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.microsoft-foundry.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.microsoft-foundry.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.microsoft.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/microsoft-speech Config", "help": "Plugin-defined config payload for microsoft.", "hasChildren": false }, { "path": "plugins.entries.microsoft.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/microsoft-speech", "hasChildren": false }, { "path": "plugins.entries.microsoft.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.microsoft.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.microsoft.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.microsoft.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.microsoft.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.microsoft.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.minimax", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "@openclaw/minimax-provider", "help": "OpenClaw MiniMax provider and OAuth plugin (plugin: minimax)", "hasChildren": true }, { "path": "plugins.entries.minimax.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "@openclaw/minimax-provider Config", "help": "Plugin-defined config payload for minimax.", "hasChildren": false }, { "path": "plugins.entries.minimax.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "Enable @openclaw/minimax-provider", "hasChildren": false }, { "path": "plugins.entries.minimax.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.minimax.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.minimax.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.minimax.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.minimax.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.minimax.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.mistral", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/mistral-provider", "help": "OpenClaw Mistral provider plugin (plugin: mistral)", "hasChildren": true }, { "path": "plugins.entries.mistral.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/mistral-provider Config", "help": "Plugin-defined config payload for mistral.", "hasChildren": false }, { "path": "plugins.entries.mistral.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/mistral-provider", "hasChildren": false }, { "path": "plugins.entries.mistral.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.mistral.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.mistral.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.mistral.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.mistral.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.mistral.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.modelstudio", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/modelstudio-provider", "help": "OpenClaw Model Studio provider plugin (plugin: modelstudio)", "hasChildren": true }, { "path": "plugins.entries.modelstudio.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/modelstudio-provider Config", "help": "Plugin-defined config payload for modelstudio.", "hasChildren": false }, { "path": "plugins.entries.modelstudio.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/modelstudio-provider", "hasChildren": false }, { "path": "plugins.entries.modelstudio.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.modelstudio.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.modelstudio.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.modelstudio.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.modelstudio.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.modelstudio.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.moonshot", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/moonshot-provider", "help": "OpenClaw Moonshot provider plugin (plugin: moonshot)", "hasChildren": true }, { "path": "plugins.entries.moonshot.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/moonshot-provider Config", "help": "Plugin-defined config payload for moonshot.", "hasChildren": true }, { "path": "plugins.entries.moonshot.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.moonshot.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Kimi Search API Key", "help": "Moonshot/Kimi API key (fallback: KIMI_API_KEY or MOONSHOT_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.moonshot.config.webSearch.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "Kimi Search Base URL", "help": "Kimi base URL override.", "hasChildren": false }, { "path": "plugins.entries.moonshot.config.webSearch.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "Kimi Search Model", "help": "Kimi model override.", "hasChildren": false }, { "path": "plugins.entries.moonshot.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/moonshot-provider", "hasChildren": false }, { "path": "plugins.entries.moonshot.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.moonshot.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.moonshot.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.moonshot.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.moonshot.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.moonshot.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.msteams", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/msteams", "help": "OpenClaw Microsoft Teams channel plugin (plugin: msteams)", "hasChildren": true }, { "path": "plugins.entries.msteams.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/msteams Config", "help": "Plugin-defined config payload for msteams.", "hasChildren": false }, { "path": "plugins.entries.msteams.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/msteams", "hasChildren": false }, { "path": "plugins.entries.msteams.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.msteams.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.msteams.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.msteams.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.msteams.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.msteams.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.nextcloud-talk", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nextcloud-talk", "help": "OpenClaw Nextcloud Talk channel plugin (plugin: nextcloud-talk)", "hasChildren": true }, { "path": "plugins.entries.nextcloud-talk.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nextcloud-talk Config", "help": "Plugin-defined config payload for nextcloud-talk.", "hasChildren": false }, { "path": "plugins.entries.nextcloud-talk.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/nextcloud-talk", "hasChildren": false }, { "path": "plugins.entries.nextcloud-talk.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.nextcloud-talk.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.nextcloud-talk.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.nextcloud-talk.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.nextcloud-talk.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.nextcloud-talk.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.nostr", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nostr", "help": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs (plugin: nostr)", "hasChildren": true }, { "path": "plugins.entries.nostr.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nostr Config", "help": "Plugin-defined config payload for nostr.", "hasChildren": false }, { "path": "plugins.entries.nostr.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/nostr", "hasChildren": false }, { "path": "plugins.entries.nostr.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.nostr.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.nostr.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.nostr.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.nostr.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.nostr.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.nvidia", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nvidia-provider", "help": "OpenClaw NVIDIA provider plugin (plugin: nvidia)", "hasChildren": true }, { "path": "plugins.entries.nvidia.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/nvidia-provider Config", "help": "Plugin-defined config payload for nvidia.", "hasChildren": false }, { "path": "plugins.entries.nvidia.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/nvidia-provider", "hasChildren": false }, { "path": "plugins.entries.nvidia.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.nvidia.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.nvidia.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.nvidia.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.nvidia.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.nvidia.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.ollama", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/ollama-provider", "help": "OpenClaw Ollama provider plugin (plugin: ollama)", "hasChildren": true }, { "path": "plugins.entries.ollama.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/ollama-provider Config", "help": "Plugin-defined config payload for ollama.", "hasChildren": false }, { "path": "plugins.entries.ollama.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/ollama-provider", "hasChildren": false }, { "path": "plugins.entries.ollama.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.ollama.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.ollama.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.ollama.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.ollama.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.ollama.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.open-prose", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "OpenProse", "help": "OpenProse VM skill pack with a /prose slash command. (plugin: open-prose)", "hasChildren": true }, { "path": "plugins.entries.open-prose.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "OpenProse Config", "help": "Plugin-defined config payload for open-prose.", "hasChildren": false }, { "path": "plugins.entries.open-prose.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable OpenProse", "hasChildren": false }, { "path": "plugins.entries.open-prose.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.open-prose.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.open-prose.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.open-prose.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.open-prose.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.open-prose.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.openai", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/openai-provider", "help": "OpenClaw OpenAI provider plugins (plugin: openai)", "hasChildren": true }, { "path": "plugins.entries.openai.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/openai-provider Config", "help": "Plugin-defined config payload for openai.", "hasChildren": false }, { "path": "plugins.entries.openai.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/openai-provider", "hasChildren": false }, { "path": "plugins.entries.openai.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.openai.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.openai.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.openai.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.openai.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.openai.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.opencode", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/opencode-provider", "help": "OpenClaw OpenCode Zen provider plugin (plugin: opencode)", "hasChildren": true }, { "path": "plugins.entries.opencode-go", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/opencode-go-provider", "help": "OpenClaw OpenCode Go provider plugin (plugin: opencode-go)", "hasChildren": true }, { "path": "plugins.entries.opencode-go.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/opencode-go-provider Config", "help": "Plugin-defined config payload for opencode-go.", "hasChildren": false }, { "path": "plugins.entries.opencode-go.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/opencode-go-provider", "hasChildren": false }, { "path": "plugins.entries.opencode-go.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.opencode-go.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.opencode-go.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.opencode-go.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.opencode-go.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.opencode-go.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.opencode.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/opencode-provider Config", "help": "Plugin-defined config payload for opencode.", "hasChildren": false }, { "path": "plugins.entries.opencode.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/opencode-provider", "hasChildren": false }, { "path": "plugins.entries.opencode.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.opencode.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.opencode.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.opencode.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.opencode.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.opencode.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.openrouter", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/openrouter-provider", "help": "OpenClaw OpenRouter provider plugin (plugin: openrouter)", "hasChildren": true }, { "path": "plugins.entries.openrouter.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/openrouter-provider Config", "help": "Plugin-defined config payload for openrouter.", "hasChildren": false }, { "path": "plugins.entries.openrouter.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/openrouter-provider", "hasChildren": false }, { "path": "plugins.entries.openrouter.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.openrouter.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.openrouter.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.openrouter.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.openrouter.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.openrouter.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.openshell", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "OpenShell Sandbox", "help": "Sandbox backend powered by OpenShell with mirrored local workspaces and SSH-based command execution. (plugin: openshell)", "hasChildren": true }, { "path": "plugins.entries.openshell.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "OpenShell Sandbox Config", "help": "Plugin-defined config payload for openshell.", "hasChildren": true }, { "path": "plugins.entries.openshell.config.autoProviders", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Auto-create Providers", "help": "When enabled, pass --auto-providers during sandbox create.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.command", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "OpenShell Command", "help": "Path or command name for the openshell CLI.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.from", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Sandbox Source", "help": "OpenShell sandbox source for first-time create. Defaults to openclaw.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.gateway", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Gateway Name", "help": "Optional OpenShell gateway name passed as --gateway.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.gatewayEndpoint", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Gateway Endpoint", "help": "Optional OpenShell gateway endpoint passed as --gateway-endpoint.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.gpu", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "GPU", "help": "Request GPU resources when creating the sandbox.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.mode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "mirror", "remote" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Mode", "help": "Sandbox mode. Use mirror for the default local-workspace flow or remote for a fully remote workspace.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.policy", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Policy File", "help": "Optional path to a custom OpenShell sandbox policy YAML.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.providers", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Providers", "help": "Provider names to attach when a sandbox is created.", "hasChildren": true }, { "path": "plugins.entries.openshell.config.providers.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.openshell.config.remoteAgentWorkspaceDir", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Remote Agent Dir", "help": "Mirror path for the real agent workspace when workspaceAccess is read-only.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.remoteWorkspaceDir", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Remote Workspace Dir", "help": "Primary writable workspace inside the OpenShell sandbox.", "hasChildren": false }, { "path": "plugins.entries.openshell.config.timeoutSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "performance" ], "label": "Command Timeout Seconds", "help": "Timeout for openshell CLI operations such as create/upload/download.", "hasChildren": false }, { "path": "plugins.entries.openshell.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable OpenShell Sandbox", "hasChildren": false }, { "path": "plugins.entries.openshell.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.openshell.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.openshell.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.openshell.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.openshell.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.openshell.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.perplexity", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/perplexity-plugin", "help": "OpenClaw Perplexity plugin (plugin: perplexity)", "hasChildren": true }, { "path": "plugins.entries.perplexity.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/perplexity-plugin Config", "help": "Plugin-defined config payload for perplexity.", "hasChildren": true }, { "path": "plugins.entries.perplexity.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.perplexity.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Perplexity API Key", "help": "Perplexity or OpenRouter API key for web search.", "hasChildren": false }, { "path": "plugins.entries.perplexity.config.webSearch.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "Perplexity Base URL", "help": "Optional Perplexity/OpenRouter chat-completions base URL override.", "hasChildren": false }, { "path": "plugins.entries.perplexity.config.webSearch.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "Perplexity Model", "help": "Optional Sonar/OpenRouter model override.", "hasChildren": false }, { "path": "plugins.entries.perplexity.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/perplexity-plugin", "hasChildren": false }, { "path": "plugins.entries.perplexity.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.perplexity.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.perplexity.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.perplexity.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.perplexity.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.perplexity.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.phone-control", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Phone Control", "help": "Arm/disarm high-risk phone node commands (camera/screen/writes) with an optional auto-expiry. (plugin: phone-control)", "hasChildren": true }, { "path": "plugins.entries.phone-control.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Phone Control Config", "help": "Plugin-defined config payload for phone-control.", "hasChildren": false }, { "path": "plugins.entries.phone-control.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Phone Control", "hasChildren": false }, { "path": "plugins.entries.phone-control.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.phone-control.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.phone-control.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.phone-control.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.phone-control.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.phone-control.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.qianfan", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/qianfan-provider", "help": "OpenClaw Qianfan provider plugin (plugin: qianfan)", "hasChildren": true }, { "path": "plugins.entries.qianfan.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/qianfan-provider Config", "help": "Plugin-defined config payload for qianfan.", "hasChildren": false }, { "path": "plugins.entries.qianfan.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/qianfan-provider", "hasChildren": false }, { "path": "plugins.entries.qianfan.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.qianfan.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.qianfan.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.qianfan.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.qianfan.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qianfan.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.qqbot", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/qqbot", "help": "OpenClaw QQ Bot channel plugin (plugin: qqbot)", "hasChildren": true }, { "path": "plugins.entries.qqbot.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/qqbot Config", "help": "Plugin-defined config payload for qqbot.", "hasChildren": true }, { "path": "plugins.entries.qqbot.config.accounts", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.qqbot.config.accounts.*", "kind": "plugin", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.allowFrom", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.qqbot.config.allowFrom.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.appId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.audioFormatPolicy", "kind": "plugin", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.clientSecret", "kind": "plugin", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.clientSecretFile", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security", "storage" ], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.defaultAccount", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.markdownSupport", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.name", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.stt", "kind": "plugin", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.systemPrompt", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.tts", "kind": "plugin", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.upgradeMode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "doc", "hot-reload" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.upgradeUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.urlDirectUpload", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.config.voiceDirectUploadFormats", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.qqbot.config.voiceDirectUploadFormats.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/qqbot", "hasChildren": false }, { "path": "plugins.entries.qqbot.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.qqbot.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.qqbot.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.qqbot.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.qqbot.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.qqbot.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.searxng", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/searxng-plugin", "help": "OpenClaw SearXNG plugin (plugin: searxng)", "hasChildren": true }, { "path": "plugins.entries.searxng.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/searxng-plugin Config", "help": "Plugin-defined config payload for searxng.", "hasChildren": true }, { "path": "plugins.entries.searxng.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.searxng.config.webSearch.baseUrl", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "SearXNG Base URL", "help": "Base URL of your SearXNG instance, such as http://localhost:8080 or https://search.example.com/searxng.", "hasChildren": false }, { "path": "plugins.entries.searxng.config.webSearch.categories", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "SearXNG Categories", "help": "Optional comma-separated categories such as general, news, or science.", "hasChildren": false }, { "path": "plugins.entries.searxng.config.webSearch.language", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "SearXNG Language", "help": "Optional language code for results such as en, de, or fr.", "hasChildren": false }, { "path": "plugins.entries.searxng.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/searxng-plugin", "hasChildren": false }, { "path": "plugins.entries.searxng.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.searxng.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.searxng.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.searxng.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.searxng.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.searxng.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.sglang", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/sglang-provider", "help": "OpenClaw SGLang provider plugin (plugin: sglang)", "hasChildren": true }, { "path": "plugins.entries.sglang.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/sglang-provider Config", "help": "Plugin-defined config payload for sglang.", "hasChildren": false }, { "path": "plugins.entries.sglang.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/sglang-provider", "hasChildren": false }, { "path": "plugins.entries.sglang.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.sglang.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.sglang.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.sglang.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.sglang.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.sglang.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.signal", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/signal", "help": "OpenClaw Signal channel plugin (plugin: signal)", "hasChildren": true }, { "path": "plugins.entries.signal.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/signal Config", "help": "Plugin-defined config payload for signal.", "hasChildren": false }, { "path": "plugins.entries.signal.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/signal", "hasChildren": false }, { "path": "plugins.entries.signal.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.signal.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.signal.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.signal.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.signal.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.signal.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.slack", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/slack", "help": "OpenClaw Slack channel plugin (plugin: slack)", "hasChildren": true }, { "path": "plugins.entries.slack.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/slack Config", "help": "Plugin-defined config payload for slack.", "hasChildren": false }, { "path": "plugins.entries.slack.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/slack", "hasChildren": false }, { "path": "plugins.entries.slack.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.slack.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.slack.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.slack.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.slack.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.slack.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.stepfun", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/stepfun-provider", "help": "OpenClaw StepFun provider plugin (plugin: stepfun)", "hasChildren": true }, { "path": "plugins.entries.stepfun.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/stepfun-provider Config", "help": "Plugin-defined config payload for stepfun.", "hasChildren": false }, { "path": "plugins.entries.stepfun.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/stepfun-provider", "hasChildren": false }, { "path": "plugins.entries.stepfun.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.stepfun.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.stepfun.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.stepfun.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.stepfun.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.stepfun.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.synology-chat", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/synology-chat", "help": "Synology Chat channel plugin for OpenClaw (plugin: synology-chat)", "hasChildren": true }, { "path": "plugins.entries.synology-chat.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/synology-chat Config", "help": "Plugin-defined config payload for synology-chat.", "hasChildren": false }, { "path": "plugins.entries.synology-chat.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/synology-chat", "hasChildren": false }, { "path": "plugins.entries.synology-chat.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.synology-chat.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.synology-chat.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.synology-chat.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.synology-chat.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.synology-chat.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.synthetic", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/synthetic-provider", "help": "OpenClaw Synthetic provider plugin (plugin: synthetic)", "hasChildren": true }, { "path": "plugins.entries.synthetic.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/synthetic-provider Config", "help": "Plugin-defined config payload for synthetic.", "hasChildren": false }, { "path": "plugins.entries.synthetic.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/synthetic-provider", "hasChildren": false }, { "path": "plugins.entries.synthetic.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.synthetic.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.synthetic.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.synthetic.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.synthetic.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.synthetic.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.talk-voice", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Talk Voice", "help": "Manage Talk voice selection (list/set). (plugin: talk-voice)", "hasChildren": true }, { "path": "plugins.entries.talk-voice.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Talk Voice Config", "help": "Plugin-defined config payload for talk-voice.", "hasChildren": false }, { "path": "plugins.entries.talk-voice.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Talk Voice", "hasChildren": false }, { "path": "plugins.entries.talk-voice.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.talk-voice.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.talk-voice.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.talk-voice.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.talk-voice.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.talk-voice.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.tavily", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/tavily-plugin", "help": "OpenClaw Tavily plugin (plugin: tavily)", "hasChildren": true }, { "path": "plugins.entries.tavily.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/tavily-plugin Config", "help": "Plugin-defined config payload for tavily.", "hasChildren": true }, { "path": "plugins.entries.tavily.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.tavily.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Tavily API Key", "help": "Tavily API key for web search and extraction (fallback: TAVILY_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.tavily.config.webSearch.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "url-secret" ], "label": "Tavily Base URL", "help": "Tavily API base URL override.", "hasChildren": false }, { "path": "plugins.entries.tavily.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/tavily-plugin", "hasChildren": false }, { "path": "plugins.entries.tavily.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.tavily.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.tavily.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.tavily.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.tavily.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.tavily.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.telegram", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/telegram", "help": "OpenClaw Telegram channel plugin (plugin: telegram)", "hasChildren": true }, { "path": "plugins.entries.telegram.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/telegram Config", "help": "Plugin-defined config payload for telegram.", "hasChildren": false }, { "path": "plugins.entries.telegram.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/telegram", "hasChildren": false }, { "path": "plugins.entries.telegram.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.telegram.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.telegram.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.telegram.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.telegram.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.telegram.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.thread-ownership", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Thread Ownership", "help": "Prevents multiple agents from responding in the same Slack thread. Uses HTTP calls to the slack-forwarder ownership API. (plugin: thread-ownership)", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Thread Ownership Config", "help": "Plugin-defined config payload for thread-ownership.", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.config.abTestChannels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "A/B Test Channels", "help": "Slack channel IDs where thread ownership is enforced", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.config.abTestChannels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.thread-ownership.config.forwarderUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Forwarder URL", "help": "Base URL of the slack-forwarder ownership API (default: http://slack-forwarder:8750)", "hasChildren": false }, { "path": "plugins.entries.thread-ownership.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Enable Thread Ownership", "hasChildren": false }, { "path": "plugins.entries.thread-ownership.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.thread-ownership.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.thread-ownership.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.thread-ownership.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.tlon", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/tlon", "help": "OpenClaw Tlon/Urbit channel plugin (plugin: tlon)", "hasChildren": true }, { "path": "plugins.entries.tlon.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/tlon Config", "help": "Plugin-defined config payload for tlon.", "hasChildren": false }, { "path": "plugins.entries.tlon.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/tlon", "hasChildren": false }, { "path": "plugins.entries.tlon.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.tlon.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.tlon.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.tlon.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.tlon.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.tlon.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.together", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/together-provider", "help": "OpenClaw Together provider plugin (plugin: together)", "hasChildren": true }, { "path": "plugins.entries.together.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/together-provider Config", "help": "Plugin-defined config payload for together.", "hasChildren": false }, { "path": "plugins.entries.together.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/together-provider", "hasChildren": false }, { "path": "plugins.entries.together.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.together.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.together.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.together.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.together.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.together.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.twitch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/twitch", "help": "OpenClaw Twitch channel plugin (plugin: twitch)", "hasChildren": true }, { "path": "plugins.entries.twitch.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/twitch Config", "help": "Plugin-defined config payload for twitch.", "hasChildren": false }, { "path": "plugins.entries.twitch.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/twitch", "hasChildren": false }, { "path": "plugins.entries.twitch.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.twitch.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.twitch.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.twitch.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.twitch.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.twitch.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.venice", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/venice-provider", "help": "OpenClaw Venice provider plugin (plugin: venice)", "hasChildren": true }, { "path": "plugins.entries.venice.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/venice-provider Config", "help": "Plugin-defined config payload for venice.", "hasChildren": false }, { "path": "plugins.entries.venice.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/venice-provider", "hasChildren": false }, { "path": "plugins.entries.venice.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.venice.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.venice.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.venice.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.venice.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.venice.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.vercel-ai-gateway", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/vercel-ai-gateway-provider", "help": "OpenClaw Vercel AI Gateway provider plugin (plugin: vercel-ai-gateway)", "hasChildren": true }, { "path": "plugins.entries.vercel-ai-gateway.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/vercel-ai-gateway-provider Config", "help": "Plugin-defined config payload for vercel-ai-gateway.", "hasChildren": false }, { "path": "plugins.entries.vercel-ai-gateway.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/vercel-ai-gateway-provider", "hasChildren": false }, { "path": "plugins.entries.vercel-ai-gateway.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.vercel-ai-gateway.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.vercel-ai-gateway.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.vercel-ai-gateway.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.vercel-ai-gateway.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.vercel-ai-gateway.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.vllm", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/vllm-provider", "help": "OpenClaw vLLM provider plugin (plugin: vllm)", "hasChildren": true }, { "path": "plugins.entries.vllm.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/vllm-provider Config", "help": "Plugin-defined config payload for vllm.", "hasChildren": false }, { "path": "plugins.entries.vllm.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/vllm-provider", "hasChildren": false }, { "path": "plugins.entries.vllm.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.vllm.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.vllm.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.vllm.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.vllm.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.vllm.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.voice-call", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/voice-call", "help": "OpenClaw voice-call plugin (plugin: voice-call)", "hasChildren": true }, { "path": "plugins.entries.voice-call.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/voice-call Config", "help": "Plugin-defined config payload for voice-call.", "hasChildren": true }, { "path": "plugins.entries.voice-call.config.allowFrom", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Inbound Allowlist", "hasChildren": true }, { "path": "plugins.entries.voice-call.config.allowFrom.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.fromNumber", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "From Number", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.inboundGreeting", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Inbound Greeting", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.inboundPolicy", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "disabled", "allowlist", "pairing", "open" ], "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Inbound Policy", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.maxConcurrentCalls", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.maxDurationSeconds", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.outbound", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.outbound.defaultMode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "notify", "conversation" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default Call Mode", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.outbound.notifyHangupDelaySec", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Notify Hangup Delay (sec)", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.plivo", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.plivo.authId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.plivo.authToken", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.provider", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "telnyx", "twilio", "plivo", "mock" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Provider", "help": "Use twilio, telnyx, or mock for dev/no-network.", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.publicUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Public Webhook URL", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.responseModel", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Response Model", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.responseSystemPrompt", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Response System Prompt", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.responseTimeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "performance" ], "label": "Response Timeout (ms)", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.ringTimeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.serve", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.serve.bind", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Webhook Bind", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.serve.path", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "storage" ], "label": "Webhook Path", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.serve.port", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Webhook Port", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.silenceTimeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.skipSignatureVerification", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Skip Signature Verification", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.staleCallReaperSeconds", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.store", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Call Log Store Path", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.streaming.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Streaming", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.maxConnections", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.maxPendingConnections", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.maxPendingConnectionsPerIp", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.openaiApiKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "advanced", "auth", "security" ], "label": "OpenAI Realtime API Key", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.preStartTimeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.silenceDurationMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.streamPath", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Media Stream Path", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.sttModel", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media" ], "label": "Realtime STT Model", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.sttProvider", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "openai-realtime" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.streaming.vadThreshold", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.stt", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.stt.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.stt.provider", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "openai" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tailscale", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tailscale.mode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "off", "serve", "funnel" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Tailscale Mode", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tailscale.path", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "storage" ], "label": "Tailscale Path", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.telnyx", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.telnyx.apiKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Telnyx API Key", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.telnyx.connectionId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Telnyx Connection ID", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.telnyx.publicKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "security" ], "label": "Telnyx Public Key", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.toNumber", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Default To Number", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.transcriptTimeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.auto", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "off", "always", "inbound", "tagged" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.maxTextLength", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.mode", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "final", "all" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowModelId", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowNormalization", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowProvider", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowSeed", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowText", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowVoice", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.allowVoiceSettings", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.modelOverrides.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.prefsPath", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.provider", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media" ], "label": "TTS Provider Override", "help": "Deep-merges with messages.tts (Microsoft is ignored for calls).", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.*", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.*.apiKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "media", "security" ], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.lang", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.outputFormat", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.pitch", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.proxy", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.rate", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.saveSubtitles", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.timeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.voice", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.edge.volume", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.apiKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "advanced", "auth", "media", "security" ], "label": "ElevenLabs API Key", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.applyTextNormalization", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "auto", "on", "off" ], "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media", "url-secret" ], "label": "ElevenLabs Base URL", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.languageCode", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.modelId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media", "models" ], "label": "ElevenLabs Model ID", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.seed", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceId", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media" ], "label": "ElevenLabs Voice ID", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings.similarityBoost", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings.speed", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings.stability", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings.style", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.elevenlabs.voiceSettings.useSpeakerBoost", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.lang", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.outputFormat", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.pitch", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.proxy", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.rate", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.saveSubtitles", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.timeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.voice", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.microsoft.volume", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.apiKey", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "advanced", "auth", "media", "security" ], "label": "OpenAI API Key", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.baseUrl", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "media", "url-secret" ], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.instructions", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media", "models" ], "label": "OpenAI TTS Model", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.speed", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.providers.openai.voice", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced", "media" ], "label": "OpenAI TTS Voice", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.summaryModel", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tts.timeoutMs", "kind": "plugin", "type": "integer", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tunnel", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.tunnel.allowNgrokFreeTierLoopbackBypass", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access", "advanced" ], "label": "Allow ngrok Free Tier (Loopback Bypass)", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tunnel.ngrokAuthToken", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "advanced", "auth", "security" ], "label": "ngrok Auth Token", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tunnel.ngrokDomain", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "ngrok Domain", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.tunnel.provider", "kind": "plugin", "type": "string", "required": false, "enumValues": [ "none", "ngrok", "tailscale-serve", "tailscale-funnel" ], "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Tunnel Provider", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.twilio", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.twilio.accountSid", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Twilio Account SID", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.twilio.authToken", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Twilio Auth Token", "hasChildren": false }, { "path": "plugins.entries.voice-call.config.webhookSecurity", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.webhookSecurity.allowedHosts", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.webhookSecurity.allowedHosts.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.webhookSecurity.trustedProxyIPs", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.voice-call.config.webhookSecurity.trustedProxyIPs.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.config.webhookSecurity.trustForwardingHeaders", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/voice-call", "hasChildren": false }, { "path": "plugins.entries.voice-call.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.voice-call.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.voice-call.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.voice-call.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.voice-call.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.voice-call.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.volcengine", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/volcengine-provider", "help": "OpenClaw Volcengine provider plugin (plugin: volcengine)", "hasChildren": true }, { "path": "plugins.entries.volcengine.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/volcengine-provider Config", "help": "Plugin-defined config payload for volcengine.", "hasChildren": false }, { "path": "plugins.entries.volcengine.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/volcengine-provider", "hasChildren": false }, { "path": "plugins.entries.volcengine.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.volcengine.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.volcengine.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.volcengine.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.volcengine.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.volcengine.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.whatsapp", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/whatsapp", "help": "OpenClaw WhatsApp channel plugin (plugin: whatsapp)", "hasChildren": true }, { "path": "plugins.entries.whatsapp.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/whatsapp Config", "help": "Plugin-defined config payload for whatsapp.", "hasChildren": false }, { "path": "plugins.entries.whatsapp.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/whatsapp", "hasChildren": false }, { "path": "plugins.entries.whatsapp.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.whatsapp.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.whatsapp.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.whatsapp.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.whatsapp.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.whatsapp.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.xai", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/xai-plugin", "help": "OpenClaw xAI plugin (plugin: xai)", "hasChildren": true }, { "path": "plugins.entries.xai.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/xai-plugin Config", "help": "Plugin-defined config payload for xai.", "hasChildren": true }, { "path": "plugins.entries.xai.config.codeExecution", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.xai.config.codeExecution.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable Code Execution", "help": "Enable the code_execution tool for remote xAI sandbox analysis.", "hasChildren": false }, { "path": "plugins.entries.xai.config.codeExecution.maxTurns", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "Code Execution Max Turns", "help": "Optional max internal tool turns xAI may use for code_execution.", "hasChildren": false }, { "path": "plugins.entries.xai.config.codeExecution.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "Code Execution Model", "help": "xAI model override for code_execution.", "hasChildren": false }, { "path": "plugins.entries.xai.config.codeExecution.timeoutSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "Code Execution Timeout", "help": "Timeout in seconds for code_execution requests.", "hasChildren": false }, { "path": "plugins.entries.xai.config.webSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.xai.config.webSearch.apiKey", "kind": "plugin", "type": [ "object", "string" ], "required": false, "deprecated": false, "sensitive": true, "tags": [ "auth", "security" ], "label": "Grok Search API Key", "help": "xAI API key for Grok web search (fallback: XAI_API_KEY env var).", "hasChildren": false }, { "path": "plugins.entries.xai.config.webSearch.inlineCitations", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Inline Citations", "help": "Include inline markdown citations in Grok responses.", "hasChildren": false }, { "path": "plugins.entries.xai.config.webSearch.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "Grok Search Model", "help": "Grok model override for web search.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": true }, { "path": "plugins.entries.xai.config.xSearch.cacheTtlMinutes", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance", "storage" ], "label": "X Search Cache TTL", "help": "Cache TTL in minutes for x_search results.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable X Search", "help": "Enable the x_search tool for searching X posts with xAI.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch.inlineCitations", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "X Search Inline Citations", "help": "Keep inline markdown citations from xAI in x_search responses when available.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch.maxTurns", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "X Search Max Turns", "help": "Optional max internal tool turns xAI may use per x_search request.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch.model", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [ "models" ], "label": "X Search Model", "help": "xAI model override for x_search.", "hasChildren": false }, { "path": "plugins.entries.xai.config.xSearch.timeoutSeconds", "kind": "plugin", "type": "number", "required": false, "deprecated": false, "sensitive": false, "tags": [ "performance" ], "label": "X Search Timeout", "help": "Timeout in seconds for x_search requests.", "hasChildren": false }, { "path": "plugins.entries.xai.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/xai-plugin", "hasChildren": false }, { "path": "plugins.entries.xai.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.xai.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.xai.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.xai.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.xai.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.xai.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.xiaomi", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/xiaomi-provider", "help": "OpenClaw Xiaomi provider plugin (plugin: xiaomi)", "hasChildren": true }, { "path": "plugins.entries.xiaomi.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/xiaomi-provider Config", "help": "Plugin-defined config payload for xiaomi.", "hasChildren": false }, { "path": "plugins.entries.xiaomi.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/xiaomi-provider", "hasChildren": false }, { "path": "plugins.entries.xiaomi.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.xiaomi.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.xiaomi.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.xiaomi.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.xiaomi.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.xiaomi.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.zai", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zai-provider", "help": "OpenClaw Z.AI provider plugin (plugin: zai)", "hasChildren": true }, { "path": "plugins.entries.zai.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zai-provider Config", "help": "Plugin-defined config payload for zai.", "hasChildren": false }, { "path": "plugins.entries.zai.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/zai-provider", "hasChildren": false }, { "path": "plugins.entries.zai.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.zai.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.zai.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.zai.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.zai.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.zai.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.zalo", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zalo", "help": "OpenClaw Zalo channel plugin (plugin: zalo)", "hasChildren": true }, { "path": "plugins.entries.zalo.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zalo Config", "help": "Plugin-defined config payload for zalo.", "hasChildren": false }, { "path": "plugins.entries.zalo.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/zalo", "hasChildren": false }, { "path": "plugins.entries.zalo.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.zalo.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.zalo.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.zalo.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.zalo.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.zalo.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false }, { "path": "plugins.entries.zalouser", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zalouser", "help": "OpenClaw Zalo Personal Account plugin via native zca-js integration (plugin: zalouser)", "hasChildren": true }, { "path": "plugins.entries.zalouser.config", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "@openclaw/zalouser Config", "help": "Plugin-defined config payload for zalouser.", "hasChildren": false }, { "path": "plugins.entries.zalouser.enabled", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Enable @openclaw/zalouser", "hasChildren": false }, { "path": "plugins.entries.zalouser.hooks", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Hook Policy", "help": "Per-plugin typed hook policy controls for core-enforced safety gates. Use this to constrain high-impact hook categories without disabling the entire plugin.", "hasChildren": true }, { "path": "plugins.entries.zalouser.hooks.allowPromptInjection", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Prompt Injection Hooks", "help": "Controls whether this plugin may mutate prompts through typed hooks. Set false to block `before_prompt_build` and ignore prompt-mutating fields from legacy `before_agent_start`, while preserving legacy `modelOverride` and `providerOverride` behavior.", "hasChildren": false }, { "path": "plugins.entries.zalouser.subagent", "kind": "plugin", "type": "object", "required": false, "deprecated": false, "sensitive": false, "tags": [ "advanced" ], "label": "Plugin Subagent Policy", "help": "Per-plugin subagent runtime controls for model override trust and allowlists. Keep this unset unless a plugin must explicitly steer subagent model selection.", "hasChildren": true }, { "path": "plugins.entries.zalouser.subagent.allowedModels", "kind": "plugin", "type": "array", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Plugin Subagent Allowed Models", "help": "Allowed override targets for trusted plugin subagent runs as canonical \"provider/model\" refs. Use \"*\" only when you intentionally allow any model.", "hasChildren": true }, { "path": "plugins.entries.zalouser.subagent.allowedModels.*", "kind": "plugin", "type": "string", "required": false, "deprecated": false, "sensitive": false, "tags": [], "hasChildren": false }, { "path": "plugins.entries.zalouser.subagent.allowModelOverride", "kind": "plugin", "type": "boolean", "required": false, "deprecated": false, "sensitive": false, "tags": [ "access" ], "label": "Allow Plugin Subagent Model Override", "help": "Explicitly allows this plugin to request provider/model overrides in background subagent runs. Keep false unless the plugin is trusted to steer model selection.", "hasChildren": false } ] }