Class: RailsAiContext::Tools::RuntimeInfo

Inherits:
BaseTool
  • Object
show all
Defined in:
lib/rails_ai_context/tools/runtime_info.rb

Constant Summary

Constants inherited from BaseTool

BaseTool::SESSION_CONTEXT, BaseTool::SHARED_CACHE

Class Method Summary collapse

Methods inherited from BaseTool

abstract!, abstract?, cache_key, cached_context, config, extract_method_source_from_file, extract_method_source_from_string, find_closest_match, fuzzy_find_key, inherited, not_found_response, paginate, rails_app, registered_tools, reset_all_caches!, reset_cache!, session_queries, session_record, session_reset!, set_call_params, text_response

Class Method Details

.call(detail: "standard", section: nil, server_context: nil) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rails_ai_context/tools/runtime_info.rb', line 28

def self.call(detail: "standard", section: nil, server_context: nil)
  lines = [ "# Runtime Info", "" ]

  sections = section ? [ section ] : %w[connections database cache jobs]

  sections.each do |s|
    result = case s
    when "connections" then gather_connection_pool
    when "database"    then gather_database(detail)
    when "cache"       then gather_cache
    when "jobs"        then gather_jobs(detail)
    end
    lines.concat(result) if result&.any?
  end

  if lines.size <= 2
    lines << "_No runtime data available. Ensure the app has a database connection._"
  end

  text_response(lines.join("\n"))
rescue => e
  text_response("Runtime info error: #{e.message}")
end