Commit ea5831f

mo khan <mo@mokhan.ca>
2026-01-22 01:07:41
fix: use the tool name not the alias name
1 parent 62ca959
Changed files (1)
lib
lib/elelem/toolbox.rb
@@ -25,26 +25,35 @@ module Elelem
     end
 
     def header(name, args)
-      name = name.to_s.empty? ? "?" : name
+      name = tool_for(name)&.name || "?"
       "\n+ #{name}(#{args})"
     end
 
     def run(name, args)
-      name = @aliases.fetch(name, name)
-      tool = tools[name]
+      tool = tool_for(name)
       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 failure(error: errors.join(", ")) if errors.any?
 
-      @hooks[:before][name].each { |h| h.call(args) }
+      @hooks[:before][tool.name].each { |h| h.call(args) }
       result = tool.call(args)
-      @hooks[:after][name].each { |h| h.call(args, result) }
+      @hooks[:after][tool.name].each { |h| h.call(args, result) }
       result[:error] ? failure(result) : success(result)
     rescue => e
       failure(error: e.message, name: name, args: args)
     end
 
+    def to_a
+      tools.values.map(&:to_h)
+    end
+
+    private
+
+    def tool_for(name)
+      tools[@aliases.fetch(name, name)]
+    end
+
     def success(payload)
       payload.merge(ok: true)
     end
@@ -52,9 +61,5 @@ module Elelem
     def failure(payload)
       payload.merge(ok: false)
     end
-
-    def to_a
-      tools.values.map(&:to_h)
-    end
   end
 end