Skip to main content

limit_agent/
events.rs

1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub enum Event {
6    Thinking {
7        version: u32,
8    },
9    ToolCall {
10        version: u32,
11        name: String,
12        args: HashMap<String, serde_json::Value>,
13    },
14    ToolResult {
15        version: u32,
16        output: String,
17    },
18    FileChange {
19        version: u32,
20        path: String,
21        diff: String,
22    },
23    Error {
24        version: u32,
25        message: String,
26    },
27    Done {
28        version: u32,
29    },
30}
31
32#[cfg(test)]
33mod tests {
34    use super::*;
35
36    #[test]
37    fn test_event_serialization() {
38        let event = Event::Thinking { version: 1 };
39        let json = serde_json::to_string(&event).unwrap();
40        let deserialized: Event = serde_json::from_str(&json).unwrap();
41        assert!(matches!(deserialized, Event::Thinking { version: 1 }));
42    }
43}