Commit d249fa3

mo khan <mo@mokhan.ca>
2026-01-22 00:47:17
feat: include ok response in llm tool call response
1 parent 6aa5c44
Changed files (1)
lib
lib/elelem/toolbox.rb
@@ -32,17 +32,25 @@ module Elelem
     def run(name, args)
       name = @aliases.fetch(name, name)
       tool = tools[name]
-      return { error: "unknown tool: #{name}. Use 'execute' to run shell commands like rg, fd, git.", tools: to_a } unless tool
+      return failure(error: "unknown tool: #{name}. Use 'execute' to run shell commands like rg, fd, git.", tools: to_a) unless tool
 
       errors = tool.validate(args)
-      return { error: errors.join(", ") } if errors.any?
+      return failure(error: errors.join(", ")) if errors.any?
 
       @hooks[:before][name].each { |h| h.call(args) }
       result = tool.call(args)
       @hooks[:after][name].each { |h| h.call(args, result) }
-      result
+      result[:error] ? failure(result) : success(result)
     rescue => e
-      { error: e.message, name: name, args: args }
+      failure(error: e.message, name: name, args: args)
+    end
+
+    def success(payload)
+      payload.merge(ok: true)
+    end
+
+    def failure(payload)
+      payload.merge(ok: false)
     end
 
     def to_a