Class: Riffer::Tracing::StreamRecorder

Inherits:
Object
  • Object
show all
Defined in:
lib/riffer/tracing/stream_recorder.rb

Overview

Wraps a stream yielder to observe terminal events for span stamping while forwarding every event downstream untouched.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(yielder) ⇒ StreamRecorder

– : (Enumerator::Yielder) -> void



21
22
23
24
# File 'lib/riffer/tracing/stream_recorder.rb', line 21

def initialize(yielder)
  @yielder = yielder
  @tool_calls = [] #: Array[Riffer::Messages::Assistant::ToolCall]
end

Instance Attribute Details

#contentObject (readonly)

: String?



15
16
17
# File 'lib/riffer/tracing/stream_recorder.rb', line 15

def content
  @content
end

#finish_reasonObject (readonly)

: Symbol?



11
12
13
# File 'lib/riffer/tracing/stream_recorder.rb', line 11

def finish_reason
  @finish_reason
end

#raw_finish_reasonObject (readonly)

: String?



13
14
15
# File 'lib/riffer/tracing/stream_recorder.rb', line 13

def raw_finish_reason
  @raw_finish_reason
end

#token_usageObject (readonly)

Returns the value of attribute token_usage.



9
10
11
# File 'lib/riffer/tracing/stream_recorder.rb', line 9

def token_usage
  @token_usage
end

#tool_callsObject (readonly)

: Array



17
18
19
# File 'lib/riffer/tracing/stream_recorder.rb', line 17

def tool_calls
  @tool_calls
end

Instance Method Details

#<<(event) ⇒ Object

– : (Riffer::StreamEvents::Base) -> self



28
29
30
31
32
# File 'lib/riffer/tracing/stream_recorder.rb', line 28

def <<(event)
  record(event)
  @yielder << event
  self
end