M-6b: Voice.synthesizeTurn explicit-command contract (B-05, UQ-3 (A)) #131

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

Goal

M-6b — Voice.synthesizeTurn(turnId:text:tier:) -> Result<Void, TTSError> (B-05, UQ-3 (A) explicit-command contract). Orchestrator MUST issue this on turnEnded(.completed) for voice-source turns.

Scope

  • New command synthesizeTurn(turnId:text:tier:) returns typed Result
  • TTSError.{providerUnavailable, audioRouteFailure, ...}
  • UQ-3 (A) explicit-command contract — no implicit TTS routing

Files

  • packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift
  • packages/Voice/Sources/Voice/TTS/TTSEngineActor.swift

Acceptance

  • synthesizeTurn command implemented
  • Result returned synchronously; ttsStarted event observed asynchronously
  • Tier 1 (AVSpeechSynthesizer) returns immediately
  • Tier 2 (Orpheus) deferred per plan §6 if weights absent

Test

S-VOICE-010 (synthesizeTurn happy path tier 1).

Parent epic

#10

Source

.planning/architecture/JARVIS-API-MIGRATION-PLAN.md §2.7 (M-6.6)
.planning/architecture/JARVIS-API-DESIGN-v0.2.md §5 UQ-3 (A)
B-05: #50

## Goal M-6b — Voice.synthesizeTurn(turnId:text:tier:) -> Result<Void, TTSError> (B-05, UQ-3 (A) explicit-command contract). Orchestrator MUST issue this on turnEnded(.completed) for voice-source turns. ## Scope - New command `synthesizeTurn(turnId:text:tier:)` returns typed Result - `TTSError.{providerUnavailable, audioRouteFailure, ...}` - UQ-3 (A) explicit-command contract — no implicit TTS routing ## Files - `packages/JarvisAPI/Sources/JarvisAPI/Surfaces/Voice+Adapter.swift` - `packages/Voice/Sources/Voice/TTS/TTSEngineActor.swift` ## Acceptance - [ ] `synthesizeTurn` command implemented - [ ] Result returned synchronously; `ttsStarted` event observed asynchronously - [ ] Tier 1 (AVSpeechSynthesizer) returns immediately - [ ] Tier 2 (Orpheus) deferred per plan §6 if weights absent ## Test `S-VOICE-010` (synthesizeTurn happy path tier 1). ## Parent epic #10 ## Source `.planning/architecture/JARVIS-API-MIGRATION-PLAN.md` §2.7 (M-6.6) `.planning/architecture/JARVIS-API-DESIGN-v0.2.md` §5 UQ-3 (A) B-05: #50
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/Jarvis#131