feat: foundation — Docker Compose, OTEL, shared types (P0-002, P0-005, P0-006)

Docker Compose (P0-005):
- PG 17 + pgvector, Valkey 8, OTEL Collector, Jaeger
- OTEL Collector config with trace/metric/log pipelines
- .env.example with all connection strings

OTEL Foundation (P0-006):
- @opentelemetry/sdk-node with auto-instrumentations
- tracing.ts loaded before NestJS bootstrap
- OTLP HTTP exporter → collector → Jaeger
- Disabled fs/dns instrumentations (noisy)

Shared Types (P0-002):
- ChatMessageDto with class-validator (IsUUID, IsNotEmpty, MaxLength)
- ChatResponseDto for REST responses
- Socket.IO typed event maps (ServerToClientEvents, ClientToServerEvents)
- AgentSessionHandle opaque type
- All event payload interfaces shared across gateway/cli/discord

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 20:55:04 -05:00
parent f6f05cf23a
commit a52537985e
14 changed files with 2055 additions and 26 deletions

12
.env.example Normal file
View File

@@ -0,0 +1,12 @@
# Database
DATABASE_URL=postgresql://mosaic:mosaic@localhost:5432/mosaic
# Valkey (Redis-compatible)
VALKEY_URL=redis://localhost:6379
# OpenTelemetry
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_SERVICE_NAME=mosaic-gateway
# Gateway
GATEWAY_PORT=4000