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