Resolves unresolved merge conflict markers left in committed files across
the annotations, view, data, and CLI packages. Updates all remaining
imports from the old utils.* namespace to ria_toolkit_oss.datatypes,
ria_toolkit_oss.io, and ria_toolkit_oss.view equivalents.
Annotations package (new):
- Add threshold_qualifier with 3-pass hysteresis detector (Pass 1: strong
bursts, Pass 2: weak residual bursts, Pass 3: macro-window faint burst
detection), auto window_size scaled to 1ms, channel selection, and
stable noise_floor baseline throughout
- Add energy_detector, cusum_annotator, parallel_signal_separator,
qualify_slice, signal_isolation, annotation_transforms
- Add __init__.py exporting the four functions used by the CLI
- Fix all imports from utils.data → ria_toolkit_oss.datatypes
CLI annotate command (new):
- Port full annotate CLI from utils including list, add, remove, clear,
energy, cusum, threshold, and separate subcommands
- Fix imports from utils.* → ria_toolkit_oss.* and utils_cli.* →
ria_toolkit_oss_cli.*
- Safe overwrite logic: _annotated files always writable, originals
protected; --overwrite writes in-place only on _annotated inputs
CLI view command:
- Add 'annotations' as a valid --type, wiring view_annotations from
view_signal
view_signal.py:
- Add view_annotations function with blue/purple alternating palette and
threshold %-sorted drawing order (lower % renders on top)
recording.py (datatypes):
- Fix lazy imports in to_wav() and to_blue() from utils.io → ria_toolkit_oss.io
io/recording.py:
- Add compatibility shim in from_npy to remap utils.data.annotation.Annotation
to ria_toolkit_oss.datatypes.annotation.Annotation when loading .npy files
pickled by the utils package