openclaw/extensions/a2a/openclaw.plugin.json
Peter Steinberger 7a6a7945ce
fix(channels): single-source bundled channel schemas from generated metadata (#131564)
* fix(channels): single-source bundled channel schemas from generated metadata

Hand-maintained channelConfigs schema copies in a2a, buzz, clickclack,
raft, and slack silently overrode the zod-derived generated bundled
channel metadata in config validation: stale buzz/raft copies rejected
the valid configWrites key, and the slack/clickclack additionalProperties
stubs disabled validation for those channels entirely. Delete the copies
so the CI-checked generated metadata is the single channel-schema source,
stub feishu's retired rich plugin-entry schema like every sibling, and
guard the pattern with a contract test.

The retired rich plugin-entry schemas let config UIs park channel
settings under plugins.entries.<id>.config unread; the reef doctor
migration from #131292 generalizes into the plugin SDK
(defineStrayPluginEntryConfigMigration) and feishu adopts it alongside
reef.

* fix(tests): fold channel schema-source guard into existing shard root

A new test root pushed the plugins-platform tsgo shard past its 720-root
cap; the guard lives in bundled-package-channel-metadata.test.ts instead.

* test(channels): update catalog and parity tests to single-source schemas

The official catalog regenerates without the deleted manifest schema
copies; the a2a and buzz parity tests drop their cold-manifest/catalog
surfaces (the runtime zod projection is what the generator publishes).

* test(plugins): lagging slack hydration carries no catalog schema copy

The full-suite manifest-registry test still pinned the catalog's retired
slack schema fallback; hydration now yields label/description and channel
validation falls back to the generated bundled metadata.
2026-08-28 00:29:44 -07:00

22 lines
430 B
JSON

{
"id": "a2a",
"name": "A2A",
"description": "A2A v1.0 Agent-to-Agent protocol channel plugin.",
"activation": {
"onStartup": false
},
"channels": [
"a2a"
],
"channelConfigs": {
"a2a": {
"label": "A2A",
"description": "A2A peer authentication, discovery, and task delivery."
}
},
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}