diff options
Diffstat (limited to 'controllers')
-rw-r--r-- | controllers/interfaces/tools.rb | 7 | ||||
-rw-r--r-- | controllers/session.rb | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/controllers/interfaces/tools.rb b/controllers/interfaces/tools.rb index 5105da1..1136600 100644 --- a/controllers/interfaces/tools.rb +++ b/controllers/interfaces/tools.rb @@ -3,13 +3,14 @@ require 'rainbow' require_relative '../../logic/cartridge/tools' +require_relative '../../logic/cartridge/safety' require_relative '../../components/embedding' module NanoBot module Controllers module Interfaces module Tool - def self.adapt(feedback, adapter) + def self.adapt(feedback, adapter, cartridge) call = { parameters: %w[id name parameters parameters-as-json output], values: [ @@ -17,7 +18,7 @@ module NanoBot feedback[:parameters].to_json, feedback[:output] ], - safety: false + safety: { sandboxed: Logic::Cartridge::Safety.sandboxed?(cartridge) } } raise StandardError, 'conflicting adapters' if %i[fennel lua clojure].count { |key| !adapter[key].nil? } > 1 @@ -49,7 +50,7 @@ module NanoBot adapter = Tool.adapter(cartridge, mode, feedback) if %i[fennel lua clojure].any? { |key| !adapter[key].nil? } - message = adapt(feedback, adapter) + message = adapt(feedback, adapter, cartridge) else message = "(#{feedback[:name]} #{feedback[:parameters].to_json})" diff --git a/controllers/session.rb b/controllers/session.rb index 10d0194..546a891 100644 --- a/controllers/session.rb +++ b/controllers/session.rb @@ -72,7 +72,7 @@ module NanoBot mode: mode.to_s, input: message, message: Components::Adapter.apply( - :input, Logic::Cartridge::Interaction.input(@cartridge, mode.to_sym, message) + Logic::Cartridge::Interaction.input(@cartridge, mode.to_sym, message), @cartridge ) } @@ -117,7 +117,7 @@ module NanoBot needs_another_round = false - @provider.evaluate(input) do |feedback| + @provider.evaluate(input, @cartridge) do |feedback| updated_at = Time.now needs_another_round = true if feedback[:needs_another_round] @@ -137,7 +137,7 @@ module NanoBot output = Logic::Cartridge::Interaction.output( @cartridge, mode.to_sym, feedback[:interaction], streaming, feedback[:finished] ) - output[:message] = Components::Adapter.apply(:output, output[:message]) + output[:message] = Components::Adapter.apply(output[:message], @cartridge) event[:output] = (output[:message]).to_s end end |