Skip to main content
Glama

mcp-chain-of-thought

splitTasks.ts2.44 kB
/** * splitTasks prompt generator * Responsible for combining templates and parameters into the final prompt */ import { loadPrompt, generatePrompt, loadPromptFromTemplate, } from "../loader.js"; import { Task } from "../../types/index.js"; /** * splitTasks prompt parameter interface */ export interface SplitTasksPromptParams { globalAnalysisResult?: string; memoryDir?: string; updateMode: "append" | "overwrite" | "selective" | "clearAllTasks"; tasks?: Task[]; allTasks?: Task[]; createdTasks?: Task[]; } /** * Get the complete splitTasks prompt * @param params prompt parameters * @returns generated prompt */ export function getSplitTasksPrompt(params: SplitTasksPromptParams): string { const indexTemplate = loadPromptFromTemplate("splitTasks/index.md"); let tasksContext = ""; if (params.tasks && params.tasks.length > 0) { const taskDetailsTemplate = loadPromptFromTemplate("splitTasks/taskDetails.md"); // Convert task list to formatted task details let taskDetailsContent = ""; params.tasks.forEach((task, index) => { // Format dependencies if they exist let dependenciesContent = ""; if (task.dependencies && task.dependencies.length > 0) { dependenciesContent = task.dependencies .map(dep => { // Find dependency task name for more friendly display const depTaskName = params.tasks?.find(t => t.id === dep.taskId)?.name || dep.taskId; return `\`${depTaskName}\``; }) .join(", "); } taskDetailsContent += `Task ${index + 1}:\n`; taskDetailsContent += `- ID: ${task.id}\n`; taskDetailsContent += `- Name: ${task.name}\n`; taskDetailsContent += `- Description: ${task.description}\n`; if (dependenciesContent) { taskDetailsContent += `- Dependencies: ${dependenciesContent}\n`; } taskDetailsContent += `- Status: ${task.status}\n\n`; }); tasksContext = generatePrompt(taskDetailsTemplate, { taskCount: params.tasks.length.toString(), taskDetails: taskDetailsContent }); } let prompt = generatePrompt(indexTemplate, { globalAnalysisResult: params.globalAnalysisResult, tasksContext: tasksContext, updateMode: params.updateMode, memoryDir: params.memoryDir }); // Load possible custom prompt return loadPrompt(prompt, "SPLIT_TASKS"); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/liorfranko/mcp-chain-of-thought'

If you have feedback or need assistance with the MCP directory API, please join our Discord server