Skip to content

Commit 7c1f743

Browse files
sakirrSiddhesh2377
authored andcommitted
refactor(web-sdk): clean up VoicePipeline to read from ExtensionPoint
Removes all (globalThis as any).__runanywhere_* reads. VoicePipeline now resolves its STT, TTS, and LLM backends through getProvider<T> with the shared interface types, so mismatches surface as TS errors rather than runtime crashes.
1 parent 4b33779 commit 7c1f743

1 file changed

Lines changed: 9 additions & 28 deletions

File tree

sdk/runanywhere-web/packages/core/src/Public/Extensions/RunAnywhere+VoicePipeline.ts

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
*/
2525

2626
import { SDKLogger } from '../../Foundation/SDKLogger';
27-
import { ExtensionPoint, ServiceKey } from '../../Infrastructure/ExtensionPoint';
27+
import { ExtensionPoint } from '../../Infrastructure/ExtensionPoint';
28+
import type { LLMProvider, STTProvider, TTSProvider } from '../../Infrastructure/ProviderTypes';
2829
import { PipelineState } from './VoiceAgentTypes';
2930
import type {
3031
VoicePipelineCallbacks,
@@ -42,39 +43,19 @@ export type {
4243
const logger = new SDKLogger('VoicePipeline');
4344

4445
// ---------------------------------------------------------------------------
45-
// Service interfaces for cross-package access
46+
// Dynamic backend access helpers (typed via ExtensionPoint provider registry)
4647
// ---------------------------------------------------------------------------
4748

48-
interface STTService {
49-
transcribe(audio: Float32Array, options?: { sampleRate?: number }): Promise<{ text: string; [key: string]: unknown }>;
49+
function requireSTT(): STTProvider {
50+
return ExtensionPoint.requireProvider('stt', '@runanywhere/web-onnx');
5051
}
5152

52-
interface TextGenerationService {
53-
generateStream(prompt: string, options?: { maxTokens?: number; temperature?: number; systemPrompt?: string }): Promise<{
54-
stream: AsyncIterable<string>;
55-
result: Promise<{ text: string; tokensUsed: number; tokensPerSecond: number; [key: string]: unknown }>;
56-
cancel: () => void;
57-
}>;
53+
function requireTextGeneration(): LLMProvider {
54+
return ExtensionPoint.requireProvider('llm', '@runanywhere/web-llamacpp');
5855
}
5956

60-
interface TTSService {
61-
synthesize(text: string, options?: { speed?: number }): Promise<{ audioData: Float32Array; sampleRate: number; durationMs: number; processingTimeMs: number; [key: string]: unknown }>;
62-
}
63-
64-
// ---------------------------------------------------------------------------
65-
// Dynamic backend access helpers (typed via ExtensionPoint service registry)
66-
// ---------------------------------------------------------------------------
67-
68-
function requireSTT(): STTService {
69-
return ExtensionPoint.requireService<STTService>(ServiceKey.STT, '@runanywhere/web-onnx');
70-
}
71-
72-
function requireTextGeneration(): TextGenerationService {
73-
return ExtensionPoint.requireService<TextGenerationService>(ServiceKey.TextGeneration, '@runanywhere/web-llamacpp');
74-
}
75-
76-
function requireTTS(): TTSService {
77-
return ExtensionPoint.requireService<TTSService>(ServiceKey.TTS, '@runanywhere/web-onnx');
57+
function requireTTS(): TTSProvider {
58+
return ExtensionPoint.requireProvider('tts', '@runanywhere/web-onnx');
7859
}
7960

8061
// ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)