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//! - **TemplateService**: Template rendering for code generation
10//! - **SimulationService**: Godot simulation generation
11//! - **ProcessService**: Process lifecycle management
12//! - **DockerService**: Docker container operations
13//! - **ComponentCatalogService**: Component discovery and installation
14//! - **PackageService**: Deployment package creation
15//! - **DeploymentService**: Remote deployment via SSH
16//! - **DiscoveryService**: Network node discovery
17//! - **InitService**: Project initialization logic
18//! - **ProjectTemplateService**: Project template file generation
19//! - **LogsService**: Log file collection and filtering
20//! - **DevService**: Development mode operations
21//! - **DevSession**: Development session lifecycle management
22//! - **ModelService**: AI model management and HuggingFace Hub integration
23//! - **SimulationAssetsService**: Simulation asset download from GitHub releases
24//! - **RemoteImageService**: Pre-built remote image detection and management
25//!
26//! # Design Principles
27//!
28//! - **Stateless**: Services should be stateless where possible
29//! - **Reusable**: Services should be usable across multiple commands
30//! - **Testable**: Services should have no CLI dependencies
31//! - **Focused**: Each service has a single, clear responsibility
32
33// Service modules
34pub mod auth;
35pub mod binary_manager;
36pub mod component_catalog;
37pub mod config;
38pub mod credentials;
39pub mod deployment;
40pub mod dev;
41pub mod discovery;
42pub mod docker;
43pub mod init_service;
44pub mod logs;
45pub mod model_service;
46pub mod node_generator;
47pub mod package;
48pub mod process;
49pub mod project;
50pub mod project_template_service;
51pub mod redis;
52pub mod remote_image;
53pub mod simulation;
54pub mod simulation_assets;
55pub mod template;
56pub mod template_download;
57pub mod topology;
58
59// Re-exports
60pub use auth::AuthService;
61pub use binary_manager::BinaryManager;
62pub use component_catalog::ComponentCatalogService;
63pub use config::ConfigService;
64pub use credentials::CredentialsService;
65pub use deployment::DeploymentService;
66pub use dev::DevService;
67pub use discovery::DiscoveryService;
68pub use docker::DockerService;
69pub use init_service::InitService;
70pub use logs::{LogContentFilters, LogFileFilters, LogsService};
71pub use model_service::ModelService;
72pub use node_generator::NodeGeneratorService;
73pub use package::PackageService;
74pub use process::ProcessService;
75pub use project::ProjectService;
76pub use project_template_service::ProjectTemplateService;
77pub use redis::RedisService;
78pub use remote_image::RemoteImageService;
79pub use simulation::SimulationService;
80pub use simulation_assets::SimulationAssetsService;
81pub use template::TemplateService;
82pub use template_download::TemplateDownloadService;
83pub use topology::{Topology, TopologyService};