mirror of
https://github.com/cjo4m06/mcp-shrimp-task-manager.git
synced 2025-07-26 16:02:26 +08:00
64 lines
1.5 KiB
TypeScript
64 lines
1.5 KiB
TypeScript
import { z } from "zod";
|
|
import {
|
|
getAllTasks,
|
|
clearAllTasks as modelClearAllTasks,
|
|
} from "../../models/taskModel.js";
|
|
import { getClearAllTasksPrompt } from "../../prompts/index.js";
|
|
|
|
// 清除所有任務工具
|
|
export const clearAllTasksSchema = z.object({
|
|
confirm: z
|
|
.boolean()
|
|
.refine((val) => val === true, {
|
|
message:
|
|
"必須明確確認清除操作,請將 confirm 參數設置為 true 以確認此危險操作",
|
|
})
|
|
.describe("確認刪除所有未完成的任務(此操作不可逆)"),
|
|
});
|
|
|
|
export async function clearAllTasks({
|
|
confirm,
|
|
}: z.infer<typeof clearAllTasksSchema>) {
|
|
// 安全檢查:如果沒有確認,則拒絕操作
|
|
if (!confirm) {
|
|
return {
|
|
content: [
|
|
{
|
|
type: "text" as const,
|
|
text: getClearAllTasksPrompt({ confirm: false }),
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
// 檢查是否真的有任務需要清除
|
|
const allTasks = await getAllTasks();
|
|
if (allTasks.length === 0) {
|
|
return {
|
|
content: [
|
|
{
|
|
type: "text" as const,
|
|
text: getClearAllTasksPrompt({ isEmpty: true }),
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
// 執行清除操作
|
|
const result = await modelClearAllTasks();
|
|
|
|
return {
|
|
content: [
|
|
{
|
|
type: "text" as const,
|
|
text: getClearAllTasksPrompt({
|
|
success: result.success,
|
|
message: result.message,
|
|
backupFile: result.backupFile,
|
|
}),
|
|
},
|
|
],
|
|
isError: !result.success,
|
|
};
|
|
}
|