Module: Ask::Rails

Defined in:
lib/ask/rails.rb,
lib/ask/rails/tool.rb,
lib/ask/rails/engine.rb,
lib/ask/rails/railtie.rb,
lib/ask/rails/version.rb,
lib/ask/rails/persistence.rb,
lib/ask/rails/configuration.rb,
lib/ask/rails/tools/read_log.rb,
lib/ask/rails/tools/read_file.rb,
lib/ask/rails/tools/read_model.rb,
lib/ask/rails/service_discovery.rb,
lib/ask/rails/tools/read_routes.rb,
lib/ask/rails/tools/run_command.rb,
lib/ask/rails/tools/query_database.rb,
lib/ask/rails/tools/search_codebase.rb,
lib/generators/ask/rails/install/install_generator.rb

Defined Under Namespace

Modules: Generators, ServiceDiscovery, Tools Classes: Configuration, Engine, Persistence, Railtie, Tool

Constant Summary collapse

VERSION =
"0.2.3"

Class Method Summary collapse

Class Method Details

.agent_session(**extra) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ask/rails.rb', line 18

def agent_session(**extra)
  tools = configuration.tools.map { |t| t.is_a?(Class) ? t.new : t }
  prompt = extra.delete(:system_prompt) || configuration.system_prompt || default_system_prompt

  Ask::Agent::Session.new(
    model: configuration.default_model,
    max_turns: configuration.max_turns,
    system_prompt: prompt,
    tools: tools,
    persistence: configuration.persistence_adapter,
    **extra
  )
end

.configurationObject



14
15
16
# File 'lib/ask/rails.rb', line 14

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



10
11
12
# File 'lib/ask/rails.rb', line 10

def configure
  yield configuration
end

.discover_tools!Object



32
33
34
# File 'lib/ask/rails.rb', line 32

def discover_tools!
  self.configuration.tools = Ask::Tools::Shell::TOOLS.map(&:new) + discovered_rails_tools
end

.rootObject



36
37
38
# File 'lib/ask/rails.rb', line 36

def root
  @root ||= Pathname.new(File.expand_path("..", __dir__))
end