peat_protocol/composition.rs
1//! Capability composition engine
2//!
3//! This module provides the composition framework for detecting emergent
4//! capabilities and constraints from sets of individual capabilities.
5//!
6//! ## Composition Patterns
7//!
8//! - **Additive**: Capabilities that sum (coverage area, lift capacity)
9//! - **Emergent**: New capabilities from combinations (ISR chains, mapping)
10//! - **Redundant**: Reliability from redundancy (detection, coverage)
11//! - **Constraint**: Team limits from individual constraints (speed, range)
12//!
13//! ## Usage
14//!
15//! ```rust,no_run
16//! use peat_protocol::composition::{CompositionEngine, CompositionContext};
17//! use peat_protocol::composition::additive::SensorCoverageRule;
18//! use peat_protocol::models::capability::Capability;
19//! use std::sync::Arc;
20//!
21//! # async fn example() -> peat_protocol::Result<()> {
22//! let mut engine = CompositionEngine::new();
23//! engine.register_rule(Arc::new(SensorCoverageRule::default()));
24//!
25//! let capabilities = vec![/* capabilities */];
26//! let context = CompositionContext::new(vec!["node1".to_string()]);
27//!
28//! let results = engine.compose(&capabilities, &context).await?;
29//! # Ok(())
30//! # }
31//! ```
32
33pub mod additive;
34pub mod constraint;
35pub mod emergent;
36pub mod engine;
37pub mod redundant;
38pub mod rules;
39
40pub use engine::CompositionEngine;
41pub use rules::{CompositionContext, CompositionResult, CompositionRule};