UNPKG

@sinch/mcp

Version:

Sinch MCP server

43 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.closeConferenceHandler = exports.registerCloseConference = void 0; const zod_1 = require("zod"); const utils_1 = require("../../utils"); const types_1 = require("../../types"); const voice_service_helper_1 = require("./utils/voice-service-helper"); const voice_tools_helper_1 = require("./utils/voice-tools-helper"); const TOOL_KEY = 'closeConference'; const TOOL_NAME = (0, voice_tools_helper_1.getToolName)(TOOL_KEY); const registerCloseConference = (server, tags) => { if (!(0, utils_1.matchesAnyTag)(tags, voice_tools_helper_1.voiceToolsConfig[TOOL_KEY].tags)) return; server.tool(TOOL_NAME, 'Close a conference callout', { conferenceId: zod_1.z.string().describe('The conference ID to close') }, exports.closeConferenceHandler); }; exports.registerCloseConference = registerCloseConference; const closeConferenceHandler = async ({ conferenceId }) => { const maybeService = (0, voice_service_helper_1.getVoiceService)(TOOL_NAME); if ((0, utils_1.isPromptResponse)(maybeService)) { return maybeService.promptResponse; } const voiceService = maybeService; try { await voiceService.conferences.kickAll({ conferenceId }); return new types_1.PromptResponse(JSON.stringify({ success: true, conference_id: conferenceId })).promptResponse; } catch (error) { console.error(`Error closing conference ${conferenceId}:`, error); return new types_1.PromptResponse(JSON.stringify({ success: false, error: error instanceof Error ? error.message : String(error) })).promptResponse; } }; exports.closeConferenceHandler = closeConferenceHandler; //# sourceMappingURL=close-conference.js.map