Commit b5925a8

mo khan <mo@mokhan.ca>
2026-01-27 20:46:26
feat: add support for `/context <entry>`
1 parent ce37240
Changed files (1)
lib
elelem
builtins
lib/elelem/builtins/builtins.rb
@@ -8,8 +8,30 @@ Elelem::Plugins.register(:builtins) do |agent|
     agent.terminal.say "  → context cleared"
   end
 
-  agent.commands.register("context", description: "Show conversation context") do
-    agent.terminal.say JSON.pretty_generate(agent.context)
+  agent.commands.register("context", description: "Show conversation context") do |args|
+    messages = agent.context
+
+    case args
+    when nil, ""
+      messages.each_with_index do |msg, i|
+        role = msg[:role]
+        preview = msg[:content].to_s.lines.first&.strip&.slice(0, 60) || ""
+        preview += "..." if msg[:content].to_s.length > 60
+        agent.terminal.say "  #{i + 1}. #{role}: #{preview}"
+      end
+    when "json"
+      agent.terminal.say JSON.pretty_generate(messages)
+    when /^\d+$/
+      index = args.to_i - 1
+      if index >= 0 && index < messages.length
+        content = messages[index][:content].to_s
+        agent.terminal.say(agent.terminal.markdown(content))
+      else
+        agent.terminal.say "  Invalid index: #{args}"
+      end
+    else
+      agent.terminal.say "  Usage: /context [json|<number>]"
+    end
   end
 
   agent.commands.register("shell", description: "Start interactive shell") do