Skip to main content

vv_agent/runtime/hooks/
traits.rs

1use crate::types::{LLMResponse, Message, ToolExecutionResult};
2
3use super::events::{
4    AfterLlmEvent, AfterToolCallEvent, BeforeLlmEvent, BeforeMemoryCompactEvent,
5    BeforeToolCallEvent,
6};
7use super::patches::{BeforeLlmPatch, BeforeToolCallPatch};
8
9pub trait RuntimeHook: Send + Sync {
10    fn before_memory_compact(&self, _event: BeforeMemoryCompactEvent<'_>) -> Option<Vec<Message>> {
11        None
12    }
13
14    fn before_llm(&self, _event: BeforeLlmEvent<'_>) -> Option<BeforeLlmPatch> {
15        None
16    }
17
18    fn after_llm(&self, _event: AfterLlmEvent<'_>) -> Option<LLMResponse> {
19        None
20    }
21
22    fn before_tool_call(&self, _event: BeforeToolCallEvent<'_>) -> Option<BeforeToolCallPatch> {
23        None
24    }
25
26    fn after_tool_call(&self, _event: AfterToolCallEvent<'_>) -> Option<ToolExecutionResult> {
27        None
28    }
29}