1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Plugin system with namespace-based resource management.
//!
//! Plugins are directories with a `.claude-plugin/plugin.json` manifest,
//! containing any combination of:
//! - `skills/` — Skill definitions (loaded via `SkillIndexLoader`)
//! - `commands/` — Legacy skill markdown files (also loaded as skills)
//! - `agents/` — Subagent definitions (loaded via `SubagentIndexLoader`)
//! - `hooks/hooks.json` — Hook configurations
//! - `.mcp.json` — MCP server configurations
//!
//! All resources are namespaced as `plugin-name:resource-name` to avoid collisions.
//!
//! # Directory Structure
//!
//! ```text
//! ~/.claude/plugins/
//! └── my-plugin/
//! ├── .claude-plugin/
//! │ └── plugin.json
//! ├── skills/
//! │ └── commit/
//! │ └── SKILL.md
//! ├── commands/
//! │ └── hello.md
//! ├── agents/
//! │ └── reviewer.md
//! ├── hooks/
//! │ └── hooks.json
//! └── .mcp.json
//! ```
pub use PluginDiscovery;
pub use PluginError;
pub use PluginHookEntry;
pub use PluginManager;
pub use ;