HookExecutor class
Central hook execution engine.
Manages hook registration, chain execution, history tracking, and statistics. All hook execution flows through this class.
Usage:
final executor = HookExecutor();
// Register a hook
executor.register(HookRegistration(
id: 'my-hook',
type: HookType.preToolExecution,
name: 'My Hook',
handler: (ctx) => const HookContinue(),
));
// Execute hooks for a type
final result = await executor.executeAsync(
HookType.preToolExecution,
ToolHookContext(
hookType: HookType.preToolExecution,
timestamp: DateTime.now(),
toolName: 'bash',
toolInput: {'command': 'ls'},
),
);
Constructors
- HookExecutor({int maxHistorySize = 1000, Duration defaultTimeout = const Duration(seconds: 5)})
Properties
- defaultTimeout → Duration
-
Default timeout for individual hook execution.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxHistorySize → int
-
Maximum number of history entries to keep.
final
-
onHookExecuted
→ Stream<
HookExecutionEvent> -
Stream of hook execution events. Subscribe to monitor all hook activity.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
clearAll(
) → void - Remove all registered hooks.
-
clearHistory(
) → void - Clear all execution history and reset statistics.
-
disable(
String hookId) → void - Disable a hook without unregistering it.
-
dispose(
) → void - Dispose of the executor, closing the event stream.
-
enable(
String hookId) → void - Enable a previously disabled hook.
-
execute(
HookType type, HookContext context) → HookResult - Execute all matching hooks for the given type synchronously.
-
executeAsync(
HookType type, HookContext context) → Future< HookResult> - Execute all matching hooks for the given type asynchronously.
-
executeBatch(
HookType type, List< HookContext> contexts) → Future<List< HookResult> > - Execute hooks for a batch of contexts, returning one result per context.
-
executeWithTimeout(
HookType type, HookContext context, Duration timeout) → Future< HookResult> - Execute hooks with an overall timeout for the entire chain.
-
getExecutionHistory(
{HookType? type, int? limit}) → List< HookExecutionEvent> - Get execution history, optionally filtered by type and/or limited.
-
getRegistered(
{HookType? type, HookPriority? priority}) → List< HookRegistration> - Get all registered hooks, optionally filtered by type and/or priority.
-
hasHooks(
HookType type) → bool - Check if any hooks are registered for a given type.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
register(
HookRegistration registration) → String - Register a hook and return its ID.
-
stats(
) → HookStats - Get aggregate execution statistics.
-
toString(
) → String -
A string representation of this object.
inherited
-
unregister(
String hookId) → bool - Unregister a hook by ID. Returns true if found and removed.
-
unregisterSource(
String source) → int - Unregister all hooks from a given source.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited