UNPKG

@ririaru/mcp-gpt5-server

Version:

Enhanced MCP server for GPT-5 with advanced features

103 lines (91 loc) 3.02 kB
// GPT-5提案通りの薄いプロキシのテスト import { Gpt5McpCore } from './packages/core/dist/index.js'; console.log('🔗 Testing Vercel Proxy (GPT-5 style)...'); // サーバレスでの in-memory キャッシュは Lambda 単位。必要に応じて KV プロバイダへ差し替え可。 const core = new Gpt5McpCore({ defaultLevel: "low", // 保守的開始 defaultVerbosity: "concise" }); // Vercel API handler simulation async function simulateVercelHandler(req) { console.log('📨 Simulating Vercel API handler...'); try { const { prompt, level, verbosity } = req ?? {}; if (typeof prompt !== "string" || !prompt.trim()) { return { status: 400, body: { error: "prompt is required" } }; } const result = await core.handleMessage({ prompt, level, verbosity }); return { status: 200, body: { cached: result.cached, text: result.output.text, level: level || "low", verbosity: verbosity || "concise" } }; } catch (e) { const status = e?.name === "ValidationError" ? 400 : (e?.name === "RetryableError" ? 503 : 500); return { status, body: { error: e?.message ?? "Internal Error", type: e?.name ?? "Error" } }; } } // Test cases const testCases = [ { name: "Basic request", req: { prompt: "Hello from proxy test" } }, { name: "Level override", req: { prompt: "High level test", level: "high" } }, { name: "Verbosity override", req: { prompt: "Verbose test", verbosity: "verbose" } }, { name: "Cache test (same prompt)", req: { prompt: "Cache test message" } }, { name: "Cache test (repeat)", req: { prompt: "Cache test message" } }, { name: "Invalid request (no prompt)", req: {} }, { name: "Empty prompt", req: { prompt: "" } } ]; try { for (const testCase of testCases) { console.log(`\n🧪 Test: ${testCase.name}`); const response = await simulateVercelHandler(testCase.req); console.log(` Status: ${response.status}`); console.log(` Body: ${JSON.stringify(response.body, null, 2)}`); // Basic validation if (testCase.name.includes("Invalid") || testCase.name.includes("Empty")) { console.log(` ✅ Expected error: ${response.status >= 400 ? 'PASS' : 'FAIL'}`); } else { console.log(` ✅ Success response: ${response.status === 200 ? 'PASS' : 'FAIL'}`); if (response.status === 200) { console.log(` ✅ Has text: ${response.body.text ? 'PASS' : 'FAIL'}`); if (testCase.name.includes("repeat")) { console.log(` ✅ Cache hit: ${response.body.cached === true ? 'PASS' : 'FAIL'}`); } } } } console.log('\n🎉 Proxy tests completed successfully!'); } catch (error) { console.error('❌ Proxy test failed:', error.message); }