{"status":"ok","service":"Web Voice Chat Service","version":"1.0.0","documentation":{"rest_endpoints":{"GET /":"API discovery and documentation (this endpoint)","GET /demo":"Demo HTML page for testing","POST /api/clear-session?session_id=xxx":"Archive current session and create new one"},"websocket_endpoint":{"url":"/ws/demo-test","url_with_session":"/ws/demo-test?session_id=xxx","description":"Real-time voice chat WebSocket connection"},"websocket_protocol":{"client_to_server":{"audio":{"type":"audio","audio":"base64_encoded_float32_audio_data","sampleRate":48000,"description":"Send audio data for transcription"},"pause":{"type":"pause","description":"Pause/stop the current recording and agent response"},"stop":{"type":"stop","description":"End the session completely"},"text":{"type":"text","text":"your message here","description":"Send text directly instead of audio (optional)"}},"server_to_client":{"session":{"type":"session","session_id":"uuid-string","description":"Sent on connect - store this for session resumption"},"history":{"type":"history","messages":[{"speaker":"user|agent","text":"..."}],"description":"Sent on connect if resuming - previous conversation"},"transcript":{"type":"transcript","text":"transcribed or response text","speaker":"user|agent","description":"Real-time transcription or agent response text"},"audio":{"type":"audio","audio":"base64_encoded_wav_data","format":"wav","duration_ms":1500,"description":"Agent audio response for playback"},"stop_audio":{"type":"stop_audio","reason":"user_interruption","description":"Stop playing audio - user interrupted"},"ready":{"type":"ready","message":"System initialized","description":"System is ready to receive audio"}}}},"features":["Real-time voice-to-voice conversation","Session persistence (resume conversations)","Interruption handling (user can interrupt agent)","Multi-user support"]}