class
Memo::Namespaces
- Memo::Namespaces
- Reference
- Object
Overview
Registry of Memo::Service instances keyed by namespace (ns).
Each ns has its own database, embedding service, and USearch index — providing true isolation between projects sharing one memo-arcana process.
Namespaces can be opened explicitly via #open or listed in a config
file for preloading at boot. Once opened, services are cached in
memory until explicitly closed (or the process exits).
Defined in:
arcana/namespaces.crConstructors
Instance Method Summary
-
#close(ns : String) : Bool
Close and remove a namespace.
-
#close_all
Close all open services (called on shutdown).
- #configs : Hash(String, Config)
-
#get(ns : String) : Memo::Service
Get the Memo::Service for a namespace, opening it lazily if needed.
-
#list : Array(Tuple(String, Bool))
List all registered namespaces with their open status.
-
#load_config(path : String)
Load namespace configs from a YAML-ish config file.
-
#open(config : Config) : Memo::Service
Register and immediately open a namespace.
-
#preload_all
Preload all namespaces marked with preload: true in their config.
-
#register(config : Config)
Register a namespace config (without opening).
- #services : Hash(String, Memo::Service)
Constructor Detail
Instance Method Detail
Get the Memo::Service for a namespace, opening it lazily if needed. Raises if the namespace isn't registered.
Load namespace configs from a YAML-ish config file.
Format (very simple, one block per namespace):
namespaces: - ns: wow db: postgres://wow:wow@localhost/wow_dev service: openai preload: true - ns: notes db: /var/lib/memo/notes.db service: mock
Register and immediately open a namespace. Returns the Service.