Class: ActiveHarness::Memory::JsonFile

Inherits:
ActiveHarness::Memory 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

Constant Summary

Constants inherited from ActiveHarness::Memory

ADAPTERS

Instance Attribute Summary

Attributes inherited from ActiveHarness::Memory

#session_id

Instance Method Summary collapse

Methods inherited from ActiveHarness::Memory

#clear, #close, #delete, #load, #record, #size, #to_messages, #turns

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