UNPKG

@sinch/mcp

Version:

Sinch MCP server

58 lines 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ttsCalloutHandler = exports.registerTtsCallout = void 0; const zod_1 = require("zod"); const voice_service_helper_1 = require("./utils/voice-service-helper"); const voice_tools_helper_1 = require("./utils/voice-tools-helper"); const utils_1 = require("../../utils"); const types_1 = require("../../types"); const TOOL_KEY = 'ttsCallout'; const TOOL_NAME = (0, voice_tools_helper_1.getToolName)(TOOL_KEY); const registerTtsCallout = (server, tags) => { if (!(0, utils_1.matchesAnyTag)(tags, voice_tools_helper_1.voiceToolsConfig[TOOL_KEY].tags)) return; server.tool(TOOL_NAME, 'Make a callout with a Text-To-Speech prompt', { phoneNumber: zod_1.z.string().describe('The phone number to call'), message: zod_1.z.string().describe('The message to read out loud') }, exports.ttsCalloutHandler); }; exports.registerTtsCallout = registerTtsCallout; const ttsCalloutHandler = async ({ phoneNumber, message }) => { const maybeService = (0, voice_service_helper_1.getVoiceService)(TOOL_NAME); if ((0, utils_1.isPromptResponse)(maybeService)) { return maybeService.promptResponse; } const voiceService = maybeService; const cli = process.env.CALLING_LINE_IDENTIFICATION; const request = { ttsCalloutRequestBody: { method: 'ttsCallout', ttsCallout: { destination: { type: 'number', endpoint: phoneNumber }, text: message } } }; if (cli) { request.ttsCalloutRequestBody.ttsCallout.cli = cli; } try { const response = await voiceService.callouts.tts(request); return new types_1.PromptResponse(JSON.stringify({ success: true, call_id: response.callId, destination: phoneNumber })).promptResponse; } catch (error) { return new types_1.PromptResponse(JSON.stringify({ success: false, error: error instanceof Error ? error.message : String(error) })).promptResponse; } }; exports.ttsCalloutHandler = ttsCalloutHandler; //# sourceMappingURL=tts-callout.js.map