ricecoder_orchestration/lib.rs
1//! RiceCoder Multi-Project Orchestration Module
2//!
3//! This module provides workspace-level operations across multiple projects,
4//! enabling coordinated changes, dependency management, and cross-project analysis.
5//!
6//! # Overview
7//!
8//! The orchestration module coordinates workspace-level operations including:
9//! - Workspace scanning and project discovery
10//! - Cross-project dependency analysis
11//! - Batch operations across multiple projects
12//! - Impact analysis for changes
13//! - Configuration and rules management
14//! - Version coordination
15//! - Status reporting
16//!
17//! # Core Components
18//!
19//! - [`OrchestrationManager`]: Central coordinator for all workspace operations
20//! - [`WorkspaceScanner`]: Discovers projects and their metadata
21//! - [`models`]: Core data structures for workspace orchestration
22//! - [`error`]: Error types for orchestration operations
23//!
24//! # Path Resolution
25//!
26//! All path operations use `ricecoder_storage::PathResolver` for consistent
27//! workspace navigation and portability across different environments.
28//!
29//! # Example Usage
30//!
31//! ```ignore
32//! use ricecoder_orchestration::{OrchestrationManager, WorkspaceScanner};
33//! use std::path::PathBuf;
34//!
35//! #[tokio::main]
36//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
37//! let workspace_root = PathBuf::from("/path/to/workspace");
38//!
39//! // Create and initialize the orchestration manager
40//! let manager = OrchestrationManager::new(workspace_root.clone());
41//! manager.initialize().await?;
42//!
43//! // Scan the workspace for projects
44//! let scanner = WorkspaceScanner::new(workspace_root);
45//! let projects = scanner.scan_workspace().await?;
46//!
47//! println!("Found {} projects", projects.len());
48//!
49//! // Shutdown the manager
50//! manager.shutdown().await?;
51//!
52//! Ok(())
53//! }
54//! ```
55
56pub mod analyzers;
57pub mod error;
58pub mod managers;
59pub mod models;
60
61// Re-export commonly used types
62pub use analyzers::{
63 Change, ChangeDetails, ChangePropagationTracker, ChangeType, DependencyAnalyzer,
64 DependencyGraph, DependencyInfo, DependencyValidator, ImpactAnalyzer, ProjectChange,
65 ProjectDetector, ValidationReport, Version, VersionConstraint, VersionValidator,
66 WorkspaceScanner,
67};
68pub use error::{OrchestrationError, Result};
69pub use managers::{
70 AggregatedMetrics, BatchExecutionConfig, BatchExecutionResult, BatchExecutor, ComplianceSummary,
71 ConfigLoadResult, ConfigManager, ConfigSchema, ConfigSource, ConflictResolution, ExecutionLevel,
72 ExecutionOrderer, ExecutionPlan, OrchestrationManager, ParallelizationStrategy, ProjectHealthIndicator,
73 ProjectOperation, RulesValidator, RuleViolation, StatusReport, StatusReporter, SyncConflict,
74 SyncLogEntry, SyncManager, ValidationResult, ValidationRule, VersionCoordinator, VersionUpdatePlan,
75 VersionUpdateResult, VersionUpdateStep, ViolationSeverity,
76};
77pub use models::{
78 DependencyType, HealthStatus, ImpactDetail, ImpactLevel, ImpactReport, Operation,
79 Project, ProjectDependency, ProjectStatus, RuleType,
80 Transaction, TransactionState, Workspace, WorkspaceConfig, WorkspaceMetrics, WorkspaceRule,
81};