Expand description
Hooks System for A3S Code Agent
Provides a mechanism to intercept and customize agent behavior at various lifecycle points. Hooks can validate, transform, or block operations.
§Hook Events
PreToolUse: Before tool execution (can block/modify)PostToolUse: After tool execution (fire-and-forget)GenerateStart: Before LLM generationGenerateEnd: After LLM generationSessionStart: When session is createdSessionEnd: When session is destroyed
§Example
ⓘ
let engine = HookEngine::new();
// Register a hook
engine.register(Hook {
id: "security-check".to_string(),
event_type: HookEventType::PreToolUse,
matcher: Some(HookMatcher::tool("Bash")),
config: HookConfig::default(),
});
// Fire hook and get result
let result = engine.fire(HookEvent::PreToolUse { ... }).await;
match result {
HookResult::Continue(None) => { /* proceed */ }
HookResult::Continue(Some(modified)) => { /* proceed with modified data */ }
HookResult::Block(reason) => { /* stop execution */ }
}Structs§
- Generate
EndEvent - Generate end event payload
- Generate
Start Event - Generate start event payload
- Hook
- Hook definition
- Hook
Config - Hook configuration
- Hook
Engine - Hook engine
- Hook
Matcher - Hook matcher for filtering events
- Hook
Response - Response from a hook handler
- OnError
Event - On-error event payload
- Post
Response Event - Post-response event payload (fired after LLM response is processed)
- Post
Tool UseEvent - Post-tool-use event payload
- PrePrompt
Event - Pre-prompt event payload (fired before prompt augmentation)
- PreTool
UseEvent - Pre-tool-use event payload
- Session
EndEvent - Session end event payload
- Session
Start Event - Session start event payload
- Skill
Load Event - Skill load event payload
- Skill
Unload Event - Skill unload event payload
- Token
Usage Info - Token usage information
- Tool
Call Info - Tool call information
- Tool
Result Data - Tool execution result data
Enums§
- Error
Type - Error type classification for OnError events
- Hook
Action - Hook response action from SDK
- Hook
Event - Unified hook event enum
- Hook
Event Type - Hook event types
- Hook
Result - Hook execution result
Traits§
- Hook
Executor - Hook executor trait
- Hook
Handler - Hook handler trait