fix: enforce plugin tool manifest contracts

This commit is contained in:
Shakker
2026-05-01 22:23:10 +01:00
parent 7028f1b485
commit 7641783d6b
26 changed files with 585 additions and 51 deletions

View File

@@ -5,6 +5,9 @@
"onStartup": true,
"onConfigPaths": ["browser"]
},
"contracts": {
"tools": ["browser"]
},
"commandAliases": [{ "name": "browser" }],
"skills": ["./skills"],
"configSchema": {

View File

@@ -5,6 +5,9 @@
},
"name": "Diffs",
"description": "Read-only diff viewer and file renderer for agents.",
"contracts": {
"tools": ["diffs"]
},
"skills": ["./skills"],
"uiHints": {
"viewerBaseUrl": {

View File

@@ -4,6 +4,24 @@
"onStartup": false
},
"channels": ["feishu"],
"contracts": {
"tools": [
"feishu_app_scopes",
"feishu_bitable_create_app",
"feishu_bitable_create_field",
"feishu_bitable_create_record",
"feishu_bitable_get_meta",
"feishu_bitable_get_record",
"feishu_bitable_list_fields",
"feishu_bitable_list_records",
"feishu_bitable_update_record",
"feishu_chat",
"feishu_doc",
"feishu_drive",
"feishu_perm",
"feishu_wiki"
]
},
"channelEnvVars": {
"feishu": [
"FEISHU_APP_ID",

View File

@@ -9,6 +9,9 @@
"onCommands": ["googlemeet"],
"onCapabilities": ["tool"]
},
"contracts": {
"tools": ["google_meet"]
},
"uiHints": {
"defaults.meeting": {
"label": "Default Meeting",

View File

@@ -5,6 +5,9 @@
},
"name": "LLM Task",
"description": "Generic JSON-only LLM tool for structured tasks callable from workflows.",
"contracts": {
"tools": ["llm-task"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -5,6 +5,9 @@
},
"name": "Lobster",
"description": "Typed workflow tool with resumable approvals.",
"contracts": {
"tools": ["lobster"]
},
"configSchema": {
"type": "object",
"additionalProperties": false,

View File

@@ -5,7 +5,8 @@
},
"kind": "memory",
"contracts": {
"memoryEmbeddingProviders": ["local"]
"memoryEmbeddingProviders": ["local"],
"tools": ["memory_get", "memory_search"]
},
"commandAliases": [
{

View File

@@ -4,6 +4,9 @@
"onStartup": false
},
"kind": "memory",
"contracts": {
"tools": ["memory_forget", "memory_recall", "memory_store"]
},
"uiHints": {
"embedding.apiKey": {
"label": "Embedding API Key",

View File

@@ -5,6 +5,9 @@
},
"name": "Memory Wiki",
"description": "Persistent wiki compiler and Obsidian-friendly knowledge vault for OpenClaw.",
"contracts": {
"tools": ["wiki_apply", "wiki_get", "wiki_lint", "wiki_search", "wiki_status"]
},
"skills": ["./skills"],
"uiHints": {
"vaultMode": {

View File

@@ -4,6 +4,9 @@
"onStartup": false
},
"channels": ["qqbot"],
"contracts": {
"tools": ["qqbot_channel_api", "qqbot_remind"]
},
"channelEnvVars": {
"qqbot": ["QQBOT_APP_ID", "QQBOT_CLIENT_SECRET"]
},

View File

@@ -4,6 +4,9 @@
"onStartup": false
},
"channels": ["tlon"],
"contracts": {
"tools": ["tlon"]
},
"skills": ["node_modules/@tloncorp/tlon-skill"],
"configSchema": {
"type": "object",

View File

@@ -5,6 +5,9 @@
"onStartup": true,
"onCommands": ["voicecall"]
},
"contracts": {
"tools": ["voice_call"]
},
"channelEnvVars": {
"voice-call": [
"TELNYX_API_KEY",

View File

@@ -4,6 +4,9 @@
"onStartup": false
},
"channels": ["zalouser"],
"contracts": {
"tools": ["zalouser"]
},
"channelEnvVars": {
"zalouser": ["ZALOUSER_PROFILE", "ZCA_PROFILE"]
},