Skip to main content
Glama

mcp-voice-hooks

utterance-queue.ts1.14 kB
import { Utterance, UtteranceQueue } from './types.js'; import { randomUUID } from 'crypto'; import { debugLog } from './debug.js'; export class InMemoryUtteranceQueue implements UtteranceQueue { public utterances: Utterance[] = []; add(text: string, timestamp?: Date): Utterance { const utterance: Utterance = { id: randomUUID(), text: text.trim(), timestamp: timestamp || new Date(), status: 'pending' }; this.utterances.push(utterance); debugLog(`[Queue] queued: "${utterance.text}" [id: ${utterance.id}]`); return utterance; } getRecent(limit: number = 10): Utterance[] { return this.utterances .sort((a, b) => b.timestamp.getTime() - a.timestamp.getTime()) .slice(0, limit); } markDelivered(id: string): void { const utterance = this.utterances.find(u => u.id === id); if (utterance) { utterance.status = 'delivered'; debugLog(`[Queue] delivered: "${utterance.text}" [id: ${id}]`); } } clear(): void { const count = this.utterances.length; this.utterances = []; debugLog(`[Queue] Cleared ${count} utterances`); } }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnmatthewtennant/mcp-voice-hooks'

If you have feedback or need assistance with the MCP directory API, please join our Discord server