mecha10_cli/services/mod.rs
1//! Service layer for CLI business logic
2//!
3//! Services contain reusable business logic that can be shared across multiple
4//! command handlers. Each service is responsible for a specific domain:
5//!
6//! - **RedisService**: Redis connection and pub/sub operations
7//! - **ConfigService**: Project configuration management
8//! - **ProjectService**: Project detection and validation
9//! - **SimulationService**: Simulation scene generation
10//! - **ProcessService**: Process lifecycle management
11//! - **DockerService**: Docker container operations
12//! - **ComponentCatalogService**: Component discovery and installation
13//! - **PackageService**: Deployment package creation
14//! - **DeploymentService**: Remote deployment via SSH
15//! - **DiscoveryService**: Network node discovery
16//! - **InitService**: Project initialization logic
17//! - **ProjectTemplateService**: Project template file generation
18//! - **LogsService**: Log file collection and filtering
19//! - **DevService**: Development mode operations
20//! - **DevSession**: Development session lifecycle management
21//! - **ModelService**: AI model management and HuggingFace Hub integration
22//! - **SchemaExportService**: Renders JSON Schema + Markdown reference docs from
23//! this repo's schemas (`docs/schemas/`, LAB-1829)
24//! - **BehaviorGeneratorService**: Custom behavior tree `config.json` scaffolding
25//! - **rl_bundle**: RL project bundle (`configs/rl/` + `configs/simulation/{models,environments}`)
26//! packaging + upload for `mecha10 build rl` (LAB-2768)
27//!
28//! # Design Principles
29//!
30//! - **Stateless**: Services should be stateless where possible
31//! - **Reusable**: Services should be usable across multiple commands
32//! - **Testable**: Services should have no CLI dependencies
33//! - **Focused**: Each service has a single, clear responsibility
34
35pub mod behavior_generator;
36pub mod binary_manager;
37pub mod build_platforms;
38pub mod component_catalog;
39pub mod config;
40pub mod credentials;
41pub mod deployment;
42pub mod dev;
43pub mod discovery;
44pub mod docker;
45pub mod driver_generator;
46pub mod init_service;
47pub mod logs;
48pub mod model_service;
49pub mod node_generator;
50pub mod package;
51pub mod process;
52pub mod project;
53pub mod project_template_service;
54pub mod publish_status;
55pub mod redis;
56pub mod rl_bundle;
57pub mod schema_export;
58pub mod simulation;
59pub mod template_download;
60pub mod topology;
61pub mod train_jobs;
62
63pub use behavior_generator::BehaviorGeneratorService;
64pub use component_catalog::ComponentCatalogService;
65pub use config::ConfigService;
66pub use credentials::CredentialsService;
67pub use deployment::DeploymentService;
68pub use dev::DevService;
69pub use discovery::DiscoveryService;
70pub use docker::DockerService;
71pub use driver_generator::{DriverGeneratorService, DriverType};
72pub use init_service::InitService;
73pub use logs::{LogContentFilters, LogFileFilters, LogsService};
74pub use model_service::ModelService;
75pub use node_generator::NodeGeneratorService;
76pub use package::PackageService;
77pub use process::ProcessService;
78pub use project::ProjectService;
79pub use project_template_service::ProjectTemplateService;
80pub use redis::RedisService;
81pub use schema_export::SchemaExportService;
82pub use simulation::SimulationService;
83pub use template_download::TemplateDownloadService;
84pub use topology::{Topology, TopologyService};
85#[allow(unused_imports)]
86pub use train_jobs::{load_job_catalog, CreateJobRequest, FlowType, JobDefinition, JOB_CATALOG_DIR};