Skip to main content

ralph/plugins/
mod.rs

1//! Plugin system for Ralph (runners + task processors).
2//!
3//! Responsibilities:
4//! - Define plugin manifest contracts and validation.
5//! - Discover plugin packages from global + project plugin directories.
6//! - Provide a registry for resolving enabled plugins, runner binaries, and processor hooks.
7//!
8//! Not handled here:
9//! - CLI Clap argument definitions (see `crate::cli::plugin`).
10//! - Execution-phase orchestration (see `crate::commands::run`).
11//! - Streaming JSON parsing (see `crate::runner::execution::process`).
12//!
13//! Invariants/assumptions:
14//! - Plugins are discovered from:
15//!   - Global:  ~/.config/ralph/plugins/<plugin_id>/plugin.json
16//!   - Project: .ralph/plugins/<plugin_id>/plugin.json
17//! - Project plugins override global plugins of the same id.
18//! - Plugins are disabled unless enabled in config.
19//! - Plugin executables are NOT sandboxed by Ralph; enabling a plugin is equivalent to trusting it.
20
21pub(crate) mod discovery;
22pub(crate) mod manifest;
23pub(crate) mod processor_executor;
24pub(crate) mod registry;
25
26pub(crate) const PLUGIN_API_VERSION: u32 = 1;