fix(openclaw): emit empty configSchema in plugin manifests
OpenClaw rejects generated plugin manifests that omit configSchema, even for tool plugins with no user configuration. Always emit an empty object schema so converted installs boot cleanly.\n\nAdd converter and writer regression coverage for the manifest shape.\n\nFixes #224
This commit is contained in:
@@ -64,6 +64,10 @@ function buildManifest(plugin: ClaudePlugin, skillDirs: string[]): OpenClawPlugi
|
||||
id: plugin.manifest.name,
|
||||
name: formatDisplayName(plugin.manifest.name),
|
||||
kind: "tool",
|
||||
configSchema: {
|
||||
type: "object",
|
||||
properties: {},
|
||||
},
|
||||
skills: skillDirs.map((dir) => `skills/${dir}`),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,18 @@ export type OpenClawPluginManifest = {
|
||||
id: string
|
||||
name: string
|
||||
kind: "tool"
|
||||
configSchema?: {
|
||||
type: "object"
|
||||
additionalProperties: boolean
|
||||
properties: Record<string, OpenClawConfigProperty>
|
||||
required?: string[]
|
||||
}
|
||||
configSchema: OpenClawConfigSchema
|
||||
uiHints?: Record<string, OpenClawUiHint>
|
||||
skills?: string[]
|
||||
}
|
||||
|
||||
export type OpenClawConfigSchema = {
|
||||
type: "object"
|
||||
properties: Record<string, OpenClawConfigProperty>
|
||||
additionalProperties?: boolean
|
||||
required?: string[]
|
||||
}
|
||||
|
||||
export type OpenClawConfigProperty = {
|
||||
type: string
|
||||
description?: string
|
||||
|
||||
Reference in New Issue
Block a user