summaryrefslogtreecommitdiff
path: root/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'controllers')
-rw-r--r--controllers/interfaces/tools.rb5
-rw-r--r--controllers/session.rb21
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