Class: RailsAgents::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- RailsAgents::Generators::InstallGenerator
- Defined in:
- lib/generators/rails_agents/install/install_generator.rb
Instance Method Summary collapse
- #create_agents_guide ⇒ Object
- #create_agents_tree ⇒ Object
- #create_env_placeholders ⇒ Object
- #create_initializer ⇒ Object
- #discover_and_write_database_capability ⇒ Object
- #mount_engine ⇒ Object
- #show_next_steps ⇒ Object
Instance Method Details
#create_agents_guide ⇒ Object
21 22 23 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 21 def create_agents_guide template "AGENTS.md.tt", "AGENTS.md" end |
#create_agents_tree ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 25 def create_agents_tree empty_directory "app/agents" %w[tools skills connectors plugins knowledge knowledge/sources packages].each do |folder| empty_directory File.join("app/agents/shared", folder) end template "library_manifest.yml.tt", "app/agents/shared/manifest.yml" template "library_README.md.tt", "app/agents/shared/README.md" end |
#create_env_placeholders ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 55 def create_env_placeholders env_path = File.(".env", destination_root) placeholders = <<~ENV # Rails Agent Cloud platform key — NOT your OpenAI/Anthropic keys (those are BYOK in dashboard) # Written automatically when you connect from /agents RAILS_AGENTS_API_KEY= RAILS_AGENTS_PROJECT_ID= ENV if File.exist?(env_path) unless File.read(env_path).include?("RAILS_AGENTS_API_KEY") append_to_file ".env", placeholders end else create_file ".env.rails_agents.example", placeholders.lstrip end end |
#create_initializer ⇒ Object
12 13 14 15 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 12 def create_initializer template "initializer.rb.tt", "config/initializers/rails_agents.rb" template "rails_agents_autoload.rb.tt", "config/initializers/rails_agents_autoload.rb" end |
#discover_and_write_database_capability ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 34 def discover_and_write_database_capability require "rails_agents/database_discovery" result = RailsAgents::DatabaseDiscovery.discover!( root: destination_root, live: false # generators may run before boot; static YAML inspect is enough ) say "" if result.default_attach engines = [] engines << "ActiveRecord (#{result.adapters.join(', ')})" if result.active_record && result.adapters.any? engines << "ActiveRecord" if result.active_record && result.adapters.empty? engines << "Mongoid" if result.mongoid say " Database capability: #{engines.join(' + ')}", :green say " Wrote config/rails_agents_database.yml — new agents attach full-DB tools by default.", :green else say " No database.yml / mongoid.yml detected — agents will not auto-attach DB tools.", :yellow end rescue StandardError => e say " Database discovery skipped: #{e.}", :yellow end |
#mount_engine ⇒ Object
17 18 19 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 17 def mount_engine route "mount RailsAgents::Engine, at: \"/agents\"" end |
#show_next_steps ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/generators/rails_agents/install/install_generator.rb', line 74 def show_next_steps return unless behavior == :invoke port = ENV.fetch("PORT", "3000") url = "http://localhost:#{port}/agents" say "" say "============================================================", :green say " Rails Agents installed", :green say "============================================================", :green say "" say " 1. Start server: bin/dev (or bin/rails server)", :green say " 2. Connect: #{url}", :green say " 3. New agents auto-attach full-database query tools (detach anytime in Knowledge).", :green say " bin/rails generate rails_agents:agent my_agent --type knowledge", :green say "============================================================", :green say "" end |