Commit 078138b
Changed files (2)
lib
elelem
spec
elelem
lib/elelem/toolbox.rb
@@ -42,7 +42,7 @@ module Elelem
{ status: response.code.to_i, body: response.body }
end
- WEB_SEARCH_TOOL = Tool.build("search_engine", "Search the web using DuckDuckGo. Returns raw API response.", { query: { type: "string", description: "The search query" } }, ["query"]) do |args|
+ WEB_SEARCH_TOOL = Tool.build("web_search", "Search the web using DuckDuckGo. Returns raw API response.", { query: { type: "string", description: "The search query" } }, ["query"]) do |args|
query = CGI.escape(args["query"])
url = "https://api.duckduckgo.com/?q=#{query}&format=json&no_html=1"
client = Net::Hippie::Client.new
@@ -52,8 +52,9 @@ module Elelem
TOOL_ALIASES = {
"bash" => "exec",
- "duckduckgo" => "search_engine",
- "ddg" => "search_engine",
+ "duckduckgo" => "web_search",
+ "ddg" => "web_search",
+ "search_engine" => "web_search",
"execute" => "exec",
"get" => "fetch",
"open" => "read",
spec/elelem/toolbox_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe Elelem::Toolbox do
tools = subject.tools_for(mode)
tool_names = tools.map { |t| t.dig(:function, :name) }
- expect(tool_names).to include("grep", "list", "read", "fetch", "search_engine")
+ expect(tool_names).to include("grep", "list", "read", "fetch", "web_search")
expect(tool_names).not_to include("write", "patch", "exec")
end
@@ -36,7 +36,7 @@ RSpec.describe Elelem::Toolbox do
tools = subject.tools_for(mode)
tool_names = tools.map { |t| t.dig(:function, :name) }
- expect(tool_names).to include("grep", "list", "read", "patch", "write", "exec", "fetch", "search_engine")
+ expect(tool_names).to include("grep", "list", "read", "patch", "write", "exec", "fetch", "web_search")
end
it "returns combined tools for build mode" do
@@ -44,16 +44,16 @@ RSpec.describe Elelem::Toolbox do
tools = subject.tools_for(mode)
tool_names = tools.map { |t| t.dig(:function, :name) }
- expect(tool_names).to include("grep", "read", "write", "patch", "fetch", "search_engine")
+ expect(tool_names).to include("grep", "read", "write", "patch", "fetch", "web_search")
expect(tool_names).not_to include("exec")
end
end
describe "web tools" do
- it "includes fetch and search_engine in read permissions" do
+ it "includes fetch and web_search in read permissions" do
tools = subject.tools_for([:read])
names = tools.map { |t| t.dig(:function, :name) }
- expect(names).to include("fetch", "search_engine")
+ expect(names).to include("fetch", "web_search")
end
it "resolves web and get aliases to fetch" do
@@ -61,8 +61,8 @@ RSpec.describe Elelem::Toolbox do
expect(Elelem::Toolbox::TOOL_ALIASES["get"]).to eq("fetch")
end
- it "resolves duckduckgo alias to search_engine" do
- expect(Elelem::Toolbox::TOOL_ALIASES["duckduckgo"]).to eq("search_engine")
+ it "resolves duckduckgo alias to web_search" do
+ expect(Elelem::Toolbox::TOOL_ALIASES["duckduckgo"]).to eq("web_search")
end
end