bba99418df
server/pipeline.py assembles the Pipecat pipeline (D-017): WebRTC audio in → Deepgram Nova-3 STT → LLMContextAggregator(user) → OLLamaLLMService (gemma4:cloud via https://ollama.com/v1 + bearer, R6) → Cartesia/Piper TTS (selected via PRAXIS_TTS) → WebRTC audio out. Interruptibility via allow_interruptions=True (D-008 abort-and-yield). Hardcoded single-turn system prompt (SLICE-03 replaces with scenario YAML). All keys from env; missing keys log a warning and the pipeline still starts (code structure is the deliverable). server/__main__.py exposes a FastAPI app with /health (reports key-provisioning status) and POST /pipecat/webrtc (accepts an SDP offer, starts a pipeline task, returns the answer). Verified: imports succeed, /health returns 200, routes wired. ---ci--- phase: 1 milestone: v0.1 plan: 02 task: 02-04 status: execute persona: backend-engineer requirements: covered: [REQ-VOICE-01, REQ-VOICE-02, REQ-VOICE-04, REQ-ORCH-01] ---/ci---