reasonkit/orchestration/
mod.rs1pub mod component_coordinator;
16pub mod error_recovery;
17pub mod long_horizon_orchestrator;
18pub mod performance_tracker;
19pub mod state_manager;
20pub mod task_graph;
21
22use serde::{Deserialize, Serialize};
23
24pub use component_coordinator::{ComponentCoordinator, ComponentTask, CoordinationResult};
25pub use error_recovery::{ErrorRecovery, RecoveryResult, RecoveryStrategy};
26pub use long_horizon_orchestrator::{
27 LongHorizonOrchestrator, OrchestrationConfig, OrchestrationResult, TaskExecutionPlan,
28};
29pub use performance_tracker::{PerformanceTracker, RealTimeMetrics, ResourceUtilization};
30
31pub type PerformanceMetrics = performance_tracker::PerformanceSummary;
32pub use state_manager::{ContextSnapshot, StateManager, StatePersistence};
33pub use task_graph::{DependencyGraph, TaskGraph, TaskNode, TaskPriority, TaskStatus};
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct LongHorizonResult {
38 pub execution_id: String,
39 pub success: bool,
40 pub total_duration_ms: u64,
41 pub tool_call_count: u32,
42 pub components_coordinated: Vec<String>,
43 pub state_transitions: Vec<StateTransition>,
44 pub performance_metrics: LongHorizonPerformanceMetrics,
45 pub error_recovery_log: Vec<RecoveryLog>,
46 pub final_output: serde_json::Value,
47}
48
49#[derive(Debug, Clone, Serialize, Deserialize)]
50pub struct StateTransition {
51 pub from_state: String,
52 pub to_state: String,
53 pub timestamp: i64,
54 pub trigger: String,
55 pub metadata: serde_json::Value,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
59pub struct LongHorizonPerformanceMetrics {
60 pub avg_tool_call_time_ms: f64,
61 pub throughput: f64,
62 pub memory_efficiency: f64,
63 pub cost_per_tool_call: f64,
64 pub reliability_score: f64,
65 pub error_rate: f64,
66}
67
68#[derive(Debug, Clone, Serialize, Deserialize)]
69pub struct RecoveryLog {
70 pub error_id: String,
71 pub recovery_strategy: String,
72 pub success: bool,
73 pub recovery_time_ms: u64,
74 pub details: String,
75}
76
77#[derive(Debug, Clone, Serialize, Deserialize)]
79pub struct LongHorizonConfig {
80 pub max_tool_calls: u32,
81 pub timeout_ms: u64,
82 pub memory_limit_mb: u64,
83 pub enable_error_recovery: bool,
84 pub enable_state_persistence: bool,
85 pub enable_performance_monitoring: bool,
86 pub component_timeout_ms: u64,
87 pub batch_size: usize,
88 pub checkpoint_interval: u32,
89}
90
91impl Default for LongHorizonConfig {
92 fn default() -> Self {
93 Self {
94 max_tool_calls: 100,
95 timeout_ms: 3_600_000, memory_limit_mb: 2048,
97 enable_error_recovery: true,
98 enable_state_persistence: true,
99 enable_performance_monitoring: true,
100 component_timeout_ms: 300_000, batch_size: 10,
102 checkpoint_interval: 10,
103 }
104 }
105}