Commit aec792c
Changed files (5)
lib/elelem/tools/fork.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+module Elelem
+ module Tools
+ def self.fork(agent, system_prompt:)
+ Elelem::Agent.new(agent.client, toolbox: agent.toolbox, terminal: agent.terminal, system_prompt: system_prompt)
+ end
+ end
+end
lib/elelem/tools/init.rb
@@ -24,6 +24,6 @@ Elelem::Plugins.register(:init) do |agent|
Keep it minimal. No fluff.
PROMPT
- agent.fork(system_prompt: system_prompt).turn("Generate AGENTS.md for this project")
+ Elelem::Tools.fork(agent, system_prompt: system_prompt).turn("Generate AGENTS.md for this project")
end
end
lib/elelem/tools/task.rb
@@ -6,7 +6,7 @@ Elelem::Plugins.register(:task) do |agent|
params: { prompt: { type: "string" } },
required: ["prompt"]
) do |args|
- sub = agent.fork(system_prompt: "Research agent. Search, analyze, report. Be concise.")
+ sub = Elelem::Tools.fork(agent, system_prompt: "Research agent. Search, analyze, report. Be concise.")
sub.turn(args["prompt"])
{ result: sub.conversation.last[:content] }
end
lib/elelem/tools.rb
@@ -9,6 +9,7 @@ require_relative "tools/compact"
require_relative "tools/confirm"
require_relative "tools/edit"
require_relative "tools/eval"
+require_relative "tools/fork"
require_relative "tools/git"
require_relative "tools/glob"
require_relative "tools/grep"
elelem-tools.gemspec
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
end
spec.require_paths = ["lib"]
- spec.add_dependency "elelem", "~> 0.10"
+ spec.add_dependency "elelem", "~> 0.11"
spec.add_dependency "pathname", "~> 0.5"
spec.add_dependency "tempfile", "~> 0.3"
end