turnframe_runtime/
conversation.rs1use serde::{Deserialize, Serialize};
4use turnframe_core::ids::WorkflowKey;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
8#[serde(rename_all = "snake_case")]
9pub enum TranscriptRole {
10 User,
12 Assistant,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
18pub struct RecentMessage {
19 pub role: TranscriptRole,
21 pub text: String,
23}
24
25impl RecentMessage {
26 #[must_use]
28 pub fn user(text: impl Into<String>) -> Self {
29 Self {
30 role: TranscriptRole::User,
31 text: text.into(),
32 }
33 }
34
35 #[must_use]
37 pub fn assistant(text: impl Into<String>) -> Self {
38 Self {
39 role: TranscriptRole::Assistant,
40 text: text.into(),
41 }
42 }
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
47pub struct UnavailableWorkflow {
48 pub workflow: WorkflowKey,
50 pub reason: String,
52}