Commit 1c2f38e
Changed files (3)
lib
elelem
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"]
}
},