pub trait OrchestratorObserver: Send + Sync {
// Required methods
fn on_task_started<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn on_task_completed<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
result: TaskResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided methods
fn on_run_updated<'life0, 'async_trait>(
&'life0 self,
_run: SupervisorRun,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_team_message<'life0, 'async_trait>(
&'life0 self,
_message: TeamMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_team_thread_updated<'life0, 'async_trait>(
&'life0 self,
_thread: TeamThread,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_environment_updated<'life0, 'async_trait>(
&'life0 self,
_environment: EnvironmentRecord,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_environment_recovery<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_action: RecoveryAction,
_summary: String,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_environment_cleanup<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_result: CleanupResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn on_haptic_feedback<'life0, 'async_trait>(
&'life0 self,
_pattern: HapticPattern,
_intensity: f32,
_duration_ms: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Expand description
Optional observer for adapter-side UI/event wiring.
Observers MUST NOT perform business logic; they should only emit events / persist presentation-layer state.
Required Methods§
Sourcefn on_task_started<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_task_started<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called after a task has been accepted and is about to execute.
Sourcefn on_task_completed<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
result: TaskResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_task_completed<'life0, 'async_trait>(
&'life0 self,
task: DelegatedTask,
result: TaskResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called after a task has completed (success or failure).
Provided Methods§
Sourcefn on_run_updated<'life0, 'async_trait>(
&'life0 self,
_run: SupervisorRun,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_run_updated<'life0, 'async_trait>(
&'life0 self,
_run: SupervisorRun,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called whenever a supervisor run changes.
Sourcefn on_team_message<'life0, 'async_trait>(
&'life0 self,
_message: TeamMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_team_message<'life0, 'async_trait>(
&'life0 self,
_message: TeamMessage,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when a team message is recorded.
Sourcefn on_team_thread_updated<'life0, 'async_trait>(
&'life0 self,
_thread: TeamThread,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_team_thread_updated<'life0, 'async_trait>(
&'life0 self,
_thread: TeamThread,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when a collaboration thread changes.
Sourcefn on_environment_updated<'life0, 'async_trait>(
&'life0 self,
_environment: EnvironmentRecord,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_environment_updated<'life0, 'async_trait>(
&'life0 self,
_environment: EnvironmentRecord,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when an environment record changes.
Sourcefn on_environment_recovery<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_action: RecoveryAction,
_summary: String,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_environment_recovery<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_action: RecoveryAction,
_summary: String,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when an environment recovery action is recorded.
Sourcefn on_environment_cleanup<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_result: CleanupResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_environment_cleanup<'life0, 'async_trait>(
&'life0 self,
_environment_id: String,
_result: CleanupResult,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Called when environment cleanup completes.
Sourcefn on_haptic_feedback<'life0, 'async_trait>(
&'life0 self,
_pattern: HapticPattern,
_intensity: f32,
_duration_ms: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn on_haptic_feedback<'life0, 'async_trait>(
&'life0 self,
_pattern: HapticPattern,
_intensity: f32,
_duration_ms: u32,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Emits haptic feedback instruction (BOS1921 waveforms etc.)