A LongTermStore namespace as files, for /memories/: what the agent writes there outlives the thread. Each run uses Namespace(<the run's tenant>, path), so no run can reach another tenant's files, whatever the application configures (rule 8).
A file is an item keyed by its path, with value {"content": ...}; directories are implicit, as in StateFileBackend. Mutations lock files/store/<path>/<file> and run through ReplayGuard.transactional under ctx.effectKey("file.write" | "file.edit" | "file.delete", file), each as one store.modify, so an edit decides "old was not found", and a write the tree's shape, inside the store's transaction, and a replay whose first attempt landed returns the first outcome. The store's bounds hold, and an over-limit write is a tool error. Listings read at most the store's maxItems entries.
Attributes
- Companion
- object
- Graph
-
- Supertypes
Members list
Value members
Concrete methods
Removes the item at target, whatever it holds: the namespace is not validated, so an item a refusal names as corrupt can be deleted. A directory (items beneath) or nothing is refused.
Removes the item at target, whatever it holds: the namespace is not validated, so an item a refusal names as corrupt can be deleted. A directory (items beneath) or nothing is refused.
Attributes
Replaces old with replacement in the file path: the one occurrence, or every occurrence when replaceAll. Refused when old is empty or absent, or occurs more than once and not replaceAll.
Replaces old with replacement in the file path: the one occurrence, or every occurrence when replaceAll. Refused when old is empty or absent, or occurs more than once and not replaceAll.
Attributes
The files within under that accept takes, in path order, at most limit: accept is applied before the limit, so a file it refuses never takes a place (a composite passes a predicate that refuses the paths a mount shadows, and relies on this to fill its limit with visible files). search likewise.
The files within under that accept takes, in path order, at most limit: accept is applied before the limit, so a file it refuses never takes a place (a composite passes a predicate that refuses the paths a mount shadows, and relies on this to fill its limit with visible files). search likewise.
Attributes
The locks a mutation of path holds.
The locks a mutation of path holds.
Attributes
The entries directly beneath the directory path, in path order, at most limit.
The entries directly beneath the directory path, in path order, at most limit.
Attributes
At most limit lines of the file path, from the 0-based line offset.
At most limit lines of the file path, from the 0-based line offset.
Attributes
The lines matching regex of the files within under that accept takes, in path then line order. regex is the model's: match it with org.llm4s.security.RegexSafetyManager.safeFind, never a bare matcher, so a catastrophic pattern is bounded and cannot overflow the stack.
The lines matching regex of the files within under that accept takes, in path then line order. regex is the model's: match it with org.llm4s.security.RegexSafetyManager.safeFind, never a bare matcher, so a catastrophic pattern is bounded and cannot overflow the stack.
Attributes
Writes the file path, creating it or replacing it.
Writes the file path, creating it or replacing it.
Attributes
Inherited methods
The files within under whose path relative to under matches pattern.
The files within under whose path relative to under matches pattern.
Attributes
- Inherited from:
- FileBackend
The lines matching regex in the files within under. include filters the files: a pattern with no / matches a file's name, one with a / its path relative to under (as ripgrep's --glob).
The lines matching regex in the files within under. include filters the files: a pattern with no / matches a file's name, one with a / its path relative to under (as ripgrep's --glob).
Attributes
- Inherited from:
- FileBackend