llmrix_rust_sdk/streaming/
event.rs1use serde::Deserialize;
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Deserialize, Default)]
9pub struct RunStartEvent {
10 #[serde(default)]
11 pub run_id: String,
12 #[serde(default)]
13 pub thread_id: String,
14}
15
16#[derive(Debug, Clone, Deserialize, Default)]
17pub struct RunEndEvent {
18 #[serde(default)]
19 pub run_id: String,
20 #[serde(default)]
21 pub thread_id: String,
22}
23
24#[derive(Debug, Clone, Deserialize, Default)]
31pub struct MessageChunkEvent {
32 #[serde(default)]
33 pub content: String,
34 #[serde(default)]
35 pub id: String,
36}
37
38#[derive(Debug, Clone, Deserialize, Default)]
43pub struct ToolStartEvent {
44 #[serde(default)]
45 pub id: String,
46 #[serde(default)]
47 pub name: String,
48 #[serde(default)]
49 pub args: HashMap<String, serde_json::Value>,
50}
51
52#[derive(Debug, Clone, Deserialize, Default)]
53pub struct ToolEndEvent {
54 #[serde(default)]
55 pub id: String,
56 #[serde(default)]
57 pub name: String,
58 #[serde(default)]
59 pub result: String,
60 #[serde(default)]
61 pub error: bool,
62}
63
64#[derive(Debug, Clone, Deserialize, Default)]
65pub struct SubagentStartEvent {
66 #[serde(default)]
67 pub id: String,
68 #[serde(default)]
69 pub agent_name: String,
70}
71
72#[derive(Debug, Clone, Deserialize, Default)]
73pub struct SubagentEndEvent {
74 #[serde(default)]
75 pub id: String,
76 #[serde(default)]
77 pub agent_name: String,
78 #[serde(default)]
79 pub error: bool,
80}
81
82#[derive(Debug, Clone, Deserialize, Default)]
89pub struct HitlInterruptEvent {
90 #[serde(default)]
91 pub id: String,
92 #[serde(default)]
93 pub action_name: String,
94 #[serde(default)]
95 pub action_args: HashMap<String, serde_json::Value>,
96 #[serde(default)]
97 pub description: String,
98}
99
100#[derive(Debug, Clone, Deserialize, Default)]
105pub struct ErrorEvent {
106 #[serde(default)]
107 pub message: String,
108 #[serde(default)]
109 pub error_code: String,
110}
111
112#[derive(Debug, Clone, Deserialize, Default)]
113pub struct CancelledEvent {
114 #[serde(default)]
115 pub reason: String,
116}
117
118#[derive(Debug, Clone, Default)]
124pub struct HeartbeatEvent;
125
126#[derive(Debug, Clone)]
142pub enum StreamEvent {
143 RunStart(RunStartEvent),
144 RunEnd(RunEndEvent),
145 MessageChunk(MessageChunkEvent),
146 ToolStart(ToolStartEvent),
147 ToolEnd(ToolEndEvent),
148 SubagentStart(SubagentStartEvent),
149 SubagentEnd(SubagentEndEvent),
150 HitlInterrupt(HitlInterruptEvent),
151 Error(ErrorEvent),
152 Cancelled(CancelledEvent),
153 Heartbeat,
154}