Skip to main content

osp_cli/plugin/
mod.rs

1//! The plugin module exists so external commands can participate in `osp`
2//! without becoming a separate execution model everywhere else in the app.
3//!
4//! This module owns the boundary between the core app and external command
5//! providers. Discovery and catalog building happen before dispatch so the rest
6//! of the app can reason about plugins as ordinary command metadata.
7//!
8//! Contract:
9//!
10//! - plugin discovery and dispatch rules live here
11//! - the rest of the app should consume plugin metadata/results, not spawn
12//!   plugin processes ad hoc
13
14pub(crate) mod active;
15pub(crate) mod catalog;
16pub(crate) mod config;
17pub(crate) mod conversion;
18pub(crate) mod discovery;
19pub(crate) mod dispatch;
20pub mod manager;
21pub(crate) mod selection;
22pub(crate) mod state;
23#[cfg(test)]
24mod tests;
25
26pub use manager::{
27    CommandCatalogEntry, CommandConflict, DEFAULT_PLUGIN_PROCESS_TIMEOUT_MS, DiscoveredPlugin,
28    DoctorReport, PluginDispatchContext, PluginDispatchError, PluginManager, PluginSource,
29    PluginSummary, RawPluginOutput,
30};