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



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

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



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

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



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

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
# File 'lib/turnkit/run.rb', line 29

def messages
  turn_records.map { |record| record.fetch("conversation_id") }.uniq.flat_map do |conversation_id|
    turn.store.list_messages(conversation_id).map { |attrs| Message.new(attrs) }
  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)


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

def persisted? = true

#policy_auditObject



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

def policy_audit = turn.policy_audit

#policy_clean?Boolean

Returns:

  • (Boolean)


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

def policy_clean? = policy_audit.nil? || policy_audit.fetch("clean", false)

#previewObject



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

def preview
  turn.preview
end

#reloadObject



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

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



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

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



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

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



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

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)