| import type { PluginBundleFormat } from "./manifest-types.js"; | |
| export function isBundleCapabilitySupported( | |
| format: PluginBundleFormat, | |
| capability: string, | |
| ): boolean { | |
| if (capability === "skills" || capability === "mcpServers" || capability === "settings") { | |
| return true; | |
| } | |
| if ( | |
| (capability === "commands" || capability === "outputStyles" || capability === "lspServers") && | |
| (format === "claude" || format === "cursor") | |
| ) { | |
| return true; | |
| } | |
| // Only the Claude reader merges agent directories into the runtime skill roots | |
| // during manifest loading; Cursor detects `.cursor/agents` but never loads it. | |
| if (capability === "agents") { | |
| return format === "claude"; | |
| } | |
| return capability === "hooks" && (format === "codex" || format === "claude"); | |
| } | |