@framers/agentos 0.1.75 → 0.1.77

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 (152) hide show
  1. package/README.md +148 -38
  2. package/dist/api/agent.d.ts +13 -3
  3. package/dist/api/agent.d.ts.map +1 -1
  4. package/dist/api/agent.js +1 -0
  5. package/dist/api/agent.js.map +1 -1
  6. package/dist/api/generateImage.d.ts +11 -2
  7. package/dist/api/generateImage.d.ts.map +1 -1
  8. package/dist/api/generateImage.js +2 -2
  9. package/dist/api/generateImage.js.map +1 -1
  10. package/dist/api/generateText.d.ts +13 -3
  11. package/dist/api/generateText.d.ts.map +1 -1
  12. package/dist/api/generateText.js +2 -2
  13. package/dist/api/generateText.js.map +1 -1
  14. package/dist/api/model.d.ts +53 -0
  15. package/dist/api/model.d.ts.map +1 -1
  16. package/dist/api/model.js +58 -0
  17. package/dist/api/model.js.map +1 -1
  18. package/dist/api/provider-defaults.d.ts +40 -0
  19. package/dist/api/provider-defaults.d.ts.map +1 -0
  20. package/dist/api/provider-defaults.js +73 -0
  21. package/dist/api/provider-defaults.js.map +1 -0
  22. package/dist/api/streamText.js +2 -2
  23. package/dist/api/streamText.js.map +1 -1
  24. package/dist/core/agency/AgentCommunicationBus.d.ts +1 -0
  25. package/dist/core/agency/AgentCommunicationBus.d.ts.map +1 -1
  26. package/dist/core/agency/AgentCommunicationBus.js +62 -8
  27. package/dist/core/agency/AgentCommunicationBus.js.map +1 -1
  28. package/dist/core/agency/IAgentCommunicationBus.d.ts +1 -1
  29. package/dist/core/agency/IAgentCommunicationBus.d.ts.map +1 -1
  30. package/dist/orchestration/runtime/LoopController.d.ts +10 -10
  31. package/dist/orchestration/runtime/LoopController.d.ts.map +1 -1
  32. package/dist/orchestration/runtime/LoopController.js +1 -1
  33. package/dist/orchestration/runtime/LoopController.js.map +1 -1
  34. package/dist/orchestration/runtime/index.d.ts +1 -1
  35. package/dist/orchestration/runtime/index.d.ts.map +1 -1
  36. package/dist/orchestration/runtime/index.js.map +1 -1
  37. package/dist/speech/FallbackProxy.d.ts +104 -0
  38. package/dist/speech/FallbackProxy.d.ts.map +1 -0
  39. package/dist/speech/FallbackProxy.js +151 -0
  40. package/dist/speech/FallbackProxy.js.map +1 -0
  41. package/dist/speech/SpeechProviderResolver.d.ts +103 -0
  42. package/dist/speech/SpeechProviderResolver.d.ts.map +1 -0
  43. package/dist/speech/SpeechProviderResolver.js +256 -0
  44. package/dist/speech/SpeechProviderResolver.js.map +1 -0
  45. package/dist/speech/SpeechRuntime.d.ts +23 -1
  46. package/dist/speech/SpeechRuntime.d.ts.map +1 -1
  47. package/dist/speech/SpeechRuntime.js +82 -8
  48. package/dist/speech/SpeechRuntime.js.map +1 -1
  49. package/dist/speech/index.d.ts +6 -0
  50. package/dist/speech/index.d.ts.map +1 -1
  51. package/dist/speech/index.js +6 -0
  52. package/dist/speech/index.js.map +1 -1
  53. package/dist/speech/providerCatalog.d.ts.map +1 -1
  54. package/dist/speech/providerCatalog.js +15 -1
  55. package/dist/speech/providerCatalog.js.map +1 -1
  56. package/dist/speech/providers/AssemblyAISTTProvider.d.ts +49 -0
  57. package/dist/speech/providers/AssemblyAISTTProvider.d.ts.map +1 -0
  58. package/dist/speech/providers/AssemblyAISTTProvider.js +151 -0
  59. package/dist/speech/providers/AssemblyAISTTProvider.js.map +1 -0
  60. package/dist/speech/providers/AzureSpeechSTTProvider.d.ts +48 -0
  61. package/dist/speech/providers/AzureSpeechSTTProvider.d.ts.map +1 -0
  62. package/dist/speech/providers/AzureSpeechSTTProvider.js +90 -0
  63. package/dist/speech/providers/AzureSpeechSTTProvider.js.map +1 -0
  64. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts +60 -0
  65. package/dist/speech/providers/AzureSpeechTTSProvider.d.ts.map +1 -0
  66. package/dist/speech/providers/AzureSpeechTTSProvider.js +127 -0
  67. package/dist/speech/providers/AzureSpeechTTSProvider.js.map +1 -0
  68. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts +55 -0
  69. package/dist/speech/providers/DeepgramBatchSTTProvider.d.ts.map +1 -0
  70. package/dist/speech/providers/DeepgramBatchSTTProvider.js +102 -0
  71. package/dist/speech/providers/DeepgramBatchSTTProvider.js.map +1 -0
  72. package/dist/speech/types.d.ts +35 -0
  73. package/dist/speech/types.d.ts.map +1 -1
  74. package/dist/voice/CallManager.d.ts +1 -1
  75. package/dist/voice/CallManager.d.ts.map +1 -1
  76. package/dist/voice/CallManager.js +9 -0
  77. package/dist/voice/CallManager.js.map +1 -1
  78. package/dist/voice/MediaStreamParser.d.ts +83 -0
  79. package/dist/voice/MediaStreamParser.d.ts.map +1 -0
  80. package/dist/voice/MediaStreamParser.js +2 -0
  81. package/dist/voice/MediaStreamParser.js.map +1 -0
  82. package/dist/voice/TelephonyStreamTransport.d.ts +112 -0
  83. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -0
  84. package/dist/voice/TelephonyStreamTransport.js +208 -0
  85. package/dist/voice/TelephonyStreamTransport.js.map +1 -0
  86. package/dist/voice/index.d.ts +10 -0
  87. package/dist/voice/index.d.ts.map +1 -1
  88. package/dist/voice/index.js +11 -0
  89. package/dist/voice/index.js.map +1 -1
  90. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts +43 -0
  91. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts.map +1 -0
  92. package/dist/voice/parsers/PlivoMediaStreamParser.js +92 -0
  93. package/dist/voice/parsers/PlivoMediaStreamParser.js.map +1 -0
  94. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts +51 -0
  95. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts.map +1 -0
  96. package/dist/voice/parsers/TelnyxMediaStreamParser.js +103 -0
  97. package/dist/voice/parsers/TelnyxMediaStreamParser.js.map +1 -0
  98. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts +50 -0
  99. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts.map +1 -0
  100. package/dist/voice/parsers/TwilioMediaStreamParser.js +144 -0
  101. package/dist/voice/parsers/TwilioMediaStreamParser.js.map +1 -0
  102. package/dist/voice/providers/plivo.d.ts +77 -0
  103. package/dist/voice/providers/plivo.d.ts.map +1 -0
  104. package/dist/voice/providers/plivo.js +180 -0
  105. package/dist/voice/providers/plivo.js.map +1 -0
  106. package/dist/voice/providers/telnyx.d.ts +93 -0
  107. package/dist/voice/providers/telnyx.d.ts.map +1 -0
  108. package/dist/voice/providers/telnyx.js +193 -0
  109. package/dist/voice/providers/telnyx.js.map +1 -0
  110. package/dist/voice/providers/twilio.d.ts +79 -0
  111. package/dist/voice/providers/twilio.d.ts.map +1 -0
  112. package/dist/voice/providers/twilio.js +191 -0
  113. package/dist/voice/providers/twilio.js.map +1 -0
  114. package/dist/voice/twiml.d.ts +69 -0
  115. package/dist/voice/twiml.d.ts.map +1 -0
  116. package/dist/voice/twiml.js +92 -0
  117. package/dist/voice/twiml.js.map +1 -0
  118. package/dist/voice/types.d.ts +9 -1
  119. package/dist/voice/types.d.ts.map +1 -1
  120. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts +90 -0
  121. package/dist/voice-pipeline/AcousticEndpointDetector.d.ts.map +1 -0
  122. package/dist/voice-pipeline/AcousticEndpointDetector.js +123 -0
  123. package/dist/voice-pipeline/AcousticEndpointDetector.js.map +1 -0
  124. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts +67 -0
  125. package/dist/voice-pipeline/HardCutBargeinHandler.d.ts.map +1 -0
  126. package/dist/voice-pipeline/HardCutBargeinHandler.js +55 -0
  127. package/dist/voice-pipeline/HardCutBargeinHandler.js.map +1 -0
  128. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts +128 -0
  129. package/dist/voice-pipeline/HeuristicEndpointDetector.d.ts.map +1 -0
  130. package/dist/voice-pipeline/HeuristicEndpointDetector.js +240 -0
  131. package/dist/voice-pipeline/HeuristicEndpointDetector.js.map +1 -0
  132. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts +96 -0
  133. package/dist/voice-pipeline/SoftFadeBargeinHandler.d.ts.map +1 -0
  134. package/dist/voice-pipeline/SoftFadeBargeinHandler.js +69 -0
  135. package/dist/voice-pipeline/SoftFadeBargeinHandler.js.map +1 -0
  136. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts +122 -0
  137. package/dist/voice-pipeline/VoicePipelineOrchestrator.d.ts.map +1 -0
  138. package/dist/voice-pipeline/VoicePipelineOrchestrator.js +317 -0
  139. package/dist/voice-pipeline/VoicePipelineOrchestrator.js.map +1 -0
  140. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts +148 -0
  141. package/dist/voice-pipeline/WebSocketStreamTransport.d.ts.map +1 -0
  142. package/dist/voice-pipeline/WebSocketStreamTransport.js +207 -0
  143. package/dist/voice-pipeline/WebSocketStreamTransport.js.map +1 -0
  144. package/dist/voice-pipeline/index.d.ts +13 -0
  145. package/dist/voice-pipeline/index.d.ts.map +1 -0
  146. package/dist/voice-pipeline/index.js +13 -0
  147. package/dist/voice-pipeline/index.js.map +1 -0
  148. package/dist/voice-pipeline/types.d.ts +905 -0
  149. package/dist/voice-pipeline/types.d.ts.map +1 -0
  150. package/dist/voice-pipeline/types.js +23 -0
  151. package/dist/voice-pipeline/types.js.map +1 -0
  152. package/package.json +6 -1
@@ -1,11 +1,14 @@
1
1
  import type { ExtensionManager } from '../extensions/ExtensionManager.js';
2
2
  import { SpeechProviderRegistry } from './SpeechProviderRegistry.js';
3
+ import { SpeechProviderResolver } from './SpeechProviderResolver.js';
3
4
  import { SpeechSession } from './SpeechSession.js';
4
- import type { SpeechProviderCatalogEntry, SpeechRuntimeConfig, SpeechRuntimeSessionConfig, SpeechToTextProvider, SpeechVadProvider, TextToSpeechProvider, WakeWordProvider } from './types.js';
5
+ import type { ProviderRequirements, SpeechProviderCatalogEntry, SpeechRuntimeConfig, SpeechRuntimeSessionConfig, SpeechToTextProvider, SpeechVadProvider, TextToSpeechProvider, WakeWordProvider } from './types.js';
5
6
  export declare class SpeechRuntime {
6
7
  private readonly registry;
7
8
  private readonly preferredSttProviderId;
8
9
  private readonly preferredTtsProviderId;
10
+ /** @since 0.2.0 — Prefer resolver over registry for provider resolution. */
11
+ readonly resolver: SpeechProviderResolver;
9
12
  constructor(config?: SpeechRuntimeConfig);
10
13
  getProviderRegistry(): SpeechProviderRegistry;
11
14
  registerSttProvider(provider: SpeechToTextProvider): void;
@@ -13,12 +16,31 @@ export declare class SpeechRuntime {
13
16
  registerVadProvider(provider: SpeechVadProvider): void;
14
17
  registerWakeWordProvider(provider: WakeWordProvider): void;
15
18
  hydrateFromExtensionManager(manager: ExtensionManager): void;
19
+ /**
20
+ * Resolve an STT provider via the new {@link SpeechProviderResolver}.
21
+ * Returns `undefined` instead of throwing when no provider matches.
22
+ *
23
+ * @since 0.2.0
24
+ */
25
+ getSTT(requirements?: ProviderRequirements): SpeechToTextProvider | undefined;
26
+ /**
27
+ * Resolve a TTS provider via the new {@link SpeechProviderResolver}.
28
+ * Returns `undefined` instead of throwing when no provider matches.
29
+ *
30
+ * @since 0.2.0
31
+ */
32
+ getTTS(requirements?: ProviderRequirements): TextToSpeechProvider | undefined;
16
33
  createSession(config?: SpeechRuntimeSessionConfig): SpeechSession;
17
34
  listProviders(): Array<SpeechProviderCatalogEntry & {
18
35
  registered: boolean;
19
36
  }>;
20
37
  getProvider(id: string): SpeechToTextProvider | TextToSpeechProvider | SpeechVadProvider | WakeWordProvider | undefined;
21
38
  private isProviderRegistered;
39
+ /**
40
+ * Bridge helper — registers a provider instance into the resolver with
41
+ * sensible defaults derived from the static catalog.
42
+ */
43
+ private registerProviderInResolver;
22
44
  private resolveDefaultSttProvider;
23
45
  private resolveDefaultTtsProvider;
24
46
  private resolveDefaultVadProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechRuntime.d.ts","sourceRoot":"","sources":["../../src/speech/SpeechRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;gBAEhD,MAAM,GAAE,mBAAwB;IA2C5C,mBAAmB,IAAI,sBAAsB;IAI7C,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAIzD,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAIzD,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAItD,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI1D,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAe5D,aAAa,CAAC,MAAM,GAAE,0BAA+B,GAAG,aAAa;IAkBrE,aAAa,IAAI,KAAK,CAAC,0BAA0B,GAAG;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAO5E,WAAW,CAAC,EAAE,EAAE,MAAM,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS;IASb,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,8BAA8B;CAGvC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,mBAAwB,GAAG,aAAa,CAEnF;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,MAAM,GAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAM,GAC5C,aAAa,CAEf;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAKlF"}
1
+ {"version":3,"file":"SpeechRuntime.d.ts","sourceRoot":"","sources":["../../src/speech/SpeechRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAQ1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAE1B,mBAAmB,EACnB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAC5D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqB;IAE5D,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;gBAE9B,MAAM,GAAE,mBAAwB;IA4D5C,mBAAmB,IAAI,sBAAsB;IAI7C,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAIzD,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAIzD,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAItD,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAI1D,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAmB5D;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,SAAS;IAQ7E;;;;;OAKG;IACH,MAAM,CAAC,YAAY,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,GAAG,SAAS;IAQ7E,aAAa,CAAC,MAAM,GAAE,0BAA+B,GAAG,aAAa;IAkBrE,aAAa,IAAI,KAAK,CAAC,0BAA0B,GAAG;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAO5E,WAAW,CAAC,EAAE,EAAE,MAAM,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS;IASb,OAAO,CAAC,oBAAoB;IAe5B;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAwBlC,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,yBAAyB;IAYjC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,8BAA8B;CAGvC;AAED,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,mBAAwB,GAAG,aAAa,CAEnF;AAED,wBAAgB,0BAA0B,CACxC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,EACrD,MAAM,GAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAM,GAC5C,aAAa,CAEf;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAKlF"}
@@ -1,6 +1,7 @@
1
1
  import { EXTENSION_KIND_STT_PROVIDER, EXTENSION_KIND_TTS_PROVIDER, EXTENSION_KIND_VAD_PROVIDER, EXTENSION_KIND_WAKE_WORD_PROVIDER, } from '../extensions/types.js';
2
2
  import { findSpeechProviderCatalogEntry, getSpeechProviderCatalog } from './providerCatalog.js';
3
3
  import { SpeechProviderRegistry } from './SpeechProviderRegistry.js';
4
+ import { SpeechProviderResolver } from './SpeechProviderResolver.js';
4
5
  import { SpeechSession } from './SpeechSession.js';
5
6
  import { BuiltInAdaptiveVadProvider } from './providers/BuiltInAdaptiveVadProvider.js';
6
7
  import { ElevenLabsTextToSpeechProvider } from './providers/ElevenLabsTextToSpeechProvider.js';
@@ -8,6 +9,16 @@ import { OpenAITextToSpeechProvider } from './providers/OpenAITextToSpeechProvid
8
9
  import { OpenAIWhisperSpeechToTextProvider } from './providers/OpenAIWhisperSpeechToTextProvider.js';
9
10
  export class SpeechRuntime {
10
11
  constructor(config = {}) {
12
+ const env = config.env ?? process.env;
13
+ /* Build resolver config from legacy preferred-provider fields. */
14
+ const resolverConfig = {};
15
+ if (config.preferredSttProviderId) {
16
+ resolverConfig.stt = { preferred: [config.preferredSttProviderId] };
17
+ }
18
+ if (config.preferredTtsProviderId) {
19
+ resolverConfig.tts = { preferred: [config.preferredTtsProviderId] };
20
+ }
21
+ this.resolver = new SpeechProviderResolver(resolverConfig, env);
11
22
  this.registry = new SpeechProviderRegistry();
12
23
  this.preferredSttProviderId =
13
24
  typeof config.preferredSttProviderId === 'string' && config.preferredSttProviderId.trim()
@@ -17,28 +28,36 @@ export class SpeechRuntime {
17
28
  typeof config.preferredTtsProviderId === 'string' && config.preferredTtsProviderId.trim()
18
29
  ? config.preferredTtsProviderId.trim()
19
30
  : undefined;
20
- this.registry.registerVadProvider(new BuiltInAdaptiveVadProvider());
31
+ /* VAD — always registered. */
32
+ const vadProvider = new BuiltInAdaptiveVadProvider();
33
+ this.registry.registerVadProvider(vadProvider);
34
+ this.registerProviderInResolver(vadProvider, 'vad');
21
35
  if (config.autoRegisterFromEnv !== false) {
22
- const env = config.env ?? process.env;
23
36
  const openaiApiKey = env['OPENAI_API_KEY'];
24
37
  if (openaiApiKey) {
25
- this.registry.registerSttProvider(new OpenAIWhisperSpeechToTextProvider({
38
+ const stt = new OpenAIWhisperSpeechToTextProvider({
26
39
  apiKey: openaiApiKey,
27
40
  model: env['WHISPER_MODEL_DEFAULT'] ?? 'whisper-1',
28
- }));
29
- this.registry.registerTtsProvider(new OpenAITextToSpeechProvider({
41
+ });
42
+ this.registry.registerSttProvider(stt);
43
+ this.registerProviderInResolver(stt, 'stt');
44
+ const tts = new OpenAITextToSpeechProvider({
30
45
  apiKey: openaiApiKey,
31
46
  model: env['OPENAI_TTS_DEFAULT_MODEL'] ?? 'tts-1',
32
47
  voice: env['OPENAI_TTS_DEFAULT_VOICE'] ?? 'nova',
33
- }));
48
+ });
49
+ this.registry.registerTtsProvider(tts);
50
+ this.registerProviderInResolver(tts, 'tts');
34
51
  }
35
52
  const elevenLabsApiKey = env['ELEVENLABS_API_KEY'];
36
53
  if (elevenLabsApiKey) {
37
- this.registry.registerTtsProvider(new ElevenLabsTextToSpeechProvider({
54
+ const tts = new ElevenLabsTextToSpeechProvider({
38
55
  apiKey: elevenLabsApiKey,
39
56
  model: env['ELEVENLABS_TTS_MODEL'] ?? 'eleven_multilingual_v2',
40
57
  voiceId: env['ELEVENLABS_VOICE_ID'],
41
- }));
58
+ });
59
+ this.registry.registerTtsProvider(tts);
60
+ this.registerProviderInResolver(tts, 'tts');
42
61
  }
43
62
  }
44
63
  }
@@ -60,15 +79,47 @@ export class SpeechRuntime {
60
79
  hydrateFromExtensionManager(manager) {
61
80
  for (const descriptor of manager.getRegistry(EXTENSION_KIND_STT_PROVIDER).listActive()) {
62
81
  this.registry.registerSttProvider(descriptor.payload);
82
+ this.registerProviderInResolver(descriptor.payload, 'stt', 'extension');
63
83
  }
64
84
  for (const descriptor of manager.getRegistry(EXTENSION_KIND_TTS_PROVIDER).listActive()) {
65
85
  this.registry.registerTtsProvider(descriptor.payload);
86
+ this.registerProviderInResolver(descriptor.payload, 'tts', 'extension');
66
87
  }
67
88
  for (const descriptor of manager.getRegistry(EXTENSION_KIND_VAD_PROVIDER).listActive()) {
68
89
  this.registry.registerVadProvider(descriptor.payload);
90
+ this.registerProviderInResolver(descriptor.payload, 'vad', 'extension');
69
91
  }
70
92
  for (const descriptor of manager.getRegistry(EXTENSION_KIND_WAKE_WORD_PROVIDER).listActive()) {
71
93
  this.registry.registerWakeWordProvider(descriptor.payload);
94
+ this.registerProviderInResolver(descriptor.payload, 'wake-word', 'extension');
95
+ }
96
+ }
97
+ /**
98
+ * Resolve an STT provider via the new {@link SpeechProviderResolver}.
99
+ * Returns `undefined` instead of throwing when no provider matches.
100
+ *
101
+ * @since 0.2.0
102
+ */
103
+ getSTT(requirements) {
104
+ try {
105
+ return this.resolver.resolveSTT(requirements);
106
+ }
107
+ catch {
108
+ return undefined;
109
+ }
110
+ }
111
+ /**
112
+ * Resolve a TTS provider via the new {@link SpeechProviderResolver}.
113
+ * Returns `undefined` instead of throwing when no provider matches.
114
+ *
115
+ * @since 0.2.0
116
+ */
117
+ getTTS(requirements) {
118
+ try {
119
+ return this.resolver.resolveTTS(requirements);
120
+ }
121
+ catch {
122
+ return undefined;
72
123
  }
73
124
  }
74
125
  createSession(config = {}) {
@@ -114,6 +165,29 @@ export class SpeechRuntime {
114
165
  return false;
115
166
  }
116
167
  }
168
+ /**
169
+ * Bridge helper — registers a provider instance into the resolver with
170
+ * sensible defaults derived from the static catalog.
171
+ */
172
+ registerProviderInResolver(provider, kind, source = 'core') {
173
+ const catalogEntry = findSpeechProviderCatalogEntry(provider.id) ?? {
174
+ id: provider.id,
175
+ kind,
176
+ label: provider.getProviderName?.() ?? provider.id,
177
+ envVars: [],
178
+ local: false,
179
+ description: '',
180
+ };
181
+ this.resolver.register({
182
+ id: provider.id,
183
+ kind,
184
+ provider: provider,
185
+ catalogEntry,
186
+ isConfigured: true,
187
+ priority: source === 'extension' ? 200 : 100,
188
+ source,
189
+ });
190
+ }
117
191
  resolveDefaultSttProvider() {
118
192
  if (this.preferredSttProviderId) {
119
193
  const preferred = this.registry.getSttProvider(this.preferredSttProviderId);
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechRuntime.js","sourceRoot":"","sources":["../../src/speech/SpeechRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpeechRuntime.js","sourceRoot":"","sources":["../../src/speech/SpeechRuntime.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,16 @@ export * from './types.js';
2
2
  export * from './audio.js';
3
3
  export * from './providerCatalog.js';
4
4
  export * from './SpeechProviderRegistry.js';
5
+ export * from './SpeechProviderResolver.js';
6
+ export * from './FallbackProxy.js';
5
7
  export * from './SpeechSession.js';
6
8
  export * from './SpeechRuntime.js';
7
9
  export * from './providers/OpenAIWhisperSpeechToTextProvider.js';
8
10
  export * from './providers/OpenAITextToSpeechProvider.js';
9
11
  export * from './providers/ElevenLabsTextToSpeechProvider.js';
10
12
  export * from './providers/BuiltInAdaptiveVadProvider.js';
13
+ export * from './providers/DeepgramBatchSTTProvider.js';
14
+ export * from './providers/AssemblyAISTTProvider.js';
15
+ export * from './providers/AzureSpeechSTTProvider.js';
16
+ export * from './providers/AzureSpeechTTSProvider.js';
11
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC"}
@@ -2,10 +2,16 @@ export * from './types.js';
2
2
  export * from './audio.js';
3
3
  export * from './providerCatalog.js';
4
4
  export * from './SpeechProviderRegistry.js';
5
+ export * from './SpeechProviderResolver.js';
6
+ export * from './FallbackProxy.js';
5
7
  export * from './SpeechSession.js';
6
8
  export * from './SpeechRuntime.js';
7
9
  export * from './providers/OpenAIWhisperSpeechToTextProvider.js';
8
10
  export * from './providers/OpenAITextToSpeechProvider.js';
9
11
  export * from './providers/ElevenLabsTextToSpeechProvider.js';
10
12
  export * from './providers/BuiltInAdaptiveVadProvider.js';
13
+ export * from './providers/DeepgramBatchSTTProvider.js';
14
+ export * from './providers/AssemblyAISTTProvider.js';
15
+ export * from './providers/AzureSpeechSTTProvider.js';
16
+ export * from './providers/AzureSpeechTTSProvider.js';
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/speech/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kDAAkD,CAAC;AACjE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,uCAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"providerCatalog.d.ts","sourceRoot":"","sources":["../../src/speech/providerCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,0BAA0B,EAiR/D,CAAC;AAEX,wBAAgB,wBAAwB,CACtC,IAAI,CAAC,EAAE,kBAAkB,GACxB,0BAA0B,EAAE,CAG9B;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAExC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,EACjC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAET"}
1
+ {"version":3,"file":"providerCatalog.d.ts","sourceRoot":"","sources":["../../src/speech/providerCatalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,0BAA0B,EA+R/D,CAAC;AAEX,wBAAgB,wBAAwB,CACtC,IAAI,CAAC,EAAE,kBAAkB,GACxB,0BAA0B,EAAE,CAG9B;AAED,wBAAgB,sBAAsB,IAAI,kBAAkB,EAAE,CAE7D;AAED,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,GACT,0BAA0B,GAAG,SAAS,CAExC;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,0BAA0B,EACjC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAET"}
@@ -50,6 +50,16 @@ export const SPEECH_PROVIDER_CATALOG = [
50
50
  streaming: true,
51
51
  features: ['cloud', 'streaming'],
52
52
  },
53
+ {
54
+ id: 'deepgram-batch',
55
+ kind: 'stt',
56
+ label: 'Deepgram Batch',
57
+ envVars: ['DEEPGRAM_API_KEY'],
58
+ local: false,
59
+ streaming: false,
60
+ description: 'Batch speech-to-text via Deepgram REST API.',
61
+ features: ['cloud', 'diarization', 'timestamps'],
62
+ },
53
63
  {
54
64
  id: 'assemblyai',
55
65
  kind: 'stt',
@@ -77,7 +87,7 @@ export const SPEECH_PROVIDER_CATALOG = [
77
87
  envVars: ['AZURE_SPEECH_KEY', 'AZURE_SPEECH_REGION'],
78
88
  local: false,
79
89
  description: 'Azure speech recognition for batch and live transcription.',
80
- streaming: true,
90
+ streaming: false,
81
91
  features: ['cloud', 'streaming'],
82
92
  },
83
93
  {
@@ -107,6 +117,7 @@ export const SPEECH_PROVIDER_CATALOG = [
107
117
  local: true,
108
118
  description: 'Local/offline ASR via NVIDIA NeMo.',
109
119
  features: ['local', 'offline'],
120
+ available: false,
110
121
  },
111
122
  {
112
123
  id: 'openai-tts',
@@ -179,6 +190,7 @@ export const SPEECH_PROVIDER_CATALOG = [
179
190
  streaming: true,
180
191
  description: 'Local XTTS / Coqui speech synthesis.',
181
192
  features: ['local', 'tts', 'voice-cloning'],
193
+ available: false,
182
194
  },
183
195
  {
184
196
  id: 'bark',
@@ -188,6 +200,7 @@ export const SPEECH_PROVIDER_CATALOG = [
188
200
  local: true,
189
201
  description: 'Local Bark expressive speech synthesis.',
190
202
  features: ['local', 'tts'],
203
+ available: false,
191
204
  },
192
205
  {
193
206
  id: 'styletts2',
@@ -197,6 +210,7 @@ export const SPEECH_PROVIDER_CATALOG = [
197
210
  local: true,
198
211
  description: 'Local StyleTTS2 expressive speech synthesis.',
199
212
  features: ['local', 'tts'],
213
+ available: false,
200
214
  },
201
215
  {
202
216
  id: 'agentos-adaptive-vad',
@@ -1 +1 @@
1
- {"version":3,"file":"providerCatalog.js","sourceRoot":"","sources":["../../src/speech/providerCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"providerCatalog.js","sourceRoot":"","sources":["../../src/speech/providerCatalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { SpeechAudioInput, SpeechToTextProvider, SpeechTranscriptionOptions, SpeechTranscriptionResult } from '../types.js';
2
+ /** Configuration for the AssemblyAISTTProvider. */
3
+ export interface AssemblyAISTTProviderConfig {
4
+ /** AssemblyAI API key. */
5
+ apiKey: string;
6
+ /**
7
+ * Custom fetch implementation, useful for testing.
8
+ * Defaults to the global `fetch`.
9
+ */
10
+ fetchImpl?: typeof fetch;
11
+ }
12
+ /**
13
+ * Speech-to-text provider that uses the AssemblyAI async transcription API.
14
+ *
15
+ * The three-step workflow is:
16
+ * 1. **Upload** – POST the raw audio to `/v2/upload` to obtain an upload URL.
17
+ * 2. **Submit** – POST to `/v2/transcript` with the upload URL to start processing.
18
+ * 3. **Poll** – GET `/v2/transcript/:id` every second until `status` is
19
+ * `completed` or `error`, or until the optional timeout elapses.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * const provider = new AssemblyAISTTProvider({ apiKey: process.env.ASSEMBLYAI_API_KEY! });
24
+ * const result = await provider.transcribe({ data: audioBuffer }, { enableSpeakerDiarization: true });
25
+ * console.log(result.text);
26
+ * ```
27
+ */
28
+ export declare class AssemblyAISTTProvider implements SpeechToTextProvider {
29
+ private readonly config;
30
+ readonly id = "assemblyai";
31
+ readonly displayName = "AssemblyAI";
32
+ readonly supportsStreaming = false;
33
+ private readonly fetchImpl;
34
+ constructor(config: AssemblyAISTTProviderConfig);
35
+ /** Returns the human-readable provider name. */
36
+ getProviderName(): string;
37
+ /**
38
+ * Transcribes an audio buffer via the AssemblyAI async pipeline.
39
+ *
40
+ * @param audio - Raw audio data and associated metadata.
41
+ * @param options - Optional transcription settings. Pass
42
+ * `providerSpecificOptions.signal` (an {@link AbortSignal}) to cancel.
43
+ * @returns A promise resolving to the normalised transcription result.
44
+ * @throws When the API returns a non-2xx status, when transcription fails,
45
+ * or when the 120-second timeout is exceeded.
46
+ */
47
+ transcribe(audio: SpeechAudioInput, options?: SpeechTranscriptionOptions): Promise<SpeechTranscriptionResult>;
48
+ }
49
+ //# sourceMappingURL=AssemblyAISTTProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssemblyAISTTProvider.d.ts","sourceRoot":"","sources":["../../../src/speech/providers/AssemblyAISTTProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EAE1B,MAAM,aAAa,CAAC;AAErB,mDAAmD;AACnD,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAsDD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAOpD,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,SAAgB,EAAE,gBAAgB;IAClC,SAAgB,WAAW,gBAAgB;IAC3C,SAAgB,iBAAiB,SAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,MAAM,EAAE,2BAA2B;IAIhE,gDAAgD;IAChD,eAAe,IAAI,MAAM;IAIzB;;;;;;;;;OASG;IACG,UAAU,CACd,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC;CAqGtC"}
@@ -0,0 +1,151 @@
1
+ const ASSEMBLYAI_BASE = 'https://api.assemblyai.com/v2';
2
+ /** Maximum time (ms) to wait for a transcript before rejecting. */
3
+ const DEFAULT_TIMEOUT_MS = 120000;
4
+ /** Polling interval (ms) between transcript status checks. */
5
+ const POLL_INTERVAL_MS = 1000;
6
+ /**
7
+ * Maps AssemblyAI word objects to {@link SpeechTranscriptionSegment} entries.
8
+ *
9
+ * Each word becomes its own segment so that per-word timing and speaker
10
+ * attribution are preserved in the normalised result.
11
+ */
12
+ function wordsToSegments(words) {
13
+ return words.map((w) => ({
14
+ text: w.text,
15
+ startTime: w.start / 1000, // AssemblyAI returns milliseconds
16
+ endTime: w.end / 1000,
17
+ confidence: w.confidence,
18
+ speaker: w.speaker ?? undefined,
19
+ words: [
20
+ {
21
+ word: w.text,
22
+ start: w.start / 1000,
23
+ end: w.end / 1000,
24
+ confidence: w.confidence,
25
+ },
26
+ ],
27
+ }));
28
+ }
29
+ /**
30
+ * Speech-to-text provider that uses the AssemblyAI async transcription API.
31
+ *
32
+ * The three-step workflow is:
33
+ * 1. **Upload** – POST the raw audio to `/v2/upload` to obtain an upload URL.
34
+ * 2. **Submit** – POST to `/v2/transcript` with the upload URL to start processing.
35
+ * 3. **Poll** – GET `/v2/transcript/:id` every second until `status` is
36
+ * `completed` or `error`, or until the optional timeout elapses.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * const provider = new AssemblyAISTTProvider({ apiKey: process.env.ASSEMBLYAI_API_KEY! });
41
+ * const result = await provider.transcribe({ data: audioBuffer }, { enableSpeakerDiarization: true });
42
+ * console.log(result.text);
43
+ * ```
44
+ */
45
+ export class AssemblyAISTTProvider {
46
+ constructor(config) {
47
+ this.config = config;
48
+ this.id = 'assemblyai';
49
+ this.displayName = 'AssemblyAI';
50
+ this.supportsStreaming = false;
51
+ this.fetchImpl = config.fetchImpl ?? fetch;
52
+ }
53
+ /** Returns the human-readable provider name. */
54
+ getProviderName() {
55
+ return this.displayName;
56
+ }
57
+ /**
58
+ * Transcribes an audio buffer via the AssemblyAI async pipeline.
59
+ *
60
+ * @param audio - Raw audio data and associated metadata.
61
+ * @param options - Optional transcription settings. Pass
62
+ * `providerSpecificOptions.signal` (an {@link AbortSignal}) to cancel.
63
+ * @returns A promise resolving to the normalised transcription result.
64
+ * @throws When the API returns a non-2xx status, when transcription fails,
65
+ * or when the 120-second timeout is exceeded.
66
+ */
67
+ async transcribe(audio, options = {}) {
68
+ const signal = options.providerSpecificOptions?.signal;
69
+ const timeoutMs = DEFAULT_TIMEOUT_MS;
70
+ // ── Step 1: Upload audio ────────────────────────────────────────────────
71
+ const uploadResponse = await this.fetchImpl(`${ASSEMBLYAI_BASE}/upload`, {
72
+ method: 'POST',
73
+ headers: {
74
+ Authorization: this.config.apiKey,
75
+ 'Content-Type': audio.mimeType ?? 'audio/wav',
76
+ },
77
+ body: audio.data,
78
+ signal,
79
+ });
80
+ if (!uploadResponse.ok) {
81
+ const msg = await uploadResponse.text();
82
+ throw new Error(`AssemblyAI upload failed (${uploadResponse.status}): ${msg}`);
83
+ }
84
+ const { upload_url } = (await uploadResponse.json());
85
+ // ── Step 2: Submit transcript request ───────────────────────────────────
86
+ const submitPayload = {
87
+ audio_url: upload_url,
88
+ speaker_labels: options.enableSpeakerDiarization ?? false,
89
+ };
90
+ if (options.language)
91
+ submitPayload.language_code = options.language;
92
+ const submitResponse = await this.fetchImpl(`${ASSEMBLYAI_BASE}/transcript`, {
93
+ method: 'POST',
94
+ headers: {
95
+ Authorization: this.config.apiKey,
96
+ 'Content-Type': 'application/json',
97
+ },
98
+ body: JSON.stringify(submitPayload),
99
+ signal,
100
+ });
101
+ if (!submitResponse.ok) {
102
+ const msg = await submitResponse.text();
103
+ throw new Error(`AssemblyAI transcript submit failed (${submitResponse.status}): ${msg}`);
104
+ }
105
+ const { id } = (await submitResponse.json());
106
+ // ── Step 3: Poll until completed ────────────────────────────────────────
107
+ const deadline = Date.now() + timeoutMs;
108
+ while (true) {
109
+ if (signal?.aborted) {
110
+ throw new Error('AssemblyAI transcription aborted by caller signal');
111
+ }
112
+ if (Date.now() >= deadline) {
113
+ throw new Error(`AssemblyAI transcription timed out after ${timeoutMs / 1000}s (transcript id: ${id})`);
114
+ }
115
+ const pollResponse = await this.fetchImpl(`${ASSEMBLYAI_BASE}/transcript/${id}`, {
116
+ headers: { Authorization: this.config.apiKey },
117
+ signal,
118
+ });
119
+ if (!pollResponse.ok) {
120
+ const msg = await pollResponse.text();
121
+ throw new Error(`AssemblyAI poll failed (${pollResponse.status}): ${msg}`);
122
+ }
123
+ const transcript = (await pollResponse.json());
124
+ if (transcript.status === 'error') {
125
+ throw new Error(`AssemblyAI transcription error: ${transcript.error ?? 'unknown error'}`);
126
+ }
127
+ if (transcript.status === 'completed') {
128
+ const text = transcript.text ?? '';
129
+ const durationSeconds = transcript.audio_duration ?? audio.durationSeconds;
130
+ const words = transcript.words ?? [];
131
+ return {
132
+ text,
133
+ language: transcript.language_code ?? options.language,
134
+ durationSeconds,
135
+ confidence: transcript.confidence ?? undefined,
136
+ cost: 0,
137
+ segments: words.length > 0 ? wordsToSegments(words) : undefined,
138
+ providerResponse: transcript,
139
+ isFinal: true,
140
+ usage: {
141
+ durationMinutes: (durationSeconds ?? 0) / 60,
142
+ modelUsed: 'assemblyai',
143
+ },
144
+ };
145
+ }
146
+ // Still queued or processing — wait before polling again.
147
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
148
+ }
149
+ }
150
+ }
151
+ //# sourceMappingURL=AssemblyAISTTProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssemblyAISTTProvider.js","sourceRoot":"","sources":["../../../src/speech/providers/AssemblyAISTTProvider.ts"],"names":[],"mappings":"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"}