diff options
Diffstat (limited to 'controllers')
-rw-r--r-- | controllers/interfaces/tools.rb | 5 | ||||
-rw-r--r-- | controllers/session.rb | 21 |
2 files changed, 21 insertions, 5 deletions
diff --git a/controllers/interfaces/tools.rb b/controllers/interfaces/tools.rb index f079a2b..0f33105 100644 --- a/controllers/interfaces/tools.rb +++ b/controllers/interfaces/tools.rb @@ -72,7 +72,10 @@ module NanoBot message = "#{adapter[:prefix]}#{message}#{adapter[:suffix]}" - session.print(color.nil? ? message : Rainbow(message).send(color)) + session.print( + color.nil? ? message : Rainbow(message).send(color), + { tool: { action: feedback[:action].to_s } } + ) end def self.adapter(cartridge, mode, feedback) diff --git a/controllers/session.rb b/controllers/session.rb index 378a11d..aabcb41 100644 --- a/controllers/session.rb +++ b/controllers/session.rb @@ -11,6 +11,7 @@ require_relative '../logic/cartridge/streaming' require_relative '../logic/cartridge/interaction' require_relative '../logic/cartridge/fetch' require_relative 'interfaces/tools' +require_relative '../components/stream' require_relative '../components/storage' require_relative '../components/adapter' require_relative '../components/crypto' @@ -56,11 +57,19 @@ module NanoBot end def boot(mode:) - return unless Logic::Helpers::Hash.fetch(@cartridge, %i[behaviors boot instruction]) + instruction = Logic::Helpers::Hash.fetch(@cartridge, %i[behaviors boot instruction]) + return unless instruction behavior = Logic::Helpers::Hash.fetch(@cartridge, %i[behaviors boot]) || {} - input = { behavior:, history: [] } + @state[:history] << { + who: 'user', + mode: mode.to_s, + input: instruction, + message: instruction + } + + input = { behavior:, history: @state[:history] } process(input, mode:) end @@ -182,8 +191,12 @@ module NanoBot @stream.flush end - def print(content) - @stream.write(content) + def print(content, meta = nil) + if @stream.is_a?(NanoBot::Components::Stream) + @stream.write(content, meta) + else + @stream.write(content) + end end end end |