M-6a: define JarvisAPI.Voice + getVoiceState query (no audio-graph change) #126

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

Goal

M-6a — define JarvisAPI.Voice protocol and getVoiceState query (read-only). Wraps VoiceController state.

Scope

  • JarvisAPI.Voice protocol
  • getVoiceState() -> VoiceState (current state, levels, wake-word armed, STT running)
  • No audio-graph change in M-6a — surface mapping only

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice.swift (new)
  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift (new)

Acceptance

  • Protocol + adapter compile
  • getVoiceState() returns hydrated state from VoiceController

Test

S-VOICE-001 skeleton (state query).

Parent epic

#10

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.7 (M-6.1)

## Goal M-6a — define JarvisAPI.Voice protocol and getVoiceState query (read-only). Wraps VoiceController state. ## Scope - `JarvisAPI.Voice` protocol - `getVoiceState() -> VoiceState` (current state, levels, wake-word armed, STT running) - No audio-graph change in M-6a — surface mapping only ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice.swift` (new) - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift` (new) ## Acceptance - [ ] Protocol + adapter compile - [ ] `getVoiceState()` returns hydrated state from `VoiceController` ## Test `S-VOICE-001` skeleton (state query). ## Parent epic #10 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.7 (M-6.1)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#126