@loonylabs/tts-middleware 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -432,6 +432,11 @@ the correct request shape (`prebuiltVoiceConfig` vs `multiSpeakerVoiceConfig`).
432
432
  Segments with >2 distinct speakers throw `InvalidConfigError` with guidance
433
433
  to split the segment.
434
434
 
435
+ **Debugging dialog requests:** Set `DEBUG_TTS_REQUESTS=true` to have one
436
+ Markdown file written per segment under `logs/tts/requests/`, capturing the
437
+ exact request body, selected shape, speaker→voice mapping, HTTP status, and
438
+ timing. See [Request Debug Logging](#advanced-features) below.
439
+
435
440
  ## GDPR / Compliance
436
441
 
437
442
  ### Provider Compliance Overview
@@ -529,6 +534,47 @@ setLogLevel('warn');
529
534
 
530
535
  </details>
531
536
 
537
+ <details>
538
+ <summary><strong>Request Debug Logging</strong></summary>
539
+
540
+ For debugging, you can have the middleware write one Markdown file per upstream
541
+ TTS API call (e.g. per Google Vertex AI `generateContent` invocation). This is
542
+ especially useful for the dialog mode: each segment is one Google request, and
543
+ the log shows the exact request body that was sent — so you can verify the
544
+ auto-selected `prebuiltVoiceConfig` vs `multiSpeakerVoiceConfig` shape,
545
+ speaker→voice mapping, style prompt, and temperature.
546
+
547
+ ```bash
548
+ # Enable per-request debug logs
549
+ export DEBUG_TTS_REQUESTS=true
550
+
551
+ # Optional: override log directory (default: <cwd>/logs/tts/requests)
552
+ export TTS_REQUEST_LOG_DIR=/tmp/my-tts-logs
553
+ ```
554
+
555
+ Each call produces a file named like:
556
+
557
+ ```
558
+ 2026-04-17T14-30-00-000Z_vertex-ai_dialog-segment_seg0_multi-speaker.md
559
+ ```
560
+
561
+ Contents include: timestamp, model, region, endpoint URL, HTTP status, duration,
562
+ dialog context (segment index, request shape, speaker→voice mapping), the full
563
+ request body (no truncation), response metadata (mime type, audio byte count,
564
+ candidate count), and any error body.
565
+
566
+ **What is *not* logged:** the audio bytes themselves — only metadata — so logs
567
+ stay small and safe to inspect.
568
+
569
+ When the env var is unset (or not truthy), logging is a complete no-op with no
570
+ runtime cost.
571
+
572
+ The logging hook lives on `BaseTTSProvider.logRequest()`, so any provider can
573
+ opt in. Currently wired up for `VertexAITTSProvider` (`synthesize()` and
574
+ `synthesizeDialog()`); other providers log on demand when they add the hook.
575
+
576
+ </details>
577
+
532
578
  <details>
533
579
  <summary><strong>Retry with Exponential Backoff</strong></summary>
534
580
 
@@ -7,6 +7,7 @@
7
7
  * @abstract
8
8
  */
9
9
  import type { TTSProvider, TTSSynthesizeRequest, TTSResponse, TTSErrorCode } from '../types';
10
+ import { type TTSRequestLogEntry } from '../utils/request-logger.utils';
10
11
  /**
11
12
  * Base error class for all TTS errors
12
13
  */
@@ -213,5 +214,48 @@ export declare abstract class BaseTTSProvider {
213
214
  * ```
214
215
  */
215
216
  protected log(level: 'info' | 'warn' | 'error' | 'debug', message: string, meta?: Record<string, unknown>): void;
217
+ /**
218
+ * Check if per-request debug logging is enabled.
219
+ *
220
+ * @protected
221
+ * @returns true when `DEBUG_TTS_REQUESTS` is truthy in the environment.
222
+ *
223
+ * @description Providers can gate expensive body capture/cloning behind this
224
+ * flag to avoid overhead when logging is disabled.
225
+ */
226
+ protected isRequestLoggingEnabled(): boolean;
227
+ /**
228
+ * Write a debug Markdown log file for a single upstream API call.
229
+ *
230
+ * @protected
231
+ * @param entry - Log entry data. The provider name is injected automatically
232
+ * if omitted. No-op when `DEBUG_TTS_REQUESTS` is disabled.
233
+ *
234
+ * @description Provider-agnostic request logger. Each call produces exactly
235
+ * one `.md` file under `<cwd>/logs/tts/requests/` (override via
236
+ * `TTS_REQUEST_LOG_DIR`). Use this to capture exactly what was sent to and
237
+ * received from an upstream TTS API (Vertex AI, Azure, etc.).
238
+ *
239
+ * @example
240
+ * ```typescript
241
+ * this.logRequest({
242
+ * kind: 'dialog-segment',
243
+ * timestamp: new Date().toISOString(),
244
+ * model,
245
+ * region,
246
+ * endpointUrl: url,
247
+ * segmentIndex: i,
248
+ * speakers: usedSpeakers,
249
+ * requestShape: 'multi-speaker',
250
+ * requestBody,
251
+ * httpStatus: response.status,
252
+ * durationMs: Date.now() - startedAt,
253
+ * responseBody: { audioBytes: buf.length, mimeType: 'audio/pcm' },
254
+ * });
255
+ * ```
256
+ */
257
+ protected logRequest(entry: Omit<TTSRequestLogEntry, 'provider'> & {
258
+ provider?: string;
259
+ }): void;
216
260
  }
217
261
  //# sourceMappingURL=base-tts-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-tts-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/base-tts-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-tts-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/base-tts-provider.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.BaseTTSProvider = exports.PayloadTooLargeError = exports.NetworkError = exports.SynthesisFailedError = exports.ProviderUnavailableError = exports.QuotaExceededError = exports.InvalidVoiceError = exports.InvalidConfigError = exports.TTSError = void 0;
12
12
  const logger_utils_1 = require("../utils/logger.utils");
13
+ const request_logger_utils_1 = require("../utils/request-logger.utils");
13
14
  /**
14
15
  * Base error class for all TTS errors
15
16
  */
@@ -279,6 +280,54 @@ class BaseTTSProvider {
279
280
  log(level, message, meta) {
280
281
  (0, logger_utils_1.log)(this.providerName, level, message, meta);
281
282
  }
283
+ /**
284
+ * Check if per-request debug logging is enabled.
285
+ *
286
+ * @protected
287
+ * @returns true when `DEBUG_TTS_REQUESTS` is truthy in the environment.
288
+ *
289
+ * @description Providers can gate expensive body capture/cloning behind this
290
+ * flag to avoid overhead when logging is disabled.
291
+ */
292
+ isRequestLoggingEnabled() {
293
+ return (0, request_logger_utils_1.isRequestLoggingEnabled)();
294
+ }
295
+ /**
296
+ * Write a debug Markdown log file for a single upstream API call.
297
+ *
298
+ * @protected
299
+ * @param entry - Log entry data. The provider name is injected automatically
300
+ * if omitted. No-op when `DEBUG_TTS_REQUESTS` is disabled.
301
+ *
302
+ * @description Provider-agnostic request logger. Each call produces exactly
303
+ * one `.md` file under `<cwd>/logs/tts/requests/` (override via
304
+ * `TTS_REQUEST_LOG_DIR`). Use this to capture exactly what was sent to and
305
+ * received from an upstream TTS API (Vertex AI, Azure, etc.).
306
+ *
307
+ * @example
308
+ * ```typescript
309
+ * this.logRequest({
310
+ * kind: 'dialog-segment',
311
+ * timestamp: new Date().toISOString(),
312
+ * model,
313
+ * region,
314
+ * endpointUrl: url,
315
+ * segmentIndex: i,
316
+ * speakers: usedSpeakers,
317
+ * requestShape: 'multi-speaker',
318
+ * requestBody,
319
+ * httpStatus: response.status,
320
+ * durationMs: Date.now() - startedAt,
321
+ * responseBody: { audioBytes: buf.length, mimeType: 'audio/pcm' },
322
+ * });
323
+ * ```
324
+ */
325
+ logRequest(entry) {
326
+ (0, request_logger_utils_1.writeRequestLog)({
327
+ ...entry,
328
+ provider: entry.provider ?? this.providerName,
329
+ });
330
+ }
282
331
  }
283
332
  exports.BaseTTSProvider = BaseTTSProvider;
284
333
  //# sourceMappingURL=base-tts-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-tts-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/base-tts-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-tts-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/base-tts-provider.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,16 @@ export declare class VertexAITTSProvider extends BaseTTSProvider {
179
179
  * - >2 speakers → InvalidConfigError (split the segment so each sub-segment has ≤2 speakers)
180
180
  */
181
181
  private buildDialogRequest;
182
+ /**
183
+ * Build a debug log context for one dialog segment.
184
+ *
185
+ * @private
186
+ * @description Inspects the already-built request body so the logged shape
187
+ * and speaker mapping exactly match what will be sent upstream. Reading the
188
+ * body (instead of re-deriving from `segment.turns`) ensures the log stays
189
+ * truthful if `buildDialogRequest()` evolves.
190
+ */
191
+ private buildDialogLogContext;
182
192
  /**
183
193
  * Validate payload byte limits before sending to Vertex AI
184
194
  *
@@ -203,6 +213,9 @@ export declare class VertexAITTSProvider extends BaseTTSProvider {
203
213
  * @param requestBody - The request payload
204
214
  * @param model - The model to use
205
215
  * @param region - The Vertex AI region to use
216
+ * @param logContext - Optional debug context. When provided (and
217
+ * `DEBUG_TTS_REQUESTS` is enabled), this call writes a Markdown log file
218
+ * with the full request body, response metadata, timing, and any error.
206
219
  * @returns Promise resolving to raw PCM audio buffer
207
220
  */
208
221
  private callAPI;
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-ai-tts-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/vertex-ai-tts-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,EACL,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,oBAAoB,EAGpB,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AAGzC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA6E;IAC/F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAsB/C;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;;;;OAKG;YACW,cAAc;IAqB5B;;;;;;;OAOG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA4DvB;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkF9E;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgE7B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqCpB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;;;;;;;OAQG;YACW,yBAAyB;IAsDvC;;;;;;;;OAQG;YACW,OAAO;IA6CrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;;;;OAOG;YACW,eAAe;IA0B7B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAkChB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAwBjB"}
1
+ {"version":3,"file":"vertex-ai-tts-provider.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/vertex-ai-tts-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,EACL,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAEV,oBAAoB,EAGpB,uBAAuB,EACxB,MAAM,iCAAiC,CAAC;AAgCzC;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;CACvC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,UAAU,CAA6E;IAC/F,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAsB/C;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;;;;OAKG;YACW,cAAc;IAqB5B;;;;;;;OAOG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,WAAW,CAAC;IAuEvB;;;;;;;;;;;;;;;;;OAiBG;IACG,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwF9E;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAgE7B;;;;;;;OAOG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqCpB;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IA0E1B;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAmD7B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IAyCjC;;;;;;;;OAQG;YACW,yBAAyB;IAuDvC;;;;;;;;;;;OAWG;YACW,OAAO;IA+IrB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAexB;;;;;;;OAOG;YACW,eAAe;IA0B7B;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;IAkChB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAwBjB"}
@@ -56,6 +56,20 @@ const types_1 = require("../types");
56
56
  const mp3_duration_utils_1 = require("../utils/mp3-duration.utils");
57
57
  const base_tts_provider_1 = require("./base-tts-provider");
58
58
  const retry_utils_1 = require("../utils/retry.utils");
59
+ /**
60
+ * Try to extract a JSON-parseable object from an HTTP response error body.
61
+ * Falls back to returning the raw text.
62
+ */
63
+ function parseErrorBody(raw) {
64
+ if (!raw)
65
+ return raw;
66
+ try {
67
+ return JSON.parse(raw);
68
+ }
69
+ catch {
70
+ return raw;
71
+ }
72
+ }
59
73
  const DEFAULT_MODEL = 'gemini-2.5-flash-preview-tts';
60
74
  const DEFAULT_DIALOG_MODEL = 'gemini-3.1-flash-tts-preview';
61
75
  const DEFAULT_SAMPLE_RATE = 24000;
@@ -179,8 +193,17 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
179
193
  textLength: text.length,
180
194
  requestedFormat,
181
195
  });
196
+ const logContext = {
197
+ kind: 'single-synthesize',
198
+ requestShape: 'single-voice',
199
+ speakers: [{ speaker: 'default', voice: voiceId }],
200
+ extras: {
201
+ textLength: text.length,
202
+ requestedFormat,
203
+ },
204
+ };
182
205
  try {
183
- const { pcmBuffer, region: usedRegion } = await this.callAPIWithRegionRotation(requestBody, model, options.region);
206
+ const { pcmBuffer, region: usedRegion } = await this.callAPIWithRegionRotation(requestBody, model, options.region, logContext);
184
207
  const { audioBuffer, audioFormat } = await this.convertPcmAudio(pcmBuffer, requestedFormat);
185
208
  const duration = Date.now() - startTime;
186
209
  this.log('info', 'Synthesis successful', {
@@ -250,8 +273,12 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
250
273
  for (let i = 0; i < request.segments.length; i++) {
251
274
  const segment = request.segments[i];
252
275
  const requestBody = this.buildDialogRequest(segment, request.speakers, options, i);
276
+ // Derive log context from the actually-built request body so what we log
277
+ // is exactly what callAPI() will send. Shape is inferred from the
278
+ // speechConfig variant chosen by buildDialogRequest().
279
+ const logContext = this.buildDialogLogContext(requestBody, segment, request.speakers, i);
253
280
  try {
254
- const { pcmBuffer, region } = await this.callAPIWithRegionRotation(requestBody, model, options.region);
281
+ const { pcmBuffer, region } = await this.callAPIWithRegionRotation(requestBody, model, options.region, logContext);
255
282
  pcmChunks.push(pcmBuffer);
256
283
  segmentBillings.push({
257
284
  characters: this.countSegmentCharacters(segment),
@@ -442,6 +469,50 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
442
469
  generationConfig,
443
470
  };
444
471
  }
472
+ /**
473
+ * Build a debug log context for one dialog segment.
474
+ *
475
+ * @private
476
+ * @description Inspects the already-built request body so the logged shape
477
+ * and speaker mapping exactly match what will be sent upstream. Reading the
478
+ * body (instead of re-deriving from `segment.turns`) ensures the log stays
479
+ * truthful if `buildDialogRequest()` evolves.
480
+ */
481
+ buildDialogLogContext(requestBody, segment, speakers, segmentIndex) {
482
+ const speechConfig = requestBody.generationConfig?.speechConfig;
483
+ let requestShape = 'single-voice';
484
+ let loggedSpeakers = [];
485
+ const multi = speechConfig?.multiSpeakerVoiceConfig;
486
+ if (multi?.speakerVoiceConfigs && multi.speakerVoiceConfigs.length > 0) {
487
+ requestShape = 'multi-speaker';
488
+ loggedSpeakers = multi.speakerVoiceConfigs.map((c) => ({
489
+ speaker: c.speaker,
490
+ voice: c.voiceConfig?.prebuiltVoiceConfig?.voiceName ?? '(unknown)',
491
+ }));
492
+ }
493
+ else {
494
+ const single = speechConfig?.voiceConfig;
495
+ const voiceName = single?.prebuiltVoiceConfig?.voiceName;
496
+ // Find the alias that maps to this voice (for readability in the log)
497
+ const usedAliases = new Set(segment.turns.map((t) => t.speaker));
498
+ const usedSpeaker = speakers.find((s) => usedAliases.has(s.speaker) && s.voice === voiceName);
499
+ loggedSpeakers = voiceName
500
+ ? [{ speaker: usedSpeaker?.speaker ?? '(unknown)', voice: voiceName }]
501
+ : [];
502
+ }
503
+ return {
504
+ kind: 'dialog-segment',
505
+ segmentIndex,
506
+ requestShape,
507
+ speakers: loggedSpeakers,
508
+ extras: {
509
+ turnCount: segment.turns.length,
510
+ hasStylePrompt: !!segment.stylePrompt,
511
+ stylePromptBytes: segment.stylePrompt ? Buffer.byteLength(segment.stylePrompt, 'utf8') : 0,
512
+ temperature: requestBody.generationConfig?.temperature,
513
+ },
514
+ };
515
+ }
445
516
  /**
446
517
  * Validate payload byte limits before sending to Vertex AI
447
518
  *
@@ -472,17 +543,17 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
472
543
  * @param regionOverride - Optional per-request region override (skips rotation)
473
544
  * @returns The PCM audio buffer and the region that processed the request
474
545
  */
475
- async callAPIWithRegionRotation(requestBody, model, regionOverride) {
546
+ async callAPIWithRegionRotation(requestBody, model, regionOverride, logContext) {
476
547
  // Per-request override: skip rotation entirely
477
548
  if (regionOverride) {
478
- const pcmBuffer = await this.callAPI(requestBody, model, regionOverride);
549
+ const pcmBuffer = await this.callAPI(requestBody, model, regionOverride, logContext);
479
550
  return { pcmBuffer, region: regionOverride };
480
551
  }
481
552
  const rotationConfig = this.config.regionRotation;
482
553
  // No rotation configured: use static region from constructor config
483
554
  if (!rotationConfig) {
484
555
  const region = this.config.region || DEFAULT_REGION;
485
- const pcmBuffer = await this.callAPI(requestBody, model, region);
556
+ const pcmBuffer = await this.callAPI(requestBody, model, region, logContext);
486
557
  return { pcmBuffer, region };
487
558
  }
488
559
  // Region rotation: try each region in order, rotate on quota errors only
@@ -490,7 +561,7 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
490
561
  let lastQuotaError = null;
491
562
  for (const region of regionsToTry) {
492
563
  try {
493
- const pcmBuffer = await this.callAPI(requestBody, model, region);
564
+ const pcmBuffer = await this.callAPI(requestBody, model, region, logContext);
494
565
  return { pcmBuffer, region };
495
566
  }
496
567
  catch (error) {
@@ -507,7 +578,7 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
507
578
  // Bonus attempt: try fallback one more time (alwaysTryFallback default: true)
508
579
  if (rotationConfig.alwaysTryFallback !== false) {
509
580
  try {
510
- const pcmBuffer = await this.callAPI(requestBody, model, rotationConfig.fallback);
581
+ const pcmBuffer = await this.callAPI(requestBody, model, rotationConfig.fallback, logContext);
511
582
  return { pcmBuffer, region: rotationConfig.fallback };
512
583
  }
513
584
  catch (error) {
@@ -525,30 +596,128 @@ class VertexAITTSProvider extends base_tts_provider_1.BaseTTSProvider {
525
596
  * @param requestBody - The request payload
526
597
  * @param model - The model to use
527
598
  * @param region - The Vertex AI region to use
599
+ * @param logContext - Optional debug context. When provided (and
600
+ * `DEBUG_TTS_REQUESTS` is enabled), this call writes a Markdown log file
601
+ * with the full request body, response metadata, timing, and any error.
528
602
  * @returns Promise resolving to raw PCM audio buffer
529
603
  */
530
- async callAPI(requestBody, model, region) {
604
+ async callAPI(requestBody, model, region, logContext) {
531
605
  const accessToken = await this.getAccessToken();
532
606
  const projectId = this.config.projectId;
533
607
  const url = `https://${region}-aiplatform.googleapis.com/v1/projects/${projectId}/locations/${region}/publishers/google/models/${model}:generateContent`;
534
- const response = await fetch(url, {
535
- method: 'POST',
536
- headers: {
537
- 'Authorization': `Bearer ${accessToken}`,
538
- 'Content-Type': 'application/json',
539
- },
540
- body: JSON.stringify(requestBody),
541
- });
608
+ const logEnabled = !!logContext && this.isRequestLoggingEnabled();
609
+ const timestamp = new Date().toISOString();
610
+ const startedAt = Date.now();
611
+ let response;
612
+ try {
613
+ response = await fetch(url, {
614
+ method: 'POST',
615
+ headers: {
616
+ 'Authorization': `Bearer ${accessToken}`,
617
+ 'Content-Type': 'application/json',
618
+ },
619
+ body: JSON.stringify(requestBody),
620
+ });
621
+ }
622
+ catch (err) {
623
+ // Network-level failure (no response received)
624
+ if (logEnabled) {
625
+ this.logRequest({
626
+ kind: logContext.kind,
627
+ timestamp,
628
+ model,
629
+ region,
630
+ endpointUrl: url,
631
+ httpMethod: 'POST',
632
+ segmentIndex: logContext.segmentIndex,
633
+ speakers: logContext.speakers,
634
+ requestShape: logContext.requestShape,
635
+ requestBody,
636
+ durationMs: Date.now() - startedAt,
637
+ error: {
638
+ name: err.name,
639
+ message: err.message,
640
+ stack: err.stack,
641
+ },
642
+ extras: logContext.extras,
643
+ });
644
+ }
645
+ throw err;
646
+ }
542
647
  if (!response.ok) {
543
648
  const errorText = await response.text();
649
+ if (logEnabled) {
650
+ this.logRequest({
651
+ kind: logContext.kind,
652
+ timestamp,
653
+ model,
654
+ region,
655
+ endpointUrl: url,
656
+ httpMethod: 'POST',
657
+ segmentIndex: logContext.segmentIndex,
658
+ speakers: logContext.speakers,
659
+ requestShape: logContext.requestShape,
660
+ requestBody,
661
+ httpStatus: response.status,
662
+ responseBody: parseErrorBody(errorText),
663
+ durationMs: Date.now() - startedAt,
664
+ error: {
665
+ message: `Vertex AI API error (${response.status})`,
666
+ },
667
+ extras: logContext.extras,
668
+ });
669
+ }
544
670
  throw new Error(`Vertex AI API error (${response.status}): ${errorText}`);
545
671
  }
546
672
  const responseJson = await response.json();
547
673
  const inlineData = responseJson.candidates?.[0]?.content?.parts?.[0]?.inlineData;
548
674
  if (!inlineData?.data) {
675
+ if (logEnabled) {
676
+ this.logRequest({
677
+ kind: logContext.kind,
678
+ timestamp,
679
+ model,
680
+ region,
681
+ endpointUrl: url,
682
+ httpMethod: 'POST',
683
+ segmentIndex: logContext.segmentIndex,
684
+ speakers: logContext.speakers,
685
+ requestShape: logContext.requestShape,
686
+ requestBody,
687
+ httpStatus: response.status,
688
+ responseBody: responseJson,
689
+ durationMs: Date.now() - startedAt,
690
+ error: { message: 'Vertex AI API returned no audio data' },
691
+ extras: logContext.extras,
692
+ });
693
+ }
549
694
  throw new Error('Vertex AI API returned no audio data');
550
695
  }
551
- return Buffer.from(inlineData.data, 'base64');
696
+ const pcmBuffer = Buffer.from(inlineData.data, 'base64');
697
+ if (logEnabled) {
698
+ this.logRequest({
699
+ kind: logContext.kind,
700
+ timestamp,
701
+ model,
702
+ region,
703
+ endpointUrl: url,
704
+ httpMethod: 'POST',
705
+ segmentIndex: logContext.segmentIndex,
706
+ speakers: logContext.speakers,
707
+ requestShape: logContext.requestShape,
708
+ requestBody,
709
+ httpStatus: response.status,
710
+ responseBody: {
711
+ mimeType: inlineData.mimeType,
712
+ audioBytes: pcmBuffer.length,
713
+ audioBase64Length: inlineData.data.length,
714
+ candidateCount: responseJson.candidates?.length ?? 0,
715
+ },
716
+ durationMs: Date.now() - startedAt,
717
+ extras: logContext.extras,
718
+ });
719
+ }
720
+ return pcmBuffer;
552
721
  }
553
722
  /**
554
723
  * Resolve ffmpeg binary path with fallback chain:
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-ai-tts-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/vertex-ai-tts-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vertex-ai-tts-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/vertex-ai-tts-provider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iDAAsC;AACtC,2BAAsD;AAEtD,oCAAuC;AACvC,oEAA6D;AAC7D,2DAI6B;AAQ7B,sDAAoD;AAkBpD;;;GAGG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAuDD,MAAM,aAAa,GAAG,8BAA8B,CAAC;AACrD,MAAM,oBAAoB,GAAG,8BAA8B,CAAC;AAC5D,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,cAAc,GAAG,aAAa,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,mBAAoB,SAAQ,mCAAe;IAKtD;;;;;OAKG;IACH,YAAY,MAAmC;QAC7C,KAAK,CAAC,mBAAW,CAAC,SAAS,CAAC,CAAC;QAVvB,eAAU,GAAwE,IAAI,CAAC;QAY7F,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B;YAC9E,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;YAChE,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,cAAc;YAC5E,cAAc,EAAE,MAAM,EAAE,cAAc;SACvC,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE7D,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,oCAAoC,EAAE;YACrD,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW;YACzC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,0FAA0F,CAC3F,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,8EAA8E,CAC/E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,EAAE,UAAU,EAAE,GAAG,wDAAa,qBAAqB,GAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;gBAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;gBACpC,MAAM,EAAE,CAAC,gDAAgD,CAAC;aAC3D,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,EAAkE,CAAC;QAC3G,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,oDAAoD,CACrD,CAAC;QACJ,CAAC;QAED,OAAO,aAAa,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,OAAe,EACf,OAA6B;QAE7B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAA+B,CAAC;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;QAC7C,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC;QAEvD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iCAAiC,EAAE;YACnD,OAAO;YACP,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAsB;YACpC,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,cAAc;YAC5B,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YAClD,MAAM,EAAE;gBACN,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,eAAe;aAChB;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAC5E,WAAW,EACX,KAAK,EACL,OAAO,CAAC,MAAM,EACd,UAAU,CACX,CAAC;YACF,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE;gBACvC,OAAO;gBACP,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,QAAQ;gBACR,SAAS,EAAE,WAAW,CAAC,MAAM;gBAC7B,WAAW;gBACX,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAC3B,KAAK,EAAE,OAAO;oBACd,QAAQ;oBACR,aAAa,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAA,mCAAc,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC9E,WAAW;oBACX,UAAU,EAAE,mBAAmB;oBAC/B,MAAM,EAAE,UAAU;iBACnB;gBACD,OAAO,EAAE;oBACP,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;iBACvC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE;gBACpC,OAAO;gBACP,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAA+B,CAAC;QAC9E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAAC;QACpD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,CAAC;QAEvD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wCAAwC,EAAE;YAC1D,KAAK;YACL,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACrC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACrC,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAkD,EAAE,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CACzC,OAAO,EACP,OAAO,CAAC,QAAQ,EAChB,OAAO,EACP,CAAC,CACF,CAAC;YAEF,yEAAyE;YACzE,kEAAkE;YAClE,uDAAuD;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAEzF,IAAI,CAAC;gBACH,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAChE,WAAW,EACX,KAAK,EACL,OAAO,CAAC,MAAM,EACd,UAAU,CACX,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC1B,eAAe,CAAC,IAAI,CAAC;oBACnB,UAAU,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;oBAChD,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iCAAiC,EAAE;oBACnD,YAAY,EAAE,CAAC;oBACf,KAAK,EAAG,KAAe,CAAC,OAAO;iBAChC,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAc,EAAE,wCAAwC,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAC7D,WAAW,EACX,eAAe,CAChB,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAC5C,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAC9B,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE;YAC9C,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YACrC,UAAU,EAAE,eAAe;YAC3B,QAAQ;YACR,SAAS,EAAE,WAAW,CAAC,MAAM;YAC7B,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACR,QAAQ,EAAE,IAAI,CAAC,YAAY;gBAC3B,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvE,QAAQ;gBACR,aAAa,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,IAAA,mCAAc,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9E,WAAW;gBACX,UAAU,EAAE,mBAAmB;aAChC;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,eAAe;aAC5B;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,qBAAqB,CAAC,OAAgC;QAC5D,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,gDAAgD,CACjD,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,kBAAkB,CAAC,CAAC,OAAO,mDAAmD,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,4BAA4B,CAAC,CAAC,OAAO,GAAG,CACzC,CAAC;YACJ,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,YAAY,CAAC,eAAe,CAC7B,CAAC;YACJ,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAC1C,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACtC,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,YAAY,CAAC,UAAU,CAAC,gCAAgC,IAAI,CAAC,OAAO,GAAG,CACxE,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,sBAAsB,CAAC,OAAsB;QACnD,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAClD,CAAC,CACF,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QACrD,OAAO,UAAU,GAAG,WAAW,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,YAAY,CAClB,IAAY,EACZ,OAAe,EACf,OAAmC;QAEnC,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;YACvC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,EAAE;YAClC,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAEnE,MAAM,gBAAgB,GAA4B;YAChD,kBAAkB,EAAE,CAAC,OAAO,CAAC;YAC7B,YAAY,EAAE;gBACZ,WAAW,EAAE;oBACX,mBAAmB,EAAE;wBACnB,SAAS,EAAE,OAAO;qBACnB;iBACF;aACF;SACF,CAAC;QAEF,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC5C,gBAAgB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACrD,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iBACjC;aACF;YACD,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACK,kBAAkB,CACxB,OAAsB,EACtB,QAAyB,EACzB,OAAmC,EACnC,YAAoB;QAEpB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;aACrC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;YACvC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE;YACxC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEjF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAExE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,YAAY,YAAY,6BAA6B,CACtD,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,YAAY,YAAY,SAAS,YAAY,CAAC,MAAM,sBAAsB;gBACxE,2EAA2E;gBAC3E,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;QAE/D,MAAM,YAAY,GAChB,YAAY,CAAC,MAAM,KAAK,CAAC;YACvB,CAAC,CAAC;gBACE,WAAW,EAAE;oBACX,mBAAmB,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;iBAC1D;aACF;YACH,CAAC,CAAC;gBACE,uBAAuB,EAAE;oBACvB,mBAAmB,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5C,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,WAAW,EAAE;4BACX,mBAAmB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;yBAC5C;qBACF,CAAC,CAAC;iBACJ;aACF,CAAC;QAER,MAAM,gBAAgB,GAA4B;YAChD,kBAAkB,EAAE,CAAC,OAAO,CAAC;YAC7B,YAAY;SACb,CAAC;QAEF,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,gBAAgB,CAAC,WAAW,GAAG,WAAW,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iBACjC;aACF;YACD,gBAAgB;SACjB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACK,qBAAqB,CAC3B,WAAoC,EACpC,OAAsB,EACtB,QAAyB,EACzB,YAAoB;QAEpB,MAAM,YAAY,GACf,WAAW,CAAC,gBAAwD,EAAE,YAE1D,CAAC;QAEhB,IAAI,YAAY,GAAqC,cAAc,CAAC;QACpE,IAAI,cAAc,GAA8C,EAAE,CAAC;QAEnE,MAAM,KAAK,GAAG,YAAY,EAAE,uBAEf,CAAC;QAEd,IAAI,KAAK,EAAE,mBAAmB,IAAI,KAAK,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvE,YAAY,GAAG,eAAe,CAAC;YAC/B,cAAc,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,WAAW,EAAE,mBAAmB,EAAE,SAAS,IAAI,WAAW;aACpE,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,YAAY,EAAE,WAEhB,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,EAAE,mBAAmB,EAAE,SAAS,CAAC;YACzD,sEAAsE;YACtE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;YAC9F,cAAc,GAAG,SAAS;gBACxB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBACtE,CAAC,CAAC,EAAE,CAAC;QACT,CAAC;QAED,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,YAAY;YACZ,YAAY;YACZ,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE;gBACN,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gBAC/B,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBACrC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1F,WAAW,EAAG,WAAW,CAAC,gBAAwD,EAAE,WAAW;aAChG;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,yBAAyB,CAC/B,YAAoB,EACpB,WAA+B,EAC/B,YAAqB;QAErB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;QAC9C,MAAM,YAAY,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtF,IAAI,SAAS,GAAG,yBAAyB,EAAE,CAAC;YAC1C,MAAM,IAAI,wCAAoB,CAC5B,IAAI,CAAC,YAAY,EACjB,qBAAqB,YAAY,OAAO,SAAS,oBAAoB,yBAAyB,2CAA2C,EACzI,SAAS,EACT,yBAAyB,EACzB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,WAAW,GAAG,2BAA2B,EAAE,CAAC;YAC9C,MAAM,IAAI,wCAAoB,CAC5B,IAAI,CAAC,YAAY,EACjB,4BAA4B,YAAY,OAAO,WAAW,oBAAoB,2BAA2B,cAAc,EACvH,WAAW,EACX,2BAA2B,EAC3B,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,GAAG,6BAA6B,EAAE,CAAC;YAClD,MAAM,IAAI,wCAAoB,CAC5B,IAAI,CAAC,YAAY,EACjB,iCAAiC,YAAY,OAAO,aAAa,oBAAoB,6BAA6B,cAAc,EAChI,aAAa,EACb,6BAA6B,EAC7B,YAAY,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,yBAAyB,CACrC,WAAoC,EACpC,KAAa,EACb,cAAuB,EACvB,UAA8B;QAE9B,+CAA+C;QAC/C,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;YACrF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAElD,oEAAoE;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,cAAc,CAAC;YACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAC/B,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC1E,IAAI,cAAc,GAAiB,IAAI,CAAC;QAExC,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;gBAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,IAAA,0BAAY,EAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yCAAyC,EAAE;wBAC1D,YAAY,EAAE,MAAM;qBACrB,CAAC,CAAC;oBACH,cAAc,GAAG,KAAc,CAAC;oBAChC,SAAS;gBACX,CAAC;gBACD,MAAM,KAAK,CAAC,CAAC,wCAAwC;YACvD,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IAAI,cAAc,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAA,0BAAY,EAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBACtC,cAAc,GAAG,KAAc,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,cAAc,IAAI,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,OAAO,CACnB,WAAoC,EACpC,KAAa,EACb,MAAc,EACd,UAA8B;QAE9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAEhD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACxC,MAAM,GAAG,GAAG,WAAW,MAAM,0CAA0C,SAAS,cAAc,MAAM,6BAA6B,KAAK,kBAAkB,CAAC;QAEzJ,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC1B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,WAAW,EAAE;oBACxC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+CAA+C;YAC/C,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC;oBACd,IAAI,EAAE,UAAW,CAAC,IAAI;oBACtB,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,QAAQ,EAAE,UAAW,CAAC,QAAQ;oBAC9B,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,WAAW;oBACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,KAAK,EAAE;wBACL,IAAI,EAAG,GAAa,CAAC,IAAI;wBACzB,OAAO,EAAG,GAAa,CAAC,OAAO;wBAC/B,KAAK,EAAG,GAAa,CAAC,KAAK;qBAC5B;oBACD,MAAM,EAAE,UAAW,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC;oBACd,IAAI,EAAE,UAAW,CAAC,IAAI;oBACtB,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,QAAQ,EAAE,UAAW,CAAC,QAAQ;oBAC9B,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,WAAW;oBACX,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,YAAY,EAAE,cAAc,CAAC,SAAS,CAAC;oBACvC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,KAAK,EAAE;wBACL,OAAO,EAAE,wBAAwB,QAAQ,CAAC,MAAM,GAAG;qBACpD;oBACD,MAAM,EAAE,UAAW,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAWvC,CAAC;QAEF,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;QACjF,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;YACtB,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC;oBACd,IAAI,EAAE,UAAW,CAAC,IAAI;oBACtB,SAAS;oBACT,KAAK;oBACL,MAAM;oBACN,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,QAAQ,EAAE,UAAW,CAAC,QAAQ;oBAC9B,YAAY,EAAE,UAAW,CAAC,YAAY;oBACtC,WAAW;oBACX,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,YAAY,EAAE,YAAY;oBAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,KAAK,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE;oBAC1D,MAAM,EAAE,UAAW,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEzD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,CAAC;gBACd,IAAI,EAAE,UAAW,CAAC,IAAI;gBACtB,SAAS;gBACT,KAAK;gBACL,MAAM;gBACN,WAAW,EAAE,GAAG;gBAChB,UAAU,EAAE,MAAM;gBAClB,YAAY,EAAE,UAAW,CAAC,YAAY;gBACtC,QAAQ,EAAE,UAAW,CAAC,QAAQ;gBAC9B,YAAY,EAAE,UAAW,CAAC,YAAY;gBACtC,WAAW;gBACX,UAAU,EAAE,QAAQ,CAAC,MAAM;gBAC3B,YAAY,EAAE;oBACZ,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,UAAU,EAAE,SAAS,CAAC,MAAM;oBAC5B,iBAAiB,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM;oBACzC,cAAc,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;iBACrD;gBACD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBAClC,MAAM,EAAE,UAAW,CAAC,MAAM;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACK,iBAAiB,CAAC,UAAmB;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACnE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,uCAAuC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC7F,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;QACjC,CAAC;QAED,IAAI,CAAC;YACH,8DAA8D;YAC9D,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAkB,CAAC;YAC/D,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBACpC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACpF,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;QAC9D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,QAAgB;QACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,OAAO;QAEzC,IAAI,CAAC;YACH,IAAA,eAAU,EAAC,QAAQ,EAAE,cAAS,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,IAAA,cAAS,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,yCAAyC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACP,yEAAyE;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,eAAe,CAC3B,SAAiB,EACjB,eAAuB;QAEvB,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrC,WAAW,EAAE,KAAK;aACnB,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,kDAAkD,EAAE;gBACnE,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrC,WAAW,EAAE,KAAK;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,QAAQ,CAAC,SAAiB;QAChC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAA,qBAAK,EAAC,IAAI,CAAC,UAAU,EAAE;gBACpC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC;gBAClC,KAAK,EAAE,GAAG;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,YAAY;gBACxB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,KAAK;gBACX,QAAQ;aACT,CAAC,CAAC;YAEH,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAEnC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;gBACzC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,QAAQ,CAAC,SAAiB;QAChC,MAAM,QAAQ,GAAG,CAAC,CAAC;QACnB,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,mBAAmB,GAAG,QAAQ,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,QAAQ,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAO,iBAAiB;QACrD,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAQ,aAAa;QACjD,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,aAAa,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;CACF;AAx8BD,kDAw8BC"}
@@ -9,4 +9,6 @@ export { setLogger, getLogger, resetLogger, setLogLevel, getLogLevel, silentLogg
9
9
  export type { TTSLogger, LogLevel } from './logger.utils';
10
10
  export { executeWithRetry, isRetryableError, calculateDelay, DEFAULT_RETRY_CONFIG, } from './retry.utils';
11
11
  export type { RetryConfig, RetryLogger } from './retry.utils';
12
+ export { writeRequestLog, isRequestLoggingEnabled, } from './request-logger.utils';
13
+ export type { TTSRequestLogEntry, TTSRequestLogKind, } from './request-logger.utils';
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,GACJ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,eAAe,EACf,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,GAAG,GACJ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EACL,eAAe,EACf,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Export all utility functions for TTS operations
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.DEFAULT_RETRY_CONFIG = exports.calculateDelay = exports.isRetryableError = exports.executeWithRetry = exports.log = exports.silentLogger = exports.getLogLevel = exports.setLogLevel = exports.resetLogger = exports.getLogger = exports.setLogger = exports.getMp3Duration = exports.formatCharacterCount = exports.estimateAudioDuration = exports.countBillableCharacters = exports.validateCharacterCount = exports.countCharactersWithoutSSML = exports.countCharacters = void 0;
8
+ exports.isRequestLoggingEnabled = exports.writeRequestLog = exports.DEFAULT_RETRY_CONFIG = exports.calculateDelay = exports.isRetryableError = exports.executeWithRetry = exports.log = exports.silentLogger = exports.getLogLevel = exports.setLogLevel = exports.resetLogger = exports.getLogger = exports.setLogger = exports.getMp3Duration = exports.formatCharacterCount = exports.estimateAudioDuration = exports.countBillableCharacters = exports.validateCharacterCount = exports.countCharactersWithoutSSML = exports.countCharacters = void 0;
9
9
  var character_counter_utils_1 = require("./character-counter.utils");
10
10
  Object.defineProperty(exports, "countCharacters", { enumerable: true, get: function () { return character_counter_utils_1.countCharacters; } });
11
11
  Object.defineProperty(exports, "countCharactersWithoutSSML", { enumerable: true, get: function () { return character_counter_utils_1.countCharactersWithoutSSML; } });
@@ -30,4 +30,8 @@ Object.defineProperty(exports, "executeWithRetry", { enumerable: true, get: func
30
30
  Object.defineProperty(exports, "isRetryableError", { enumerable: true, get: function () { return retry_utils_1.isRetryableError; } });
31
31
  Object.defineProperty(exports, "calculateDelay", { enumerable: true, get: function () { return retry_utils_1.calculateDelay; } });
32
32
  Object.defineProperty(exports, "DEFAULT_RETRY_CONFIG", { enumerable: true, get: function () { return retry_utils_1.DEFAULT_RETRY_CONFIG; } });
33
+ // Request logger (per-call Markdown debug logs, gated by DEBUG_TTS_REQUESTS)
34
+ var request_logger_utils_1 = require("./request-logger.utils");
35
+ Object.defineProperty(exports, "writeRequestLog", { enumerable: true, get: function () { return request_logger_utils_1.writeRequestLog; } });
36
+ Object.defineProperty(exports, "isRequestLoggingEnabled", { enumerable: true, get: function () { return request_logger_utils_1.isRequestLoggingEnabled; } });
33
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qEAOmC;AANjC,0HAAA,eAAe,OAAA;AACf,qIAAA,0BAA0B,OAAA;AAC1B,iIAAA,sBAAsB,OAAA;AACtB,kIAAA,uBAAuB,OAAA;AACvB,gIAAA,qBAAqB,OAAA;AACrB,+HAAA,oBAAoB,OAAA;AAGtB,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,+CAQwB;AAPtB,yGAAA,SAAS,OAAA;AACT,yGAAA,SAAS,OAAA;AACT,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,4GAAA,YAAY,OAAA;AACZ,mGAAA,GAAG,OAAA;AAKL,kBAAkB;AAClB,6CAKuB;AAJrB,+GAAA,gBAAgB,OAAA;AAChB,+GAAA,gBAAgB,OAAA;AAChB,6GAAA,cAAc,OAAA;AACd,mHAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,qEAOmC;AANjC,0HAAA,eAAe,OAAA;AACf,qIAAA,0BAA0B,OAAA;AAC1B,iIAAA,sBAAsB,OAAA;AACtB,kIAAA,uBAAuB,OAAA;AACvB,gIAAA,qBAAqB,OAAA;AACrB,+HAAA,oBAAoB,OAAA;AAGtB,2DAAsD;AAA7C,oHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,+CAQwB;AAPtB,yGAAA,SAAS,OAAA;AACT,yGAAA,SAAS,OAAA;AACT,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,2GAAA,WAAW,OAAA;AACX,4GAAA,YAAY,OAAA;AACZ,mGAAA,GAAG,OAAA;AAKL,kBAAkB;AAClB,6CAKuB;AAJrB,+GAAA,gBAAgB,OAAA;AAChB,+GAAA,gBAAgB,OAAA;AAChB,6GAAA,cAAc,OAAA;AACd,mHAAA,oBAAoB,OAAA;AAKtB,6EAA6E;AAC7E,+DAGgC;AAF9B,uHAAA,eAAe,OAAA;AACf,+HAAA,uBAAuB,OAAA"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * TTS Request Logger
3
+ *
4
+ * Provider-agnostic request/response logger that writes one Markdown file per
5
+ * upstream API call (e.g. per Google Vertex AI generateContent invocation).
6
+ *
7
+ * Activated via the `DEBUG_TTS_REQUESTS` environment variable. When disabled,
8
+ * `writeRequestLog()` is a no-op so instrumentation adds zero cost.
9
+ *
10
+ * Files are written to `<cwd>/logs/tts/requests/` (override via
11
+ * `TTS_REQUEST_LOG_DIR`). Filename pattern:
12
+ * `{ISO_TIMESTAMP}_{provider}_{kind}[_{suffix}].md`
13
+ */
14
+ /**
15
+ * Kind of upstream call being logged.
16
+ *
17
+ * - `dialog-segment` — one segment of a multi-speaker dialog synthesis
18
+ * - `single-synthesize` — a single-speaker synthesis
19
+ * - `other` — anything else a provider wants to log
20
+ */
21
+ export type TTSRequestLogKind = 'dialog-segment' | 'single-synthesize' | 'other';
22
+ /**
23
+ * Context describing a single upstream TTS API call.
24
+ *
25
+ * Providers populate this before the network call (request side) and, after the
26
+ * call completes, fill in the response-side fields. The logger then serialises
27
+ * the whole entry to a Markdown file.
28
+ */
29
+ export interface TTSRequestLogEntry {
30
+ /** Provider identifier, e.g. `vertex-ai` */
31
+ provider: string;
32
+ /** What kind of call this is */
33
+ kind: TTSRequestLogKind;
34
+ /** ISO 8601 timestamp when the request was issued */
35
+ timestamp: string;
36
+ /** Model / deployment / variant being called, when known */
37
+ model?: string;
38
+ /** Region / datacenter, when known */
39
+ region?: string;
40
+ /** Full endpoint URL the request was sent to */
41
+ endpointUrl?: string;
42
+ /** HTTP method (default implied: POST) */
43
+ httpMethod?: string;
44
+ /** Dialog segment index (only for `dialog-segment`) */
45
+ segmentIndex?: number;
46
+ /**
47
+ * Speaker → voice mapping actually used for this specific call (after filtering
48
+ * to speakers that appear in the segment's turns).
49
+ */
50
+ speakers?: Array<{
51
+ speaker: string;
52
+ voice: string;
53
+ }>;
54
+ /**
55
+ * Shape of the request body (provider-specific). For Vertex AI dialog:
56
+ * `single-voice` or `multi-speaker`.
57
+ */
58
+ requestShape?: string;
59
+ /** The final request body that was serialised and sent upstream */
60
+ requestBody: unknown;
61
+ /** HTTP status code (populated after the call) */
62
+ httpStatus?: number;
63
+ /**
64
+ * Response body. On success store lightweight metadata (audio size, mime type,
65
+ * durations). On error store the full error payload for debugging.
66
+ */
67
+ responseBody?: unknown;
68
+ /** Total duration of the upstream call in milliseconds */
69
+ durationMs?: number;
70
+ /** Set when the call failed */
71
+ error?: {
72
+ message: string;
73
+ stack?: string;
74
+ name?: string;
75
+ };
76
+ /** Free-form extra fields the caller wants to record */
77
+ extras?: Record<string, unknown>;
78
+ }
79
+ /**
80
+ * Check whether request logging is enabled via the `DEBUG_TTS_REQUESTS` env var.
81
+ *
82
+ * Truthy values: `1`, `true`, `yes`, `on` (case-insensitive). Anything else is
83
+ * treated as disabled.
84
+ */
85
+ export declare function isRequestLoggingEnabled(): boolean;
86
+ /**
87
+ * Write a request log entry as Markdown.
88
+ *
89
+ * No-op when `DEBUG_TTS_REQUESTS` is not enabled. Never throws — logging failures
90
+ * must not break TTS synthesis. Errors are reported on stderr for visibility.
91
+ *
92
+ * @returns The absolute file path of the written log, or `null` when disabled
93
+ * or the write failed.
94
+ */
95
+ export declare function writeRequestLog(entry: TTSRequestLogEntry): string | null;
96
+ //# sourceMappingURL=request-logger.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.utils.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/request-logger.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,mBAAmB,GAAG,OAAO,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,IAAI,EAAE,iBAAiB,CAAC;IACxB,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAElB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mEAAmE;IACnE,WAAW,EAAE,OAAO,CAAC;IAErB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,+BAA+B;IAC/B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAKjD;AAuJD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAgBxE"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * TTS Request Logger
4
+ *
5
+ * Provider-agnostic request/response logger that writes one Markdown file per
6
+ * upstream API call (e.g. per Google Vertex AI generateContent invocation).
7
+ *
8
+ * Activated via the `DEBUG_TTS_REQUESTS` environment variable. When disabled,
9
+ * `writeRequestLog()` is a no-op so instrumentation adds zero cost.
10
+ *
11
+ * Files are written to `<cwd>/logs/tts/requests/` (override via
12
+ * `TTS_REQUEST_LOG_DIR`). Filename pattern:
13
+ * `{ISO_TIMESTAMP}_{provider}_{kind}[_{suffix}].md`
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.isRequestLoggingEnabled = isRequestLoggingEnabled;
17
+ exports.writeRequestLog = writeRequestLog;
18
+ const fs_1 = require("fs");
19
+ const path_1 = require("path");
20
+ /**
21
+ * Check whether request logging is enabled via the `DEBUG_TTS_REQUESTS` env var.
22
+ *
23
+ * Truthy values: `1`, `true`, `yes`, `on` (case-insensitive). Anything else is
24
+ * treated as disabled.
25
+ */
26
+ function isRequestLoggingEnabled() {
27
+ const raw = process.env.DEBUG_TTS_REQUESTS;
28
+ if (!raw)
29
+ return false;
30
+ const v = raw.trim().toLowerCase();
31
+ return v === '1' || v === 'true' || v === 'yes' || v === 'on';
32
+ }
33
+ /**
34
+ * Resolve the directory where log files are written.
35
+ *
36
+ * Override via `TTS_REQUEST_LOG_DIR`. Defaults to `<cwd>/logs/tts/requests`.
37
+ */
38
+ function resolveLogDir() {
39
+ const override = process.env.TTS_REQUEST_LOG_DIR;
40
+ if (override && override.trim().length > 0) {
41
+ return (0, path_1.resolve)(override.trim());
42
+ }
43
+ return (0, path_1.resolve)(process.cwd(), 'logs', 'tts', 'requests');
44
+ }
45
+ /**
46
+ * Make a string safe to embed in a filename across Windows/macOS/Linux.
47
+ * Replaces reserved characters with `-` and collapses repeats.
48
+ */
49
+ function sanitiseForFilename(value) {
50
+ return value
51
+ // eslint-disable-next-line no-control-regex
52
+ .replace(/[<>:"/\\|?*\x00-\x1F]/g, '-')
53
+ .replace(/-+/g, '-')
54
+ .replace(/^-+|-+$/g, '')
55
+ .slice(0, 80);
56
+ }
57
+ /**
58
+ * Build the filename for a log entry.
59
+ *
60
+ * Pattern: `{ISO}_{provider}_{kind}[_{suffix}].md` where `ISO` has colons and
61
+ * dots replaced so it works on Windows.
62
+ */
63
+ function buildFilename(entry) {
64
+ const isoSafe = entry.timestamp.replace(/[:.]/g, '-');
65
+ const parts = [isoSafe, sanitiseForFilename(entry.provider), sanitiseForFilename(entry.kind)];
66
+ if (entry.kind === 'dialog-segment' && typeof entry.segmentIndex === 'number') {
67
+ parts.push(`seg${entry.segmentIndex}`);
68
+ }
69
+ if (entry.requestShape) {
70
+ parts.push(sanitiseForFilename(entry.requestShape));
71
+ }
72
+ return `${parts.join('_')}.md`;
73
+ }
74
+ /**
75
+ * Serialise unknown data to a fenced JSON code block.
76
+ *
77
+ * Handles circular references and BigInts without throwing; text content is
78
+ * written verbatim (no truncation) so the full upstream payload is preserved.
79
+ */
80
+ function toJsonBlock(label, data) {
81
+ let json;
82
+ try {
83
+ json = JSON.stringify(data, (_key, value) => (typeof value === 'bigint' ? value.toString() : value), 2);
84
+ }
85
+ catch (err) {
86
+ json = `/* Failed to stringify ${label}: ${err.message} */`;
87
+ }
88
+ return ['```json', json, '```'].join('\n');
89
+ }
90
+ /**
91
+ * Render a log entry to Markdown. The output includes every field that is
92
+ * populated; no truncation is performed.
93
+ */
94
+ function renderMarkdown(entry) {
95
+ const lines = [];
96
+ lines.push(`# TTS Request Log — ${entry.provider} / ${entry.kind}`);
97
+ lines.push('');
98
+ lines.push('## Meta');
99
+ lines.push(`- **Timestamp**: ${entry.timestamp}`);
100
+ lines.push(`- **Provider**: ${entry.provider}`);
101
+ lines.push(`- **Kind**: ${entry.kind}`);
102
+ if (entry.model)
103
+ lines.push(`- **Model**: ${entry.model}`);
104
+ if (entry.region)
105
+ lines.push(`- **Region**: ${entry.region}`);
106
+ if (entry.endpointUrl)
107
+ lines.push(`- **Endpoint**: ${entry.endpointUrl}`);
108
+ if (entry.httpMethod)
109
+ lines.push(`- **HTTP Method**: ${entry.httpMethod}`);
110
+ if (typeof entry.durationMs === 'number') {
111
+ lines.push(`- **Duration**: ${entry.durationMs} ms`);
112
+ }
113
+ if (typeof entry.httpStatus === 'number') {
114
+ lines.push(`- **HTTP Status**: ${entry.httpStatus}`);
115
+ }
116
+ lines.push('');
117
+ if (typeof entry.segmentIndex === 'number' ||
118
+ entry.requestShape ||
119
+ (entry.speakers && entry.speakers.length > 0)) {
120
+ lines.push('## Dialog Context');
121
+ if (typeof entry.segmentIndex === 'number') {
122
+ lines.push(`- **Segment Index**: ${entry.segmentIndex}`);
123
+ }
124
+ if (entry.requestShape) {
125
+ lines.push(`- **Request Shape**: ${entry.requestShape}`);
126
+ }
127
+ if (entry.speakers && entry.speakers.length > 0) {
128
+ lines.push(`- **Speaker Count**: ${entry.speakers.length}`);
129
+ lines.push('- **Speaker → Voice**:');
130
+ for (const s of entry.speakers) {
131
+ lines.push(` - \`${s.speaker}\` → \`${s.voice}\``);
132
+ }
133
+ }
134
+ lines.push('');
135
+ }
136
+ lines.push('## Request Body');
137
+ lines.push(toJsonBlock('requestBody', entry.requestBody));
138
+ lines.push('');
139
+ if (entry.responseBody !== undefined) {
140
+ lines.push('## Response');
141
+ lines.push(toJsonBlock('responseBody', entry.responseBody));
142
+ lines.push('');
143
+ }
144
+ if (entry.error) {
145
+ lines.push('## Error');
146
+ if (entry.error.name)
147
+ lines.push(`- **Name**: ${entry.error.name}`);
148
+ lines.push(`- **Message**: ${entry.error.message}`);
149
+ if (entry.error.stack) {
150
+ lines.push('');
151
+ lines.push('```');
152
+ lines.push(entry.error.stack);
153
+ lines.push('```');
154
+ }
155
+ lines.push('');
156
+ }
157
+ if (entry.extras && Object.keys(entry.extras).length > 0) {
158
+ lines.push('## Extras');
159
+ lines.push(toJsonBlock('extras', entry.extras));
160
+ lines.push('');
161
+ }
162
+ lines.push('---');
163
+ lines.push(`*Generated on ${new Date().toISOString()}*`);
164
+ lines.push('');
165
+ return lines.join('\n');
166
+ }
167
+ /**
168
+ * Write a request log entry as Markdown.
169
+ *
170
+ * No-op when `DEBUG_TTS_REQUESTS` is not enabled. Never throws — logging failures
171
+ * must not break TTS synthesis. Errors are reported on stderr for visibility.
172
+ *
173
+ * @returns The absolute file path of the written log, or `null` when disabled
174
+ * or the write failed.
175
+ */
176
+ function writeRequestLog(entry) {
177
+ if (!isRequestLoggingEnabled())
178
+ return null;
179
+ try {
180
+ const dir = resolveLogDir();
181
+ (0, fs_1.mkdirSync)(dir, { recursive: true });
182
+ const filename = buildFilename(entry);
183
+ const fullPath = (0, path_1.join)(dir, filename);
184
+ (0, fs_1.writeFileSync)(fullPath, renderMarkdown(entry), 'utf8');
185
+ return fullPath;
186
+ }
187
+ catch (err) {
188
+ // Never let logging break the main flow.
189
+ // eslint-disable-next-line no-console
190
+ console.error('[tts-request-logger] Failed to write log:', err.message);
191
+ return null;
192
+ }
193
+ }
194
+ //# sourceMappingURL=request-logger.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-logger.utils.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/utils/request-logger.utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loonylabs/tts-middleware",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Provider-agnostic Text-to-Speech middleware for Azure, OpenAI, ElevenLabs, Google Cloud, Deepgram, Fish Audio, Inworld AI, and Vertex AI TTS",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",