Skip to main content

everruns_core/message/
turn_scope.rs

1use super::RuntimeMessage;
2
3const TURN_SCOPED_REMINDER_KEY: &str = "everruns.turn_scoped_reminder";
4
5impl RuntimeMessage {
6    /// Create a prompt-only system reminder scoped to one model turn.
7    pub fn turn_scoped_system(content: impl Into<String>) -> Self {
8        let mut message = Self::system(content);
9        message.metadata = Some(std::collections::HashMap::from([(
10            TURN_SCOPED_REMINDER_KEY.to_string(),
11            serde_json::Value::Bool(true),
12        )]));
13        message
14    }
15
16    /// Whether this prompt-facing message expires after the current turn.
17    pub fn is_turn_scoped_reminder(&self) -> bool {
18        self.metadata
19            .as_ref()
20            .and_then(|metadata| metadata.get(TURN_SCOPED_REMINDER_KEY))
21            .and_then(serde_json::Value::as_bool)
22            .unwrap_or(false)
23    }
24}