Class: RailsAiContext::Tools::RuntimeInfo
- Defined in:
- lib/rails_ai_context/tools/runtime_info.rb
Constant Summary
Constants inherited from BaseTool
BaseTool::DEFAULT_SESSION, BaseTool::MAX_SESSIONS, BaseTool::MAX_SESSION_ID_LENGTH, BaseTool::SESSION_CONTEXT, BaseTool::SHARED_CACHE
Class Method Summary collapse
Methods inherited from BaseTool
abstract!, abstract?, api_only_app?, api_only_note, cache_key, cached_context, config, current_session, #dedupe_put_patch_routes, detail_param?, error_response, evict_oldest_sessions, extract_method_source_from_file, extract_method_source_from_string, find_closest_match, fuzzy_find_key, guide_row, inherited, introspection_warnings_note, invalid_detail_note, normalize_detail, not_found_response, paginate, rails_app, rails_env_name, registered_tools, reset_all_caches!, reset_cache!, session_from, session_params, session_queries, session_record, session_reset!, static_tier_banner, static_tier_refusal, text_response, touch_session, unavailable_note, with_session, with_session_for
Methods included from SectionFetch
Class Method Details
.call(detail: "standard", section: nil, server_context: nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/rails_ai_context/tools/runtime_info.rb', line 35 def self.call(detail: "standard", section: nil, server_context: nil) if (refusal = static_tier_refusal("Live runtime state")) return refusal end 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.}") end |