Skip to main content

Module hooks

Module hooks 

Source
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 generation
  • GenerateEnd: After LLM generation
  • SessionStart: When session is created
  • SessionEnd: 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§

GenerateEndEvent
Generate end event payload
GenerateStartEvent
Generate start event payload
Hook
Hook definition
HookConfig
Hook configuration
HookEngine
Hook engine
HookMatcher
Hook matcher for filtering events
HookResponse
Response from a hook handler
OnErrorEvent
On-error event payload
PostResponseEvent
Post-response event payload (fired after LLM response is processed)
PostToolUseEvent
Post-tool-use event payload
PrePromptEvent
Pre-prompt event payload (fired before prompt augmentation)
PreToolUseEvent
Pre-tool-use event payload
SessionEndEvent
Session end event payload
SessionStartEvent
Session start event payload
SkillLoadEvent
Skill load event payload
SkillUnloadEvent
Skill unload event payload
TokenUsageInfo
Token usage information
ToolCallInfo
Tool call information
ToolResultData
Tool execution result data

Enums§

ErrorType
Error type classification for OnError events
HookAction
Hook response action from SDK
HookEvent
Unified hook event enum
HookEventType
Hook event types
HookResult
Hook execution result

Traits§

HookExecutor
Hook executor trait
HookHandler
Hook handler trait