Module: ConsoleAgent::ConsoleMethods
- Defined in:
- lib/console_agent/console_methods.rb
Instance Method Summary collapse
- #ai(query = nil) ⇒ Object
- #ai!(query = nil) ⇒ Object
- #ai?(query = nil) ⇒ Boolean
- #ai_memories(n = nil) ⇒ Object
- #ai_status ⇒ Object
Instance Method Details
#ai(query = nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/console_agent/console_methods.rb', line 49 def ai(query = nil) if query.nil? $stderr.puts "\e[33mUsage: ai \"your question here\"\e[0m" $stderr.puts "\e[33m ai \"query\" - ask + confirm execution\e[0m" $stderr.puts "\e[33m ai! \"query\" - enter interactive mode (or ai! with no args)\e[0m" $stderr.puts "\e[33m ai? \"query\" - explain only, no execution\e[0m" $stderr.puts "\e[33m ai_status - show current configuration\e[0m" $stderr.puts "\e[33m ai_memories - show recent memories (ai_memories(n) for last n)\e[0m" return nil end require 'console_agent/context_builder' require 'console_agent/providers/base' require 'console_agent/executor' require 'console_agent/repl' repl = Repl.new(__console_agent_binding) repl.one_shot(query.to_s) rescue => e $stderr.puts "\e[31mConsoleAgent error: #{e.message}\e[0m" nil end |
#ai!(query = nil) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/console_agent/console_methods.rb', line 72 def ai!(query = nil) require 'console_agent/context_builder' require 'console_agent/providers/base' require 'console_agent/executor' require 'console_agent/repl' repl = Repl.new(__console_agent_binding) if query repl.one_shot(query.to_s) else repl.interactive end rescue => e $stderr.puts "\e[31mConsoleAgent error: #{e.message}\e[0m" nil end |
#ai?(query = nil) ⇒ Boolean
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/console_agent/console_methods.rb', line 90 def ai?(query = nil) unless query $stderr.puts "\e[33mUsage: ai? \"your question here\" - explain without executing\e[0m" return nil end require 'console_agent/context_builder' require 'console_agent/providers/base' require 'console_agent/executor' require 'console_agent/repl' repl = Repl.new(__console_agent_binding) repl.explain(query.to_s) rescue => e $stderr.puts "\e[31mConsoleAgent error: #{e.message}\e[0m" nil end |
#ai_memories(n = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/console_agent/console_methods.rb', line 7 def ai_memories(n = nil) require 'yaml' require 'console_agent/tools/memory_tools' storage = ConsoleAgent.storage keys = storage.list('memories/*.md').sort if keys.empty? $stdout.puts "\e[2mNo memories stored yet.\e[0m" return nil end memories = keys.filter_map do |key| content = storage.read(key) next if content.nil? || content.strip.empty? next unless content =~ /\A---\s*\n(.*?\n)---\s*\n(.*)/m fm = YAML.safe_load($1, permitted_classes: [Time, Date]) || {} fm.merge('description' => $2.strip, 'file' => key) end if memories.empty? $stdout.puts "\e[2mNo memories stored yet.\e[0m" return nil end shown = n ? memories.last(n) : memories.last(5) total = memories.length $stdout.puts "\e[36m[Memories — showing last #{shown.length} of #{total}]\e[0m" shown.each do |m| $stdout.puts "\e[33m #{m['name']}\e[0m" $stdout.puts "\e[2m #{m['description']}\e[0m" = Array(m['tags']) $stdout.puts "\e[2m tags: #{tags.join(', ')}\e[0m" unless .empty? $stdout.puts end path = storage.respond_to?(:root_path) ? File.join(storage.root_path, 'memories') : 'memories/' $stdout.puts "\e[2mStored in: #{path}/\e[0m" $stdout.puts "\e[2mUse ai_memories(n) to show last n.\e[0m" nil end |
#ai_status ⇒ Object
3 4 5 |
# File 'lib/console_agent/console_methods.rb', line 3 def ai_status ConsoleAgent.status end |