1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct BehaviorFingerprint {
11 pub id: String,
13 pub session_id: String,
15 pub behavior: String,
17 pub keywords: Vec<String>,
19 pub timestamp: DateTime<Utc>,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub enum MurEvent {
26 PatternCreated {
27 name: String,
28 },
29 PatternEvolved {
30 name: String,
31 old_importance: f64,
32 new_importance: f64,
33 },
34 PatternDeprecated {
35 name: String,
36 },
37 InjectionCompleted {
38 patterns: Vec<String>,
39 session_id: String,
40 },
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
45pub enum ConversationEvent {
46 UserMessage {
47 session_id: String,
48 content: String,
49 timestamp: i64,
50 },
51 AssistantMessage {
52 session_id: String,
53 content: String,
54 timestamp: i64,
55 },
56 ToolCall {
57 session_id: String,
58 tool: String,
59 args: serde_json::Value,
60 result: Option<String>,
61 timestamp: i64,
62 },
63 SessionStart {
64 session_id: String,
65 source: String,
66 },
67 SessionEnd {
68 session_id: String,
69 },
70}