systemprompt-mcp-interview
Version:
A specialized Model Context Protocol (MCP) server that enables AI-powered interview roleplay scenarios
48 lines • 1.92 kB
JavaScript
import { validateRequest } from "../utils/validation.js";
import { server } from "../server.js";
import { handleConfigureInterviewCallback, handleSummarizeCVCallback } from "./callbacks.js";
import { sendOperationNotification } from "./notifications.js";
export async function sendSamplingRequest(request) {
try {
validateRequest(request);
await sendOperationNotification("sampling1", JSON.stringify(request));
const result = await server.createMessage(request.params);
await sendOperationNotification("sampling2", JSON.stringify(result));
const callback = request.params._meta?.callback;
if (callback && typeof callback === "string") {
await handleCallback(callback, result);
}
return result;
}
catch (error) {
console.error("Sampling request failed:", error instanceof Error ? error.message : error);
if (error instanceof Error) {
throw error;
}
throw new Error(`Failed to process sampling request: ${error || "Unknown error"}`);
}
}
/**
* Handles a callback based on its type
* @param callback The callback type
* @param result The LLM result
* @returns The tool response
*/
async function handleCallback(callback, result) {
try {
await sendOperationNotification(callback, `Callback started: ${callback}`);
switch (callback) {
case "configure_interview":
return await handleConfigureInterviewCallback(result);
case "summarize_cv":
return await handleSummarizeCVCallback(result);
default:
throw new Error(`Unknown callback type: ${callback}`);
}
}
catch (error) {
await sendOperationNotification(callback, `Callback failed: ${error instanceof Error ? error.message : "Unknown error"}`);
throw error;
}
}
//# sourceMappingURL=sampling.js.map