How nathanblatter/ai-therapist works
AI Therapist is a voice-based therapy research application with a participant experience and a therapist/researcher dashboard. Participants begin a session, converse by live voice or chat, and receive safety checks; staff monitor sessions and manage follow-up. The graph also shows the caseworker workflow, transcript redaction and recording, and evaluation capabilities. Relationships are limited to the README and the shown source references/calls; several subsystem connections are omitted or marked unverified because their implementation was not sampled.
Main entry points: chat.routes.ts Chat API · sessions.routes.ts Session operations · db.ts PostgreSQL · crisisPipeline.service.ts Crisis pipeline
Components 22
Participant experience
- Therapy interface
src/client/main/components/App.tsx - Grok voice client
src/client/main/lib/grokVoiceClient.ts
Session runtime
- Chat API
src/server/routes/public/chat.routes.ts - Session API
src/server/routes/public/sessions.routes.ts - Live sideband
src/server/services/sidebandManager.service.ts - Chat therapy
src/server/services/chatTherapy.service.ts - Session limits
src/server/utils/sessionHelpers.ts
Safety and care
- Crisis pipeline
src/server/services/crisisPipeline.service.ts - Risk detection
src/server/services/crisisDetection.service.ts - Graduated response
src/server/services/crisisIntervention.service.ts - PHI redaction
src/server/services/sessionRedaction.service.ts
Staff operations
- Staff dashboard
src/client/admin/components/AdminApp.tsx - Session operations
src/server/routes/admin/sessions.routes.ts - Escalation handling
src/server/routes/admin/escalations.routes.ts - Care work queue
src/server/services/workQueue.service.ts - Role and data tiers
src/shared/roles.ts
Research and evaluation
- Red-team harness
src/redteam/voiceClient.ts - Session evaluation
src/server/services/sessionEval.service.ts
Other components
- Participant
- PostgreSQL
src/server/config/db.ts - Object storage
src/server/config/objectStorage.ts - OpenAI Realtime
Connections 24
- Participant → Therapy interface: uses
README.md - Therapy interface → Chat API: sends chat
- Therapy interface → Grok voice client: uses voice
src/client/main/components/App.tsx - Grok voice client → OpenAI Realtime: streams audio
- Chat API → Session limits: checks limits
src/server/routes/public/chat.routes.ts - Chat API → PostgreSQL: creates session
src/server/routes/public/chat.routes.ts - Chat API → Chat therapy: invokes
src/server/routes/public/chat.routes.ts - Chat API → Crisis pipeline: runs safety
src/server/routes/public/chat.routes.ts - Crisis pipeline → PostgreSQL: reads state
src/server/services/crisisPipeline.service.ts - Crisis pipeline → Risk detection: analyzes risk
src/server/services/crisisPipeline.service.ts - Crisis pipeline → Graduated response: executes response
src/server/services/crisisPipeline.service.ts - Session API → Live sideband: attaches
src/server/routes/public/sessions.routes.ts - Session API → PHI redaction: redacts session
src/server/routes/public/sessions.routes.ts - Live sideband → PostgreSQL: persists turns
src/server/services/sidebandManager.service.ts - Staff dashboard → Session operations: manages sessions
- Session operations → PostgreSQL: reads session data
src/server/routes/admin/sessions.routes.ts - Session operations → Live sideband: controls live sessions
src/server/routes/admin/sessions.routes.ts - Session operations → PHI redaction: requests redaction
src/server/routes/admin/sessions.routes.ts - Session operations → Object storage: loads recordings
src/server/routes/admin/sessions.routes.ts - Escalation handling → Care work queue: enqueues work
src/server/routes/admin/escalations.routes.ts - Care work queue → PostgreSQL: stores work items
src/server/services/workQueue.service.ts - Role and data tiers → Staff dashboard: defines access tiers
- Red-team harness → OpenAI Realtime: drives voice tests
src/redteam/voiceClient.ts - Red-team harness → Session evaluation: uses eval dimensions