main
 1# frozen_string_literal: true
 2
 3Elelem::Plugins.register(:eval) do |agent|
 4  description = <<~'DESC'
 5    Evaluate Ruby code. Available API:
 6
 7    name = "search"
 8    agent.toolbox.add(name, description: "Search using rg", params: { query: { type: "string" } }, required: ["query"], aliases: []) do |args|
 9      agent.toolbox.run("execute", { "command" => "rg --json -nI -F #{args["query"]}" })
10    end
11  DESC
12
13  agent.toolbox.add("eval",
14    description: description,
15    params: { ruby: { type: "string" } },
16    required: ["ruby"]
17  ) do |args|
18    { result: binding.eval(args["ruby"]) }
19  end
20end