UNPKG

@phren/cli

Version:

Knowledge layer for AI agents - CLI, MCP server, and data layer

46 lines (45 loc) • 2.18 kB
import { type SpeechState } from "./speech.js"; export interface LiveSocket { readonly readyState: number; /** Bytes queued to send; the phone's socket has it, ElevenLabs' need not. */ readonly bufferedAmount?: number; send(data: string): void; close(code?: number, reason?: string): void; on(event: "message", listener: (data: Buffer, isBinary: boolean) => void): unknown; on(event: "open", listener: () => void): unknown; on(event: "close", listener: (code?: number, reason?: Buffer) => void): unknown; on(event: "error", listener: (error: Error) => void): unknown; } /** ElevenLabs' side: a socket that also reports a refused handshake with its * HTTP status and ElevenLabs' `detail.status`. */ export interface LiveUpstream extends LiveSocket { on(event: "message", listener: (data: Buffer, isBinary: boolean) => void): unknown; on(event: "open", listener: () => void): unknown; on(event: "close", listener: (code?: number, reason?: Buffer) => void): unknown; on(event: "error", listener: (error: Error) => void): unknown; on(event: "refused", listener: (status: number, code: string) => void): unknown; } export interface LiveSpeechOptions { key?: () => Promise<string | undefined>; connect?: (url: string, key: string) => LiveUpstream; /** Defaults to this computer's model and region settings. */ model?: string; origin?: string; state?: SpeechState; maxSessionMs?: number; handshakeMs?: number; firstAudioMs?: number; } /** Text-to-dialogue serves v3 and v4; text-to-speech stream-input the rest. */ export declare function liveEndpoint(model: string): "dialogue" | "speech"; /** Markdown arriving a piece at a time, released a sentence or line at a time * as the words speakableText leaves of it. A code block is skipped until it * closes; the unfinished sentence waits for more text or `end`. */ export declare class SpeakableStream { private pending; private inFence; push(text: string): string; end(): string; private speak; } export declare function relayLiveSpeech(client: LiveSocket, query: URLSearchParams, options?: LiveSpeechOptions): Promise<void>;