Class: OllamaAgent::Runtime::KernelEventLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/ollama_agent/runtime/kernel_event_logger.rb

Overview

Duck-typed hooks subscriber: JSON one-line kernel observability events.

Instance Method Summary collapse

Constructor Details

#initialize(logger:, rollback_signals: nil) ⇒ KernelEventLogger

Returns a new instance of KernelEventLogger.



9
10
11
12
# File 'lib/ollama_agent/runtime/kernel_event_logger.rb', line 9

def initialize(logger:, rollback_signals: nil)
  @logger = logger
  @rollback_signals = rollback_signals
end

Instance Method Details

#emit(event, payload) ⇒ Object

rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize

Parameters:

  • event (Symbol)
  • payload (Hash)


17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ollama_agent/runtime/kernel_event_logger.rb', line 17

def emit(event, payload)
  ph = payload.respond_to?(:to_h) ? payload.to_h : {}
  row = {
    ts_epoch: ph[:epoch] || ph["epoch"] || monotonic_epoch,
    event: event.to_s,
    manifest_id: ph[:manifest_id] || ph["manifest_id"],
    state: (ph[:state] || ph["state"])&.to_s,
    result: (ph[:result] || ph["result"])&.to_s,
    error: ph[:error] || ph["error"]&.to_s,
    kind: ph[:kind] || ph["kind"]&.to_s,
    scopes: ph[:scopes] || ph["scopes"],
    reason: ph[:reason] || ph["reason"]&.to_s,
    intent_hash: ph[:intent_hash] || ph["intent_hash"]
  }
  @logger.info(JSON.generate(row.compact))
  forward_rollback(event, ph)
end