Class: ActiveHarness::Generators::InstallGenerator

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

Constant Summary collapse

APP_AI_DIRS =
%w[agents prompts tribunals pipelines memory].freeze

Instance Method Summary collapse

Instance Method Details

#copy_controllerObject



35
36
37
38
39
40
41
# File 'lib/generators/active_harness/install/install_generator.rb', line 35

def copy_controller
  target = File.join(destination_root, "app", "controllers", "ai_support_controller.rb")
  return if File.exist?(target)

  copy_file "controllers/ai_controller.rb",
            "app/controllers/ai_support_controller.rb"
end

#create_initializerObject



19
20
21
22
23
24
25
# File 'lib/generators/active_harness/install/install_generator.rb', line 19

def create_initializer
  target = File.join(destination_root, "config", "initializers", "active_harness.rb")
  return if File.exist?(target)

  copy_file "initializers/active_harness.rb",
            "config/initializers/active_harness.rb"
end

#create_structureObject



12
13
14
15
16
17
# File 'lib/generators/active_harness/install/install_generator.rb', line 12

def create_structure
  APP_AI_DIRS.each do |dir|
    empty_directory "app/ai/#{dir}"
    copy_templates_if_empty(dir)
  end
end

#inject_routesObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/generators/active_harness/install/install_generator.rb', line 43

def inject_routes
  route <<~ROUTES.strip
    # ActiveHarness — AI support endpoints
    post "ai/agent",        to: "ai_support#agent"
    post "ai/agent_memory", to: "ai_support#agent_memory"
    post "ai/tribunal",     to: "ai_support#tribunal"
    post "ai/pipeline",     to: "ai_support#pipeline"
    get  "ai/agent_stream", to: "ai_support#agent_stream"
  ROUTES
end