Class: RailsAgents::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/rails_agents/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_agents_guideObject



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_env_placeholdersObject



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/generators/rails_agents/install/install_generator.rb', line 33

def create_env_placeholders
  env_path = File.expand_path(".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_initializerObject



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

#create_workspace_libraryObject



25
26
27
28
29
30
31
# File 'lib/generators/rails_agents/install/install_generator.rb', line 25

def create_workspace_library
  %w[tools skills connectors plugins knowledge knowledge/sources packages].each do |folder|
    empty_directory File.join("app/agents_library", folder)
  end
  template "library_manifest.yml.tt", "app/agents_library/manifest.yml"
  template "library_README.md.tt", "app/agents_library/README.md"
end

#mount_engineObject



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_stepsObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/generators/rails_agents/install/install_generator.rb', line 52

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. Read AGENTS.md — scaffold your first database Knowledge agent:", :green
  say "     bin/rails generate rails_agents:agent my_agent --type knowledge --database", :green
  say "============================================================", :green
  say ""
end