Public declaration syntax from harness-sdk/src/plugins/manifest.rs Original source SHA-256: 6aa38746d00447e89e66d4df4dd7b073651368f24d51e28a4fb799d0f512c5be Function bodies and constant values are omitted. This is not the complete implementation. Source line 32 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct PluginManifest { /// Plugin name (unique identifier). pub name: String, /// Semantic version string. pub version: String, /// Short description. pub description: String, /// Author name or organization. pub author: String, /// Path to the WASM module file. pub wasm_path: String, /// Expected SHA-256 hash of the WASM module (hex-encoded). pub wasm_sha256: Option, /// Capabilities the plugin requires. pub capabilities: Vec, /// Slash commands the plugin registers. pub commands: Vec, /// Agent tools the plugin provides. pub tools: Vec } Source line 55 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct PluginCommand { /// Command name (without `/` prefix). pub name: String, /// Short description. pub description: String } Source line 64 #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct PluginTool { /// Tool name. pub name: String, /// Tool description. pub description: String, /// JSON schema for tool input (as a string). pub input_schema: String } Source line 82 pub fn from_path(path: &str) -> Result; Source line 113 pub fn validate(&self) -> Result<(), PluginError>;