Class: RubyCoded::Tools::Registry
- Inherits:
-
Object
- Object
- RubyCoded::Tools::Registry
- Defined in:
- lib/ruby_coded/tools/registry.rb
Overview
Builds and manages the set of tools available to the LLM in agentic mode.
Constant Summary collapse
- READONLY_TOOL_CLASSES =
[ ReadFileTool, ListDirectoryTool ].freeze
- TOOL_CLASSES =
[ *READONLY_TOOL_CLASSES, WriteFileTool, EditFileTool, CreateDirectoryTool, DeletePathTool, RunCommandTool ].freeze
Instance Method Summary collapse
- #build_readonly_tools ⇒ Object
- #build_tools ⇒ Object
-
#initialize(project_root:) ⇒ Registry
constructor
A new instance of Registry.
- #risk_level_for(tool_call_name) ⇒ Object
- #safe_tool?(tool_call_name) ⇒ Boolean
Constructor Details
#initialize(project_root:) ⇒ Registry
Returns a new instance of Registry.
29 30 31 |
# File 'lib/ruby_coded/tools/registry.rb', line 29 def initialize(project_root:) @project_root = project_root end |
Instance Method Details
#build_readonly_tools ⇒ Object
37 38 39 |
# File 'lib/ruby_coded/tools/registry.rb', line 37 def build_readonly_tools @build_readonly_tools ||= READONLY_TOOL_CLASSES.map { |klass| klass.new(project_root: @project_root) } end |
#build_tools ⇒ Object
33 34 35 |
# File 'lib/ruby_coded/tools/registry.rb', line 33 def build_tools @build_tools ||= TOOL_CLASSES.map { |klass| klass.new(project_root: @project_root) } end |
#risk_level_for(tool_call_name) ⇒ Object
46 47 48 49 |
# File 'lib/ruby_coded/tools/registry.rb', line 46 def risk_level_for(tool_call_name) klass = find_tool_class(tool_call_name) klass&.risk_level || BaseTool::DANGEROUS_RISK end |