auditLogHook static method

HookRegistration auditLogHook({
  1. required void logEntry(
    1. String entry
    ),
})

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();
    },
  );
}