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