UNPKG

mcp-chain-of-thought

Version:

Chain of Thought is a tool built for AI Agents, emphasizing chain-of-thought, reflection, and style consistency. It converts natural language into structured dev tasks with dependency tracking and iterative refinement, enabling agent-like developer behavi

87 lines 3.65 kB
/** * updateTaskContent prompt generator * Responsible for combining templates and parameters into the final prompt */ import { loadPrompt, generatePrompt, loadPromptFromTemplate, } from "../loader.js"; /** * Get the complete updateTaskContent prompt * @param params prompt parameters * @returns generated prompt */ export function getUpdateTaskContentPrompt(params) { const { taskId, task, success, message, validationError, emptyUpdate, updatedTask, } = params; // Handle case where task doesn't exist if (!task) { const notFoundTemplate = loadPromptFromTemplate("updateTaskContent/notFound.md"); return generatePrompt(notFoundTemplate, { taskId, }); } // Handle validation error case if (validationError) { const validationTemplate = loadPromptFromTemplate("updateTaskContent/validation.md"); return generatePrompt(validationTemplate, { error: validationError, }); } // Handle empty update case if (emptyUpdate) { const emptyUpdateTemplate = loadPromptFromTemplate("updateTaskContent/emptyUpdate.md"); return generatePrompt(emptyUpdateTemplate, {}); } // Handle successful or failed update case const responseTitle = success ? "Success" : "Failure"; let content = message || ""; // Success update with updated task details if (success && updatedTask) { const successTemplate = loadPromptFromTemplate("updateTaskContent/success.md"); // Compile related files information let filesContent = ""; if (updatedTask.relatedFiles && updatedTask.relatedFiles.length > 0) { const fileDetailsTemplate = loadPromptFromTemplate("updateTaskContent/fileDetails.md"); // Group files by type const filesByType = updatedTask.relatedFiles.reduce((acc, file) => { if (!acc[file.type]) { acc[file.type] = []; } acc[file.type].push(file); return acc; }, {}); // Generate content for each file type for (const [type, files] of Object.entries(filesByType)) { const filesList = files.map((file) => `\`${file.path}\``).join(", "); filesContent += generatePrompt(fileDetailsTemplate, { fileType: type, fileCount: files.length, filesList, }); } } // Process task notes const taskNotesPrefix = "- **Notes:** "; const taskNotes = updatedTask.notes ? `${taskNotesPrefix}${updatedTask.notes.length > 100 ? `${updatedTask.notes.substring(0, 100)}...` : updatedTask.notes}\n` : ""; // Generate detailed information for successful update content += generatePrompt(successTemplate, { taskName: updatedTask.name, taskDescription: updatedTask.description.length > 100 ? `${updatedTask.description.substring(0, 100)}...` : updatedTask.description, taskNotes: taskNotes, taskStatus: updatedTask.status, taskUpdatedAt: new Date(updatedTask.updatedAt).toISOString(), filesContent, }); } const indexTemplate = loadPromptFromTemplate("updateTaskContent/index.md"); const prompt = generatePrompt(indexTemplate, { responseTitle, message: content, }); // Load possible custom prompt return loadPrompt(prompt, "UPDATE_TASK_CONTENT"); } //# sourceMappingURL=updateTaskContent.js.map