@physihan/deepwiki-mcp
Version: 
DeepWiki MCP server implementation
105 lines (89 loc) • 2.97 kB
text/typescript
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);
});