vv_agent/runtime/hooks/
traits.rs1use 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}