gestura_core_plugins/lib.rs
1//! Plugin discovery, lifecycle management, and permission-aware execution.
2//!
3//! `gestura-core-plugins` provides the workspace plugin domain: manifest-backed
4//! discovery, lifecycle state management, plugin permission metadata, and a
5//! shared plugin manager that can be consumed by higher-level runtime code.
6//!
7//! ## Main concepts
8//!
9//! - `PluginMetadata`: manifest-level identity, versioning, and descriptive data
10//! - `PluginDependency`: declared plugin dependency edges
11//! - `PluginPermission`: requested capability set for the plugin
12//! - `PluginState`: lifecycle state such as loaded, running, or failed
13//! - `PluginManager`: discovery, load/unload, start/stop, command execution, and
14//! event broadcast coordination
15//!
16//! ## Architecture role
17//!
18//! This crate owns the plugin domain model and manager implementation. It does
19//! not try to turn plugins into a separate presentation or orchestration layer;
20//! instead, it provides a core-owned substrate that other application surfaces
21//! can use consistently.
22//!
23//! ## Stable import paths
24//!
25//! Most application code should import through `gestura_core::plugin_system::*`.
26
27mod plugin_system;
28
29pub use plugin_system::*;