Skip to main content

remem/adapter/
claude.rs

1#[cfg(test)]
2mod tests;
3
4use crate::adapter::{EventSummary, ParsedHookEvent, ToolAdapter};
5
6pub use crate::adapter::common::should_skip_bash_command;
7
8pub struct ClaudeCodeAdapter;
9
10impl ToolAdapter for ClaudeCodeAdapter {
11    fn name(&self) -> &str {
12        "claude-code"
13    }
14
15    fn parse_hook(&self, raw_json: &str) -> Option<ParsedHookEvent> {
16        crate::adapter::common::parse_tool_hook(raw_json)
17    }
18
19    fn should_skip(&self, event: &ParsedHookEvent) -> bool {
20        crate::adapter::common::should_skip_tool(&event.tool_name)
21    }
22
23    fn should_skip_bash(&self, command: &str) -> bool {
24        should_skip_bash_command(command)
25    }
26
27    fn classify_event(&self, event: &ParsedHookEvent) -> Option<EventSummary> {
28        crate::adapter::common::event_summary(
29            &event.tool_name,
30            &event.tool_input,
31            &event.tool_response,
32        )
33    }
34}