import type { Request, Response } from "express";
import { runTool } from "../mcp/tool-runner.js";
export async function queryNipsHandler(_req: Request, res: Response): Promise<void> {
try {
const result = await runTool("query_nips", {});
res.json(result);
} catch (error) {
res.status(500).json({
error: "Query failed",
message: error instanceof Error ? error.message : String(error),
});
}
}
export async function queryFlowsHandler(_req: Request, res: Response): Promise<void> {
try {
const result = await runTool("query_flows", {});
res.json(result);
} catch (error) {
res.status(500).json({
error: "Query failed",
message: error instanceof Error ? error.message : String(error),
});
}
}
export async function queryTypesHandler(req: Request, res: Response): Promise<void> {
try {
const repo = req.query.repo as string | undefined;
const name = req.query.name as string | undefined;
const kind = req.query.kind as string | undefined;
const limit = req.query.limit ? parseInt(req.query.limit as string, 10) : undefined;
const result = await runTool("query_types", { repo, name, kind, limit });
res.json(result);
} catch (error) {
res.status(500).json({
error: "Query failed",
message: error instanceof Error ? error.message : String(error),
});
}
}
export async function querySharedTypesHandler(req: Request, res: Response): Promise<void> {
try {
const minSimilarity = req.query.minSimilarity
? parseInt(req.query.minSimilarity as string, 10)
: undefined;
const limit = req.query.limit ? parseInt(req.query.limit as string, 10) : undefined;
const result = await runTool("query_shared_types", { minSimilarity, limit });
res.json(result);
} catch (error) {
res.status(500).json({
error: "Query failed",
message: error instanceof Error ? error.message : String(error),
});
}
}
export async function queryDataFlowHandler(_req: Request, res: Response): Promise<void> {
try {
const result = await runTool("query_data_flow", {});
res.json(result);
} catch (error) {
res.status(500).json({
error: "Query failed",
message: error instanceof Error ? error.message : String(error),
});
}
}