mecha10-behavior-runtime 0.9.0

Behavior tree runtime for Mecha10 - unified AI and logic composition system
Documentation
//! Mecha10 Behavior Runtime
//!
//! Unified behavior composition system for robotics and AI: behavior logic is Rust code

pub mod actions;
mod behavior;
mod composition;
pub mod config;
pub mod control;
mod execution;
mod loader;
mod registry;
mod status;
#[cfg(test)]
mod test_helpers;

pub use actions::{
    register_builtin_actions, GoToLocationNode, LandNode, MoveNode, RlTaskNode, SensorCheckNode,
    SetGoToLocationTargetNode, SetRlTargetNode, TakeoffNode, TimerNode, WanderNode,
};
pub use behavior::{boxed_children_mut, BehaviorNode, BehaviorNodeExt, BoxedBehavior};
pub use composition::{
    ForceFailureNode, ForceSuccessNode, InverterNode, ParallelNode, ParallelPolicy, RepeatNode, RetryNode,
    SelectOrNode, SequenceNode, SubsumptionLayer, SubsumptionNode, TimeoutNode, WatchNode,
};
pub use config::{
    detect_project_root, get_current_environment, list_available_behaviors, load_behavior_config,
    resolve_behavior_config_path, validate_behavior_composition_json, validate_behavior_config, BehaviorConfig,
    CompositionConfig, NodeConfig, NodeReference, ParallelPolicyConfig, SubsumptionLayerConfig, ValidationResult,
};
pub use control::{PidController, PidGains};
pub use execution::{BehaviorExecutor, ExecutionContext, ExecutionStats};
pub use loader::BehaviorLoader;
pub use registry::NodeRegistry;
pub use status::NodeStatus;

pub mod hot_reload;

pub use mecha10_core::Context;

pub mod prelude {
    pub use crate::actions::{
        GoToLocationNode, LandNode, MoveNode, RlTaskNode, SensorCheckNode, SetGoToLocationTargetNode, SetRlTargetNode,
        TakeoffNode, TimerNode, WanderNode,
    };
    pub use crate::behavior::{BehaviorNode, BehaviorNodeExt, BoxedBehavior};
    pub use crate::composition::{
        ForceFailureNode, ForceSuccessNode, InverterNode, ParallelNode, ParallelPolicy, RepeatNode, RetryNode,
        SelectOrNode, SequenceNode, SubsumptionLayer, SubsumptionNode, TimeoutNode, WatchNode,
    };
    pub use crate::config::{
        BehaviorConfig, CompositionConfig, NodeConfig, NodeReference, ParallelPolicyConfig, SubsumptionLayerConfig,
    };
    pub use crate::control::{PidController, PidGains};
    pub use crate::execution::{BehaviorExecutor, ExecutionContext, ExecutionStats};
    pub use crate::loader::BehaviorLoader;
    pub use crate::registry::NodeRegistry;
    pub use crate::status::NodeStatus;
    pub use async_trait::async_trait;
    pub use mecha10_core::Context;
}