auditLog static method

ConversationLifecycle auditLog({
  1. required void log(
    1. String entry
    ),
})

Audit log lifecycle hooks.

Logs key lifecycle events (session start/end, tool executions) to a provided callback for persistence or monitoring.

Implementation

static ConversationLifecycle auditLog({
  required void Function(String entry) log,
}) {
  return ConversationLifecycle(
    onConversationStart: (event) async {
      log(
        '[${event.timestamp.toIso8601String()}] '
        'Conversation started: ${event.conversationId}',
      );
    },
    onTurnStart: (event) async {
      log(
        '[${event.timestamp.toIso8601String()}] '
        'Turn ${event.turnIndex} started',
      );
    },
    onTurnEnd: (event) async {
      log(
        '[${event.timestamp.toIso8601String()}] '
        'Turn ${event.turnIndex} ended '
        '(tokens: ${event.tokensUsed}, '
        'tools: ${event.toolInvocations}, '
        'duration: ${event.duration.inMilliseconds}ms)',
      );
    },
    onConversationEnd: (event) async {
      log(
        '[${event.timestamp.toIso8601String()}] '
        'Conversation ended: ${event.conversationId} '
        '(${event.turnCount} turns, '
        '${event.totalTokens} tokens)',
      );
    },
    onCompaction: (event) async {
      log(
        '[${event.timestamp.toIso8601String()}] '
        'Compaction: ${event.messagesRemoved} messages removed, '
        '${event.tokensSaved} tokens saved',
      );
    },
  );
}