Module: ConsoleAgent::SessionLogger
- Defined in:
- lib/console_agent/session_logger.rb
Class Method Summary collapse
Class Method Details
.log(attrs) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/console_agent/session_logger.rb', line 4 def log(attrs) return unless ConsoleAgent.configuration.session_logging return unless table_exists? record = session_class.create!( query: attrs[:query], conversation: Array(attrs[:conversation]).to_json, input_tokens: attrs[:input_tokens] || 0, output_tokens: attrs[:output_tokens] || 0, user_name: current_user_name, mode: attrs[:mode].to_s, name: attrs[:name], code_executed: attrs[:code_executed], code_output: attrs[:code_output], code_result: attrs[:code_result], console_output: attrs[:console_output], executed: attrs[:executed] || false, provider: ConsoleAgent.configuration.provider.to_s, model: ConsoleAgent.configuration.resolved_model, duration_ms: attrs[:duration_ms], created_at: Time.respond_to?(:current) ? Time.current : Time.now ) record.id rescue => e msg = "ConsoleAgent: session logging failed: #{e.class}: #{e.}" $stderr.puts "\e[33m#{msg}\e[0m" if $stderr.respond_to?(:puts) ConsoleAgent.logger.warn(msg) nil end |
.update(id, attrs) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/console_agent/session_logger.rb', line 34 def update(id, attrs) return unless id return unless ConsoleAgent.configuration.session_logging return unless table_exists? updates = {} updates[:conversation] = Array(attrs[:conversation]).to_json if attrs.key?(:conversation) updates[:input_tokens] = attrs[:input_tokens] if attrs.key?(:input_tokens) updates[:output_tokens] = attrs[:output_tokens] if attrs.key?(:output_tokens) updates[:code_executed] = attrs[:code_executed] if attrs.key?(:code_executed) updates[:code_output] = attrs[:code_output] if attrs.key?(:code_output) updates[:code_result] = attrs[:code_result] if attrs.key?(:code_result) updates[:console_output] = attrs[:console_output] if attrs.key?(:console_output) updates[:executed] = attrs[:executed] if attrs.key?(:executed) updates[:duration_ms] = attrs[:duration_ms] if attrs.key?(:duration_ms) updates[:name] = attrs[:name] if attrs.key?(:name) session_class.where(id: id).update_all(updates) unless updates.empty? rescue => e msg = "ConsoleAgent: session update failed: #{e.class}: #{e.}" $stderr.puts "\e[33m#{msg}\e[0m" if $stderr.respond_to?(:puts) ConsoleAgent.logger.warn(msg) nil end |