feat: transcription fix + SLA write-back + real-time supervisor events

- Deepgram: multichannel=true + language=multi (captures both speakers, multilingual)
- LLM speaker identification (agent vs customer from conversational cues)
- Removed summarize=v2 (incompatible with multilingual)
- SLA computation on call creation (lead.createdAt → call.startedAt elapsed %)
- WebSocket: supervisor room + call:created broadcast for real-time updates
- Maint: clear-analysis-cache endpoint + scanKeys/deleteCache on SessionService
- AI chat: rules-engine context routing with dedicated system prompt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-01 16:59:23 +05:30
parent b8556cf440
commit 5e3ccbd040
8 changed files with 461 additions and 33 deletions

View File

@@ -35,6 +35,20 @@ export class CallEventsGateway {
this.server.to(room).emit('call:incoming', event);
}
// Broadcast to supervisors when a new call record is created
broadcastCallCreated(callData: any) {
this.logger.log('Broadcasting call:created to supervisor room');
this.server.to('supervisor').emit('call:created', callData);
}
// Supervisor registers to receive real-time updates
@SubscribeMessage('supervisor:register')
handleSupervisorRegister(@ConnectedSocket() client: Socket) {
client.join('supervisor');
this.logger.log(`Supervisor registered (socket: ${client.id})`);
client.emit('supervisor:registered', { room: 'supervisor' });
}
// Agent registers when they open the Call Desk page
@SubscribeMessage('agent:register')
handleAgentRegister(