Module: RubyLLM::Toolbox
- Defined in:
- lib/ruby_llm/toolbox.rb,
lib/ruby_llm/toolbox/base.rb,
lib/ruby_llm/toolbox/toml.rb,
lib/ruby_llm/toolbox/version.rb,
lib/ruby_llm/toolbox/data_path.rb,
lib/ruby_llm/toolbox/safe_math.rb,
lib/ruby_llm/toolbox/text_diff.rb,
lib/ruby_llm/toolbox/truncator.rb,
lib/ruby_llm/toolbox/tools/diff.rb,
lib/ruby_llm/toolbox/tools/glob.rb,
lib/ruby_llm/toolbox/tools/lint.rb,
lib/ruby_llm/toolbox/tools/tree.rb,
lib/ruby_llm/toolbox/ruby_outline.rb,
lib/ruby_llm/toolbox/sandbox/base.rb,
lib/ruby_llm/toolbox/search/brave.rb,
lib/ruby_llm/toolbox/tools/bundle.rb,
lib/ruby_llm/toolbox/configuration.rb,
lib/ruby_llm/toolbox/search/tavily.rb,
lib/ruby_llm/toolbox/tools/git_add.rb,
lib/ruby_llm/toolbox/tools/git_log.rb,
lib/ruby_llm/toolbox/process_runner.rb,
lib/ruby_llm/toolbox/sandbox/docker.rb,
lib/ruby_llm/toolbox/search/searxng.rb,
lib/ruby_llm/toolbox/tools/csv_read.rb,
lib/ruby_llm/toolbox/tools/gem_tool.rb,
lib/ruby_llm/toolbox/tools/git_diff.rb,
lib/ruby_llm/toolbox/tools/git_grep.rb,
lib/ruby_llm/toolbox/tools/git_show.rb,
lib/ruby_llm/toolbox/tools/run_ruby.rb,
lib/ruby_llm/toolbox/tools/run_rust.rb,
lib/ruby_llm/toolbox/tools/bash_tool.rb,
lib/ruby_llm/toolbox/tools/csv_write.rb,
lib/ruby_llm/toolbox/tools/date_time.rb,
lib/ruby_llm/toolbox/tools/edit_file.rb,
lib/ruby_llm/toolbox/tools/git_blame.rb,
lib/ruby_llm/toolbox/tools/move_file.rb,
lib/ruby_llm/toolbox/tools/read_file.rb,
lib/ruby_llm/toolbox/tools/run_tests.rb,
lib/ruby_llm/toolbox/tools/web_fetch.rb,
lib/ruby_llm/toolbox/process_registry.rb,
lib/ruby_llm/toolbox/safety/path_jail.rb,
lib/ruby_llm/toolbox/safety/url_guard.rb,
lib/ruby_llm/toolbox/tools/calculator.rb,
lib/ruby_llm/toolbox/tools/git_branch.rb,
lib/ruby_llm/toolbox/tools/git_commit.rb,
lib/ruby_llm/toolbox/tools/git_status.rb,
lib/ruby_llm/toolbox/tools/grep_files.rb,
lib/ruby_llm/toolbox/tools/json_query.rb,
lib/ruby_llm/toolbox/tools/multi_edit.rb,
lib/ruby_llm/toolbox/tools/parse_ruby.rb,
lib/ruby_llm/toolbox/tools/run_python.rb,
lib/ruby_llm/toolbox/tools/todo_write.rb,
lib/ruby_llm/toolbox/tools/toml_query.rb,
lib/ruby_llm/toolbox/tools/web_search.rb,
lib/ruby_llm/toolbox/tools/write_file.rb,
lib/ruby_llm/toolbox/tools/yaml_query.rb,
lib/ruby_llm/toolbox/tools/apply_patch.rb,
lib/ruby_llm/toolbox/tools/delete_file.rb,
lib/ruby_llm/toolbox/tools/git_helpers.rb,
lib/ruby_llm/toolbox/tools/sandbox_run.rb,
lib/ruby_llm/toolbox/sandbox/bubblewrap.rb,
lib/ruby_llm/toolbox/tools/git_checkout.rb,
lib/ruby_llm/toolbox/tools/http_helpers.rb,
lib/ruby_llm/toolbox/tools/http_request.rb,
lib/ruby_llm/toolbox/tools/process_kill.rb,
lib/ruby_llm/toolbox/tools/process_list.rb,
lib/ruby_llm/toolbox/tools/python_tests.rb,
lib/ruby_llm/toolbox/tools/download_file.rb,
lib/ruby_llm/toolbox/tools/process_start.rb,
lib/ruby_llm/toolbox/safety/command_guard.rb,
lib/ruby_llm/toolbox/sandbox/sandbox_exec.rb,
lib/ruby_llm/toolbox/tools/list_directory.rb,
lib/ruby_llm/toolbox/tools/process_output.rb,
lib/ruby_llm/toolbox/tools/create_directory.rb,
lib/ruby_llm/toolbox/tools/replace_in_files.rb,
lib/ruby_llm/toolbox/tools/toolchain_helpers.rb
Overview
A safe-by-default bundle of RubyLLM::Tool classes covering the skills common to most LLM harnesses. One require loads everything; the dangerous tools are inert until you flip config.enable_exec_tools.
Defined Under Namespace
Modules: DataPath, ProcessRegistry, ProcessRunner, RubyOutline, SafeMath, Safety, Sandbox, Search, TextDiff, Toml, Tools Classes: Base, Configuration, ManagedProcess, Truncator
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
-
.all_tools(**overrides) ⇒ Object
Everything.
- .config ⇒ Object
- .configure {|config| ... } ⇒ Object
-
.exec_tools(**overrides) ⇒ Object
Tools whose effects are gated behind enable_exec_tools.
-
.reset! ⇒ Object
Resets global config.
-
.safe_tools(**overrides) ⇒ Object
Always-on, read-only tools.
Class Method Details
.all_tools(**overrides) ⇒ Object
Everything. Exec tools still honor the gate at call time, so handing the full set to a chat is safe by default.
156 157 158 |
# File 'lib/ruby_llm/toolbox.rb', line 156 def all_tools(**overrides) safe_tools(**overrides) + exec_tools(**overrides) end |
.config ⇒ Object
79 80 81 |
# File 'lib/ruby_llm/toolbox.rb', line 79 def config @config ||= Configuration.new end |
.configure {|config| ... } ⇒ Object
83 84 85 |
# File 'lib/ruby_llm/toolbox.rb', line 83 def configure yield config end |
.exec_tools(**overrides) ⇒ Object
Tools whose effects are gated behind enable_exec_tools.
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'lib/ruby_llm/toolbox.rb', line 127 def exec_tools(**overrides) [ Tools::WriteFile.new(**overrides), Tools::EditFile.new(**overrides), Tools::MultiEdit.new(**overrides), Tools::CreateDirectory.new(**overrides), Tools::MoveFile.new(**overrides), Tools::DeleteFile.new(**overrides), Tools::GitAdd.new(**overrides), Tools::GitCommit.new(**overrides), Tools::GitCheckout.new(**overrides), Tools::ApplyPatch.new(**overrides), Tools::CsvWrite.new(**overrides), Tools::ReplaceInFiles.new(**overrides), Tools::DownloadFile.new(**overrides), Tools::RunTests.new(**overrides), Tools::PythonTests.new(**overrides), Tools::Lint.new(**overrides), Tools::Bundle.new(**overrides), Tools::BashTool.new(**overrides), Tools::ProcessStart.new(**overrides), Tools::RunRuby.new(**overrides), Tools::RunPython.new(**overrides), Tools::RunRust.new(**overrides) ] end |
.reset! ⇒ Object
Resets global config. Primarily for tests.
88 89 90 |
# File 'lib/ruby_llm/toolbox.rb', line 88 def reset! @config = nil end |
.safe_tools(**overrides) ⇒ Object
Always-on, read-only tools.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/ruby_llm/toolbox.rb', line 93 def safe_tools(**overrides) [ Tools::ReadFile.new(**overrides), Tools::ListDirectory.new(**overrides), Tools::Tree.new(**overrides), Tools::Glob.new(**overrides), Tools::GrepFiles.new(**overrides), Tools::GemTool.new(**overrides), Tools::ParseRuby.new(**overrides), Tools::WebFetch.new(**overrides), Tools::WebSearch.new(**overrides), Tools::HttpRequest.new(**overrides), Tools::GitStatus.new(**overrides), Tools::GitDiff.new(**overrides), Tools::GitLog.new(**overrides), Tools::GitShow.new(**overrides), Tools::GitBlame.new(**overrides), Tools::GitGrep.new(**overrides), Tools::GitBranch.new(**overrides), Tools::JsonQuery.new(**overrides), Tools::YamlQuery.new(**overrides), Tools::TomlQuery.new(**overrides), Tools::CsvRead.new(**overrides), Tools::Calculator.new(**overrides), Tools::DateTime.new(**overrides), Tools::Diff.new(**overrides), Tools::TodoWrite.new(**overrides), Tools::ProcessOutput.new(**overrides), Tools::ProcessList.new(**overrides), Tools::ProcessKill.new(**overrides) ] end |