@framers/agentos 0.1.75 → 0.1.76

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 (130) hide show
  1. package/README.md +139 -34
  2. package/dist/core/agency/AgentCommunicationBus.d.ts +1 -0
  3. package/dist/core/agency/AgentCommunicationBus.d.ts.map +1 -1
  4. package/dist/core/agency/AgentCommunicationBus.js +62 -8
  5. package/dist/core/agency/AgentCommunicationBus.js.map +1 -1
  6. package/dist/core/agency/IAgentCommunicationBus.d.ts +1 -1
  7. package/dist/core/agency/IAgentCommunicationBus.d.ts.map +1 -1
  8. package/dist/orchestration/runtime/LoopController.d.ts +10 -10
  9. package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
  10. package/dist/orchestration/runtime/LoopController.js +1 -1
  11. package/dist/orchestration/runtime/LoopController.js.map +1 -1
  12. package/dist/orchestration/runtime/index.d.ts +1 -1
  13. package/dist/orchestration/runtime/index.d.ts.map +1 -1
  14. package/dist/orchestration/runtime/index.js.map +1 -1
  15. package/dist/speech/FallbackProxy.d.ts +104 -0
  16. package/dist/speech/FallbackProxy.d.ts.map +1 -0
  17. package/dist/speech/FallbackProxy.js +151 -0
  18. package/dist/speech/FallbackProxy.js.map +1 -0
  19. package/dist/speech/SpeechProviderResolver.d.ts +103 -0
  20. package/dist/speech/SpeechProviderResolver.d.ts.map +1 -0
  21. package/dist/speech/SpeechProviderResolver.js +256 -0
  22. package/dist/speech/SpeechProviderResolver.js.map +1 -0
  23. package/dist/speech/SpeechRuntime.d.ts +23 -1
  24. package/dist/speech/SpeechRuntime.d.ts.map +1 -1
  25. package/dist/speech/SpeechRuntime.js +82 -8
  26. package/dist/speech/SpeechRuntime.js.map +1 -1
  27. package/dist/speech/index.d.ts +6 -0
  28. package/dist/speech/index.d.ts.map +1 -1
  29. package/dist/speech/index.js +6 -0
  30. package/dist/speech/index.js.map +1 -1
  31. package/dist/speech/providerCatalog.d.ts.map +1 -1
  32. package/dist/speech/providerCatalog.js +15 -1
  33. package/dist/speech/providerCatalog.js.map +1 -1
  34. package/dist/speech/providers/AssemblyAISTTProvider.d.ts +49 -0
  35. package/dist/speech/providers/AssemblyAISTTProvider.d.ts.map +1 -0
  36. package/dist/speech/providers/AssemblyAISTTProvider.js +151 -0
  37. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -0
  38. package/dist/speech/providers/AzureSpeechSTTProvider.d.ts +48 -0
  39. package/dist/speech/providers/AzureSpeechSTTProvider.d.ts.map +1 -0
  40. package/dist/speech/providers/AzureSpeechSTTProvider.js +90 -0
  41. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -0
  42. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +60 -0
  43. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts.map +1 -0
  44. package/dist/speech/providers/AzureSpeechTTSProvider.js +127 -0
  45. package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -0
  46. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +55 -0
  47. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts.map +1 -0
  48. package/dist/speech/providers/DeepgramBatchSTTProvider.js +102 -0
  49. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -0
  50. package/dist/speech/types.d.ts +35 -0
  51. package/dist/speech/types.d.ts.map +1 -1
  52. package/dist/voice/CallManager.d.ts +1 -1
  53. package/dist/voice/CallManager.d.ts.map +1 -1
  54. package/dist/voice/CallManager.js +9 -0
  55. package/dist/voice/CallManager.js.map +1 -1
  56. package/dist/voice/MediaStreamParser.d.ts +83 -0
  57. package/dist/voice/MediaStreamParser.d.ts.map +1 -0
  58. package/dist/voice/MediaStreamParser.js +2 -0
  59. package/dist/voice/MediaStreamParser.js.map +1 -0
  60. package/dist/voice/TelephonyStreamTransport.d.ts +112 -0
  61. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -0
  62. package/dist/voice/TelephonyStreamTransport.js +208 -0
  63. package/dist/voice/TelephonyStreamTransport.js.map +1 -0
  64. package/dist/voice/index.d.ts +10 -0
  65. package/dist/voice/index.d.ts.map +1 -1
  66. package/dist/voice/index.js +11 -0
  67. package/dist/voice/index.js.map +1 -1
  68. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts +43 -0
  69. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts.map +1 -0
  70. package/dist/voice/parsers/PlivoMediaStreamParser.js +92 -0
  71. package/dist/voice/parsers/PlivoMediaStreamParser.js.map +1 -0
  72. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts +51 -0
  73. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts.map +1 -0
  74. package/dist/voice/parsers/TelnyxMediaStreamParser.js +103 -0
  75. package/dist/voice/parsers/TelnyxMediaStreamParser.js.map +1 -0
  76. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts +50 -0
  77. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts.map +1 -0
  78. package/dist/voice/parsers/TwilioMediaStreamParser.js +144 -0
  79. package/dist/voice/parsers/TwilioMediaStreamParser.js.map +1 -0
  80. package/dist/voice/providers/plivo.d.ts +77 -0
  81. package/dist/voice/providers/plivo.d.ts.map +1 -0
  82. package/dist/voice/providers/plivo.js +180 -0
  83. package/dist/voice/providers/plivo.js.map +1 -0
  84. package/dist/voice/providers/telnyx.d.ts +93 -0
  85. package/dist/voice/providers/telnyx.d.ts.map +1 -0
  86. package/dist/voice/providers/telnyx.js +193 -0
  87. package/dist/voice/providers/telnyx.js.map +1 -0
  88. package/dist/voice/providers/twilio.d.ts +79 -0
  89. package/dist/voice/providers/twilio.d.ts.map +1 -0
  90. package/dist/voice/providers/twilio.js +191 -0
  91. package/dist/voice/providers/twilio.js.map +1 -0
  92. package/dist/voice/twiml.d.ts +69 -0
  93. package/dist/voice/twiml.d.ts.map +1 -0
  94. package/dist/voice/twiml.js +92 -0
  95. package/dist/voice/twiml.js.map +1 -0
  96. package/dist/voice/types.d.ts +9 -1
  97. package/dist/voice/types.d.ts.map +1 -1
  98. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +90 -0
  99. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -0
  100. package/dist/voice-pipeline/AcousticEndpointDetector.js +123 -0
  101. package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -0
  102. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +67 -0
  103. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts.map +1 -0
  104. package/dist/voice-pipeline/HardCutBargeinHandler.js +55 -0
  105. package/dist/voice-pipeline/HardCutBargeinHandler.js.map +1 -0
  106. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +128 -0
  107. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -0
  108. package/dist/voice-pipeline/HeuristicEndpointDetector.js +240 -0
  109. package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -0
  110. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +96 -0
  111. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts.map +1 -0
  112. package/dist/voice-pipeline/SoftFadeBargeinHandler.js +69 -0
  113. package/dist/voice-pipeline/SoftFadeBargeinHandler.js.map +1 -0
  114. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +122 -0
  115. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -0
  116. package/dist/voice-pipeline/VoicePipelineOrchestrator.js +317 -0
  117. package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -0
  118. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +148 -0
  119. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts.map +1 -0
  120. package/dist/voice-pipeline/WebSocketStreamTransport.js +207 -0
  121. package/dist/voice-pipeline/WebSocketStreamTransport.js.map +1 -0
  122. package/dist/voice-pipeline/index.d.ts +13 -0
  123. package/dist/voice-pipeline/index.d.ts.map +1 -0
  124. package/dist/voice-pipeline/index.js +13 -0
  125. package/dist/voice-pipeline/index.js.map +1 -0
  126. package/dist/voice-pipeline/types.d.ts +905 -0
  127. package/dist/voice-pipeline/types.d.ts.map +1 -0
  128. package/dist/voice-pipeline/types.js +23 -0
  129. package/dist/voice-pipeline/types.js.map +1 -0
  130. package/package.json +6 -1
@@ -0,0 +1,48 @@
1
+ import type { SpeechAudioInput, SpeechToTextProvider, SpeechTranscriptionOptions, SpeechTranscriptionResult } from '../types.js';
2
+ /** Configuration for the AzureSpeechSTTProvider. */
3
+ export interface AzureSpeechSTTProviderConfig {
4
+ /** Azure Cognitive Services subscription key. */
5
+ key: string;
6
+ /** Azure region, e.g. `'eastus'` or `'westeurope'`. */
7
+ region: string;
8
+ /**
9
+ * Custom fetch implementation, useful for testing.
10
+ * Defaults to the global `fetch`.
11
+ */
12
+ fetchImpl?: typeof fetch;
13
+ }
14
+ /**
15
+ * Speech-to-text provider that uses the Azure Cognitive Services Speech REST API.
16
+ *
17
+ * Sends WAV audio as a raw binary body and returns a normalised
18
+ * {@link SpeechTranscriptionResult}. A `RecognitionStatus` of `'NoMatch'`
19
+ * is mapped to an empty text result rather than an error, matching the
20
+ * Azure SDK behaviour.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const provider = new AzureSpeechSTTProvider({ key: process.env.AZURE_SPEECH_KEY!, region: 'eastus' });
25
+ * const result = await provider.transcribe({ data: wavBuffer });
26
+ * console.log(result.text);
27
+ * ```
28
+ */
29
+ export declare class AzureSpeechSTTProvider implements SpeechToTextProvider {
30
+ private readonly config;
31
+ readonly id = "azure-speech-stt";
32
+ readonly displayName = "Azure Speech (STT)";
33
+ readonly supportsStreaming = false;
34
+ private readonly fetchImpl;
35
+ constructor(config: AzureSpeechSTTProviderConfig);
36
+ /** Returns the human-readable provider name. */
37
+ getProviderName(): string;
38
+ /**
39
+ * Transcribes an audio buffer using the Azure Speech recognition REST endpoint.
40
+ *
41
+ * @param audio - Raw audio data. Azure expects PCM WAV; pass `mimeType: 'audio/wav'`.
42
+ * @param options - Optional transcription settings (language…).
43
+ * @returns A promise resolving to the normalised transcription result.
44
+ * @throws When the Azure API returns a non-2xx status.
45
+ */
46
+ transcribe(audio: SpeechAudioInput, options?: SpeechTranscriptionOptions): Promise<SpeechTranscriptionResult>;
47
+ }
48
+ //# sourceMappingURL=AzureSpeechSTTProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureSpeechSTTProvider.d.ts","sourceRoot":"","sources":["../../../src/speech/providers/AzureSpeechSTTProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,oDAAoD;AACpD,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAoBD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAuB,YAAW,oBAAoB;IAOrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,SAAgB,EAAE,sBAAsB;IACxC,SAAgB,WAAW,wBAAwB;IACnD,SAAgB,iBAAiB,SAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,MAAM,EAAE,4BAA4B;IAIjE,gDAAgD;IAChD,eAAe,IAAI,MAAM;IAIzB;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC;CA0DtC"}
@@ -0,0 +1,90 @@
1
+ /** Converts Azure 100-nanosecond ticks to seconds. */
2
+ function ticksToSeconds(ticks) {
3
+ return ticks / 10000000;
4
+ }
5
+ /**
6
+ * Speech-to-text provider that uses the Azure Cognitive Services Speech REST API.
7
+ *
8
+ * Sends WAV audio as a raw binary body and returns a normalised
9
+ * {@link SpeechTranscriptionResult}. A `RecognitionStatus` of `'NoMatch'`
10
+ * is mapped to an empty text result rather than an error, matching the
11
+ * Azure SDK behaviour.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const provider = new AzureSpeechSTTProvider({ key: process.env.AZURE_SPEECH_KEY!, region: 'eastus' });
16
+ * const result = await provider.transcribe({ data: wavBuffer });
17
+ * console.log(result.text);
18
+ * ```
19
+ */
20
+ export class AzureSpeechSTTProvider {
21
+ constructor(config) {
22
+ this.config = config;
23
+ this.id = 'azure-speech-stt';
24
+ this.displayName = 'Azure Speech (STT)';
25
+ this.supportsStreaming = false;
26
+ this.fetchImpl = config.fetchImpl ?? fetch;
27
+ }
28
+ /** Returns the human-readable provider name. */
29
+ getProviderName() {
30
+ return this.displayName;
31
+ }
32
+ /**
33
+ * Transcribes an audio buffer using the Azure Speech recognition REST endpoint.
34
+ *
35
+ * @param audio - Raw audio data. Azure expects PCM WAV; pass `mimeType: 'audio/wav'`.
36
+ * @param options - Optional transcription settings (language…).
37
+ * @returns A promise resolving to the normalised transcription result.
38
+ * @throws When the Azure API returns a non-2xx status.
39
+ */
40
+ async transcribe(audio, options = {}) {
41
+ const lang = options.language ?? 'en-US';
42
+ const { key, region } = this.config;
43
+ const url = `https://${region}.stt.speech.microsoft.com` +
44
+ `/speech/recognition/conversation/cognitiveservices/v1` +
45
+ `?language=${encodeURIComponent(lang)}`;
46
+ const response = await this.fetchImpl(url, {
47
+ method: 'POST',
48
+ headers: {
49
+ 'Ocp-Apim-Subscription-Key': key,
50
+ 'Content-Type': 'audio/wav',
51
+ },
52
+ body: audio.data,
53
+ });
54
+ if (!response.ok) {
55
+ const message = await response.text();
56
+ throw new Error(`Azure Speech STT failed (${response.status}): ${message}`);
57
+ }
58
+ const payload = (await response.json());
59
+ // NoMatch means the recognizer found no speech — return empty text gracefully.
60
+ if (payload.RecognitionStatus === 'NoMatch') {
61
+ return {
62
+ text: '',
63
+ language: lang,
64
+ cost: 0,
65
+ isFinal: true,
66
+ providerResponse: payload,
67
+ usage: {
68
+ durationMinutes: (audio.durationSeconds ?? 0) / 60,
69
+ modelUsed: 'azure-speech-stt',
70
+ },
71
+ };
72
+ }
73
+ const durationSeconds = typeof payload.Duration === 'number'
74
+ ? ticksToSeconds(payload.Duration)
75
+ : audio.durationSeconds;
76
+ return {
77
+ text: payload.DisplayText ?? '',
78
+ language: lang,
79
+ durationSeconds,
80
+ cost: 0,
81
+ providerResponse: payload,
82
+ isFinal: true,
83
+ usage: {
84
+ durationMinutes: (durationSeconds ?? 0) / 60,
85
+ modelUsed: 'azure-speech-stt',
86
+ },
87
+ };
88
+ }
89
+ }
90
+ //# sourceMappingURL=AzureSpeechSTTProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureSpeechSTTProvider.js","sourceRoot":"","sources":["../../../src/speech/providers/AzureSpeechSTTProvider.ts"],"names":[],"mappings":"AAiCA,sDAAsD;AACtD,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,GAAG,QAAU,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,sBAAsB;IAOjC,YAA6B,MAAoC;QAApC,WAAM,GAAN,MAAM,CAA8B;QANjD,OAAE,GAAG,kBAAkB,CAAC;QACxB,gBAAW,GAAG,oBAAoB,CAAC;QACnC,sBAAiB,GAAG,KAAK,CAAC;QAKxC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,gDAAgD;IAChD,eAAe;QACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,KAAuB,EACvB,UAAsC,EAAE;QAExC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC;QACzC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAEpC,MAAM,GAAG,GACP,WAAW,MAAM,2BAA2B;YAC5C,uDAAuD;YACvD,aAAa,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;YACzC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,2BAA2B,EAAE,GAAG;gBAChC,cAAc,EAAE,WAAW;aAC5B;YACD,IAAI,EAAE,KAAK,CAAC,IAA2B;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;QAE/D,+EAA+E;QAC/E,IAAI,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO;gBACL,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,OAAO;gBACzB,KAAK,EAAE;oBACL,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,EAAE;oBAClD,SAAS,EAAE,kBAAkB;iBAC9B;aACF,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GACnB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAClC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;QAE5B,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;YAC/B,QAAQ,EAAE,IAAI;YACd,eAAe;YACf,IAAI,EAAE,CAAC;YACP,gBAAgB,EAAE,OAAO;YACzB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,eAAe,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC,GAAG,EAAE;gBAC5C,SAAS,EAAE,kBAAkB;aAC9B;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,60 @@
1
+ import type { SpeechSynthesisOptions, SpeechSynthesisResult, SpeechVoice, TextToSpeechProvider } from '../types.js';
2
+ /** Configuration for the AzureSpeechTTSProvider. */
3
+ export interface AzureSpeechTTSProviderConfig {
4
+ /** Azure Cognitive Services subscription key. */
5
+ key: string;
6
+ /** Azure region, e.g. `'eastus'` or `'westeurope'`. */
7
+ region: string;
8
+ /**
9
+ * Default voice name to use when none is specified per-request.
10
+ * @default 'en-US-JennyNeural'
11
+ */
12
+ defaultVoice?: string;
13
+ /**
14
+ * Custom fetch implementation, useful for testing.
15
+ * Defaults to the global `fetch`.
16
+ */
17
+ fetchImpl?: typeof fetch;
18
+ }
19
+ /**
20
+ * Text-to-speech provider that uses the Azure Cognitive Services Speech REST API.
21
+ *
22
+ * Generates audio via SSML synthesis and returns the raw MP3 buffer. Streaming
23
+ * is supported in the sense that the provider can be used inside a streaming
24
+ * pipeline — the actual HTTP request is a single synchronous call.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const provider = new AzureSpeechTTSProvider({ key: process.env.AZURE_SPEECH_KEY!, region: 'eastus' });
29
+ * const result = await provider.synthesize('Hello world');
30
+ * // result.audioBuffer contains MP3 bytes
31
+ * ```
32
+ */
33
+ export declare class AzureSpeechTTSProvider implements TextToSpeechProvider {
34
+ private readonly config;
35
+ readonly id = "azure-speech-tts";
36
+ readonly displayName = "Azure Speech (TTS)";
37
+ readonly supportsStreaming = true;
38
+ private readonly fetchImpl;
39
+ private readonly defaultVoice;
40
+ constructor(config: AzureSpeechTTSProviderConfig);
41
+ /** Returns the human-readable provider name. */
42
+ getProviderName(): string;
43
+ /**
44
+ * Synthesizes speech from plain text using the Azure TTS REST endpoint.
45
+ *
46
+ * @param text - The utterance to convert to audio.
47
+ * @param options - Optional synthesis settings (voice override…).
48
+ * @returns A promise resolving to the MP3 audio buffer and metadata.
49
+ * @throws When the Azure API returns a non-2xx status.
50
+ */
51
+ synthesize(text: string, options?: SpeechSynthesisOptions): Promise<SpeechSynthesisResult>;
52
+ /**
53
+ * Retrieves the list of available neural voices from the Azure region.
54
+ *
55
+ * @returns A promise resolving to an array of normalised {@link SpeechVoice} entries.
56
+ * @throws When the Azure API returns a non-2xx status.
57
+ */
58
+ listAvailableVoices(): Promise<SpeechVoice[]>;
59
+ }
60
+ //# sourceMappingURL=AzureSpeechTTSProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureSpeechTTSProvider.d.ts","sourceRoot":"","sources":["../../../src/speech/providers/AzureSpeechTTSProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB,oDAAoD;AACpD,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAyDD;;;;;;;;;;;;;GAaG;AACH,qBAAa,sBAAuB,YAAW,oBAAoB;IAQrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPnC,SAAgB,EAAE,sBAAsB;IACxC,SAAgB,WAAW,wBAAwB;IACnD,SAAgB,iBAAiB,QAAQ;IAEzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAET,MAAM,EAAE,4BAA4B;IAKjE,gDAAgD;IAChD,eAAe,IAAI,MAAM;IAIzB;;;;;;;OAOG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC;IAsCjC;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;CAgBpD"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Escapes special XML characters in text before embedding it in SSML.
3
+ * Azure's TTS endpoint expects well-formed XML; unescaped `<`, `>`, or `&`
4
+ * characters in the input text would cause a 400 error.
5
+ */
6
+ function escapeXml(text) {
7
+ return text
8
+ .replace(/&/g, '&amp;')
9
+ .replace(/</g, '&lt;')
10
+ .replace(/>/g, '&gt;')
11
+ .replace(/"/g, '&quot;')
12
+ .replace(/'/g, '&apos;');
13
+ }
14
+ /**
15
+ * Builds the SSML payload sent to the Azure TTS REST endpoint.
16
+ *
17
+ * @param text - Plain-text utterance to synthesize.
18
+ * @param voice - Azure voice short-name, e.g. `'en-US-JennyNeural'`.
19
+ */
20
+ function buildSsml(text, voice) {
21
+ return (`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US">` +
22
+ `<voice name="${voice}">${escapeXml(text)}</voice>` +
23
+ `</speak>`);
24
+ }
25
+ /**
26
+ * Maps an Azure voice list entry to the normalised {@link SpeechVoice} shape.
27
+ */
28
+ function mapVoice(entry) {
29
+ const gender = entry.Gender?.toLowerCase();
30
+ return {
31
+ id: entry.ShortName,
32
+ name: entry.DisplayName,
33
+ gender: gender === 'male' || gender === 'female' || gender === 'neutral'
34
+ ? gender
35
+ : gender,
36
+ lang: entry.LocaleName,
37
+ provider: 'azure-speech-tts',
38
+ };
39
+ }
40
+ /**
41
+ * Text-to-speech provider that uses the Azure Cognitive Services Speech REST API.
42
+ *
43
+ * Generates audio via SSML synthesis and returns the raw MP3 buffer. Streaming
44
+ * is supported in the sense that the provider can be used inside a streaming
45
+ * pipeline — the actual HTTP request is a single synchronous call.
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * const provider = new AzureSpeechTTSProvider({ key: process.env.AZURE_SPEECH_KEY!, region: 'eastus' });
50
+ * const result = await provider.synthesize('Hello world');
51
+ * // result.audioBuffer contains MP3 bytes
52
+ * ```
53
+ */
54
+ export class AzureSpeechTTSProvider {
55
+ constructor(config) {
56
+ this.config = config;
57
+ this.id = 'azure-speech-tts';
58
+ this.displayName = 'Azure Speech (TTS)';
59
+ this.supportsStreaming = true;
60
+ this.fetchImpl = config.fetchImpl ?? fetch;
61
+ this.defaultVoice = config.defaultVoice ?? 'en-US-JennyNeural';
62
+ }
63
+ /** Returns the human-readable provider name. */
64
+ getProviderName() {
65
+ return this.displayName;
66
+ }
67
+ /**
68
+ * Synthesizes speech from plain text using the Azure TTS REST endpoint.
69
+ *
70
+ * @param text - The utterance to convert to audio.
71
+ * @param options - Optional synthesis settings (voice override…).
72
+ * @returns A promise resolving to the MP3 audio buffer and metadata.
73
+ * @throws When the Azure API returns a non-2xx status.
74
+ */
75
+ async synthesize(text, options = {}) {
76
+ const voice = options.voice ?? this.defaultVoice;
77
+ const { key, region } = this.config;
78
+ const url = `https://${region}.tts.speech.microsoft.com/cognitiveservices/v1`;
79
+ const ssml = buildSsml(text, voice);
80
+ const response = await this.fetchImpl(url, {
81
+ method: 'POST',
82
+ headers: {
83
+ 'Ocp-Apim-Subscription-Key': key,
84
+ 'Content-Type': 'application/ssml+xml',
85
+ 'X-Microsoft-OutputFormat': 'audio-24khz-96kbitrate-mono-mp3',
86
+ },
87
+ body: ssml,
88
+ });
89
+ if (!response.ok) {
90
+ const message = await response.text();
91
+ throw new Error(`Azure Speech TTS failed (${response.status}): ${message}`);
92
+ }
93
+ const arrayBuffer = await response.arrayBuffer();
94
+ const audioBuffer = Buffer.from(arrayBuffer);
95
+ return {
96
+ audioBuffer,
97
+ mimeType: 'audio/mpeg',
98
+ cost: 0,
99
+ voiceUsed: voice,
100
+ providerName: this.displayName,
101
+ usage: {
102
+ characters: text.length,
103
+ modelUsed: 'azure-speech-tts',
104
+ },
105
+ };
106
+ }
107
+ /**
108
+ * Retrieves the list of available neural voices from the Azure region.
109
+ *
110
+ * @returns A promise resolving to an array of normalised {@link SpeechVoice} entries.
111
+ * @throws When the Azure API returns a non-2xx status.
112
+ */
113
+ async listAvailableVoices() {
114
+ const { key, region } = this.config;
115
+ const url = `https://${region}.tts.speech.microsoft.com/cognitiveservices/voices/list`;
116
+ const response = await this.fetchImpl(url, {
117
+ headers: { 'Ocp-Apim-Subscription-Key': key },
118
+ });
119
+ if (!response.ok) {
120
+ const message = await response.text();
121
+ throw new Error(`Azure Speech voice list failed (${response.status}): ${message}`);
122
+ }
123
+ const voices = (await response.json());
124
+ return voices.map(mapVoice);
125
+ }
126
+ }
127
+ //# sourceMappingURL=AzureSpeechTTSProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AzureSpeechTTSProvider.js","sourceRoot":"","sources":["../../../src/speech/providers/AzureSpeechTTSProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type { SpeechAudioInput, SpeechToTextProvider, SpeechTranscriptionOptions, SpeechTranscriptionResult } from '../types.js';
2
+ /** Configuration for the DeepgramBatchSTTProvider. */
3
+ export interface DeepgramBatchSTTProviderConfig {
4
+ /** Deepgram API key. */
5
+ apiKey: string;
6
+ /**
7
+ * Deepgram model to use for transcription.
8
+ * @default 'nova-2'
9
+ */
10
+ model?: string;
11
+ /**
12
+ * BCP-47 language code, e.g. `'en-US'`.
13
+ * When omitted Deepgram uses automatic language detection.
14
+ */
15
+ language?: string;
16
+ /**
17
+ * Custom fetch implementation, useful for testing.
18
+ * Defaults to the global `fetch`.
19
+ */
20
+ fetchImpl?: typeof fetch;
21
+ }
22
+ /**
23
+ * Speech-to-text provider that uses the Deepgram batch (pre-recorded) REST API.
24
+ *
25
+ * Sends audio as a raw binary body and returns a normalised
26
+ * {@link SpeechTranscriptionResult}. Streaming is not supported — use a
27
+ * Deepgram streaming adapter for real-time transcription.
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * const provider = new DeepgramBatchSTTProvider({ apiKey: process.env.DEEPGRAM_API_KEY! });
32
+ * const result = await provider.transcribe({ data: audioBuffer, mimeType: 'audio/wav' });
33
+ * console.log(result.text);
34
+ * ```
35
+ */
36
+ export declare class DeepgramBatchSTTProvider implements SpeechToTextProvider {
37
+ private readonly config;
38
+ readonly id = "deepgram-batch";
39
+ readonly displayName = "Deepgram (Batch)";
40
+ readonly supportsStreaming = false;
41
+ private readonly fetchImpl;
42
+ constructor(config: DeepgramBatchSTTProviderConfig);
43
+ /** Returns the human-readable provider name. */
44
+ getProviderName(): string;
45
+ /**
46
+ * Transcribes an audio buffer using the Deepgram pre-recorded API.
47
+ *
48
+ * @param audio - Raw audio data and associated metadata.
49
+ * @param options - Optional transcription settings (language, diarization…).
50
+ * @returns A promise resolving to the normalised transcription result.
51
+ * @throws When the Deepgram API returns a non-2xx status.
52
+ */
53
+ transcribe(audio: SpeechAudioInput, options?: SpeechTranscriptionOptions): Promise<SpeechTranscriptionResult>;
54
+ }
55
+ //# sourceMappingURL=DeepgramBatchSTTProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepgramBatchSTTProvider.d.ts","sourceRoot":"","sources":["../../../src/speech/providers/DeepgramBatchSTTProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EAE1B,MAAM,aAAa,CAAC;AAErB,sDAAsD;AACtD,MAAM,WAAW,8BAA8B;IAC7C,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAoDD;;;;;;;;;;;;;GAaG;AACH,qBAAa,wBAAyB,YAAW,oBAAoB;IAOvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,SAAgB,EAAE,oBAAoB;IACtC,SAAgB,WAAW,sBAAsB;IACjD,SAAgB,iBAAiB,SAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,MAAM,EAAE,8BAA8B;IAInE,gDAAgD;IAChD,eAAe,IAAI,MAAM;IAIzB;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC;CAmDtC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Maps Deepgram word-level data to {@link SpeechTranscriptionSegment} objects.
3
+ *
4
+ * Each word is promoted to its own segment so that per-word timing and speaker
5
+ * information is preserved in the normalized result.
6
+ */
7
+ function wordsToSegments(words) {
8
+ return words.map((w) => ({
9
+ text: w.word,
10
+ startTime: w.start,
11
+ endTime: w.end,
12
+ confidence: w.confidence,
13
+ speaker: w.speaker,
14
+ words: [
15
+ {
16
+ word: w.word,
17
+ start: w.start,
18
+ end: w.end,
19
+ confidence: w.confidence,
20
+ },
21
+ ],
22
+ }));
23
+ }
24
+ /**
25
+ * Speech-to-text provider that uses the Deepgram batch (pre-recorded) REST API.
26
+ *
27
+ * Sends audio as a raw binary body and returns a normalised
28
+ * {@link SpeechTranscriptionResult}. Streaming is not supported — use a
29
+ * Deepgram streaming adapter for real-time transcription.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const provider = new DeepgramBatchSTTProvider({ apiKey: process.env.DEEPGRAM_API_KEY! });
34
+ * const result = await provider.transcribe({ data: audioBuffer, mimeType: 'audio/wav' });
35
+ * console.log(result.text);
36
+ * ```
37
+ */
38
+ export class DeepgramBatchSTTProvider {
39
+ constructor(config) {
40
+ this.config = config;
41
+ this.id = 'deepgram-batch';
42
+ this.displayName = 'Deepgram (Batch)';
43
+ this.supportsStreaming = false;
44
+ this.fetchImpl = config.fetchImpl ?? fetch;
45
+ }
46
+ /** Returns the human-readable provider name. */
47
+ getProviderName() {
48
+ return this.displayName;
49
+ }
50
+ /**
51
+ * Transcribes an audio buffer using the Deepgram pre-recorded API.
52
+ *
53
+ * @param audio - Raw audio data and associated metadata.
54
+ * @param options - Optional transcription settings (language, diarization…).
55
+ * @returns A promise resolving to the normalised transcription result.
56
+ * @throws When the Deepgram API returns a non-2xx status.
57
+ */
58
+ async transcribe(audio, options = {}) {
59
+ const model = options.model ?? this.config.model ?? 'nova-2';
60
+ const lang = options.language ?? this.config.language ?? 'en-US';
61
+ const diarize = options.enableSpeakerDiarization ?? false;
62
+ const url = `https://api.deepgram.com/v1/listen` +
63
+ `?model=${encodeURIComponent(model)}` +
64
+ `&punctuate=true` +
65
+ `&diarize=${diarize}` +
66
+ `&language=${encodeURIComponent(lang)}`;
67
+ const contentType = audio.mimeType ?? 'audio/wav';
68
+ const response = await this.fetchImpl(url, {
69
+ method: 'POST',
70
+ headers: {
71
+ Authorization: `Token ${this.config.apiKey}`,
72
+ 'Content-Type': contentType,
73
+ },
74
+ body: audio.data,
75
+ });
76
+ if (!response.ok) {
77
+ const message = await response.text();
78
+ throw new Error(`Deepgram transcription failed (${response.status}): ${message}`);
79
+ }
80
+ const payload = (await response.json());
81
+ const firstAlternative = payload.results?.channels?.[0]?.alternatives?.[0];
82
+ const transcript = firstAlternative?.transcript ?? '';
83
+ const confidence = firstAlternative?.confidence;
84
+ const words = firstAlternative?.words ?? [];
85
+ const durationSeconds = payload.metadata?.duration ?? audio.durationSeconds;
86
+ return {
87
+ text: transcript,
88
+ language: lang,
89
+ durationSeconds,
90
+ confidence,
91
+ cost: 0,
92
+ segments: words.length > 0 ? wordsToSegments(words) : undefined,
93
+ providerResponse: payload,
94
+ isFinal: true,
95
+ usage: {
96
+ durationMinutes: (durationSeconds ?? 0) / 60,
97
+ modelUsed: model,
98
+ },
99
+ };
100
+ }
101
+ }
102
+ //# sourceMappingURL=DeepgramBatchSTTProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepgramBatchSTTProvider.js","sourceRoot":"","sources":["../../../src/speech/providers/DeepgramBatchSTTProvider.ts"],"names":[],"mappings":"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"}
@@ -166,6 +166,41 @@ export interface SpeechProviderCatalogEntry {
166
166
  defaultModel?: string;
167
167
  defaultVoice?: string;
168
168
  features?: readonly string[];
169
+ available?: boolean;
170
+ }
171
+ /** Configuration for the speech provider resolver. */
172
+ export interface SpeechResolverConfig {
173
+ stt?: {
174
+ preferred?: string[];
175
+ fallback?: boolean;
176
+ };
177
+ tts?: {
178
+ preferred?: string[];
179
+ voice?: string;
180
+ fallback?: boolean;
181
+ };
182
+ wakeWord?: {
183
+ provider?: string;
184
+ keywords?: string[];
185
+ sensitivity?: number;
186
+ };
187
+ }
188
+ /** Requirements for provider resolution. */
189
+ export interface ProviderRequirements {
190
+ streaming?: boolean;
191
+ local?: boolean;
192
+ features?: string[];
193
+ preferredIds?: string[];
194
+ }
195
+ /** A registered provider with metadata. */
196
+ export interface ProviderRegistration {
197
+ id: string;
198
+ kind: SpeechProviderKind;
199
+ provider: SpeechToTextProvider | TextToSpeechProvider | SpeechVadProvider | WakeWordProvider;
200
+ catalogEntry: SpeechProviderCatalogEntry;
201
+ isConfigured: boolean;
202
+ priority: number;
203
+ source: 'core' | 'extension';
169
204
  }
170
205
  export type SpeechSessionMode = 'manual' | 'vad' | 'wake-word';
171
206
  export type SpeechSessionState = 'idle' | 'wake-listening' | 'listening' | 'capturing' | 'transcribing' | 'responding' | 'playing' | 'interrupted' | 'closed' | 'error';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/speech/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/speech/types.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@
14
14
  import type { IVoiceCallProvider } from './IVoiceCallProvider.js';
15
15
  import type { CallId, CallMode, CallRecord, NormalizedCallEvent, VoiceCallConfig, VoiceProviderName, WebhookContext } from './types.js';
16
16
  /** Events emitted by the CallManager. */
17
- export type CallManagerEventType = 'call:initiated' | 'call:ringing' | 'call:answered' | 'call:active' | 'call:speaking' | 'call:listening' | 'call:ended' | 'call:error' | 'call:transcript' | 'call:speech-start' | 'media:connected';
17
+ export type CallManagerEventType = 'call:initiated' | 'call:ringing' | 'call:answered' | 'call:active' | 'call:speaking' | 'call:listening' | 'call:ended' | 'call:error' | 'call:transcript' | 'call:speech-start' | 'call:dtmf' | 'media:connected';
18
18
  export interface CallManagerEvent {
19
19
  type: CallManagerEventType;
20
20
  callId: CallId;
@@ -1 +1 @@
1
- {"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
@@ -295,6 +295,15 @@ export class CallManager {
295
295
  data: { streamSid: event.streamSid },
296
296
  });
297
297
  break;
298
+ case 'call-dtmf':
299
+ // DTMF does NOT trigger a state transition — call stays in current state
300
+ this.emit({
301
+ type: 'call:dtmf',
302
+ callId: call.callId,
303
+ call,
304
+ data: { digit: event.digit, durationMs: event.durationMs },
305
+ });
306
+ break;
298
307
  }
299
308
  }
300
309
  // ── Query ──