feat(voice): run pipeline eyes-free (STT -> Brain -> TTS), defer screen share

Make source/vision optional so the conversation loop runs with no screen
capture. Add Settings.voice() preset and `python -m wsai --voice` demo.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
EJClaw
2026-08-11 00:05:02 +09:00
parent b0780988a2
commit 2b6059141e
6 changed files with 60 additions and 12 deletions

View File

@@ -19,6 +19,8 @@ def build(settings: Settings) -> Pipeline:
def _source(s: Settings):
if s.source in (None, "none"):
return None
if s.source == "mss":
from .backends.capture_mss import MSSFrameSource
@@ -29,6 +31,8 @@ def _source(s: Settings):
def _vision(s: Settings):
if s.vision in (None, "none"):
return None
if s.vision == "claude":
from .backends.claude import ClaudeVision