M-6a: Voice harness commands — _injectAudioFrame/_injectWakeWord/_injectSTT/_observeTTSAudio (UQ-1, G-001) #129

Open
opened 2026-05-12 19:37:26 +00:00 by KofTwentyTwo · 0 comments
KofTwentyTwo commented 2026-05-12 19:37:26 +00:00 (Migrated from github.com)

Goal

M-6a — Voice harness commands: _injectAudioFrame, _injectWakeWord, _injectSTT, _observeTTSAudio (UQ-1 gated). G-001 resolution. First-class harness commands. Repurposes existing MockTTSForController etc. (hoisted in M-0.9).

Scope

  • 4 harness commands gated by JARVIS_HARNESS=1
  • _injectAudioFrame(pcm:, sampleRate:)
  • _injectWakeWord(confidence:)
  • _injectSTT(text:, isFinal:)
  • _observeTTSAudio() -> AsyncStream<AudioBuffer>

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift
  • packages/Harness/Sources/Harness/Doubles/Voice*.swift (from M-0.9)

Acceptance

  • All 4 seams gated by env var
  • Env var absent → no-op
  • Env var set → seams active and harness scenarios use them

Test

S-VOICE-007..008 (inject paths exercise harness commands).

Parent epic

#10

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.7 (M-6.4)
G-001 (audio injection seam)

## Goal M-6a — Voice harness commands: _injectAudioFrame, _injectWakeWord, _injectSTT, _observeTTSAudio (UQ-1 gated). G-001 resolution. First-class harness commands. Repurposes existing MockTTSForController etc. (hoisted in M-0.9). ## Scope - 4 harness commands gated by `JARVIS_HARNESS=1` - `_injectAudioFrame(pcm:, sampleRate:)` - `_injectWakeWord(confidence:)` - `_injectSTT(text:, isFinal:)` - `_observeTTSAudio() -> AsyncStream<AudioBuffer>` ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift` - `packages/Harness/Sources/Harness/Doubles/Voice*.swift` (from M-0.9) ## Acceptance - [ ] All 4 seams gated by env var - [ ] Env var absent → no-op - [ ] Env var set → seams active and harness scenarios use them ## Test `S-VOICE-007..008` (inject paths exercise harness commands). ## Parent epic #10 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.7 (M-6.4) G-001 (audio injection seam)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#129