limitless-ai-mcp-server
Version:
MCP server for integrating Limitless AI Pendant recordings with AI assistants
57 lines • 2.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptHandlers = void 0;
const templates_1 = require("./templates");
const logger_1 = require("../utils/logger");
class PromptHandlers {
/**
* Handle list prompts request
*/
async handleListPrompts(_request) {
try {
logger_1.logger.debug('Handling list prompts request');
const prompts = Object.values(templates_1.promptTemplates).map((template) => ({
name: template.name,
description: template.description,
arguments: template.arguments,
}));
return { prompts };
}
catch (error) {
logger_1.logger.error('Failed to list prompts', error);
throw error;
}
}
/**
* Handle get prompt request
*/
async handleGetPrompt(request) {
try {
const { name, arguments: args = {} } = request.params;
logger_1.logger.debug('Handling get prompt request', { name, args });
const template = templates_1.promptTemplates[name];
if (!template) {
throw new Error(`Unknown prompt: ${name}`);
}
// Validate required arguments
const missingArgs = template.arguments
?.filter((arg) => arg.required && !args[arg.name])
.map((arg) => arg.name);
if (missingArgs && missingArgs.length > 0) {
throw new Error(`Missing required arguments: ${missingArgs.join(', ')}`);
}
// Get the prompt content
const messages = (0, templates_1.getPromptContent)(name, args);
return {
description: template.description,
messages,
};
}
catch (error) {
logger_1.logger.error('Failed to get prompt', error);
throw error;
}
}
}
exports.PromptHandlers = PromptHandlers;
//# sourceMappingURL=handlers.js.map