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



64
65
66
# File 'lib/turnkit/run.rb', line 64

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

#costObject



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

def cost = Cost.from_records(turn_records)

#descendant_turn_recordsObject



68
69
70
# File 'lib/turnkit/run.rb', line 68

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

#errorObject



25
26
27
# File 'lib/turnkit/run.rb', line 25

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

#failed_turn_recordsObject



72
73
74
# File 'lib/turnkit/run.rb', line 72

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



29
30
31
32
33
34
# File 'lib/turnkit/run.rb', line 29

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_auditObject



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

def output_audit = turn.output_audit

#output_audit_clean?Boolean

Returns:

  • (Boolean)


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

def output_audit_clean? = output_audit.nil? || output_audit.fetch("clean", false)

#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)


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

def persisted? = true

#previewObject



50
51
52
# File 'lib/turnkit/run.rb', line 50

def preview
  turn.preview
end

#reloadObject



45
46
47
48
# File 'lib/turnkit/run.rb', line 45

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



40
41
42
43
# File 'lib/turnkit/run.rb', line 40

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

#statusObject



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

def status = turn.status

#stepsObject



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

def steps = turn_records.length

#tool_callsObject



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

def tool_calls = tool_executions

#tool_executionsObject



54
55
56
57
58
# File 'lib/turnkit/run.rb', line 54

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



60
61
62
# File 'lib/turnkit/run.rb', line 60

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

#usageObject



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

def usage = Usage.from_records(turn_records)