Commit graph

1 commit

Author SHA1 Message Date
pyr0ball
6e17da9e93 feat: AudioEvent models, classify_chunk() for per-chunk request-response path
- events.py: AudioEvent dataclass + ToneEvent with affect, shift_magnitude,
  shift_direction, prosody_flags; make_subtext() for generic/Elcor formats
- context.py: classify_chunk(audio_b64, timestamp, prior_frames, elcor)
  returns list[AudioEvent]; mock mode uses MockVoiceIO RNG, real raises NotImplementedError
- ToneEvent.__post_init__ pins event_type='tone' (avoids MRO default-field ordering bug)
- Elcor mode: same classifier output, Elcor speech-prefix wording; all tiers
2026-04-06 16:53:10 -07:00