agentic_reality/engine/query/
environment.rs1use crate::engine::query::QueryEngine;
4use crate::types::environment::*;
5use crate::types::error::{RealityError, RealityResult};
6
7impl<'a> QueryEngine<'a> {
8 pub fn get_environment(&self) -> RealityResult<&EnvironmentMedium> {
9 self.engine
10 .environment_store
11 .medium
12 .as_ref()
13 .ok_or_else(|| RealityError::NotInitialized("environment".into()))
14 }
15
16 pub fn get_environment_type(&self) -> RealityResult<&EnvironmentType> {
17 Ok(&self.get_environment()?.environment_type)
18 }
19
20 pub fn get_environment_state(&self) -> RealityResult<&EnvironmentState> {
21 Ok(&self.get_environment()?.current_state)
22 }
23
24 pub fn get_mood(&self) -> RealityResult<EnvironmentMood> {
25 Ok(self.get_environment()?.current_state.mood)
26 }
27
28 pub fn get_physics(&self) -> RealityResult<&EnvironmentPhysics> {
29 Ok(&self.get_environment()?.physics)
30 }
31
32 pub fn get_incidents(&self) -> RealityResult<&[ActiveIncident]> {
33 Ok(&self.get_environment()?.current_state.incidents)
34 }
35
36 pub fn get_fingerprint(&self) -> RealityResult<&ContextFingerprint> {
37 self.engine
38 .environment_store
39 .fingerprint
40 .as_ref()
41 .ok_or_else(|| RealityError::NotInitialized("context fingerprint".into()))
42 }
43
44 pub fn has_context_shifted(&self) -> bool {
45 self.engine
46 .environment_store
47 .fingerprint
48 .as_ref()
49 .map(|f| f.stability != ContextStability::Stable)
50 .unwrap_or(false)
51 }
52}