feat(sprint-005): cost monitor + WebSocket realtime

Sprint 004 non-blocking:
- null byte 방지 (harness file write)

Sprint 005 본문:
- CostLog Prisma 모델 추가
- TASK-016: GET /api/admin/costs + POST /api/admin/costs/record/:name
  자매별/모델별/일별 토큰 + 예상 비용 (USD), 기간 필터(day/week/month)
- TASK-018: WebSocket Gateway (@WebSocketGateway /ws namespace)
  sisters:update, activity:new 브로드캐스트
  EventsScheduler: 30초 주기 자매 상태 체크 + 브로드캐스트
  ActivityService: 새 로그 생성 시 실시간 브로드캐스트
- TASK-017: /admin/costs 비용 대시보드 (BarChart + 요약 카드)
- 메인 대시보드 useSocket 훅 + 실시간 연결 상태 표시
- 테스트 22/22 pass, FE 12 routes build 성공
- NEXT_PUBLIC_WS_URL env (.env.local.example 업데이트)
This commit is contained in:
2026-04-04 12:28:25 +09:00
parent 929b4e0745
commit 914903466c
21 changed files with 1145 additions and 13 deletions

View File

@@ -0,0 +1,11 @@
import { Module } from '@nestjs/common';
import { EventsGateway } from './events.gateway';
import { EventsScheduler } from './events.scheduler';
import { SistersModule } from '../sisters/sisters.module';
@Module({
imports: [SistersModule],
providers: [EventsGateway, EventsScheduler],
exports: [EventsGateway],
})
export class EventsModule {}