stasis-rs 0.1.0

Durable AI orchestration framework with runtime jobs, lineage, and memory integration
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct NewThread {
    pub thread_id: String,
    pub parent_thread_id: Option<String>,
    pub branch_label: Option<String>,
    pub created_at: DateTime<Utc>,
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ThreadSnapshot {
    pub thread_id: String,
    pub parent_thread_id: Option<String>,
    pub branch_label: Option<String>,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct NewThreadEvent {
    pub event_id: String,
    pub thread_id: String,
    pub event_kind: String,
    pub payload_ref: String,
    pub occurred_at: DateTime<Utc>,
}

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct ThreadEvent {
    pub event_id: String,
    pub thread_id: String,
    pub event_kind: String,
    pub payload_ref: String,
    pub occurred_at: DateTime<Utc>,
}

#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
pub struct ThreadMergeMetadata {
    pub parent_thread_id: String,
    pub branch_thread_ids: Vec<String>,
    pub merge_strategy: String,
    pub merged_at: DateTime<Utc>,
}