sort-tasks
Organize tasks in Todo.txt files by priority, creation date, or completion date to improve task management workflow.
Instructions
Sort tasks by priority, creation date, or completion date.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes |
Implementation Reference
- src/tools.ts:165-189 (registration)Registration of the 'sort-tasks' tool, including description, input schema, and inline handler function.
server.tool( "sort-tasks", "Sort tasks by priority, creation date, or completion date.", { by: z.enum(["priority", "creationDate", "completionDate"]) }, async ({ by }) => { const tasks = await loadTasks(); let sortedTasks = tasks.slice(); switch (by) { case "priority": sortedTasks = sortedTasks.sort((a, b) => (a.priority() || "").localeCompare(b.priority() || "")); break; case "creationDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.created()?.toISOString() || 0).getTime() - new Date(b.created()?.toISOString() || 0).getTime()); break; case "completionDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.completed()?.toISOString() || 0).getTime() - new Date(b.completed()?.toISOString() || 0).getTime()); break; } return { content: [ { type: "text", text: sortedTasks.map(task => task.toString()).join("\n") }, ], }; } ); - src/tools.ts:169-188 (handler)The handler function that implements the sorting logic for tasks based on priority, creation date, or completion date.
async ({ by }) => { const tasks = await loadTasks(); let sortedTasks = tasks.slice(); switch (by) { case "priority": sortedTasks = sortedTasks.sort((a, b) => (a.priority() || "").localeCompare(b.priority() || "")); break; case "creationDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.created()?.toISOString() || 0).getTime() - new Date(b.created()?.toISOString() || 0).getTime()); break; case "completionDate": sortedTasks = sortedTasks.sort((a, b) => new Date(a.completed()?.toISOString() || 0).getTime() - new Date(b.completed()?.toISOString() || 0).getTime()); break; } return { content: [ { type: "text", text: sortedTasks.map(task => task.toString()).join("\n") }, ], }; } - src/tools.ts:168-168 (schema)Input schema defining the 'by' parameter as an enum for sorting criteria.
{ by: z.enum(["priority", "creationDate", "completionDate"]) },