import type {
GetPromptRequest,
GetPromptResult,
} from "@modelcontextprotocol/sdk/types.js";
import { type HandlerDeps, mergeDeps } from "../helpers/handlerDeps";
export function handleGetPrompt(deps: Partial<Pick<HandlerDeps, "getReadmeFromGitRepo">> = {}) {
const mergedDeps = mergeDeps(["getReadmeFromGitRepo"], deps);
return async (request: GetPromptRequest): Promise<GetPromptResult> => {
const { name, arguments: args } = request.params;
if (name === "analyze_readme") {
const repoUrl = args?.repo_url as string;
const readmeContent = await mergedDeps.getReadmeFromGitRepo(repoUrl);
return {
messages: [
{
role: "user",
content: {
type: "text",
text:
"Analyze this README for: installation instructions, examples, API docs, etc\n\n" +
readmeContent,
},
},
],
};
}
throw new Error(`Unknown prompt: ${name}`);
};
}