UNPKG

@physihan/deepwiki-mcp

Version:

DeepWiki MCP server implementation

105 lines (89 loc) 2.97 kB
import WebSocket from "ws"; // 引入需要测试的函数 import { askRepository } from "../src/tools.js"; // 定义类型以匹配返回数据结构 interface ToolResult { success: boolean; data?: { status: string; message: string; data?: { answer: string; repositoryName: string; queryId: string; queryDetails: Record<string, unknown>; }; }; error?: { message: string }; } // 简单测试 askRepository 函数 async function testAskRepository() { console.log("===== 开始测试 askRepository 工具 ====="); try { console.log("\n测试用例: 提问仓库功能"); console.log("正在请求数据,请稍候..."); const result = (await askRepository({ params: { questionId: "expressjs/express", question: "这个仓库的主要功能是什么?", }, })) as ToolResult; console.log("\n获取结果:"); console.log("成功状态:", result.success); if (result.success && result.data) { console.log("消息:", result.data.message); if (result.data.data) { console.log("仓库名称:", result.data.data.repositoryName); console.log("查询ID:", result.data.data.queryId); console.log("\n回答内容:"); console.log("------------------------"); console.log(result.data.data.answer); console.log("------------------------"); console.log(`回答长度: ${result.data.data.answer.length} 字符`); } } else if (result.error) { console.error("错误信息:", result.error.message); } } catch (error) { console.error("测试执行错误:", error); } console.log("\n===== 测试完成 ====="); } // 测试直接使用WebSocket连接 function testDirectWebSocketConnection() { const ws = new WebSocket( "wss://api.devin.ai/ada/ws/query/_80a5b645-88d8-46ea-bc81-c40452ccabd4", { headers: { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36", Origin: "https://devin.ai", }, } ); ws.on("open", function open() { console.log("[✅] WebSocket连接成功"); }); ws.on("message", function message(data) { console.log("[📨] 收到数据:", data.toString()); }); ws.on("error", function error(err) { console.error("[❌] WebSocket错误:", err); }); ws.on("close", function close(code, reason) { console.log(`[🔌] WebSocket关闭,代码: ${code}, 原因: ${reason}`); }); } // 执行测试 console.log("启动测试..."); testAskRepository().catch((error) => { console.error("未捕获错误:", error); }); // 防止程序立即退出,等待WebSocket连接事件 process.on("unhandledRejection", (reason) => { console.error("未处理的Promise拒绝:", reason); }); // 显示所有异常 process.on("uncaughtException", (error) => { console.error("未捕获的异常:", error); });