@loonylabs/tts-middleware 0.11.1 → 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.
Files changed (36) hide show
  1. package/README.md +128 -5
  2. package/dist/middleware/services/tts/index.d.ts +1 -1
  3. package/dist/middleware/services/tts/index.d.ts.map +1 -1
  4. package/dist/middleware/services/tts/index.js +2 -1
  5. package/dist/middleware/services/tts/index.js.map +1 -1
  6. package/dist/middleware/services/tts/providers/base-tts-provider.d.ts +57 -0
  7. package/dist/middleware/services/tts/providers/base-tts-provider.d.ts.map +1 -1
  8. package/dist/middleware/services/tts/providers/base-tts-provider.js +67 -1
  9. package/dist/middleware/services/tts/providers/base-tts-provider.js.map +1 -1
  10. package/dist/middleware/services/tts/providers/index.d.ts +1 -1
  11. package/dist/middleware/services/tts/providers/index.d.ts.map +1 -1
  12. package/dist/middleware/services/tts/providers/index.js +2 -1
  13. package/dist/middleware/services/tts/providers/index.js.map +1 -1
  14. package/dist/middleware/services/tts/providers/vertex-ai-tts-provider.d.ts +68 -2
  15. package/dist/middleware/services/tts/providers/vertex-ai-tts-provider.d.ts.map +1 -1
  16. package/dist/middleware/services/tts/providers/vertex-ai-tts-provider.js +424 -24
  17. package/dist/middleware/services/tts/providers/vertex-ai-tts-provider.js.map +1 -1
  18. package/dist/middleware/services/tts/types/common.types.d.ts +1 -0
  19. package/dist/middleware/services/tts/types/common.types.d.ts.map +1 -1
  20. package/dist/middleware/services/tts/types/common.types.js +1 -0
  21. package/dist/middleware/services/tts/types/common.types.js.map +1 -1
  22. package/dist/middleware/services/tts/types/index.d.ts +1 -1
  23. package/dist/middleware/services/tts/types/index.d.ts.map +1 -1
  24. package/dist/middleware/services/tts/types/index.js.map +1 -1
  25. package/dist/middleware/services/tts/types/provider-options.types.d.ts +113 -1
  26. package/dist/middleware/services/tts/types/provider-options.types.d.ts.map +1 -1
  27. package/dist/middleware/services/tts/types/provider-options.types.js.map +1 -1
  28. package/dist/middleware/services/tts/utils/index.d.ts +2 -0
  29. package/dist/middleware/services/tts/utils/index.d.ts.map +1 -1
  30. package/dist/middleware/services/tts/utils/index.js +5 -1
  31. package/dist/middleware/services/tts/utils/index.js.map +1 -1
  32. package/dist/middleware/services/tts/utils/request-logger.utils.d.ts +96 -0
  33. package/dist/middleware/services/tts/utils/request-logger.utils.d.ts.map +1 -0
  34. package/dist/middleware/services/tts/utils/request-logger.utils.js +194 -0
  35. package/dist/middleware/services/tts/utils/request-logger.utils.js.map +1 -0
  36. package/package.json +2 -1
@@ -8,7 +8,7 @@
8
8
  export { TTSProvider, TTSErrorCode, AudioFormat, } from './common.types';
9
9
  export type { AudioOptions, VoiceConfig, TTSSynthesizeRequest, TTSResponse, TTSResponseMetadata, TTSBillingInfo, TTSVoice, TTSVoiceMetadata, } from './common.types';
10
10
  export type { AzureProviderOptions, OpenAIProviderOptions, ElevenLabsProviderOptions, GoogleCloudTTSProviderOptions, GoogleCloudProviderOptions, // deprecated alias
11
- GoogleCloudTTSRegion, DeepgramProviderOptions, EdenAIProviderOptions, FishAudioProviderOptions, InworldProviderOptions, VertexAITTSProviderOptions, ProviderOptions, } from './provider-options.types';
11
+ GoogleCloudTTSRegion, DeepgramProviderOptions, EdenAIProviderOptions, FishAudioProviderOptions, InworldProviderOptions, VertexAITTSProviderOptions, DialogSpeaker, DialogTurn, DialogSegment, SynthesizeDialogRequest, ProviderOptions, } from './provider-options.types';
12
12
  export { isAzureOptions, isOpenAIOptions, isElevenLabsOptions, isGoogleCloudTTSOptions, isGoogleCloudOptions, // deprecated alias
13
13
  isDeepgramOptions, isEdenAIOptions, isFishAudioOptions, isInworldOptions, isVertexAITTSOptions, } from './provider-options.types';
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAAE,mBAAmB;AAC/C,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EAAE,mBAAmB;AACzC,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,0BAA0B,EAAE,mBAAmB;AAC/C,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,EACb,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,oBAAoB,EAAE,mBAAmB;AACzC,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,uCAAuC;AACvC,+CAIwB;AAHtB,2GAAA,WAAW,OAAA;AACX,4GAAA,YAAY,OAAA;AA+Bd,mEAWkC;AAVhC,wHAAA,cAAc,OAAA;AACd,yHAAA,eAAe,OAAA;AACf,6HAAA,mBAAmB,OAAA;AACnB,iIAAA,uBAAuB,OAAA;AACvB,8HAAA,oBAAoB,OAAA;AACpB,2HAAA,iBAAiB,OAAA;AACjB,yHAAA,eAAe,OAAA;AACf,4HAAA,kBAAkB,OAAA;AAClB,0HAAA,gBAAgB,OAAA;AAChB,8HAAA,oBAAoB,OAAA;AAGtB;;;;;;;GAOG;AACH,iDAA+B;AAC/B,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,uCAAuC;AACvC,+CAIwB;AAHtB,2GAAA,WAAW,OAAA;AACX,4GAAA,YAAY,OAAA;AAmCd,mEAWkC;AAVhC,wHAAA,cAAc,OAAA;AACd,yHAAA,eAAe,OAAA;AACf,6HAAA,mBAAmB,OAAA;AACnB,iIAAA,uBAAuB,OAAA;AACvB,8HAAA,oBAAoB,OAAA;AACpB,2HAAA,iBAAiB,OAAA;AACjB,yHAAA,eAAe,OAAA;AACf,4HAAA,kBAAkB,OAAA;AAClB,0HAAA,gBAAgB,OAAA;AAChB,8HAAA,oBAAoB,OAAA;AAGtB;;;;;;;GAOG;AACH,iDAA+B;AAC/B,2DAAyC"}
@@ -7,6 +7,7 @@
7
7
  * @MVP ✅ Azure options are implemented
8
8
  * @Future 🔮 Other providers typed but not implemented yet
9
9
  */
10
+ import type { RetryConfig } from '../utils/retry.utils';
10
11
  /**
11
12
  * Azure Speech Services provider options
12
13
  *
@@ -563,21 +564,35 @@ export interface VertexAITTSProviderOptions {
563
564
  * @options
564
565
  * - 'gemini-2.5-flash-preview-tts': Budget, fast ($0.50/M input + $10/M audio output tokens)
565
566
  * - 'gemini-2.5-pro-preview-tts': Premium, natural ($1.00/M input + $20/M audio output tokens)
567
+ * - 'gemini-3.1-flash-tts-preview': Expressive with audio tags + native multi-speaker
568
+ * ($1.00/M input + $20/M audio output tokens)
566
569
  *
567
570
  * @default 'gemini-2.5-flash-preview-tts'
568
571
  */
569
- model?: 'gemini-2.5-flash-preview-tts' | 'gemini-2.5-pro-preview-tts';
572
+ model?: 'gemini-2.5-flash-preview-tts' | 'gemini-2.5-pro-preview-tts' | 'gemini-3.1-flash-tts-preview';
570
573
  /**
571
574
  * Natural language style instruction prepended to the text
572
575
  *
573
576
  * @description Controls voice style/emotion via prompt engineering.
574
577
  * The instruction is prepended to the synthesis text, e.g. "Say cheerfully: {text}".
575
578
  *
579
+ * For Gemini 3.1 Flash TTS, inline audio tags like [sigh], [whispering],
580
+ * [laughing], [short pause] can additionally be embedded directly in the text.
581
+ *
576
582
  * @example 'Say in a spooky whisper:'
577
583
  * @example 'Read this cheerfully:'
578
584
  * @example 'Speak in a calm, professional tone:'
579
585
  */
580
586
  stylePrompt?: string;
587
+ /**
588
+ * Output randomness / expressiveness (Gemini 3.1 Flash TTS only)
589
+ *
590
+ * @description Controls how varied the generated speech is. Higher values
591
+ * produce more expressive delivery. Typical range 0.0–2.0.
592
+ *
593
+ * @default undefined (provider default)
594
+ */
595
+ temperature?: number;
581
596
  /**
582
597
  * Per-request Vertex AI region override
583
598
  *
@@ -589,6 +604,103 @@ export interface VertexAITTSProviderOptions {
589
604
  */
590
605
  region?: string;
591
606
  }
607
+ /**
608
+ * Speaker definition for dialog synthesis
609
+ *
610
+ * @description Maps a speaker alias (used in dialog turns) to a prebuilt voice.
611
+ * Speaker aliases must be alphanumeric without whitespace.
612
+ *
613
+ * @example { speaker: 'Alice', voice: 'Aoede' }
614
+ */
615
+ export interface DialogSpeaker {
616
+ /** Alphanumeric alias referenced in DialogTurn.speaker */
617
+ speaker: string;
618
+ /** Prebuilt voice name (e.g. 'Kore', 'Puck', 'Charon', 'Aoede') */
619
+ voice: string;
620
+ }
621
+ /**
622
+ * Single turn in a dialog segment
623
+ *
624
+ * @description Text may contain Gemini 3.1 audio tags like [sigh], [whispering],
625
+ * [short pause], etc. The assigned speaker must match a DialogSpeaker alias.
626
+ */
627
+ export interface DialogTurn {
628
+ /** Must match a DialogSpeaker.speaker in the surrounding request */
629
+ speaker: string;
630
+ /** Turn text, optionally with inline audio tags */
631
+ text: string;
632
+ }
633
+ /**
634
+ * Dialog segment — one synthesis request with a shared style prompt
635
+ *
636
+ * @description Each segment maps to exactly one Vertex AI request. Use
637
+ * multiple segments when you need different style prompts for different
638
+ * parts of a larger dialog (e.g. narrator → argument → narrator).
639
+ */
640
+ export interface DialogSegment {
641
+ /** Global style direction for this segment (applies to all turns) */
642
+ stylePrompt?: string;
643
+ /** Ordered turns within this segment */
644
+ turns: DialogTurn[];
645
+ /** Optional per-segment temperature override */
646
+ temperature?: number;
647
+ }
648
+ /**
649
+ * Request payload for VertexAITTSProvider.synthesizeDialog()
650
+ *
651
+ * @description Multi-segment, multi-speaker dialog synthesis. The provider
652
+ * runs one Vertex AI request per segment sequentially, concatenates the
653
+ * raw PCM buffers, and returns a single converted audio file. Billing
654
+ * aggregates characters across all segments and turns.
655
+ *
656
+ * Requires model 'gemini-3.1-flash-tts-preview' (or newer).
657
+ *
658
+ * @example
659
+ * ```typescript
660
+ * const result = await provider.synthesizeDialog({
661
+ * speakers: [
662
+ * { speaker: 'Narrator', voice: 'Charon' },
663
+ * { speaker: 'Alice', voice: 'Aoede' },
664
+ * { speaker: 'Bob', voice: 'Puck' },
665
+ * ],
666
+ * segments: [
667
+ * {
668
+ * stylePrompt: 'Calm audiobook narration',
669
+ * turns: [{ speaker: 'Narrator', text: 'The tavern was loud that night.' }],
670
+ * },
671
+ * {
672
+ * stylePrompt: 'Heated argument between two friends',
673
+ * turns: [
674
+ * { speaker: 'Alice', text: '[shouting] You lied to me!' },
675
+ * { speaker: 'Bob', text: '[sigh] Calm down, would you?' },
676
+ * ],
677
+ * },
678
+ * ],
679
+ * voice: { languageCode: 'en-US' },
680
+ * audio: { format: 'mp3' },
681
+ * providerOptions: { model: 'gemini-3.1-flash-tts-preview' },
682
+ * });
683
+ * ```
684
+ */
685
+ export interface SynthesizeDialogRequest {
686
+ /** Speaker-to-voice mapping, referenced by DialogTurn.speaker */
687
+ speakers: DialogSpeaker[];
688
+ /** One or more dialog segments, synthesized in order */
689
+ segments: DialogSegment[];
690
+ /** Language code and other voice-level config (voice.id is ignored in dialog mode) */
691
+ voice?: {
692
+ languageCode?: string;
693
+ id?: string;
694
+ };
695
+ /** Audio output options (format, etc.) */
696
+ audio?: {
697
+ format?: 'mp3' | 'wav' | string;
698
+ };
699
+ /** Provider-specific options (model, region, temperature) */
700
+ providerOptions?: VertexAITTSProviderOptions;
701
+ /** Retry config for transient errors, as in TTSSynthesizeRequest */
702
+ retry?: boolean | RetryConfig;
703
+ }
592
704
  /**
593
705
  * Union type of all provider options
594
706
  *
@@ -1 +1 @@
1
- {"version":3,"file":"provider-options.types.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/provider-options.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EACJ,KAAK,GACL,OAAO,GACP,UAAU,GACV,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,MAAM,GACN,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,aAAa,CAAC;IAElB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EACF,MAAM,GACN,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,SAAS,GACT,sBAAsB,GACtB,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,2BAA2B,CAAC;IAEhC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAC;IAEjD;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;CAClD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAC5B,IAAI,GACJ,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,aAAa,GACb,QAAQ,CAAC;AAEb;;;;;;;;GAQG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAE9B;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAE7B;AAED;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAElE;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAE5C;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EACL,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,WAAW,GACX,QAAQ,GACR,YAAY,CAAC;IAEjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAE9C;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,CAAC;IAE3C;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAExC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;IAE5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IAEzD;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,4BAA4B,GAAG,MAAM,GAAG,WAAW,CAAC;IAEpE;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sCAAsC,GAAG,IAAI,GAAG,KAAK,CAAC;CAChF;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,8BAA8B,GAAG,4BAA4B,CAAC;IAEtE;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,oBAAoB,GACpB,qBAAqB,GACrB,yBAAyB,GACzB,6BAA6B,GAC7B,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,sBAAsB,GACtB,0BAA0B,CAAC;AAE/B;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,oBAAoB,CAMjC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,qBAAqB,CAOlC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,yBAAyB,CAMtC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,6BAA6B,CAM1C;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,gCAA0B,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,uBAAuB,CAMpC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,qBAAqB,CASlC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,wBAAwB,CASrC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,sBAAsB,CAQnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,OAAO,GACf,OAAO,IAAI,0BAA0B,CAUvC"}
1
+ {"version":3,"file":"provider-options.types.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/provider-options.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-options.types.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/provider-options.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA2rBH,wCAQC;AAKD,0CASC;AAKD,kDAQC;AAKD,0DAQC;AAUD,8CAQC;AAKD,0CAWC;AAKD,gDAWC;AAKD,4CAUC;AAKD,oDAYC;AArID;;GAEG;AACH,SAAgB,cAAc,CAC5B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,IAAI,OAAO;QAClB,OAAQ,OAA8B,CAAC,KAAK,KAAK,QAAQ,CAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,WAAW,IAAI,OAAO,IAAI,kBAAkB,IAAI,OAAO,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,kBAAkB,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,CACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,UAAU,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,CAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,oBAAoB,IAAI,OAAO;YAC9B,aAAa,IAAI,OAAO;YACxB,QAAQ,IAAI,OAAO;YACnB,UAAU,IAAI,OAAO,CAAC,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,aAAa,IAAI,OAAO;YACvB,MAAM,IAAI,OAAO;YACjB,mBAAmB,IAAI,OAAO;YAC9B,aAAa,IAAI,OAAO,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,SAAS,IAAI,OAAO;YACnB,eAAe,IAAI,OAAO;YAC1B,wBAAwB,IAAI,OAAO,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,aAAa,IAAI,OAAO;YACvB,gBAAgB,IAAI,OAAO;YAC3B,CAAC,OAAO,IAAI,OAAO;gBACjB,OAAQ,OAA8B,CAAC,KAAK,KAAK,QAAQ;gBACxD,OAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"provider-options.types.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/provider-options.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA+yBH,wCAQC;AAKD,0CASC;AAKD,kDAQC;AAKD,0DAQC;AAUD,8CAQC;AAKD,0CAWC;AAKD,gDAWC;AAKD,4CAUC;AAKD,oDAYC;AArID;;GAEG;AACH,SAAgB,cAAc,CAC5B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,CAC7C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,IAAI,OAAO;QAClB,OAAQ,OAA8B,CAAC,KAAK,KAAK,QAAQ,CAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CACjC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,WAAW,IAAI,OAAO,IAAI,kBAAkB,IAAI,OAAO,CAAC,CAC1D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CACrC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,kBAAkB,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC,CACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACU,QAAA,oBAAoB,GAAG,uBAAuB,CAAC;AAE5D;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,UAAU,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,CAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,oBAAoB,IAAI,OAAO;YAC9B,aAAa,IAAI,OAAO;YACxB,QAAQ,IAAI,OAAO;YACnB,UAAU,IAAI,OAAO,CAAC,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,aAAa,IAAI,OAAO;YACvB,MAAM,IAAI,OAAO;YACjB,mBAAmB,IAAI,OAAO;YAC9B,aAAa,IAAI,OAAO,CAAC,CAC5B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,SAAS,IAAI,OAAO;YACnB,eAAe,IAAI,OAAO;YAC1B,wBAAwB,IAAI,OAAO,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,OAAgB;IAEhB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,aAAa,IAAI,OAAO;YACvB,gBAAgB,IAAI,OAAO;YAC3B,CAAC,OAAO,IAAI,OAAO;gBACjB,OAAQ,OAA8B,CAAC,KAAK,KAAK,QAAQ;gBACxD,OAA6B,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC"}
@@ -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.11.1",
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",
@@ -59,6 +59,7 @@
59
59
  }
60
60
  },
61
61
  "dependencies": {
62
+ "@breezystack/lamejs": "^1.2.7",
62
63
  "@google-cloud/text-to-speech": "^6.4.0",
63
64
  "microsoft-cognitiveservices-speech-sdk": "^1.38.0"
64
65
  },