pub mod api;
pub fn module_name_from_id(module_id: &str) -> &str {
if let Some((name, suffix)) = module_id.rsplit_once('_') {
if suffix.len() == 32 && suffix.bytes().all(|b| b.is_ascii_hexdigit()) {
return name;
}
}
module_id
}
pub mod encryption;
pub mod github_release_install;
pub mod http;
pub mod integration;
pub mod inter_module;
pub mod ipc;
pub mod loader;
pub mod manager;
pub mod metrics;
pub mod pipeline;
pub mod process;
pub mod registry;
pub mod rpc;
pub mod sandbox;
pub mod security;
pub mod services;
pub mod timers;
pub mod traits;
pub mod validation;
pub mod version_constraint;
#[cfg(feature = "wasm-modules")]
pub mod wasm;
#[cfg(feature = "module-watcher")]
pub mod watcher;
pub use security::{Permission, PermissionChecker, PermissionSet, RequestValidator};
pub use api::NodeApiIpc;
pub use encryption::ModuleEncryption;
pub use integration::ModuleIntegration;
pub use manager::ModuleManager;
pub use process::{ModuleProcess, ModuleProcessMonitor, ModuleProcessSpawner};
pub use traits::{
EventType, Module, ModuleContext, ModuleError, ModuleMetadata, ModuleState, NodeAPI,
};
pub use ipc::protocol::{EventMessage, EventPayload, ModuleMessage};
#[cfg(unix)]
pub use ipc::{ModuleIpcClient, ModuleIpcServer};