Class: ActiveHarness::Memory::JsonFile

Inherits:
Memory
  • Object
show all
Defined in:
lib/active_harness/memory/adapter/json_file.rb

Overview

Convenience Memory subclass for file-backed storage.

file_name:    replaces session_id — may contain slashes to create
            subdirectories under storage_path, e.g. "users/42/chat"
            Final file is always <storage_path>/<file_name>.json
storage_path: base directory (default: "storage/ai/memory")

Path traversal is rejected: segments equal to "." or ".." or containing null bytes raise ArgumentError before any file I/O happens. Missing directories are created automatically on the first write.

Direct Known Subclasses

AppMemory

Instance Method Summary collapse

Constructor Details

#initialize(file_name:, storage_path: Adapter::JsonFile::DEFAULT_PATH, **opts) ⇒ JsonFile

Returns a new instance of JsonFile.



148
149
150
151
152
153
154
# File 'lib/active_harness/memory/adapter/json_file.rb', line 148

def initialize(file_name:, storage_path: Adapter::JsonFile::DEFAULT_PATH, **opts)
  super(
    session_id: sanitize!(file_name),
    adapter:    Adapter::JsonFile.new(opts.merge(path: storage_path)),
    **opts
  )
end