mecha10-cli 0.7.0

Mecha10 CLI tool
Documentation
//! Service layer for CLI business logic
//!
//! Services contain reusable business logic that can be shared across multiple
//! command handlers. Each service is responsible for a specific domain:
//!
//! - **RedisService**: Redis connection and pub/sub operations
//! - **ConfigService**: Project configuration management
//! - **ProjectService**: Project detection and validation
//! - **SimulationService**: Simulation scene generation
//! - **ProcessService**: Process lifecycle management
//! - **DockerService**: Docker container operations
//! - **ComponentCatalogService**: Component discovery and installation
//! - **PackageService**: Deployment package creation
//! - **DeploymentService**: Remote deployment via SSH
//! - **DiscoveryService**: Network node discovery
//! - **InitService**: Project initialization logic
//! - **ProjectTemplateService**: Project template file generation
//! - **LogsService**: Log file collection and filtering
//! - **DevService**: Development mode operations
//! - **DevSession**: Development session lifecycle management
//! - **ModelService**: AI model management and HuggingFace Hub integration
//! - **BehaviorGeneratorService**: Custom behavior tree `config.json` scaffolding
//! - **rl_bundle**: RL project bundle (`configs/rl/` + `configs/simulation/{models,environments}`)
//!   download for `mecha10 run rl --download-bundle-only` (LAB-2769)
//! - **catalog_client**: Live template/node catalog fetch from `mecha10-api`
//!   (`GET /api/templates/catalog`, `GET /api/nodes/catalog`), used by `mecha10 init`'s wizard
//!   and `mecha10 add <node>`
//!
//! Best-effort default config/schema pull for selected framework nodes now lives in
//! `mecha10_robot_config::pull_node_catalog_configs`, shared with the launcher.
//!
//! # Design Principles
//!
//! - **Stateless**: Services should be stateless where possible
//! - **Reusable**: Services should be usable across multiple commands
//! - **Testable**: Services should have no CLI dependencies
//! - **Focused**: Each service has a single, clear responsibility

pub mod behavior_generator;
pub mod binary_manager;
pub mod build_platforms;
pub mod catalog_client;
pub mod component_catalog;
pub mod config;
pub mod credentials;
pub mod deployment;
pub mod dev;
pub mod discovery;
pub mod docker;
pub mod driver_generator;
pub mod init_service;
pub mod latest_build_version;
pub mod logs;
pub mod model_service;
pub mod node_generator;
pub mod package;
pub mod process;
pub mod project;
pub mod project_template_service;
pub mod publish_status;
pub mod redis;
pub mod rl_bundle;
pub mod simulation;
pub mod template_download;
pub mod topology;
pub mod train_jobs;

pub use behavior_generator::BehaviorGeneratorService;
pub use component_catalog::ComponentCatalogService;
pub use config::ConfigService;
pub use credentials::CredentialsService;
pub use deployment::DeploymentService;
pub use dev::DevService;
pub use discovery::DiscoveryService;
pub use docker::DockerService;
pub use driver_generator::{DriverGeneratorService, DriverType};
pub use init_service::InitService;
pub use logs::{LogContentFilters, LogFileFilters, LogsService};
pub use model_service::ModelService;
pub use node_generator::NodeGeneratorService;
pub use package::PackageService;
pub use process::ProcessService;
pub use project::ProjectService;
pub use project_template_service::ProjectTemplateService;
pub use redis::RedisService;
pub use simulation::SimulationService;
pub use template_download::TemplateDownloadService;
pub use topology::{Topology, TopologyService};
#[allow(unused_imports)]
pub use train_jobs::{load_job_catalog, CreateJobRequest, FlowType, JobDefinition, JOB_CATALOG_DIR};