Commit 1c2f38e

mo khan <mo@mokhan.ca>
2025-08-12 22:18:34
fix: record assistant responses
1 parent dafa0ad
Changed files (3)
lib/elelem/conversation.rb
@@ -23,7 +23,7 @@ module Elelem
     def add(role: user, content: "")
       raise "unknown role: #{role}" unless ROLES.include?(role.to_sym)
 
-      @items.push({ role: role, content: content })
+      @items.push({ role: role, content: content }) unless content.empty?
     end
   end
 end
lib/elelem/state.rb
@@ -19,6 +19,10 @@ module Elelem
       def initialize(agent)
         @agent = agent
       end
+
+      def display_name
+        self.class.name.split("::").last
+      end
     end
 
     class Waiting < State
@@ -66,7 +70,7 @@ module Elelem
     class Talking < State
       def process(message)
         if message["content"] && !message["content"]&.empty?
-          # agent.conversation.add(role: message["role"], content: message["content"])
+          agent.conversation.add(role: message["role"], content: message["content"])
           agent.say(message["content"], colour: :default, newline: false)
           self
         else
@@ -87,7 +91,7 @@ module Elelem
           message = normalize(response["message"] || {})
           done = response["done"]
 
-          agent.logger.debug("[#{state.class.name} (#{done})]: #{message}")
+          agent.logger.debug("#{state.display_name}: #{message}")
           state = state.process(message)
         end
 
lib/elelem/tools.rb
@@ -10,7 +10,9 @@ module Elelem
           description: "Execute a shell command.",
           parameters: {
             type: "object",
-            properties: { command: { type: "string" } },
+            properties: {
+              command: { type: "string" },
+            },
             required: ["command"]
           }
         },