Class: TurnKit::Run

Inherits:
Object
  • Object
show all
Defined in:
lib/turnkit/run.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(turn) ⇒ Run

Returns a new instance of Run.



7
8
9
# File 'lib/turnkit/run.rb', line 7

def initialize(turn)
  @turn = turn
end

Instance Attribute Details

#turnObject (readonly)

Returns the value of attribute turn.



5
6
7
# File 'lib/turnkit/run.rb', line 5

def turn
  @turn
end

Instance Method Details

#child_turn_recordsObject



62
63
64
# File 'lib/turnkit/run.rb', line 62

def child_turn_records
  turn_records.select { |record| record["parent_turn_id"] == id }
end

#costObject



18
# File 'lib/turnkit/run.rb', line 18

def cost = Cost.from_records(turn_records)

#descendant_turn_recordsObject



66
67
68
# File 'lib/turnkit/run.rb', line 66

def descendant_turn_records
  turn_records.reject { |record| record.fetch("id") == id }
end

#errorObject



23
24
25
# File 'lib/turnkit/run.rb', line 23

def error
  turn.store.load_turn(id)["error"]
end

#failed_turn_recordsObject



70
71
72
# File 'lib/turnkit/run.rb', line 70

def failed_turn_records
  turn_records.select { |record| record["status"] == "failed" }
end

#idObject



11
# File 'lib/turnkit/run.rb', line 11

def id = turn.id

#messagesObject



27
28
29
30
31
32
# File 'lib/turnkit/run.rb', line 27

def messages
  turn_records.flat_map do |record|
    conversation = turn.store.load_conversation(record.fetch("conversation_id"))
    turn.store.list_messages(conversation.fetch("id"))
  end
end

#outputObject



14
# File 'lib/turnkit/run.rb', line 14

def output = output_text

#output_dataObject



16
# File 'lib/turnkit/run.rb', line 16

def output_data = turn.output_data

#output_textObject



15
# File 'lib/turnkit/run.rb', line 15

def output_text = turn.output_text

#persisted?Boolean

Returns:

  • (Boolean)


21
# File 'lib/turnkit/run.rb', line 21

def persisted? = true

#previewObject



48
49
50
# File 'lib/turnkit/run.rb', line 48

def preview
  turn.preview
end

#reloadObject



43
44
45
46
# File 'lib/turnkit/run.rb', line 43

def reload
  turn.reload
  self
end

#root_turn_idObject



12
# File 'lib/turnkit/run.rb', line 12

def root_turn_id = turn.root_turn_id

#run!(&block) ⇒ Object



38
39
40
41
# File 'lib/turnkit/run.rb', line 38

def run!(&block)
  turn.run!(&block)
  self
end

#statusObject



13
# File 'lib/turnkit/run.rb', line 13

def status = turn.status

#stepsObject



19
# File 'lib/turnkit/run.rb', line 19

def steps = turn_records.length

#tool_callsObject



20
# File 'lib/turnkit/run.rb', line 20

def tool_calls = tool_executions

#tool_executionsObject



52
53
54
55
56
# File 'lib/turnkit/run.rb', line 52

def tool_executions
  turn_records.flat_map do |record|
    turn.store.list_tool_executions(turn_id: record.fetch("id")).map { |attrs| ToolExecution.new(attrs) }
  end
end

#turn_recordsObject



58
59
60
# File 'lib/turnkit/run.rb', line 58

def turn_records
  turn.store.list_turns(root_turn_id: root_turn_id)
end

#usageObject



17
# File 'lib/turnkit/run.rb', line 17

def usage = Usage.from_records(turn_records)