Module: CodexSDK::Events

Defined in:
lib/codex_sdk/events.rb

Defined Under Namespace

Classes: Error, ItemCompleted, ItemStarted, ItemUpdated, ThreadStarted, TurnCompleted, TurnFailed, TurnStarted, Unknown

Class Method Summary collapse

Class Method Details

.parse(data) ⇒ Object

Parse a JSON hash into a typed event.



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/codex_sdk/events.rb', line 6

def self.parse(data)
  case data["type"]
  when "thread.started"  then ThreadStarted.new(thread_id: data["thread_id"])
  when "turn.started"    then TurnStarted.new
  when "turn.completed"  then TurnCompleted.from_json(data)
  when "turn.failed"     then TurnFailed.new(error_message: data.dig("error", "message").to_s)
  when "item.started"    then ItemStarted.new(item: Items.parse(data["item"]))
  when "item.updated"    then ItemUpdated.new(item: Items.parse(data["item"]))
  when "item.completed"  then ItemCompleted.new(item: Items.parse(data["item"]))
  when "error"           then Error.new(message: data["message"].to_s)
  else Unknown.new(type: data["type"], data: data)
  end
end