UNPKG

@sinch/mcp

Version:

Sinch MCP server

50 lines 2.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const openai_1 = __importDefault(require("openai")); const toolsTestCases_1 = require("../toolsTestCases"); const list_tools_1 = require("../list-tools"); const configuration_1 = require("../configuration"); const transformToOpenAIFormat = (tools) => { return tools.map((t) => ({ type: 'function', name: t.name, description: t.description, parameters: JSON.stringify(t.inputSchema) === JSON.stringify({ type: "object" }) ? null : t.inputSchema, strict: false, })); }; const targetModel = process.env.TARGET_MODEL || 'gpt-4o-mini'; describe(`Tool invocation tests - Open AI - ${targetModel}`, () => { let tools; let openai; beforeAll(async () => { tools = transformToOpenAIFormat(await (0, list_tools_1.listTools)()); openai = new openai_1.default({ apiKey: process.env.OPENAI_API_KEY, }); }); it.each(toolsTestCases_1.toolTestCases)('should handle prompt "%s"', async ({ prompt, expectedToolName, expectedArguments }) => { const response = await openai.responses.create({ model: targetModel, temperature: configuration_1.TEMPERATURE, max_output_tokens: configuration_1.MAX_TOKENS, input: prompt, tools, tool_choice: 'auto', }); const toolCall = response.output.find((obj) => obj.type === "function_call"); if (!expectedToolName) { expect(toolCall).toBeUndefined(); return; } expect(toolCall).toBeDefined(); expect(toolCall.name).toEqual(expectedToolName); if (expectedArguments) { expect(toolCall.arguments).toEqual(JSON.stringify(expectedArguments)); } }, configuration_1.TIMEOUT); }); //# sourceMappingURL=openai.int.test.js.map