Class: RailsAiContext::Tools::GetEnv
- Defined in:
- lib/rails_ai_context/tools/get_env.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", server_context: nil) ⇒ Object
29 30 31 32 33 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/rails_ai_context/tools/get_env.rb', line 29 def self.call(detail: "standard", server_context: nil) root = rails_app.root.to_s env_vars = scan_env_vars(root) env_example = scan_env_example(root) dockerfile_vars = scan_dockerfile(root) external_services = detect_external_services(root) credentials_keys = detect_credentials_keys encrypted_columns = detect_encrypted_columns # Merge all discovered env var names all_var_names = Set.new env_vars.each { |_file, vars| vars.each { |v| all_var_names << v[:name] } } env_example.each { |v| all_var_names << v[:name] } dockerfile_vars.each { |v| all_var_names << v[:name] if v[:type] == "ENV" } if all_var_names.empty? && external_services.empty? && credentials_keys.empty? return text_response("No environment variables, external services, or credentials keys detected.") end case detail when "summary" format_summary(all_var_names, external_services, credentials_keys) when "standard" format_standard(env_vars, env_example, external_services, credentials_keys, encrypted_columns) when "full" format_full(env_vars, env_example, dockerfile_vars, external_services, credentials_keys, encrypted_columns, root) end end |