mcp-shrimp-task-manager
Version:
Shrimp Task Manager is a task 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 develope
68 lines (61 loc) • 1.54 kB
text/typescript
import { z } from "zod";
import { UUID_V4_REGEX } from "../../utils/regex.js";
import {
getTaskById,
deleteTask as modelDeleteTask,
} from "../../models/taskModel.js";
import { TaskStatus } from "../../types/index.js";
import { getDeleteTaskPrompt } from "../../prompts/index.js";
// 刪除任務工具
export const deleteTaskSchema = z.object({
taskId: z
.string()
.regex(UUID_V4_REGEX, {
message: "任務ID格式無效,請提供有效的UUID v4格式",
})
.describe("待刪除任務的唯一標識符,必須是系統中存在且未完成的任務ID"),
});
export async function deleteTask({ taskId }: z.infer<typeof deleteTaskSchema>) {
const task = await getTaskById(taskId);
if (!task) {
return {
content: [
{
type: "text" as const,
text: await getDeleteTaskPrompt({ taskId }),
},
],
isError: true,
};
}
if (task.status === TaskStatus.COMPLETED) {
return {
content: [
{
type: "text" as const,
text: await getDeleteTaskPrompt({
taskId,
task,
isTaskCompleted: true,
}),
},
],
isError: true,
};
}
const result = await modelDeleteTask(taskId);
return {
content: [
{
type: "text" as const,
text: await getDeleteTaskPrompt({
taskId,
task,
success: result.success,
message: result.message,
}),
},
],
isError: !result.success,
};
}