@tosin2013/mcp-shrimp-task-manager
Version:
Enhanced MCP Shrimp Task Manager with comprehensive LLM integration. A task management tool built for AI Agents, emphasizing chain-of-thought, reflection, and style consistency. Features real GPT-4 ↔ MCP tools communication, comprehensive testing pipeline
87 lines • 3.6 kB
JavaScript
/**
* updateTaskContent prompt 生成器
* 負責將模板和參數組合成最終的 prompt
*/
import { loadPrompt, generatePrompt, loadPromptFromTemplate, } from "../loader.js";
/**
* 獲取 updateTaskContent 的完整 prompt
* @param params prompt 參數
* @returns 生成的 prompt
*/
export function getUpdateTaskContentPrompt(params) {
const { taskId, task, success, message, validationError, emptyUpdate, updatedTask, } = params;
// 處理任務不存在的情況
if (!task) {
const notFoundTemplate = loadPromptFromTemplate("updateTaskContent/notFound.md");
return generatePrompt(notFoundTemplate, {
taskId,
});
}
// 處理驗證錯誤的情況
if (validationError) {
const validationTemplate = loadPromptFromTemplate("updateTaskContent/validation.md");
return generatePrompt(validationTemplate, {
error: validationError,
});
}
// 處理空更新的情況
if (emptyUpdate) {
const emptyUpdateTemplate = loadPromptFromTemplate("updateTaskContent/emptyUpdate.md");
return generatePrompt(emptyUpdateTemplate, {});
}
// 處理更新成功或失敗的情況
const responseTitle = success ? "Success" : "Failure";
let content = message || "";
// 更新成功且有更新後的任務詳情
if (success && updatedTask) {
const successTemplate = loadPromptFromTemplate("updateTaskContent/success.md");
// 編合相關文件信息
let filesContent = "";
if (updatedTask.relatedFiles && updatedTask.relatedFiles.length > 0) {
const fileDetailsTemplate = loadPromptFromTemplate("updateTaskContent/fileDetails.md");
// 按文件類型分組
const filesByType = updatedTask.relatedFiles.reduce((acc, file) => {
if (!acc[file.type]) {
acc[file.type] = [];
}
acc[file.type].push(file);
return acc;
}, {});
// 為每種文件類型生成內容
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,
});
}
}
// 處理任務備註
const taskNotesPrefix = "- **Notes:** ";
const taskNotes = updatedTask.notes
? `${taskNotesPrefix}${updatedTask.notes.length > 100
? `${updatedTask.notes.substring(0, 100)}...`
: updatedTask.notes}\n`
: "";
// 生成成功更新的詳細信息
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,
});
// 載入可能的自定義 prompt
return loadPrompt(prompt, "UPDATE_TASK_CONTENT");
}
//# sourceMappingURL=updateTaskContent.js.map