do_memory_mcp/server/audit/
pattern_ops.rs1use super::core::AuditLogger;
6use super::types::AuditLogLevel;
7use serde_json::json;
8
9impl AuditLogger {
10 pub async fn log_pattern_analysis(
12 &self,
13 client_id: &str,
14 task_type: &str,
15 result_count: usize,
16 success: bool,
17 ) {
18 let metadata = json!({
19 "task_type": task_type,
20 "result_count": result_count
21 });
22
23 self.log_event(
24 AuditLogLevel::Debug,
25 client_id,
26 "analyze_patterns",
27 if success { "success" } else { "failure" },
28 metadata,
29 )
30 .await;
31 }
32
33 pub async fn log_advanced_pattern_analysis(
35 &self,
36 client_id: &str,
37 analysis_type: &str,
38 success: bool,
39 ) {
40 let metadata = json!({
41 "analysis_type": analysis_type
42 });
43
44 self.log_event(
45 AuditLogLevel::Debug,
46 client_id,
47 "advanced_pattern_analysis",
48 if success { "success" } else { "failure" },
49 metadata,
50 )
51 .await;
52 }
53
54 pub async fn log_pattern_search(
56 &self,
57 client_id: &str,
58 domain: &str,
59 result_count: usize,
60 success: bool,
61 ) {
62 let metadata = json!({
63 "domain": domain,
64 "result_count": result_count
65 });
66
67 self.log_event(
68 AuditLogLevel::Debug,
69 client_id,
70 "search_patterns",
71 if success { "success" } else { "failure" },
72 metadata,
73 )
74 .await;
75 }
76
77 pub async fn log_recommend_patterns(
79 &self,
80 client_id: &str,
81 domain: &str,
82 recommendation_count: usize,
83 success: bool,
84 ) {
85 let metadata = json!({
86 "domain": domain,
87 "recommendation_count": recommendation_count
88 });
89
90 self.log_event(
91 AuditLogLevel::Debug,
92 client_id,
93 "recommend_patterns",
94 if success { "success" } else { "failure" },
95 metadata,
96 )
97 .await;
98 }
99
100 pub async fn log_playbook_recommendation(
102 &self,
103 client_id: &str,
104 task_description: &str,
105 playbook_count: usize,
106 success: bool,
107 ) {
108 let metadata = json!({
109 "task_description": task_description,
110 "playbook_count": playbook_count
111 });
112
113 self.log_event(
114 AuditLogLevel::Info,
115 client_id,
116 "recommend_playbook",
117 if success { "success" } else { "failure" },
118 metadata,
119 )
120 .await;
121 }
122
123 pub async fn log_pattern_explanation(&self, client_id: &str, pattern_id: &str, success: bool) {
125 let metadata = json!({
126 "pattern_id": pattern_id
127 });
128
129 self.log_event(
130 AuditLogLevel::Debug,
131 client_id,
132 "explain_pattern",
133 if success { "success" } else { "failure" },
134 metadata,
135 )
136 .await;
137 }
138}