import { Body, Controller, Get, Param, Post, UseGuards } from '@nestjs/common'; import { JwtAuthGuard } from '../auth/jwt-auth.guard'; import { CurrentUser } from '../auth/current-user.decorator'; import type { Actor } from '../common/record-scope'; import { AiAskService } from './ai-ask.service'; import { AskMentoDto, VoiceCommandDto } from './dto'; import { AiService } from './ai.service'; @Controller('ai') @UseGuards(JwtAuthGuard) export class AiController { constructor( private readonly ai: AiService, private readonly ask: AiAskService, ) {} @Get('status') status() { return { enabled: this.ai.isEnabled() }; } @Post('voice-command') voiceCommand(@CurrentUser() user: Actor, @Body() dto: VoiceCommandDto) { return this.ask.parseVoiceCommand(user, dto.text); } @Post('ask') askMento(@CurrentUser() user: Actor, @Body() dto: AskMentoDto) { return this.ask.ask(user, dto.question, dto.personId, dto.chatContext); } @Get('people/:personId/summary') personSummary( @CurrentUser() user: Actor, @Param('personId') personId: string, ) { return this.ask.summarizePerson(user, personId); } }