- Create PredictionService for pre-task cost/token estimates - Refresh common predictions on startup - Integrate predictions into LLM telemetry tracker - Add GET /api/telemetry/estimate endpoint - Graceful degradation when no prediction data available - Add unit tests for prediction service Refs #373 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
import { Module, Global } from "@nestjs/common";
|
|
import { ConfigModule } from "@nestjs/config";
|
|
import { AuthModule } from "../auth/auth.module";
|
|
import { MosaicTelemetryService } from "./mosaic-telemetry.service";
|
|
import { PredictionService } from "./prediction.service";
|
|
import { MosaicTelemetryController } from "./mosaic-telemetry.controller";
|
|
|
|
/**
|
|
* Global module providing Mosaic Telemetry integration via @mosaicstack/telemetry-client.
|
|
*
|
|
* Tracks task completion events and provides crowd-sourced predictions for
|
|
* token usage, cost estimation, and quality metrics.
|
|
*
|
|
* **This is separate from the OpenTelemetry (OTEL) TelemetryModule** which
|
|
* handles distributed request tracing. This module is specifically for
|
|
* Mosaic Stack's own telemetry aggregation service.
|
|
*
|
|
* Configuration via environment variables:
|
|
* - MOSAIC_TELEMETRY_ENABLED (boolean, default: true)
|
|
* - MOSAIC_TELEMETRY_SERVER_URL (string)
|
|
* - MOSAIC_TELEMETRY_API_KEY (string, 64-char hex)
|
|
* - MOSAIC_TELEMETRY_INSTANCE_ID (string, UUID)
|
|
* - MOSAIC_TELEMETRY_DRY_RUN (boolean, default: false)
|
|
*
|
|
* @example
|
|
* ```typescript
|
|
* // In any service (no need to import module — it's global):
|
|
* @Injectable()
|
|
* export class MyService {
|
|
* constructor(private readonly telemetry: MosaicTelemetryService) {}
|
|
* }
|
|
* ```
|
|
*/
|
|
@Global()
|
|
@Module({
|
|
imports: [ConfigModule, AuthModule],
|
|
controllers: [MosaicTelemetryController],
|
|
providers: [MosaicTelemetryService, PredictionService],
|
|
exports: [MosaicTelemetryService, PredictionService],
|
|
})
|
|
export class MosaicTelemetryModule {}
|