nemo_voice_agent.evaluation
nemo_voice_agent.evaluation
Subpackages
Submodules
nemo_voice_agent.evaluation.bridgenemo_voice_agent.evaluation.db_hashnemo_voice_agent.evaluation.db_state_predicatesnemo_voice_agent.evaluation.initialization_functionsnemo_voice_agent.evaluation.resumenemo_voice_agent.evaluation.runnernemo_voice_agent.evaluation.sync_appliersnemo_voice_agent.evaluation.utils
Package Contents
Functions
API
Resolve the root directory for evaluation fixture data.
Checks $EVAL_DATA_ROOT first; falls back to packaged data under
nemo_voice_agent/evaluation/data, then the legacy <repo>/evaluation/data
layout.
Lazy (function, not module constant) so env-var changes after import take
effect — useful for tests and for bridge/server processes setting it
differently.
Convention: db_path and similar fixture-path values stored in
shared_state_init are always relative to this root, so bridge and
server can resolve to different absolute roots.
Load a tau2-style DB artifact, transparently handling sharded form.
Some upstream db.json files exceed file size limits (e.g.,
5 MB per-file cap), so they’re sharded into <name>/<table>.json
one-file-per-top-level-key. This helper accepts either form:
<path>.jsonfile →json.loads(read_text())<path>/directory →{stem: json.loads(read_text())}for every*.jsonfile under it (top-level only; no recursion).
The two layouts are byte-equivalent at the in-memory dict level
so callers (gold replay, bot-side state, predicates) don’t care
which on-disk shape a given domain uses.
The caller passes a path WITHOUT the .json suffix (the artifact
name). For backward compatibility with callers that still include
.json, the suffix is stripped before probing.
Raises FileNotFoundError if neither form exists.