feat: event bus with Redpanda + AI insight consumer

- EventBusService: Kafka/Redpanda pub/sub with kafkajs, graceful fallback when broker unavailable
- Topics: call.completed, call.missed, agent.state
- AiInsightConsumer: on call.completed, fetches lead activity → OpenAI generates summary + suggested action → updates Lead entity on platform
- Disposition endpoint emits call.completed event after Ozonetel dispose
- EventsModule registered as @Global for cross-module injection
- Redpanda container added to VPS docker-compose
- Docker image rebuilt for linux/amd64 with kafkajs dependency

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 09:38:02 +05:30
parent 3c06a01e7b
commit 3e2e7372cc
8 changed files with 311 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ import { SearchModule } from './search/search.module';
import { SupervisorModule } from './supervisor/supervisor.module';
import { MaintModule } from './maint/maint.module';
import { RecordingsModule } from './recordings/recordings.module';
import { EventsModule } from './events/events.module';
@Module({
imports: [
@@ -36,6 +37,7 @@ import { RecordingsModule } from './recordings/recordings.module';
SupervisorModule,
MaintModule,
RecordingsModule,
EventsModule,
],
})
export class AppModule {}