Class: WritersRoom::WriteMemoryTool

Inherits:
RobotLab::Tool
  • Object
show all
Defined in:
lib/writers_room/tools/write_memory_tool.rb

Constant Summary collapse

RESERVED_KEYS =
i[scene_complete dialog_history line_count].freeze

Instance Method Summary collapse

Instance Method Details

#execute(key:, value:) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/writers_room/tools/write_memory_tool.rb', line 15

def execute(key:, value:)
  memory = robot.shared_memory
  return "No shared memory available." unless memory

  sym_key = key.to_sym
  if RESERVED_KEYS.include?(sym_key)
    return "Cannot write to reserved key '#{key}'. Reserved keys: #{RESERVED_KEYS.join(', ')}"
  end

  memory.set(sym_key, value)
  robot.display&.memory_write(robot.name, key)
  "Stored '#{key}' in shared memory."
end