auditLogHook static method
Hook that logs all tool operations for audit trail.
Runs at HookPriority.monitor so it does not affect control flow.
Implementation
static HookRegistration auditLogHook({
required void Function(String entry) logEntry,
}) {
return HookRegistration(
id: 'builtin:audit-log',
type: HookType.postToolExecution,
priority: HookPriority.monitor,
name: 'Audit Log',
description: 'Logs all tool operations for audit trail.',
source: 'builtin',
tags: {'audit', 'logging'},
handler: (context) {
if (context is ToolHookContext) {
final entry =
'[${context.timestamp.toIso8601String()}] '
'Tool: ${context.toolName}, '
'Session: ${context.sessionId ?? "none"}, '
'Error: ${context.toolIsError ?? false}';
logEntry(entry);
}
return const HookContinue();
},
);
}