Skip to main content

vv_agent/runtime/hooks/
events.rs

1use std::collections::BTreeMap;
2
3use serde_json::Value;
4
5use crate::tools::ToolContext;
6use crate::types::{AgentTask, LLMResponse, Message, ToolCall, ToolExecutionResult};
7
8pub struct BeforeMemoryCompactEvent<'a> {
9    pub task: &'a AgentTask,
10    pub cycle_index: u32,
11    pub messages: &'a [Message],
12    pub shared_state: &'a BTreeMap<String, Value>,
13}
14
15pub struct BeforeLlmEvent<'a> {
16    pub task: &'a AgentTask,
17    pub cycle_index: u32,
18    pub messages: &'a [Message],
19    pub tool_schemas: &'a [Value],
20    pub shared_state: &'a BTreeMap<String, Value>,
21}
22
23pub struct AfterLlmEvent<'a> {
24    pub task: &'a AgentTask,
25    pub cycle_index: u32,
26    pub messages: &'a [Message],
27    pub tool_schemas: &'a [Value],
28    pub response: &'a LLMResponse,
29    pub shared_state: &'a BTreeMap<String, Value>,
30}
31
32pub struct BeforeToolCallEvent<'a> {
33    pub task: &'a AgentTask,
34    pub cycle_index: u32,
35    pub call: &'a ToolCall,
36    pub context: &'a ToolContext,
37}
38
39pub struct AfterToolCallEvent<'a> {
40    pub task: &'a AgentTask,
41    pub cycle_index: u32,
42    pub call: &'a ToolCall,
43    pub context: &'a ToolContext,
44    pub result: &'a ToolExecutionResult,
45}