Public declaration syntax from harness-sdk/src/plugins/config.rs Original source SHA-256: dd1b2af2ac0a0df9ac1f1b2fda80feedc85755a417ac63afc8b854341f8d3bd6 Function bodies and constant values are omitted. This is not the complete implementation. Source line 19 #[derive(Debug, Clone, Default, Serialize, Deserialize)] pub struct PluginConfig { /// Directory containing plugin WASM files. pub plugin_dir: Option, /// Path to `plugins.toml` for persisted permission rules. pub config_path: Option, /// Per-plugin configuration overrides. pub plugins: HashMap } Source line 30 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct PluginEntry { /// Whether the plugin is enabled. pub enabled: bool, /// Path to the WASM file (overrides manifest). pub path: Option, /// Permission rules for this plugin. #[serde(default)] pub permissions: Vec } Source line 42 #[derive(Debug, Clone, Serialize, Deserialize)] pub struct PermissionRuleConfig { /// Capability kind as string. pub capability: String, /// Glob pattern. pub pattern: String, /// "allow", "deny", or "prompt". pub mode: String } Source line 56 #[must_use] pub fn load_or_default(path: Option<&PathBuf>) -> Self;