#!/usr/bin/env bash # Quick smoke test for voice surface components set -e echo "🧪 Voice Surface Component Tests" echo "" # Test 1: Check dependencies echo "1️⃣ Checking dependencies..." which ffmpeg > /dev/null && echo " ✓ ffmpeg" || echo " ✗ ffmpeg (optional)" which edge-tts > /dev/null && echo " ✓ edge-tts" || echo " ✗ edge-tts (optional)" which whisper-cli > /dev/null && echo " ✓ whisper-cli" || echo " ✗ whisper-cli (optional, will use openclaw)" echo "" # Test 2: Check OpenClaw CLI echo "2️⃣ Testing OpenClaw agent command..." cd "$(dirname "$0")/../.." SESSION_ID="test-$(date +%s)" timeout 30 pnpm -s openclaw agent --local --json --session-id "$SESSION_ID" --message "Reply with just 'ok'" 2>&1 | head -10 || { echo " ⚠️ Agent command needs model config (expected for fresh install)" } echo "" # Test 3: Check TTS echo "3️⃣ Testing TTS..." TTS_OUT="/tmp/tts-test-$$.mp3" if timeout 10 edge-tts --text "Test" --write-media "$TTS_OUT" 2>/dev/null; then echo " ✓ edge-tts works" rm -f "$TTS_OUT" else echo " ⚠️ edge-tts failed (will fallback to openclaw tts)" fi echo "" # Test 4: TypeScript syntax echo "4️⃣ Checking TypeScript syntax..." cd tools/voice-surface pnpm exec tsx --check src/server.ts && echo " ✓ server.ts syntax OK" echo "" echo "✅ Component tests complete!" echo "" echo "To run the server:" echo " cd tools/voice-surface" echo " ./run.sh"